GCT专业课习题计算机数组.docx
《GCT专业课习题计算机数组.docx》由会员分享,可在线阅读,更多相关《GCT专业课习题计算机数组.docx(39页珍藏版)》请在冰豆网上搜索。
GCT专业课习题计算机数组
下面是研究生考试网为报考GCT
第六章数组
一、单选题(60题)
1.若有以下数组说明,则数值最小的和最大的元素下标分别是()。
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
A.1,12B.0,11C.1,11D.0,12
2.若有以下说明,则数值为4的表达式是()。
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;
A.a[g-c]B.a[4]C.a[‘d’-‘c’]D.a[‘d’-c](即a[‘d’-‘a’])
3.设有定义:
chars[12]=“string“;,则printf(“%d\n”,strlen(s));的输出是()。
A.6B.7C.11D.12
4.设有定义:
chars[12]=“string“;则printf(“%d\n“,sizeof(s));的输出是()。
A.6B.7C.11D.12
5.合法的数组定义是()。
A.chara[]=“string“;B.inta[5]={0,1,2,3,4,5};
C.chara=“string“;D.chara[]={0,1,2,3,4,5}
6.合法的数组定义是()。
A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4};
C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};
7.下列语句中,正确的是()。
A.chara[3][]={‘abc’,‘1’};B.chara[][3]={‘abc’,’1’};
C.chara[3][]={‘a’,“1”};D.chara[][3]={“a“,“1“};
8.下列定义的字符数组中,输出printf(“%s\n”,str[2]);的输出是()。
staticstr[3][20]={“basic“,“foxpro“,“windows“};
A.basicB.foxproC.windowsD.输出语句出错
9.下列各语句定义了数组,其中哪一个是不正确的()。
A、chara[3][10]={”China”,”American”,”Asia”};B、intx[2][2]={1,2,3,4};
C、floatx[2][]={1,2,4,6,8,10};D、intm[][3]={1,2,3,4,5,6};
10.数组定义为inta[3][2]={1,2,3,4,5,6},值为6的数组元素是()。
A、a[3][2]B、a[2][1]
C、a[1][2]D、a[2][3]
11.语句printf((“%d\n“,strlen(“ats\no12\1\\“));的输出结果是()。
A.11B.10C.9D.8
12.函数调用strcat(strcpy(str1,str2),str3);的功能是()。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后。
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后。
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后。
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中。
13.有字符数组定义如下,则合法的函数调用是()
chara[]=“Iamastudent“,b[]=“teacher“;
A.strcmp(a,b);B.strcpy(a,b[0]);C.strcpy(a[7],b);D.strcat(a[7],b);
14.有字符数组定义如下,则不能比较a,b两个字符串大小的表达式是()
chara[]="abcdefg",b[]="abcdefh";
A.strcmp(a,b)==0B.strcmp(a,b)>0C.strcmp(a,b)<0D.a
15.设有如下定义,则正确的叙述为()
charx[]=“abcdefg“;
chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
A.数组x和数组y等价B.数组x和数组y长度相同
C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度
16.设有二维数组定义如下,则不正确的元素引用是()
inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
A.a[2][3]B.a[a[0][0]][1]C.a[7]D.a[2][‘c’-‘a’]
17.在c语言中,引用数组元素时,其数组下标的数据类型允许是()
A)整型常量B)整型表达式
c)整型常量或整型表达式D)任何类型的表达式
18.若有以下说明语句:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc=’a’,d,g;
则数值为4的表达式是__________。
A、a[g-c]B、a[4]C、a[‘d’-‘c’]D、a[‘d’-c]
19.假设int型变量占两个字节的存储单元,若有定义:
intx[10]={0,2,4};
则数组x在内存中所占字节数为______。
A、3B、6C、10D、20
20.下列合法的数组定义是_________。
A、inta[]=”string”;B、inta[5]={0,1,2,3,4,5};
C、chara=”string”;D、chara[]={0,1,2,3,4,5};
21.若给出以下定义:
charx[]=”abcdefg”;
chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
则正确的叙述为__________。
A、数组x和数组y等价B、数组x和数组y的长度相同
C、数组x的长度大于数组y的长度D、数组y的长度大于数组x的长度
22.若定义如下变量和数组_________。
intj;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是_________。
For(j=0;j<3;j++)
Printf(“%d”,x[j][2-j]);
A、159B、147C、357D、369
23.下列程序运行后的输出结果是______。
Main()
{intn[3],t,j,k;
for(t=0;t<3;t++)
n[t]=0;
k=2;
for(t=0;tfor(j=0;j<3;j++)
n[j]=n[t]+1;
printf(“%d\n”,n[1]);}
A、2B、1C、0D、3
24.有以下程序
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
25.以下能正确定义数组并正确赋初值的语句是______。
A、intN=5,b[N][N];B、inta[1][2]={{1},{3}};
C、intc[2][]={{1,2},{3,4}};D、intd[3][2]={{1,2},{34}};
26.有以下程序
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
27.以下能正确定义一维数组的选项是________________。
A、intnum[];B)#defineN100
intnum[N];
C、intnum[0..100];D)intN=100;
intnum[N];
28.下列选项中正确的语句组是______________。
A、chars[8];s={"Beijing"};B、char*s;s={"Beijing"};
C、chars[8];s="Beijing";D、char*s;s="Beijing";
29.有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是__________。
A、5B、6C、8D、9
30.有以下程序
main()
{chara[]="abcdefg",b[10]="abcdefg";
printf("%d%d\n",sizeof(a),sizeof(b));
}
执行后输出结果是_______。
A、77B、88C、810D、1010
31.有以下程序
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};
swap(a);swap2(b[0],b[1]);
printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);
}
其输出结果是_______。
A、5353B、5335C、3535D、3553
32.有以下程序
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));
}
执行后的输出结果是___________。
A、12B、11C、18D、16
33.有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;ifor(j=i+2;jif(a[i]}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++)printf("%d",aa[i]);
printf("\n");
}
其输出结果是_____。
A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2,1,
C、9,2,7,4,5,6,3,8,1,10,D、1,10,3,8,5,6,7,4,9,2,
34.有以下程序
voidf(inta[],inti,intj)
{intt;
if(i{t=a[i];a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main()
{inti,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");
}
执行后输出结果是_____。
A、5,4,3,2,1,B、5,2,3,4,1,C、1,2,3,4,5,D、1,2,3,4,5,
35.以下程序的输出结果是_____B___。
main()
{charcf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A、"AAAA"B、"BBB"C、"BBBCC"D、"CC"
36.以下程序的输出结果是_______。
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、4C、1D、9
37.有以下程序
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);
}
程序运行后的输出结果是_____。
A、11 B、19 C、13 D)、20
38.若有以下定义语句:
chars[10],s=”abcd”;printf(“%s\n”,s);
则运行结果是__________。
A、输出abcdB、输出aC、输出abcdD、编译不通过
39.不能把字符串“Hello!
”赋给数组b的语句是_______。
A、charb[10]={‘H’,’e’,’l’,’l’,’o’,’!
’};B、charb[10];b=”Hello!
”;
C、charb[10];strcpy(b,”Hello!
”);D、charb[10]=”Hello!
”;
40.若有以下程序段:
charstr[]=”ab\n\012\\\””;
printf(“%d”,strlen(str));
该程序段的输出结果是_________。
A、3B、4C、6D、12
41.函数调用strcat(strcpy(str1,str2),str3)的功能是_______。
A、将串str1复制到串str2中后在连接到串str3之后
B、将串str1连接到串str2之后再复制到串str3之后
C、将串str2复制到串str1中后再将串str3连接到串str1之后
D、将串str2连接到串str1中后再将串str1复制到串str3中
42.下列程序的输出结果是________。
Main()
{charch[7]={“65ab21”};
intj,s=0;
for(j=0;ch[j])>=’0’&&ch[j]<=’9’;j+=2)
s=10*s+ch[j]-‘0’;
printf(“%d\n”,s);
}
A、12ba56B、66521C、6D、62
43.设已定义chars[]=”\”Name\\Address\”\n”;,则字符串s所占的字节数是_________。
A、19B、18C、15D、14
44.设已定义charc[8]=”Tianjin”和intj,则下面的输出函数调用中错误的是______。
A、printf(“%s”,c);B、for(j=0;j<8;j++)printf(“%c”,c[j]);
C、puts(c);D、for(j=0;j<8;j++)puts(c[j]);
45.设已定义chara[10]和intj,则下面输入函数调用中错误的是_________。
A、scanf(“%s”,a);B、for(j=0;j<9;j++)scanf(“%c”,a[j]);
C、gets(a);D、for(j=0;j<9;j++)scanf(“%c”,&a[j]);
46.设已定义charx[8]和intj,为了给该数组赋值,下面语句中正确的是_______-。
A、x[8]=”TurboC”;B、x=”TurboC”;
C、x[]=”TurboC”;D、for(j=0;j<7;j++)x[i]=getchar();
47.有如下程序,
main()
{intn[5]={0,0,0},j,k=2;
for(j=0;jj++)n[j]=n[j]+1;
printf(“%d\n”,n[k]);
}
该程序的输出结果是_________。
A、不确定的值B、2C、1D、0
48.以下能对一维数组a进行正确初始化的语句是__。
A.inta[10]=(0,0,0,0,0)B.inta[10]={}C.inta[]={0};D.inta[10]={10*1};
49.以下对二维数组a的正确说明是__。
A.inta[3][];B.floatfa(3,4);c.doublea[1][4];D.floata(3)(4);
50.若有说明:
inta[3][4];则对a数组元素的正确引用是__。
A.a[2][4]B.a[1,3]C.a[1+1][0]D.a
(2)
(1);
51.若有说明:
inta[3][4];则对a数组元素的非法引用是__。
A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]
52.以下不能对二维数组a进行正确初始化的语句是__。
A.inta[2][3]={0};
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}};
53.若有说明:
inta[3]「4」={0};则下面正确的叙述是
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确:
。
C.数组a中各元素都可得到初值,但其值不一定为0。
D.数组a中每个元素均可得到初值0
54.下面程序有错的行是
1main()
2{
3inta[3]={1};
4inti;
5scanf("%d",&a);
6for(i=1;i<3;i++)a[0]=a[0]+a[i];
7printf("a[0]=%d\n",a[0]);
8}
A.3B.6C.7D.5
55.下面程序(每行程序前面的数字表示行号)
1main()
2{
3inta[3]={0};
4inti;
5for(i=0;i<3;i++)scanf("%d",&a[i]);
6for(i=1;i<4;i++)a[0]=a[0]+a[i];
7printf("%d\n",a[0]);
8}
A.没有错误B.第3行有错误C.第5行有错误D.第6行有错误
56.若二维数组a有m列,则计算任一元素a[i][j]在数组元素中次序的公式为
(假设a[0][0]位于数组的第一个位置上。
)
A.i*m+jB.j*p+IC.i*m+j-1D.i*m+j+1
57.对以下说明语句的正确理解是
inta[10]={6,7,8,9,10};
A.将5个初值依次赋给a[1]至a[5]
B.将5个初值依次赋给a[0]至a[4]
C.将5个初值依次赋给a[6]至a[10]
D.因为数组长度与初值的个数不相同,所以此语句不正确
58.以下不正确的定义语句是__.
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'};
59.若有说明:
inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是__.
A.2B.3C.4D.无确定值
60.若二维数组a有m列,则在a[i][j]前的元素个数为__.
A.j*m+jB.i*m+jC.i*m+jD.i*m+j+1
二、读程序,写运行结果(30题)
一般题
1.阅读程序,分析程序的功能。
#include
#include
voidmain()
{chars[80];inti;
for(i=0;i<80;i++){
s[i]=getchar();
if(s[i]==’\n’)break;
}
s[i]=’\0’;i=0;
while(s[i])putchar(s[i++]);
putchar(‘\n’);
}
2.说明下列程序的功能。
#include
#include
voidmain()
{charstr[10][80],c[80];inti;
for(i=0;i<10;i++)gets(str[i]);
strcpy(c,str[0]);
for(i=1;i<10;i++)if(strlen(c)printf(“%s\n”,c);
printf(“%d\n”,strlen(c));
}
3.说明下列程序的功能。
#include
#inclued
voidmain()
{chara[10][80],c[80];
inti,j,k;
for(i=0;i<10;i++)gets(a[i]);
for(i=0;i<9;i++){
k=i;
for(j=i+1;j<10;j++)
if(strcmp(a[j],a[k])<0)k=j;
if(k!
=i)
{strcpy(c,a[i]);strcpy(a[i],a[k]);strcpy(a[k],c);}//字符串交换
}
for(i=0;i<10;i++)puts(a[i]);
}
4.阅读程序,写出运行结果:
#include
voidmain()
{s