选择
1、下列数据中,为字符串常量的是(D)。
A、'A'
B、How do you do. C、$abc D、\
2、以下所列的C语言常量中,错误的是(B )。
A、0xFF B、1.2e0.5 C、2L D、'\\72'
3、以下程序的输出结果是(D)。 main()
{float x=3.6; int i; i=(int)x;
printf(\}
A、x=3.600000,i=4 B、x=3 i=3.600000 C、x=3,i=3 D、x=3.600000,i=3
4、若k是整型,则以下程序段的执行结果是:(B ) k=-3;
if(k<=0) printf(\ else printf(\
A、####
B、有语法错误,无结果 C、&&&& D、####&&&&
5、若x=2,y=3则x||y的结果是(C )。
A、3 B、0 C、1 D、2
6、针对下列程序段回答问题(B ). for(t=1;t<=100;t++) {
scanf(\ if(x<0) continue; printf(\}
A、x>=0时什么也不输出 B、最多允许输出100个非负整数
C、printf函数永远也不执行 D、当x<0时整个循环结束
7、以下程序的执行结果是( B)。 main()
{ int num = 0;
while( num <= 2 ) { num++; printf( \
A、0,1,2 B、1,2,3, C、1,2,3,4, D、1,2,
8、选择正确的输入语句( D)。:(其中:char string[20];)使得string的内容为\student\
A、scanf(\B、scanf(\C、scanf(\D、gets(string);
9、对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是(B)。
A、将5个初值依次赋给a[6]至a[10] B、将5个初值依次赋给a[0]至a[4]
C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[1]至a[5]
10、以下标识符中可以作为用户函数名的是( D ).
A、struct B、int C、union D、go_to
11、以下叙述错误的是(B).
A、函数调用可以出现在一个表达式中 B、函数调用可以作为一个函数的形参 C、函数调用可以作为一个函数的实参 D、函数允许递归调用
12、若用数组名作为函数的实参,传递给形参的是(B)。
A、数组第一个元素的值 B、数组的首地址 C、数组元素的个数 D、数组中全部元素的值
13、在C语言程序中(B)。
A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数调用不可以嵌套 D、函数的定义和函数调用均可以嵌套
14、下列说法中正确的是(B).
A、函数调用不占运行时间,只占编译时间. B、宏替换不占运行时间,只占编译时间. C、有参数的宏定义,就是函数.
D、在定义宏时,宏名与带参数的括弧之间可以加空格.
15、若有说明:int *p,m=5,n;以下正确的程序段是(D)。
A、scanf(\B、p=&n;scanf(\C、p=&n;scanf(\D、p=&n;scanf(\
16、对于下述定义,不正确的叙述是(B ). union data {int i; char c; float f; }a,b;
A、变量a的地址和它的各成员地址都是相同的
B、可以在定义类型的同时定义变量a,并对a的任意成员初始化 C、变量a所占内存的长度等于成员f的长度
D、如果有定义语句 union data a={6};则对变量a的初始化是正确的
17、有两个整型变量dog和cat,若要从磁盘文件把数据读到其中,正确的形式是(B ).
A、fscanf(dog ,2,1,fp);
B、fscanf(fp,\C、fscanf(dog ,cat,2,1,fp); D、fscanf(fp,\18、sizeof(float)是(C)。
A、一个浮点表达式 B、一个不合法的表达式
C、运算结果是一个整型表达式。 D、一种函数调用
19、用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法(B ).
(用\表示回车,U表示空格) main()
{int i,k;
scanf(\
}
A、i=10[CR]k=15[CR] B、i=10,k=15[CR] C、10U15[CR] D、10,15[CR]
20、逻辑表达式3<2||-1&&4>3-!0的值为:(A )
A、1 B、3 C、0 D、2
21、语句while(!E);中的表达式!E等价于(D)。
A、E==1 B、E!=0 C、E!=1 D、E==0
22、以下正确的描述是(A ).
A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 23、若有说明 int a[3][4];则a数组元素的非法引用是(B)。
A、a[1][3] B、a[0][4] C、a[0][2*1] D、a[4-2][0]
24、在C语言的函数中,下列正确的说法是(B)。
A、形参可以是常量和变量 B、可以有也可以没有形参 C、数组名不能作形参 D、必须有形参
25、int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是()。
A、4 B、2 C、不一定 D、3
26、若有以下程序段,则使用错误的选项是(C ). struct student {
int num; int age;
};
struct student stu[3] ={{1001,20},{1002,19},{1004,20}}; main(); {
struct student *p; p=stu; … ; }
A、(*p).num B、(p++)->num C、p=&stu.age D、p++
一、单项选择(30分)
1. 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\\101'是(A)。【3】
A、字符A B、字符a C、字符e D、非法的常量
2. 下列程序段的输出结果为(C)。 【4】 float k=0.8567; printf(\
A、85.6% B、85.6%% C、85.7% D、.857
3. 下面的scanf函数输入数据,使得a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8,
正确的键盘输入方法是(A). (用\表示回车,U表示空格) 【4】 main() {int a,b;
float x1,x2,x3;
char s1,s2;
scanf(\}
A、10UUU15Ss1.5U-3.75U+1.5U67.8[CR] B、10UUU15USUs1.5U-3.75U+1.5U67.8[CR] C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR] D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR]
4. C语言的if语句中,用作判断的表达式为(A)。【5】 A、任意表达式 B、算术表达式 C、逻辑表达式 D、关系表达式
5. 以下程序的输出结果是:(A) 【5】
main() {int m=5;
if(m++>5) printf(\else printf(\ }
A、6 B、5 C、7 D、4
//;,?&&|| 控制表达式(if switch for while)for三个表达式