{ case 0: a++;break; case 1: b++;break; }
case 2: a++;b++;break; case 3: a++;b++;
}
printf(\ } 三、 填空题
1. 若a=5,b=6,c=7,d=8,则表达式d=a/2&&b==c||!a的值为 2. 定义 int x=10,y,z;执行y=z=x;x=y==z后,变量x的值为 。 3. 分段函数:输入x,计算y值,输出y,其中:
x<0 y=2x+3 x=0,y=0 x>0,y=(x+7)/3 #include
int x,y; scanf(\
if(x<0) (1) ; (2) y=0; (3) y=(x+7)/3; printf(“%d”,y); }
4. 由键盘输入三个数,计算以这三个数为边长的三角形面积。 (1) main() {
(2) ;
printf(\ scanf(\
10
if( (3) ) { s=(a+b+c)*0.5;
s1=s*(s-a)*(s-b)*(s-c); s= (4) ;
printf(\ } (5)
printf(\ }
5. 有一方程ax+bx+c=0,a,b,c的值由键盘输入,请编程序,打印出以下情况时方程的
解。
main()
{ float a,b,c,d,pr,pi,x1,x2; scanf(\ printf(\ if(a==0) { if( (1) )
printf(\ else
if( (2) )printf(\ else printf(\ } else
{ d=b*b-4*a*c; if( (3) )
{ x1=(-b+sqrt(d))/ (4) ;
11
2(1) a=0,b≠0 (2) a=0,b=0,c=0 (3) a=0,b=0,c≠0 (4) a≠0,b-4ac≥0 (5) a≠0,b-4ac≤0
22#include \
x2=(-b-sqrt(d))/ (5) ;
printf(\ } else
{ pr=-b/(2*a); (6) ;
printf(\ printf(\ } } }
6. 投票表决器:
– 输入Y、y,打印agree – 输入N、n,打印disagree – 输入其他,打印lose
main()
{
char c; scanf(\ (1)
{ }
case ‘Y’:
case ‘y’: printf(“agree”); (2) ; case ‘N’:
case ‘n’: printf(“disagree”); (3) ; (4) :printf(“lose”);
12
第四单元 循环程序设计
一、 选择题
1. 程序段如下:则以下说法中正确的是: 。
int k=5; do{ k--; }while(k<=0);
A. 循环执行5次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 2. 设i和x都是int类型,则for循环语句 。
for(i=0,x=0;i<=9&&x!=876;i++) scanf(\
A. 最多执行10次 B. 最多执行9次 C. 是无限循环 D. 循环体一次也不执行 3. 下述for循环语句 。
int i,k;
for(i=0,k=-1;k=1;i++,k++) printf(\
A. 判断循环结束的条件非法 B. 是无限循环 C. 只循环一次 D. 一次也不循环 4. 程序段如下:则以下说法中正确的是: 。
int k=-20; while(k=0) k=k+1;
A. while循环执行20次 B. 循环是无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 5. 下列程序段执行后k值为 。
int k=0,i,j; for(i=0;i<5;i++)
for(j=0;j<3;j++) k=k+1 ;
A. 15 B. 3 C. 5 D. 8
6. 程序段如下:则以下说法中不正确的是: 。
#include
13
main() {
int k=2,; while(k<7) {
if(k%2) {k=k+3; printf(“k=%d\\n”,k);continue;} k=k+1;
printf(“k=%d\\n”,k); } }
A. k=k+3;执行一次 B. k=k+1;执行2次 C. 执行后k值为7 D. 循环体只执行一次 1. main() { int num=0; while(num<=2)
{ num++; printf(\
}
2. main()
{ int i=0,s=0; do
{ s+=i*2+1; printf(\while(s<10);
}
3. #include
main()
{ int i,m=1; for(i=5;i>=1;i--) {
m=(m+1)*2;
printf(\
}
14
二、 读程序写结果