二级C语言173.docx

上传人:b****8 文档编号:30105531 上传时间:2023-08-05 格式:DOCX 页数:17 大小:20.40KB
下载 相关 举报
二级C语言173.docx_第1页
第1页 / 共17页
二级C语言173.docx_第2页
第2页 / 共17页
二级C语言173.docx_第3页
第3页 / 共17页
二级C语言173.docx_第4页
第4页 / 共17页
二级C语言173.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

二级C语言173.docx

《二级C语言173.docx》由会员分享,可在线阅读,更多相关《二级C语言173.docx(17页珍藏版)》请在冰豆网上搜索。

二级C语言173.docx

二级C语言173

二级C语言-173

(总分:

100.00,做题时间:

90分钟)

一、选择题(总题数:

45,分数:

100.00)

1.以下不正确的定义语句是______。

(分数:

2.00)

 A.doublex[5]={1.0,2.0,3.0,4.0,5.0);

 B.inty[5]={0,1,2,3,4,5); √

 C.charc1[]={"1","2","3","4","5"};

 D.charc2[]={"a","b","c");

解析:

2.以下程序的输出结果为______。

#include<stdio.h>

main()

{char*p[]={"abcdefgh","ijkl","mnop","qrst","uvwx"};

inti;

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

puts(p[i]);

}

A.abcdefgh

B.ijkl

C.

D.qrst

(分数:

2.00)

 A.

 B.

 C. √

 D.

解析:

3.若有以下定义,则正确引用数组元素的是______。

inta[5],*p=a;

(分数:

2.00)

 A.*&a[5]

 B.*a+2

 C.*(p+5)

 D.*(a+2) √

解析:

4.若有说明:

inta[][3]={0,0};,则不正确的叙述是______。

(分数:

2.00)

 A.数组a的每个元素的初值都是0

 B.数组a的第一维大小为1

 C.数组a的行数为1

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

解析:

5.下列二维数组初始化语句中,不正确的是______。

(分数:

2.00)

 A.intb[][2]={1,2,3,4,5,6,7};

 B.intb[3][5]={0,0,0};

 C.intb[][4]={{1,2},{3,4,5),{6)};

 D.intb[3][2]={(1,2),(3,4),(5,6)}; √

解析:

6.若二维数组a有m列,则在a[i][j]前的元素个数为______。

(分数:

2.00)

 A.j*m+i

 B.i*m+j √

 C.j*m+i+1

 D.i*m+j+l

解析:

7.有以下程序:

#include<stdio.h>

main()

{intaa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};

inti,s=0;

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

s+=aa[i][2];

printf("%d",s);

}

程序运行后的输出结果是______。

(分数:

2.00)

 A.26

 B.19 √

 C.10

 D.20

解析:

8.以下程序的输出结果是______。

#include<stdio.h>

main()

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

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

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

s+=a[i][a[j][j]];

printf("%d/n",s);

}

(分数:

2.00)

 A.3

 B.4 √

 C.1

 D.9

解析:

9.如下程序的输出结果是______。

#include<stdio.h>

main()

{charch[2][5]={"1234","5678"},*p[2];

inti,j,s=0;

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

p[i]=ch[i];

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

for(j=0;p[i][j]>"/0";j+=2)

{s=p[i][j]-"0";

printf("%d",s);}

}

(分数:

2.00)

 A.6357

 B.6135

 C.1357 √

 D.691357

解析:

10.以下程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。

#include<stdio.h>

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i<n-1;i++)

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

if(a[i]<a[j])

{t=a[i];a[i]=a[j];a[j]=t;

}

}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10),i;

sort(&a[1],7);

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

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

}

程序运行后的输出结果是______。

(分数:

2.00)

 A.1,2,3,4,5,6,7,8,9,10,

 B.10,9,8,7,6,5,4,3,2,1,

 C.1,8,7,6,5,4,3,2,9,10, √

 D.1,2,10,9,8,7,6,5,4,3,

解析:

11.已知“inta[4][4];”,则不能等价表示数组元素a[3][3]的是______。

(分数:

2.00)

 A.*(a[3]+3)

 B.*(*(a+3)+3)

 C.*&a[3][3]

 D.(*(*(a+3))+3) √

解析:

12.以下不能正确定义二维数组的选项是______。

(分数:

2.00)

 A.inta[2][2]={{1},{2)};

 B.inta[][2]={1,2,3,4};

 C.inta[2][2]={{1},2,3}; √

 D.inta[2][]={{1,2),{3,4}};

解析:

13.已有声明“inta[5];”,则以下表达式中不能正确取得a[1]地址的是______。

(分数:

2.00)

 A.&a[1]

 B.++a

 C.&a[0]+1 √

 D.a+1

解析:

