C.在与switch语句配套的case语句中所使用的表达式可以是变量或常量 D.switch语句中,可以没有default语句。 答案:ABD 6、 在计数循环for(表达式1;表达式2;表达式3)中,可以省略的表达式是:( )
A.表达式1 B.表达式2 C.表达式3
D.三个表达式都可以 E.一个都不能少 答案:ABCD 7、 下列语句段是死循环的是( )
A.n=100; B.s=33;
while(n) n=n0+1; while(s++%2+s%2) s++; C.for(;;); D.for(i=1;;)
if(--i)break; E.x=0;
do{ x++; }while(x>=0);
答案:ABCE
第7章 数组
一、选择题
1、若有以下说明语句:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g;
则数值为4的表达式是:( )。
A、a[g-c] B、a[4] C、a[‘d’-‘c’] D、a[‘d’-c] 答案:D
2、假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4};
则数组x在内存中所占字节数为:( )
A、3 B、6 C、10 D、20 答案:D
3、下列合法的数组定义是:( )
A、int a[]=”string”; B、int a[5]={0,1,2,3,4,5}; C、char a=”string”; D、char a[]={0,1,2,3,4,5}; 答案:D
4、若给出以下定义:
char x[]=”abcdefg”;
char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
则正确的叙述为:( )
A、数组x和数组y等价 B、数组x和数组y的长度相同 C、数组x的长度大于数组y的长度 D、数组y的长度大于数组x的长度 答案:C
5、下面程序段的输出结果是:( ) int j;
int x[3][3]={1,2,3,4,5,6,7,8,9}; for (j=0;j<3;j++)
printf(“%d”,x[j][2-j]);
A、1 5 9 B、1 4 7 C、3 5 7 D、3 6 9
答案:C
6、下列程序运行后的输出结果是:( ) main()
{ int n[3],t,j,k;
for(t=0;t<3;t++) n[t]=0; k=2;
for(t=0;t A、 2 B、 1 C、 0 D、3 答案:D 7、有以下程序 main() { int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf(\} 执行后输出结果是:( ) A、58 B、56 C、45 D、24 答案:D 8、以下能正确定义数组并正确赋初值的语句是:( ) A、int N=5,b[N][N]; B、int a[1][2]={{1},{3}}; C、int c[2][]= {{1,2},{3,4}}; D、int d[3][2]={{1,2},{3,4}}; 答案:D 9、有以下程序 main() { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0; i<3; i++) { printf(\} 执行后输出结果是:( ) A、4 5 6 B、2 5 8 C、3 6 9 D、7 8 9 答案:C 10、以下能正确定义一维数组的选项是:( ) A、int num[]; B、int num[0..100]; C) #define N 100 D) int N=100; int num[N]; int num[N]; 答案:C 11、下列选项中正确的语句组是:( ) A、char s[8]; s={\、char *s; s={\C、char s[8]; s=\、char *s; s=\ 答案:D 12、有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是:( ) A、5 B、6 C、8 D、9 答案:D 13、有以下程序 main( ) { char a[]=\ printf(\ } 执行后输出结果是:( ) A、7 7 B、8 8 C、8 10 D、10 10 答案:C 14、有以下程序的输出结果是:( ) void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t;} main( ) { int a[2]={3,5},b[2]={3,5}; swap(a); swap2(b[0],b[1]); printf(\ } A、5 3 5 3 B、 5 3 3 5 C、3 5 3 5 D 答案:B 15、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(\} 执行后的输出结果是:( ) A、12 B、11 C、18 D、16 答案:D 、3 5 5 3 16、有以下程序 void sort(int a[],int n) { in t i,j,t; for(i=0;i for(j=i+2;j if(a[i] { t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(\ printf(\} 其输出结果是:( ) A、1,2,3,4,5,6,7,8,9,10, B、10,9,8,7,6,5,4,3,2,1, C、9,2,7,4,5,6,3,8,1,10, D、1,10,3,8,5,6,7,4,9,2, 答案:C 17、有以下程序 void f(int a[],int i,int j) { int t; if(i { t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main( ) { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf(\printf(\} 执行后输出结果是:( ) A、5,4,3,2,1, B、5,2,3,4,1, C、1,2,3,4,5, D、1,2,3,4,5, 答案:A 18、 以下程序的输出结果是:( ) main() { char cf[3][5]={\printf(\} A、\、 \、 \、 \ 答案:B 19、 以下程序的输出结果是:( ) main() { 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<=i;j++) t=t+b[i][b[j][j]]; printf(\ } A、 3 B、 4 C、 1 D、 9 答案:B 20、有以下程序 main() { int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=aa[i][1]; printf(\ } 程序运行后的输出结果是:( ) A、 11 B、 19 C、 13 D、、20 答案:B 21、若有以下定义语句: char s[10],s=”abcd”;printf(“%s\\n”,s); 则运行结果是:( ) A、输出abcd B、输出a C、输出ab cd D、编译不通过 答案:D 22、不能把字符串“Hello!”赋给数组b的语句是:( ) A、char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’}; B、char b[10];b=”Hello!”; C、char b[10]; strcpy(b,”Hello!”); D、char b[10]=”Hello!”; 答案:B 23、若有以下程序段: char str[]=”ab\\n\\012\\\\\\””; printf(“%d”,strlen(str)); 该程序段的输出结果是:( ) A、 3 B、 4 C、 6 D、12 答案:C 24、函数调用strcat(strcpy(str1,str2),str3)的功能是_:( ) A、将串str1复制到串str2中后在连接到串str3之后 B、将串str1连接到串str2之后再复制到串str3之后 C、将串str2复制到串str1中后再将串str3连接到串str1之后 D、将串str2连接到串str1中后再将串str1复制到串str3中 答案:C 25、下列程序的输出结果是:( ) main() { char ch[7]={“65ab21”}; int j,s=0; for(j=0;ch[j])>=’0’&&ch[j]<=’9’;j+=2) s=10*s+ch[j]-‘0’; printf(“%d\\n”,s); } A、12ba56 B、66521 C、6 D、62