20套大学计算机C语言期末考试复习试题及答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《20套大学计算机C语言期末考试复习试题及答案.pdf》由会员分享,可在线阅读,更多相关《20套大学计算机C语言期末考试复习试题及答案.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、判断 共10题 (共计10分) 第1题 (1.0分) 题号:1488 函数即可以嵌套定义,又可以嵌套调用. 答案:N 第2题 (1.0分) 题号:1256 unsigned 和 void 在 C 中都是保留字. 答案:Y 第3题 (1.0分) 题号:1280 表达式 +i 表示对变量 i 自加1. 答案:Y 第4题 (1.0分) 题号:1282 C 语言源程序的基本结构单位是 main 函数. 答案:N 第5题 (1.0分) 题号:1276 字符常量的长度肯定为1. 答案:Y 第6题 (1.0分) 题号:1469 char a=a,b,c;char b=abc;数组a和数组 b 占用的内存
2、空间大小不一样. 答案:Y 第7题 (1.0分) 题号:1249 若有 int i=10,j=2; 则执行完 i*=j+8;后 i 的值为28. 答案:N 第8题 (1.0分) 题号:33 int i,*p=&i;是正确的 C 说明。 答案:Y 第9题 (1.0分) 题号:1250 While 循环语句的循环体至少执行一次. 答案:N 第10题 (1.0分) 题号:1510 有数组定义int a22=1,2,3;则a01的值为0. 答案:Y 二、单项选择 共30题 (共计30分) 第1题 (1.0分) 题号:456 执行下面程序后,输出结果是() 。 main() a=45,b=27,c=0;
3、 c=max(a,b); printf(%dn,c); int max(x,y) int x,y; int z; if(xy) z=x; else z=y; return(z); A:45 B:27 C:18 D:72 答案:A 第2题 (1.0分) 题号:437 下列数组说明中,正确的是() 。 A:int array4; B:int array; C:int array5; D:int array3; 答案:A 第3题 (1.0分) 题号:2396 下面有关 for 循环的正确描述是 () A:for 循环只能用于循环次数已经确定的情况 B:for 循环是先执行循环体语句,后判断表达式 C
4、:在 for 循环中,不能用 break 语句跳出循环体 D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 答案:D 第4题 (1.0分) 题号:2817 以下程序的输出结果是(). main() int i,j,k,a=3,b=2; i=(-a=b+)?-a:+b; j=a+;k=b; printf(i=%d,j=%d,k=%dn,i,j,k); A:i=2,j=1,k=3 B:i=1,j=1,k=2 C:i=4,j=2,k=4 D:i=1,j=1,k=3 答案:D 第5题 (1.0分) 题号:2866 若有下列定义,则对 a 数组元素地址的正确引用是(). int a
5、5,*p=a; A:*(p+5) B:*p+2 C:*(a+2) D:*&a5 答案:C 第6题 (1.0分) 题号:711 下列选项中正确的语句组是() 。 A:char s8; s=Beijing; B:char *s; s=Beijing; C:char s8; s=Beijing; D:char *s; s=Beijing; 答案:D 第7题 (1.0分) 题号:3191 若变量 a,i 已正确定义,且 i 已正确赋值,合法的语句是() A:a=int(i); B:a=1 C:+i; D:a=a+=5; 答案:C 第8题 (1.0分) 题号:490 以下字符中不是转义字符的是() 。
6、A:a B:b C:c D: 答案:C 第9题 (1.0分) 题号:184 下列定义不正确的是() 。 A:#define PI 3.141592 B:#define S345 C:int max(x,y); int x,y; D:static char c; 答案:C 第10题 (1.0分) 题号:3028 char h,*s=&h;可将字符H通过指针存入变量 h 中的语句是(). A:*s=H; B:*s=H; C:s=H; D:s=H 答案:B 第11题 (1.0分) 题号:690 设 char 型变量 x 中的值为10100111,则表达式(2+x)(3)的值是() 。 A:10101
7、001 B:10101000 C:11111101 D:01010101 答案:D 第12题 (1.0分) 题号:2381 设以下变量均为 int 类型,表达式的值不为7的是() A:x=y=6,x+y,x+1 B:x=y=6,x+y,y+1 C:x=6,x+1,y=6,x+y D:y=6,y+1,x=y,x+1 答案:C 第13题 (1.0分) 题号:3124 若有说明 int a34;则对 a 数组元素的正确引用是(). A:a24 B:a1,3 C:a1+10 D:a(2)(1) 答案:C 第14题 (1.0分) 题号:679 在 C 语言中,形参的缺省存储类是() 。 A:auto B
8、:register C:static D:extern 答案:A 第15题 (1.0分) 题号:1343 C 语言源程序的基本单位是(). A:过程 B:函数 C:子程序 D:标识符 答案:B 第16题 (1.0分) 题号:3023 C 语言程序中必须有的函数是(). A:#include stdio.h B:main C:printf D:scanf 答案:B 第17题 (1.0分) 题号:3228 有 定 义 :int a=8,b=5,c;, 执 行 语 句c=a/b+0.4;后,c 的值为 () A:1.4 B:1 C:2.0 D:2 答案:B 第18题 (1.0分) 题号:640 以下
9、对二维数组 a 的正确说明是() 。 A:int a3 B:float a(3,4) C:double a14 D:float a(3)(4) 答案:C 第19题 (1.0分) 题号:2884 以下标识符中,不能作为合法的 C 用户定义标识符的是(). A:answer B:to C:signed D:_if 答案:C 第20题 (1.0分) 题号:652 在 C 语言中,引用数组元素时,其数组下标的数据类型允许是() 。 A:整型常量 B:整型表达式 C:整型常量或整型表达式 D:任何类型的表达式 答案:C 第21题 (1.0分) 题号:381 以下标识符中,不能作为合法的 C 用户定义标识
10、符的是() 。 A:answer B:to C:signed D:_if 答案:C 第22题 (1.0分) 题号:2898 已知 year 为整型变量,不能使表达式(year%4=0&year%100!=0)| year%400=0的值为真的数据是(). A:1990 B:1992 C:1996 D:2000 答案:A 第23题 (1.0分) 题号:177 以下描述中,正确的是() 。 A:预处理是指完成宏替换和文件包含中指定的文件的调用 B:预处理指令只能位于 C 源文件的开始 C:C 源程序中凡是行首以#标识的控制行都是预处理指令 D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词
11、法和语法分析作准备 答案:C 第24题 (1.0分) 题号:156 执行下列语句后的输出为() 。 int j=-1; if(j1;i-) for(j=1;ji;j+) putchar(#); A:无 B:# C:# D:# 答案:B 第27题 (1.0分) 题号:2830 下列程序的输出结果是(). 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; case 3:a+;b+;break; printf(a=%d,b=%dn,a
12、,b); A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B 第28题 (1.0分) 题号:573 C 语言中运算对象必须是整型的运算符是() 。 A:%= B:/ C:= D:= 答案:A 第29题 (1.0分) 题号:647 以下能对二维数组 a 进行正确初始化的语句是() 。 A:int a2=1,0,1,5,2,3; B:int a3=1,2,3,4,5,6; C:int a24=1,2,3,4,5,6; D:int a3=1,0,1,1,1; 答案:B 第30题 (1.0分) 题号:3135 以下数组定义中不正确的是(). A:int a23;
13、B:int b3=0,1,2,3; C:int c100100=0; D:int d3=1,2,1,2,3,1,2,3,4; 答案:D 三、程序填空 共2题 (共计24分) 第1题 (12.0分) 题号:417 /*- 【程序填空】 - 题目:利用全局变量计算长方体的体积及三个面的面积。 -*/ int s1,s2,s3; int vs(int a,int b,int c) int v; /*SPACE*/ v=【?】; s1=a*b; /*SPACE*/ s2=【?】; s3=a*c; return v; main() int v,l,w,h; clrscr(); printf(ninput
14、 length,width and height: ); /*SPACE*/ scanf(%d%d%d,【?】,&w,&h); /*SPACE*/ v=【?】; printf(v=%d s1=%d s2=%d s3=%dn,v,s1,s2,s3); getch(); 答案: =(答案1)= a*b*c =或= a * b * c =(答案2)= b*c =或= b * c =(答案3)= &l =(答案4)= vs(l,w,h) =或= vs( l , w , h ) 第2题 (12.0分) 题号:441 /*- 【程序填空】 - 题目:给定程序中函数 fun 的功能是:从低位开始取出长 整型
15、变量 s 中奇数位上的数,依次构成一个新数放在 t 中。 -*/ #include #include void fun (long s, long *t) long sl=10; s /= 10; /*SPACE*/ *t = s 【?】 10; while(s0) /*SPACE*/ s = 【?】; /*SPACE*/ *t = s%10*sl【?】; /*SPACE*/ sl = sl 【?】10; main() long s, t; clrscr(); printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The re
16、sult is: %ldn, t); 答案: =(答案1)= % =(答案2)= s/100 =(答案3)= + *t =(答案4)= * 四、程序改错 共2题 (共计22分) 第1题 (11.0分) 题号:383 /*- 【程序改错】 - 题目:给定程序的功能是:读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后 输出此文本行 (这里的“单词”是指由空格隔开的 字符串) 。例如,若输入 I am a student to take the examination., 则应输出I aM A studenT tO takE thE examination.。 - 注意:不可以增加或删
17、除程序行,也不可以更改程序的结构。 -*/ #include conio.h #include stdio.h #include ctype.h #include string.h up1st ( char *p ) /*FOUND*/ integer k = 0; for ( ; *p; p+ ) if ( k ) /*FOUND*/ if ( *p = ) k = 0; /*FOUND*/ *(p -1 ) = toupper( *( p - 1 ); else if ( *p != ) k = 1; *( p-1 ) = toupper( *(p-1) ); main( ) char c
18、hrstr81; printf( nPlease enter a string: ); gets ( chrstr ); printf( nnBefore changing:n %s, chrstr ); up1st( chrstr ); printf( nAfter changing:n %s, chrstr ); 答案: =(答案1)= int k=0; =(答案2)= if ( *p = ) =(答案3)= *(p -1 ) = toupper( *( p - 1 ); 第2题 (11.0分) 题号:431 /*- 【程序改错】 - 题目:编写函数 fun 求1000以内所有8的倍数之和
19、。 - 注意:不可以增加或删除程序行,也不可以更改程 序的结构。 -*/ #includestdio.h #define N 1000 main() int sum; sum=fun(8); printf(%d 以内所有%d 的倍数之和为:%dn,N,8,sum); getch(); int fun(int m) /*FOUND*/ int s=0;i; /*FOUND*/ for(i=1;iN;i+) /*FOUND*/ if(i/m=0) s+=i; return s; 答案: =(答案1)= int s=0 , i ; =(答案2)= for(i=1;iN;i+) =(答案3)= if(
20、i%m=0) 五、程序设计 共1题 (共计14分) 第1题 (14.0分) 题号:390 /*- 【程序设计】 - 题目:求一批数中最大值和最小值的差。 - 注意:部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何内容, 仅在函 数的花括号中填入所编写的若干语句。 -*/ int max_min(int a,int n) /*Program*/ /* End */ #define N 30 #include stdlib.h #include stdio.h main() int aN,i,k; clrscr(); for(i=0;iN;i+) ai=random(51)+10;
21、 for(i=0;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=max_min(a,N); printf(the result is:%dn,k); yzj(); getch(); yzj() FILE *IN,*OUT; int n; int i30; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n5;n+) fscanf
22、(IN,%d,&in); o=max_min(i,5); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT); 答案:- int i,max,min; max=min=a0; for(i=1;imax) max=ai; else if(aib)=c 的值为真。 答案:Y 第10题 (1.0分) 题号:1502 对二维数组 a 来说,由于 a+1与*(a+1)的值相等,因此二者的含义是一样的. 答案:N 二、单项选择 共30题 (共计30分) 第1题 (1.0分) 题号:177 以下描述中,正确的是() 。 A:预处理是指完成宏替换和文件包含中指定的文件的调用
23、 B:预处理指令只能位于 C 源文件的开始 C:C 源程序中凡是行首以#标识的控制行都是预处理指令 D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备 答案:C 第2题 (1.0分) 题号:2789 设 C 语言中,int 类型数据占4个字节,则short 类型数据占(). A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:B 第3题 (1.0分) 题号:693 以下各选项企图说明一种新的类型名,其中正确的是() 。 A:typedef v1 int; B:typedef v2=int; C:typedef int v3; D:typedef v4: in
24、t; 答案:C 第4题 (1.0分) 题号:104 以下运算符中, 优先级最高的运算符是 () 。 A:| B:% C:! D:= 答案:C 第5题 (1.0分) 题号:138 以下程序的输出结果是() 。 main() int i,j,k,a=3,b=2; i=(-a=b+)?-a:+b; j=a+;k=b; printf(i=%d,j=%d,k=%dn,i,j,k); A:i=2,j=1,k=3 B:i=1,j=1,k=2 C:i=4,j=2,k=4 D:i=1,j=1,k=3 答案:D 第6题 (1.0分) 题号:2907 以下程序段的执行结果是(). double x;x=218.82
25、631; printf(%-6.2en,x); A:输出格式描述符的域宽不够,不能输出 B:输出为21.38e+01 C:输出为2.2e+02 D:输出为-2.14e2 答案:C 第7题 (1.0分) 题号:152 以下程序的运行结果是() 。 main() int n; for(n=1;ny?+x:+y 的值为(). int x=1,y=2,z=3; A:2 B:3 C:6 D:5 答案:C 第19题 (1.0分) 题号:526 用户定义的函数不可以调用的函数是() 。 A:非整型返回值的 B:本文件外的 C:main 函数 D:本函数下面定义的 答案:C 第20题 (1.0分) 题号:25
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 20 大学计算机 语言 期末考试 复习 试题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内