8.下列循环中哪一个不是无限循环
A) for(i=1;;i++) B) i=1;while(i--)
printf(“%d”,i); {printf(“%d”,i++);} C) i=1 D) for(i=0;i;i++) do printf(“%d”,i);
{printf(“%d”,i); i++;}while(--i);
9.有以下程序段:
int i,j;
for(i=0;i<5;++i) for(j=i;j<5;++j) printf(“*”);
则执行以上的程序片段后,输出‘*’个数是 A)15 B)10 C)25 D)20 10.有以下程序段:
int i,j; i=0;j=0;
while(i++<5) {j=0; do
{printf(“*”);} while(++j<4);}
则执行以上的程序片段后,输出‘*’的个数为
A)15 B)10 C)25 D)20 11.下面的程序段不能实现求阶乘8!(8!=1*2*3*4*5*6*7*8,结果存放在p中)的是 A)p=1; B)p=2;
for(i=1;i<9;i++) for(i=8;i>3;i--) p=p*i; p=p*i; C)p=1;i=1; D)p=1;i=8; while(i<9) do
p=p*i++ ; {p=p*i--;} while(i>1);
12.有下列程序段: char ch; int s=0;
for(ch=’A’;ch<’Z’;++ch) if(ch%2= =0)s++;
printf(“%d”,s);
则执行上述片段后,程序的输出结果是 A)13 B)12 C)26 D)25 13.有下面的程序:
main()
{int i,n,k;
13
n=15496;k=2;
for(i=1;i n=n; printf(“%d”,n);} 则执行后的输出结果是 A)9 B)6 C)2 D)1 14.有以下程序: main() {int a[10]={4,3,3,4,3,8,4,2,8,3}; int i,j,b[10]; for(i=0;i<10;++i) {b[i]=0; for(j=0;j<10;++j) if(a[j]= =a[i])b[i]=b[i]+1;} j=0; for(i=1;j<10;++i) if(b[i]>b[j])j+I; printf(“%d”,a[j]);} 执行程序后的输出结果是 A)8 B)4 C)3 D)2 15.语句while(!e= =0);是什么时候将会陷入死循环 A) e==0 B) e!=0 C) e!=1 D)e!= -1 16.以下程序的输出结果是 14 #include {int i; for(i=1;i<=5;++i) {if(i%2) printf(“*”); else continue;printf(“#”);}printf(“$”);} A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ 17.有以下程序片段 int k=5; while(k=1)k--; 执行此程序片段,则描述正确的是 A)while循环执行4次 B)循环体执行一次 C)循环体一次也不执行 D)死循环 18.下面程序的运行结果是 #include {int i=1; do{i--;}while(i++); printf(“%d”,i--);} A) -1 B) 0 C) 1 D)陷入死循环 19.以下说法中正确的是 A)continue语句的作用是结束整个循环的执行 B)break语句应出现在switch语句和循环语句中 C)利用goto语句可以使程序的执行从一个函数跳到另一个函数 D)循环语句中break语句不能单独出现 填空题: 1.执行下属程序片段后的输出结果为____. int a=6; while(a--) printf(“%d”,a--); 2.有以下程序,其功能是将从键盘上输入的小写字母转换成大写字母输出,当输入为‘#’时,结束转换,请在下划线处填上合适的语句。 #include {char c; scanf(“%c”,&c); while(______) {if((c>=’a’)&&(c<=’z’)) printf(“%c”,______); scanf(“%c”,&c);} } 3.为输出入下图形,请在程序中的下划线处填入合适的内容 * ** *** * * * * * * * * * 15 * main() {int i,j; for(i=0;i<4;++i) {for(j=0;j<______;j++) print(“ ”); for(j=0;j<______;j++) printf(“*”); printf(”\\n”);} for(i=0;i<3;++i) {for(j=0;j printf(“ “); for(j=0;j<3-i;j++) printf(“*”); printf(“\\n”);} } 4.现有已知长度为n的整型数组a,其前n-1个元素中已有数据,并且数据按从小到大的顺序排列,函数insert要完成的功能是:把任意整数i填入数组a中,并使插入数据后的数组依然保持从小到大的顺序(函数参数的意义分别是:i为需插入的数据,n为数组a的长度,a为数组名)。 insert(int i,int n,int a[ ]) { int k; k=n-1; while((k>0)&&(______)) { a[k]=a[k-1]; k=k-l;} a[k]=______;} 5.已知e=l++ 1!112!+ 13!+?+ 1n!,试用此公式求e的近似值,要求累加所有不小于1e-6的项值, 请在程序中下划线处填上合适内容,完成程序功能。 #include { int i; float e,n; e=1.0;i=1; n=1.0; while(______) { n=1.0 / tun(i);i++; e+=n; } } fun(int i) { int j,k; k=l; for(j=1; ____;++j) k=k*j; return(k); } 6. 下面程序可从键盘上输入一个大于0且小于1000的整数,然后输出此整数的所有整数因子。如:输入12,输出l,2,3,4,6,12。请在下划线处填上合适的内容,完成该程序。 16 main() {int a,k; scanf(”%d,&a); if((a>0)&&(a<1000)) {printf(\%d\,a); for(k=1; ;++k) if(______)printf(\%d\,k);} } 7. 现有一等差数列,已知第一项a=1,公差b=4,下面程序的功能是输出满足前n项之和小于100的n最大值,请填空完成该程序。 #include { int a=1,b=4,sum=1,n=1; while(______) { a=a+b; sum=sum+a; n++; } printf(\%d\,n-1); } 8.以下程序的输出结果是______。 #incude { int i; for(i=0;i<=20;i=i+5) switch(i/5)
相关推荐: