完整版C语言题库数组.docx
- 文档编号:25984912
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:23
- 大小:23.39KB
完整版C语言题库数组.docx
《完整版C语言题库数组.docx》由会员分享,可在线阅读,更多相关《完整版C语言题库数组.docx(23页珍藏版)》请在冰豆网上搜索。
完整版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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 语言 题库 数组