全国2014年4月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。
1.表达式9%45+15/6*2的值是
A.4 B.5
C.10 D.13
2.设int a[10];,则数组a的下标正确的使用范围是
A.0到9 B.0到10
C.-1到9 D.1到10
3.执行语句printf("%c",'A'+3);后输出结果是
A.3 B.A
C.D D.68
4.设int ml=60,m2=80,m3=100;,表达式m3>m2>ml的值是
A.0 B.1
C.60 D.100
5.下列程序段执行后,变量n的值是
Static int n;
do {n=n+1;} while(n<1000);
A.1 B.999
C.1000 D.1001
6.设int a,b,c;,执行语句priritf("%d",(a=1,b=2,c=3));后输出结果是
A.6 B.3
C.2 D.1
7.设int n=2;,执行语句n+=n-=n-n;后n的值是
A.0 B.2
C.4 D.6
8.设int a[2][3]={1,2,3,4,5};,数组元素a[1][1]的值是
A.1 B.2
C.4 D.5
9.设int a=10,b=20,c=1,d=2;,执行语句if(a<b&&c>d&&(c=10)||c==100)d=200;后,c和d的值分别是
A.1和2 B.1和200
C.10和2 D.100和200
10.下列数组初始化后,元素值不全为0的是
A.int a[5]={0}; B.int a[5]={'0'};
C.static int a[5]; D.int a[5]={0,0,0,0,0};
11.设int a[]={11,21,31,41,51,61},*p=a;,表达式*p++的值是
A.11 B.21
C.31 D.41
12.设
Struct t
{ int a;
float b;
char c[10];
}x[2]={{1,6.6,"Dollar"},{2,9.8,"Pound"}};
则执行语句printf("%d,%s",x[1].a,x[1].c);后输出结果是
A.1,Dollar B.2,Dollar
C.1,Pound D.2,Pound
13.设char sl[10]="Better",s2[10]="Life";,执行语句printf("%s",strcat(s1,s2));后输出结果是
A.LifeBetter B.BetterLife
C.Better D.Life
14.下列程序段的输出结果是
int n=6;
while(n>3)
{ n--;
if(n%2==0) continue;
printf("%nd",n);
}
A.13 B.35
C.53 D.654
15.下列程序的输出结果是
int a=l;
int f ()
{ int a=2;return a;}
void main()
{printf("%d,%d",a,f());}
A.1,1 B.1,2
C.2,1 D.2,2
二、填空题(本大题共10小题,每小题2分,共20分)
16.指针变量中存放的是______。
17.设int a;,从键盘输入数据给变量a的输入语句是______。
18.break语句除可在循环语句中使用外,还可以用于______。
19.一个源程序中允许有多个函数,但必须有且只能有一个______。
20.设int m[10],*p;,使指针变量p指向数组m首元素的语句是______。
21.运算符+=、&&、<和!中,优先级最低的是______。
22.设int x=12;,执行语句X>>=2;后X的值是______。
23.计算使用的系统函数是______。
24.设char s[20]="Computer";,则strlen(s)的值是______。
25.表达式(int)(3.5+1/2)的值是______。
三、程序分析题(本大题共4小题,每小题4分,共16分)
阅读下列程序,将输出结果写到答题纸上。
26.void main()
{
int k,m;
for(m=3;m<12;m++)
{ for(k=2;k<m;k++)
if(m%k==0) break;
if(k==m) printf("%2d",m);
}
}
27.#define N 5
void main()
{
int k, sl=0,s2=0;
for(k=1;k<N;k++)
switch(k%4)
{ case1:
case 2:sl+=1;break;
case3:
case0:s2+=1;break;
}
printf("s1=%d,s2=%dn",s1,s2);
}
28.int f(intt)
{
int b;
static int c=3;
b=c+t;
c++;
return b;
}
void main()
{
int i,k;
for(i=1;i<3;i++)
{ k=f(i);
printf("%2d",k);
}
printf("\n");
}
29.int f(int n)
{
if(n=2)return 0;
else return(n+f(n-2));
}
void main()
{
int a=10;
printf("%d\n",f(a));
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
请将下列程序横线处缺少的部分在答题纸相应位置补上,使其能正确运行。
30.求a、b和c的最大值并输出。
#include<stdio.h>
int f(int x,______) /*第一空*/
{return(______?y∶x);} /*第二空*/
void main()
{
int a=3,b=4,c=5,d;
______=f(f(a,b),f(a,c)); /*第三空*/
printf("%dn",d);
}
31.计算并输出结果。
#include<stdio.h>
void main()
{
float sum;
float fun(int);
______=fun(10); /*第一空*/
printf("sum=%.4f\n",sum);
}
float fun(______n) /*第二空*/
{
int f=1,i;
float m=0;
for(i=1;i<=n;i++)
{ m+=1.0/i*f;
______=-f; /*第三空*/
}
return m;
}
32.将一维数组逆序存放后输出。例如int a[3]={1,2,3},逆序存放后int a[3]={3,2,1}。
include<stdio.h>
void move(int*p,int n);
void main()
{
int i,n=6,a[6]={1,2,3,4,5,6};
move(a,5);
for(i=0;i<n;i++) printf("%5d",______);/*第一空*/
}
void move(int*p,int n)
{
______; /*第二空*/
for(k=0;k<=n/2;k++)
{c=p[k];p[k]=p[n-k];______;} /*第三空*/
}
五、程序设计题(本大题共2小题,每小题8分,共16分)
33.计算1到100的平方根,并将结果保存至二进制文件root.dat。
34.从键盘输入10个整数,由大到小排序后输出。
本自考试题wrod文档下载地址: