《《C语言程序设计》(3学分)试卷A(16页).doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》(3学分)试卷A(16页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-说明: 请考生将答案写在“武汉大学答题纸”上并标明题号,否则不得分。试卷中C语言程序的开发环境是VC 6。一、选择题(共20小题,每小题2分,共40分)1. 以下正确的C语言自定义标识符是_。A) _1aB) 2a_ C) doD) a.122. 温度华氏和摄氏的关系是: C=(F-32)。已知:float C,F;由华氏求摄氏的正确计算的表达式是_。A) C=5/9(F-32) B) C=5*(F-32)/9 C) C=5/9*(F-32) D) 三个表达式都正确3. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是_。A) scanf(%5.2f,&x)B) sca
2、nf(%d,&x);C) scanf(%f,&x);D) scanf(%f,x);4. 一个C程序的执行是从( )A) main()函数开始,直到main()函数结束 B) 第一个函数开始,直到最后一个函数结束C) 第一个语句开始,直到最后一个语句结束 D) main()函数开始,直到最后一个函数结束5. 判断char型变量c1是否为数字的正确表达式为 _。A) 0=c1=0 &c1=9C) 0=c1=0&c1=96. switch(表达式)语句中的“表达式”,允许的类型是_。 A) float, int B) float, int, charC) int, char D) char, dou
3、ble7. 设int i,j, x=0;for(i=5;i;i-) for(j=0;j4;j+) x+;则循环体结束后,x的值为_。A) 5B) 20C) 25 D) 死循环8. 设x和y均为int型变量,则执行下面的循环后,y值为_。for(y=1,x=1;y=10)break; if (x%2=1) x+=5; continue;x-=3;A) 5B) 6C) 50 D) 519. 设有数组定义:int a5;则下列给数组元素赋值错误的是_.A) a3=93;B) scanf(%c,a3);C) a3=a0+a1;D) a3=a+3;10. 若用数组名作为函数调用时的实参,则实际上传递给形
4、参的是_ 。A) 数组首地址 B) 数组的第一个元素值C) 数组中全部元素的值 D) 数组元素的个数11. int a23=1,2,3;,则a11的值是_。 A) 0B) 1 C) 2 D) 312. 若定义数组并初始化int b10= 1,2,3,4,以下说法错误的是_A)b8的值为0B)b1的值为1C)b3的值为整数D)b10不是b数组中的元素13. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_。A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参14. 在C语言中,下列错误的说法是_。 A)
5、 函数可以递归调用 B) 不允许在函数定义中再定义函数 C) 递归程序不可能用非递归算法实现 D) 对于continue语句,可以通过改变程序的结构而不使用它15. 在一个源文件中定义的全局变量的作用域为( )。A)本文件的全部范围。 B)本程序的全部范围。C)本函数的全部范围。 D)从定义该变量的位置开始至本文件结束16. 有以下程序void main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i3;i+) printf(%d,t2-ii);程序执行后的输出结果是_。A)753 B)357 C)369 D)75117.若有说明float *p,m=3.14;
6、则能正确表示p指向m的赋值语句是_。A) p=m; B) p=&m; C) *p=m; D) *p=&m;18. 若有下列定义:int a5,*p=a; 则能正确表示a数组某个元素地址的是_。A) &a B) p+2 C) a+ D) &a519. 若有以下说明,则*(a+a3)的值为_。int a10= 9,1,8,2,7,3,6,4,5,0;A)1B) 2C) 8D) 1120. C语言中,函数返回值的类型是由_决定的。 A) 调用函数时动态决定的B) return语句中的表达式类型 C) 调用该函数的主调函数类型 D) 定义函数时,所指定的函数类型二、填空题(共7小题10空,每空2分,共
7、20分)1.已知int x=5,y=1,z=2;执行语句x%=y+z;后,x的值是_(1)_。2.设int a34=1,2,3,4,5,6,7,8,9;则表达式a12+a23的值是_(2)_。3. 学生成绩的字每等级和分数范围如下: 字母等级 分数范圈 A 90100 B8089 C7079 D 6069 E 059 其它字母 输入错误 下列程序输入字母等级之后,输出相应的分数范围。#include void main() char score; scanf(%c,&score); switch(_(3)_) case A: printf(A:90100n); break; case B: p
8、rintf(B:8089n);break; case C: printf(C:7079n);break; case D: printf(D:6069n);break; case E: printf(E:059n);break; _(4)_: printf(输入错误n); 4. 设x为int型变量,请写出一个关系表达式_(5)_,用以判断x能同时被3和5整除时,关系表达式的值为真。5. 对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。 #include #define N 10 void main() int i,aN; for(i=N-1;_(6)_;i-) scanf(%
9、d,&ai); for(i=0;iN;i+) printf(%dt,ai);printf(n);6. 下面程序的功能是显示具有N个元素的数组s中的最大元素。#define N 20int fmax(int s,int n) int k=s0,i;for(i=1;in;i+)if (_(7)_) k=si ;return(k);void main() int i,aN;for(i=0;i20|x-10)if(yx) printf(Good);else printf(Bad); 如果输入30,150, 输出为()2. main() int a=0,i;for(i=0;i4;i+) switch(i
10、)case 0:case 1:a+;case 2:a+=2;default:a+=3;printf(%dn,a);3. void main() int x,y;scanf(%d,&x);doy=x%10;printf(%d,y);x/=10; while(x);输入整数123454. void main() int i=5; for ( ;ib) a-=b; while (ab) b-=a; printf (%dn,a); 6. void main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(s
11、=%d,s);7. int f(int x) return x+3; void main() int a=1; while(f(a)10) a+;printf(“a=%dn”,a) 8. int f(int b,int n) int i,r=1; for(i=0;i=n;i+) r=r*bi; return r;void main() int x,a=1,2,3,4,5,6; x=f(a,3);printf(%dn,x);9. funa(int a) int b=1;static int c=1;a+=c+b;b+;c+;return(a);void main() int i,k=0;for(i=1;i3;i+)k+=funa(i);printf(%dn,k);10. void main() int a=1,2,3,4,5,*p; p=a; (*(p+1)+; printf(%d,%dn,*p,*(p+1); 四、编程题(共2小题,每小题10分,共20分)1. 请编写程序计算并输出n(包括n)以内能被3或5整除的所有自然数的倒数之和,n从键盘输入值。2. 请编写函数int primesum(int x,int n)求一组数x中所有质数的和, n为这组数的个数,在主函数中输入数据并调用该函数。 第 17 页-
限制150内