第6章 数组同步练习
一、 选择题:
一维数组:
1. 假定int类型的变量占用2个字节,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数是 。
A)3 B)6 C)10 D)20
2. 以下程序的输出结果是 。
main()
{ int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A)258 B)741 C)852 D)369
3. 以下程序的输出结果是 19 。
main()
{
int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
for(i=0;i<3;i++) k+=p[i]+2;
printf("%d\n",k);
}
A)20 B)21 C)22 D)23
4.以下程序运行时输入为aaaa bbbb<CR>cccc dddd<CR>,则程序的输出结果是 。
include<stdio.h>
main()
{ char s1[10],s2[10],s3[10],s4[10];
scanf("%s%s",s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
A)aaaa B)aaaa C)aaaa D)aaaa bbbb
bbbb bbbb bbbb cccc
cccc dddd dddd
cccc dddd dddd dddd cccc
注5. 以下程序运行后的输出结果是 。
void fun(int a[],int i)
{ a[i]+=i;
}
void main()
{ int a[]={0,0,0,0},i;
for(i=0;i<sizeof(a)/sizeof(int);i++)
fun(a,i);
printf("%d%d%d%d%d%d",a[0],a[1],a[2],a[3],i);
}
A)00000 B)01203 C)01234 D)编译报错
6. 下列语句正确的是 。
A)int a[]={1,2,3,4}; B)int a[4]={1,2,3,4,5};
C)int b=4;a[9]={1,2,3,4}; D)int a[4],b;a=&b;
7. 以下程序运行后数组a的值是 。
void main()
{ int a[]={9,3,0,4,8,1,7,2,5,6},i=0,j=9,t;
while(i<j)
{
if(a[i]>a[j])
{ t=a[i];a[i]=a[j];a[j]=t;}
i++;j--;
}
}
A)9,3,0,4,8,1,7,2,5,6 B)0,1,2,3,4,5,6,7,8,9
C)6,3,0,4,1,8,7,2,5,9 D)9,8,7,6,5,4,3,2,1,0
注8.以下程序运行后的输出结果是 。
main()
{ int a[]={19,43,0,54,98,13,57,24,59,26},t1=5000,t2=50;
for(i=0;i<5;i++)
{ if(a[i*2]>=a[i*2+1])string字符串转化数组
{ t1=t1<a[i*2+1]?t1:a[i*2+1];
t2=t2>a[i*2]?t2:a[i*2];
}
else
{ t2=t2>a[i*2+1]?t2:a[i*2+1];
t1=t1<a[i*2]?t1:a[i*2];
}
}
printf("%d %d",t1,t2);
}
A)0 50 B)0 98 C)5000 98 D)5000 50
9. 以下程序运行后的输出结果是 。
int fun(int a,int b)
{ return(a>b?a:b);
}
main()
{ int a[]={1,3,5,4};
printf("%d",fun(fun(a[0],a[3]),fun(a[1],a[2])));
}
A)1 B)3 C)4 D)5
10. 以下能正确定义一维数组的语句是 。
A)int a[4]=01234; B)char a[]="01234"; C)int a[]=01234; D)char a[4]="01234";
11.以下程序运行后的输出结果是 。
void fun(int a)
{ a++;
printf("%d",a);
}
main()
{ int a[3]={1,3,5},i;
for(i=0;i<3;i++)
{ fun(a[i]);
printf("%d",a[i]);
}
}
A)214365 B)224466 C)113355 D)编译报错
二维数组
12.以下数组定义中错误的是 。
A)int x[2][3]={1,2,3,4,5,6}; B)int x[][3]={1,2,3,4,5,6};
C)int x[][3]={1,2,3,4,5,6,7}; D)int x[4][]={1,2,3,4,5,6};
13. 以下程序运行后的输出结果是 。
main()
{ int i,a[3][3]={{9,8,7},{6,5,4},{3,2,1}};
for(i=0;i<3;i++)
printf("%d ",a[i][i]);
}
A)9 8 7 B)1 5 9 C)9 5 1 D)7 5 3
14. 以下程序运行后的输出结果是 。
main()
{ int x[][3]={1,2,3,4,5,6,7};
float t;
t=sizeof(x)/sizeof(int)/3;
printf("%.2f",t);
}
A)3.00 B)2.00 C)2.33 D)2.67
15.以下数组定义中错误的是 。
A)int x[2][3]={{1,2},{3}}; B)int x[][3]={{1},{2,3,4},{5,6,7}};
C)int x[][3]={{1,2},{3},{4,5,6,7}}; D)int x[3][3]={1};
16. 有定义:
int a[]={1,2,3,4,5,6,7},b[][3]={{1,2,3},{4,5,6},{7}};
则以下叙述正确的是 。
A)数组a与数组b占用的内存空间大小一致
B)数组a与数组b中前7个int元素的值相等
C)数组a与数组b的首地址,占用内存中同一块空间
D)数组a与数组b完全等价
17. 有如下定义语句:
int a[][3]={{1,2},{1,2,3,4},{1},{2,3,4}};
则下面叙述正确的是 。
A)数组a中共有10个元素
B)数组a为4行3列的二维数组
C)数组a初始化后的实际值为{{1,2,1},{2,3,4},{1,0,0},{2,3,4}}
D)编译报错
字符数组和字符串:
18.以下程序运行后的输出结果是 。
void main()
{ char s[]="abc";
printf("%d %d",sizeof(s),strlen(s));
}
A)4 4 B)3 3 C)4 3 D)3 4
19.以下程序运行后的输出结果是 。
void main()
{ char a[12]={"1234\0abc"},b[10]={"ABC"};
strcat(a,b);
printf("%s",a);
}
A)1234ABCc B)1234ABCabc C)1234ABC D)1234
20.下面各语句中,能正确执行字符串赋值操作的语句是 。
A)char str[4][5]={"ABCDE"}; B)char s[5]={'A','B','C','D','E'};
C)char *s,s="ABCDE"; D)char *s,scanf("%s",s);
21.设有定义:
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
则以下叙述正确的是 。
A)数组x和y等价 B)数组x和数组y的长度相同
C)数组x的长度大于数组y的长度 D)数组x的长度小于数组y的长度
22.不能把字符串赋给数组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";
23.设有定义:char str[]="Beijing";,则执行
printf("%d\n",strlen(ctrcpy(str,"China")));
后的输出结果是 。
A)5 B)7 C)12 D)14
24.以下程序的执行结果是 。
#include<stdio.h>
void main()
{ char s[]="monrning",t;
int i,j=0;
for(i=1;i<7;i++)
if(s[j]<s[i])j=i;
t=s[j];
s[j]=s[7];
s[7]=s[3];
puts(s);
}
A)morningr B)mo C)morning D)mornin
25. 下列语句中正确的是 。
A)char a[3][]={'abc','1'}; B)char a[][3]={'abc','1'};
C)char a[3][]={'a',"l"}; D)char a[][3]={"a","1"};
26. 程序段
char str[3][20]={"word","excel","access"};
printf("%s\n",str[2]);
的输出结果是 。
A)word B)excel C)access D)出错
27. 设有定义:char fmt[]="s=%d\n";,则数组fmt有 个元素。
A)4 B)5 C)6 D)7
28.以下程序的输出结果是( )
main()
{ char st[20]= "hello\0\t\\\";
main()
{ char st[20]= "hello\0\t\\\";
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论