厦门大学C语言半期考试卷附答案.doc_第1页
厦门大学C语言半期考试卷附答案.doc_第2页
厦门大学C语言半期考试卷附答案.doc_第3页
厦门大学C语言半期考试卷附答案.doc_第4页
厦门大学C语言半期考试卷附答案.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

厦门大学C程序设计课程试卷软件学院 系 2007 年级 专业主考教师: 试卷类型:(A卷)班级: 姓名: 学号: 题号一二三四总分评卷人得分一、 选择题(本大题共22小题,每小题1分,共22分)1. 以下叙述中错误的是( )。A函数是C程序的基本单位B一个C源程序可以包含多个main()函数CC程序中的每一个语句必须有一个分号DC程序中注释部分可以出现在程序中任意合适的地方2. 以下属于C语言合法命名的为( )A_intBintCint1D1int3. 指定变量c、d为无符号短整型数据,下列语句正确的是( )Aunsigned int c, d;Bunsigned long c, d;Cshort int c, d;Dunsigned short c, d;4. 已知字母A和a的ASCII码分别是65和97,则用八进制表示的字符常量101是( )AA Ba CeD非法的常量5. 已知a=1,b=5。执行输入语句 scanf(%d ;%d,&a,&b);正确的键盘输入是( )A3 4B3,4Ca=3,b=4D3 ;46. 下列语句的屏幕输出会是( )printf( “abctderftg” );AabcdfgBfabcgdeCfgdeDabcde fg7. 以下程序段的输出结果是( ) int x=100,y=200; printf(“%d”,(x,y);A200B100C100 200D不确定的8. a=5,b=4; 则printf (“%d”, ab?a:b+1); 的输出为( )A3B4C5D69. int a=3,b=4,c=5;下列表达式的值为0的是( )Aa&bBa|b+c&b-cCa=bD!(ab)&(n=cd);后m,n的值是( ) A0,0 B1,0C0,1D1,111. 设x的值为10,则表达式1x2的值为( )A0B1 CTrueDFalse12. 若要求从键盘读入含有空格字符的字符串,应使用函数( )。Agetc( )Cgetchar( )Bgets()Dscanf()13. 嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( )组成配对关系。 A缩排位置相同的if B在其之前未配对的if C在其之前未配对的最近的ifD同一行上的if14. 假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是( )A3B6C10D2015. 有char num=”9876543210”;则数组num所占存储空间的字节数为( )A9B10C11D2016. 定义如下变量和数组:int i; int x33=1,2,3,4,5,6,7,8,9;则语句for(i=0;i3;i+) printf(%d ,xi2-i); 的输出结果是( )A1 5 9 B1 4 7C3 5 7 D3 6 917. 不能把字符串:Hello!赋给数组b的语句是( )。Achar b10=H,e,l,l,o,!; Cchar b10; b=Hello!;Bchar b10; strcpy(b,Hello!); Dchar b10=Hello!;18. 若有以下函数定义,函数返回值的类型是( )fun (double a) return a*a; AvoidBintCdoubleD语法错误19. 设有函数定义:void p(int x)printf(%d,x) ; 则正确的函数调用是( )。Ap(3);Cprintf(%d,p(3);Ba=p(3); Dp(int x);20. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。A地址传递C由实参传给形参,再由形参传回实参B单向值传递D传递方式由用户指定21. 以下叙述中,错误的是( )。A不同函数中可以使用相同的变量名C形式参数是局部变量B全局变量和局部变量可以同名Dmain() 函数中定义的变量在整个程序中都可使用22. 设有两个字符串p和q,将字符字符串p接到q后面的函数是( )。Astrcat()Cstrlen()Bstrcmp()Dstrcpy()二、 填空题(本大题共7小题,每小题1分,共8分)1. 设x=2.5, a=7, y=4.7; 则算术表达式x+a%3*(int)(x+y)%2/4的值为 。2. 表达式1!=2的值是 。3. 求:5%3值为 。4. 以上程序段的输出结果是 。char str1=Chinan Bei jing”; char str2=“2008”;strcpy(str1, str2); printf (“%s”, str1);5. 以下程序的输出结果是 。void fun(int x, int y, int z) z=x*x+y*y; void main() int a=31; fun(5,2,a); printf(%d,a); 6. 执行下列语句int a=8; a+=a-=a*a; 后,a的值是 。7. 设i的值为4,经过j=+i; 得i的值 j的值 。三、 程序分析题(本大题共10小题,共40分)1. 下面程序段的运行结果是 _ _ .#include main() int n=0; while( n+ = 2 ) ;printf( %d, n ); 2. 当 a = 1, b = 3, c = 5, d = 4 时,执行下面一段程序后 x 的值是 _ _ .if (a b)if (c d) x = 1;else if (a c)if (b d) x = 2;else x = 3;else x = 6;else x = 7;3. 执行下面一段程序后 score 的值是 _ _ _ .char class = C; int score;switch( class )case A: score = 95; break; case B: case C: score = 75;case D: score = 65; break; default: score = 55; 4. 当运行以下程序时,从键盘键入right?(代表回车),则下面程序的运行结果是 _ _ .#include main() char c;while (c = getchar() != ?)putchar(+c); 5. 下面程序运行后,i的值是 _ _ ,k的值是 _ _ .#include main() int i, j, k=19; while (i=k-1) k -= 3;if (k % 5 = 0) i+; continue; else if (k 5) break; i+;6. 下面程序的运行结果是 _ _ .includeint a=3, b=5 , c=0;void main( )int max (int a, int b);int a=8;printf (“max=%d, c=%dn”, max (a, b), c);int max (int a, int b)int c;c= ab?a:b;return (c); 7. 下面程序的运行结果是 _ _ .void fun(int x,int y) x=x+y;y=x-y;x=x-y; printf(%d,%d,x,y);void main() int x=2,y=3; fun(x,y); printf(%d,%dn,x,y); 8. 下面程序的运行结果是 _ _ .main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; printf(a=%d,b=%d,a,b);9. 以下函数的功能是计算:s=1+1/2!+1/3!+1/n!,请填空。double fun(int n) double s=0.0,fac=1.0; int i; for(i=1;i=n;i+) fac=fac ; s=s+fac; return s;10. 下面程序的运行结果是 _ _ .main() int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6,10,11,22,3; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij;row=i;colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum); printf(n); 四、 程序题(本大题共2小题,共20分)1. 输入10个学生的成绩,求平均成绩,并统计在平均成绩以上(含平均值)的学生个数。2. 编一函数判别某一数是否为素数,若是,返回值为1,否则,返回值为0。在main()函数中调用该函数。五、 改错题(本大题共1小题,共10分)提示:l 下面给出的程序中,每行至多只有一个错误,共有四处错误l 请将正确的语句单独写在出错语句的右边,用【】部分来标示你写下的正确语句l 不要改动 main 函数,不得增行或删行,也不得更改程序的结构!l 给定程序中 fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如, 给字符数组s输入:AAaaBBb123CCccccd,则应输出结果:upper = 6, lower = 8。#include int upper=0,lower=0;void fun( char s ) int i;for( i=0; i = A | si = Z ) upper + ;elselow + ; main() char s100; printf( nPlease a string : ); gets ( s );fun ( s );printf( n upper = %d lower = %dn, upper, lower ); 2007年C语言期中考试答案一、选择题15:BADAD610:CACDA11_15:ABCDC1620:CCBAB2122:DA二、填空题(1)2.500000(2)1(3)2(4)2008(5)31(6)-112(7)5 5三、程序分析题(1)4(2)2(3)65(4)sjhiu(5)64(6)max=8,c=0(7)3,2,2,3(8)a=2,b=1(9)/i;或*i; fac=1/fac;(10)max=22,row=2,colum=2四、程序题 本大题答案不唯一,以下代码在 VC6.0 环境下编译通过(1)#includeint main()int points10;int average=0, numGood=0;int i;for( i=0; i10; i+ )printf(Please input the %d students point: , i);scanf(%d, &pointsi);average += pointsi;average /= 10;for( i=0; i= average )numGood +;printf( The average point is: %d, the number of good students is: %dn, average, numGood );/(2)#include#includeint IsPrime(int n)int i = 0, temp = 0;if( n = 0 | n = 1 | n = 2 )return(0);temp = (int)sqrt(n);for( i=2; i=0: );scanf( %d, &num );isPrime = IsPrime( num );if(isPrime)printf( %d is a prime!n, num );elseprintf( %d is not a prime!n, num );return 0;五、改错题下面给出的程序中,每行至多只有一个错误,请将正确的语句写在出错语句的右边,例如:scanf(%d, input); 【改为:scanf(%d, &input);】(注:【】部分为你写下的正确语句)/ 给定程序中 fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如, 给字符数组s输入:AAaaBBb123CCccccd,则应输出结果:upper = 6, lower = 8。请改正程序中的错误,使它能计算出正确的结果,本题共有四处错误。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include int upper

温馨提示

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

评论

0/150

提交评论