1、高等教育自学考试高级语言程序设计(一)真题 2014 年 4 月及答案解析(总分:100.00,做题时间:150 分钟)一、课程代码:00342(总题数:1,分数:0.00)二、选择题部分(总题数:15,分数:30.00)1.表达式 9%45+15/6*2 的值是( )。(分数:2.00)A.4B.5C.10D.132.设 int a10;,则数组 a 的下标正确的使用范围是( )。(分数:2.00)A.0 到 9B.0 到 10C.-1 到 9D.1 到 103.执行语句 printf(“%c“,A+3);后输出结果是( )。(分数:2.00)A.3B.AC.DD.684.设 int ml=
2、60,m2=80,m3=100;,表达式 m3m2ml 的值是( )。(分数:2.00)A.0B.1C.60D.1005.下列程序段执行后,变量 n 的值是( )。 Static int n; do n=n+1; while(ndB.int a5=0;C.static int a5;D.int a5=0,0,0,0,0;11.设 int a=11,21,31,41,51,61,*p=a;,表达式*p+的值是( )。(分数:2.00)A.11B.21C.31D.4112.设 Struct t int a; float b; char c10; x2=1,6.6,“Dollar“,2,9.8,“P
3、ound“; 则执行语句 printf(“%d,%s“,x1.a,x1.c);后输出结果是( )。(分数:2.00)A.1,DollarB.2,DollarC.1,PoundD.2,Pound13.设 char sl10=“Better“,s210=“Life“;,执行语句 printf(“%s“,strcat(s1,s2);后输出结果是( )。(分数:2.00)A.LifeBetterB.BetterLifeC.BetterD.Life14.下列程序段的输出结果是( )。 int n=6; while(n3) n-; if(n%2=0) continue; printf(“%nd“,n);
4、(分数:2.00)A.13B.35C.53D.65415.下列程序的输出结果是( )。 int a=l; int f () int a=2;return a; void main() printf(“%d,%d“,a,f();(分数:2.00)A.1,1B.1,2C.2,1D.2,2三、非选择题部分(总题数:10,分数:20.00)16.指针变量中存放的是 1。(分数:2.00)填空项 1:_17.设 int a;,从键盘输入数据给变量 a 的输入语句是 1。(分数:2.00)填空项 1:_18.break 语句除可在循环语句中使用外,还可以用于 1。(分数:2.00)填空项 1:_19.一个
5、源程序中允许有多个函数,但必须有且只能有一个 1。(分数:2.00)填空项 1:_20.设 int m10,*p;,使指针变量 p 指向数组 m 首元素的语句是 1。(分数:2.00)填空项 1:_21.运算符+=、m_27.#define N 5 void main() int k, sl=0,s2=0; for(k=1;k_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_29.int f(int n) if(n=2)return 0; else return(
6、n+f(n-2)); void main() int a=10; printf(“%d/n“,f(a); (分数:4.00)_五、程序填充题(本大题共 3 小题,每小题 6 分,(总题数:3,分数:18.00)30.求 a、b 和 c 的最大值并输出。 #include int f(int x, 1) /*第一空*/ return( 2?yx); /*第二空*/ void main() int a=3,b=4,c=5,d; 3=f(f(a,b),f(a,c); /*第三空*/ printf(“%dn“,d); (分数:6.00)填空项 1:_31.计算 (分数:6.00)填空项 1:_填空项
7、1:_填空项 1:_32.将一维数组逆序存放后输出。例如 int a3=1,2,3,逆序存放后 int a3=3,2,1。 include void move(int*p,int n); void main() int i,n=6,a6=1,2,3,4,5,6; move(a,5); for(i=0;i1);/*第一空*/ void move(int*p,int n) 2; /*第二空*/ for(k=0;km2ml 的值是( )。(分数:2.00)A.0B.1 C.60D.100解析:5.下列程序段执行后,变量 n 的值是( )。 Static int n; do n=n+1; while(
8、ndB.int a5=0; C.static int a5;D.int a5=0,0,0,0,0;解析:11.设 int a=11,21,31,41,51,61,*p=a;,表达式*p+的值是( )。(分数:2.00)A.11 B.21C.31D.41解析:12.设 Struct t int a; float b; char c10; x2=1,6.6,“Dollar“,2,9.8,“Pound“; 则执行语句 printf(“%d,%s“,x1.a,x1.c);后输出结果是( )。(分数:2.00)A.1,DollarB.2,DollarC.1,PoundD.2,Pound 解析:13.设
9、char sl10=“Better“,s210=“Life“;,执行语句 printf(“%s“,strcat(s1,s2);后输出结果是( )。(分数:2.00)A.LifeBetterB.BetterLife C.BetterD.Life解析:14.下列程序段的输出结果是( )。 int n=6; while(n3) n-; if(n%2=0) continue; printf(“%nd“,n); (分数:2.00)A.13B.35C.53 D.654解析:15.下列程序的输出结果是( )。 int a=l; int f () int a=2;return a; void main() p
10、rintf(“%d,%d“,a,f();(分数:2.00)A.1,1B.1,2 C.2,1D.2,2解析:三、非选择题部分(总题数:10,分数:20.00)16.指针变量中存放的是 1。(分数:2.00)填空项 1:_ (正确答案:地址)解析:17.设 int a;,从键盘输入数据给变量 a 的输入语句是 1。(分数:2.00)填空项 1:_ (正确答案:scanf(“%d“,)解析:18.break 语句除可在循环语句中使用外,还可以用于 1。(分数:2.00)填空项 1:_ (正确答案:switch 语句)解析:19.一个源程序中允许有多个函数,但必须有且只能有一个 1。(分数:2.00)
11、填空项 1:_ (正确答案:主函数)解析:20.设 int m10,*p;,使指针变量 p 指向数组 m 首元素的语句是 1。(分数:2.00)填空项 1:_ (正确答案:*(p=m)+)解析:21.运算符+=、m_正确答案:(3 5 7 11 / %md 以宽度 m 输出整型数,不足 m 时,左补空格)解析:27.#define N 5 void main() int k, sl=0,s2=0; for(k=1;k_正确答案:(s1=2 s2=2n )解析:28.int f(intt) int b; static int c=3; b=c+t; c+; return b; void main
12、() int i,k; for(i=1;i_正确答案:(4 6 / static int c=3; c 为静态变量)解析: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); (分数:4.00)_正确答案:(0 这里 if(n=2)为永真不是=2)解析:五、程序填充题(本大题共 3 小题,每小题 6 分,(总题数:3,分数:18.00)30.求 a、b 和 c 的最大值并输出。 #include int f(int x, 1) /*第一空*/ retur
13、n( 2?yx); /*第二空*/ void main() int a=3,b=4,c=5,d; 3=f(f(a,b),f(a,c); /*第三空*/ printf(“%dn“,d); (分数:6.00)填空项 1:_ (正确答案:int y yx d)解析:31.计算 (分数:6.00)填空项 1:_ (正确答案:sum)填空项 1:_ (正确答案:int)填空项 1:_ (正确答案:f)解析:32.将一维数组逆序存放后输出。例如 int a3=1,2,3,逆序存放后 int a3=3,2,1。 include void move(int*p,int n); void main() int
14、i,n=6,a6=1,2,3,4,5,6; move(a,5); for(i=0;i1);/*第一空*/ void move(int*p,int n) 2; /*第二空*/ for(k=0;k=n/2;k+) c=pk;pk=pn-k; 3; /*第三空*/ (分数:6.00)填空项 1:_ (正确答案:ai int k_c pn-k=_c)解析:六、程序设计题(本大题共 2 小题,每小题 8 分,(总题数:2,分数:16.00)33.计算 1 到 100 的平方根,并将结果保存至二进制文件 root.dat。(分数:8.00)_正确答案:(#include #include void mai
15、n() double gen = 0; int sum=0,i; for(i=1;i=100;i+) sum+=i; gen=sqrt(sum); FILE *fp; fp=fopen(“f:/root.txt“,“w“); fwrite( fclose(fp); )解析:34.从键盘输入 10 个整数,由大到小排序后输出。(分数:8.00)_正确答案:(#include / 冒泡排序 void main() int i, j, temp; int a10; printf(“请输入 10 个整数:/n“); for (i = 0; i 10; i+) scanf(“%d,“, for (j = 0; j 10; j+) for (i = 0; i 10- j; i+) if (ai ai + 1) temp = ai; ai = ai + 1; ai + 1 = temp; for (i = 0; i 10; i+) printf(“%d “, ai); /快速排序 #include “stdio.h“ void main() int a10,i,j,k,t printf(“enter the array/n“); for (i=0;iak) k=j; t=ak ak=ai; ai=t; printf(“the sorted array :/n“); for (i=0;i解析: