全国2002年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]<min)
_______; /*第二空 */
}
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.建立一个磁盘文件,文件名和内容由键盘输入。
#include ″stdio.h″
main()
{
char ch, fname [20];
_______________; /* 第一空 */
scanf(″%s,fname);
if ((fp=fopen (________,″w″,))==NULL) /* 第二空 */
exit (0);
ch=getchar ();
while (ch!=′*′)
{
fputc (ch,fp);
putchar (ch);
ch=getchar ();
}
fclose ( ________); /* 第三空 */
}
输入磁盘文件名:filec.c↙
输入一个字符串:Program C*↙
五、程序设计题(第39题5分,第40、41小题各6分,共17分)
39.输入两个实数,按先大后小的顺序输出。
40.采用递归方法编写一个计算x的n次方的函数(不用写主函数调用)。
公式x
n=
函数头部:double power(double x,int n)
41.输入整数x,如果该数为0则输出“zero”,否则判断奇偶性,若为奇数则输出“odd”,若为偶数则输出“even”。
本自考试题WORD文档下载: