数组练习题及答案Word文件下载.docx
- 文档编号:20258180
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:31
- 大小:27.43KB
数组练习题及答案Word文件下载.docx
《数组练习题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数组练习题及答案Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
精品文档
while(x[i]!
&
y[i]!
)
if(x[i]==y[i])printf(%c,《1》);
elsei++;
A、x[i++]B、y[++i]C、x[i]D、y[i]
6、有下面的程序段,则()
chara[3],b[]=china;
a=b;
printf(%s,a);
A、运行后将输出ChinaB、运行后将输出Ch
C、运行后将输出ChiD、编译出错
7、下面程序的运行结果是()
{charch[7]={
ab56};
inti,s=0;
for(i=0;
ch[i]>
0'
ch[i]<
9'
;
i+=2)
s=10*s+ch[i]-'
printf(%d\n,s);
A、1B、1256C、12ab56D、1
2
5
6
8、定义如下变量和数组:
则下面语句的输出结果是()
intk;
inta[3][3]={1,2,3,4,5,6,7,8,9,};
for(k=0;
k<
3;
printf(%d,a[k][2-k]);
A、357B、369C、159D、147
9、下面程序段的运行结果是()
charc[5]={'
a'
'
b'
c'
printf(%s,c);
A、'
'
B、abC、abcD、abc
10、若有说明:
inta[][3]={1,2,3,4,5,6,7};
则a数组第一维的大小是()
A、2B、3C、4D、无确定值
11、下面程序的运行结果是()
{inta[6],i;
for(i=1;
i<
6;
i++)
{a[i]=9*(i-2+4*(i>
3))%5;
printf(-,a[i]);
A、-40404B、-40403C、-40443D、-40440
12、下面程序的运行结果是()
main()
{inta[6][6],i,j;
for(j=1;
j<
j++)
a[i][j]=(i/j)*(j/i);
{for(j=1;
printf(-,a[i][j]);
printf(\
A、11111B、00001C、10000D、10001
11111000100100001010
11111001000010000100
11111010000001001010
11111100000000110001
13、下述对C语言字符数组的描述中错误的是()
A、字符数组可以存放字符串。
B、字符数组的字符串可以整体输入、输出。
C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值。
D、不可以用关系运算符对字符数组中的字符串进行比较。
14、判断字符串s1是否大于字符串s2,应当使用()
A、if(s1>
s2)B、if(strcmp(s1,s2))C、if(strcmp(s2,s1)>
0)D、if(strcmp(s1,s2)>
0)
15、下面程序(每行程序前面的数字表示行号):
()
1main()
2{
3inta[3]={3*0};
4inti;
5for(i=0;
i++)scanf(%d,&
a[i]);
6for(i=1;
i++)a[0]=a[0]+a[i];
7printf(%d\n,a[0]);
8}
A、第3行有错误B、第7行有错误C、第5行有错误D、没有错误
16、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。
{chars[80],c1,c2='
'
inti=0,num=0;
gets(s);
while(s[i]!
{c1=s[i];
if(i==0)c2='
elsec2=s[i-1];
if(《1》)num++;
i++;
printf(%d,num);
A、c1=='
c2=='
B、c1!
C、c1=='
c2!
D、c1!
17、有字符数组a[80]和b[80],则正确的输出语句是()
A、puts(a,b);
B、printf(%s,%s,a[],b[]);
C、putchar(a,b);
D、puts(a),puts(b);
18、下面描述正确的是()
A、两个字符串所包含的字符个数相同时,才能比较字符串。
B、字符个数多的字符串比字符个数少的字符串大.
C、字符串“STOP”与“STOP”相等。
D、字符串“That”小于字符串“The”
19、有两个字符数组a、b,则以下正确的输入语句是()
A、gets(a,b);
B、scanf(%s%s,a,b);
C、scanf(%s%s,&
a,&
b);
D、gets(a),gets();
精品文档)20、以下不正确的定义语句是(inty[5]=}{0,1,2,3,4,5,6}B、A、doublex[5]={2.0,4.0,6.0,8.0,1.0};
charc2[]={'
\x10'
\xa'
\x8'
D、C、charc1[]={'
1'
2'
3'
4'
5'
)21、调用函数时,若实参是一个数组名,则向函数对应的形参传送的是(
、数组的首地址B、数组的长度AD、整个数组元素的值C、数组第一个元素的值
22、下面程序段的运行结果是()\”%s\”\n”,s);
printf(“chars[6];
s=”abcd”;
D、编译出错\”\n
B、”abcd“C、\”abcdA、“abcd”)a进行正确初始化的语句是((多项选择)以下不能对二维数组23、5,6}};
、A、B2,3}};
1}};
、D、};
C24、(多项选择)若有说明:
inta[3][4];
则对a数组元素不能正确引用是()
a
(2)
(1)
D、C、a[1+1][0]BA.a[2][4]、a[1,3]
)(多项选择)若有说明“staticinta[3][4]={0};
”则下面正确的叙述是(25、、此说明语句不正确BA、只有元素:
a[0][0]可得到初值0
C、数组a中各元素都可得到初值,但其值不一定为0
0中每个元素均可得到初值D、数组a以下对一维整型数组的正确说明是()26、a[n];
intn=10、,B;
A、inta
(1)
D;
、#defineSIZE10inta[SIZE];
;
%、Cintn;
scanf(“d”,&
n)inta[n]、有以下程序,其输出结果是()27voidswap1(intc[])
{intt;
t=c[0];
c[0]=c[1];
c[1]=t;
voidswap2(intc0,intc1)
intt;
{
t=c0;
c0=c1;
c1=t;
main()
{inta[2]={3,5},b[2]={3,5};
swap2(b[0],b[1]);
swap1(a);
%dprintf(“%d%dn”,a[0],a[1],b[0],b[1]);
%d\精品文档.
精品文档}
3553
D、C、35355353A、B、5335
)28、以下程序执行后的输出结果是(intf(intb[][4])
{inti,j,s=0;
for(j=0;
4;
{i=j;
i=3-j;
if(i>
2)
s+=b[i][j];
returns;
2,1,0}};
printf(“%d\n”,f(a));
}}
A、12B、11C、18D、16
29、执行下列程序后输出的结果是()
inta[3][3]={{1},{2},{3}};
intb[3][3]={1,2,3};
main()
{printf(″﹪d\n″,a[1][0]+b[0][0]);
A、0
B、1C、2
D、3
30、以下程序运行后,输出结果是()
{inty=18,i=O,j,a[8];
do{a[i]=y%2;
i++;
y=y/2;
while(y>
=1);
for(j=i-1;
j>
=0;
j--)
printf(“%d”,a[j]);
printf(“\n”);
A、1000B、10010C、00110
D、10100
二、填空题
1、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。
请填空。
(填空时数组元素请用数组表示方法)
{inta[10]={1,2,3,4,5,6,7,8,9,10};
intk,s,i;
floatave;
for(k=s=i=0;
10;
{if(a[i]%2!
=0)《1》;
s+=《2》;
k++;
if(k!
=0){ave=s/k;
printf(%d,%f,k,ave);
2、下面程序的运行结果是()
{intnum_list[]={6,7,8,9};
intk,j,b,u=0,m=4,w;
w=m-1;
while(u<
=w)
{j=num_list[u];
k=2;
b=1;
while(k<
=j/2&
b)b=j%++k;
if(b)printf(%d,num_list[u++]);
else{num_list[u]=num_list[w];
num_list[w--]=j;
3、下面程序的功能是将字符数组a[6]={'
d'
e'
f'
}变为a[6]={'
}。
(注:
填空时数组元素请用数组表示方法)
{chart,a[6]={'
inti;
《1》;
for(《2》;
i>
0;
i--)a[i]=a[i-1];
a[0]=t;
for(i=0;
=5;
i++)printf(%c,a[i]);
{inti;
chara[]=Time,b[]=Tom;
a[i]!
b[i]!
if(a[i]==b[i])
if(a[i]>
a[i]<
z'
)printf(%c,a[i]-32);
elseprintf(%c,a[i]+32);
elseprintf(*);
5、下面程序的运行结果是()
{inti=1;
n=3,j,k=3;
inta[5]={1,4,5};
while(i<
=n&
k>
a[i])i++;
for(j=n-1;
=i;
j--)a[j+1]=a[j];
a[i]=k;
=n;
i++)printf(-,,a[i]);
6、当从键盘输入18并回车后,下面程序的运行结果是()
{intx,y,i,a[8],j,u,v;
scanf(%d,&
x);
y=x;
i=0;
do
{u=y/2;
a[i]=y%2;
y=u;
}while(y>
=1);
=0;
j--)printf(%d,a[j]);
{if(a[i]%2==0)continue;
s+=a[i];
=0){ave=s/k;
printf(Thenumberis:
%d,Theaverageis:
%f\n,k,ave);
8、若有以下输入(<
CR>
表示回车),则下面程序的运行结果是()
31232221130<
{inta[4],x,i;
=3;
a[i]=0;
while(x>
{a[x]+=1;
scanf(%d,&
for(i=1;
i++)printf(a[%d]=%d,,i,a[i]);
9、当运行以下程序时,从键盘输入:
BOOK<
CUT<
GAME<
PAGE<
(<
#includestring.h
charstr[10],temp[10]=Control;
{gets(str);
if(strcmp(temp,str)<
0)strcpy(temp,str);
puts(temp);
10、当运行以下程序时,从键盘输入
girl<
boy<
{chara[2][80],t;
inti,j,m,n,le,max;
=1;
i++)gets(a[i]);
t=a[0][0];
{le=strlen(a[i]);
for(j=0;
=le;
if(a[i][j]>
t){max=a[i][j];
m=i;
n=j;
printf(%c%d%d\n,max,m,n);
11、下面程序的功能是在三个字符串中找出最小的。
请填空(注:
填空时请用数组元素表示方法)。
#includestring.h
{chars[20],str[3][20];
i++)gets(str[i]);
strcpy(s,(《1》)str[0]:
str[1]);
if(strcmp(str[2],s)<
0)strcpy(s,str[2]);
printf(%s\n,《2》);
12、下面程序段的运行结果是()
charch[]=00;
inta,s=0;
for(a=0;
ch[a]>
ch[a]<
a++)s=10*s+ch[a]-'
printf(%d,s);
13、下面程序的运行结果是()
{inta[3][3],i,j;
j++)a[i][j]=(i/j)*(j/i);
精品文档for(i=1;
for(j=1;
j++)printf(%d,,a[i][j]));
请填空。
14、下面程序段将输出computer,charc[]=It'
sacomputer;
i++)《1》for(i=0;
=
]);
》《2printf(%c,c[i
)15、下面程序的运行结果是(main()
{inta[9]={0,6,12,18,42,44,52,67,94};
intx=52,i,n=9,m;
i=n/2+1;
m=n/2;
while(m!
=0)
{if(x<
a[i]){i=i-m/2-1;
m=m/2;
elseif(x>
a[i]){i=i+m/2+1;
elsebreak;
printf(%d,i);
三、判断题)至a[5]。
(1、有以下说明语句:
inta[10]={6,7,8,9,10};
则将5个初值依次赋给a[1])0。
(2、若有说明:
inta[][4]={0,0};
则只有元素a[0][0]和a[0][1]可得到初值)进行正确初始化的语句。
(3、inta[]={0};
是对一维数组a)(chars[10];
s=China;
4、有以下语句是正确的。
)(inta[3][4]={0};
则数组a中每个元素均可得到初值0。
5、若有说明:
)floata[3,4];
是对二维数组a的正确定义。
(6、语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式。
C7、在)(
)intn;
n);
inta[n];
(a8、以下是对一维整型数组的正确定义:
)(inta[10];
则a[10]是对a数组元素的正确引用。
9、若有定义:
)a中各元素不能得到确定的值。
(则数组10、若有以下定义:
staticinta[3][4];
是能对二维数组a进行正确的初始化的语句。
(11、)
12、有以下定义和语句:
chars1[10]=China;
printf(%d,strlen(s1));
输出结果为5。
四、程序填空
1、将一个数列头尾颠倒。
设该数列为1,3,5,7,9,11,13,15,17,19。
要求19,17,15,13,11,9,7,5,3,1次序存放并输出。
要求写一函数实现对包含任意个数据的颠倒处理。
voidf2(chara[],intn)
{inti,t;
for(《1》;
n《2》;
{t=a[i];
a[i]=a[n-i];
a[n-i]=t;
2、编写串连接函数strcat。
填空请用数组表示方法)
voidstrcat(chars1[],chars2[])
{inti,j;
《1》;
i++);
《2》;
j++)s1[i+j]=s2[j];
s1[i+j]=《3》
3、下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。
{inta[3]={5,9,19};
intb[5]={12,24,26,37,48};
intc[10],i=0,j=0,k=0;
3&
5)
if(a[i]>
b[j]){《1》;
k++;
j++;
else{《2》;
i++;
3){《3》;
while(j<
5){《4》;
4、用冒泡法进行排序函数如下,请填空。
voidbubble(inta[],intn)
{inti,j,t,temp;
=n-1;
{t=n《2》;
=t-1;
if(a[j]>
a[j+1]){temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
5、下面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 练习题 答案