2011年3月2级c语言试题题库

哪位有题库啊,帮忙发到我的邮箱……!!463140146@qq.com谢谢了。。。。。

一、选择题
1、x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是( B ).
A.INPUT x、y、z; B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z); D.read("%d%d%d",&x,&y,&z);
2、当用户要求输入的字符串中含有空格时,应使用的输入函数是( C ).
A.scanf( ) B.getchar( ) C.gets( ) D.getc( )
3、关于if后一对圆括号中的表达式,以下叙述中正确的是( D ).
A.只能用逻辑表达式 B.只能用关系表达式
C.既可以用逻辑表达式也可以用关系表达式 D.可以用任意表达式
4、以下语句的输出结果是( D ).
printf("%d\n",strlen("\t"\065\xff\n"));
A.5 B.14 C.8 D.输出项不合法,无正常输出
5、若x是int型变量,y是float型变量,所用的scanf调用语句格式为:
scanf("x=%d,y=%f",&x,&y);
则为了将数据10和66.6分别赋给x和y,正确的输入应是( A ).
A.x=10,y=66.6 B.10 66.6 C.10<回车>66.6 D.x=10<回车>y=66.6
6、若有说明:int 6、*p,m=5,n;以下正确的程序段是( D ).
A.p=&n;scanf("%d",&p); B.p=&n;scanf("%d",*p);
C.scanf("%d",&n);*p=n; D.p=&n;*p=m;
7、若在定义行:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确给变量赋值的是( C ).
A.scanf("%d",a,b,c); B.scanf("%d%d%d",a,b,c);
C.scanf("%d",p); D.scanf("%d",&p);
8、若执行下面的程序时,从键盘上输入5和2,则输出结果是( C ).
main( )
{ int a,b,k;
scanf("%d,%d ",&a,&b);
k=a;
if(a<b) k=a%b;
else k=b%a;
printf("%d\n ",k);
}
A.5 B.3 C.2 D.1
9、若执行下述程序时,若从键盘输入6和8时,结果为( B ).
main( )
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a<b) s=b;
s*=s;
printf("%d",s);
}
A.36 B.64 C.48 D.以上都不对
10、设变量x和y均已正确定义并赋值.以下if语句中,在编译时将产生错误信息的是( C ).
A.if(x++); B.if(x>y&&y!=0);
else y++;
C.if(x>0)x-- D.if(y<0){;}
else x++;
11、设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y.以下所示的输入形式中正确的是( D ).
A.10 X 20 Y B.10 X20 Y C.10 X <回车>20 Y D.10X<回车>20Y
12、下列程序的运行结果是( D ).
main( )
{ int x=-9,y=5,z=8;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);
}
A.6 B.7 C.8 D.9
13、现有格式化输入语句,scanf("x=%d ,sum y=%d,line z=%d",&x,&y,&z);,
已知在输入数据后,x,y,z的值分别是12,34,45,则下列数据是正确的输入格式的是( D ).
A.12,34,45 B.x=12,y=34,z=45
C.x=12,sumy=34,z=45 D.x=12,sumy=34,linez=45
14、已有定义和语句:double a, b,c;scanf("%lf%lf%lf",&a,&b,&c);,
要求给a、b、c分别输入10.0、20.0、30.0,不正确的输入形式是( D ).
A.10.0<回车>�20.0<回车>�30.0 B.10.0<回车>�20 30
C.10 20<回车>�30.0 D.10.0,20.0,30.0
15、已知int a;float b;所用的scanf调用语句格式为: scanf("a//%d,b=%f",&a,&b);
为了将数据3和25.08分别赋给x和y,正确的输入形式是( C ).
A.3,25.08 B.a=3,b=25.08 C.a//3,b=25.08 D.a//3<回车>b=25.08
16、已知int x=1,y=2,z=3;以下语句执行后x,y,z的值是( B ).
if(x>y) z=x; x=y; y=z;
A.x=1, y=2, z=3 B.x=2, y=3, z=3 C.x=2, y=3, z=1 D.x=2, y=3, z=2
17、以下程序的输出结果是( A ).
main( )
{ int a=15,b=21,m=0;
switch(a%3)
{ case 0:m++;break;
case 1:m++;
switch(b%2)
{ default:m++;
case 0:m++;break;
}
}
printf("%d\n",m);
}
A.1 B.2 C.3 D.4
18、以下程序段的输出结果是( C ).
int a=1234;
printf("%2d\n",a);
A.12 B.34 C.1234 D.提示出错、无结果
19、以下程序输出结果是( A )
main( )
{ int a=5,b=4;
printf("%d\n", a>b?a+b:a-b);
}
A.9 B.1 C.10 D.无法确定
20、以下叙述中正确的是( C ).
A.用C程序实现的算法必须要有输入和输出操作
B.用C程序实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
21、有定义:int b; char c[10];,则正确的输入语句是( B ).
A.scanf("%d%s",&b,&c); B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c); D.scanf("%d%s",b,&c);
22、有如下程序
main( )
{ float x=2.0,y;
if(x<0.0) y=0.0;
else if(x<10.0) y=1.0/x;
else y=1.0;
printf("%f\n",y);
}
该程序的输出结果是( C ).
A.0.000000 B.0.250000 C.0.500000 D.1.000000
23、有如下程序:
main( )
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是( A ).
A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2
24、有以下程序,其中%u表示按无符号整数输出
main( )
{ unsigned int x=0xFFFF;/* x的初值为十六进制数 */
printf("%u\n",x);
}
程序运行后的输出结果是( B ).
A.-1 B.65535 C.32767 D.0xFFFF
25、有以下程序段
int j;float y;char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( B ).
A.55566.0 B.566.0 C.7777.0 D.566777.0
26、阅读下面的程序,该程序( D ).
main( )
{ int a=5,b=0,c=0;
if(a=b+c) printf("***\n");
else printf("$$$\n"); }
A.有语法错不能通过编译 B.可以通过编译但不能通过连接
C.输出*** D.输出$$$
27、运行下面程序,若从键盘输入字母b,则输出结果是( C ).
main( )
{ char c;
c=getchar( );
if(c>='a'&&c<='u') c=c+4;
else if(c>='v'&&c<='z') c=c-21;
else printf("input error!\n");
putchar(c);
}
A.g B.w C.f D.d
28、执行下列程序时输入:123<空格>456<空格>789<回车> 输出结果是( D ).
main( )
{ char s[100]; int c, i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
A.123,456,789 B.1,456,789 C.1,23,456,789 D.1,23,456
29、当输入为"quert?"时,下面程序的执行结果是( A ).
#include "stdio.h"
main( )
{ char c;
c=getchar( );
while(c!='?')
{ putchar(c);
c=getchar( );
}
}
A.quert B.Rvfsu C.quert? D.rvfsu?
30、若变量已正确定义,则下面程序段的输出结果是( B ).
i=0;
do printf("%d,",i);while(i++);
printf("%d\n",i);
A.0,0 B.0,1 C.1,1 D.程序进入无限循环
31、若有如下语句
int x=3;
do
{printf("%d\n",x-=2);}while(!(--x));
则上面程序段( B ).
A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环
32、设有程序段
int k=10;
while(k=0)k=k-1;
下面描述中正确的是( C ).
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
33、设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是( C ).
A.while循环执行10次 B.循环是无限循环
C.循环体语句一次也不执行 D.循环体语句执行一次
34、设有以下程序
main( )
{ int x=0,s=0;
while(!x!=0) s+=++x;
printf("%d",s);
}
则该程序的运行情况是( B ).
A.运行程序后输出0 B.运行程序后输出1
C.程序中的控制表达式是非法的 D.程序执行无限次
35、下列程序的输出结果是( B ).
main( )
{ int i,a=0,b=0;
for(i=1;i<10;i++)
{ if(i%2==0)
{a++;
continue;}
b++;
}
printf("a=%d,b=%d",a,b);
}
A.a=4,b=4 B.a=4,b=5 C.a=5,b=4 D.a=5,b=5
36、下列说法中错误的是( A ).
A.只能在循环体内使用break语句
B.在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环
C.在while和do…while循环中,continue语句并没有使整个循环终止
D.continue的作用是结束本次循环,即跳过本次循环体中尚未执行的语句,接着再一次进行循环判断
37、下面程序的运行结果是( B ).
#include "stdio.h"
main( )
{ char a[]="morning",t;
int i,j=0;
for(i=1;i<7;i++)
if(a[j]<a[i]) j=i;
t=a[j]; a[j]=a[7]; a[7]=a[j];
puts(a);
}
A.mrgninr B.mo C.moring D.morning
38、下面的表达式while(!x)中的表达式 !x 与下面条件( A )等价.
A.x==0 B.x==1 C.x==0||x==1 D.x!=0
39、现有如下程序
main( )
{ int k[30]={12,324,45,6,768,98,21,34,453,456};
int count=0,i=0;
while(k[i])
{ if(k[i]%2==0‖k[i]%5==0) count++;
i++;
}
printf("%d,%d\n",count,i);
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网