2006年6月份-2008年1月份《C语言等级考试》模拟试卷集成(选
择题部分)
一、选择题
1、关于C语言数据类型的叙述,正确的是(C)。
A)枚举类型不是基本类型B)数组不是构造类型
C)变量必须先定义后使用D)不允许使用空类型
2、下面关于C语言用户标识符的描述,正确的是(D)。
A)不区分大小写B)用户标识符不能描述常量
C)类型名也是用户标识符D)用户标识符可以作为变量名3、下面叙述正确的是(B)。
A)2/3与2.0/3.0等价B)(int)2.0/3与2/3等价
C)++5与6等价D)’A’与”A”等价
4、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)。
A)scanf(“%d”,&a); B)scanf(“%lf”,&a);
C)scanf(“%c”,&a);D)scanf(“%u”,&a);
5、下面叙述中,(A)不是结构化程序设计三种基本结构的共同特点。
A)先判断后执行B)单入口,单出口
C)程序中没有执行不到的语句D)无死循环
6、已知int a=3, b=5; 则表达式a && ! b 的值为(C)。
A)3 B)2 C)0 D)1
7、已知char a=’R’;则正确的赋值表达式是(A)。
A)a=(a++)%4 B)a+2=3 C)a+=256-- D)a=’\078’
8、以下的语句中,无内嵌的if语句是(B)。
A)if(x= =y) x+=y;
B)if(x>y && x!=y);
x+=y;
C)if(x!=y)
scanf(“%d”,&x);
else
scanf(“%d”,&y);
D)if(x {x++;y++;} 9、设有整型变量x,下述语句(B)不会出现死循环。 A)for( ; ; x+=1) B)for( ; (x=getchar())!=’\n’; ) ; C)while(1) {x++ ;} D)for(x=10; ;x--) ; 10、下列数组声明中,正确的是(A)。 A)int a[5]={0}; B)int a[]={0 1 2}; C)int a[5]=0; D)int a[] ; 11、以下数组定义中,正确的是(D)。 A)int a[2][3]={1,2,3,4,5,6,7}; B)int a[][]={{1,2,3},{4,5,6},{7,8,9}}; C)int a[2][]={1,2,3,4,5,6}; D)int a[][4]={6}; 12、设有如下数组定义: char str[8]={“FuJian”}; 则分配给数组str的存储空间是(C)字节。A)6 B)7 C)8 D)9 13、以下程序的运行结果是(A)。 int fun(int array[4][4]) {int j; for(j=0;j<4;j++) printf(“%2d”,array[2][j]); printf(“\n”); } main() {int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); } A)2 0 0 5 B)1 0 0 4 C)0 1 2 0 D)0 4 5 0 14、若有以下宏定义, #define MOD(x,y) x%y 则执行以下程序段后,z的值是(D)。 int z,a=15,b=100; z=MOD(b,a); A)100 B)15 C)11 D)10 15、对于基类型相同的两个指针变量之间,不能进行的运算是(C)。A)< B)= C)+ D)- 16、若函数fun的函数头为: