(21)以下选项中,当x为大于l的奇数时,值为0的表达式是
A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0
(22)有以下程序
main()
{int k=5,n=0;
do
{switch(k)
{case 1: case 3:n+=1;k--;break;
default:n=0;k--;
case 2: case 4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0 && n<5);
}
程序运行后的输出结果是
A)235 B)0235 C)02356 D)2356
(23)有如下程序
main()
{ int n=9;
while(n>6){n--; printf("%d",n);} }
该程序的输出结果是
A)987 B)876 C)8765 D)9876
(24)有以下程序
#include<stdio.h>
main()
{ int c;
while((c=getchar())!=′\n)
{ switch(c-′2′)
{ case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
case 4:putchar(c+3);break; } }
printf("\n")}
从第一列开始输入以下数据<CR>代表一个回车符。
2743<CR>
程序的输出结果是
A)66877 B)668966 C)6677877 D)6688766
(25)有以下程序
main()
{ int x=0,y=0,i;
for (i=1;;++i)
{ if (i%2==0) {x++;continue;}
if (i%5==0) {y++;break;} }
printf (" %d,%d",x,y); }
程序的输出结果是
A)2,1 B)2,2 C)2,5 D)5,2
(26)有以下程序
main()
{int a[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序运行后的输出结果是
A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1,
(21)D 【解析】因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。
(22)A 【解析】因为变量的初始值分别为"k=5,n=0",所以程序第一次进入循环时,执行default语句,这时k=4,执行"case 4:"这个分支,结果是"n=2,k=3",打印出2;程序然后进行第二次循环,这时"n=2,k=3",执行"case 3:"这个分支,结果是"n=3,k=2",打印出3;程序进行第三次循环,这时"n=3,k=2",执行"case 2: case 4:"这两个分支,结果是"n=5,k=1",打印出5,这时因为n=5不满足n<5的循环条件,因此退出循环,程序运行结束,故输出结果为235。
(23)B 【解析】该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环时,输出为6,由此可以排除选项C)。
(24)A 【解析】本题主要考查了字符输入输出函数getchar和putchar的使用。getchar函数用来从标准输入设备上读入一个字符,putchar(c)函数是将字符变量c中的字符输出到标准输出设备上,并且字符可以看作整数参与运算。
(25)A 【解析】本题考查了continue和break语句在循环语句中的作用。break语句的作用是结束本层循环,而continue语句的作用是结束本次循环直接进入到下次循环。
(26)A 【解析】本题利用多重 for循环的嵌套来实现对二维数组元素的按列排序。利用最外层循环来实现对列的控制。内部循环利用选择法对数组元素按照从小到大的顺序进行排列,最后输出对角线上的元素值。