高等教育自学考试高级语言程序设计试题九套.docx
《高等教育自学考试高级语言程序设计试题九套.docx》由会员分享,可在线阅读,更多相关《高等教育自学考试高级语言程序设计试题九套.docx(88页珍藏版)》请在冰豆网上搜索。
高等教育自学考试高级语言程序设计试题九套
全国2010年1月高等教育自学考试
高级语言程序设计
(一)试题
课程代码:
00342
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列不属于保留字的是(C)
A.default
B.register
C.sruct
D.unsign
2.下列不能作为常量的是(A)
A.0582
B.0xa5
C.’\n’
D.
3.设typedeflongclass;,则class是(C)
A.整型变量
B.长整型变量
C.长整型数据类型的新标识符
D.新的而非长整型数据类型的标识符
4.设charc=’A’;inti=l,j;,执行j=!
c&&i++;后,i和j的值分别是(C)
A.1和0
B.1和1
C.2和0
D.2和l
5.设inta;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是(A)
A.1和2
B.2和3
C.3和4
D.4和5
6.下列关于函数定义正确的是(D)
A.fun(intx,y){intz;returnz;}
B.voidfun(intx,inty){returnx+y;}
C.fun(x,y){intx,y;doublez;z=x+y;returnz;}
D.doublefun(intx,inty){doublez;z=x+y;returnz;)
7.下列用户自定义标识符正确的是(B)
A.4a
B.b_1
C.-&
D.*p
8.下列程序段中循环体执行的次数是(B)
intx=-1;
do
{
x=x*x;
}while(!
x);
A.0
B.1
C.2
D.无限
9.实现字符串连接的系统函数名是(A)
A.strcat
B.strcmp
C.strcpy
D.strlen
10.若实参是一个数组名,在调用函数时,实参向形参传递的是(B)
A.数组的长度
B.数组的首地址
C.数组每个元素的值
D.数组每个元素的地址
11.设inta[][4]={l,2,3,4,5,6,7};,则a[1][3]的值是(A)
A.0
B.3
C.4
D.7
12.若定义一个只限本源文件使用的全局变量,则该变量的存储类别是(C)
A.extern
B.register
C.static
D.auto
13.设chark=’a’;floatj=;,执行k+=5/j;printf(“%c”,k);后,输出结果是(C)
A.a
B.b
C.c
D.d
14.下列程序段正确的是(D)
A.chars[]={‘xyz’};
scanf(‘‘%s”,s);
B.float*p,i;
p=*p+i;
C.chars[5]=‘word’;
puts(s);
D.inta[5]={0},*p=a;
*p=*(p+1);
15.关于编译预处理命令,叙述正确的是(A)
A.预处理命令都以“#”开头
B.预处理命令必须位于程序的首部
C.预处理命令只能实现宏定义和条件编译的功能
D.每个程序必须在开头使用预处理命令#include
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.设floata,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是______(a-b)==(b-c)______。
17.设inti;floatf=;,执行i=(int)f;后,变量f的值是_____3_______。
l8.设chars[]=”\t\’Name\\Address\n”;,s的长度是_____15_______。
19.执行printf(“%d\n”,3&&2&5);后的结果是_____0_______。
20.算术运算符的优先级比关系运算符的优先级_____高_______。
21.单目运算符的结合性是_____自右向左_______。
22.设intx=1,y=3,z;,执行z=x>y++x:
y++;后,z的值是______3______。
23.设intm=3;floatn=;charch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:
3,12.6a<回车换行>,则scanf语句应是_____scanf(“%d,%f%a”,&m,&n,&ch);_______。
24.若定义函数时类型缺省,则该函数默认的类型是____int________。
25.设inta[5]={l,3,5,7,9},*p=&a[2];,则++(*p)的值是_____6_______。
三、程序分析题(本大题共4小题,每小题4分,共16分)
阅读下列程序,将输出结果写到各题右侧的空白处。
26.
voidmain()
{
intcolor=2;
switch(color)
{
casel:
printf(“red\n”);break;
case2:
printf(“yellow\n”);
case3:
printf(“blue\n”);
}yellow
}blue
27.
voidmain()
{
intm,n;
for(m=1;m<=3;m++)
{
for(n=1;n<=2*m-l;n++)printf“*”);
printf(“\n”);*
}***
}*****
28.
voidmain()
{
floatx=;
inti;
i=x;
printf(‘x=%5.3f,i=%d\n”,x,i);
}x=,i=3
29.
voidmain()
{
inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{printf(“%5d”,a[i][j]);123
b[j][i]=a[i][j];456
}
printf(‘‘\n”);
}
printf(“arrayb:
\n”);arrayb:
for(i=0;i<=2;i++)142536
for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
请将下列程序横线处缺少的部分补上,使其能正确运行。
30.从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。
#defineN10
structstudent
{
charname[20];
charsex;
intscore;
}stu[N];
voidmain()
{
inti;
floataver,sum=0;
for(i=0;i {scanf(“%d,%c%s”,__&stu[i].score,&stu[i].sex,&stu[i].name_______);/*第一空*/
sum=sum+___stu[i].score______;/*第二空*/
}
aver=___sum/N________;/*第三空*/
printf(“aver=%6.2f\n”,aver);
}
31.从键盘输入一串字符(以“”作为结束标志),保存到文本文件text.txt中。
#include“”
voidmain()
{
FILE__*fp_____;/*第一空*/
charch;
if((fp=fopen(“text.txt’’,___”w”____))==NULL)exit(0);/*第二空*/
while((ch=getchar())!
=’’)fpute(ch,___fp______);/*第三空*/
fclose(fp);
}
32.用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
递归公式如下:
age(n)=
intage(intn)
{
if(n==1)return(__10______);/*第一空*/
elsereturn(_age(n-1)+2________);/*第二空*/
}
voidmain()
{
printf(‘‘%d\n”,__age(5)_______);/*第三空*/
}
五、程序设计题(本大题共2小题,每小题8分,共16分)
33.从键盘输入三个整数a、b和c,按照由小到大的顺序输出。
#include<>
voidmain(){
inta,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(aif(bprintf("%d->%d->%d\n",c,b,a);
}
34.
(1)编写一函数,将指针变量pl和p2所指向的整数值交换。
其中:
函数头是voidswap(int*pl,int*p2)
voidswap(int*p1,int*p2){
intt;
t=*p1;*p1=*p2;*p2=t;
}
(2)编写一个主程序,从键盘输入两个整数,调用上述函数实现两个数据的交换并输出。
voidmain(){
inta=19,b=-99,*p=&a,*q=&b;
swap(p,q);
printf(“%d,%d”,*p,*q);
}
全国2009年10月高等教育自学考试
高级语言程序设计
(一)试题
课程代码:
00342
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.主函数头中的“main”是(B)
A.保留字
B.函数名
C.变量名
D.类型名
2.下列运算符中优先级最高的是(D)
A.:
B.&&
C.
D.!
3.设staticinta;,执行表达式(a==1)&&(a=-1)&&(a=2)后,a的值是(D)
B.0
4.设inta,b;,与a+=b++;等价的是(C)
=b++;
=++b;
=a+b++;
=a+++b;
5.关于宏定义命令,叙述正确的是(B)
A.在程序编译前进行宏替换
B.在程序编译时进行宏替换
C.在程序编译后进行宏替换
D.在程序运行时进行宏替换
6.下列表达式值为0的是(D)
/2
&&5
C.!
25
&5
7.对循环结构正确的叙述是(B)
循环体可能被执行0次
循环体至少被执行1次
循环体不可能被执行0次
循环体不可能被执行无限次
8.下列数组定义并初始化正确的是(C)
s[]=(1,2,3,4,5);
s[5]=1,2,3,4,5;
s[2+3]={1,2,3};
s(5)={1,2,3};
9.设chars[10];,能将字符串“+-*/”正确输入的语句是(B)
(“%s”,s);
(“%s”,*s);
(“%s”,s[0]);
(“%s”,s[10]);
10.对于C语言中的函数,正确的叙述是(D)
A.两个函数可以相互调用,但不能自己调用自己
B.程序执行可以始于任何一个函数,但结束必须在主函数
C.两个函数既可以定义成并列关系又可以定义成嵌套关系
D.一个C程序可以由多个文件组成,一个文件又可以由多个函数组成
11.设intm[5],*p=m;,与元素m[5],*p=m;,与元素m[2]等价的是(C)
+2
B.*m+2
C.*(p+2)
D.*p+2
12.设inta[3][3]={{1,2,3},{4,5},{6}};,元素a[1][2]的值是(A)
B.1
13.设typedefintARR[10];,与ARRa,*b;等价的定义是(D)
a,b;
a,*b;
a[10],*b;
a[10],*b[10];
14.设intn,p=0;,与语句if(n!
=0)p=1;等价的是(A)
(n)p=1;
(n=1)p=l;
(n!
=1)p=1;
(!
n)p=l;
15.文件使用方式“rb+”的含义是(C)
A.对文本文件只读
B.对文本文件读和写
C.对二进制文件读和写
D.对二进制文件只写
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.执行printf(“%d\n”,1+!
2+(3<=4)+5/6+7%8);后的输出结果是____9_____。
17.设intm=0;,执行表达式m(m=2)(m=3)(m=4)后,m的值是____2_____。
18.设intn;,“n的值能同时被3和5整除”的逻辑表达式是____n%(3*5)!
=0_____。
19.执行循环语句for(;’0’;)printf(“Happy!
\n”);后,输出“Happy!
”的行数是___无数______。
20.设宏定义#defineK2+3执行printf(“%d\n”,K/K);后的输出结果是____6_____。
21.设intn;,执行for(n=0;n==0;n++)n=0;后,循环体被执行的次数是____1_____。
22.执行printf(“%d\n”,5&5-3&&4);后的输出结果是____4_____。
23.表示空类型(或称无类型)的保留字是____void_____。
24.设char*strp=“CHINA”;,执行printf(“%s\n”,strp+3);后的输出结果是___NA_____。
25.使用系统函数对两个字符串进行比较,该系统函数的名字是____strcmp()_____。
三、程序分析题(本大题共4小题,每小题4分,共16分)
阅读下列程序,将输出结果写到各题右侧的空白处。
26.
voidmain()
{
inti,a[5],*p;
for(i=4;i>=0;i--)*(a+i)=i;
for(p=a;p printf(“\n”);
}01234
27.
gcd(intp,intq)
{
if(p==q)returnp;
elseif(p>q)returngcd(p-q,q);
elsereturngcd(p,q-p);
}
voidmain()
{
intm=24,n=36,min,max;
max=gcd(m,n);
min=m*n/max;
printf(“max=%d,min=%d\n”,max,min);
}max=12,min=72
28.
s(inta)
{
staticintb=l0;
if(a%2==1)return(++b);
elsereturn(++a);
}
voidmain()
{inti;
for(i=0;i<3;i++)printf(“%d\t”,s(i));
printf(“\n”);
}1113
29.
structpeople
{
charname[10];
floatscore;
}per[]=={{“Tom”,},{“Mary”,}};
voidmain()
{
structpeople*p=per+1;
printf(“%s,%.1f\n”,per[0].name,pscore);
}Tom,
四、程序填充题(本大题共3小题,每小题6分,共18分)
请将下列程序横线处缺少的部分补上,使其能正确运行。
30.对两个整型变量先进行输入和输出,将它们的值交换后再输出。
#definePRprintf(“a=%d,b=%d\n”,a,b)
voidmain()
{
inta,b,__temp____;/*第一空*/
scanf(“%d%d”,_&a,&b________);/*第二空*/
PR;
temp=a,__a=b_____,b=temp;/*第三空*/
PR;
}
31.为二维数组各元素输入数据,计算并输出全部元素之和。
#defineN5
voidmain()
{
inti,j,a[N][N],sum=__0_____;/*第一空*/
for(i=0;i for(j=0;j {
scanf(“%d”,&a[i][j]);
sum+=__a[i][j]____________;/*第二空*/
}
printf(“sum=%d\n”,____sum_______);/*第三空*/
}
32.为n输入一个正整数值后,计算并输出sum=1-的值。
voidmain()
{
intn,k=0;
float__sum=;/*第一空*/
scanf(″%d″,&n);
do
{
k++;
if(__n%2==1______)sum+=/k;/*第二空*/
elsesum-=/k;
}while(_--n_______);/*第三空*/
printf(″sum=%.4f\n″,sum);
}
五、程序设计题(本大题共2小题,每小题8分,共16分)
33.
(1)根据下列计算公式写出函数,将华氏温度(F)转化为摄氏温度(C)。
公式:
C=(F-32)
函数头为:
floatchange(floatF)
floatchange(floatF){
floatc;
c=5*(F-32)/9;
return(c);
}
(2)写出主函数,输入华氏温度,调用函数change,计算并输出对应的摄氏温度。
输出形式(温度要求两位小数):
F=C=
voidmain(){
floatC,n;
scanf(“%f”,&n);
C=change(n);
printf(“%.2f”,C);
}
34.用循环结构实现下列问题:
现有1020本书,第一天卖掉一半多两本,以后每天卖掉剩下的一半多两本,直到卖完为止。
计算并输出卖完所需要的天数。
voidmain(){
intm,n=1020,t;
do{
m=n-(n/2+2);
t++;
n=m;
}
while(n>0);
printf(“%d”,t);
}
全国2009年1月高等教育自学考试
高级语言程序设计
(一)试题
课程代码:
00342
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.设inta,b;,则表达式(b=2,a=5,b++,a+b)的值是( C )
A.2
B.5
C.7
D.8
2.设inta=7;floatx=,y=;,则表达式x+3%(int)(x+y)/4的值是( C )
A.
B.3.5
C.
D.
3.设charcl;,则cl中为小写英文字母字符的正确表达式为( B )
A.'a'<=c1='z'
B.(cl>='a')&&(cl<='z')
C.(cl>=a)&&(c1<=z)
D.('a'<=c1)||('z'>=c1)
4.一维数组a的正确说明语句为( B )
A.inta(10);
B.intn=10,a[n];
C.intn;
D.#defineSIZE10
scanf(″%d″,&n);
inta[SIZE];
inta[n];
5.已知字符'A'的ASCII码值是65,且charcl='A',c2='D';
则执行语句printf(″%d,%d\n″,cl,c2-2);后的输出结果是( D )
A.A,D
B.A,B
C.65,68
D.65,66
6.正确的条件语句为( C )
A.if((a=b;)>0)t=a;
B.if((a=b)>0)thent=a;
C.if(a>b)t=a;
D.if(a
7.若有下列程序段:
intx=l,y=2;x=x+y;y=x-y;x=x-y;
则执行后x和y的值分别为( C )
A.1和2
B.2和2
C.2和1
D.1和1
8.设intk,a,b;unsignedlongw=5;doublex=;则不符合类型要求的表达式是( A )
A.x%(-3)
B.w+=2
C.k=(a=2,b=3)
D.a+=(b=4)*(a=3)
9.设inta=3,b=4;,则printf("%d,%d,"(a,b),(b,a));的输出结果是( B )
A.3,4
B.4,3
C.3,4,4,3
D.4,3,3,4
10.设inti=l,k=2;,则错误的循环语句是( A )
A.for(i=0,k=-1;i++,k++);
B.for(;k-1;i++);
C.for(i=1,k=4;k--;i++);
D.for(;k--;);
11.设typedefstruct{inta;chars[10];}TYPE;
TYPEu1;
则printf("%d\n",sizeof(u1));的输出结果是( B )
A.2
B.12
C.14
D.16
12.设charsl[]="string1",s2[8],*s3,*s4="string2";,则对系统函数strcpy的错误调用是(C)
A.strcpy(s1,"string1");
B.strcpy(s4,"string2");
C.strcpy(