四川省计算机二级第三十四次等级考试
二级(C与C++语言)
一、单项选择题 ( 每小题1分,共10分 )
1. 以下合法的字符常量是( B ) 。(考点:常量)
(A) “a”(B) ‘\72’(C) ‘\0x12’(D) ‘ab’
2. 以下程序的结果是( B)。(考点:位运算)
void main()
{ unsigned int a=3,b=10;
printf("%d \n",a<<2|b>>1);
}
(A) 1(B) 13 (C) 12(D) 5
3. 以下程序的输出结果是( D )。(考点:逻辑运算)
void main()
{ int a=-1,b=4,k;
k = ( ++a < 0 ) && !( b-- <= 0 );
printf("%d %d %d\n",k,a,b);
}
(A) 1 0 4(B) 1 0 3(C) 0 0 3(D)0 0 4
4. 以下程序运行后的输出结果是( C )。(考点:字符数组及字符串处理函数)
# include
void main()
{char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcpy(p+strlen(q),r);
strcat(p,q);
printf("%d %d\n",sizeof(p),strlen(p));
}
(A) 20 9(B) 9 9(C) 20 11(D) 11 11
5. 下列对C语言字符数组的描述中错误的是( C )。(考点:字符数组)
(A)字符数组可以存放字符串
(B)字符数组的字符串可以整体输入、输出
(C)可以在程序中用赋值运算符“=”对字符数组进行整体赋值
(D)不可以用关系运算符对字符数组中的字符串进行比较
6. 下述程序的输出结果是( D )。(考点:条件运算)
# include
void main()
{int a[]={7,4,6,3,10};
int m=10,k,*ptr=&a[0];
for(k=0;k<5;k++)
m= *(ptr+k)
printf("%d\n",m);
}
(A) 10(B) 4(C) 6(D) 3
7.有如下程序员 (考点:if~else嵌套)
# include
void main()
{int a=2,b=-1,c=2;
if(a
if(b<0) c=0;
else c++;
printf("%d\n",c);
该程序的输出结果是( C )
(A) 0(B) 1(C) 2(D) 3
8. 根据下面的结构体类型及其结构数组的定义,值等于’A’的表达式是(D )(考点:结构体)
struct season
{char name[10];
int day;
};
struct season s[4]={"Spring",90,"Summer",91,"Autumn",92,"Winter",92};
(A) s[3].name[0](B)s[3].name(C) s[2].name(D) s[2].name[0]
9. 运行以下程序的输出结果为( B )。(考点:宏定义)
# define R 1+2
# define S(r) r*r
# define V(r) S(r)*R
# include
void main()
{int r1=1+2;
printf("%d",V(r1));
}
(A) 27(B) 11(C) 9(D) 7
10. 以下不能对二维数组a进行正确初始化的语句是 ( A ) 。(考点:二维数组赋初值)
(A) int a[2][3]={{1,2},{3,4},{5,6}};(B) int a[][3]={{1,2},{0}};
(C) int a[2][3]={0};(D) int a[][3]={1,2,3,4,5,6}
二、读程序回答问题 ( 每个选择3分,共45分 )
1. 读下面的程序并回答问题。(考点:switch语句嵌套)
# include
void main()
{int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0: a++;break;