第3章分支结构真题1.docx
《第3章分支结构真题1.docx》由会员分享,可在线阅读,更多相关《第3章分支结构真题1.docx(14页珍藏版)》请在冰豆网上搜索。
第3章分支结构真题1
2010.6月
7.下面说法错误的是:
(C)
A.do…while{}语句至少执行一次循环B.break语句可以跳出switch语句和循环语句
C.每个if一定有一个else和它对应D.每个else一定有一个if和它对应
8.以下程序输出结果为:
#include“stdio.h”
main()
{
Charc=’c’;
printf(“%c”,c+2);}
输出结果是:
(B)
A.有语法错误,不能通过编译B.eC.99D.c
9.判断字符串a和b相等的正确表达式是:
(C)
A.if(a=b)B.if(strcpy(a,b))
C.if(strcmp(a,b)==0)D.if(a==b)
13.与y=a>b?
a:
b语句等价的程序段的是:
(A)
A.if(a>b)y=a;elsey=b;B.if(a>b)y=b;elsey=a;C.if(a>b)y=a;y=b;D.if(a>b)y=b;y=a;
17.运行以下程序段时编译出错,其原因是:
(D)
charc1=’a’,c2=’123’;
printf(“%c,%d\n”,c1,c2);
A.字符串要用“123”表示
B.’123’只能赋值给字符数组
C.C2是字符变量,不能用%d格式输出
D.’123’不是正确的字符常量,不能赋值给字符变量C2
24.下列程序执行后输出结果是:
(A)
main()
{
intm=3;
printf(“f(%d)=%d”,m,(m>=0?
1:
0))
}
A.f(3)=1B.f(3)=0C.f(3)=3D.f
(1)=3
25.下列程序执行后输出结果是:
(A)
main()
{intx=1,y=2,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
case1:
b++;
}
break;
case2:
a++;b++;break;
}
printf(“a=%d,b=%d\n”,a,b);
}
A.a=0,b=0B.a=1,b=0C.a=0,b=1D.a=1,b=1
29.以下程序执行后输出的结果是:
(C)
main()
{inta,b,x=45;
a=b=0;
if(!
a)x--;
if(b)x=30;
elsex=40;
printf(“x=%d\n”,x);
}
A.x=0B.x=30C.x=40D.x=44
2009.6月
6.判断char型变量ch是否为大写字母的正确表达式是(C)。
A.‘A’<=ch<=’Z’B.(ch>=’A’)OR(ch<=’Z’)
C.(ch>=’A’)&&(ch<=’Z’)D.(‘A’<=ch)AND(‘Z’>=ch)
8.若希望当inta;a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是(D)。
A.a%2==1B.!
(a%2==0)C.a%2D.!
(a%2)
11.正确判断字符串a和b相等的表达式为:
(D)
A.a==bB.a=b
C.strcpy(a,b)D.strcmp(a,b)==0
14.与y=a>b?
a:
b语句等价的程序段的是:
(A)
A.if(a>b)y=a;elsey=b;B.if(a>b)y=b;elsey=a;C.if(a>b)y=a;y=b;D.if(a>b)y=b;y=a;
19.语句if(!
e)中e等于(A)时条件为真。
A.0B.1C.非0D.2
22.以下程序的运行结果是(D)。
#include"stdio.h"
main()
{inta=9,b=10;
if(a==b)
{printf("#####");}
else
{printf("*****");}
if(a=b)
{printf("$$$$$\n");}
}
A.#####B.#####$$$$$C.*****D.*****$$$$$
24.以下程序的运行结果是(C)。
#include"stdio.h"
main()
{intx,a=10,b=20,c=5;
if(a
{x=-1;
if(b!
=10)
{if(!
c)
{x=1;}
else
{x=2;}
}
}
printf("%d\n",x);
}
A.-1B.1C.2D.不确定值
2008.6月
9.以下程序
main()
{
inta=1,b=2,c=3,d=4,m=6;
if(a>b)
if(c>d)m=3;
elsem=4;
elsem=5;
printf("%d",m);
}
_执行后输出的结果(C)。
A.3B.4C.5D.6
17.表达式y<3?
-1.0:
1.0的值是类型应是(B)。
A.不确定B.实型C.整型D.无符号整型
21.以下程序:
#include
main()
{intx=1,y=3,z=0;
if(!
z)z++;
if(x)z--;
if(y)z-=1;
printf("%d\n",z);
}
_执行后输出的结果是:
(A)
A.-1B.0C.1D.2
24.以下程序执行后输出的结果是:
(B)
#include
main()
{inta=1,b=0,c=2;
a-=b+(b&&c);
printf("%d\n",a);}
_
A.0B.1C.2D.3
29.以下程序:
(C)
#include
main()
{inta=0,b=1,c=2,d;
d=(a+a||b)+c;
printf("%d",d);}
A.1B.2C.3D.4
2008.1月
8.若有a=-2,b=3,c=-4,d=5,则表达式a>b?
a:
c>d?
c:
d的值为:
(D)
A.3B.-2C.-4D.5
10.以下程序:
inta=0,b=1,c=0;
if(a=b+c)printf("==");
elseprintf("!
=");
下列判断正确的是:
(A)
A.输出:
==B.输出:
!
=C.没有输出D.语法错误,编译不通过
24.以下程序:
main()
{
inta=4,b=1,c=0;
a/=b+(b||c);
printf("%d\n",a);
}
执行后输出的结果是:
(A)
A.2B.4C.0D.1
26.以下程序:
main()
{
floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);
}
执行后输出的结果是:
(C)
A.0.000000B.0.250000C.0.500000D.1.000000
27.以下程序:
main()
{
intx=0,y=0,z=0;
switch(x)
{case0:
x++;break;
case1:
y++;break;
case2:
z++;break;
}
printf("%d\n",x+y+z);
}
执行后输出的结果是:
(B)
A.0B.1C.2D.3
2007.6月
5.下列语句中正确的是(A)。
A.chara,b,c;B.intx=y=l0:
C.floatx;y;D.charstrlstr2str2:
12执行下面两个语句后.输出的结果为(C)。
charc1=97,c2=98;
printf(“%d%c“,c1,c2);
A.abB.9798C.97bD.a98
21.下列程序:
main()
{
intx,y,z;
x=5,y=8,z=25;
if(z>x+y)
z+=x*y;
else
z-=x*y;
printf("%d\n",z);
}
执行后输出的结果是:
(A)
A.65B.15
C.40D.25
27.下列程序从键盘输入65后,程序的运行结果为:
(D)
main()
{
intm;
scanf(“%d“,&m);
switch(m/10)
{
case10:
Case9:
printf(“优秀”):
break:
case8:
printf(“良好”).break:
case7:
printf(“中等”):
break:
case6:
printf(“及格”):
break.
default:
prJntf(“不及格”):
}
}
A.不及格B.优秀C.中等D.及格
第二卷
说明:
(1)第二卷均为填空题,在阅读和原题程序的基础上,在第二卷答题卡上编号对应的栏目中填入适当的字符,语句,以构成一个正确的C语言程序。
(2)每空栏3分,10个空栏共30分。
1.以下程序将两个数从大到小输出:
#include
main()
{
floata,b,1;
scanf("2",&a,&b);
if(a>b)
(
temp=a;
3;
b=temp;
}
printf("%f,%f",a,b);
}
答案:
printf("%f,%f",a,b);应改为printf("%f,%f",b,a);
1.temp
2.%f%f
3.a=b
2.
以下程序是从键盘输入一个字符.如果它是一个大写字母。
则把它变成小写字母,如果它
是一个小写字母.则把它变成大写字母,其它字符不变。
#include
main()
{chartch;
scanf("%c",4);
if(5)tch=tch+32;
elseif(tch>='a'&&tch<='z')6;
printf("%c",tch);
}
答案:
4.&tch
5.tch>='A'&&tch<='Z'
6.tch=tch-32
2007.1月
2.下列语句正确的是:
(C)
A.cnar:
a,b,cB.chara;b;c;
C.intx,y;D.intxyz;
8.以下程序:
main()
{
intx=2,y=4,z=7,m;
m=x&&y+z);
printf(“%d”,m);
}
输出结果是()如果m=x&&(y+z);答案B;如果m=(x&&)y+z;答案A
A.8B