20156年广西区计算机等级考试二级c语言笔试试题及答案
2006年广西区计算机等级考试二级C语言笔试试题及答案
计算机等级考试 更新:2008-11-21 编辑:云和山的彼端
第一卷(共70分)
第一部分:基础知识(20题,共40分) 1、一个C程序总是从( )开始执行。 A(程序的第一条执行语句
B(主函数
C(子程序
D(主程序
2、在C语言中,int, char和short int三种类型变量所占用的内存大小是( )。
A(均为2个字节
B(由用户自己定义
C(由所用机器的字长决定
D(是任意的
3、若有以下类型说明语句:
char a; int b; float c; short int d;
则表达式(c*b+a)*d的结果类型是( )。 A(char
B(int
C(double
D(float
4、若有说明语句:
int w=1,x=2,y=3,z=4; 则表达试w>x?w:z>y?z:x的值是( ) A(4
B(3
C(2
D(1
5、设x,y 为int型变量,则执行下列语句后,y的值是( )
x=5;
y=x++*x++;
y=--y*--y;
A(529
B(2401
C(1209
D(625
6、C语言中函数返回值的类型是( ) A(return语句中的表达式类型
B(调用函数的类型
C(总是int型
D(定义函数时所指定的函数类型
7、凡是在函数中未指定存储类别的变量,其隐含的存储类别是( ) A(自动
B(静态
C(外部
D(寄存器
8、在源程序的一个文件中定义的全局变量的作用域是( ) A(本文件的全部范围
B(该程序的全部范围
C(一个函数的范围
D(从定义该变量的位置开始至该文件的结束
9、以下不正确的描述是( )
A(break语句只能用于循环语句和switch语句
B(在switch语句中,break语句的作用也可用continue语句来替代 C(在循环语句中,使用continue语句是为了结束本次循环,而不是终止循环的执行
D(在循环语句中,使用break语句是为了使流程跳出循环体,提前结束循环
10、若有宏定义 #define mod(x,y) x%y 则执行以下程序段后,输出为( )
int z,a=15,b=100;
z=mod(b,a);
printf(“%d\n”,z++);
A(11
B(10
C(6
D(宏定义不合法
11、若有说明语句: char s1[4]=”12”; char *ptr; 则执行下列语句后输出为( )
ptr=s1;
printf(“%c\n”,*(ptr+1));
A(字符?2?
B(整数2
C(字符串“12”
D(字符?1?
12、若有以下语句
int x[]={2,4,6,8,10,12},*ptr; ptr=x;
则对数组元素的正确引用为( )
A(x
B(x[6]
C(*(--ptr)
D( *(++ptr) 13、若有说明语句:int i,x[3][4];则不能实现将x[1][1]的值赋给变量i的语句是( )
A(i=*(*(x+1)+1) B(i=*(*(x+1)) C(i=x[1][1] D(i=*(x[1]+1) 14、若已定义了如下的共用体类型变量x,则x所占用的字节数(在16位PC机条件下)为
( )
union data{ int i;
char ch;
double f;
}x;
A(7
B(11
C(8
D(10
15、如下说明语句:
enum A {A0=1,A1=3,A2,A3,A4,A5};
enum A B;
执行:
B=A3;
printf(“%d\n”,B);
输出的是( )
A(5
B(3
C(2
D(编译时出错
16、while(!x)中的条件表达式(!x)与下面条件( )等价。
A(x==0
B(x==1
C(x==0|| x==1 D(x!=0
17、有以下说明语句,则对结构体变量s的成员num的不正确引用是( )
struct student{ int num;
int age;
}s,*p;
A(s.num
B(*p.num
C(p->num
D((*p).num
18、说明语句int (*p)[10]定义了p是( ) A(指针数组
B(指向数组的指针
C(返回值为整型的函数指针
D(指向整型数的指针
19、下面对文件操作函数描述正确全面的是( ) int n_read=read(int fd,char *buf,int n);
从文件fd中读n个字节存放在buf中
从文件fd中读n个整数存