荟萃馆

位置:首页 > 计算机 > C语言

2017年计算机二级C语言备考习题

C语言8.76K

以下是本站小编为大家整理的2017年计算机二级C语言备考习题,大家可以来做一做,巩固一下自己的知识。

2017年计算机二级C语言备考习题

1.下列选项中非法的字符常量是(  )。

A.’t’

B.’39’

C.’,’

D.’n ’

2.以下程序的输出结果是(  )。

main(  )

{ char ch[3][4]={"123","456","78"),*p[3];int i;

for(i=0;i<3;i++)p[i]=ch[i];

for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780

B.123 456 780

C.12345678

D.147

3.以下程序的输出结果是(  )。

main(  )

{ char w[][10]={"ABCD","EFGH","IJKL","

MNOP"),K;

for(k=1;k<3;k++)printf("%sn",w[k]);

FGH

KL

EFG

U

JK

O

UKL

4.以下程序的输出结果是(  )。

union myun

{ struct

{int x,y,z;)u;

int k:

}a;

main(  )

{ a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf(%dn",a.u.x);

}

A.4

B.5

C.6

D.0

5.若有以下定义和语句:“double r=99,*p=&r;*P =r;”,则以下正确的叙述是(  )。

A.两个*p含义相同,都说明给指针变量p赋值

B.在“double r=99,*p=&r;”中,把r的地址赋值给了P所指的存储单元

c.语句“*p=r;”把变量r的值赋给指针变量P

D.语句“*p=r;”取变量r的值放回r中

6.以下程序的输出结果是(  )。

main(  )

{int x=0.5;char z=’a’;

printf("%dn",(x&1)&&(z<’2’));}

A.0

B.1

C.2

D.3

7.若希望下列的`程序运行后输出25,程序空白处的正确选项是(  )。

main(  )

{int id=50,a[]=(7,4,10,5,8};

for( )

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++i

B.i=l;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

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

A.i*m+j-1

B.i*m+j

C.J*m+i

D.i*m+j+1

9.下列程序的输出结果是(  )。

#include

int fun(int a)

{int b=0;

static int c=4:

a=c++:b++;

return(a):

main(  )

{int a=2,i,c;

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

c=f(a+1):

printf("%dn",c);

}

A.4

B.7

C.6

D.5

10.定义结构体数组:

struct stu

{int num;

char nameE20];

}X[5]={1,"LI",2,"ZHAO",3,"WANG",4," ZHANG",5,"LIU");

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

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

以上程序段的输出结果为(  )。

A.2A3N4A5U

B.112A3H4I

C.1A2N3A4U

D.2H3A4H5I

  参考答案及解析:

1.B。【解析】水平制表符中,’t’表示的是横向跳若干格;选项B中,’39’错误,’39 ’是八进制形式表的字符,最大数为7,但其中出现’ 9’,’,’是字符逗号;选项D中,’n ’表示的是换行。

2.B。【解析】第一个for循环的作用是让p指向每行的首地址,第二个for循环的作用是把它指向的字符串输出,故选择B选项。

3.D。【解析】当k=1时,循环成立,输出w[l]的数组即EFGH,接着执行k++后k为2;当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;当k= 3时,循环不成立,退出。

4.D。【解析】因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

5.B。【解析】在定义*p=&r时,是表示r的地址赋给了p所指的存储单元,因此选项B正确。

6.B。【解析】(x&1)&&(z<’ 2 ’)=(0.5&1)&&(’a’ <’z’)=1&&1=1,故选择B选项。

7.D。【解析】要想使程序输出25,则j-40=25,j=65,而j初值是50,所以填入for循环的语句,使引用的数组元素累加65-50=15即可,D选项中,i下标从0开始,i=2指向第3个数50+a[2]=50+10=60,继续循环60+a[3]= 60+5=65,此时i=4跳出,循环结束。

8.B。【解析】二维数组的元素可以看成是按矩阵形式存放的,数组第一维的下标是i,说明它前面还有i行,有i* m个元素,数组第二维的下标是j,说明它前面还有j列,有j 个元素,所以共有i*m+j个元素。

9.D。【解析】static变量是局部度量,函数无法修改,所以当i=1时,第2次进入f函数时c=5,所以最终main(  ) 函数中C的值为5。

10.A。【解析】本题主要考查结构体数组的使用。x [i]为结构体x[i]中的hum成员,x[i][2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[i],x[1][2]的值;第2次循环,i=2,输出x[2],x[2][2]的值,即3N;第3 次循环,i=3,输出X[3],x[3][2]的值,即4A;第4 次循环,i=4,输出x[4],x[4][2]的值,即5U。