首页 > 全部 > 二级C语言 > 国家二级C语言(数组)机试模拟试卷3

国家二级C语言(数组)机试模拟试卷3

本单篇文档共11150字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 5522人下载
价格: 1.00 原价:¥9.00
收藏

国家二级C语言(数组)机试模拟试卷3

选择题

1.若有定义:int x[10],*pt=x;,则对x数组元素的正确引用是( )。(D)

A. pt+3

B. &x[10]

C. *(pt+10)

D. *(x+3)

解析:没有A选项的引用形式。*与&放在一起作用抵消,所以B选项错误。最大只能引用到x[9],而*(pt+i)表示引用指针pt所指元素后的第i个元素,所以C选项错误,最大只能为*(pt+9)。D选项正确。

2.有以下程序:

#include

main()

{

int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

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

s+=*(t+i);

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

}

程序的运行结果是( )。(B)

A. 20

B. 25

C. 45

D. 36

解析:统计1~9这9个数中的奇数和,此题考查指向数组的指针。C语言规定数组名代表数组的首地址,也就是第一个元素的地址,因此*(t+i)代表数组的第i+1个元素。程序的运行结果是1+2+3+4+5+6+7+8+9=25。

3.有以下程序:

#include

main()

{

int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

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

c[s[i]]++;

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

prinff(“%d”,c[i]);

prinff(“\n”);

}

程序的运行结果是( )。(B)

A. 2 3 4 4

B. 4 3 3 2

C. 1 2 3 4

D. 1 1 2 3

解析:在for(i=0;i<12;i++)c[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4、3、3、2,因此B选项正确。

4.下列定义数组的语句中正确的是( )。(A)

A. #define N 10

int x[N];

B. int N=10;

int x[N];

C. int x[0..10];

D. int x[];

解析:数组说明的一般形式为:类型说明符数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。C选项中数组长度是一串非法的数字。定义数组时必须为其指明长度,D选项中的数组长度为空,所以非法。

5.下列选项中能正确定义数组的语句是( )。(D)

A. int num[0…2008];

int num[N]

B. int num[];

int num[N];

C. int N=2008;

D. #define N 2008

解析:C语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中的数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C选项错误,N为变量,不能用来定义数组大小。D选项正确。

6.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )。( B)

A. #define n 5

int a[2,*n];

B. int n=10,a[n];

int a[N];

C. int a[5+5];

D. #define N 10

解析:一维数组的定义方式为:类型说明符数组名[常量表达式];注意定义数组时,元素个数不能是变量,因此应该选择B选项。

7.设有定义:double a[10],*s=a;,以下能够代表数组元素a[3]的是( )。(B)

A. (*s)[3]

B. *(s+3)

C. *s[3]

D. *s+3

解析:指针的赋值首先基类型必须一致,s二维数组名,是二维数组的首地址,其基类型是一个具有10个元素的字符数组。p是一个字符指针变量,其基类型是一个字符,k是一个行指针,其基类型是具有3个元素的字符型数组。所以A、C、D选项中两项的基类型不一致。而B选项,s[0]是二维数组s的第一个元素,其代表第一行元素构成的数组的首地址,相当于一维数组的数组名,其基类型是一个字符类型,和p基类型一致,因此B选项正确。

8.有以下程序:

#include

#define N 4

void fun(int a[][N],int b[]){

int i;

for(i=0;i<N;i++)b[i]=a[i][i];

}

main()

{

int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},Y[N],i;

fun(X,y);

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

prinff(“%d,”,Y[i]);

prinff(“\n”);

}

程序的运行结果是( )。(A)

A. 1,0,7,0,

B. 1,2,3,4,

C. 1,4,5,9,

D. 3,4,8,10,

解析:该程序首先在定义变量时,对二维数组x[][N]进行赋值操作;调用函数fun,函数fun的功能是将二维数组中的a[0][0]、a[1][1]、a[2][2]和a[3][3]赋值给一维数组,最后将一维数组1,0,7,0,输出。

9.有以下程序:

#include

main()

{

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

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

prinff(“%d”,t[2一i][i]);

}

程序的运行结果是( )。(A)

A. 3 5 7

B. 7 5 3

C. 3 6 9

D. 7 5 l

解析:二维数组t[][3]实际上指t[3][3]={{9,8,7},{6,5,4},{3,2,1}},通过循环语句for语句可以得到i=0,t[2][0]=3、i=1,t[1][1]=5、i=2,t[0][2]=7、i=3时循环结束,即t[2][0]=3、t[1][1]=5、t[0][2]=7,因此A选项正确。

10.有以下程序:

#include

main()

{

int a[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;

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

for(k=i+1;k<4;k++)<

本文档预览:3600字符,共11150字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言(数组)机试模拟试卷3

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号