资源描述
第3单元 分支结构程序设计
一、单项选择题
1.下面程序运行后,如果从键盘上输入5,则输出结果是_______。
main()
{ int x;
scanf(“%d”,&x);
if(x- -<5) printf(“%d\n”,x);
else printf(“%d”,x++);
}
A.3 B.4 C.5 D.6
2.下面程序的输出结果是_______。
main()
{ int m=5;
if(m++>5 printf(“%d \n”,m);
else printf(“%d\n”,m- -);
}
A.7 B.6 C.5 D.4
3.下面程序的输出结果是________。
main()
{ int x=3,y=0,z=0;
if(x==y+z)
printf(“****”);
else
printf(“# # # #”);
}
A.有语法错误,不能通过编译 B.输出****
C.可以通过编译,但是不能通过连接,因而不能运行 D.输出# # # #
4.执行下列语句后,变量b的值是________。
int x=35;
char z=’A’;int b; b=((x&15)&&(z<’a’));
A.0 B.1 C.2 D.3
5.以下关于switch语句和break语句的描述中,正确的是_______。
A.在switch语句中必须使用break语句
B.在switch语句中,可以根据需要使用或不使用break语句
C.break语句只能用于switch语句中
D.break语句是switch语句的一部分
6.下面程序的输出结果是_______。
main()
{ int x=10,y=20,t=0;
if(x= =y)
t=x;
x=y;
y=t;
printf(“%d %d\n”,x,y);
}
A.10 10 B.10 20 C.20 10 D.20 0
7.有下面程序,执行后的输出结果是_______。
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf(“%d\n”,d);
else if((c-1>=d)= =1)
printf(“%d\n”,d+1);
else
printf(“%d\n”,d+2);
}
A.2 B.3 C.4 D.编译时有错,无结果。
8.若a,b,c1,c2,x,y均为整型变量,正确的switch语句是______。
A.switch(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*b;break; case 3:case 4:x=a+b;break;
default:x=a+b; } case 10:case 11:y=a-b;break; }
9.有一函数:,以下程序段中不能根据x值正确计算出y值的是____。
A.if(x>0) y=1; B.y=0;
else if(x= =0) y=0; if(x>0) y=1;
else y=-1; else if(x<0) y=-1;
C.y=0; D.if(x>=0)
if(x>=0) if(x>0) y=1;
if(x>0) y=1; else y=0;
else y=-1; else y=-1;
10.有下面程序,程序运行后的输出结果是________。
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
11.C语言用_______表示逻辑“真”值。
A.true B.t或y C.非零整型值 D.整型值0
12.为了避免嵌套的条件分支语句if—else 的二义性,C语言规定:C程序中的else总是与_____组成配对关系。
A.缩排位置相同的if B.在其之前未配对的if
C.在其之前未配对的最近的if D.同一行上的if
13.执行下面程序,输入为1的输出结果是__⑴__,输入为3的输出结果为__⑵__。
#include “stdio.h”
main()
{ int k;
scanf(“%d”,&k);
switch(k)
{ case 1:
printf (“%d\n”,k++);
case 2:
printf (“%d\n”,k++);
case 3:
printf (“%d\n”,k++);
case 4:
printf (“%d\n”,k++);
break;
delfault:
printf(“Full!! \n”);
}
}
⑴ A.1 B.2 C. 2 D. 1
3 2
4 3
5 4
⑵ A. 3 B.4 C.3 D. 4
4 5
14.若从键盘输入58,则下面程序输出的结果是_____________ 。
main()
{ int a;
scanf("%d",&a);
if(a>50) printf("%d ",a);
if(a>40) printf("%d ",a);
if(a>30) printf("%d ",a);
}
A.58 58 58 B.58 58 C.58 D.0
15.运行两次下面的程序,如果从键盘上分别输入6和4,则输出结果是 ________。
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
二、读程序
1.改正下列程序中错误的语句。
#include “stdio.h”
main( )
{ int a;
printf("Input an integer:");
scanf("%d",a);
if(a=1)
printf("One\n");
else if(a<>2)
printf("Many\n")
else printf("Two\n");
}
2.写出下面程序的功能。
#include “stdio.h”
main()
{ char ch;
scanf("%c",ch);
if(ch>=’A’ && ch<=’Z’)
ch=ch-32;
printf(“%c”,ch);
}
3.写出下列程序的输出结果。
#include “stdio.h”
main()
{ int x=11,y=1;
if(x%2==1)
x+=5;
else
x-=3;
y+=5;
printf(“%d %d”,x,y);
}
4.写出下列程序的输出结果(执行后输入数据3)。
#include “stdio.h”
main()
{ int k;
scanf(“%d”,k);
switch(k)
{ case 1:printf(“%d\n”,k++);
case 2:printf(“%d\n”,k++);
case 3:printf(“%d\n”,k++);
case 4:printf(“%d\n”,k++);
break;
default:printf(“Full!\n”);
}
}
5.写出下列程序的输出结果。
#include “stdio.h”
main()
{ int x=6;
if(x++>7)
printf(“%d\n”,x);
else
printf(“%d\n”,x--);
}
6.写出下列程序的输出结果。
#include “stdio.h”
main()
{ int k=2,j=3;
if (k+j<10)
{ k=5;
j=k; }
printf(“%d %d”,k,j); }
7.根据下面程序,写出相应的数学表达式。
#include “stdio.h”
main()
{ int x,y;
scanf(“%d”,&x);
if(x<0) y=-1;
else if(x= =0)
y=0;
else y=1;
printf(“%d %d\n”,x,y); }
三、编程题
1.给定一个整数,判断它是否能同时被3、5、7整除。
2.输入三角形三条边的长度,判断它们能否构成三角形,若能则指出是何种三角形:等边、等腰、直角、一般;若不能构成三角形,则输出相应的信息。
3.输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数 odd-奇数)
4.输入一个x值,计算分段函数的值。
5.从键盘输入 4 个不相等的整数存入变量 n1,n2,n3,n4,找出其中最小的一个数并输出。
6.从键盘上输入一个数,若该数可以被13整除则输出,否则显示相应信息。
7.从键盘上输入一个字符,若该字符不是英文字母,则输出该字符。
展开阅读全文