云南师范大学2011-2012学年下学期统一考试 《计算机技术基础》(C语言)期末考试样卷
考试方式(闭卷机考) 考试时量:100分钟 试卷编号(样卷)
一、判断题:(每题1分,共15分)
1. 在C程序中,注释内容在编译时被忽略,因此好的C程序不需要注释。B A.对 B.错
2. #define是一种特殊的C语句,在行末没有分号。B A.对 B.错
3. C语言中表达式3%2是合法的表达式。A A.对 B.错
4.在C程序中,赋值语句x=123和x=0123后,变量x的值是不同的。A
A.对 B.错 5.2&&3的结果为1。A
A.对 B.错
6. C程序总是从程序的第一条语句开始顺序执行。B
A.对 B.错
7.C语言中,函数的定义可以嵌套。B
A.对 B.错
8. 结构体中的成员变量可以有不同的数据类型。A
A.对 B.错
9.出现在主调函数之前的用户自定义函数,可以不必加函数声明。A
A.对 B.错
10.C语言中用for循环语句实现的功能,用while循环语句不一定能实现。B
A.对 B.错
11.有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为5的表达式是 *(P+4)。 A A.对 B.错
12.字符串和字符数组都要求其最后一个字符为’\\0’。B
A.对 B.错
1
13.合理使用共用体可以节省内存空间。A
A.对 B.错
14. 函数是C程序的基本单位。A
A.对 B.错
15. 全局变量在程序中的任何地方都有效。 B
A.对 B.错
二、 单选题(在本题的每一小题的被选答案中只有一个正确答案,多选不给分,
每题1分,共40分) 1、下面叙述错误的是____。D A. C程序中,各种括号应成对出现 B. C程序中,赋值号的左边不可以是表达式 C. C程序中,变量名的大小写是有区别的
D. C程序中,若未给变量赋初值,则变量的初值自动为0
2.有宏定义:#define E 2.718则编译预处理时将E替换成一个____。D A.单精度常量 B.单精度变量 C.双精度变量 D.字符串 3、C程序中,合法的关键字是____。A
A. int B. integer C. Int D. Integer 4.以下选项中正确的定义语句是____。C
A.double a; b;
B.double a=b=7; D.double, a, b;
C.double a=7, b=7;
5.C程序中,运算对象必须为整型数据的运算符是____。B A. ++ B. % C. / D. * 6.下列选项中,优先级最低的运算符是____。D A . != B. || C. ++ D. ,
7.将数学表达式ab/(c+df)改写为C语言表达式,正确的是____。C
A. ab/(c+df) B. a*b/c+d*f C. a*b/(c+d*f) D. (a*b)/(c+d)*f 8. C程序中语句结束符是____。C
A. : B. /* C. ; D. , 9.C语言中,错误的转义字符是____。D
A. ‘\\n’ B. ’\\101’ C. ‘\\”’ D .‘\\108’
2
10.判断char型变量ch是否为数字的表达式是____。C
A. ‘0’<=ch<=‘9’ B. (ch>’0’) && (ch <‘9’) C. (ch>=‘0’)&&(ch<=‘9’) D. (ch>=‘0’)||(ch<=‘9’)
11. 设x,y,t为int型变量,则执行语句”x=1;y=3;t=(++x)&&(x+y)||++y;”后,
y的值为____。B
A.4 B.3 C.1 D.不确定的值 12.C语言函数内定义的局部变量的隐含存储类别是____。B A.static B.auto C.register D.extern 13.对switch后括号内的表达式,叙述正确的是____。C A. 只能是数字 B. 可以是浮点数 C. 只能是整型数据或字符型数据 D. 以上叙述都不对 14.以下数组的定义中,合法的是____。C
A. int x(3); B. int x[3] C. int x[2+1]; D. int n=3,x[n]; 15.以下初始化中能正确进行字符串赋值的操作是_____。C
A.char *a=“abc”; B.char *a; gets(a);
C.char a[3]= “abc”; D.char a[3]={‘a’,’b’,’c’}; 16. 取地址运算符&,只能作用于_____。C
A.常量 B.表达式 C.变量 D.整型变量 17.以下程序的执行结果是________。D main()
{ char t = ‘w’, a = ‘m’, b = ‘d’, c = ‘x’,m; m =( t>a ) ? t : a; m =( m >b ) ? m : b; m =( m >c ) ? m : c; printf( \; }
A.w B.m C.d D.x
18.下列关于switch和break语句的说法中正确的是_____。B A.break语句只能用在switch语句中
B.在switch语句中,可以根据需要决定是否使用break语句
3
C.在switch语句中必须使用break语句 D.以下选项都不正确
19.对for(表达式1;表达式2;表达式3)中表达式的正确理解是____。A A.表达式2可以是任意合法表达式 B.表达式2只能是关系或逻辑表达式
C.三个表达式均可省略,但这时循环体中必须含有continue语句
D.表达式1必须是设置循环初值的赋值表达式 20.若i为整型变量,则以下循环的执行次数是____。D
for(i=2;i>0;--i); A.无限次 B.0次
C.1次
D.2次
21.以下程序 运行后的输出结果是____。C main()
{ int k=0; while(k++==0); printf(“%d”,k); } A.0 B.1 C.2 D.有语法错误 22.有以下程序循环执行____次。B
x=0; do{ x++;x=x*x;} while(!x);
A.死循环 B.1次 C.2次 D.有语法错误 23.定义共用体的关键字是_____ 。A
A.union B.enum C.struct D.typedef
24.若变量已正确定义,执行语句scanf(\;时,正确
的输入是_____ 。B
A.20 30,40 B.20 30 40 C.20,30 40 D.20,30,40 25.main()
{int m; scanf(“%d”,&m); switch (m%4) { case 0:
case 1: printf(“%d”,m);break; case 2: printf(“%d”,m*m); case 3: printf(“%d”,m*m*m);break;
} }
4
该程序运行后输入2<回车>,则程序的输出结果是_____。D A.4 B.9 C.9 27 D.4 8 26.下面说法中错误的是____。D
A.共用体变量的地址和它各成员的地址都是同一地址 B.共用体内的成员可以是结构变量,反之亦然 C.在任一时刻,共用体变量的各成员只有一个有效
D.函数可以返回一个共用体变量 27.下面结构体说明正确的是____。C
A.struct st B. struct st; { int x; float y; { int x; float y; } }f1,f2; C.struct st D. struct st
{ int x; float y; { int x; float y; }; };
struct st f1,f2; struct f1,f2; 28. 若有以下共用体说明: union uu
{ float x; double y; char z; }e2;
则e2所占用的存储单元字节数为____。A A.8 B.4 C.13 D.1 29. 若有以下结构体说明: Struct student
{ char name[10]; float score[4]; }team[10];
则team数组所占用的存储单元字节数为____。D A.26 B.300 C.286 D.260 30.下面叙述中正确的是____。B
A.main函数和其他函数间可相互调用
B.main函数可以调用其他函数,但其他函数不能调用main函数 C.因为main函数可不带参数,所以其后的参数小括号能省略
5