14.若有以下定义,则数值为4的表达式是______。

intw[3][4]={{0,1},{2,4},{5,8}},(*p)[4]=w;

(分数:

2.00)

 A.p[1][1] √

 B.p++,*(p+1)

 C.w[2][2]

 D.w[1]+1

解析:

15.下列一维数组中的声明中正确的是______。

(分数:

2.00)

 A.inta[];

 B.intn=10,a[n];

 C.inta[10+1]={0}; √

 D.inta[3]={1,2,3,4}

解析:

16.若已有声明“doublea[2][3]={1,2,3,4,5,6);”,则下列表达式中不能正确引用a[1][1]值的是______。

(分数:

2.00)

 A.*(a[0]+4)

 B.*(a[1]+1)

 C.*(*(a+3)+1) √

 D.*(*a+4)

解析:

17.已知某程序中有声明“inta[4],j;”及语句“for(j=0;j

(分数:

2.00)

 A.intp[4];

 B.int*p[4]; √

 C.int**p[4];

 D.int(*p)[4];

解析:

18.以下程序的输出结果是______。

#include<stdio.h>

main()

{intx[]={10,20,30,40,50,60},*p=x;

*(p+4)+=6;

printf("%d,%d",*p,*(p+4));

}

(分数:

2.00)

 A.10,46

 B.10,56 √

 C.50,46

 D.50,56

解析:

19.下面程序的输出结果是______。

#include<stdjo.b>

main()

{intx[]={10,20,30,40,50},*p=x;

printf("%d",*(p+2));

}

(分数:

2.00)

 A.10

 B.20

 C.30 √

 D.40

解析:

20.以下不能正确定义二维数组的选项是______。

(分数:

2.00)

 A.inta[2][2]={{1),{2}};

 B.inta[][2]={1,2,3,4);

 C.inta[2][2]={{1),2,3);

 D.inta[2][]={{1,2),{3,4)); √

解析:

21.以下能正确定义数组并正确赋初值的语句是______。

(分数:

2.00)

 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),{3,4}}; √

解析:

22.若有定义:

int*p[3];,则以下叙述中正确的是______。

(分数:

2.00)

 A.定义了一个基类型为int的指针变量p,该变量具有3个指针

 B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int型的指针 √

 C.定义了一个名为*p的整型数组,该数组含有3个int类型元素

 D.定义了一个可指向一维数组的指针变量p,所指一维数组具有3个int类型元素

解析:

23.设有以下定义:

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

int(*ptr)[3]=a,*p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是______。

(分数:

2.00)

 A.*((*ptr+1)[2])

 B.*(*(p+5))

 C.(*ptr+1)+2

 D.*(*(a+1)+2) √

解析:

24.设已有声明“intx[]={1,2,3,4,5,6),*p=&x[2];”,则值为3的表达式是______。

(分数:

2.00)

 A.*++p

 B.*(p++) √

 C.++*P

 D.(*p)++

解析:

25.下面程序的输出结果是______。

#include<stdio.h>

main()

{inla[]={1,3,5,7,9),y,*p=&a[2];

y=*p--;

printf("%d,%d",y,*p);}

(分数:

2.00)

 A.5,5

 B.5,4

 C.5,3 √

 D.4,4

解析:

26.执行下面程序段后m的结果为______。

staticinta[2][3]={1,2,3,4,5,6);intm,*ptr=a;

m=(*ptr)*(*(ptr+2))*(*(ptr+4));

(分数:

2.50)

 A.15 √

 B.48

 C.24

 D.60

解析:

27.已知函数fun的定义如下:

voidfun(intx[],inty),

{intk;

for(k=0;k<y;k++)

X[k]+=y;

}

若main函数中有声明“inta[1]={10}:

”及调用fun函数的语句,则正确的fum函数调用形式是______。

(分数:

2.50)

 A.fun(a[],a[0]);

 B.fun(a[0],a[0]);

 C.fun(&a[0],a[0]); √

 D.fun(a[0],&a[0]);

解析:

28.动态分配一整型数据长度的空间,使指针P指向该存储空间,则下列空缺处应填入的正确语句是______。

int*p;

P=()malloc(sizeof(int));

(分数:

2.50)

 A.int

 B.int*

 C.(*int)

 D.(int*) √

解析:

29.若有下面程序段,则正确的输出是______。

char*p="break",a[10]={"1","2","3","4");

printf("%c,%c",p[2],*(a+1));

(分数:

2.50)

 A.e,2 √

 B.e,1

 C.r,1

 D.r,2

解析:

30.下列语句不正确的是______。

(分数:

2.50)

 A.intn,a[n]; √

 B.char**p;

 C.int*ptr;

 D.int*p,x=2;p=&x;

解析:

31.已知“intc[3][4];”,则对数组元素引用正确的是______。

