2012年10月高等教育自学考试全国统一命题考试《高级语言程序设计(一)》试卷
(总分:100.00,做题时间:150分钟)
一、课程代码:00342 (总题数:15,分数:30.00)
1.下列为C语言保留字的是
(分数:2.00)
 A.auto 
 B.Else
 C.FILE
 D.define
解析:在C语言中有特殊含义的单词称为“保留字”,也称为“关键字”,主要用于构成语句,所有的保留字均由小写字母组成。
2.正确的C语言常数是
(分数:2.00)
 A.e0
 B.1e
 C.1E0 
 D.1 E0.0
解析:实型常量只用十进制,指数形式的实数由尾数部分、小写字母e或大写字母E、指数部分组成,形如:尾数E指数。C语言语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。
3.设int n;,执行表达式(n=0)||(n=1)||(n=2)||(n=3)后,n的值是
(分数:2.00)
 A.0
 B.1 
 C.2
 D.3
解析:逻辑或的结合性是自左向右,只要有一个对象为非0,则表达式为1,即为真。而且非0对象后的表达式不再运算,因此运算完(n=1),其后的表达式都不再运算,n=1。
4.值为0的表达式是
(分数:2.00)
 A.0= =0
 B.2&&5
 C.!5<2
 D.2&5 
字符串长度为0
解析:A项中,0==0为真,表达式值为1;B项中,2&5值为1;C项中,!5为0,!5<2为真,表达式值为1;D项中,对2和5进行二进制变换 分别为00000010和000000101,然后按位取与运算,结果为00000000,化为十进制为0。
5.先执行循环体后判断循环条件的语句是
(分数:2.00)
 A.for
 B.while
 C.do-while 
 D.for,while和do-while
解析:while型和for型循环结构是先判断循环条件再执行循环体;而do-while结构是先执行do后面的循环体,再通过while中的条件判断是否退出循环。
6.设char str[20];,从键盘输入中间含有空格的字符串的正确语句是
(分数:2.00)
&s(str); 
&s(str[20]);
 C.scanf("%s",str);
 D.scanf("%c",str);
解析:gets()函数和使用“%s”格式的scanf()函数都可以从键盘接受字符串,但输入时有区别:对于scanf()函数,回车换行符或空格符都看成输入字符串的结束;对于gets()函数,只有回车换行符才看威输入字符串的结束,空格符看成字符串的一部分。
7.定义函数时若函数名前冠有“*” (如float*fun(){……}),则该函数被称为
(分数:2.00)
 A.int型函数
 B.float型函数
 C.void型函数
 D.指针(型)函数 
解析:所谓指针型函数是指函数的返回值是指针型的,通过在函数名前面加个“*”来表示。
8.设int a[]={1,2,3,4},b,*p=a;,与b=*p++;等价的语句是
(分数:2.00)
 A.b=p++;
 B.b=*(p++); 
 C.b=*(++p);
 D.b=*++p;
解析:*和++的优先级都是2,故要看结合性,都是自右向左,因此先运算p++。
9.C语言中的sizeof是
(分数:2.00)
 A.类型名
 B.运算符 
 C.变量名
 D.函数名
解析:sizeof()是长度运算符,测试数据类型所占用的字节数。
10.设int a[10],*p=a;,与数组元素a[5]等价的是
(分数:2.00)
 A.*(a+5) 
 B.p[′5 ′]
 C.p+5
 D.a+5
解析:数组名a代表数组的首地址,a+5指向的元素是a[5]。
11.设typedef char *PT;,若有引用PT q[5];,则q是
(分数:2.00)
 A.字符型数组
 B.字符型变量
 C.字符型指针变量
 D.字符型指针数组 
解析:用户自定义的格式为:typedef类型符1类型符2;功能是将类型符1定义成用户自选的类型符2,此后可用类型符2来定义相应数据类型的变量、数组、指针变量等。typedef char *PT中PT被定义为字符指针类型,所以PT q[5]是将q定义为字符型指针数组。
12.正确定义二维数组并初始化的是
(分数:2.00)
 A.int a[3][ ]={{1,2,3},{4,5}};
 B.int a[3][3]={a,b,c,d,e};
 C.int a[ ][3]={1,2,3,4,5,6}; 
 D.int a[3][3]=(1,2,3,4,5,6);
