1、设变量已正确定义,则以下能正确计算f = n!的程序段是 A) f=0; B) f=1;
for(i=1;i<=n;i++) f*=i; for(i=1;i C) f=1; D) f=1; for(i=n;i>1;i++) f*=i; for(i=n;i>=2;i--) f*=i; [B] 教师批改:D 2、有以下程序 main() { int k=5,n=0; while(k>0) { switch(k) { default : break; case 1 : n+=k; case 2 : case 3 : n+=k; } k--; } printf(\ } 程序运行后的输出结果是----。 A)0 B)4 C)6 D)7 [D] 教师批改:D 3、有以下程序 main() { int a=1,b; for(b=1;b<=10;b++) { if(a>=8) break; if(a%2==1) { a+=5; continue;} a-=3; } printf(\ } 程序运行后的输出结果是 A)3 B)4 C)5 D)6 [B] 教师批改:B 4、有以下程序 main () { int s=0,a=1,n; scanf(\ do { s+=1; a=a-2; } while(a!=n); printf(\ } 若要使程序的输出值为2,则应该从键盘给n输入的值是 A) -1 B) -3 C) -5 D) 0 [B] 教师批改:B 5、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是 A) s=a+b; B) s=a+c; C) s=s+c; D) s=b+c; [] 教师批改:B 6、有以下程序 main() { int k=4,n=4; for( ; n if(n%3!=0) continue; k--; } printf(\ } 程序运行后的输出结果是 A) 1,1 B) 2,2 C) 3,3 D) 4,4 [] 教师批改:C 7、要求以下程序的功能是计算: main () { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; print(\ } 程序运行后输出结果错误,导致错误结果的程序行是 A) s=1.0; B) for(n=10;n>1;n--) C) s=s+1/n; D) printf(\ [] 教师批改:C 8、有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf(\ case 2: printf(\ default: printf(\ } } 执行后输出结果是----。 A) 011122 B) 012 C) 012020 D) 120 [] 教师批改:A 9、有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s +=i; }while(i<7); printf(\ } 执行后输出结果是 A) 16 B) 12 C) 28 D) 21 [] 教师批改:A 10、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() { int n,k; float score ,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf(“%f”,&score); sum+=score;} ave=sum/4.0; printf(“NO%d:%f\\n”,n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf(“NO%d:%f\\n”,n,ave); [] 教师批改:A 11、有以下程序段 int n=0,p; do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3); 此处do—while循环的结束条件是 A) P的值不等于12345并且n的值小于3 B) P的值等于12345并且n的值大于等于3 C) P的值不等于12345或者n的值小于3 D) P的值等于12345或者n的值大于等于3 [] 教师批改:D 12、以下程序中,while循环的循环次数是 main() { int i=0; while(i<10) { if(i<1) continue; if(I==5) break; i++; } ...... } A) 1 B) 10 C) 6 D) 死循环,不能确定次数 [] 教师批改:D 13、以下程序的输出结果是 main() { int a=0,i; for(i=;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; } } printf(\ } A) 31 B) 13 C) 10 D) 20 [] 教师批改:A 14、以下程序的输出结果是 #include { if((i)==0) break; else i--; } i+=11; a+=i; } printh(\ } A) 21 B) 32 C) 33 D) 11 [] 教师批改:B 15、t为int类型,进人下面的循环之前,t的值为0 while( t=l ) { …… } 则以下叙述中正确的是 A) 循环控制表达式的值为0 B) 循环控制表达式的值为1 C) 循环控制表达式不合法 D) 以上说法都不对 [] 教师批改:B 16、有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 [] 教师批改:A 17、以下循环体的执行次数是 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(\ } A) 3 B) 2 C) 1 D) 0 [] 教师批改:C 18、以下程序的输出结果是 main( ) { int x=10,y=10,I; for(i=0;x>8;y=++i) printf(\,%d \,x--,y); } A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 [] 教师批改:D 19、以下程序的输出结果是 main( ) { int n=4; while(n--)printf(\,--n); } A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0 [] 教师批改:A 20、以下程序的输出结果是 main() { int num= 0; while(num<=2) { num++; printf(“%d\\n”,num); } A) 1 2 3 4 B) 1 2 3 C) 1 2 D) 1 [] 教师批改:B 21、以下程序的输出结果是 main() { int a, b; for(a=1, b=1; a<=100; a++) { if(b>=10) break; if (b%3= =1) { b+=3; continue; } } printf(“%d\\n”,a); } A) 101 B) 6 C) 5 D) 4 [] 教师批改:D 22、以下程序执行后sum的值是min() { int i , sum; for(i=1;i<6;i++) sum+=i; printf(“%d\\n”,sum); } A)15 B)14 C) 不确定 D)0 [] 教师批改:C 23、有以下程序段 int x=3 do { printf(“%d”,x-=2); } while (!(--x)); 其输出结果是 A)中 1 B) 3 0 C) 1 -2 D) 死循环 [] 教师批改:C 24、有如下程序 main0 { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf(“%d\\n”,sum); } 该程序的执行结果是 A) 6 B) 3 C) 死循环 D) 0 [] 教师批改:C 25、有如下程序 main0 { int x=23; do { printf(“%d”,x--);} while(!x); } 该程序的执行结果是 A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 [] 教师批改:B 126、有如下程序 main0 { int n=9; while(n>6) {n--;printf(“%d”,n);} } 该程序段的输出结果是 A) 987 B) 876 C) 8765 D) 9876 [] 教师批改:B 27、以下叙述正确的是 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。 [] 教师批改:D 28、以下程序段的执行结果是 int a, y; a=10; y=0; do { a+=2; y+=a; printf(\ if(y>20) break; { while(a=14); A) a=12 y=12 a=14 y=16 a=16 y=20 a=18 y=24 B) a=12 y=12 a=16 y=28 C) a=12 y=12 D) a=12 y=12 a=14 y=26 a=14 y=44 [] 教师批改:B 29、以下程序的输出结果是 main( ) { int i; for(i=1;i<6;i++) { if(i%2){printf(\;continue;} printf(\; } printf(\; } A) #*#*# B) ##### C) ***** D) *#*#* [] 教师批改:A 30、执行以下程序后,输出的结果是 main () { int y=10; do { y - -;} while(- - y); printf(\ } A) -1 B) 1 C) 8 D) 0 [] 教师批改:D 31、在下列选项中,没有构成死循环的程序段是 A) int i=100 while(1) { i=i0+1; if(i>100)break; } B) for( ; ;); C) int k=1000; do{++k;} while(k>=10000); D) int s=36; while(s);--s; [] 教师批改:C 32、执行语句: for(i=l:i++<4:);后,变量i的值是A) 3 B) 4 C) 5 D) 不定 [] 教师批改:C 33、以下程序的输出结果是 main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2)continue; x++; } x++; } printf(\ } A) x=4 B) x=8 C) x=6 D) x=12 [] 教师批改:B 34、运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为: main() { int m, n; printf(\ while (m!=n) { while (m>n)m-=n; while (n>m)n-=m; } printf(\ } A) m=3 B) m=2 C) m=1 D) m=1 [] 教师批改:C 35、设x和y均为int型变量,则执行下的循环后,y值为 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 [] 教师批改:C