15.以下程序对输入的一个小写字母,将字母循环后移5个位置输出。如‘a’变成‘f',‘w'变成‘b'。请填入正确的内容。 #include “stdio.h” void main (){char c;c=getchar();if(c>=‘a'&&c<='u'【1】else if (c>‘v'&&c<='z')【2】putchar}
【1】c=c+5 【2】c=c-21
16.以下程序实现输出x,y,z三个数中最大者。请填空。
#include “stdio.h” void main (){int x=4,y=6,z=7;int(【1】);if(【2】)u=x;else u=y;if(【3】)v=u;else v=z;printf(“v=%d”,v);} 【1】u,v【2】x>y【3】u>x
17.以下程序的功能是判断输入的年份是否闰年。请填空。 #include “stdio.h” void main (){int y,f;scanf(“%d”,&y);if(y@0==0)f=1;else if(【1】)f=1;else【2】;if(f)printf(“%d is”,y);elseprintf(“%d is not”,y);printf(“a leap year\\n”);} 【1】y%4==0&&y0!=0【2】f=0
18.输入某个职工的工资,根据不同档次扣除所得税,然后计算实发工资。扣税标准如下。 (1)若工资低于850元,则不扣税。
(2)若工资在850至1500之间,则扣税比例为1% (3)若工资在1500至2000之间,则扣税比例为1.5% (4)若工资大于2000之间,则扣税比例为2%
要求:输入工资为负数,则显示出错信息。请填上正确内容。
#include “stdio.h” void main (){foat gz,rfgz;printf(“plase input a float gz:\\n”);scanf(“%f”,&gz);printf(“gz is %7.2f\\n”,gz);if(gz<0) printf(“error input again!\\n”);else if(【1】)rfgz=gz;else if(【2】)rfgz=gz-gz*0.01;else if(【3】)(【4】);else【5】;if(gz>0)printf(“gz is %7.2f,rfgz is %7.2f.\\n”,gz,rfgz);} 【1】gz<850【2】(gz>=850)&&(gz<1500)【3】gz>=1500)&&(gz<2000)【4】rfgz=gz-gz*0.015【5】rfgz=gz-gz*0.020
3.3循环结构程序设计 一、选择题
1.下述循环的循环次数是(B) int k=2;while(k=0)printf(“%d”,k);k--;printf(“\\n”; A.无限次 B.0次 C.1次 D.2次 2.有以下程序段:
int k=0;while(k=1)k++;while循环执行的次数是(A)
A.无限次 B.有语法错误,不能执行 C.一次也不执行 D。执行一次 3.下述语句执行后,变量k的值是(B) int k=1;while(k++<10);
A.10 B.11 C.9 D.无限循环,值不定 4.有以下程序:
#includevoid main(){int n=10;while(n>7){n=n-1;printf(“%d”,n);}}以上程序输出的结果是(B)
A.1098 B.987 C.10987 D.9876 5.有以下程序
#includevoid main(){int k=5;while(--k)printf(“%d”,k-=3);}以上输出的结果是(A) A.1 B.2 C.4 D.死循环 6.读下面程序:
?#include“stdio.h”?#include“match.h”{float x,y,z;scanf(“%f,%f”,&x,&y);z=x/y;while(1){if (fabs(z)>1.0){x=y;y=z;z=x/y;}else break;}prinf(“%f”,y)}若运行时从键盘上输入“3.6,2.4”,则输出的结果是(B)
A:1.500000 B:1.600000 C:2.000000 D:2.400000
7.运行以下程序后,如果从键盘上输入china,则输出结果为(C) #include“stdio.h”void main (){int v1=0,v2=0;char ch;while((ch=getchar())!=‘#')switch(ch){case ‘a':default:v1++;case‘o':v2++;}printf(“%d,%d,”,v1,v2);} A.2,0 B.5,0 C.5,5 D.2,5
8.若执行下面程序时,输入“Adescriptor”,则以下程序的输出结果是(D) #include“stdio.h”void main(){charc;int v0=0,v1=0,v3=0;do switch(c=getchar()){case‘a':case‘A':case‘e':case‘E':case‘i':case‘I': case‘o':case‘O':case‘u':case‘U':v1++;
default:v0++;v2++;}while{c!=‘\\n');printf(“\\nvo=%d,v1=%d,v2=%d”,v0,v1,v2);} A.vo=7,v1=4,v2=7 B.vo=8,v1=4,v2=8 C.vo=11,v1=4,v2=11 D.vo=12,v1=4,v2=12 9.下述程序的输出的结果是(B)
#include“stdio.h”void main(){char c=‘A';int k=0;do{switch(c++){case‘A':k++;break;case‘B':k--;case‘C':k+=2;break case‘D':k%=2;continue;
case‘E':k*=10;break;default:k/=3;}k++;}while(c<‘G');printf(“k=%d”,k);} A:k=3 B:k=4 C:k=2 D:k=0 10.以下程序输出结果是(B)
#include“stdio.h”void main(){int x=3;do{printf(“%d\\n”,x-=2);}while(!(--x));} A.输出的是1 B。输出的是1和-2 C.输出的是3和0 D.是死循环 11.对于下面(1),(2)两个循环语句,(A)是正确的描述。 (1)while(1);(2)for(;;);
A.(1)(2)都是无限循环 B.(1)是无限循环,(2)错误 C.(1)循环一次,(2)错误 D.(1)(2)都错 12.对于下述for循环语句,下列说法正确的是(B) int i,k;for(i=0,k=-1;k=1;i++,k++)printf(“***”); A.判断循环结束的非法条件 B.是无限循环 C.只循环一次 D.一次也不循环 13.下述for语句的循环次数是(A)
int i,x;for(i=0,x=0;i<=9&&x!=876;i++)scanf(“%d”,&x);
A.最多循环10次 B。最多循环9次 C.无限循环 D.一次也不循环 14.若i,j已定义为int型,则以下程序段中内循环的总次数是(A) for (i=5;i;i--)for(j=0;j<4;j++)
A.20 B.24 C.25 D.30 15.下述循环语句是(C)
for(a=0,b=0;a<3&&b!=3;a++);
A.是无限循环 B.循环次数不定 C.循环3次 D.循环4次 16.以下循环体的执行次数是(C)
main(){int i,j ;for(i=0,j=1;i17.以下程序的输出结果是(D)main(){int x=10,y=10,i;for(i=0;x>8;y++i)printf(“%d,%d”,x--,y);}
A.10,19,2 B.9,87,6 C.10,99,0 D.10,109,1 18.以下程序执行后,sum的值是(C).
#include“stdio.h”void main(){int i,sum;for(i=1;i<6;i++)sum+=i;printf(“%d\\n”,sum);} A.15 B.14 C.不确定 D.0
19.以下程序执行后,sum的值是(C)
#include“stdio.h”void main(){int a=0, i;for(i=1;i<5);i++){switch(i){case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}}printf(“%d\\n”,a);} A.31 B.13 C.10 D.20
20.若下述程序执行时按如下方式输入数据: abcdef<回车>则该程序的运行结果是(A) #include“stdio.h”void main(){int k;char c;for(k=0;k<=5;k++){c=getchar();putchar(c);}printf(“\\n”);} A.abcdef B.a C.a D.adcdef 21.以下程序的输出结果是(B)
#include “stdio.h” void main(){int k=0,m=0;int i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf(“k=%d,m=%d”,k,m);}
A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5 22.以下程序的输出结果是(C) #include“stdio.h”void main(){int x;for(x=1;x<=10;x++)if(++x%2==0)if(++x%3==0)if(++x%5==0)printf(“%d,”,x);} A.输出31,61,91 B.输出30,60,90 C.不输出任何内容 D.输出29,59,89 23.下述程序的输出结果是(D) #include“stdio.h”void main(){int x=3,y=6,z=0;while(x++!=(y-=1(){z++;if(y=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf(“%d\\n”,a);}
A.7 B.8 C.9 D.10
25.设x,y均为int型变量,则执行下面的循环后,y的值为(C)
for(y=1,x=1;y<=50;y++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;} A.2 B.4 C.6 D.8 26.以下程序的输出结果是(A)