第七章 数组.docx

上传人:b****8 文档编号:29759289 上传时间:2023-07-26 格式:DOCX 页数:34 大小:134.62KB
下载 相关 举报
第七章 数组.docx_第1页
第1页 / 共34页
第七章 数组.docx_第2页
第2页 / 共34页
第七章 数组.docx_第3页
第3页 / 共34页
第七章 数组.docx_第4页
第4页 / 共34页
第七章 数组.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

第七章 数组.docx

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

第七章 数组.docx

第七章数组

第七章数组

一、选择题

1.在C语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是_______________。

A)整型常量B)整型表达式C)整型常量或整型表达式  D)任何类型的表达式

2.以下能正确定义一维数组a的选项是________________。

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

C)chara={'A','B','C'};     D)inta[5]="0123";

3.以下能正确定义一维数组a的选项是________________。

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

C)intn;D)#defineSIZE10

scanf("%d",&n);inta[SIZE];

inta[n];

4.若有定义:

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

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

5.以下不正确的数组定义是____________。

A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)inty[5]={0.,1,3,5,7,9};

C)charc1[]={'1','2','3','4','5'};D)charc2[]={'\x10','\xa','\x8'};

6.以下叙述中错误的是_______________。

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

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

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

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

7. 以下正确的二维数组定义是______________。

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

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

8.以下对二维数组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},{},{1,1}};

9.以下不能对二维数组a进行初始化的是___________。

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

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

10.若有定义:

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

A)a[2][4]B)a[3][3]C)a[0][0]D)a[3][4]

11.若定义了intb[][3]={1,2,3,4,5,6,7};则b数组第一维的长度是___________。

A)2   B)3  C)4    D)无确定值

12.若有定义:

inta[3][4]={0};则以下叙述中正确的是___________。

A)只有元素a[0][0]可得到初值0        B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值0

13.若有定义:

inta[][4]={0,0};以下叙述中错误的是_____________。

A)数组a的每个元素都可得到初值0  B)二维数组a的第一维大小为1

C)因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

14.若二维数组a有m列,则计算元素a[i][j]在数组中相对位置的公式为___________。

A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1

15.设charx[]="12345",y[]={'1','2','3','4','5','\0'};以下叙述中正确的是_____________。

A)x数组的长度等于y数组的长度  B)x数组的长度而在于y数组的长度 

C)x数组的长度少于y数组的长度 D)x数组与y数组的存储区域相同

16.下面是对字符数组s进行初始化,其中不正确的是___________。

A)chars[5]={"abc"}'B)chars[5]={'a','b','c'};

C)chars[5]="";D)chars[5]="abcde";

17.字符'数组s不能作为字符串使用的是________________。

A)chars[]="happy";B)chars[6]={'h','a','p','p','y','\0'};

C)chars[]={"happy"};D)chars[5]={'h','a','p','p','y'};

18下面有关字符数组的描述中错误的是___________。

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

B) 字符串可以整体输入、输出

c)可以在赋值语句中通过赋值运算对字符数组整体斌值

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

19.下面程序段执行后的输出结果是________________。

intk,a[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

20.下面程序段执行后的输出结果是________________。

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

printf("%s",c);

A)'a''b'B)abC)abcD)abc

21.有两个字符数组a、b,则以下________________是正确的输入语句。

A)gets(a,b);B)scanf("%s%s",a,b);C)scanf("%s%s",&a,&b);D)gets("a");gets("b");

22.下面程序段执行后的输出结果是________________。

chara[7]="abcdef";

charb[4]="ABC";

strcpy(a,b);

printf("%s",a[5]);

A)空格B)\0C)eD)f

23.下面程序段执行后的输出结果是_____。

charc[]="\t\b\\\0will\n";

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

A)14B)3C)9D)6

24.判断字符串a是否大于b,应当使用___________。

A)if(a>b)B)if(strcmp(a,b))

C)if(strcmp(b,a)>0)D)if(strcmp(a,b)>0)

25.表达式strcmp("3.14","3.278")的值是____________。

A)非零整数B)浮点数C) 0D)字符

26.以下叙述中正确的是___________。

A)两个字符串所包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串"STOP"与"STOP"相等

D)字符串"That"与"The"相等

27.有以下程序:

#include

#include

voidmain()

{

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

printf("%d%d",strlen(p),strlen(q));

}

  以下叙述中正确的是___________。

  A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

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

C)由于q数组中没有字符串结束符,长度不能确定:

但p数组中字符串长度为3

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

28.下面程序运行时从键盘上输入:

123 456 789回车,其输出结果是___________。

#include

voidmain()

{

chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

printf("%c,%d,%s",c,i,s);

}

A)123,456,789 B)1,456,789C)1,23,456,789D)1,23,456

29.下面程序运行时从键盘上输入:

ABC回车,其输出结果是___________。

#include

#include

voidmain()

{

charss[10]="12345";

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

printf("%s",ss);

}

A)ABC6789B)ABC67C)12345ABC6D)ABC456789

30.下面程序执行后的输出结果是___________。

#include

#include

voidmain()

