C语言分支结构练习题 enjoy it !
C语言分支结构练习题
一、选择题
1.假定所有变量均已正确定义,下列程序段运行后y的值是( )。 int a=0, y=10;
if (a=0) y--; else if(a>0)y++;else y+=y; A. 20
B. 11
C. 9
D. 0
2.假定所有变量均已正确定义,下列程序段运行后x的值是( )。 a=b=c=0; x=35;
if (!a) x--; else if(b); if(c) x=3; else x=4; A. 34 y=-1;
if(x!=0) if(x>0) y=1; else y=0; -1 (x<0) A. y = 0 (x=0) 1 (x>0)
0 (x<0)
-1 (x<0) 0 (x>0)
C. y = -1 (x=0)
D. y = 1 (x=0)
1 (x<0) -1 (x=0) 0 (x>0)
B. y =
B. 4
C. 35
D. 3
3.下面的程序片段所表示的数学函数关系是( )。
1 (x>0) int i=1; switch(i++){
4. 假定i和j为int型变量,则执行以下语句后j的值为( )。
case 1: for(j=0;j<9;j++) if (i==1) break; case 2: for(j=1;j<10;j++) if (i==2) break; case 3: printf(“i=%d\\n”,i); } A. 0
B. 1
C. 9
D. 10
5. 在C语言的语句中,用来决定分支流程的表达式是( )。 A. 可用任意表达式
B. 只能用逻辑表达式或关系表达式 D. 只能用关系表达式
C. 只能用逻辑表达式
4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组
1 / 8
C语言分支结构练习题 enjoy it !
成配对关系。 A.缩排位置相同的if
B.在其之前未配对的if D.同一行上的if
C.在其之前未配对的最近的if A.只能是0或1
5.逻辑运算符两侧运算对象的数据类型( )。
B.只能是0或非0正数 D.可以是任何类型的数据
C.只能是整型或字符型数据
6. 以下关于运算符优先顺序的描述中正确的是( )。 A.关系运算符<算术运算符<赋值运算符<逻辑与运算符 B.逻辑与运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑与运算符<关系运算符<算术运算符 D.算术运算符<关系运算符<赋值运算符<逻辑与运算符 7. 下列运算符中优先级最高的是( )。 A.<
B.&&
C.+
D.!=
8. 选择出合法的if语句(设int x,a,b,c;)( )。 A.if(a=b) c++;
B.if(a=b) c++;
C.if(a<>b) c++; 的表达式是( )。
A.(x>= -58) && (x<= -40) && (x>=40) && (x<=58) B.(x>= -58) || (x<= -40) || (x>=40) || (x<=58) C.(x>= -58) && (x<= -40) || (x>=40) && (x<=58) D.(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)
10.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是( )。 A.x%2==1 A.0
B.!(x%2==0) B.语法错
C.!(x%2) C.1
D.x%2 D.“假”
11.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是( )。 12.逻辑运算符两侧运算对象的数据类型( )。 A.只能是0或1
B.只能是0或非0正数 D.可以是任何类型的数据
C.只能是整型或字符型数据
9. 能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”
13. 在C语言中,如果下面的变量都是int类型,则输出的结果是( ) 。
2 / 8
C语言分支结构练习题 enjoy it !
sum=pad=5; pad=sum + + ,pad + + , + + pad; printf(\ A. 7
B. 6
C. 5
D. 4
14. 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 ( ) 。 #include “stdio.h” main()
{char c1='A', c2='Y'; printf(\ }
A. 因输出格式不合法,输出错误信息 C. A,Y
二、填空题
1.在C 语言中,表示逻辑“真”值用_________。 2.得到整型变量 a 的十位数字的表达式为_________。 3.表达式:(6>5>4 ) +(float)(3/2) 的值是_________。
4.表达式:a=3,a-1 ‖ --a,2*a 的值是_________。(a 是整型变量) 5.表达式:(a=2.5-2.0 ) +(int)2.0/3 的值是_________。( a 是整型变量)。 6.当 m=2, n=1, a=1, b=2, c=3 时,执行完 d=(m=a!=b)&&(n=b>c) 后,n 的值 为_________, m 的值为_________。
7.若有 int x,y,z ;且 x=3 , y=-4 , z=5 ,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z) 的值为_________。
8. 若从键盘输入58,则输出结果是________。 #include ”stdio.h” main() { int a; scanf(”%d”, &a); if (a>50) printf(”%d”, a); if (a>40) printf(”%d”,a); if (a>30)
3 / 8
B. 65,90 D. 65,89
C语言分支结构练习题 enjoy it !
printf(”%d”,a); }
9.设int x=9,y=8;表达式x==y+1的结果是________。 10. 定义int x,y;执行y=(x=1,++x,x+2);后, y的值是________。 11. 定义int x=10,y,z; 执行y=z=x; x=y==z;后,x的结果是________。 12.设int a=1,b=2,c,d,e; 执行 c=(-a++)+(++b); d=(b--)+(++a)-a; e=(a/(++b))-(a/(--a));
请问a,b,c,d,e的结果是:________。 13.设int a=2,b=3,c,d,e,f; 执行 c=(a++>= --b); d=(a==++b); e=(a--!=b); f=(++a>b--);
请问a,b,c,d,e,f的结果是:________。 14. 以下程序的运行结果是________。 #include ”stdio.h” main() { int a,b,c,s,w,t; s=w=t=0; a= -1; b=3; c=3; if (c>0) s=a+b; if (a<=0) { if (b>0) if (c<=0) w=a-b; }
else if (c>0) w=a-b; else t=c;
printf(”%d %d %d”, s,w,t); }
15.以下程序的运行结果是________。
4 / 8
C语言分支结构练习题 enjoy it !
#include ”stdio.h” main() {
int a, b= 250, c; if ((c=b)<0) a=4; else if (b=0) a=5; else a=6;
printf(”\\t%d\\t%d\\n”,a,c); if (c=(b==0)) a=5;
printf(”\\t%d\\t%d\\n”,a,c); if (a=c=b) a=4;
printf(”\\t%d\\t%d\\n”,a,c); }
16.以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。
#include ”stdio.h” main() { char ch;
printf(”please input a letter:”); scanf(”%c”,&ch);
if ( ) ch=ch+32;
else if (ch>=’a’ && ch<=’z’) ;
printf(” the converted letter is: %c\\n”,ch); }
17.以下程序是对从键盘输入的任何三个整数,求出其中的最小值。请在【】内填入正确内容。 #include ”stdio.h” main() { int a,b,c,min;
5 / 8