while((i--)>=5) {sum=sum+2;
} A) 4 B) 6 C) 8 D) 10
16. 若已定义int k;下列( )语句与其他三条语句不等价。
A) if(k==0) printf(“Yes!\\n”); else printf(“No!\\n”);
B) if(k==0) printf(“No!\\n”); else printf(“Yes!\\n”);
C) if(k!=0) printf(“Yes!\\n”); else printf(“No!\\n”);
D) if(k) printf(“Yes!\\n”); else printf(“No!\\n”);
17. 若已定义:int i=5,m=1;则( )语句不会产生无限循环。
A) while(i=1) m+=3;
B) for( ; i>0; i--) m+=3; C) do{m+=3;}while(i==5); D) for( ;i<10; )m+=3; 18. 下列程序段运行时,语句k+=2;执行的次数是( )。 int i,k=0;
for(i=7;i>3;i- -,i- -) k+=2;
A) 1 B) 2 C) 3 D) 4
19. 叙述正确的是( )。
A) while循环体至少无条件执行一次,而do...while循环体可能都不执行 B) for循环中,不能用break语句跳出循环体
C) for循环中循环体可包含多条语句,但必须用{}括起来 D) while循环中,不能用break语句跳出循环体 20. 若已定义:int m=3,n=2,k;则下面正确的switch语句是( )。
A) switch(m+n)
case 3: k=m+n; break; case 2: k=m-n; break; default: k=m*n; B) switch(m+n)
{case is 3: k=m+n; break;
16
case is 5:k=m-n;break; default: k=m*n; }
C) switch(m)
{case m<0: k=m+n;break; case m==0: k=m-n;break; default: k=m*n; }
D) switch(m+n)
{ case 3: k=m+n;break; case 2: k=m-n;break; default: k=m*n; }
21. 设有程序段
int h=8;
while(h=0) h=h-2; 叙述正确的是(A) 循环语句执行1次 B) 循环语句执行3次
C) 循环体语句一次也不执行 D) 循环体语句执行4次 22. 以下程序段的运行结果是( )。 int a=-6,b; if(a>0) b=9; else if (a==0) b=0; else if(a<-5) b=-8; else b=-1;
printf(\
A) -1 B) -8 C) 9 D) 0 23. 以下程序段运行后x的值为( )。 int i,x=1; for(i=3;i>0;i--)
x=(x+1)*3; A) 54 B) 27 C) 66 D) 9 24. 以下程序段运行后m的值为( )。 int i,m=3;
for(i=1;i<=3;i++)
。17
)
{
m+=1;
if(m%2!=0)
break; m+=2; }
A) 6 B) 7 C) 9 D)
8
25. 以下程序的运行结果是( )。 void main()
{ int s[5]={1},i;
for(i=1;i<5;i++)
s[i]=s[i-1]+i; for(i=0;i<5;i++)
printf(\
}
A) 1 2 4 6 8 B) 1 2 3 4 5 C) 1 2 4 7 11 D) 1 2 6 10 15 26. 以下程序的运行结果是( )。 void main() {int k=5; switch(k)
{ default: printf(\
case 1: printf(\ break; case 2: printf(\
case 3: printf(\} }
A) 5 B) 15 C) 10 D) 55 27. 以下程序段运行后m的值为( )。int i,m=1;
for(i=1;i<=4;i++) { m+=1;
if(m%2==0)
continue; m+=2; }
18
A) B) C) D) 6 5 12 9
5. 第六章 数组(数组概念、二维数组、字符数组)
1. 下列程序段的运行结果是( )。 int a[]={1,3,4,6,9},i,x=1; for(i=0;i<3;i++) x+=a[i+i]; printf(“%d\\n”,x);
A) 15 B) 10 C) 9 D) 14 2. 下列程序段的运行结果是( )。 int a[]={8,7,6,5,4,3,2,1},i,sum=0; for(i=0;i<8;i++) if(i<=3) sum+=a[i]; else sum - = a[i]; printf(“%d\\n”,sum);
A) 15 B) 16 C) 10 D) 0 3. 对二维数组arr初始化正确的是( )。A) int arr[2][3]={{1,2},{3,4},{0}}; B) int arr[2][3]={{1,2},{3,4}}; C) int arr[2][]={1,2,3,4,5}; D) int arr[][]={{1},{3,4,5}}; 4. 下列程序的运行结果是( )。 void main() {
int a[5]={2,3,5,11,4},b[5]={12,1,6,9,8}; int *pa=a,*pb=b; int i; for(i=0;i<5;i++) if(*(pa+i)<*(pb+i)) printf(“%d ”,*(pa+i)); }
A) 11 B) 5
C)2 D) 2 5 4
19
5. 下列程序段的运行结果是( )。 int a[]={0,1,2,3,4,5,6,7,8,9},i=0,t; while(i<=7) {t=a[i]; a[i]=a[i+2]; a[i+2]=t; i+=2; }
for(i=0;i<10;i++) printf(“%d”,a[i]);
A) 1357924680 B) 2468013579 C) 2143658709 D) 0123456789 6. 下列程序段的运行结果是( )。 int a[3][3]={1,2,3,4,5,6,7,8,9},i; for(i=0;i<3;i++) printf(“-”,10-a[2-i][i]);
A) 9 5 1 B) 3 5 7 C) 7 5 3 D) 8 4 1
7. 若已定义char stra[50],strb[50];能正确从键盘读入字符串的是(A) scanf(“%s%s”,stra,strb); B) getch(str,strb);
C) scanf(“%s%s”,stra[50],strb[50]); D) gets(strb,stra); 8. 下列程序定义的二维数组a的() #define M 3 #define N 4 void main() { int a[M][N]; ?? }
A) 第一维和第二维都为3 B) 第一维为3,第二维为4 C) 第一维和第二维都为4 D) 第一维为4,第二维为3
9. 下列叙述正确的是()。
A) 数组中每一个原属都属于同一个数据类型;
B) C语言中,数组长度在程序运行中可作动态调整; C) 可利用数组名引用数组的第一元素;
20
)