2013年计算机等考二级C语言模拟试题六及答案
1.逻辑运算符两侧运算对象的数据类型是( D )。
A) 只能是0或1
B) 只能是0或非0正数
C) 只能是整型或字符型数据
D) 可以是任何类型的数据
2.已知x=43, ch='A', y=0;则表达式(x>=y&&ch<'B'&&!y)的值是( C )。
A) 0
B) 语法错
C) 1
D) “假”
3.已知 int x=10, y=20, z=30; 以下语句执行后x, y, z的值是( B )。
if(x>y)
z=x;x=y;y=z;
A) x=10,y=20,z=30
B) x=20,y=30,z=30
C) x=20,y=30,z=10
D) x=20,y=30,z=20
4.执行下列语句后a的值为( C ),b的值为( )。
int a, b, c;
a=b=c=1;
++a|| ++b && ++c;
A) 错误 1
B) 2 2
C) 2 1
D) 1 1
5.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( C )。
A) A%2==1
B) !(A%2==0)
C) !(A%2)
D) A%2
6.设有:int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>D)后n的值是( B )。
A) 0
B) 2
C) 3
D) 4
7.判断char型变量cl是否为小写字母的正确表达式是( D )。
A) ‘a’<=cl<=‘z’
B) (cl>=a)&&(cl<=z)
C) (‘a’>=cl)||(‘z’<=cl)
D) (cl>=‘a’)&&(cl<=‘z’)
8.以下不正确的if语句形式是( C )。
A) if(x>y&&x!=y);
B) if(x==y) x+=y;
C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y)
D) if(x
9.请阅读以下程序:
main()
{
int a=5,b=0,c=0;
if(a=b+C) printf(“***\n”);
else printf(“$$$\n”);
}
以上程序( D )。
A) 有语法错不能通过编译
B) 可以通过编译但不能通过连接
C) 输出***
D) 输出$$$
10.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( B )。
if(a
if(c
else
if(a
if(b
else x=3;
else x=6;
else x=7;
A) 1
B) 2
C) 3
D) 6
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
11.以下程序的输出结果是( C )。main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if(x
if(y!=10)
if(!ok1)
a=1;
else
if(ok2) a=10;
a=-1;
printf(“%d\n”,a);
}
A) 1
B) 10
C) -1
D) 值不确定
12.以下程序的输出结果是( B )。
main()
{int x=2,y=-1,z=2;
if(x
if(y<0) z=0; 来源:www.examda.com
else z+=1;
printf(“%d\n”,z);
}
A) 3
B) 2
C) 1
D) 0
13.为了避免在嵌套的条件语句 if - else 中产生二义性,C语言规定:else子句总是与( B )配对。
A) 缩排位置相同的if
B) 其之前最近的if
C) 其之后最近的if
D) 同一行上的
14.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是( B )。
A) (exp==0)
B) (exp!=0)
C) (exp==1)
D) (exp!=1)
15.若运行时给变量x输入12,则以下程序的运行结果是( A )。
main()
{int x,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d\n”,y);
}
A) 0
B) 22
C) 12
D) 10
16.语句:printf("%d",(a=2)&&(b= -2));的输出结果是( D )。
A) 无输出
B) 结果不确定
C) -1
D) 1
17.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( C )。
A) c=b=a;
B) (a=C)||(b=C);
C) (a=C)&&(b=C);
D) a=c=b;
18.能正确表示a和b同时为正或同时为负的表达式是( D )。
A) (a>=0||b>=0)&&(a<0||b<0)
B) (a>=0&&b>=0)&&(a<0&&b<0)
C) (a+b>0)&&(a+b<=0) D) a*b>0
19.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。
A) a>=10 or a<=0B) a>=0|a<=10
C) a>=10&&a<=0
D) a>=10||a<=0
20.有如下程序段
int a=14,b=15,x;
char c=‘A’;
x=(a&&b)&&(c<‘B’);
执行该程序段后,x的值为( D )。
A) ture
B) false
C) 0
D) 1
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
21.以下程序的输出结果是( C )。A)-1 1
B)0 1
C)1 0
D)0 0
main( )
{ int a=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}
22.与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( A )。
A) if(x>0) y=1;
B) if(x)
else if(x<0) y=-1; if(x>0)y=1;
else y=0; else if(x<0)y=-1;
else y=0;
C) y=-1 D) y=0;
if(x) if(x>=0)
if(x>0)y=1; if(x>0)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
23.阅读以下程序:
main()
{int x;
scanf("%d", &x);
if(x--<5) printf("%d", x);
else printf("%d", x++);
}
程序运行后,如果从键盘上输人5,则输出结果是( B )。
A)3
B) 4
C) 5
D) 6
24.假定w、x、y、z、m均为int型变量,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w
则该程序运行后,m的值是( D )。
A) 4
B) 3
C) 2
D) 1
25.有如下程序
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
26.有如下程序
main( )
{ int a=2,b=-1,c=2;
if(a)if(b<0) c=0;
else c++;
printf(“%d\n”,C);
}
该程序的输出结果是(A )。
A) 0
B) 1
C) 2
D) 3
27.若有定义: float w; int a, b; 则合法的switch语句是( C )。
A) switch(w)
B switch(x)
{case 1.0: printf("*\n"); {case 1,2: printf("*\n");
case 2.0: printf("**\n"); case 3: printf("**\n");
} 无default语句 }
C) switch(b)
D) switch(a+b);
{case 1: printf("*\n"); {case 1: printf("*\n");
default: printf("\n"); case 2: printf("**\n");
case 1+2: printf("**\n"); default: printf("\n");
} }
28.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是( D )。
A) swich(a+b);
B) switch(a*a+b*b)
{case 1:y=a+b; break; {case 3:
case 0:y=a-b; break; case 1:y=a+b;break;
} case 3:y=b-a;break;
}
C) switch a
D) switch(a-b)
{case c1 :y=a-b; break; {default:y=a*b;break;
case c2: x=a*d; break; case 3:case 4:x=a+b;break;
default:x=a+b; case 10:case 11:y=a-b;break;
} }
29.有如下程序
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
30.当输入19、2、21时,以下程序的输出结果是( A )。
main( )
{int a,b,c,max;
printf(“please input three numbers a,b,c:\n”);
scanf(“%d,%d,%d”,&a,&b,&C);
max=a;
if(max
max=b;
if(max
max=c;
printf(“max is:%d\n”,max);
}
A) max is:21
B) max is:19
C) max is:42
D) max is:40
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
31.若输入B,以下程序的输出结果是( C )。main( )
{char grade;
scanf(“%c”,&grade);
switch(grade)
{
case ‘A’:printf(“>=85.”);
case ‘B’:
case ‘C’:printf(“>=60.”);
case ‘D’:printf(“<60.”);
default: printf(“error.”);
}
} 考试大(www.Examda。com)
A) >=85.
B) >=60.
C) >=60.<60.error.
D) error.
32.当执行以下语句后的输出结果是( D )。
int x=3, y=0;
printf(“%d,%d”, -1>x> -10&&1y> -10&&1
A) 0 3
B) 3 0
C) 3 3
D) 1 1
33.执行x=5>1+2&&2||2*4<4-!0后,x的值为( C )。
A) -1
B) 0
C) 1
D) 5
34.以下程序的输出结果为( C )。
main( )
{int a,b,c,x,y,z;
a=10;b=2;
c=!(a%b);
x=!(a/b);
y=(a=0);
z=(a=0);
printf(“c=%d, x=%d, y=%d, z=%d\n”, c, x, y, z);
}
A) c=0,x=1,y=1,z=0
B) c=5,x=0,y=1,z=0
C) c=1,x=0,y=0,z=1
D) c=10,x=2,y=0,z=1
35.下列运算符中,不属于关系运算符的是( D )。
A) <
B) >=
C) ==
D) !
36.以下程序的输出结果是( B )。
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
37.设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch
上面表达式的值是( B )。
A) A
B) a
C) Z
D) z
38.若k是int型变量,且有下面的程序片段:
k= -3;
if(k<=0) printf(“####”)
else printf(“&&&&”)
上面程序片段的输出结果是( D )。
A) ####
B) &&&&
C) ####&&&&
D) 有语法错误,无输出结果
39.请读程序:
main()
{
float x, y;
scanf(“%f”, &x);
if(x<0.0) y=0.0;
else if((x<5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if(x<10.0) y=1.0/x;
else y=10.0;
printf(“%f\n”,y);
}
若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是( C )。
A) 0.000000
B) 0.250000
C) 0.500000
D) 1.000000
40.请读程序:
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;
}
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
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
41.为表示关系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)
42.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( D )。
A) a<>0
B) !a
C) a=0
D) a
43.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( A )。
main()
{
int x;
scanf(“%d”, &x);
if(x++>5) printf(“%d”, x);
else printf(“%d\n”, x--);
}
A) 7和5
B) 6和3
C) 7和4
D) 6和4
44.以下程序的输出结果是( D )。
main()
{
int a= -1, b=4, k;
k=(++a<0)&&!(b--<=0);
printf(“%d%d%d\n”, k, a, b);
}
A) 104
B) 103
C) 003
D) 004
45.设a为整型变量,不能正确表达数学关系10
A) 10
B) a==11||a==12||a==13||a==14
C) a>10&&a<15
D) !(a<=10)&&!(a>=15)
46.假定所有变量均已正确说明,下列程序段运行后x的值是( B )。
a=b=c=0;x=35;
if(!a) x--;
else if(b) ; if(C) x=3;
else x=4;
A) 34
B) 4
C) 35
D) 3
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
47.设a=1, b=2, c=3, d=4,则表达式ad?a:d的结果是( D )。A) 4
B) 3
C) 2
D) 1
48.当a=1, b=3, c=5, d=4时,执行下面一段程序后,x的值为( B )。
if(a
if(c
else
if(a
if(b
else x=3;
else x=6;
else x=7;
A) 1
B) 2
C) 3
D) 6
49.在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是( C )。
main()
{
int s, t, a, b;
scanf(“%d, %d”, &a, &b);
s=1;t=1;
if(a>0) s=s+1;
if(a>b) t=s+t;
else if(a==b) t=5;
else t=2*s;
printf(“t=%d\n”, t);
}
A) a>b
B) a
C) 0
D) 0>a>b
50.设int x=1, y=1;表达式(!x||y--)的值是(B )。
A) 0
B) 1
C) 2
D) -1
51.若变量a、i已正确定义,且i已正确赋值,合法的语句是( B )。
A) a==1
B) ++i;
C) a=a++=5;
D) a=int(i);
52.以下程序的输出结果为( C )。
main()
{
int a=2, b=-1, c=2;
if(a
if(b<0) c=0;
else c++;
printf(“%d\n”,C);
}
A) 0
B) 1
C) 2
D) 3
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
二、填空题1.若从键盘输入58,则以下程序输出的结果是 585858 。
main()
{ int a;
scanf(“%d”,&a);
if(a>50) printf(“%d”,a);
if(a>40) printf(“%d”,a);
if(a>30) printf(“%d”,a);
}
2.下面程序的运行结果是 -1 。
main()
{
int a=2, b=3, c; www.Examda.CoM
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
printf(“%d\n”,C);
}
3.以下程序实现:输入三个整数,按从大到小的顺序进行输出。请填空。
main()
{
int x, y, z, c;
scanf(“%d %d %d”, &x, &y, &z);
if( y>x ) { c=x; x=y; y=c;}
if( z>x ) { c=x; x=z; z=c;}
if( z>y ) { c=y; y=z; z=c;}
printf(“ %d %d %d”, x, y, z);
}
4.如果运行时输入字符Q,则下面程序的运行结果是 Q 。
main()
{
char ch;
scanf(“%c”, &ch);
ch=(ch>=‘A’&& ch<=‘Z’)? (ch+32):ch;
ch=(ch>=‘a’&& ch<=‘z’)? (ch-32):ch;
printf(“%c”, ch);
}
5.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式 x==0 。
6.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 x>5||x<-5 。
7.下列程序段的输出结果是 passwarn 。
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
8.以下程序将两个数从小到大输出。
main()
{
float a, b, t ;
scanf( "%f %f" , &a, &b);
if(a>b)
{ t=a;
a=b ;
b=t;
}
printf(“%5.2f, %5.2f\n”, a, b);
}
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
9.若输入8642,以下程序的输出结果为 place=4,每位数字为:8,6,4,2 。
main()
{
long int num;
int gw, sw, bw, qw, ww, place;
printf(“请输入一个0~99999之间的整数:”);
scanf(“%ld”, &num);
if(num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2; 来源:考试大
else place=1; http://ks.examda.com
printf(“place=%d,”, place);
printf(“每位数字为: ”);
ww=num/10000;
qw=(num-ww*10000)/1000;
bw=(num-ww*10000-qw*1000)/100;
sw=(num-ww*10000-qw*1000-bw*100)/10;
gw=num-ww*10000-qw*1000-bw*100-sw*10;
switch(place)
{case 5: printf(“%d, %d, %d, %d, %d”, ww, qw, bw, sw, gw); break;
case 4: printf(“%d, %d, %d, %d”, qw, bw, sw, gw); break;
case 3: printf(“%d, %d, %d”, bw, sw, gw); break;
case 2: printf(“%d, %d”, sw, gw); break;
case 1: printf(“%d”, gw); break;
}
}
10.若输入1988,程序运行的结果为 1988年是闰年 ;若输入1989,则结果为 1989年不是闰年 。
main()
{int year, leap;
scanf(“%d”, &year);
if(year%4) leap=0;
else if(year%100) leap=1;
else if(year%400) leap=0;
else leap=1;
if(leap) printf(“%d年是闰年。\n”, year);
else printf(“%d年不是闰年。\n”, year);
}
11.用以下程序把大写字母A~Z转换成对应的小写字母a ~ z,其他字符不转换。
main()
{char ch;
scanf ( "%c",&ch );
ch=( ch>='A'&&ch<='Z' )?ch+32:ch;
printf(“char=%c\n”, ch );
}
12.条件“2020&&x<30||x<=-100 。
13.若已知a=10, b=20, 则表达式!a
14.若已定义int a=25, b=14, c=19; 以下三目运算符(?:)所构成的语句的执行结果是
###a=26,b=13,c=19 。
a++<=25&&b--<=2&&c++?printf(“***a=%d, b=%d, c=%d\n”, a, b, C): printf(“###a=%d, b=%d, c=%d\n”, a, b, C);
15.以下两条if语句可合并成一条if语句为 if(a>b){y=2;printf("****y=%d\n",y);} else {x=1;printf("####x=%d\n",x);} 。
if(a<=b) x=1;
else y=2;
if(a>b) printf(“**** y=%d\n”, y);
else printf(“#### x=%d\n”, x);
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!