{

chararr[2][4];

strcpy(arr,"you");strcpy(arr[1],"me");arr[0][3]='&';

printf("%s",arr);

}

A)you&meB)youC)meD)错误

31.下面程序执行后的输出结果是___________。

#include

voidmain()

{

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",s);

}

A)1B)1256C)12ab56D)ab

32.下面程序执行后的输出结果是___________。

#include

voidmain()

{

charstr[]="SSWLIA",c;intk;

for(k=2;(c=str[k])!

='\0';k++)

{

switchI(c)

{

case'I':

++k;break;

case'L':

continue;

default:

putchar(c);continue;

}

putchar('*');

}

}

A)SSWB)SW*C)SW*AD)SW

33.下面程序执行后的输出结果是___________。

#include

voidmain()

{

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",s);

}

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

34.下面程序执行后的输出结果是___________。

#include

voidmain()

{

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

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

printf("%s",w[k]);

}

A)ABCDFGHKLB)ABCDEFGIJMC)EFGJKOD)EFGHIJKL

35.下面程序执行后的输出结果是___________。

#include

voidmain()

{

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++)a+=aa[i][1];

printf("%d",s);

}

A)11B)13C)19D)20

二、填空题

1.C语言数组的下标总是从_________开始,不可以为负数;数组各个元素具有相同的__________。

2.在C语言中,二维数组的元素在内存中的存放顺序是_____________________。

3.在C语言中,一个二维数组可以看成若干个_____________数组。

4.若有定义:

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

5.若有定义:

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

6.字符串是以___________为结束标志的一维字符数组。

若有定义:

chara[]="";则a数组的长度是___。

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

8.若有定义:

chara[]="abcdefg",b[10]="abcdefg";语句printf("%d%d",sizeof(a),sizeof(b));执行后的输出结果是___________。

9.若要求从键盘读入含有空格的字符串,应使用________________面数。

10.欲为字符串S1输入"HelloWorld!

",其语句是______________________。

11.欲将字符串S1复制到字符中S2中,其语句是_________________。

12.如果在程序中调用了strcat函数,则需要预处理命令_________。

如果调用了gets函数,则需要预处理命令____________。

13.程序中使用了字符运算函数(如isupper),则需要预处理命令_________。

14.若有定义:

chara[]="windows",b[]="9x";则执行语句printf("%s",strcat(a,b));后的输出结果为___________。

15.下面程序执行后的输出结果是_________________。

#include

voidmain()

{

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",j);

}

16.下面程序执行后的输出结果是_________________。

#include

voidmain()

{

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",s);

}

17.下面程序段执行后的输出结果是_________________。

charx[]="theteacher";inti=0;

while(x[++i]!

='\0')

if(x[i-1]=='t')printf("%c",x[i]);;

}while(!

x);

18.下面程序执行后的输出结果是_________________。

#include

voidmain()

{

charb[]="Hello,you";

b[5]=0;

printf("%d",b);

}

19.下面程序段执行后的输出结果是_________________。

chara[7]="a0\0a0\0";inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d",i,j);

20.若有定义:

chara[80]="95",b[]="windows";则执行语句printf("%s",strcat(a,b));后的输出结果为______________。

三、程序阅读题

1.写出下面程序执行后的运行结果。

#include

voidmain()

{

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

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

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

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

}

}

2.写出下面程序执行后的运行结果。

#include

voidmain()

{

inti,a[5];

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

a[i]=9*(i-2+4*(i>2))%5;

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

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

}

3.下面程序运行时从键盘上输入:

7 4 8 9 1 5回车,写出程序的运行结果。

#include

voidmain()

{

inta[6],i,j,k,m;

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

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

for(i=5;i>=0;i--){

k=a[5];

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

a[j+1]=a[j];

a[0]=k;

for(m=0;m<6;m++)

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

printf("\n");

}

}

4.下面程序运行时从键盘上输入:

1 23-4回车,写出程序的运行结果。

#include

voidmain()

{

inti,k=0,s=0,a[10];

while

(1){

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

if(a[k]<=0)brerak;

s=s+a[k++];

}

for(i=0;i

printf("%d",s);

}

5.写出下面程序执行后的运行结果。

#include

voidmain()

{

inti,k=5,a[10],p[3];

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

}

6.写出下面程序执行后的运行结果。

#include

voidmain()

{

intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

for(j=2;j>=i;j--)

if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;};

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

for(j=4;j<7-i;j++)

if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

}

7.写出下面程序执行后的运行结果。

#include

voidmain()

{

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

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

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

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

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

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

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

printf("\n");

}

}

8.写出下面程序执行后的运行结果。

#include

voidmain()

{

inta[3][3]={{1},{2},{3}};

intb[3][3]={1,2,3};

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

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

}

9.写出下面程序执行后的运行结果。

#include

voidmain()

{

inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4){

if(i==2||i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

printf("%d",s);

}

10.写出下面程序执行后的运行结果。

#include

voidmain()

{

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

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

s=s+a[i][2-i];

printf("s=%d",s);

}

11.写出下面程序执行后的运行结果。

#include

voidmain()

{

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

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

当前位置:首页 > 工程科技 > 电子电路

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

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