循环数组练习题
一. 选择题
1.for(i=0;i<10;i++);结束后,i的值是;B A 9 B 10 C 11 D 12 2.下面程序的循环次数是:D int k=0; while(k<10) {if(k<1) continue; if(k==5) break; k++; }
A. 5 B 6 C 4 D 死循环,不能确定循环次数 3.下面程序的输出结果是() main() {
int s,k;
for(s=1,k=2;k<5;k++) s+=k;
printf(“%d\\n”,s); }
A 1 B 9 C 10 D 15
4.要使下面程序输出10个整数,则在下画线处填入正确的数是: for(i=0;i<= ;) printf(“%d\\n”,i+=2);
A 9 B 10 C 18 D 20 5.运行下面程序: main()
{ int i=10,j=0; do { j=j+i; i--;
}while(i>5); printf(“%d\\n”,j); }
输出结果是:
A 45 B 40 C 34 D 55 6.运行下面程序 #include “stdio.h” main()
{ int k=0,a=1; while(k<10) {
for( ; ;)
{ if((k)==0) break; else k--; }
k+=11; a+=k; }
printf(“%d %d\\n”,k,a); }
则输出的结果是()
A 21 32 B 21 33 C 11 12 D 10 11 7.以下叙述正确的是:
A. do---while语句构成的循环不能用其他语句构成的循环来代替。
B. do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序: main() { int x=3; do{
printf(“%d”,x--);
}while(!x); }
该程序的执行结果是:
A 3 2 1 B 2 1 0 C 3 D 2
9.若k为整型变量,则下面while循环执行的次数为: k=10;
while(k==0) k=k-1;
A 0 B 1 C 10 D无限次 10.下面有关for循环的正确描述是
A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体。
D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。 11.运行下面程序
#include
{if((k)==0) break; else k--; }
k+=11;a+=k; }
printf(“%d %d\\n”,k,a); return 0;
}则输出的结果是()。
A. 21 32 B. 21 33 C. 11 12 D. 10 11 12.若i为整型变量,则以下循环执行的次数是() for(i=2;i==0;)printf(“%d”,i--);
A.无限次 B 0次 C 1次 D 2次
13.以下循环体的执行次数是; main() { int I,j;
for(i=0,j=3;i<=j;i+=2,j--) printf(“%d\\n”,i); }
A 3 B 2 C 1 D 0 14.执行以下程序后,输出结果是: main() { int y=10;
do { y--;}while(--y); printf(“%d”,y--); }
A -1 B 1 C 8 D 0 15 以下程序的输出结果是: mian() { int a,b;
for(a=1,b=1;a<=100;a++) {
if(b>=10) break;
if(b%3==1) {b+=3; continue;}
}
printf(“%d”,a);
}
A 101 B 3 C 4 D 5
16、以下程序的运行结果是( )。 #include
{int n[5]={0,0,0},i,k=2;
for (i=0;i A. 不确定的值 B. 2 C. 1 D. 0 17、若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是( )。 A. a[2][!1] B. a[2][3] C. a[0][3] D. a[1>2][ !1] 18、以下程序的运行结果是( )。 #include {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++) for(k=i+i;k<4;k++) if(a[i][i] A.6,2,1,1, B. 6,4,3,2, C. 1,1,2,6, D. 2,3,4,6, 19、若有说明:int a[3][4]={0};则下面正确的叙述是( )。 A. 只有元素a[0][0]可得到初值0 B. 此说明语句不正确 C. 数组a中各元素都可得到初值,但其值不一定为0 D. 数组a中每个元素均可得到初值0 20、设有数组定义:char array[]=“china”,则数组array所占的空间为( )。 A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 21、当执行下面的程序时,若输入ABC,则运行结果是( )。 #include {char ss[10]=“1,2,3,4,5”; gets (ss); strcat(ss, “6789”); printf(“%s\\n”,ss); } A.ABC B.ABC6789 C.123456789 D.ABC,3,4,5 22、为了判断两个字符串str1和str2是否相等,应当使用( )。 A.if(str1==str2) B.if(str1=str2) C.if(strcmp(str1,str2)) D.if(strcmp(str1,str2)==0) 23、以下程序的运行结果是( )。 #include strcpy(arr[0],”you”); strcpy(arr[1],”me”); arr[0][3]=?&?; printf(“%s\\n”,arr); } A.you&me B.you C.me D.err 24、以下程序段的运行结果是( )。 printf(“%d\\n”, strlen(“ATS\\n012\\1\\\\”)); A. 11 B. 10C. 9D. 8 25、当执行下面的程序时,若输入ABC,则运行结果是( )。 #include {char ss[10]=“1,2,3,4,5”; gets (ss); strcat(ss, “6789”); printf(“%s\\n”,ss); } A.ABC B.ABC6789 C.123456789 D.ABC,3,4,5 二、填空题 1. 以下程序的运行结果是。 #include printf(“a=%d,b=%d\\n”,a,b); return 0; } 2. 下面程序的运行结果为: main() {int a=10,y=0; do {a+=2;y+=a; if(y>50) break; }while(a<14); printf(“a=%d,y=%d\\n”,a,y); } 3.从键盘输入1 2 3 4 5 -1 回车,则下面程序运行的结果是: main() { int n,k=0; do { scanf(“%d”,&n); k+=n; }while(n!=-1); printf(“k=%d,n=%d”,k,n); } 4.下面程序的运行结果为: main() {int i,j,s=0; for(i=1,j=5;i 5.下面程序的运行结果是 main() { int i=10,s=0; for(;--i;) if(i%3==0) s+=i; s++; printf(“\\ns=%d”,s); } 6.下面程序的运行结果是 main() {int a=2,n=5,s; s=a; for(;--n;) s=s*10+a; printf(“%d”,s); } 7.下面的程序运行时,循环体语句“a++”运行的次数为: main() {int i,j,a=0; for(i=0;i<2;i++) for(j=4,j>=0;j--) a++; } 8.下面的程序运行后,a的值为: main() { int i,j,a=0; for(i=0;i<2;i++) a++; for(j=4,j>=0;j--) a++; } 9.下面程序的运行结果为: int i=1,s=3; do{ s+=i++; if(s%7==0) continue; else ++i; }while(s<15); printf(“%d”,i); 10.当运行以下程序时,从键盘输入China# 回车,则下面程序的运行结果是: #include “stdio.h” main() { int v1=0,v2=0; char c; while((c=getchar())!=?#?) { switch(c) { case ?a?: case ?h?: default:v1++; case ?o?:v2++; } } printf(“%d,%d\\n”,v1,v2); } 11、以下程序若输入AabD↙,运行结果是:。#include {if (s[i]<=?z? && s[i]>=?a?) s[i]=?z?+?a?-s[i] ; i++; } puts(s); return 0; } 12、以下程序若输入7 4 8 9 1 5↙,运行结果是:。 #include for (m=0 ; m<6 ; m++) printf(“%d “,a[m]); printf(“\\n”); return 0; } 13、以下程序的运行结果是。 #include { int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}}; int i=0,j=0,s=0; while(i++<4) {if(i==2||i==4) continue; j=0; do { s+= a[i][j]; j++; } while(j<4); } printf(“%d\\n”,s); return 0; } 14、以下程序的运行结果是。 #include {int b [3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=1;j++) t+=b[i][b[j][i]]; printf(“%d\\n”,t); return 0; } 15、下面程序运行后的运行结果是。 #include {char s[]=“12134211”; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case '1': v1++; case '3': v3++; case '2': v2++; } printf(“v1=%d,v2=%d,v3=%d,v4=%d\\n”,v1,v2,v3,v4); return 0; } 三、编程题 1. 求1-2+3-4+…+99-100。 2.计算1---100以内的所有含2的数的和。 3.输入10个数,按照由小到大的顺序输出。