(分数:

2.50)

 A.c[1][4]

 B.c[1.5][0]

 C.c[1+0][0] √

 D.以上表达都错误

解析:

32.若有说明“inta[3][4];”,则a数组元素的非法引用是______。

(分数:

2.50)

 A.a[0][2*1]

 B.a[1][3]

 C.a[4-2][0]

 D.a[0][4] √

解析:

33.在下列叙述中,错误的是______。

(分数:

2.50)

 A.C语言中,二维数组或多维数组是按行存放的

 B.赋值表达式b[1][2]=a[2][3]是正确的

 C.chara[1];a[0]="A"与inta[1];a[0]="A"等价

 D.数组名后的方括号内可以为常量表达式,也可以为变量 √

解析:

34.定义结构体数组

structstu

{intnum;

charname[20];

}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU");

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

printf("%d%c",x[i].num,x[i].name[2]);

程序执行后的输出结果是______。

(分数:

2.50)

 A.2A3N4E50 √

 B.1H213U4E

 C.1A2N3E40

 D.1A2N3E40

解析:

35.下列二维数组初始化语句中,正确且与语句inta[][3]={1,2,3,4,5}等价的是______。

(分数:

2.50)

 A.inta[2][]={{1,2,3},{4,5}};

 B.inta[][3]={1,2,3,4,5,0}; √

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

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

解析:

36.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

下列所示的输入形式中正确的是(注:

口代表空格字符)______。

(分数:

2.50)

 A.10□X□20□Y<CR> √

 B.10□X20□Y<CR>

 C.10□X<CR>20Y<CR>

 D.10X<CR>200Y<CR>

解析:

37.以下语句定义正确的是______。

(分数:

2.50)

 A.inta[1][4]={1,2,3,4,5};

 B.floata[3][]={{1,2},{2,3},{3,1}};

 C.longa[2][3]={{1},{1,2},{1,2,3},{0,0}};

 D.doublea[][3]={8}; √

解析:

38.若已定义:

inta[]={0,1,2,3,4,5,6,7,8,9),*p=a,i;

其中0≤i≤9,则对a数组元素不正确的引用是______。

(分数:

2.50)

 A.a[p-a]

 B.*(&a[i])

 C.p[i]

 D.a[10] √

解析:

39.下列程序的运行结果是______。

#include<stdio.h>

voidsub(int*s,int*y)

{staticintm=4;

*y=s[0];

m++;

}

voidmain()

{inta[]={1,2,3,4,5},k;

intx;

printf("/n");

for(k=0;k<=4;k++)

{sub(a,&x);

printf("%d,",x);

}

}

(分数:

2.50)

 A.1,1,1,1,1, √

 B.1,2,3,4,5,

 C.0,0,0,0,0,

 D.4,4,4,4,4,

解析:

40.下面程序的输出结果是______。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

printf("%d/n",*(p+2));

}

(分数:

2.50)

 A.3 √

 B.4

 C.1

 D.2

解析:

41.以下程序运行后的输出结果是______。

#include<stdjo.h>

voidreverse(inta[],intn)

{inti,t;

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

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

mam()

{intb[10]={10,9,8,7,6,5,4,3,2,1);inti,s=0;

reverse(b,10);

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

s+=b[i];

printf("%d/n",s);

}

(分数:

2.50)

 A.27

 B.6 √

 C.25

 D.30

解析:

42.下述程序的输出结果是______。

#include<stdio.h>

voidmain()

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

int*p=a,**q=&p;

printf("%d,",*(p++));

printf("%d",**q);}

(分数:

2.50)

 A.2,2

 B.1,1

 C.3,4

 D.1,2 √

解析:

43.有以下程序:

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wb");

fwrite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

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

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

}

程序的运行结果是______。

(分数:

2.50)

 A.1,2,3,0,0,0,0,0,0,0,

 B.1,2,3,1,2,3,0,0,0,0,

 C.123,0,0,0,0,123,0,0,0,0,

 D.1,2,3,0,0,1,2,3,0,0, √

解析:

44.若有说明“intm[3][4]={3,9,7,8.5),(*q)[4];”和赋值语句“q=m;”,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的正确引用为______。

(分数:

2.50)

 A.(q+i)[j]

 B.*q[i][j]

 C.*(*q[i]+j)

 D.*(*(q+i)+j) √

解析:

45.以下程序输出的结果是______。

#include<stdio.h>

#include<string.h>

main()

{chara[][7]={"ABCD","EFGH","IJKL","MNOP"),k;

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

printf("%s/n",&a[k][k]);

}

A.

B.

C.

D.

(分数:

2.50)

 A.

 B.

 C.

 D. √

解析:

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

当前位置:首页 > 表格模板 > 合同协议

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

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