全国月高等教育自学考试高级语言程序设计一考试试题.docx
《全国月高等教育自学考试高级语言程序设计一考试试题.docx》由会员分享,可在线阅读,更多相关《全国月高等教育自学考试高级语言程序设计一考试试题.docx(9页珍藏版)》请在冰豆网上搜索。
全国月高等教育自学考试高级语言程序设计一考试试题
做试题,没答案?
上自考365,网校名师为你详细解答!
全国2007年1月高等教育自学考试
高级语言程序设计
(一)试题
课程代码:
00342
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.以下正确的C语言自定义标识符是( )
A._laB.2a_
C.doD.a.12
2.在C语言中,错误的常数表示是( )
A.0LB.-0x6aL
C.′6′D.1.234E3.5
3.设inta,x=2;执行语句a=x>0?
3*x(x=10);后,变量x的值是( )
A.1B.2
C.6D.10
4.设有以下程序段:
intx=2,y=2,z=0,a;
a=++x||++y&&z++;
printf(″%d,%d,%d\n″,x,y,z);
执行后输出的结果是( )
A.2,2,0B.3,3,1
C.3,2,0D.3,2,1
5.在C语言中,字符串″\\TOP\t\65\″″的长度是( )
A.5B.7
C.9D.12
6.设floatx;,由键盘输入:
12.45,能正确读入数据的输入语句是( )
A.scanf(″%5f″,&x);B.scanf(″%5d″,&x);
C.scanf(″%f″,x);D.scanf(″%s″,&x)
7.逗号表达式a=2*6,a*3,a+5的值是( )
A.12B.17
C.36D.41
8.C语言表达式3.26*exp(x)+(a+b)/3所表示的数学表达式是( )
A.3.26x+
B.3.26xe+
C.3.26ex+
D.3.26lnx+
9.在C语言中,下列运算符中结合性属于自右向左的是( )
A.&&B.--
C.<
10.设int(*p)[4];,则p的含义是( )
A.指向整型变量的指针数组
B.指向4个整型变量的函数指针
C.4个指向整型变量的指针变量
D.指向具有4个整型元素的一维数组的指针
11.设charx[][10]={″Windows″,″dos″,″unix″};,执行pintf(″%c″,x[1][2]);后输出的结果是( )
A.nB.i
C.oD.s
12.设inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];,则与数组元素a[1][2]等价的是( )
A.*((p+2)+3)B.*(*(p+3))
C.(*ptr+1)+2D.*((ptr+1)[2])
13.设inta=11,b=2;,执行下述程序段后,变量a和b的值分别是( )
do
{a/=b++;
}while(a>b);
A.1,3B.1,4
C.2,3D.2,4
14.在C语言中,下列错误的说法是( )
A.函数可以递归调用
B.不允许在函数中再定义函数
C.递归程序不可能用非递归算法实现
D.对于continue语句,可以通过改变程序的结构而不使用它
15.设inta[2][3]={{1},{2,3}};,则元素a[1][0]的值是( )
A.0B.1
C.2D.3
16.若main()带参数,正确的是( )
A.main(intargc,char*argv)B.main(intargc,char*argv[])
C.main(intargc,charargv[][])D.main(intargc,charargv[])
17.设
structstudent
{charname[10];
intsex;
intnum;
}s,*p=&s;
以下对结构型变量s中成员num的非法引用是( )
A.p->numB.(*p).num
C.s.numD.student.num
18.下列说法中正确的是( )
A.C语言的预处理命令只有宏定义和文件包含
B.预处理命令只能出现在主函数之前
C.所有预处理命令都是以符号″#″开头
D.有些预处理命令不是在源程序编译之前处理
19.设enumweek{mon,tue=2,wed,thu,sat=6}day;,则枚举常量mon和thu的值分别是( )
A.0和4B.1和4
C.0和3D.1和5
20.下列属于文件包含的命令是( )
A.#defineN25B.#endif
C.#include″stdio.h″D.#else
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
21.一个C语言程序的执行起点是__________。
22.设intx=3,y=5;,则执行printf(″%d\n″,x^y);后输出__________。
23.设ints[3][2]={1,2,3,4,5,6},(*p)[2]=s;,则*(*(p+1)+1)的值是__________。
24.C语言中,可以处理的两类文件分别是文本文件和__________。
25.设inta=2;,则执行a+=a*=15;后,变量a的值是__________。
26.设doubley[4][5];,则数组y中元素的个数是__________。
27.设intx=7,y=3,则表达式x%y+x/y的值是__________。
28.设chars[]={″apple″};,则执行printf(″%d\n″,strlen(s));后输出的值是__________。
29.设
union
{
inti;
charj[10];
floatk;
}u;
则sizeof(u)的值是__________。
30.设
#defineMOD(a,b)a%b
main()
{intx=4,y=16,z;
z=MOD(y,x);
printf(″%d\n″,z++);
}
则程序执行的结果是__________。
三、程序分析题(本大题共5小题,每小题5分,共25分)
阅读下列程序,将输出结果写到各题右侧的空白处。
31.main()
{intx=15;
while(x<20)
{x++
if(x/3!
=0){x++;break;}
elsecontinue;
}
printf(″%d\n″,x);
}
32.fun(inta[],inti,intj)
{intt;
if(i{t=a[i];a[i]=a[j];a[j]=t;
i++;j--;
fun(a,i,j);
}
}
main()
{intx[]={2,4,6},i;
fun(x,0,2);
for(i=0;i<3;i++)printf(″%2d″,x[i]);
printf(″\n″);
}
33./*程序运行时,输入一个整数5*/
main()
{inta,b[10],c,i=0;
printf(″输入一个整数\n″);
scanf(″%d″,&a);
while(a!
=0)
{c=a%2;
a=a/2;
b[i]=c;
i++;
}
for(;i>0;i--)printf(″%d″,b[i-1]);
}
34.#include
main()
{inta,b,i;
a=b=0;
for(i=0;i<=10;i+=2)
{a+=i;
b+=i+1;
}
printf(″a=%d\n″,a);
printf(″b=%d\n″,b-11);
}
35.inta=100;
s()
{staticinta=20;
a++
printf(″%d\n″,a);
}
main()
{inti;
for(i=1;i<=3;i++)
{a++;
printf(″%d,″,a);
s();
}
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36.对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。
#define_______/*第一空*/
main()
{inti,a[N];
for(i=N-1;_______;i--)/*第二空*/
scanf(″%d″,_______);/*第三空*/
for(i=0;iprintf(″\n″);
}
37.学生成绩的字母等级和分数范围如下:
字母等级分数范围
A90~100
B80~89
C70~79
D60~69
E0~59
其它字母输入错误
输入字母等级之后,输出相应的分数范围。
main()
{
_______;/*第一空*/
scanf(″%c″,&score);
switch(score)
{
case′A′:
printf(″A:
90~100\n″);_________;/*第二空*/
case′B′:
printf(″B:
80~89\n″);break;
case′C′:
printf(″C:
70~79\n″);break;
case′D′:
printf(″D:
60~69\n″);break;
case′E′:
printf(″E:
0~59\n″);break;
_______:
printf(″输入错误\n″);/*第三空*/
}
}
38.文本文件num.dat中含有若干个整数,将这些数据读出后求出它们的和,再将这些数据与它们的和分别显示到屏幕上。
#include
main()
{intnum;longintsum=0L;
FILE*fp;
fp=fopen(″num.dat″,″r″);
do
{
fscanf(________,&num);/*第一空*/
sum+=_________;/*第二空*/
printf(″%5d″,num);
}while(_______);/*第三空*/
printf(″\nsum=%ld\n″,sum);
fclose(fp);
}
五、程序设计题(本大题共3小题,第39小题5分,第40、41小题各6分,共17分)
39.输入两个实型数x和y,计算并输出它们的和、差、积和商。
40.输入自变量x的值后,计算并输出y的值。
计算公式:
y=
41.用循环结构输出下列数字金字塔(共9行)。
1
121
12321
1234321
……………
12345678987654321