2010年20套大学计算机C语言期末考试复习试题及答案(免费).pdf
《2010年20套大学计算机C语言期末考试复习试题及答案(免费).pdf》由会员分享,可在线阅读,更多相关《2010年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 占用的内存空间大小不一样.答案:Y
2、第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;c=max(a,b);printf(%dn,c);int
3、 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:在 for 循环中,不能用 break 语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须
4、用花括号括起来答案: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 a5,*p=a;A:*(p+5)B:*p+2 C:*(a+2)D:*&a5 答案:C 第6题(1.0分)题号:711 下列选项中正确的语句组是
5、()。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 以下字符中不是转义字符的是()。A:a B:b C:c D:答案:C 第9题(1.0 分)题号:184 下列定义不正确的是()。A:#define PI 3.141592 B:#define S345 C:int max(
6、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:10101001 B:10101000 C:11111101 D:01010101 答案:D 第12 题(1.0分)题号:2381 设以下变量均为int 类型,表达式的值不为7的是()A:x=y=6,x+y,x+1 B:x=y
7、=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:register C:static D:extern 答案:A 第15题(1.0分)题号:1343 C 语言源程序的基本单位是().A:过程B:函数C:子程序D:标识符答案:B 第16题(1.0分)题号:3023 C 语言程序中必须有的
8、函数是().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 以下对二维数组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:si
9、gned D:_if 答案:C 第20 题(1.0分)题号:652 在 C 语言中,引用数组元素时,其数组下标的数据类型允许是()。A:整型常量B:整型表达式C:整型常量或整型表达式D:任何类型的表达式答案:C 第21 题(1.0分)题号:381 以下标识符中,不能作为合法的C 用户定义标识符的是()。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
10、D:2000 答案:A 第23 题(1.0分)题号:177 以下描述中,正确的是()。A:预处理是指完成宏替换和文件包含中指定的文件的调用B:预处理指令只能位于C 源文件的开始C:C源程序中凡是行首以#标识的控制行都是预处理指令D:预处理就是完成C 编译程序对C 源程序第一遍扫描,为编译词法和语法分析作准备答案: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
11、,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,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
12、=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;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=【?】;s
13、1=a*b;/*SPACE*/s2=【?】;s3=a*c;return v;main()int v,l,w,h;clrscr();printf(ninput 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
14、/*-【程序填空】-题目:给定程序中函数fun 的功能是:从低位开始取出长整型变量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 resul
15、t 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.。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#include
16、 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 chrstr81;printf(nPlease enter a string:);gets(chrstr);printf(nnBefore changing:n%s,chrstr);
17、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的倍数之和。-注意:不可以增加或删除程序行,也不可以更改程序的结构。-*/#includestdio.h#define N 1000 main()int sum;sum=fun(8);printf(%d以 内 所 有%d的 倍 数 之 和为:%dn,N,8,sum);getc
18、h();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(i%m=0)五、程序设计共1题(共计 14分)第1题(14.0 分)题号:390/*-【程序设计】-题目:求一批数中最大值和最小值的差。-注意:部分源程序给出如下。请勿改动主函数main 和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。-*/int max_min(int a,int n)/
19、*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;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)prin
20、tf(Read File Error);OUT=fopen(out.dat,w);if(OUT=NULL)printf(Write File Error);for(n=0;n5;n+)fscanf(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)的值相等,因此二者的含义是一样的
21、.答案:N 二、单项选择共30题(共计 30分)第1题(1.0 分)题号:177 以下描述中,正确的是()。A:预处理是指完成宏替换和文件包含中指定的文件的调用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:t
22、ypedef v1 int;B:typedef v2=int;C:typedef int v3;D:typedef v4:int;答案: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.
23、0分)题号:2907 以下程序段的执行结果是().double x;x=218.82631;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:本函数下面定
24、义的答案:C 第20题(1.0分)题号:2567 以下标识符中,不能作为合法的C 用户定义标识符的是().A:a3_b3 B:void C:_123 D:IF 答案:B 第21 题(1.0分)题号:2401 下 面 程 序 段 的 输 出 结 果 为()int a,b;b=(a=3*5,a*4,a*5);printf(%d,b);A:60 B:75 C:65 D:无确定值答案:B 第22 题(1.0分)题号:3063 若有定义:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是().A:2.500000 B:2.750000 C:3.5
25、00000 D:0.000000 答案:A 第23 题(1.0分)题号:3129 若有说明:int a4=0,0;则下面不正确的叙述是().A:数组 a 的每个元素都可得到初值0 B:二维数组a 的第一维大小为1 C:因为二维数组a 中第二维大小的值除经初值个数的商为1,故数组 a 的行数为 1 D:有元素a00 和 a01 可得到初值 0,其余元素均得不到初值0 答案:D 第24 题(1.0分)题号:3186 若有说明:int i,j=2,*p=&i;,则能完成i=j 赋值功能的语句是().A:i=*p;B:*p=*&j;C:i=&j;D:i=*p;答案:B 第25 题(1.0分)题号:30
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2010 20 大学计算机 语言 期末考试 复习 试题 答案 免费
限制150内