全国2012年10月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(本大题共1 5小题,每小题2分,共30分)
1.下列为C语言保留字的是
A.auto B.Else
C.FILE D.define
2.正确的C语言常数是
A.e0 B.1e
C.1E0 D.1 E0.0
3.设int n;,执行表达式(n=0)||(n=1)||(n=2)||(n=3)后,n的值是
A.0 B.1
C.2 D.3
4.值为0的表达式是
A.0= =0 B.2&&5
C.!5<2 D.2&5
5.先执行循环体后判断循环条件的语句是
A.for B.while
C.do-while D.for,while和do-while
6.设char str[20];,从键盘输入中间含有空格的字符串的正确语句是
A.gets(str); B.gets(str[20]);
C.scanf("%s",str); D.scanf("%c",str);
7.定义函数时若函数名前冠有“*” (如float*fun(){……}),则该函数被称为
A.int型函数 B.float型函数
C.void型函数 D.指针(型)函数
8.设int a[]={1,2,3,4},b,*p=a;,与b=*p++;等价的语句是
A.b=p++; B.b=*(p++);
C.b=*(++p); D.b=*++p;
9.C语言中的sizeof是
A.类型名 B.运算符
C.变量名 D.函数名
10.设int a[10],*p=a;,与数组元素a[5]等价的是
A.*(a+5) B.p[′5 ′]
C.p+5 D.a+5
11.设typedef char *PT;,若有引用PT q[5];,则q是
A.字符型数组 B.字符型变量
C.字符型指针变量 D.字符型指针数组
12.正确定义二维数组并初始化的是
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);
13.函数的递归调用是指
A.函数的自我调用 B.函数的嵌套调用
C.主函数调用系统函数 D.系统函数调用主函数
14.设struct data{int a;float b;}c,*p=&c;,引用正确的是
A.*p.a B.p.b
C.p->a D.*p->b
15.文件操作"rb+"的含义是
A.只读文本文件 B.只读二进制文件
C.读写文本文件 D.读写二进制文件
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共10小题,每小题2分,共20分)
16.判断方程ax
2+bx+c=0有实根时的C语言逻辑表达式是__________。
17.设int i,j;,执行下列循环语句后输出“ABC”的行数是__________。
for(i=0;i<5;i++)
for(j=l; j<I; j++)printf("ABC\n");
18.结构化程序设计的三种结构分别是:选择结构、循环结构和__________。
19.设int a=l,b=2;,执行语句printf("%d",a>=b?a:b);后的输出结果是__________。
20.在C语言的指针使用中,NULL的值是__________。
21.设int x,y,t;,执行语句t=10+(x=3,y=5,x-y);后t的值是__________。
22.在C语言中,变量的四个存储类型符分别是auto、static、extern和__________。
23.设char s[ ]= "Star";,执行语句printf("%d",strlen(s));后的输出结果是__________。
24.设char *st="China\0Beijing";,执行语句printf("%s",st);后的输出结果是__________。
25.设int a=8,b=2,c=3;,执行语句a%=b+c;printf("%d",a);后的输出结果是__________。
三、程序分析题(本大题共4小题,每小题4分,共16分)
阅读下列程序,将输出结果写在答题纸上。
26.#define PR printf("a=%d,b=%d\n",a,b);
#include<stdio.h>
void f(int x, int *y)
{ *y=++x; }
void main()
{
int a=10,b=20;
PR
f(a,&b);
PR
}
27. #include<stdio.h>
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);
}
28.#include<stdio.h>
void main( )
{ int i;
for(i=1;i<=10;i++)
{ if(i<5)continue;
printf("%3d",i);
}
printf("\n");
}
29.#include<stdio.h>
int x=1; /* 全局变量 */
void f(int i)
{
x=i+x;i++;
}
void main( )
{
int y=5;
x++;f(y);
printf("y=%d,x=%d\n",y,x);
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
请将下列程序横线处缺少的部分补在答题纸上,使其能正确运行。
30.按下列形式输出英文字母。
ABCD…WXYZ
zyxw...dcba
#include<stdio.h>
void main( )
{ char ch;
for(ch=′A′;________;ch++)printf("%c",ch); /* 第一空 */
________; /* 第二空 */
for(ch=′z′;ch>=′a′;________)printf("%c",ch); /* 第三空 */
printf("\n");
}
31.输入x的值,按下列公式计算并输出y的值。
y=
#include<stdio.h>
void main( )
{ int x,y;
scanf(________); /* 第一空 */
if(x<0)y=-1;
else if(_______)y=0; /* 第二空 */
else________; /* 第三空 */
printf("x=%d,y=%d\n",x,y);
}
32.分别统计文本文件fs.txt中小写英文元音字母(a, e,i,o,u)的个数并输出。
#include<stdio.h>
void main( )
{
int a=0,e=0,i=0,o=0,u=0;
char ch;
________; /* 第一空 */
sen=fopen("fs.txt","r");
while(!feof(sen))
{ ch=fgetc(sen);
switch(________) /* 第二空 */
{
case'a':a++;break;
case'e':e++;break;
case'i':i++;break;
case'o':o++;break;
case'u':u++;
}
}
printf("%d,%d,%d,%d,%d\n",a,e,i,o,u);
fclose(______); /* 第三空 */
}
五、程序设计题(本大题共2小题,每小题8分,共1 6分)
33.任意输入一个三位正整数,十位上的数字不动,将个位和百位上的数字交换,构成一个 新的正整数后输出。(例如:523变为325)
34.从键盘输入a
1,a
2….,a
20,按下列公式计算并输出b
l, b
2, ….,b
10的值。
本试题下载: