2014年春C程序设计期末试卷

更新时间:2024-04-13 03:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

诚信应考 考出水平 考出风格

浙江大学城市学院

2013 — 2014学年第2学期期末考试试卷

《C程序设计基础与实验》

开课单位:计算分院 ;考试形式:闭卷;考试时间:2014年6月23日; 所需时间:120分钟 题序 得分 评卷人 一 二 三 四 五 总 分 注:请在答题卷上答题。

一、 判断题 (本大题共10题,每题1分,共10分)

1、 程序经过编译、链接,并产生可运行文件,程序就一定没有错误了。 2、 赋值号左边必须为变量。

3、 定义int a = 2, b = 0;,表达式!a && b的值是0。 4、 若有宏定义:#define M(x,y,z) x/y-z

程序段

int a=2,b=3,c=5; a=M(a*a,b*b,c*c); printf(\则计算结果为-25。

5、 动态变量的值是在整个程序运行结束后才释放存储单元。

6、 for(表达式1;表达式2;表达式3) 循环体。以上for循环语句先执行“表达式1”,

再执行“表达式2”,如果“表达式2”条件成立,执行“表达式3”,然后执行“循环体。 7、 二维数组列的长度可以省略,行不可以省略。 8、 在表达式中数组的元素可以写成指针形式,指针也可写成数组形式,两者可以相互转换。 9、 函数的形参是指针,调用的实参可以是地址或指针。 10、 定义一个结构体就相当于定义了一个新的自定义变量。

二、 单选题 (本大题共10题,每题2分,共20分)

11、 在C程序设计中,下列优先级最低的是 。

A. ! B. / C. == D. ->

12、 假定x和y为float类型,则表达式x=2,y=x+3/2 的值是 。

A. 3.500000 B. 3 C. 3.000000 D. 2.000000

13、 设有char a[80]=\则printf(“%d %d”,strlen(a),sizeof(a));的值

是 。

2013-2014学年《C程序设计基础与实验》期末考试试卷 第1页 共7页

A. 4 5 B. 5 4 C. 4 80 D. 5 80

14、 已有定义:int x=1, y=2, z=3;,则表达式z-y

A.0

B. 1

C. 2

D. 3

15、 以下函数参数形参和实参的正确说法是 。

A. 只有当实参与其对应的形参同名时才占用一个共同的存储单元 B. 形参是虚拟的,不占用内存单元

C. 实参与其对应的形参共同占用一个存储单元 D. 实参与其对应的形参各占用独立的存储单元 16、 下列叙述中正确的是 。

A. break 语句只能用于switch 语句 B. 在switch 语句中必须使用default

C. break 语句必须与switch 语句中的case 配对使用 D. 在switch 语句中,不一定使用break语句 17、 下列叙述中正确的是 。

A. do-while语句构成的循环不能用其它语句构成的循环来代替 B. do-while语句构成的循环只能用break语句退出

C. 用do-while语句构成的循环,在while后的表达式为零时结束循环 D. 用do-while语句构成的循环,在while后的表达式为非零时结束循环 18、 以下能正确定义数组并正确赋初值的语句是 。 A、int d[3][2]={{1,2},{3,4}}; B、int c[2][]={{1,2},{3,4}}; C、int a[1][2]={{1},{3}}; D、int N=5,b[N][N];

19、 若有以下说明,且0<=i<10,则对数组元素int a[] = {0,1,2,3,4,5,6,7,8,9}, *p

= a, i; 的错误引用是 。 A. *(a+i) B. a[p-a+i] C. *(&a[i]) D. p+i

20、 设有如下定义,则对data中的a成员的正确引用是 。

struct sk{

int a; float b;

} data, *p=&data; A. (*p).a B. p->data.a

C. (*p).data.a D. p.data.a

三、 程序填空题(每题2分,共20分)

1)、 输入一批整数(以零或负数为结束标志),求最大值,请选择填空。

运行示例:Enter integers: 9 33 69 10 31 -1 max = 69 #include main()

{ int x, max;

printf(\ scanf(\ 21 ;

while( 22 ){

2013-2014学年《C程序设计基础与实验》期末考试试卷 第2页 共7页

if(max < x) max = x; 23 ; }

printf(\ 24 \ max); }

21、A. max = x B. x = max C. max = 0 22、A. x >= 0

D. max = 10000 B. x > 0

C. x != 0 D. x < 0 || x == 0

23、A. scanf(\ B. scanf(\C. x = max 24、A. max

C. %d

D. max = x B. %.0f D. %x

2)、 输入x,求下列算式的值,要求精确到最后一项的绝对值小于10-4。要求定义和调用

函数fun(x, e)计算下列算式的值,e为精度,请填空。

2nx2x4x6nxs?1????......?(?1) 2!4!6!(2n)!运行示例: Enter x: 1.57

s = 0.00

#include #include void main() { double s, x;

double fun(double x, double e); printf(\ scanf(\ s = 25 ; printf (\}

double fun(double x, double e) { int i = 1;

double item = 1, sum = 1; while( 26 ){ item = 27 ; sum = sum + item; i++; }

28 ; }

25、A. fun(0.0001, x) C. fun(x, 1E-4) 26、A. item <= e

B. fun(x, 0) D. fun(x, 0.001) B. fabs(item) < e

D. fabs(item) >= e

B. item*x*x/((2*i-1)*(2*i))

C. item > e 27、A. item*x*x/((i-1)*i)

2013-2014学年《C程序设计基础与实验》期末考试试卷 第3页 共7页

C. -item*x*x/(2*i-1)/(2*i) 28、A. return C. return item

D. -item*x*x/(2*i-1)*(2*i)

B. return sum D. return sum + 1

3)、 下列程序先消除输入字符串的前后空格,再判断是否是“回文”(即字符串正读和倒读

都是一样),若是则输出YES,否则输出NO。请填空。 运行示例:

Enter x: abcba Enter x: abccba YES YES #include #include void main(void) { char s[80], *p, *q; int n; printf(\ gets(s); p = s; while ( *p == ' ') p++; n = strlen(s); q = 29 ; while ( *q == ' ') q--; while ( 30 && *p ==*q){ p++; q--; } if ( p

29、A. s+n B. s+n-1 C. s+n+1 30、A. pq C. p

Enter x: abcab

NO

D. s-n D. p>q-1

四、 程序阅读题(每题3分,共30分)

31、 执行以下程序,则下面程序的运行结果是 。

#include

void main() { int a,b,c,x; a=b=c=0; x=35; if(a!=0) x--; else if(!b!=0) if(c!=0) x=3; else x=4;

printf(\}

2013-2014学年《C程序设计基础与实验》期末考试试卷 第4页 共7页

A. 3 B. 4 C. 34 32、 以下程序运行时,输出结果是 。 #include void main() { int i=0; for(i=i+3;i<6;i=i+2)

switch(i%5){ case 0: printf(\ case 1: printf(\ default: printf(\ case 2: printf(\ } }

A. *# B. !& C. !*# D. *#* 33、 以下程序运行后的输出结果是 。 #include void main(void) { int num=0;

while(num<6) { num++; if(num==3) break; printf(\ } }

A. 12 B. 13 C. 10 D. 11 34、 以下程序运行后的输出结果是 。 #include void main() { int i,b,k=0; for(i=1;i<5;i++){ b=i%3; while(b>0){ b--;k++; } } k=k+b; printf(\} A. 3 B. 4 C. 5 D. 6 35、 以下程序运行后,输出结果是 。

#include int f(int x)

{ static y=1; y=y*x; x=x+y;

2013-2014学年《C程序设计基础与实验》期末考试试卷 D. 35

第5页 共7页

return x; }

void main() { int k=5; printf(\}

A. 50 B. 55 C. 60 D. 65 36、 以下程序运行后,输出结果是 。 #include

int MinDivisor( int m, int n) {

if(m%n==0) return n; else

return 2*MinDivisor(n, m%n); }

void main()

{ printf(\} A. 8 B. 12 C. 16 D. 20 37、 以下程序运行后,输出结果是 。 #include #include void fun(char a[]) { int i,j,temp,n; n=strlen(a);

for(i=0;a[i]!='\\0';i++){ temp=a[n-1]; for(j=n-1;j>=i;j--) a[j]=a[j-1]; a[i]=temp; } }

void main()

{ char a[]=\ fun(a);

printf(\}

A. abcdefgh B. hgfedcba C. dcbahgfe 38、 以下程序运行后,输出结果是 。

#include int p(int *a, int b) { *a = *a -1; b++; return b; }

2013-2014学年《C程序设计基础与实验》期末考试试卷 D. hgfeabcd

第6页 共7页

#include void main( )

{ int n,x=3, y=5; n=p(&x, y)+p(&y, x); printf(\} A. 8 B. 9 C. 10 D. 11 39、 以下程序运行后,输出结果是 。

#include void main( )

{ char a[8]=\ int i;

for(i=0,ch=a+1; *ch != '\\0'; ch=ch+2,i++) a[i]=*ch; a[i]='\\0';

printf (\}

A. FDB B. BDF C. BCDEFG D. ABCDEFG 40、 执行以下程序,下面程序的运行结果是 。

提示:'a'的ASCII值是97,'0'的ASCII值是48。 #include void main(void) { FILE *fp;

char a[7]=\fp=fopen(\

for(i=0;i<4;i++) fputc(a[i],fp); fclose(fp);

fp=fopen(\

for(i=0;(ch=fgetc(fp))!=EOF;i++) b[i]=ch-'0'; fclose(fp); puts(b); } A、1234

B、123456

C、abcd

D、abcdef

五、 程序设计题(每题10分,共20分)

41、 编程:在主函数中输入i,j,k;并调用mysum函数,自定义函数mysum的功能

是求1+2+…+n。求下列表达式的值并输出计算后的结果:

1 ? y ? ( 2?...?i)*(1?2?...?j)

42、 编程,输入n个数,求n个数中大于平均值的奇数个数并输出,要求使用数组。

示例:平均值(7+2+3+8+9+5)/6=5.67,大于平均值的奇数个数2个(7、9)。

1?2?...?k2013-2014学年《C程序设计基础与实验》期末考试试卷 第7页 共7页

浙 江 大 学 城 市 学 院

2013-2014学年《C程序设计基础与实验》期末考试试卷 第8页 共7页

本文来源:https://www.bwwdw.com/article/ra0p.html

Top