【篇一:c语言考试题库及答案】
专业)
1、下面程序的输出是___d______
#includestdio.h void main() { int k=11;printf(k=%d,k=%o,k=%x\\n,k,k,k); } a) k=11,k=12,k=11 b) k=11,k=13,k=13 c) k=11,k=013,k=0xbd) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__d______.
a) ++t; b) n1=(n2=(n3=0));c) k=i=j; d) a=b+c=1; 3、下面合法的c语言字符常量是______a____. a) \ b) a c) 65d) a 4、表达式: 10!=9的值是________d____.
a) true b) 非零值 c) 0 d) 1
5、c语言提供的合法的数据类型关键字是
_____b____. a) doubleb) shortc) integer d) char 6、字符(char)型数据在微机内存中的存储形式是__d__. a) 反码b) 补码c) ebcdic码d) ascii码
7、c语言程序的基本单位是_____c______. a) 程序行b) 语句 c) 函数 d) 字符
8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是
____d____ a) 552 b) 2c) 144 d) -2 9、执行下面程序中的输出语句后,输出结果是
____b__. #includestdio.h void main() {int a; printf(%d\\n,(a=3*5,a*4,a+5)); } a) 65 b) 20 c) 15d) 10 10、下面程序的输出是____b______.
#includestdio.h void main() {int x=023; printf(%d\\n,--x); } a) 17 b) 18 c) 23 d) 24 11、下面程序的输出的是_____c____. #includestdio.h void main() {int x=10,y=3; printf(%d\\n,y=x/y);
} a) 0 b) 1 c) 3d) 不确定的值 12、已知字母a的ascii码为十进制的65,下面程序的输出是______a_____. #includestdio.h void main()
{char ch1,ch2; ch1=a+5-3; ch2=a+6-3;
printf(%d,%c\\n,ch1,ch2); } a) 67,db) b,c c) c,dd) 不确定的值 13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____d__.
a) a0 b) !a c) a=0 d) a 14、以下程序的输出结果是____d_____.
#includestdio.h void main()
{ int x=10,y=10;printf(%d %d\\n,x--,--y); } a) 10 10 b) 9 9 c) 9 10d) 10 9
15、设有如下定义:
int x=10,y=3,z; 则语句printf(%d\\n,z=(x%y,x/y)); 的输出结果是_____d_____. a) 1b) 0c) 4d) 3 16、为表示关系x≥y≥z,应使用c语言表达式
___a___. a) (x=y)(y=z)b) (x=y)and(y=z) c) (x=y=z) d) (x=y) (y=z)
17、c语言中非空的基本数据类型包括____b____. a) 整型,实型,逻辑型b) 整型,实型,字符型 c) 整型,字符型,逻辑型 d) 整型,实型,逻辑型,字符型 18、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf(%d,(x,y));
上面程序片段的输出结果是____a___. a) 200b) 100
c) 100 200 d) 输出格式符不够,输出不确定的值
19、阅读下面的程序
#includestdio.h void main() {
char ch;
scanf(%3c,ch); printf(%c,ch); }
如果从键盘上输入 abc回车
则程序的运行结果是__a_____.
a) a b) b c) c d) 程序语法出错
20、阅读下面的程序
#includestdio.h void main() {
int i,j;i=010;j=9;
printf(%d,%d,i-j,i+j); }
则程序的运行结果是____d____.
a) 1,19 b) -1,19c) 1,17 d) -1,17
21、阅读下面的程序
#includestdio.h void main() {
int i,j,m,n;i=8;j=10;m=++i;n=j++;
printf(%d,%d,%d,%d,i,j,m,n); }
程序的运行结果是______c____. a) 8,10,8,10b) 9,11,8,10 c) 9,11,9,10d) 9,10,9,11
22、已知a=12,则表达式a+=a-=a*=a的结果是_____a__.
a) 0b) 144 c) 12 d) -2 23、若已定义int a,则表达式a=10,a+10,a++的值是__b_.
a) 20b) 10c) 21 d) 11
24、阅读下面的程序
#includestdio.h void main() {
int i,j;
scanf(%3d%2d,i,j); printf(i=%d,j=%d\\n,i,j); }
如果从键盘上输入1234567回车,则程序的运行结果是____d____.
a) i=123,j=4567b) i=1234,j=567c) i=1,j=2 d) i=123,j=45
25、下面程序的输出结果是____d____.
#includestdio.h void main() {
int a=-1, b=4, k;
k=(++a=0)(b--=0); printf(%d,%d,%d\\n,k,a,b); }
a) 1,1,2b) 1,0,3 c) 0,1,2d) 0,0,3
26、下面程序的输出结果是____a____.
#includestdio.h void main() {
int a=5,b=3;
float x=3.14, y=6.5;
printf(%d,%d\\n,a+b!=a-b,x=(y-=6.1)); }
a) 1,0 b) 0,1c) 1,1 d) 0,0
27、执行下面程序段后,输出结果是____a____.
int a;
int b=65536; a=b;
printf(%d\\n,a);
a) 65536b) 0 c) -1d) 1
28、若有以下定义和语句: int a=010, b=0x10, c=10; printf(%d,%d,%d\\n,a,b,c); 则输出结果是____b_____.
a) 10,10,10 b) 8,16,10c) 8,10,10 d) 8,8,10 29、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式 x+a%3*(int)(x+y)%2/4 的值是_____b____. a) 2.4b) 2.5 c) 2.75 d) 0
30、若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是____c____.
a) 5.5 b) 5c) 3 d) 4.0
31、以下程序的输出结果是____d____.
#includestdio.h void main() {
int a=12, b=12;
printf(%d,%d\\n,--a,++b); }
a) 10,10 b) 12,12 c) 11,10 d) 11,13
32、设有以下语句:int x=10;x+=3+x%(3),则x的值是.____a_____
a) 14b) 15c) 11 d) 12
33、若d为double型变量,则表达式d=1,d+5,d++的值是_____d__.
a) 1 b) 6.0 c) 2.0 d) 1.0
34、表达式5!=3的值是____d____.
a) t b) 非零值c) 0d) 1
35、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值______a____.
a) 0b) 1 c) 12 d) 6
36、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是__d__.
a) 0b) 2 c) 1.5 d) 1
37、在c语言中,以下叙述不正确的是_____a____. a) 在c程序中,无论是整数还是实数,都能被准确无误的表示
b) 在c程序中,变量名代表存储器中的一个位置 c) 静态变量的生存期与整个程序的生存期相同 d) c语言中变量必须先定义后引用
38、c语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____c____. a) 必须为字母 b) 必须为下划线
c) 必须为字母或下划线
d) 可以是字母,数字或下划线中的任意一种 39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y值的数据类型是___d____.
a) float b) char c) int d) double
40、一个c语言的执行是从_____a______.
a) 本程序的主函数开始,到本程序的主函数结束
b) 本程序的第一个函数开始,到本程序的最后一个函数结束
c) 本程序的主函数开始,到本程序的最后一个函数结束
d) 本程序的第一个函数开始,到本程序的主函数结束
41、设a为整型变量,不能正确表达数学关系10a15的c语言表达式是____a____.
a) 10a15b) a==11||a==12||a==13||a==14 c) a10a15 d) !(a=10)!(a=15)
42、下列程序执行后的输出结果是_____c____. #include stdio.hvoid main( ){ int a=5,b=60,c; if (ab)
{c=a*b;printf(%d*%d=%d\\n,b,a,c);} else
{c=b/a;printf(%d/%d=%d\\n,b,a,c);}}
a) 60/5=12 b) 300c) 60*5=300 d) 12
43、如果c为字符型变量,判断c是否为空格不能使用____a____.(假设已知空格ascii码为32) a) if(c==32) b) if(c==32) c) if(c==\\40) d) if(c== )
44、运行下面程序时,若从键盘输入3,5cr,则程序的输出结果是____d____.#include stdio.hvoid main( ) {
int x,y;
scanf(%d,%d,x,y);
if (x==y)
printf(x==y);else if (xy)
printf(xy);else
printf(xy); }
a) 35 b) 53 c) xy d) xy 45、运行下面程序时,若从键盘输入数据为6,5,7cr,则输出结果是____c___.#include stdio.h void main( ) { int a,b,c;
scanf(%d,%d,%d,a,b,c);if (ab) if (ac)
printf(%d\\n,a); else
printf(%d\\n,c);else
if (bc)
printf(%d\\n,b); else
printf(%d\\n,c); }
a) 5 b) 6c) 7 d) 不定值
46、执行下面程序时,若从键盘输入2cr,则程序的运行结果是____a____.#include stdio.h void main( ) { int k; char cp;cp=getchar( );
if (cp=0 cp=9)k=cp-0;
else if (cp=a cp=f) k=cp-a+10;else k=cp-a+10;printf(%d\\n,k); }
a) 2b) 4c) 1d) 10
47、运行下面程序时,从键盘输入2.0cr,则输出结果是___b_____.#include stdio.h void main( ) { float a,b;
scanf(%f,a);if (a0.0) b=0.0;
else if ((a0.5) (a!=2.0)) b=1.0/(a+2.0);else if (a10.0) b=1.0/2;else b=10.0;printf(%f\\n,b); }
a) 0.000000 b) 0.500000 c) 1.000000 d) 0.250000
48、执行下面程序后,运行结果是____a____.#include stdio.h void main( ) { int x=41,y=1;
if (x%3==0 x%7==0)
{ y+=x;printf(y=%d\\n,y);}else
{y=x;printf(y=%d,y);} }
a) y=41b) y=43c) y=42d) y=1
49、运行下面程序时,从键盘输入12,34,9cr,则输出结果是___a___.#include stdio.h void main( ) { int x,y,z;
scanf(%d,%d,%d,x,y,z); if (xy)
if (yz)printf(%d\\n,z);else printf(%d\\n,y); else if (xz)printf(%d\\n,z); else printf(%d\\n,x); }
a) 34 b) 12 c) 9 d) 不确定的值
50、运行下面程序时,从键盘输入字母h,则输出结果是_____c___.#include stdio.h void main( ) { char ch;
ch=getchar( );switch(ch)
{ case h:printf(hello!\\n);
case g:printf(good morning!\\n); default:printf(bye_bye!\\n);} }
a) hello! b) hello!
good morning! c) hello! d) hello!
good morning! bye_bye! bye_bye!
51、执行下列程序段后的输出结果是_____a____. int x=1,y=1,z=1; x+=y+=z;
printf(%d\\n,xy?y:x);
a) 3b) 2 c) 1d) 4 52、设ch是char型变量,值为a,则表达式ch=(ch=a ch=z)?ch+32:ch的值是__b___.
a) z b) a c) z d) a
53、下面程序的输出结果是____c____.#include stdio.h void main( )
{ int x=8,y=-7,z=9;if (xy)
if (y0) z=0;else z-=1;printf(%d\\n,z); }
a) 8 b) 1 c) 9 d) 0 54、运行下面程序时,若从键盘输入5 cr,则程序的输出结果是_____b___. #include stdio.hvoid main( ){ int a ;
scanf(%d,a);
if (a++5)printf(%d\\n,a); else printf(%d\\n,a--) ;}
a) 7b) 6 c) 5d) 4
55、运行下面程序时,若从键盘输入3,4 cr,则程序的输出结果是____b___. #include stdio.h void main( ){ int a,b,s;
scanf(%d,%d,a,b); s=a;
if (sb) s=b; s=s*s;
printf(%d\\n,s) ;}
a) 14 b) 16 c) 18 d) 20
56、下列程序的执行结果是_____d____. #include stdio.h void main( )
{ int x=0,y=1,z=0; if (x=z=y)x=3;
printf(%d,%d\\n,x,z);}
a) 3,0 b) 0,0c) 0,1 d) 3,1 57、假定等级和分数有以下对应关系:等级:a 分数:85~100 等级:b 分数:60~84 等级:c 分数:60 以下
对于等级grade输出相应的分数区间,能够完成该功能的程序段是____d____. a) switch (grade) {
case a:printf(85--100\\n); case b:printf(60--84\\n); case c:printf(60以下\\n); default:printf(等级错误!\\n); }
b) switch (grade) {
case a:printf(85--100\\n);break; case b:printf(60--84\\n); case c:printf(60以下\\n); default:printf( 等级错误!\\n); }
c) switch (grade) {
case a:printf(85--100\\n);break; case b:printf(60--84\\n);break; case c:printf(60以下\\n); default:printf(等级错误!\\n); }
d) switch (grade) {
case a:printf(85--100\\n);break; case b:printf(60--84\\n);break; case c:printf(60以下 \\n);break; default:printf(等级错误!\\n); }
58、能够完成如下函数计算的程序段是__b____. ┌ -1x0 y= ┤ 0x=0 └ 1x0
a) y=1; b) if (x=0)
【篇二:大学c语言期末考试题库试题及答案汇总】
的语句中错误的是______。
a、int _int b、double int_
c、char for d、float us$
答案:d
知识点:常量、变量和标识符
2.
以下不合法的用户标识符是______。
a、j2_key b、double
c、4d d、_8_
答案:c
知识点:常量、变量和标识符
3.
以下4组用户定义标识符中,全部合法的一组是______。
a、_main enclude sin
b、if -max turbo
c、txt real 3com
d、int k_2 _001 ?
答案:a
知识点:常量、变量和标识符
4.
以下定义语句中正确的是______。
a、char a=a b=b;
b、float a=b=10.0;(正解a=10.0 b=10.0)
c、int a=10,*b=a;
答案:c
知识点:常量、变量和标识符
5.
以下不能定义为用户标识符的是______。
a、scanf b、void
c、_3com_ d、int
答案:d
知识点:常量、变量和标识符
6.
以下有4组用户标识符,其中合法的一组是______。
a、for -sub case
b、4d do size
c、f2_g3 if abc
d、word void define
答案:c
知识点:常量、变量和标识符
7.
c语言中最简单的数据类型包括______。
a、整型、实型、逻辑型
b、整型、实型、字符型
c、整型、字符型、逻辑型
d、整型、实型、逻辑型、字符型
答案:b
知识点:常量、变量和标识符
8.
下列选项中,合法的c语言关键字是______。
a、var b、cher c、integer d、default
答案:d
知识点:常量、变量和标识符
9.
以下不能定义为用户标识符的是______。
a、main b、_0 c、_int d、sizeof
答案:d
知识点:常量、变量和标识符
10.
下列叙述中正确的是______。
a、c语言中既有逻辑类型也有集合类型
b、c语言中没有逻辑类型但有集合类型
c、c语言中有逻辑类型但没有集合类型
d、c语言中既没有逻辑类型也没有集合类型
答案:d
知识点:常量、变量和标识符
11.
当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。
a、c=b=a; b、(a=c)‖(b=c);
c、(a=c)(b=c); d、a=c=b;
答案:c
知识点:赋值表达式
12.
以下选项中非法的表达式是______。
a、0=x100 b、i=j==0
c、(char)(65+3) d、x+1=x+1
答案:d
知识点:赋值表达式
13.
以下程序的输出结果是______。
#include stdio.h
main()
{
int a,b,d=241;
a=d/100%9;
b=(-1)(-1);
printf(%d,%d\\n,a,b);???
}
a、6,1 b、2,1 c、6,0 d、2,0
答案:b
知识点:赋值表达式
14.
以下循环体的执行次数是______。
main()
{
int i,j;
for (i=0,j=1; i=j+1;i+=2,j--)
printf(%d \\n,i);
}
a、3 b、2 c、1 d、0
答案:c
知识点:赋值表达式
15.
有以下定义语句
double a,b; int w; long c;
若各变量已正确赋值,则下列选项中正确的表达式是______。
a、a=a+b=b++
b、w%((int)a+b)
c、(c+w)%(int)a
d、w=a=b;
答案:c
知识点:赋值表达式
16.
有如下程序
main()
{
int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf(%d %d %3.1f%3.1f\\n,a,c,f,x);
}
程序运行后输出结果是______。
a、1 65 1 6.5
b、1 65 1.5 6.5
c、1 65 1.0 6.5
d、2 65 1.5 6.5
答案:b
【篇三:《国家计算机二级c语言历年真题及答案》】
class=txt>c语言程序设计
(考试时间90分钟,满分100分)
一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)
(1)下列数据结构中,属于非线性结构的是
a)循环队列
b) 带链队列
c) 二叉树
d)带链栈
(2)下列数据结果中,能够按照“先进后出”原则存取数据的是
a) 循环队列
b) 栈
c)队列
d)二叉树
(3)对于循环队列,下列叙述中正确的是
a)队头指针是固定不变的
b)队头指针一定大于队尾指针
c)队头指针一定小于队尾指针
d)队头指针可以大于队尾指针,也可以小于队尾指针
(4)算法的空间复杂度是指
a)算法在执行过程中所需要的计算机存储空间
b)算法所处理的数据量
c)算法程序中的语句或指令条数
d)算法在执行过程中所需要的临时工作单元数
(5)软件设计中划分模块的一个准则是
a) 低内聚低耦合
b) 高内聚低耦合
c) 低内聚高耦合
d) 高内聚高耦合
(6)下列选项中不属于结构化程序设计原则的是
a) 可封装
d) 自顶向下
c) 模块化
d) 逐步求精
(7)软件详细设计产生的图如下:
该图是
a) n-s图
b) pad图
c) 程序流程图
d) e-r图
(8)数据库管理系统是
a)操作系统的一部分
b) 在操作系统支持下的系统软件
c) 一种编译系统
d) 一种操作系统
(9)在e-r图中,用来表示实体联系的图形是
a) 椭圆图
b) 矩形
c) 菱形
d) 三角形
(10)有三个关系r,s和t如下:
其中关系t由关系r和s通过某种操作得到,该操作为
a) 选择
b) 投影
c) 交
d) 并
(11)以下叙述中正确的是
a)程序设计的任务就是编写程序代码并上机调试
b)程序设计的任务就是确定所用数据结构
c)程序设计的任务就是确定所用算法
d)以上三种说法都不完整
(12)以下选项中,能用作用户标识符的是
a)void
b)8_8
c)_0_
d)unsigned
(13)阅读以下程序
#include
main()
{ int case; float printf;
printf(“请输入2个数:”);
scanf(“%d %f”,case,pjrintf);
printf(“%d %f\\n”,case,printf);
}
该程序编译时产生错误,其出错原因是
a)定义语句出错,case是关键字,不能用作用户自定义标识符
b)定义语句出错,printf不能用作用户自定义标识符
c)定义语句无错,scanf不能作为输入函数使用
d)定义语句无错,printf不能输出case的值
(14)表达式:(int)((double)9/2)-(9)%2的值是
a)0
b)3
c)4
d)5
(15)若有定义语句:int x=10;,则表达式x-=x+x的值为
a)-20
b)-10
c)0
d)10
(16)有以下程序
#include
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d\\n”,a=2*b);
}
程序运行后的输出结果是
a)0,0
c)3,2
d)1,2
17)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
a)if(ab) c=a,a=b,b=c;
b)if(ab) {c=a,a=b,b=c;}
c)if(ab) c=a;a=b;b=c;
d)if(ab) {c=a;a=b;b=c;}
(18)有以下程序
#include
main()
{ int c=0,k;
for (k=1;k3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d\\n”,c);
}
程序运行后的输出结果是
a)3
b)5
c)7
d)9
(19)以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是
a)if((ab)(bc)) k=1;
else k=0;
b)if((ab)||(bc) k=1;
else k=0;
c)if(a=b) k=0;
else if(b=c) k=1;
d)if(ab) k=1;
else if(bc) k=1;
else k=0;
20)有以下程序
#include
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]=’a’s[i]=’z’) n++;
printf(“%d\\n”,n);
}
程序运行后的输出结果是
a)0
b)2
c)3
d)5
(21)有以下程序
#include
main()
{ int n=2,k=0;
while(k++n++2);
printf(“%d %d\\n”,k,n);
}
程序运行后的输出结果是
a)0 2
b)1 3
c)5 7
d)1 2
(22)有以下定义语句,编译时会出现编译错误的是
a)char a=’a’;
b)char a=’\\n’;
c)char a=’aa’;
d)char a=’\\x2d’;
(23)有以下程序
#include
main()
{ char c1,c2;
c1=’a’+’8’-‘4’;
c2=’a’+’8’-‘5’;
printf(“%c,%d\\n”,c1,c2);
}
已知字母a的ascii码为65,程序运行后的输出结果是
a)e,68下载本文