解析:二维数组的定义格式为:数据类型数组名[行长度][列长度]。二维数组的行长度可以省略,但是列长度不可省略,所以A错;数组数据被定义为整型,B项中的数据不符合要求;初始化时,要用花括号{}将初始值括起,所以D错。
13.函数的递归调用是指
(分数:2.00)
 A.函数的自我调用 
 B.函数的嵌套调用
 C.主函数调用系统函数
 D.系统函数调用主函数
解析: C语言允许函数的递归调用,所谓递归调用就是函数调用自己。
14.设struct data{int a;float b;}c,*p=&c;,引用正确的是
(分数:2.00)
 A.*p.a
 B.p.b
 C.p->a 
 D.*p->b
解析:当一个结构型变量的地址已赋予相同结构型的指针变量,就可以用以下方式引用该结构型变量的成员:(*指针变量),变量名和指针变量->成员名。
15.文件操作"rb+"的含义是
(分数:2.00)
 A.只读文本文件
 B.只读二进制文件
 C.读写文本文件
 D.读写二进制文件 
解析:“rh+”表示打开一个已存在的二进制文件,可以读取数据,也可以写入数据。
二、非选择题部分 (总题数:10,分数:20.00)
16.判断方程ax2+bx+c=0有实根时的C语言逻辑表达式是 1。
(分数:2.00)
填空项1:__________________ (正确答案:b*b-4*a*c>=0)
解析:
17.设int i,j;,执行下列循环语句后输出“ABC”的行数是 1。 for(i=0;i
(分数:2.00)
填空项1:__________________ (正确答案:6)
解析:i=0时,不输出;i=1时,也不输出;i=2时,输出一行;i=3时,输出两行;i=4时,输出三行;i=5时,结束循环。
18.结构化程序设计的三种结构分别是:选择结构、循环结构和 1。
(分数:2.00)
填空项1:__________________ (正确答案:顺序结构)
解析:结构化程序设计的三种结构分别是:选择结构、循环结构和顺序结构。
19.设int a=l,b=2;,执行语句printf("%d",a>=b?a:b);后的输出结果是 1。
(分数:2.00)
填空项1:__________________ (正确答案:2)
解析:条件表达式的格式为:条件一?条件二:条件三,先运算条件一,非O则表达式的值为条件二的值;若为0,则表达式的值为条件三的值,题中a>=b为假,运行条件三b,所以输出b的值,也就是2。
20.在C语言的指针使用中,NULL的值是 1。
(分数:2.00)
填空项1:__________________ (正确答案:0)
解析:NuLL是在“stdio.h”中定义的符号常量,其值为0,含义为空地址。
21.设int x,y,t;,执行语句t=10+(x=3,y=5,x-y);后t的值是 1。
(分数:2.00)
填空项1:__________________ (正确答案:8)
解析:逗号运算符组成的式子,其值等于右边表达式的值。
22.在C语言中,变量的四个存储类型符分别是auto、static、extern和 1。
(分数:2.00)
填空项1:__________________ (正确答案:register)
解析:变量的存储类型有:auto、register、static、extern。
23.设char s[ ]= "Star";,执行语句printf("%d",strlen(s));后的输出结果是 1。
(分数:2.00)
填空项1:__________________ (正确答案:4)
解析:strlen函数的功能是测试指定字符串的长度。
24.设char *st="China\0Beijing";,执行语句printf("%s",st);后的输出结果是 1。
(分数:2.00)
填空项1:__________________ (正确答案:China)
解析:printf在用%s格式输出时,遇到‘/0’,认为字符串结束,所以后面的不再输出。
25.设int a=8,b=2,c=3;,执行语句a%=b+c;printf("%d",a);后的输出结果是 1。
(分数:2.00)
填空项1:__________________ (正确答案:3)
解析:自反赋值运算符右边的表达式是自动加括号的,所以a=a%(b+c)。
三、程序分析题(本大题共4小题,每小题4分,共16分) (总题数:4,分数:16.00)
26.#define PR printf("a=%d,b=%d/n",a,b); #include void f(int x, int *y) { *y=++x; } void main() { int a=10,b=20; PR f(a,&b); PR }
(分数:4.00)
__________________________________________________________________________________________
正确答案:(a=10,b=11 a=3,b=14)
解析:
27.#include int fun(int m) { static int n=l; ++m;++n; return(m+n); } void main() { int a,b; a=fun(0);b=fun(10); printf("a=%d,b=%d\n",a,b); }
(分数:4.00)
__________________________________________________________________________________________

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。