全国10月高等教育自学考试高级语言程序设计(一)试题及答案解析
- 格式:docx
- 大小:20.13 KB
- 文档页数:9
全国10月高等教育自学考试高级语言程序设计(一)试题及答案解析
全国2018年10月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号码填在题干的括号内。每小题1分,共20分)
1.C语言不能选用的字母是( )
A.w
B.π
C.I
D.i
2.构成一个C程序的是( )
A.一个主函数和若干个非主函数
B.若干个主函数和若干个非主函数
C.一个主函数和最多一个非主函数
D.若干个主函数和最多一个非主函数
3.设int m1=5,m2=3;表达式m1>m2?(m1=1):(m2=-1)运算后,m1和m2的值分别是( )
A.1和-1
B.1和3
C.5和-1
D.5和3
4.设float m=4.0,n=4.0;使m为10.0的表达式是( )
A.m-=n*2.5
B.m/=n+9
C.m*=n-6
D.m+=n+2
5.表达式5&2||5|2的值是( ) A.0
B.1
C.2
D.3
6.对于do-while语句,错误
..的.说法是( )
A.先执行循环体后判断循环条件
B.循环体至少要执行一次
C.循环体有可能一次也不执行
D.循环体中可以包含若干条语句
7.设int x=-1;执行表达式++x||++x||++x后,x的值是( )
A.0
B.1
C.2
D.3
8.设int a=7,b=8;则printf(″%d,%d″,(a+b,a),(b,a+b));的输出是( )
A.7,15
B.8,15
C.15,7
D.出错
9.设int a[10];则对a数组元素的错误
..引用是( )
A.a[5]
B.*(a+1)
C.a[10-10]
D.a(5)
10.设char c[5]={′a′,′b′,′\0′,′c′,′\0′};则printf(″%s″,c)的输出是( )
A.′a′′b′
B.ab C.abc
D.″ab\0c″
11.设double * p[6];则( )
A.p是指向double型变量的指针
B.p是double型数组
C.p是指针数组,其元素是指向double型变量的指针
D.p是数组指针,指向double型数组
12.设char *s=″china″;则printf(″%s,%c,%c\n″,s,*s,s[3]);的输出是( )
A.china, c,n
B.china,china,i
C.c,c,n
D.china,china,n
13.全局变量的存储类型可以定义为( )
A.auto或static
B.extern或register
C.auto或extern
D.extern或static
14.函数调用语句fun((((1,2),3),4));中参数的个数是( )
A.1
B.2
C.3
D.4
15.对于下列定义的枚举型
enum colorl {yellow,green,blue=5, red,brone};
则枚举常量yellow和red的值分别是( )
A.3,6
B.1,6
C.0,6
D.0,3 16.设有定义struct ru{long x;float y;} time,*timep=&time;则对time中成员x的正确引用是( )
A.rnu.time.x
B.timep.x
C.(* timep).x
D.time->x
17.设FILE*fp;若fp指向的文件未结束,则函数feof(fp)的返回值为( )
A.0
B.true
C.非0
D.false
18.C语言中,系统自动打开的文件是( )
A.二进制文件
B.随机文件
C.非缓冲文件
D.设备文件
19.执行下列程序
#define R 0.5
#define AREA(x) R*x*x
main ()
{int a=1, b=2;
printf (″%5。1f\n″, AREA(a+b));
}
后输出的结果是( )
A.0.0
B.0.5
C.3.5
D.4.5
20.执行下列程序 #include ″stdio. h″
min ()
{printf(″%d\n″,NULL);}
后输出的结果是( )
A.-1
B.0
C.1
D.2
二、填空题(每小题2分,共20分)
21.如果在定义局部变量时省略了存储类型符,则默认的类型是________。
22.利用运算符__ __,下列两个语句
b=5+a;a-=1;
的功能可以仅由一个语句实现,这个语句是________。
23.“n是小于整数m的偶数”的C语言表达式是________。
24.定义函数时,若函数的类型缺省,则函数的默认类型是________。
25.语句for(i=1;i==1;i++);循环的次数是________。
26.在C语言中,优先级最低的运算符是________。
27.设
union
{
int a;
char c[99];
}b;
则sizeof(b)的值是________。
28.设int a[10]={1,2,3};则*(a+3)的值是________。
29.设short a[3][4];如果数组a首地址为2000,则a+1的地址是________。
30.设int a [2][4],(*p)[4]=a;用指针变量p表示数组元素a[1][2]为________。
三、程序分析题(每小题5分,共25分)
阅读下列程序,将输出结果写到各题右侧的空白处
31.min()
{ int a =10,i=1,j=2;
printf(″%d,%o,%x\n″,a,a,a);
printf(″i=%d\n″,i++);
printf(″%c\n″,i==j?′A′:′B′);
}
32.main()
{ int k; char a[]=″LANGUAGE″,b[]=″PROGRAM″;
char *p=a,*q=b;
for(k=0;k<=5;k++)
if(*(p+k)==*(q+k)) printf(″%c″,*(q+k));
}
33.main()
{ int a,b,c;
a=10;b=20;c=30;
a=(--b<=a)||(a+b!=c);
printf(″%d,%d\n″,a,b);
}
34.int x=30,y=50;
sub(int x, int y)
{
y-x>y? x:y;
return y;
}
main*()
{
{ int x=100;
printf(″%d\n″,sub(x,y));
}
printf(″%d,%d\n,x,y);
}
35.f()
{
int x=1;
return x++;
}
g()
{
static int x=1;
return x++;
}
main()
{
int i,a=0,b=0;
for(i=0;i<5;i++)
{
a+=f();
b+=g();
}
printf(″a=%d\nb=%d\n″,a,b);
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36.将十个数输入数组中,找出其中最大数和最小数并输出。
main()
{ in i,max,min,a[10];
for(i=0,i<10;i++)
scanf(″%d″,&a[i]);
max=a[0];
min=a[0];
for(i=1;i<10;i++)
{
if(a[i]>max)
max=_____; /* 第一空*/
if(a[i]
_______; /*第二空*/
}
printf(″max=%d,min=%d\n″,_______); /*第三空*/
}
37.根据对n的输入,求1+2+3+…+n的和。
float sum(int x)
{
int i;
float s;
________; /* 第一空*/
for (i=1;i<=x;i++)
s+=i;
________; /* 第二空*/
}
main()
{int n;
scanf(″%d″,________); /* 第三空*/
printf(″%f\n″,sum(n));
}
38.建立一个磁盘文件,文件名和内容由键盘输入。