计算机等级考试二级C语言模拟题.docx
《计算机等级考试二级C语言模拟题.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C语言模拟题.docx(21页珍藏版)》请在冰豆网上搜索。
计算机等级考试二级C语言模拟题
心之所向,所向披靡
1下面叙述正确的是()。
A.每行最多只能写两条语句
B.程序中必需含有自定义函数
C.main()函数必须位于源程序文件的开头
D.所有语句都必须以分号";"结束
2下面叙述错误的是()。
A.若一条语句较长,可分写在下一行或多行上
B.构成C语言源程序的基本单位是语句
C.C源程序中大、小写字母是有区别的
D.一个C源程序可由一个或多个函数组成3()是关于C语言数据类型的正确叙述。
A.枚举类型不是基本类型
B.数组不是构造类型
C.变量使用前应定义相应的数据类型
D.不允许使用空类型
4C源程序中main()函数的位置()。
A.必须位于程序的最前面
B.必须在系统库函数后面
C.可以在自定义函数后面
D.必须在自定义函数前面
5C语言的函数体由()括起来。
A.()
B.{}
C.<>
D.[]
6下面叙述错误的是()。
A.C源程序可由一个或多个函数组成
B.C源程序必须包含一个main()函数
C.
main()函数结束
一个C源程序的执行是从main()函数开始,直到
D.注释说明部分只能位于C源程序的最前面
7()为正确的用户标识符。
A.3_row
B.max_at
C.union
D.min-5
8C语言的基本数据类型包括()。
A.整型、实型、字符型
B.整型、实型、空类型
C.整型、字符型、指针型
D.整型、实型、逻辑型
9()为合法的常量。
A.5,326
B.3.21E-6.5
C.'b_k'
D.1.23E+8
10()为正确的变量名。
A.5_pro
B.case
C.else
D.pro_5
11()为正确的字符常量。
A.'bcd'
B.'\084'
C.'@'
D.'165'
12()为非法的字符串常量。
A.'123'
B."case"
C."056"
D.
则()为正确的赋值表达式。
""
13若有定义:
intb=-15;
A.b+=b*3
B.b=*5
C.
*b=6
B.3
C.5
D.5
15若有定义:
A.0
inta,b=5;
语句a=(b/2)+b%2;运行后,a的值为(
)。
B.3
C.4
D.2
16()语句符合C语言语法。
A.inta=2,b+=a;
B.inta=b=2,c=5;
C.floatx=2.3,b,c;
D.floatx=3.2,inti,j=6;
17若有定义:
inta=3;语句a+=a-=a*a;运行后,a的值为()。
A.0
B.-3
C.-12
D.-6
18若有定义intx=1,y=2,n=3;则()为正确的表达式。
A.x=y*3,y=(x+n)/y
B.x=ny
C.float(y/n)
D.(x+y)(y+n)
19下面叙述正确的是()。
A.2/3与2%3等价
B.5/(int)4.0与5/4等价
C.++2与3等价
D.++2与--3等价
20下面叙述错误的是()。
A.算术运算符中只有"*"、"/"优先级高于关系运算符B.模运算符"%"是C语言基本
的算术运算符
C.自加和自减运算符只能用于变量,而不能用于常量或表达式D.算术运算符中不包含"="运算符
21下面叙述正确的是()。
A.C语言中整型与字符型变量的混合运算表达式的结果是整型
B.(3+9)++是正确表达式
C.模运算符"%"两边运算数的数据类型是任意的
D."abc"+"xxx"是正确表达式
22若有定义:
inti=3,j=6;则表达式(--i)*(j++)的值为()。
A.18
B.15
C.12
D.10
23若有定义:
inta,b=6;语句a=--b;运行后,a、b的值分别是()。
A.56
B.65
C.55
D.66
24若有定义:
intx,y,z;语句x=(y=z=3,++y,z+=y);运行后,x的值为()。
A.6
B.8
C.7
D.3
25若有定义floatx;要从键盘输入数据6.02赋给x,则应选用()语句。
A.scanf("%8.2f",&x);
B.scanf("%1.2f",&x);
C.scanf("%4.2f",&x);
D.scanf("%f",&x);
26只能向终端输出一个字符的是()。
A.printf()函数
B.scanf()函数
C.getchar()函数
D.putchar()函数
27若有语句inta;charc;scanf("%3d%c",&a,&c);为将整数135赋给a,字符'6'赋给c,
正确的数据输入方式是()。
(说明:
代表换行,__代表空格)
A.135__6
B.1356
C.1356
D.135__6__
28getchar()函数的功能是获取终端输入的()。
A.多个字符
B.一个字符
C.一个实型变量值
D.一个整型变量表达式
29若有定义inta=8,b=5;要实现输出形式为:
8*5=40,正确的printf()函数调用语句是()。
A.printf("a*b=%d\n",a*b);
B.printf("a*b=a*b\n");
C.printf("%d*%d=a*b\n",a,b);
D.printf("%d*%d=%d\n",a,b,a*b);
30若有定义:
charc1='A',c2='B';语句printf("%d+%d=%d",c1,c2,c1+c2);运行后的结果为
()。
(说明:
'A'的ASCII码的十进制值为65)
A.A+B=131
B.65+66=AB
C.A+B=AB
D.65+66=131
31x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为()。
A.-20B.x>-20&&x<-5
C.!
(x>-20)&&!
(x<-5)
D.-532若有定义:
inta;则表达式()不能用来判断a值为奇数是“真”,偶数是“假”。
A.a%2==1
B.!
(a%2)
C.a%2
D.!
(a%2==0)
33若有定义:
inta=1,b=2,c=3,d=4,t=2,k=2;语句(t=a
A.2
B.1
C.0
D.-1
34若有定义:
intx=1,y=2,z=3;则表达式()的值为0。
A.!
((xB.x>y||xC.x<=y
D.x||(y+z&&y-z)
35若有定义:
inta=3,b=5,c=8;则表达式!
(a-b)||(c-b)的值为()。
A.1
B.0
C.2
D.3
36若有定义:
inta;且表达式!
a的值为0,则表达式()的值为1。
A.a!
=0
B.a==0
C.a=0
D.!
(a<0||a>0)
37下列运算符中优先级最低的是()。
A.=
B.!
C.>
D.*
(注:
“!
”>算术运算符>关系运算符>“&&”>“||”>赋值运算符)
38若有定义:
floatx=3.5,y=3.6;则表达式()的值为6。
A.(int)x+(int)y
B.x+y
C.(int)(x+y)
D.int(x+y)
39
ASCII码的十
k、t的值分别
若有定义:
intx;charc='A';则正确的赋值表达式是()。
(说明:
'A'的进制值为65,'a'的ASCII码的十进制值为97)
A.x=c+32
B.x=c+'ABC'
C.x=c+'CBA'
D.x='ABC'
40若有定义:
floatx=3.5,y=5.5;则表达式()的值为2。
A.(x+y)%7
B.(int)(x+y)%7
C.int(x+y)%7
D.(int)x+y%7
41若有定义:
inta=6,b=7,k=0,t=1;语句(k=a
A.00
B.11
C.01
D.10
42以下程序段运行时,若从键盘输入
5,则运行结果是(
)。
inta,y=10;scanf("%d",&a);
if(a>10)y=a+6;printf("%d\n",y+a);
A.10
B.11
C.16
D.15
43以下程序的运行结果是()。
voidmain(){inta,b=2,c=6;a=3;
if(a>6)a=a+b;.
elseif(a==6)b=a+c;
elsea=b+c;
printf("%d\n",a);.
}
A.5
B.8
C.6
D.9
44若有定义:
intx,a;赋值语句a=(x%3==0)?
0:
1;与()语句不等价。
A.if(x%3!
=0)a=1;elsea=0;
B.if(x%3)a=0;elsea=1;
C.if(x%3==0)a=0;elsea=1;
D.if(!
(x%3==0))a=1;elsea=0;
45以下程序段的运行结果是()。
ints=15;switch(s/4){case1:
printf("One");
case2:
printf("Two");
case3:
printf("Three");
default:
printf("Over");
}
A.Three
B.TwoOver
C.ThreeOver
D.OneOver
46以下程序段的运行结果是()。
ints=15;
switch(s/4)
{
default:
printf("Over");
case1:
printf("One");break;
case2:
printf("Two");
}
A.Two
B.OverTwo
C.OverOne
D.One
47以下程序段运行后x的值为()。
inta=3,b=6,x;x=(a==b)?
a++:
--b;
A.4
B.3
C.6
D.5
48若有定义:
inti,x;()不是死循环。
A.for(x=5;x>0;x--);
B.while(x=1);
C.for(i=10;;i--);
D.for(;;i+=2);
49下面叙述正确的是()。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体可包含多条语句,但必须用花括号{}括起来
50以下程序段运行后x的值为()。
inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2;
A.14
B.12
C.8
D.10
51以下程序段运行后x的值为()。
inti=0,x=2;
while(i++<=5)
{x+=2;}
A.10
B.14
C.12
D.8
52若有定义:
inti,x=0;语句for(i=1;i<=3;i++)x+=2;与下列()程序段不等价。
A.i=1;for(;i<=3;i++)x+=2;
B.i=1;for(;;i++)x+=2;
C.for(i=1;i<=3;){x+=2;i++;}
D.i=1;for(;i<=3;){x+=2;i++;}
53以下程序段运行后x的值为()。
inti=0,x=0;for(;i<=5;i++,i++){x+=3;}
A.15
B.6
C.12
D.9
54若有定义:
inta[10],i=2;能正确引用a数组元素的是()。
A.a[9+i]
B.a[10-i]
C.a[10]
D.a(7)
55()是正确的数组定义。
A.intarr[10];
B.intn=5;intarr[n];
C.intN=5,arr[N];
D.intn;n=5;intarr[n];
56若有定义:
intarr[15],n=5;无法正确引用arr数组元素的是()。
A.arr[0]
B.arr[n]
C.arr[10+n]
D.arr[15-n]
57以下程序段运行后x的值为()。
inta[8]={1,2,3,4,5,6,7,8},i,x=0;for(i=0;i<8;i++,i++)x=x+a[i];
A.36
B.16
C.20
D.18
58以下程序段运行后x的值为()。
inta[8]={1,2,3,4,5,6,7,8},i,x=0;for(i=1;i<8;i++,i++)x=x+a[i];
A.20
B.16
C.18
D.36
59下面叙述错误的是()。
A.数组中每一个元素都属于同一个数据类型
B.C语言数组名称是数组在内存中的首地址
C.C语言数组长度在定义数组时可不作确定
D.C语言规定可逐个引用数组元素但不能一次引用整个数组
60以下程序段的运行结果是()。
intt[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf("%d\n",t[1][1]);
A.5
B.3
C.4
D.1
61以下程序段运行后s的值是()。
inta[3][3]={1,2,3,1,2,3,1,2,3};
inti,j,s=0;
for(i=0;i<3;i++)for(j=i;j<3;j++)s+=a[i][j];
A.13
B.14
C.15
D.12
62以下()对二维数组arr的初始化是错误的。
A.intarr[2][3]={{1,2},{3,4}};
B.intarr[][3]={1,2,3,4,5};
C.intarr[2][3]={{1,2},{3,4},{5,6}};
D.intarr[2][3]={{1},{3,4,5}};
63若有定义:
inta[3][4]={{1,2},{3,4},{5,6,7}};,则a[1][1]的值为()
A.4
B.2
C.1
D.3
64若有定义:
inta[3][2];,则表达式&a[2][1]-a的值为()。
A.5
B.4
C.3
D.2
65以下程序段运行后x的值为()。
inti=0,x=0;inta[3][3]={1,2,3,4,5,6,7,8,9};for(;i<3;i++)x+=a[i][i];
A.0
B.12
C.15
D.18
66若有定义:
charstr1[10],str2[10]="Fujian";,能将字符串"Fujian"赋给数组str1的正确语句是()。
A.str1="Fujian";
B.strcpy(str1,str2);
C.strcpy(str2,str1);
D.strcopy(str1,str2);
67以下程序段的运行结果是()。
charstr[3][2]={'a','b','c','\0','e','f'};printf("%s",str[0]);
A.a
B.abcef
C.abc\0ef
D.abc
68以下程序段的运行结果是()。
charstr[]={"FuJian"};printf("%d",strlen(str));1
A.9
B.7
C.6
D.8
69以下程序段的运行结果是()。
chara[]="abcdef";charb[]="xyz";strcpy(a,b);printf("%c",a[2]);
A.c
B.z
C.b
D.y
70以下程序段的运行结果是()。
chara[]="abc";charb[]="xyz";charc[10];strcpy(c,a);strcat(c,b);printf("%s",c);
A.abc
B.abcxyz
C.xyz
D.xyzabc
71以下程序段运行后a的值为()。
inta=2;a=strcmp("miss","miss");
A.1
B.0
C.-1
D.true
72C语言中,数组名作为函数调用的实参时,下面叙述正确的是()。
A.传递给形参的是数组元素的个数
B.传递给形参的是数组第一个元素的值
C.
传递给形参的是数组中全部元素的值
B.104
C.012
D.123
74C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是()。
A.void
B.long
C.int
D.double
75以下程序的运行结果是()。
intf(intc){c+=2;returnc;}main(){inta=2,c=5;a=f(a);printf("%d%d\n",a,c);}
A.44
B.45
C.24
D.25
76以下程序的运行结果是(
)。
int
a=2,b=3;
intmin(inta,intb)
{int
c=a
a:
b;return(c);}
main()
{
inta=4;
printf("%d",min(a,b));
}
A.2,3
B.2
C.3
D.4
77以下程序的运行结果是(
)。
fun()
{static
inta=0;a++;
printf("%d
B.预处理命令行都必须以“#”开头
C.预处理命令行必须以分号结束
D.C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
80下面叙述正确的是()。
A.宏展开不占用运行时间,只占用编译时间
B.预处理命令也是C语句,必须以分号结束
C.一个源程序只能有一个预编译处理命令行
D.宏名必须用大写字母表示
81下面叙述错误的是()。
A.“#inclue”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令
B.“#definePRICE30”命令的作用是定义一个与30等价的符号常量PRICE
C.C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
D.宏定义也是C语句,必须在行末加分号
82若有定义:
#definePI3,则表达式PI*2*2的值为()。
A.12
B.4
C.322
D.不确定
83若有定义:
#defineF2+3,则表达式F*F的值为()。
A.25
B.13
C.11
D.17
84C语言中,二维数组元素在内存中的存放顺序是()。
A.按行存放
B.按列存放
C.由用户自己定义
D.随机存放
85若有定义:
floatx=2,y;inta=3;语句y=1*(x+a)/3;运行后,y的值为()。
A.2.0
B.0
C.1.0
D.1.666667
答案
1
D
2B
3C
4C
5B
6D
7B
8A
9D
10D
11
C
12A
13A
14C
15B
16C
17C
18A
19B
20A
21A
22C
23C
24C
25D
26D
27B
28B
29D
30D
31
B
32B
33A
34A
35A
36A
37A
38A
39A
40B
41
D
42D
43B
44B
45C
46C
47D
48A
49D
50B
51
B
52B
53D
54B
55A
56C
57B
58A
59C
60A
61
B
62C
63A
64A
65C
66B
67D
68C
69B
70B
71
B
72D
73A
74C
75B
76C
77B
78C
79C
80A
81
D
82A
83C
84A
85D