B.if(a>3)x=3;elseif(a<2)x=2;elsex=1;
C.if(a<3)x=1;elseif(a<2)x=2;if(a,1)x=3;
D.if(a
30、已有定义:
intx=3,y=4,z=5;,则表达式!
(x+y)+z-1&&y+z/2的值是D。
A.6B.0C.2
解析:
算术运算高于逻辑运算,所以原式相当于!
(x+y)+(z-1)&&(y+z/2)
31、以下运算符中优先级最低的运算符。
A.&&B.&C.!
=D.||
32、下列表达式中,B不满足“当x的值为偶数时值为真,为奇数时值为假“的要求。
A.x%2==0B.!
x%2!
=0C.(x/2*2-x)==0D.!
(x%2)
解析:
!
运算高于算术运算和关系运算,所以!
x%2!
=0相当于(!
x)%2!
=0,与要求不符。
33、在C语言中,要求运算数必须是整型的运算符是D。
A./B.++C.!
=D.%
34、设有说明:
:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为D
A.floatB.charC.intD.double
35下面正确的字符常量是C。
A.“c”B.‘\\’’C.‘’D.‘KK’
36、C语言中while和do—while循环的主要区别是A
A、do—while的循环体至少无条件执行一次
B、While的循环控制条件比do—while的循环控制条件严格
C、do—while允许从外部转到循环体内
D、do—while循环体不能是复合语句
37、若i为整型变量,则以下循环执行次数是B
for(i=2;i==0;)printf(“%d”,i--)
A、无限次B、0次C、1次D、2次
38、执行下面程序后的输出为D
#include
main()
{inty=10;
while(y--);
printf(“y=%d\n”,y) ;
}
A、y=0B、while构成无限循环C、y=1D、y=-1
39、下列程序中,判断i>j共执行了D次。
voidmain()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j){printf(“%d”,s);break;}
s+=i;
}
}
A.4B.7C.5
40、C语言规定,在一个源程序中,main函数的位置_C__.
A.必须在最开始B.必须在系统调用的库函数的后面
C.可以任意D.必须在最后
41、以下程序执行后的输出结果是B。
voidmain()
{inti=0,a=0;
while(i<20)
{for(;;){if((i%10)==0)break;elsei--;}
i+=11;a+=i;
}
Printf(“%d”,a);
}
A.21B.32C
42、设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为B。
A、0~255B、0~32767C、0~65535D、-32768~32767
43、逻辑运算的结果_A。
A、只能是0和1B、只能是0或非0正数
C、只能是整型或字符型数据D、可以是任何类型的数据
44、以下关于C语言中数组的描述正确的是C。
A.数组的大小是固定的,但可以有不同的类型的数组元素。
B.数组的大小是可变的,但所有数组元素的类型必须相同。
C.数组的大小是固定的,所有数组元素的类型必须相同。
D.数组的大小是可变的,可以有不同的类型的数组元素。
45、以下一维数组a的正确定义是D。
A.inta(10);
B.intn=10,a[n];
C.intn;scanf(“%d”,&n);inta[n];
D.#defineSIZE10
inta[SIZE];
46、在定义inta[10];之后,对a的引用正确的是D。
A.a[10]B.a[6.3]C.a(6)D.a[10-10]
47、以下对二维数组a进行不正确初始化的是D。
A.inta[2][3]={0};
B.inta[][3]={{3,2,1},{1,2,3}};
C.inta[2][3]={{3,2,1},{1,2,3}};
D.inta[][]={{3,2,1},{1,2,3}};
48、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][1]的值是D。
A.4B.1C.2D.5
49、为了判断两个字符串s1和s2是否相等,应当使用D。
A.if(s1==s2)
B.if(s1=s2)
C.if(strcpy(s1,s2))
D.if(strcmp(s1,s2)==0)
50、在C语言中,引用数组元素时,其数组下标的数据类型允许是B。
A、整型常量B、整型表达式
C、整型变量D、任何类型的表达式
三、判断题(正确的填T,错误的填F)
1.在C语言中,逗号运算符的优先级最低。
(T)
2.在C语言可执行程序的开始执行点是程序中第一个函数。
(F)
3.“5ch”是合法的变量名。
(F)
4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
(T)
5.当输入数据时,必须指明变量的地址,如scanf("%f",&f)(T)
6.表达式i++与++i在任何场合功能完全相同。
(F)
7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
(T)
8.C语言程序中,语句以逗号结尾。
(F)
9.在C程序中,APH和aph代表不同的变量。
(T)
10.a-=7等价于a=a-7。
(T)
11.printf函数中用到格式符“%5s”,其中数字5表示输出的字符串占5列。
如果字符串长度大于5,则输出按原字符串长度从左向右全部输出。
(T)
12.如果x>y为真或ay)&&(a
(F)
13.C语言程序的变量必须先定义再使用。
(T)
a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b中的值将丢失。
(F)
main函数开始,在程序的最后一个函数中结束。
(F)
16.变量的三个属性是指变量的名字、变量的值和变量在内存中的地址。
(T)
17.运算符优先顺序:
赋值运算符<逻辑运算符<关系运算符<算术运算符(F)
18.对应float类型的变量,也可以用等号“==”进行数值的判断。
(F)
19.表达式:
1&&3.14和1&3的值一样大。
(F)
20.为了正确计算表达式既要考虑运算符的优先级,也要考虑其结合性。
(T)
21、任何C程序都是从main函数开始和结束;(T)
22.在C程序中,使用分号“;”表示语句的结束。
(T)
23.C程序至少要有一个main函数,并且同一个程序中可以有多个main函数。
(F)
24.在C程序中,无论是整数还是实数,都能准确无误的表示。
(F)
25.在C程序中,赋值运算符的优先级最低。
(F)
26.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值。
(F)
27.在C程序中,变量可以一边定义一边使用。
(F)
28.C程序中的注释部分可有可无,可以省略。
(T)
29.字符型变量可以存放多个字符。
(F)
30.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(F)
31.一个C程序的执行是从本程序的main函数开始,到main函数结束。
(T)
二级C语言程序设计模拟试题
(一)
一、单项选择题。
(每小题1分,共20分)
1、一个C语言程序是由(B)组成。
A)一个函数B)一个或若干个函数
C)一个过程D)一个过程或若干个过程
知识点:
C语言程序的结构
2、C语言用(D)表示逻辑真值。
A)trueB)TC)整型值0D)非0整型值
知识点:
数据类型
3、如果程序中有#include"文件名"则意味着(A)。
A)将"文件名"所指的那个文件的全部内容,在此命令行出现的这一点上,插入源程序
B)指定标准输入输出
C)宏定义一个函数
D)条件编译说明
知识点:
编译预处理
4、为一个结构体变量分配存储空间时,其所占容量为(B)。
A)结构体中第一个成员所占容量B)结构体中所有成员所占容量
C)结构体中所有成员中所占容量最大者D)结构体中最后一个成员所占容量
知识点:
结构体
5、如果int*px,*py;则可用{temp=*px;*px=*py;*py=temp}实现*px和*py的交换。
其中temp应该说明为(A)。
A)inttempB)int&tempC)int**tempD)int*temp
知识点:
指针
6、于合法的c语言长整型常量是(A)。
A)12LB)6887273C)5E12D)(long)6887273
知识点:
数据类型
7、下列程序输出正确的是(A)。
main()
{inta=-1,b=1,c;
c=(a++<=0)&&!
((b--<=0));
printf(“%d,%d,%d”,a,b,c);
}
A)0,0,1B)-1,1,1C)0,0,0D)0,1,0
知识点:
逻辑运算符
8、已知E的ASCII码是69,则执行printf(“%c”,’D’-‘8’+’5’);的结果是(B)。
A)66B)AC)BD)E
知识点:
数据类型与自动转换
9、段名访问的方式是(A)
A)结构名.位段名B)位段名C)结构名D)*&位段名
知识点:
位段
10、有字符数组a,则正确的输入语句是(C)。
A)gets('a');B)scanf("%c",a);C)scanf("%s",a);D)gets("a");
知识点:
字符数组
11、如果程序中有staticcharc;则编译时会对其自动设置初始值为(C)
A)'\n'B)"\n"C)0D)'\0'
知识点:
存储类型与静态变量
12、如果程序中有语句FILEfp;fp=fopen("abc.txt","w");则程序准备做(C)。
A)对文件读写操作B)对文件读操作C)对文件写操作D)对文件不操作
13、如果有#definef(x,y)x+y及inta=2,b=3;则执行printf("%d",f(a,b)*f(a,b))后的值为(C)。
A)36B)25C)11D)13
14、在下面的说明中,(D)是指向函数的指针。
A)int*p[];B)int(*p)[];C)*p();D)(*p)();
15、如果在C程序中有main(intargc,char*argv[]),那么(D)是指命令行中的参数个数。
A)argvB)argv[]C)argc,argv[]D)argc
16、下列程序运行的结果是(B)。
#include
main()
{unsigneda,b,x;
a=0x255;
b=a<<4
x=(~b)&0xff
}
A)0x55B)0xafC)0x50D)0xda
17、下面程序中选择正确答案(C)
main()
{intk=0;
while(printf(“