第6章 数组答案.docx

上传人:b****5 文档编号:7964285 上传时间:2023-01-27 格式:DOCX 页数:17 大小:19.99KB
下载 相关 举报
第6章 数组答案.docx_第1页
第1页 / 共17页
第6章 数组答案.docx_第2页
第2页 / 共17页
第6章 数组答案.docx_第3页
第3页 / 共17页
第6章 数组答案.docx_第4页
第4页 / 共17页
第6章 数组答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第6章 数组答案.docx

《第6章 数组答案.docx》由会员分享,可在线阅读,更多相关《第6章 数组答案.docx(17页珍藏版)》请在冰豆网上搜索。

第6章 数组答案.docx

第6章数组答案

第6章数组

一、选择题

1、以下错误的定义语句是(C)

A)intx[][3]={{0},{1},{1,2,3}};

B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D)intx[][3]={1,2,3,4};

2、若有定义:

inta[2][3];以下选项中对a数组元素正确引用的是(D)

A)a[2][!

1]B)a[2][3]C)a[0][3]D)a[1>2][!

1]

3、以下能正确定义一维数组的选项是(B)。

A)intnum(5*2);B)intnum[5*2];C)intlong[10];D)intnum(10);

4、以下能正确定义一维数组的选项是(B)。

A)intnum[];

B)#defineN100

intnum[N];

C)intnum[0..100];

D)intN=100;

intnum[N];

5、以下选项中正确的语句组是(D)

A)chars[];s=”BOOK!

”B)char*s;s={“BOOK!

”};

C)chars[10];s=”BOOK!

”D)char*s;s=”BOOK!

”;

6、若以下说明,则数值为4的表达式是(D)。

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

charc=’a’,d,g;

A)a[g-c]B)a[4]C)a[‘d’-‘c’]D)a[‘d’-c]

7、以下程序的输出结果是(C)。

main()

{inti,a[10];

for(i=9;i>=0;i--)a[i]=10-i;

printf(“%d%d%d”,a[2],a[5],a[8]);

}

A)258B)741C)852D)369

8、有以下程序,程序运行后的输出结果是(D)。

main()

{

inti,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)60B)61C)62D)63

9、有如下程序

main()

{intn[5]={0,0,0},i,k=2;

for(i=0;i

printf(“%d\n”,n[k]);

}

该程序的输出结果是(D)。

A)不确定的值B)2C)1D)0

10、以下程序的输出结果是(A)。

main()

{

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

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

}

A)0650B)1470C)5430D)输出值不定

11、有以下程序,执行后输出结果是(C)。

main()

{

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

inti,j,k=2;

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

printf("%d",m[k][i]);

}

A)456B)258C)369D)789

12、以下程序的输出结果是(A)。

A)18B)19C)20D)21

main()

{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

printf(“%d\n”,s);

}

13、以下程序的输出结果是(C)。

main()

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

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

}

A)1,5,9,B)1,4,7,C)3,5,7,D)3,6,9,

14、有以下程序,执行后输出的结果是(D)。

main()

{

intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2)

{k=k+p[i];

i++;

}

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

}

A)58B)56C)45D)24

15、有以下程序

main()

{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)c[s[i]]++;

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

printf("\n");

}

程序的运行结果是(C)

A)1234B)2344C)4332D)1123

16、有以下程序

main()

{

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)if(p[i]%2)j+=p[i];

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

}

程序运行后的输出结果是(B)

A)42B)45C)56D)60

17、当执行下列程序时,如果输入ABC,则输出结果是(A)。

main()

{

charss[10]=”12345”;

gets(ss);strcat(ss,”6789”);

printf(“%s\n”,ss);

}

A)ABC6789B)ABC67C)12345ABC6D)ABC45678

18、有以下程序,程序运行后的输出结果是(A)。

main()

{

chararr[2][4];

strcpy(arr[0],"you");

strcpy(arr[1],"me");

arr[0][3]='&';

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

}

A)you&meB)youC)meD)err

19、有以下程序,程序运行后的输出结果是(A)。

main()

{

inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

{

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

if(i=j)

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

}

printf(“sum=%d”,sum);

}

A)sum=26B)sum=1C)sum=6D)sum=25

20、有以下程序,程序运行后的输出结果是(A)。

main()

{chars[10]=”12134211”;

intv[4]={0,0,0,0},k,i;

for(k=0;s[k];k++)

{

switch(s[k])

{

case‘1’:

i=0;break;

case‘2’:

i=1;break;

case‘3’:

i=2;break;

case‘4’:

i=3;break;

}

v[i]++;

}

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

printf(“%d”,v[k]);

}

A)4211B)0008C)4678D)8888

21、以下程序的输出结果是(B)。

main()

{

charst[20]="hello\0\t\\";

printf("%d%d\n",strlen(st),sizeof(st));

}

A)99B)520C)1320D)2020

22、以下程序的输出结果是(D)。

main()

{

intb[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("%d\n",t);

}

A)3B)2C)7D)4

23、以下程序的输出结果是(B)

main()

{charcf[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"

24、若有定义语句:

chars[10]=”1234567\0\0”;则strlen(s)的值是(A)

A)7B)8C)9D)10

25、有以下程序

voidfun(inta,intb)

{

intt;

t=a;a=b;b=t;

}

main()

{

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

for(i=0;i<10;i+=2)fun(c[i],c[i+1]);

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

printf("\n");

}

程序的运行结果是(A)

A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,

C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,

26、有以下程序

voidf(charp[][10],intn)/*字符串从小到大排序*/

{

chart[10];inti,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[i],t);}

}

main()

{

charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};

f(p,5);

printf("%d\n",strlen(p[0]));

}程序运行后的输出结果是(D)

A)2        B)4           C)6              D)3

27、有以下程序

main(){

charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";

strcat(p,r);strcpy(p+strlen(q),q);

printf("%d\n",sizeof(p));

}

程序运行后的输出结果是(C)

A)9  B)6 C)20 D)7

28、有以下程序

#defineN20

fun(inta[],intn,intm){

inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main(){

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

fun(a,2,9);

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

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

}

程序运行后的输出结果是(C)。

A)10234

B)12344

C)12334

D)12234

29、有以下程序

intf(intb[][4])

{inti,j,s=0;

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

{i=j;

if(i>2)i=3-j;

s+=b[i][j];

}

returns;

}

main()

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

printf("%d\n",f(a));

}

执行后的输出结果是(D)。

A)12   B)11  C)18   D)16

30、有以下程序

voidswap1(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};

swap1(a);swap2(b[0],b[1]);

printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);

}

其输出结果是(B)。

A)5353  B)5335  C)3535  D)3553

二、程序阅读题

1、有以下程序

main()

{

chars[]="abcde";

s[0]+=2;

printf("%d\n",s[0]);

}

执行后的结果是99。

2、有以下程序

main()

{

intx[3][2]={0},i;

for(i=0;i<3;i++)scanf("%d",x[i]);

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);

}

若运行时输入:

246<回车>,则输出结果为204。

3、有以下程序

main()

{

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

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

}

程序的执行后的输出结果是357。

4、以下程序的输出结果是30。

main()

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

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

printf(“%d\n”,s);

}

5、有以下程序

voidsum(inta[])

{a[0]=a[-1]+a[1];}

main()

{

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

sum(&a[2]);

printf("%d\n",a[2]);

}

程序运行后的输出结果是6。

6、以下程序的输出结果是abc。

main()

{

chars[]="abcdef";

s[3]='\0';

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

}

7、下列程序的输出结果是CDABC。

main()

{

charb[30];

strcpy(&b[0],”CH”);

strcpy(&b[1],”DEF”);

strcpy(&b[2],”ABC”);

printf(“%s\n”,b);

}

8、有以下程序

main()

{

charp[]={'a','b','c'},q[]="abc";

printf("%d%d\n",sizeof(p),sizeof(q));

};

程序运行后的输出结果是34。

9、有以下程序

voidfun(int*s,intnl,intn2)

{inti,j,t;

i=nl;j=n2;

while(i

}

main()

{

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

fun(a,0,3);

fun(a,4,9);

fun(a,0,9);

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

printf(“\n”);

}

程序运行的结果是5678901234

10、以下程序运行后的输出结果是abcbcc

main()

{

charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

}

三、程序填空题

1、以下程序的功能是:

求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。

请填空。

main()

{

intx[10],a[9],i;

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

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

a[i-1]=x[i]+x[i-1]      ;

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

printf(“%d”,a[i]);

printf(“\n”);

}

2、若已定义:

inta[10],i;,以下fun函数的功能是:

在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。

请填空。

fun(inta[])

{inti;

for(i=1;i<=10;i++)a[i-1]=i;

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

}

3、程序的功能是使一个字符串按逆序存放,请填空。

main()

{

charstr[]={“abcdefghijl”},m;

inti,j;

for(i=0,j=strlen(str);i

{m=str[i];

str[i]=str[9-i];

str[j-1]=m;

}

printf(“%s\n”,str);

}

4、用冒泡法对10个数据进行排序,请填空,让程序能正确运行。

main()

{

inta[11],i,j,t;

printf(“input10numbers:

\n”);

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

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

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

for(i=1;i<10-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf(“thesortednumbers:

\n”);

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

printf(“%d”,a[i]);

}

5、矩阵转置,请填空,让程序能正确运行。

main()

{

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<=2;j++)

{

_b[j][i]=a[i][j];

printf(“%5d”,a[i][j]);}

printf(“\n”);

}

printf(“arrayb:

\n”);

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

{

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

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

__printf(“\n”);_

}

}

6、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下

1

11

121

1331

14641.

其构成规律是:

(1)第0列元素和主对角线元素均为1

(2)其余元素为其左上方和正上方元素之和

(3)数据的个数每行递增1

请将程序补充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[0][0]=1;

for(i=1;i

{x[i][0]=x[i][i]=1;

for(j=1;j

x[i][j]=x[i-1][j-1]+x[i-1][j];

}

}

7、程序的功能是:

例如输入字符串:

abc123edf456gh,执行程序后输出:

123456,即将字符串中的数字字符输出。

请填空。

main()

{chars[80],d[80];inti,j;

gets(s);

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

='\0';i++)

if(s[i]>=’0’&&s[i]<=’9’){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

8、若有定义语句:

chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现字符串拷贝。

(注:

不得使用逗号表达式)

while(s[i]){d[j]=s[i++];j++;}

d[j]=0;

9、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:

abc123edf456gh,执行程序后输出:

123456。

请填空。

main()

{chars[80],d[80];inti,j;

gets(s);

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

='\0';i++)

if(s[i]>=’0’&&s[i]<=’9’){d[j]=s[i];j++;}

d[j]='\0';

puts(d);

}

10、下面程序的功能是:

将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

请填空。

main()

{chara[]="clanguage",t;

 inti,j,k;

 k=strlen(a);

 for(i=0;i<=k-2;i+=2)

 for(j=i+2;j<=k;j=j+2)

 if(_a[i]>a[j]_)

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

 puts(a);

 printf("\n");

}

四、程序编程题

(1)编程实现:

给定大小为10的int型一维数组a,要求先输入10个数存入a中,再分别输出该数组中值为奇数的元素个数和值为偶数的元素个数。

(2)从键盘输入一个数,查找该数在一个给定的数组中出现的次数,并打印出现的位置(即下标)。

(3)有一个整型数组a[10],它的初值分别是:

6,5,9,3,8,1,0,4,2和7。

要求编写程序,将数组的值按升序排列。

(4)删除字符串中出现的数字。

比如:

输入字符串“a1b2c333d56ef”,处理完后输出为“abcdef”

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

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1