当前位置:首页 > 2012年10套大学计算机C语言期末考试复习试题及答案
二、单项选择共30题(共计30分) 1.执行下面程序后,输出结果是(A)。 main()
{a=45,b=27,c=0; c=max(a,b);
printf(\d\\n\,c); }
int max(x,y) int x,y; {int z;
if(x>y) z=x; else z=y; return (z);
} A:45
B:27
C:18
D:72
第2题下列数组说明中,正确的是(A)。 A:int array[][4]; B:int array[]Q; C:int array[][][5];
D:int array[3][];
第3题下面有关for循环的正确描述是(D) A:for循环只能用于循环次数已经确定的情况 B:for循环是先执行循环体语句,后判断表达式 C:在for循环中,不能用break语句跳出循环体 D:for循环的循环体语句中,可以包含多条语句,但必 须用花括号括起来 第4题以下程序的输出结果是(D). main() {int i,j,k,a=3,b=2; i=(—a==b++)?—ai++b; j=a++;k=b;
printf(\i=%d,j=%d,k=%d\\n'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
第5题若有下列定义,则对a数组元素地址的正确 引用是(C). int a[5],*p=a; A:*(p+5) B:*p+2
C:*(a+2)
D:*&a[5]
第6题下列选项中正确的语句组是(D)。 A:char s[8]; s={\Beijing?}; Bichar *s; s={\Beijing?};
Crchar s[8]; s=\Beijing\; D:char *s;
s=\Beijing\;
第7题若变景a,i己正确定义,且i己正确赋值,合法 的语句是(C)
A:a=int(i); B:a==1
C:++i;
D:a=a++=5;
第8题以下字符中不是转义字符的是(C)。 A:\\a. B:\\b,C:\\c, D:'\\V 第9题下列定义不正确的是(C)。 A:#define PI 3.141592 B:#define S345
C:int max(x,y); int x,y; { } D:static char c;
第10题char h,*s=&h;可将字符H通过指针存入 变景h中的语句是(B). A:*s=H; B:*s=,H,; C:s=H;
D:s='H'
第11题(1.0分)题号:690 设char型变景x中的值为10100111,则表达式 (2+x)A(~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=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
若有说明inta[3][4];则对a数组元素的正确引用 是()? A:a[2][4] B:a[1,3] C:a[1+1][0] D:a(2)(1)
答案:C
第14题(1.0分)题号:679 在C语言中,形参的缺省存储类是()。 A:auto B:register Cistatic
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
Discanf
答案:B
第17题(1.0分)题号:3228
有定义:int 3=8^=5,〇;,执行语句〇=8^+0.4;后,〇的 值为〇 A:1.4 B:1
C:2.0 D:2
答案:B
第18题(1.0分)题号:640 以下对二维数组a的正确说明是()。 A:int a[3][] B:float a(3,4) Crdouble a[1][4] D:float a(3)(4)
答案:C
第19题(1.0分)题号:2884
以下标识符中,不能作为合法的C用户定义标识符 的是().
Aianswer B:to C:signed D:_if
答案:C
第20题(1.0分)题号:652
在C语言中,引用数组元素时,苏数组下标的数据 类型允许是()。
A:整型常景 B:整型表达式 C:整型常最或整型表达式 D:任何类型的表达式
答案:C
第21题(1.0分)题号:381
以下标识符中,不能作为合法的C用户定义标识符 的是()。
Aianswer B1o Crsigned D:_if
答案:C
第22题(1.0分)题号:2898 己知year为整型.变景,不能使表达式 (year%4==0&&year0!=0)|| year@0==0的值为?真\的数据是(). 以下描述中,正确的是()。
A:预处理是指完成宏替换和文件包含中指定的文 件的调用
A:1990 B:1992 C:1996
D:2000
答案:A
第23题(1.0分)题号:177
B:预处理指令只能位于C源文件的开始 C:C源程序中凡是行首以#标识的控制行都是预 处理指令 D:预处理就是完成C编译程序对C源程序第一遍 扫描,为编译词法和语法分析作准备 答案:C
第24题(1.0分)题号:156 执行下列语句后的输出为()。 int j=-1; if(j<=1) printf(\****\\nH
); else
printf (\n\
A:****
B:%%%%
C:%%%%c D:有错,执行不正确
答案:A
第25题(1.0分)题号:2850 以下函数调用语句中实参的个数是a exce((v1 ,v2),(v3,v4,v5),v6); A:3 B:4 C:5 D:6 答案:A
第26题(1.0分)题号:506 以下程序段的输出结果
为()。 for(i=4;i>1;i-) for(j=1;j
C:#
D:###
答案:B
第27题(1.0分)题号:2830 下列程序的输出结果是a main()
{int x=1,y=0,a=0,b=0; switch (x)
{
case 1 :switch(y)
{int v;
case 0:a++;break; case 1 :b++;break; s2=【?】; s3=a*c; }
case 2:a++;b++;break; case 3:a++;b++;break; }
printf (\a=%d,b=%d\\n\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 a[2][]={{1,0,1},{5,2,3}}; B:int a[][3]={{1,2,3},{4,5,6}}; C:int a[2][4]={{1,2,3},{4,5},{6}}; D:intaD[3]={{1,0,1}{},{1,1}}; 答案:B
第30题(1.0分)题号:3135 以下数组定义中不正确的是(). A:int a[2][3]; B:int b[][3]={0,1,2,3}; C:int c[100][100]={0};
D:int d[3]Q={{1,2},{1,2,3},{1,2,3,4}}; 答案:D
三、程序填空共2题(共计24分) 第1题(12.0分)题号:417
r -----------------------------------------------------
【程序填空】
题U:利用全局变最计算长方体的体积及三个面的 面积。
------------------------------------------------------- */
int s1 ,s2,s3; int vs(int a,int b,int c)
v=【?】; s1=a*b;
return v; }
main()
{int v,l,w,h; clrscr();
printfOninput length,width and height:\
scanf(\d%d%d\,【?】,&w,&h); v=【?】; printf (Hv=%d s1=%d
s2=%d
s3=%d\\n?,v,s1,s2,
s3); getch(); } 答案:
=======(答案?======= a*b*c
=========或========= a * b * c
=======(答案 2)======= b*c
=========或========= b*c
=======(答案 3)======= &l
=======(答案 4)======= vs(l,w,h)
=========或========= vs( I,w,h )
第2题(12.0分)题号:441
r -----------------------------------
【程序填空】
题U:给定程序中函数fun的功能是:从低位开 始取出长
整型变最s中奇数位上的数,依次构成一
个新数放在t中。 ------------------------------------ 7 #include
y 貪賣賣★★★★★★?★SPAQE**1
****^****/
*t = s【?】10; while(s>0)
广★****★★食*貪
8卩八0 [*******★*★★/
{S=【?】;
*t^★ = ??s★%1(★*** r**gpyQ^** printf(\ enter s:'1 ); scanf(n%ld\, &s); fun(s, &t); printf(\ result is: %ld\\n\, t); } 答案: =======(答案 1)======= % =======(答案 2)======= s/100 =======(答案 3)======= + *t =======(答案 4)======= 四、程序改错共2题(共计22分) 第1题(11.0分)题号:383 r ---------------------------------------------- 【程序改错】 题U:给定程序的功能是:读入一行英文文本, 将苏 中每个单词的最后一个字母改成大写, 然后 输出此文本行(这里的“单词?是指由空格隔 开的 字符串)。例如,若输入丨am a student to take the examination?,则应输出\ aM A studenT t〇 takE thE examination.?。 注意:不可以 增加或删除程序行,也不可以更改 程序的结构。 ----------------------------------- V #include \conio.h\ #include \stdio.h\ #include \ctype.h\ #include \string.h%uplst ( char *p) { FOUN 〇 ★★★★★ ★★★★★/ integer k = 0; for (; *p; p++ ) if(k) 广 ***★*★**★ F〇UND ★***★***★*/ (if(*p=\ {k = 0; <★★★★★★★★★★ F〇UN *(p -1 ) = toupper( *( p -1 ); } } else if(*p!=\k=1; *( p-1 ) = toupper(*(p-1)); } main() {char chrstr[81]; printf( M\\nPlease enter a string:n ); gets (chrstr); printf( ^n\\nBefore changing:\\n %s\chrstr); up 1st( chrstr); printf( ’ViAfter changing:\\n 〇/〇s\chrstr); 答案: =======(答案 1 )======= int k=0; =======(答案 2)======= {if(*P==,,>
共分享92篇相关文档