. .
2009 年 春 季学期 专业
《C语言程序设计》 期末试卷(A卷)
卷面总分:100分 答题时间:120分钟
专业 年级 班级 学号
题号 得分 一 二 三 四 五 总分 一、单项选择题(本题共30 个小题,每小题1分,共30分,请将答案代号填涂到机读卡上,在试卷上所写答案,视为0分)
1、以下叙述中错误的是( )。
A) C语言运算功能丰富
B)C语言可以不用编译就能被计算机识别执行
C) C语言允许直接访问物理地址,直接对硬件进行操作 D) C语言属于结构化的程序设计语言
2、在C语言中,整型常量的表示方法不包括( )。
A) 二进制 B) 八进制 C) 十进制 D) 十六进制 3、以下选项中不属于C语言的关键字的是( )。
A) typedef B) struct C) int D) CHAR 4、源程序要正确地运行,必须要有什么函数( )
A) printf函数 B) 自定义的函数 C) main函数 D) 不需要函数 5、这段程序中的变量是( ) #include
int sum;
sum = 10 + 15;
printf(\ printf(\ }
A) 10 B) sum C) 15 D) PI
word . .
. .
6、算法具有五个特性,以下选项中不属于算法特性的是( )。 A)有穷性 B)简洁性 C)可行性 D)确定性 7、字符型常量在内存中存放的是( )。
A)ASCII码 B)BCD码 C)内部码 D)十进制码 8、下面哪个表达式的值为4( )。
A)11/3 B)11.0/3
C)(float)11/3 D)(int)(11.0/3+0.5) 9、假设变量a和b已经定义为整型,指出下面错误的表达式( )。
A) a=a++ B) 5.6+6.2%3.1 C) 1&&2 D) a=1,b=2 10、该源程序执行后,输出结果是( )。
#include
int a; float b; a=4; b=9.5;
printf(\}
A) a=%d,b=%f\\n B) a=%d,b=%f C) a=4,b=9.50 D) a=4,b=9.5 11、以下的for循环是( )。
for(x=0,y=0;(y!=123)&&(x<4);x++);
A) 无限循环 B) 循环次数不定 C) 执行4次 D) 执行3次
12、从以下给出的表达式中选出与while(E)语句中的(E)不能等价的表达式( A) (!E==0) B) (E>0) || (E<0) C) (E!=0) D) (E==0) 13、C语言中,逻辑“真”等价于( )。
A)大于零的数 B)不大于零的整数 C)非零的数 D)非零的整数 14、以下程序的输出结果是( )。
#include
{ int num=0; while(num<=2) { num++;
printf(“-\\n”,num); } }
A)1 B)1 2 C)1 2 3 D)1 2 3 4
word . .
)
. .
15、下列变量名中合法的是( )。
A)B.C.Tom B)3a6b C)_6a7b D)$ABC
16、设有定义语句int c[4][3];,则以下对数组元素的引用形式中正确的是( )。
A) c[2+1][1-1] B) c[2,3] C) c[4][3] D) c[2+1,2]
17、若有定义语句double x[2][2]={0.0};则以下叙述正确的是( )。
A) 该语句存在语法错误
B) 该语句使二维数组x的所有元素初值都为0.0 C) 该语句只为数组元素x[0][0]赋初值为0.0 D) 该语句为数组元素x[2][2]赋初值为0.0
18、以下选项中,不是C语言合法字符串常量的是( )。
A) “\\121” B) ‘y=’ C) “\\n\\n” D) “ABCD\\x6d” 19、函数strcmp(“abc”,“x”)的返回值是( )。
A)小于0 B)等于0 C)大于0 D)不确定 20、下列函数定义中正确的是( )。 A) float cal(float x;float y) {return(x*y);}
B) float cal(float x,y) {return(x*y);} C) int cal(x,y) {float x,y; return(x*y);} D) int cal(x,y) float x,y;
{return(x*y);}
21、在函数的说明和定义时若没有指出函数的类型,则( )。
A)系统自动地认为函数的类型为整型 B)系统自动地认为函数的类型为字符型 C)系统自动地认为函数的类型为实型 D)编译时会出错
22、在int a[ ]={1,2,3,4}中,数组元素a[2]的值是( )。
A) 1 B) 2 C) 3 D) 4 23、在下面程序中,属于全局变量的是( )
#include
int num; char *name; char sex; float score;
}stu2,stu1={1002,\
word . .
. .
main( ) { int n;
float s; stu2=stu1; n=stu1.num; s=stu2.score;
printf(\printf(\}
A)student B)stu2 C)n D)s 24、下面程序的输出结果是( )。
#include
return n+1; }
sub1(int n) { int i,a=0;
for (i=n; i>0; i--) a+=sub2(i); return a ; }
main( ) { int n=3;
printf (\ }
A) 5 B) 7 C) 8 D) 9
25、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是( A)scanf(“%d”,pa); B)scanf(“%d”,a); C)scanf(“%d”,&pa); D)scanf(“%d”,*pa); 26、下面程序中,哪个变量的值保存在cpu的寄存器里( )。
#include
{ static int sum=0; register int i;
for (i=1; i<=n; i++) sum+=i;
printf(\}
A) n B) sum
C) i D) 这段程序中没有寄存器变量
word . .
)。
. .
27、若有两个基本类型相同的指针p1,p2,则下列运算不合理的是( )。 A)p1+p2 B)p1-p2
C)p1=p2 D)p1==p2 28、为字符数组赋值,下列方法中错误的是( )。
A)char str[5]=”ok”; B) char str[5]; gets(str); C) char str[5];
scanf(“%s”,str); D) char str[5]; str=”ok”;
29、下面哪个是正确的引用结构体变量成员( )
struct student
{ int num; char name; } stu1,*p; p=&stu1;
A)stu1->.num B)*stu1.num
C)student.num D) p->num 30、下面程序的输出结果是( )。
#include
{ printf(\
A) 0 B)1
C)-1 D)NULL没定义,出错
二﹑判断题(本大题共 10 小题,每小题 2 分,共 20 分,请将“正确”用“A”表示,“错误”用“B” 表示,填涂到机读卡上,在试卷上所写答案,视为0分) 1( )C语言属于高级语言。
2( )关键字INT可以用来定义整型变量。
3( )若有char x;则 sizeof(x)和sizeof(char)两种描述中,二者都正确。 4( )数组元素作为函数的参数进行地址传递。 5( )在C语言中,076是一个十进制整数。 6( )结构体可以嵌套定义。
7( )do-while循环的特点是:先判断循环条件,再执行循环体语句。
8( )主函数中定义的变量比较特殊,属于全局变量,在整个程序中都是有效的。 9( )用C语言编程时,变量可以不定义,直接使用。
10( )定义结构体类型,说明了该类结构体数据的组织形式,在编译程序时系统会给结构体类型分配空间。
三﹑填空题(本大题共 4 小题,每小题 4 分,共 16 分,请将答案填写到下面表格内,不得修改原题和原程序,修改者视为0分,未将答案填写在表格内,视为0分)
word . .