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. 设n=3;则n++的结果是()。 A. 2B. 3C.4D. 5 5. 设整型变量n=10,i=4,则赋值运算n%=i+l执行后,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. x!=l D. x!=0 8. 若有以下说明和语句: struct worker { int no; char *name; }work, *p= 则以下引用方法不正确的是()。 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*m+i B) i*m+j C) i*m+j-l i*m+j+l 二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1 ・ #include main() { int i=16,j,x=6; j=i+++l; x*=i=j; printf(66%d,%d\n,,,j,x); } 运行结果是: 2 ・ #include #include main() { int a=l,b=4,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)* 1.2/c+x; printf(“%hiT,z); } 运行结果是: 3 ・ #include main() { int a,b,c,d; a=c=0; b=l; d=20; if(a) d=d-10; else if(!b) if(!c) d=25; else d=15; printf(66d=%d\n,,,d); } 运行结果: 4. main() int i=10; switch(i){ case 9: i+=l; case 10: i+=l; case 11: i+=l; default: i+=l; } printf(“ %d“,i); } 运行结果: 5 ・ #include main() { int a[]={l,2,3,4},i,j,s=0; j=l; for(i=3;i>=0;i—) { s=s+a[i]*j; j=j*10; } printf(“s=%d\n“,s); } 运行结果: 6. func(int x) {x=20; } main() { int x=10; func(x); printf(“ %d”,x); } 运行结果: 三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20 分,每空2分) 1. 已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年 的程序如下: main() { int year,leap; scanf(“%d“, if() leap=l; else leap=O; if() printf(“是润年”); else printf(“不是润年”); } 2. 将100至200间不能被3整除的数输出: main() { int n; for(n=100;n{ {1,2,3,4}{9,8,7,6}{10,-10,-4,4}}; for(i=0;i<=2;i++) for(j=0;jmax) { max=a[i][j]; } printf(“max=%d,row=%d,colum=%d\n“,max,row,colum); } 5. 下面函数的功能是将两个字符串s和t连接起来。 char *conj(char *s, char *t) { char *p=s; while(*s); while(*t) { *s=; s++; t++; } *s= \0 ; 四、编程(40分) 1. 计算1-1/2+1/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、d=20 4、13 5、s=1234 6、10 三、阅读程序