6第7章 数组.docx

上传人:b****4 文档编号:4925602 上传时间:2022-12-11 格式:DOCX 页数:20 大小:24.38KB
下载 相关 举报
6第7章 数组.docx_第1页
第1页 / 共20页
6第7章 数组.docx_第2页
第2页 / 共20页
6第7章 数组.docx_第3页
第3页 / 共20页
6第7章 数组.docx_第4页
第4页 / 共20页
6第7章 数组.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

6第7章 数组.docx

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

6第7章 数组.docx

6第7章数组

一、选择题

1、有以下程序[B]

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);

}

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

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

2、以下叙述中错误的是 _____。

[C]

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

3、假定int类型变量占用两个字节,其有定义:

intx[10]={0,2,4};,则数组x在内存中所占字节数是_____。

[D]

A)3B)6C)10D)204、以下程序的输出结果是_____。

[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)3695、有如下程序[D]

main()

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

for(i=0;i

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

}

该程序的输出结果是_____。

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

6、执行下面的程序段后,变量k中的值为_____。

[A]

intk=3,s[2];

s[0]=k;k=s[1]*10;

A)不定值B)33C)30D)10

7、以下程序运行后,输出结果是_____.[B]

main()

{inty=18,i=0,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)10000B)10010C)00110D)10100

8、以下程序的输出结果是_____。

[B]

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)20B)21C)22D)23

9、阅读下列程序:

[D]

main()

{intn[3],i,j,k;

for(i=0;i〈3;i++〉n[i]=0;

k=2;

for(i=0;i〈k;i++〉

for(j=0;j〈k;j++〉n[j]=n[i]+1;

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

}

下述程序运行后输出结果是_____。

A)2B)1C)0D)310、有以下程序

main()

{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

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

{for(j=1;j<=i;j++)printf("%c",‘‘);

for(j=_____;j<4;j++)printf("%4d",num[i][j]);

printf("\n");

}

}

若要按以下形式输出数组右上半三角

1234

678

1112

16则在程序下划线处应填入的是_____[B]

A)i-1C)i+1B)iD)4-i

11、以下能正确定义二维数组的是[B]

A)inta[][3];C)inta[][3]={};

B)inta[][3]={2*3};D)inta[2][3]={{1},{2},{3,4}}

12、以下能正确定义数组并正确赋初值的语句是[D]

A)intN=5,b[N][N];C)intc[2][]={{1,2},{3,4}};

B)inta[1][2]={{1},{3}};D)intd[3][2]={{1,2},{34}};

13、有以下程序

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]);}

}

则执行后输出结果是[C]

A)456B)258C)369D)78914、有以下程序

main()

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

inti,s=0

for(i=0;i<4;i++)s+=aa[i][1];

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

}

程序运行后的输出结果是[B]

A)11B)19D)2015、以下数组定义中不正确的是[D]

A)inta[2][3];C)intc[100][100]={0};

B)intb[][3]={0,1,2,3};D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};16、以下程序的输出结果是[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)输出值不定

17、以下程序的输出结果是[A]

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(“%dn”,s);

}

A)18B)19C)20D)2118、有以下程序

#include

main()

{charp[]={‘a‘,‘b‘,‘c‘},q[10]={‘a‘,‘b‘,‘c‘};

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

以下叙述中正确的是()[B]

A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3

C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定

19、有定义语句:

intb;charc[10];,则正确的输入语句是_____[B]

A)scanf("%d%s",&b,&c);C)scanf("%d%s",b,c);

B)scanf("%d%s",&b,c);D)scanf("%d%s",b,&c);

20、以下能正确定义一维数组的选项是_____[B]

A)inta[5]={0,1,2,3,4,5};C)chara={‘A‘,‘B‘,‘C‘};

B)chara[]={0,1,2,3,4,5};D)inta[5]="0123";

21、已有定义:

chara[]="xyz",b[]={‘x‘,‘y‘,‘z‘};,以下叙述中正确的是_____[C]

A)数组a和b的长度相同C)a数组长度大于b数组长度

B)a数组长度小于b数组长度D)上述说法都不对

22、s12和s2已正确定义并分别指向两个字符串。

若要求:

当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是_____[D]

A)if(s1>s2)S;C)if(strcmp(s2,s1)>0)S;

B)if(strcmp(s1,s2))S;D)if(strcmp(s1,s2)>0)S;

23、以下程序的输出结果是[B]

main()

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

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

}

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

24、以下程序的输出结果是[D]

main()

{charw[][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k;

for(k=1;k<3;k++)printf(“%s\n”,w[k]);}

A)ABCDC)EFG

FGHJK

KLO

B)ABCDD)EFGH

EFGIJKL

IJ

M

25、当执行下面的程序时,如果输入ABC,则输出结果是[A]

#include“stdio.h”

#include“string.h”

main()

{charss[10]="1,2,3,4,5";

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

A)ABC6789B)ABC67C)12345ABC6D)ABC456789

26、设有数组定义:

chararray[]="China";则数组array所占的空间为[C]

A)4个字节B)5个字节C)6个字节D)7个字节

27、下列程序执行后的输出结果是[A]

main()

{chararr[2][4];

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

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

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

}

A)you&neB)youC)meD)err

28、下列描述中不正确的是[C]

A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

29、给出以下定义:

charx[]="abcdefg";

chary[]={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘};

则正确的叙述为[C]

A)数组X和数组Y等价C)数组X的长度大于数组Y的长度

B)数组x和数组Y的长度相同D)数组X的长度小于数组Y的长度

30、下述对C语言字符数组的描术中错误的是[C]

A)字符数组可以存放字符串

B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较31、请读程序片段(字符串内没有空格):

printf("%d\n",strlen("ATS\n012\1\\"));

上面程序片段的输出结果是[C]

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

32、设有

staticcharstr[]="Beijing";

则执行

printf("%d\n",strlen(strcpy(str,"China")));

后的输出结果为[A]

A)5B)7C)12D)14

33、判断字符串s1是否大于字符串s2,应当使用_____。

[D]

A.if(s1>s2)C.if(strcmp(s2,s1)>O)

B.if(strcmp(s1,s2))D.if(strcmp(s1,s2)>O)

34、下面程序段运行结果_____。

[D]

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

a=b;

printf(”%s”,a);

A.运行后将输出ChinaC.运行后将输出Chi

B.运行后将输出ChD.编译出错

35、在C语言中,引用数组元素时,其数组下标的数据类型允许是____。

[C]

A.整型常量C.整型常量或整型表达式

B.整型表达式D.任何类型的表达式

36、若有说明:

inta[l0];则对a效组元素的正确引用是_____。

[D]

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

37、在C语言中.一维数组的定义方式为;类型说明符数组名_____。

[A]

A.[常量表达式]C.[整型常量]或[整型表达式]

B.[整型表达式]D.[整型常量]

38、以下能对一维数组a进行正确初始化的语句是_____。

[C]

A.inta[lO]=(0,0.0,0,0);C.inta[]={0};

B.inta[l0]={};D.inta[10]={10*1};

39、以下对二维数组a的正确说明是_____。

[C]

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

40、若有说明:

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

[C]

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

(2)

(1)

41、若有说明:

inta[3][4];则对a效组元素的非法引用是_____。

[D]

A.a[0][2*1]B.a[l][3]C.a[4-2][0]D.a[0][4]

42、若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是_____。

[B]

A.2B.3C.4D.无确定值43、以下程序段的结果是_____。

[A]

intk;

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

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

printf{"%2d",a[k][2-k]);

A.357B.369C.159D147

44、若二维数组a有m列,则在a[i][j]前的元素个数为_____。

[B]

A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1

45、若有说明:

inta[3][4]={0};则下面正确的叙述____。

[D]

A.只有元素a[0][0]可以得到初值

B.此说明语句不正确C.数组a中各元素都可得到初值,但其值不一定为0

D.数组a中各元素都可得到初值0

46、合法的数组定义是_____。

[D]

A.inta[]="string";C.chara="string";

B.inta[5]={0,1,2,3,4,5};D.chara[]={0,1,2,3,4,5};

47、若有定义和语句:

chars[10];

s="abcd";

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

则结果是(以下μ代表空格)_____。

[D]

A.输出abcdC.输出abcdμμμμμ

B.输出aD.编译不通过

48、若有以下说明和语句,则输出结果是_____。

[B]

charsp[]="\t\v\\\0will\n";

printf("%d",strlen(sp));

A.1DB.3C.9D.字符串中有非法字符

49、若有以下说明和语句,则输出结果是_____。

[C]

charstr[]="\"c:

\\abc.dat\"";

printf("%s",str);

A.字符串中有非法字符C."c:

\abc.dat"

B.\"c:

\\abc.dat\"D."c:

\\abc.dat"

50、下列对C语言字符数组的描述中错误的是_____。

[C]

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入、输出C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

二、填空题

51、以下程序运行后的输出结果是【24】。

main()

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

inti=0,j=0;

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

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

}

52、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

请填空。

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【&a[i]】);

fro(i=0;i<20;i++)

{if(a>0)

{count++;

sum+=【a[i]】;

}

}

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

53、以下程序运行后的输出结果是【1 3 7 15】

main()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

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

}

}

54、下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。

请填空。

fun(intx,intb[])

{intk=0,r;

do

{r=x%【2】;

b[k++]=r;

x/=【2】;}while(x);}

55、下面程序的输出是【12】。

main()

{intarr[10],i,k=0;

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

arr[i]=i;

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

k+=arr[i]=i;

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

56、下面的findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。

findmax(ints[],intt)

{intk,p;

for(p=0,k=p;p

if(s[p]>s[k])【k=p】。

returnk;

}

57、以下程序运行后的输出结果是【123056009】

main()

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

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

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

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

{for(j=0;j<3;j++)printf("&d",a[i][j]);

printf("\n");

}

}

58、若有以下程序

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

inti,j,s=0;

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

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

{if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

执行后输出的结果是 【58】 。

59、阅读下列程序:

#include

main()

{inti,j,row,column,m;

staticintarray[3][3]={{100,200,300},

{28,72,-30},

{-850,2,6}

};

m=array[0][0];

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

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

if(array[i][j]

{m=array[i][j];row=i;column=j;}

printf("%d,%d,%d\n",m,row,column);

}

上述程序的输出结果是【-850,2,0】。

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

例如,输入字符串:

abc123edf456gh,执行程序后输出:

123456。

请填空。

#include

#include

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);

}

61、以下程序的输出结果是【abc】。

main()

{chars[]="abcdef";

s[3]=‘\0‘;

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

}

62、下列程序段的输出结果是【Hello】。

main()

{charb[]=”Hello,you”;

b[5]=0;

printf(“%s\

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

当前位置:首页 > 求职职场 > 简历

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

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