MSE C语言第五章习题.docx

上传人:b****5 文档编号:11739627 上传时间:2023-03-31 格式:DOCX 页数:46 大小:31.60KB
下载 相关 举报
MSE C语言第五章习题.docx_第1页
第1页 / 共46页
MSE C语言第五章习题.docx_第2页
第2页 / 共46页
MSE C语言第五章习题.docx_第3页
第3页 / 共46页
MSE C语言第五章习题.docx_第4页
第4页 / 共46页
MSE C语言第五章习题.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

MSE C语言第五章习题.docx

《MSE C语言第五章习题.docx》由会员分享,可在线阅读,更多相关《MSE C语言第五章习题.docx(46页珍藏版)》请在冰豆网上搜索。

MSE C语言第五章习题.docx

MSEC语言第五章习题

下面是研究生考试网为报考GCT软件工程硕士的考生整理的MSE考研复习备考资料。

希望这些资料能够给考生一定帮助。

在此,预祝考生复习备考顺利!

第六章数组

一、单选题(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;t

for(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;i

for(j=i+2;j

if(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;j

j++)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()

{staticinta[][3]={9

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

当前位置:首页 > 高等教育 > 其它

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

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