C语言数组有答案.docx

上传人:b****3 文档编号:5706916 上传时间:2023-05-09 格式:DOCX 页数:19 大小:19.73KB
下载 相关 举报
C语言数组有答案.docx_第1页
第1页 / 共19页
C语言数组有答案.docx_第2页
第2页 / 共19页
C语言数组有答案.docx_第3页
第3页 / 共19页
C语言数组有答案.docx_第4页
第4页 / 共19页
C语言数组有答案.docx_第5页
第5页 / 共19页
C语言数组有答案.docx_第6页
第6页 / 共19页
C语言数组有答案.docx_第7页
第7页 / 共19页
C语言数组有答案.docx_第8页
第8页 / 共19页
C语言数组有答案.docx_第9页
第9页 / 共19页
C语言数组有答案.docx_第10页
第10页 / 共19页
C语言数组有答案.docx_第11页
第11页 / 共19页
C语言数组有答案.docx_第12页
第12页 / 共19页
C语言数组有答案.docx_第13页
第13页 / 共19页
C语言数组有答案.docx_第14页
第14页 / 共19页
C语言数组有答案.docx_第15页
第15页 / 共19页
C语言数组有答案.docx_第16页
第16页 / 共19页
C语言数组有答案.docx_第17页
第17页 / 共19页
C语言数组有答案.docx_第18页
第18页 / 共19页
C语言数组有答案.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言数组有答案.docx

《C语言数组有答案.docx》由会员分享,可在线阅读,更多相关《C语言数组有答案.docx(19页珍藏版)》请在冰点文库上搜索。

C语言数组有答案.docx

C语言数组有答案

一、选择题

1.以下对一维整型数组a的正确说明是。

A.inta(10);B.intn=0,a[n];

C.intn;

scanf(“%d”,&n);

inta[n];

D.#defineSIZE10

inta[SIZE]

2.若有说明:

inta[10];,则对a数组元素的正确引用是。

A.a[10]B.a[]C.a(5)D.a[10-10]

3.以下能对一维数组a进行正确初始化的语句形式是。

A.inta[10]=(0,0,0,0,0);B.inta[10]={};

C.doublea[][4];D.inta[10]={10*1};

4.以下对二维数组a的正确说明是。

A.inta[3][];B.floata(3,4);C.doublea[][4];D.floata(3)(4);

5.若有说明:

inta[3][4];则对a数组元素的正确引用是。

A.a[3][4]B.a[1,3]C.a[1+1][0]D.a

(2)

(1)

6.以下能对二维数组a进行正确初始化的语句是。

A.inta[2][]={{1,0,1},{5,2,3}};

B.inta[][3]={{1,2,3},{4,5,6}};

C.inta[2][4]={{1,2,3},{4,5},{6}};

D.inta[][3]={{1,0,1,0},{},{1,1}};

7.下面程序段(每行代码前面的数字表示行号)。

1inta[3]={3*0};

2inti

3for(i=0;i<3;i++)scanf(“%d”,&a[i]);

4for(i=1;i<3;i++)a[0]=a[0]+a[i];

5printf(“%d\n”,a[0]);

A.第1行有错误B.第5行有错误C.第3行有错误D.没有错误

8.若有定义floatx[4]={,,},y=6;则错误的语句是。

A.y=x[3];B.y=x+1;C.y=x[2]+1D.x[0]=y;

9.定义如下变量和数组:

intk;

inta[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是。

for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);

A.357B.369C.159D.147

10.下面程序的运行结果是。

#include<>

intmain()

{inta[6][6],i,j;

for(i=1;i<6;i++)

for(j=1;j<6;j++)

a[i][j]=(i/j)*(j/i);

for(i=1;i<6;i++)

{for(j=1;j<6;j++)

printf("%2d",a[i][j]);

printf("\n");

}

return0;

}

A.11111

11111

11111

11111

11111

B.00001

00010

00100

01000

10000

C.10000

01000

00100

00010

00001

D.10001

01010

00100

01010

10001

11.下面是对数组s的初始化,其中错误的语句是。

A.chars[5]={“abc”};B.chars[5]={‘a’,‘b’,‘c’};

C.chars[5]=“”;D.chars[5]=“abcde”;

12.下面程序段的运行结果是。

(□表示1个空格)

charc[5]={'a','b','\0','c','\0'};

printf("%s",c);

A.'a''b'B.abC.ab□cD.ab□

13.有两个字符数组a、b,则以下正确的输入格式是。

A.gets(a,b);B.scanf(“%s%s”,a,b);

C.scanf(“%s%s”,&a,&b);D.gets(“a”),gets(“b”);

14.有字符数组a[80]和b[80],则正确的输出形式是。

A.puts(a,b);B.printf(“%s%s”,a[],b[]);C.putchar(a,b);D.puts(a),puts(b);

15.有下面的程序段,则。

chara[3],b[]="China";

a=b;

printf("%s",a);

A.运行后将输出ChinaB.运行后将输出Ch

C.运行后将输出ChiD.编译出错

16.下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。

charx[]="programming";

chary[]="Fortran";

inti=0;

while(x[i]!

='\0'&&y[i]!

='\0')

if(x[i]==y[i])printf("%c",);

elsei++;

A.x[i++]B.y[++i]C.x[i]D.y[i]

17.下面程序的功能是将字符串s中所有的字符c删除。

请选择填空。

#include<>

intmain()

{chars[80];inti,j;

gets(s);

for(i=j=0;s[i]!

='\0';i++)

if(s[i]!

='c');

s[j]='\0';

puts(s);

return0;

}

A.s[j++]=s[i]B.s[++j]=s[i]C.s[j]=s[i];j++D.s[j]=s[i]

18.下面程序的运行结果是。

#include<>

intmain()

{charch[7]={"12ab56"};

inti,s=0;

for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)

s=10*s+ch[i]-'0';

printf("%d\n",s);

return0;

}

A.1B.1256C.12ab56D.15

19.当运行以下程序时,从键盘输入:

ab<回车>c<回车>def<回车>,则下面程序的运行结果是。

#include<>

#defineN6

intmain()

{charc[N];

inti=0;

for(;i

for(i=0;i

return0;

}

A.abcdef

 

B.a

b

c

d

e

f

C.b

c

d

 

D.ab

c

d

 

20.下面程序的运行结果是。

#include<>

intmain()

{chara[]="morning",t;inti,j=0;

for(i=1;i<7;i++)

if(a[j]

t=a[j];a[j]=a[7];a[7]=t;

puts(a);

return0;

}

A.mogninrB.moC.morningD.mornin

答案:

1.D2.D3.B4.C5.C6.B7.A8.B9.A10.C11.D

12.B13.B14.D15.D16.A17.A18.A19.D20.B

二、填空题

1.若有定义floata[3][5];则a数组所含数组元素个数是,a数组所占的字节数是。

2.若有定义:

doublex[3][5];,则x数组中行下标的下限为,列下表的上限为。

3.假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是。

4.若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。

5.下面程序给a数组输入数据并以每行4个数据的形式输出。

请填空。

#include<>

#defineN20

intmain()

{inta[N],i;

for(i=0;i

for(i=0;i

{if()

printf("%3d",a[i]);

}

printf("\n");

return0;

}

6.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。

#include<>

intmain()

{inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],i,j;

printf("arraya:

\n");

for(i=0;i<=1;i++)

{for(j=0;;j++)

{printf("%5d",a[i][j]);

;

}

printf("\n");

}

printf("arrayb:

\n");

for(i=0;;i++)

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");

}

return0;

}

7.下面程序段的运行结果是。

intx[5],i;

x[0]=1;x[1]=2;

for(i=2;i<5;i++)x[i]=x[i-1]+x[i-2];

for(i=2;i<5;i++)printf("%d",x[i]);

8.下面程序的运行结果是。

#include<>

intmain()

{inta[5][5],i,j,n=1;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

a[i][j]=n++;

printf("Theresultis:

\n");

for(i=0;i<5;i++)

{for(j=0;j<=i;j++)

printf("%4d",a[i][j]);

printf("\n");

}

return0;

}

9.以下程序的功能是求1000以内的水仙花数。

(提示:

所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。

例如:

407=4×4×4+0×0×0+7×7×7,故407是一个水仙花数。

)请填空。

#include<>

intmain()

{intx,y,z,a[8],m,i=0;

printf("Thespecialnumbersare:

\n");

for(;m++)

{x=m/100;y=;z=m%10;

if(m==x*x*x+y*y*y+z*z*z)

{;i++;}

}

for(x=0;x

printf("%6d",a[x]);

printf("\n");

return0;

}

10.下面程序的运行结果是。

#include<>

intmain()

{inta[10]={7,3,5,2,9,1,0,6,8,4},i=0,j=9,t;

while(i

{t=a[i];a[i]=a[j];a[j]=t;

i+=2;j-=2;

}

for(i=0;i<10;i+=2)printf("%d",a[i]);

return0;

}

11.下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个整数。

请填空。

#include<>

intmain()

{inta[5],max,min,i,j=0,k=0,t;

for(i=0;i<5;i++)

scanf("%d",&a[i]);

min=a[0];

for(i=1;i<5;i++)

if(a[i]

max=a[0];

for(i=1;i<5;i++)

if(a[i]>max){max=a[i];;}

printf("\nThepositionofminis:

%3d\n",k);

printf("Thepositionofmaxis:

%3d\n",j);

for(i=0;i<5;i++)

printf("%5d",a[i]);

printf("\n");

return0;

}

12.下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有a[i][j]=a[j][i])。

请填空。

#include<>

intmain()

{inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};

inti,j,found=0;

for(j=0;j<4;j++)

for(;i<4;i++)

if(a[j][i]!

=a[i][j])

{;break;}

if(found==1)printf("No\n");

elseprintf("Yes\n");

return0;

}

13.设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。

请填空。

#include<>

intmain()

{inta[10]={1,2,3,4,5,6,7,8,9,10};

intk,s,i;

floatave;

for(k=s=i=0;i<10;i++)

{if(a[i]%2!

=0);

s+=;

k++;

}

if(k!

=0)

{ave=s/k;printf("%d,%f\n",k,ave);}

return0;

}

14.以下程序是将矩阵a、b的和存入矩阵c中并按矩阵形式输出。

请填空。

#include<>

intmain()

{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

for(i=0;i<3;i++)

{for(j=0;j<4;j++)

{c[i][j]=;

printf("%3d",c[i][j]);

}

;

}

return0;

}

15.以下程序段的功能是求数组num中小于零的数据之和。

请填空。

intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20};

intsum=0,i;

for(i=0;i<=19;i++)

if()sum=;

printf("sum=%6d",sum);

16.以下程序段的功能是,运行后输出结果是。

intnum[10]={103,1,-20,-203,-21,2,-2,-2,13,-21};

intsum=0,i;

for(i=0;i<10;i++)

if(num[i]>0&&num[i]%10==3)

sum=sum+num[i];

printf("sum=%d\n",sum);

17.下面程序用“快速顺序查找法”判断数组a中是否存在某一数。

请填空。

#include<>

intmain()

{inta[9]={25,57,48,37,12,92,86,33},i,x;

scanf("%d",&x);

i=0;;

while(a[i]!

=x)i++;

if()printf("Found!

Theindexis:

%d\n",i);

elseprintf("Can'tfound!

\n");

return0;

}

18.下面程序是用“插入法”对数组a进行降序排序。

请填空。

#include<>

intmain()

{inta[5]={4,7,2,5,1},i,j,m;

for(i=1;i<5;i++)

{m=a[i];

j=;

while(j>=0&&m>a[j])

{;j--;}

=m;

}

for(i=0;i<5;i++)printf("%3d",a[i]);

printf("\n");

return0;

}

19.下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。

请填空。

#include<>

intmain()

{inta[3]={5,9,10};

intb[5]={12,24,26,37,48};

intc[10],i=0,j=0,k=0;

while(i<3&&j<5)

if()

{c[k]=b[j];k++;j++;}

else

{c[k]=a[i];k++;i++;}

while()

{c[k]=a[i];i++;k++;}

while()

{c[k]=b[j];j++;k++;}

for(i=0;i

putchar('\n');

return0;

}

20.字符串"ab\n\\012\\\""的长度是。

21.下面程序段将输出computer。

请填空。

charc[]="Itisacomputer";

inti,j;

for(i=0;;i++)

{;printf("%c",c[j]);}

22.下面程序的功能是从键盘输入一个大写英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间。

若指定的字母为Z,则打印出YZA;若为A,则打印出ZAB。

请填空。

#include<>

intmain()

{chara[3],c;

inti;

c=getchar();

a[1]=c;

if(c=='Z'){a[2]='A';;}

elseif(c=='A'){a[0]='Z';;}

else{a[0]=c-1;a[2]=c+1;}

for(i=0;i<=2;i++)putchar(a[i]);

return0;

}

23.下面程序段的功能是将字符数组a[6]={'a','b','c','d','e','f'}变为a[6]={'f','a','b','c','d','e'}。

请填空。

#include<>

intmain()

{chart,a[6]={'a','b','c','d','e','f'};

inti;

;

for(i=4;i>=0;i--);

a[0]=t;

for(i=0;i<=5;i++)putchar(a[i]);

return0;

}

24.下面程序的功能是在任意的字符串a中,将与字符c相等的所有元素的下标值分别存放在整型数组b中。

请填空。

#include<>

intmain()

{chara[80];

inti,b[80],k=0;

gets(a);

for(i=0;a[i]!

='\0';i++)

if(){b[k]=i;;}

for(i=0;i

return0;

}

25.有10个字符串。

下面程序的功能是在每个字符串中找出最大字符,并按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。

请填空。

#include<>

intmain()

{chars[10][20],a[10];

inti,j;

for(i=0;i<10;i++)gets(s[i]);

for(i=0;i<10;i++)

{;

for(j=1;s[i][j]!

='\0';j++)

if(a[i]

}

for(i=0;i<10;i++)printf("%d%c\n",i,a[i]);

return0;

}

答案:

1.15602.043.doublea[M][M]={0};4.06

5.scanf(“%d”,&a[i])

i%4==0printf(“\n”);

6.j<=2b[j][i]=a[i][j]i<=2

7.358

8.1

67

111213

16171819

2122232425

9.m=100;m<=999m/10%10a[i]=m

10.46108

11.k=ij=ia[j]=min;a[k]=max;

12.i=j+1found=1;

13.continuea[i]

14.a[i][j]+b[i][j]printf(“\n”)

15.num[i]<0sum+num[i]

16.计算数组num中大于零且个位数为3的数据之和116

17.a[8]=xi<8

18.i-1a[j+1]=a[j]a[j+1]

19.b[j]

20.9

21.i<=7j=i+8

22.a[0]=c-1a[2]=c+1

23.t=a[5]a[i+1]=a[i]

24.a[i]==’c’k++

25.a[i]=s[i][0]a[i]=s[i][j]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2