2017年计算机二级C语言备考习题
以下是百分网小编为大家整理的2017年计算机二级C语言备考习题,大家可以来做一做,巩固一下自己的知识。
1.下列选项中非法的字符常量是( )。
A.’\t’
B.’\039’
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("%s\n",w[k]);
A.ABCD
FGH
KL
B.ABCD
EFG
U
C.EFG
JK
O
D.EFGH
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(%d\n",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("%d\n",(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("%d\n",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].num,x[i].name[2]);
以上程序段的输出结果为( )。
A.2A3N4A5U
B.112A3H4I
C.1A2N3A4U
D.2H3A4H5I
参考答案及解析:
1.B。【解析】水平制表符中,’\t’表示的是横向跳若干格;选项B中,’\039’错误,’\039 ’是八进制形式表的字符,最大数为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].num为结构体x[i]中的hum成员,x[i].num[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[i].num,x[1].name[2]的值;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第3 次循环,i=3,输出X[3].hum,x[3].name[2]的值,即4A;第4 次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。
【计算机二级C语言备考习题】相关文章:
2017计算机二级C语言备考习题及答案03-18
计算机二级C语言备考习题及答案201712-05
2017计算机二级C语言考点习题12-04
2017年计算机二级考试C语言备考练习题03-24
2024计算机二级C语言备考提分题01-02
全国计算机二级《C语言》备考复习试题12-08