程序设计期末考试试卷_第1页
程序设计期末考试试卷_第2页
程序设计期末考试试卷_第3页
程序设计期末考试试卷_第4页
程序设计期末考试试卷_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复旦大学信息科学与工程学院

《程序设计》期末考试试卷

共9页

课程代码:INF0120001.06考试形式:□开卷曰闭卷

(本试卷答卷时间为120分钟,答案必须写在试卷上,做在草稿纸上无效)

专业学号姓名成绩

题号—•二二总分

得分

ー、选择题(30%)

1.阅读程序,选择程序的运行结果。A_______________________________________

装#include<stdio.h>

订intTry(intn)

(

线if(n>0)

return(n*Try(n-2));

else

不return1;

)

答main()

(

题intx;

x=Try(5);

,Tn

printf(%d\nzx);

}_____________________________________________________________________________

A.15B.120C.1D.前面三个答案都是错的

2.下列选项列中,在C中不正确的是B。

A.intnValue=073;B.intnValue=094;

C.intnValue=0x94;D.intnValue=100;

3.下列选项中,不是C提供的合法总算的是_C〇

A.forB.switchC.beginD.default

4.下列选项中,不是用来表达转义字符的是ーC_»

A.\\B.\nC.OxABD.ヽ,

5.下列对字符串的定义中,错误的是A______。

A)charstr[7]="FORTRAN”;

B)charstr[]="FORTRAN”;

C)char*str=nFORTRANn;

D)charstr[]={‘Fl'O'JR'JTl'R’JAl'N',0};

6.设指针pnValue指向的整型变量值为25,则++*pnValue后pnValue的值是_A

A.26B.25C.24D.以上答案都不对

7.以下程序段的输出结果是:D

chara[]="ABCDE”;

char*p=NULL;

for(p=a;p<a+5;p++)

(

printf(、、%s\n〃,p);

}

A.ABCDEB.AC.ED.ABCDE

BDBCDE

CCCDE

DBDE

EAE

阅读下列函数,函数功能为ーA___〇

voidExchange(int*pl,int*p2)

intp;

p=*pl;

*pl=*p2;

*p2=p;

)

A.交换・pl和・p2的值B,正确,但无法改变*pl和*p2的值

C.交换・pl和・p2的地址D.可能造成系统故障

9.表达式!!6的值是__A»

A.6

B.0

C.1

D.65530

10.inta[]={2,6,10,14,16},*p=a+2;表达式・(p-1)*(p+1)[1J的值为:B

A.84B.96C.140D.60

二、简答题(30%)

1.下面程序代码给出了交换两个整数的swap函数。试改写该函数,以避免生成临时存储单元。

voidswap(int&nlzint&n2)

(

inttemp;

temp=nl;nl=n2;n2=temp;

}

nl+=n2;

n2=nl-n2;

nl-=n2;

第2页

2.下面哪些(如果有)名字是非法的?说明原因并更正每个非法的标识符名字。

(a)intdouble=3.14159;

(b)char_a;

(c)boolcatch-22;

(d)char1_or_2=,11;

(e)floatFloat=3.14f;

线

3.写出下面程序的运行结果,并说明理由。

#include<stdio.h>

voidFunc(intx)

{

x=20;

)

main()

(

intx=10;

Func(x);

printf(n%d",x);

10

4.写出下面程序的运行结果,并说明其理由。

#include"stdafx.h”

#include"stdio.h"

intmain(intargczchar*argv[])

(

inta;

int&b=a;

b=10;

printf(na=%d\n*\a);

return0;

}

10

第4页

5.阅读下列程序,写出运行结果。

#include<stdio.h>

main〇

(

inta[6][6]zi,j;I(n=6)

for(i=l;i<6;i++)

(

for(j=l;j<6;j++)

{

a[i][j]=(i/j)*(j/i);

)

}

for(i=l;i<6;i++)

(

for(j=l;j<6;j++)

|

printfド%2d”,a[i][j]);

)

printfC\n");

线

三、程序设计题(40%)

1.编写ー个函数エnverse,实现将字符数组中的字符串逆序存放的功能。

[提示:有两种方法:

(1)用数组a存放逆序存放前的数组元素,用数组b存放逆序存放后的数组元素:

(2)用ー个数组实现逆序存放,借助于ー个中间变量temp,将数组中首尾对称位置的元素互换,

i指向数组首部的元素,从〇按依次加1变化,j指向数组尾部的元素,从n-l按依次减1变化,

当变化到i>j时结束元素互换操作。]

VoidInverse(char*p)

{intn,i;

chartemp;

for(n=0;p[n];n4-+);

n-;

for(i=0;i<n-i;i++)

(

temp=a[i];

a[i]=a[n-i];

a[n-i]=temp;

I

第6页

2.不用strcat函数编程实现字符串连接函数strcat的功能,将字符串t连接到字符串s的

尾部。

[提示:用i和j分别作为字符数组s和字符数组t的下标,先将i和j同时初始化为〇,

然后移动i使其位于字符s的尾部即字符串结束标志处,再将字符数组t中的字符依次拷贝到字

符数组s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论