全国2001年10月自考高级语言程序设计(一)试题
课程代码:00342 第一部分 选择题
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要
求的,请将正确选项前的字母填在题后的括号内。 1.C语言程序编译时,程序中的注释部分 A.参加编译,并会出现在目标程序中 B.参加编译,但不会出现在目标程序中 C.不参加编译,但会出现在目标程序中 D.不参加编译,也不会出现在目标程序中 2.下列表达式的值为0的是( )
A.3%5 B.3/5.0 C.3/5 D.3<5 3.正确的C语言用户自定义标识符是( )
A.print B.float C.when? D.random%2
4.设int a=3;则表达式a<1&&--a>1的运算结果和a的值分别是( ) A.0和2 B.0和3 C.1和2 D.1和3 5.下列叙述中,正确的是( )
A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致 B.宏名必须用大写字母表示
C.宏替换不占用运行时间,只占编译时间
D.在程序的一行上可以出现多个有效的宏定义 6.下列保留字中用于构成循环结构的是( )
A.if B.while C.switch D.default 7.与语句if(a>b)if(c>d)x=1;else x=2;等价的是( ) A.if(a>b){if(c>d)x=1;else x=2;} B.if(a>b){if(c>d)x=1;}else x=2; C.if((a>b)&&(c>d))x=1;else x=2; D.if(a<=b)x=2;else if(c>d) x=1;
8.设char x='a';则printf(\\n\;的输出是
A.x=a,y=97 B.x=97,y=a C.x=97,y=97 D.x=a,y=a 9.设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是( ) A.2 B.3 C.4 D.无确定值 10.执行下列程序
int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; main()
{printf(\\n”,a[1][0]+b[0][0]);} 后输出的结果是
A.0 B.1 C.2 D.3 11.设char str[100];int i=5;则引用数组元素的错误形式是( )
A.str[i+10] B.*(str+i) C.*(str+i-1) D.*((str++)+i) 12.设int x[]={1,2,3,4,5,6},*p=x;则值为3的表达式是( )
A.p+=2,*++p B.p+=2,*p++ C.p+=3,*p D.p+=2,++*p
第 1 页
13.在函数内,定义变量时存储类型符可省略的是( )
A.auto B.static C.extern D.register 14.执行下列程序( ) int a=3,b=4;
void fun(int x1,int x2)
{printf(\ main()
{int a=5,b=6;fun(a,b);} 后输出的结果是
A.3,4 B.11,1 C.11,4 D.11,6 15.设有定义语句 struct
{int a;float b;} d[3]={{1,4},{2,5},{6,7}};
则printf(\;的输出是( )
A.2.5 B.2.0 C.8.0 D.8.4 16.设有定义语句:enum t1 {a1,a2=7,a3,a4=15}time; ( ) 则枚举常量a2和a3的值分别为
A.1和2 B.2和3 C.7和2 D.7和8
17.将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是( A.2和2 B.2和5 C.5和2 D.5和5 18.在文件使用方式中,字符串\表示( ) A.打开一个已存在的二进制文件,只能读取数据 B.打开一个文本文件,只能写入数据
C.打开一个已存在的文本文件,只能读取数据 D.打开一个二进制文件,只能写入数据 19.执行下列程序( ) # define F(y) 15>>y
#define PRINT(a) printf(\ main() {
PRINT(F(2)); }
后输出的结果是
A.3 B.3.5 C.14 D.7.5
20.main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为( ) A.int argv B.char * argv[]; C.char argv[]; D.char **argv[];
第二部分 非选择题
二、填空题(本大题共10小题,每小题2分,共20分)
21.初始化值是0.618的双精度变量a的定义形式为____________。 22.表达式!10!=1的值是____________。
23.“20 25.设int i = 5;则循环语句while(i>=1)i--;执行后,i的值为____________。 26.被调函数在执行结束时,这个函数中定义的____________类型的变量不被释放。 27.设 struct student 第 2 页 ) { int no; char name[12]; float score[3]; }s1,*p=&s1; 用指针法给s1的成员no赋值1234的语句是____________。 28.C语言程序中对文本文件的存取是以____________为单位进行的。 29.设char string[]=\则数组的长度应是____________。 30.设int a[2][3]={{2},{3}};则数组元素____________的值为3。 三、程序分析题(本大题共5小题,每小题5分,共25分)阅读下列程序,将输出结果写到各题右侧的空白处 31.int a=200; main() {int i; for(i=1;i<=5;i++) {a++; printf(\ s(); } } s() {static int a=20; a++; printf(%d\\n\ } 32.# include \ main() {char c; c=getchar(); if(c>='a'&&c<='w'||c>='A'&&c<='W')c=c+3; else if(c>='x'&&c<='z')||c>='X'&&c<='Z')c=c-23; printf(\ } 设从键盘上输入Next ↙ 33.# define N 7 main() {int i,j,temp,a[N]={1,2,3,4,5,6,7}; for(i=0;i temp=a[i];a[i]=a[j];a[j]=temp; } for(i=0;i 34.struct porb {char *name; int count; }x[]={\ main() 第 3 页 {int i; for(i=0;i<3;i++) printf(\ } 35.main() {union {short a;char ch; }M; M.a=100;M.ch='A'; printf(\ } 四、程序填充题(本大题共3小题,每小题6分,共18分)给出下列程序,将横线处缺少的部分补上,使其能正确运 行。 36.以下程序的功能是用选择法对数组a中的整数由小到大进行排序。 void sort (int b[],int n) {int i,j,t; for(i=0;i {t=b[i];_________;b[j]=t;} } main() { int a[]={5,8,6,2,7,4,1,3}; int i; sort(a,8); for(i=0;i<8;i++) printf(\ printf(\ } 37.输入一字符串(换行为结束标志)统计其中数字(0,1,2,?,9不单独统计)、空白和其它字符出现的次数。 # include“stdio.h\ main() { char c; int_____________; while((c=getchar())!='\\n') { if(________________)digit++; else if(c==''||c=='\\t')++blank; else____________; } printf(\ } 38.先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在 这样的元素,则输出“Not found!”标志。 main() { int i,x,a[10]; for(i=0;i<10;i++)scanf(\ 第 4 页 scanf(\ for(i=0;i<10;i++)if(____________)break; if(i___10) printf(“position:%d\\n”,i); else printf(\ } 五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。 39.求出10至1000之内能同时被2、3、7整除的数,并输出。 40.求1到100之间的奇数之和及偶数之和,并将二者输出。 41.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。 全国2001年10月自考高级语言程序设计(一)答案 课程代码:00342 一、单项选择题(本大题共20小题,每小题1分,共20分) 1.D 2.C 3.A 4.B 5.C 6.B 7.A 8.D 9.B 10.D 11.D 12.B 13.A 14.C 15.D 16.D 17.C 18.A 19.A 20.B 二、填空题(本大题共10小题,每小题2分,共20分) 21.double a=0.618 22.1 23.x>20&&x<=30或者(x>20)&&(x<=30) 24.2 25.0 26.静态存储,或者static 27.p->no=1234;或者(*p).no=1234; 28.字节 29.16 30。a[1][0] 三、程序分析题(本大题共5小题,每小题5分,共25分) 31.201,21 202,22 203,23 204,24 205,25 32.Q(若结果为Qhaw,只得3分) 33.7 6 5 4 3 2 1 34.Li ning:19 Lang ping:21 Zhu jian hua:20 35.2,65,A 四、程序填充题(本大题共3小题,每小题6分,共18分) 36.(1)j=i+1 (2)> (3)b[i]=b[j] 第 5 页