完整版C语言题库数组.docx

上传人:b****3 文档编号:4665981 上传时间:2022-12-07 格式:DOCX 页数:20 大小:23.44KB
下载 相关 举报
完整版C语言题库数组.docx_第1页
第1页 / 共20页
完整版C语言题库数组.docx_第2页
第2页 / 共20页
完整版C语言题库数组.docx_第3页
第3页 / 共20页
完整版C语言题库数组.docx_第4页
第4页 / 共20页
完整版C语言题库数组.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

完整版C语言题库数组.docx

《完整版C语言题库数组.docx》由会员分享,可在线阅读,更多相关《完整版C语言题库数组.docx(20页珍藏版)》请在冰豆网上搜索。

完整版C语言题库数组.docx

完整版C语言题库数组

数组

一、选择题

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

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

A3

B6

C10

D20

2、执行下面的程序段后,变量k中的值为(A)。

intk=3,s[2];

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

A不定值

B33

C30

D10

3、设有数组定义:

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

A4个字节

B5个字节

C6个字节有0/的结束标志

D7个字节

4、下列描述中不正确的是C

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

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

C可以对整型数组进行整体输入、输出

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

5、给出以下定义

charx[]="abcdefg";

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

则正确的叙述为C

A数组X和数组Y等价

B数组x和数组Y的长度相同

C数组X的长度大于数组Y的长度

D数组X的长度小于数组Y的长度

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

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

B字符数组中的字符串可以整体输入、输出

C可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

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

7、定义如下变量和数组

inti;

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

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

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

A159

B147

C357

D369

8、以下一维数组a的正确定义是(D)

Ainta(10);

Bfloatn=10,a[n];

Cintn;scanf("%d",&n);floata[n];

D#definesize10;longa[size];

9、合法的数组定义是D

Ainta[]="string";

Binta[5]={0,1,2,3,4,5};

Cvhsts="string";

Dchara[]={0,1,2,3,4,5};

10、以下关于数组的描述正确的是C

A数组的大小是固定的,但可以有不同的类型的数组元素;

B数组的大小是可变的,但所有数组元素的类型必须相同;

C数组的大小是固定的,但所有数组元素的类型必须相同;

D数组的大小是可变的,但可以有不同的类型的数组元素;

11、在定义inta[10];之后,对a的引用正确的是A

Aa[9]

Ba[6.3]

Ca(6)

Da[10]

12、以下对一维数组a进行不正确初始化的是A

Ainta[10]=(0,0,0,0);

Binta[10]={};

Cinta[]={0};

Dinta[10]={10*2};

13、以下对二维数组a进行正确初始化的是B

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

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

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

Dinta[2][]={{1,2},{3,4}};

14、以下对字符数组进行不正确初始化的是A

Astaticcharword[]='cool\0';

Bstaticcharword[]={‘c’,’o’,’o’,’l’};

Cstaticcharword[]={“cool\0”};

Dstaticcharword[]=”cool\0”;

15、在定义inta[5][4];之后,对数组元素的引用正确的是C

Aa[2][4]

Ba[5][0]

Ca[0][0]

Da[0,0]

16、下列选项中,能正确定义数组的语句是D

Aintnum[0..2008];

Bintnum[];

CintN=2008;

intnum[N];

D#defineN2008

intnum[N];

17、有以下程序

#include

main()

{intb[3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;

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

for(j=i;j<=1;j++)t+=b[i][b[j][i]];

printf("%d",t);

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

A1

B3

C2

D9

18、在C语言中,能实现字符串连接的函数是(A)

Astrcat()

Bstrcmp()

Cstrcpy()

Dstrlen()

19、在C语言中,定义数组inta[7]={3,4,5,6,7,8,9},则a[5]的值为(D)。

A9

B6

C7

D8

20、在C语言中,定义inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},i=5,则下列选项中不能正确引用数组元素的是(A)。

Aa[2*i-12]

Ba[2*i-2]

Ca[12-i]

Da[2*i]

21、在C语言中,有以下定义:

charb[10]={'h','n','s','p','k','s'};,则语句printf("%c\n",b[1]);的结果为(B)。

Ah

Bn

Cs

Dp

22、在C语言中,定义chara[]={'a','b','l','l','o'},已知字符'b'的ASCII码为98,

则printf("%d\n",a[0]);的值为(A)。

A97

Ba

C98

Db

23、在C语言中,定义数组inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},则a[3]的

值为(B)

A3

B4

C5

D6

24.(分值:

2.1分)在C语言中,有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i<5){if(p[i]%2)j+=p[i];i++;}printf("%d\n",j);}程序运行后的输出结果是(A)

A39

B45

C56

D60

25、在C语言中,若有定义:

inty=3,x[7]={1,2,3,4,5,6,7},则表达式y+=x[2]的值为(A)。

A6

B5

C8

D9

26、在C语言中,若有定义:

inty=5,x[7]={1,2,3,4,5,6,7},则表达式y+=x[6]的值为(D)。

A9

B10

C11

D12

27、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是C

A1

B2

C4

D5

28、在执行charstr[10]=”china\0”;strlen(str)的结果是B

A5

B6

C7

D9

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

A整型常量

B整型表达式或整型常量

C实型常量

D任何类型的表达式

30、若二维数组a有m列,则在a[i][j]前的元素个数是()

Aj*m+i

Bi*m+j

Ci*m+j-1

Di*m+j+1

31、以下程序给数组所有的元素输入数据,空处应填入()

main()

{inta[10],i=0;

while(i<10)scanf(“%d”,____C________);

}

A&a[i]

Ba[i++]

C&a[i++]

D&a[++i]

32、有字符数组a[80],b[80],则正确的输出语句是D

Aputs(a,b);

Bprintf(“%s,%s”,a[],b[]);

Cputchar(a,b);

Dputs(a);puts(b);

33、以下能正确定义字符串的语句是D

Acharstr[]={'\064'};

Bcharstr="\x43";

Ccharstr=";

Dcharstr[]="\0";

34、以下数组定义中正确的是D

Aintx[][3]={0};

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

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

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

35、要说明一个有10个int元素的数组,应当选择语句A

Ainta[10]

Binta[2,5]

Cinta[]

Dint*a[10]

36、已知:

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

Aa[10]

Ba[3.5]

Ca(5)

Da[10-10]

37、对二维数组的正确说明是C

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

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

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

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

38、已有定义:

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

A数组a和b的长度相同

Ba数组长度小于b数组长度

Ca数组长度大于b数组长度

D上述说法都不对

39、以下能正确定义一维数组的选项是B

Ainta[5]={0,1,2,3,4,5};

Bchara[]={0,1,2,3,4,5};

Cchara={''A'',''B'',''C''};

Dinta[5]="0123";

40、若有以下说明:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;则数值为4的表达式是D

Aa[g-c]

Ba[4]

Ca['d'-'c']

Da['d'-c]

41、合法的数组定义是B

Ainta[]="string";

Binta[5]={0,1,2,3,4,5};

Cchars="string";

Dchara[]={0,1,2,3,4,5};

42、以下能对二维数组c进行正确的初始化的语句是B

Aintc[3][]={{3},{3},{4}};

Bintc[][3]={{3},{3},{4}};

Cintc[3][2]={{3},{3},{4},{5}};

Dintc[][3]={{3},{},{3}};

43、阅读下列程序段,则程序段实现的功能是C

#include"stdio.h"

main()

{

intk[10];

intj;

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

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

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

printf("%d,",k[j]);

}

A输入10个数据的顺序输入并输出

B输入10个数据的逆序存放

C输入10个数据的逆序输出

D以上叙述均错误

44、以下对一维数组a的定义中正确的是(C) 

A. char a(10);   

B. int   a[0..100];

C. int  a[5]; 

D. int  k=10;int a[k];

45、阅读如下程序段,则程序在先后输入love和china后,输出结果是()(来源二级C)

#include

#include

main()

{chara[30],b[30];

intk;

gets(a);

gets(b);

k=strcmp(a,b);

if(k>0)puts(a);

elseif(k<0)puts(b);}

A)love

B)chinaA

C)lovechina

D)没有输出结果

46、以下程序执行后的输出结果是(A)。

 

A. 2            B. 3            C. 4             D. 5 

#include "string.h" 

main( ) 

{ char *p[10]={ "abc","aabdfg","dcdbe","abbd","cd"}; 

  printf("%d\n",strlen(p[4]));不包括\0

}

47、若有定义:

char a[10],*b=a;,则不能给数组a输入字符串”This is a book”的语句是( B   )。

  

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

 

48、以下对一维数组c进行正确的定义初始化的语句是D

A)intc[10]=0;

B)intc[10]={0}*10;

C)intc[1]={0,0,0,0,0,0,0};

D)intc[10]={0};

49、不能把字符串:

Hello!

赋给数组b的语句B

Acharb[10]={'H','e','l','l','o','!

'};

Bcharb[10];b="Hello!

";

Ccharb[10];strcpy(b,"Hello!

");

Dcharb[10]="Hello!

";

50、若有以下语句,则正确的描述是(B  )(注:

来源二级C)

chara[]="toyou";

charb[]={′t′,′o′,′y′,′o′,′u′};

Aa数组和b数组的长度相同

Ba数组长度小于b数组长度

Ca数组长度大于b数组长度

Da数组等价于b数组

51、已知:

chara[15],b[15]={"Ilovechina"};则在程序中能将字符串Ilovechina赋给数组a的正确语句是(D)

Aa="Ilovechina";

Bstrcpy(b,a);

Ca=b;

Dstrcpy(a,b);

52、下列说法正确的是(B).

A.数组如果没有初始化,也没有被赋值,则每个元素的默认值为0

B.在给数组初始化时,可以只给其中几个元素赋初值

C.数值型数组不能使用赋值语句整体赋值,但字符型数组可以使用赋值语句整体赋一个字符串

D.用一个字符型数组来存放字符串时,可以存放与数组长度等数目的有效字符

53、设有如下字符数组定义,则合法的函数调用是(A )char a[]={“I am a student”},b[]={“techer”}; 

Astrcmp(a,b);                

Bstrcpy(a,b[0]); 

Cstrcpy(a[7],b);             

Dstrcat(a[7],b); 

54、判断字符串s1是否大于字符串s2,应当使用(D)。

(A)if(s1>s2)

(B)if(strcmp(s1,s2))

(C)if(strcmp(s2,s1)>0)

(D)if(strcmp(s1,s2)>0)

55、有语句charstr1[10],str2[10]={"china"};则能将字符串china赋给数组str1的正确语句是____D____。

(注:

来源二级C)

Astr1={"china"};

Bstrcpy(str1,str2);

Cstr1=str2;

Dstrcpy(str2,str1);

56、合法的数组定义C

Ainta[]={“string”};

Binta[5]={0,1,2,3,4,5};

Cchara[]=“string”;

Dchara[5]={0,1,2,3,4,5};

57.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为()(假设a[0][0]位于数组的第一个位置上D。

(A)i*m+j

(B)j*m+i

(C)i*m+j-1

(D)i*m+j+1

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

(A)gets(a,b);

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

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

(D)gets(“a”),gets(“b”);

59.以下对二维数组a进行正确初始化的语句是(B)。

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

60.若有说明:

intx[3][4];则对a数组元素的正确引用是(C)。

(A)x[2][4]

(B)x[1,3]

(C)x[4-2][0]

(D)x[0][4]

 

二、填空题

1、以下程序运行后的输出结果是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);

}

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

请填空。

main()

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

sun=count=0;

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

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

{if(a[i]>0)

{count++;

sum+=_____a[i]____;

}

}

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

}

3、以下程序运行后的输出结果是13715

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

}

}

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

main()

{chars[]="abcdef";

s[3]=''\0'';

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

}

5、若有定义语句:

chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填s[i++]

空以实现字符串拷贝。

(注:

不得使用逗号表达式)

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

d[j]=0;

6、下列程序段的输出结果是Hello

main()

{charb[]=”Hello,you”;

b[5]=0;

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

}

7、下面程序的输出是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);}

8、设数组a包括10个整型元素。

下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。

请填空。

main()

{inta[10],b[10],i;

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

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

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

b[i]=a[i]+a[i--];;

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

{printf(”%3d”,b[i]);

if(i%3==0)printf(”\n”);

}

}

9、下面程序段将输出computer,请填空。

charc[]=”it’sacomputer”;

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

{

J=i+7;

printf(”%c”,c[j]);

}

10、若想通过以下输入语句,使a中存放字符串1234,b中存放字符5,则输入数据a=1234b=5

的形式应该是

chara[10],b;

scanf("a=%sb=%c",a,&b);

11.下面程序以每行4个数据的形式输出a数组,请填空。

#defineN20

main()

{

inta[N],i;

for(i=0;i

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

for(i=0;i

{

if(i%4==0)printf("\n"););

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

}

printf(“\n”);

}

12.以下程序运行后的输出结果是3

#include

main()

{intn[2],i,j;

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

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

for(j=0;j<2;j++)n[j]=n[i]+1;

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

}

13.以下程序运行后输出结果是14

#include

  main()

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

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

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

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

}

printf("\n");

}

14.(2011年9月)有以下程序

#include

main()

{intc[3]={0},k,i;

while((k=getchar())!

='\n')

c[k-'A']++;

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

}

若程序运行时从键盘输入ABCACC<回车>,则输出结果为213

15.

己知a所指的数组中有N个元素。

函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。

请填空。

voidfun(inta[N],intk)

{inti;

for(i=k;i

____a[k]=a[k+1]

___________;

}

16.

设有定义语句:

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

则数组元素a[1][2]的值为_____0__。

17.有以下程序,程序运行后的输出结果是1657

#include“stdio.h”

main()

{

int

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

当前位置:首页 > 初中教育 > 语文

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

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