C语言程序设计期末试题C
C语言程序设计期末试题C 一、选择题20分,每题2分 1. 以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. ab.c 2. C程序是由构成的。 A. 主程序与子程序 B. 主函数与若干子函数 C. 个主函数与一个其它函数 D. 主函数与子函数 3. 以下说法中正确的是o A. 在C语言中,实参与其对应的形参各占独立的存储单元; B. 在C语言中,实参与其对应的形参共占同一个存储单元; C. 在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元; D. 在C语言中,形参是虚拟的,不占存储单元。 4. 设n3;则n的结果是。 A. 2B. 3C.4D. 5 5. 设整型变量n10,i4,则赋值运算nil执行后,n的值是。 A. 0B. 1C. 2D. 3 6. 凡是函数中未指定存储类别的局部变量其隐含的存储类别是。 A.自动auto B.静态static C.外部extern D.寄存器register 7. 在while x语句中的x与下面条件表达式等价的是。 A. x 0 B. x 1 C. xl D. x0 8. 若有以下说明和语句 struct worker { int no; char *name; }work, *pwork; 则以下引用方法不正确的是。 A. work.no B. *p.no C. p-no D. work-no 9. 以下对二维数组进行正确初始化的是。 A. int a[2][3]{{1,2},{3,4},{5,6}}; B. int a[][3]{ 1,2,3,4,5,6}; C. int a[2][]{ 1,2,3,4,5,6}; D. inta[2][]{{l,2},{3,4}}; 10. 二维数组a有m列,则在之前的元素个数为。 A j*mi B i*mj C i*mj-l i*mjl 二、给出下列程序的运行结果20分,前四题每题3分,后两题每题4分 1 ・ includestdio.h main { int i16,j,x6; jil; x*ij; printf66d,d\n,,,j,x; } 运行结果是 2 ・ includestdio.h includemath.h main { int al,b4,c2; float x10.5,y4.0,z; zab/csqrtdoubley* 1.2/cx; printf“%hiT,z; } 运行结果是 3 ・ includestdio.h main { int a,b,c,d; ac0; bl; d20; ifa dd-10; else ifb ifc d25; else d15; printf66dd\n,,,d; } 运行结果 4. main int i10; switchi{ case 9 il; case 10 il; case 11 il; default il; } printf“ %d,i; } 运行结果 5 ・ includestdio.h main { int a[]{l,2,3,4},i,j,s0; jl; fori3;i0;i { ssa[i]*j; jj*10; } printfsd\n,s; } 运行结果 6. funcint x {x20; } main { int x10; funcx; printf“ %d”,x; } 运行结果 三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。20 分,每空2分 1. 已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年 的程序如下 main { int year,leap; scanf“%d,year; if leapl; else leapO; if printf“是润年”; else printf不是润年”; } 2. 将100至200间不能被3整除的数输出 main { int n; forn100;n200;n { ifn30 ; printf“%d ”,n; } } 3. 判断ni是否是素数 include math.h main { int m,i,k; scanfd,m; ksqrtm; fori2;ik;i ifmi0 ; ifikl printflld is a prime number\n,,,m; else printfd is not a prime number\n,m; } 4. 给定一 3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。 main { int i,j,row0,colum0,max; static int a[3][4{ {1,2,3,4}{9,8,7,6}{10,-10,-4,4}}; fori0;i2;i forj0;j3;j ifa[i][j]max { maxa[i][j]; } printfmaxd,rowd,columd\n,max,row,colum; } 5. 下面函数的功能是将两个字符串s和t连接起来。 char *conjchar *s, char *t { char *ps; while*s; while*t { *s; s; t; } *s\0; 四、编程(40分) 1. 计算1-1/21/3-1/4...1/99-1/100...道到最后一项的绝对值小于10为止。(13分) 2. 输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。(13 分) 3. 任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。(14分) C语言程序设计期末试题C答案 答案 一、选择题 1、D, 2、B, 3、A, 4、B, 5、A, 6、A, 7、D, 8、D, 9、B, 10、B 二、给出下列程序的运行结果 1、17, 102 2、13.700000 3、d20 4、13 5、s1234 6、10 三、阅读程序