2011年10月全国自考高级语言程序设计(一)真题及参考答案 下载本文

2011年10月全国自考高级语言程序设计试题

高级语言程序设计(一) 试题

课程代码:00342

一、单项选择题(本大题共1 5小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或 未选均无分。

1.自定义标识符由字母、数字或下划线组成,且第一个字符必须是( D ) A.数字 C.数字或下划线

B.字母或数字 D.字母或下划线

2.运算符优先级符合由高到低排列的一组是( A ) A.+、!=、&&、= C.!=、+、=、&&

3.转义字符中正确的是( C ) A.'\\' C. '\\\\'

B. '\\xyz' D. '\\820' B.&&、!=、+、= D.&&、=、!=、+

14.下列程序段执行后x、y和z的值分别是( B ) int x=10,y=20,z=30; if(x>y)z=x;x=y;y=z; A.10,20,30 C.20,30,10

B.20,30,30 D.20,30,20

5.下列程序段执行后的输出结果是( A ) int k=4,a=3,b=2,c=l;

printf(\A.1 C.3

B.2 D.4

6.关于for(表达式1;表达式2;表达式3),叙述正确的是( D ) A.表达式1不可以缺省 C.表达式3不可以缺省

7.设int p[4];,则标识符p是( B ) A.整型数组名 C.指针函数名

B.指针数组名 D.指向整型变量的指针

*

B.表达式2不可以缺省 D.三个表达式都可以缺省

8.在循环结构中,continue语句的作用是( C ) A.继续执行本次循环 C.提前结束本次循环

9.数组定义及初始化正确的是( D ) A.char a[5]={};

B.int a[5]={0,1,2,3,4,5};

1

B.提前退出多重循环 D.提前退出本重循环

C.char a={\;

D.char a[]={'0','1','2','3','4','5'};

1O.设int m;,与while(!m)等价的是( C ) A.while(m!=0) C.while(m==O)

B.while(m==1) D.while(m!=1)

11.设char s1[]=\;,执行语句printf(\,strlen(strcpy(s1,s2)));后的输出结果是( A ) A.4 C.9

B.5 D.1O

12.下列不属于C语言数据类型的保留字是( A ) A.real C.float

*

B.void D.double

13.设int i,j=7,p=&j;,与赋值语句i=j;等价的是( D ) A.i=&p; C.p=&j;

B.p=&j; D.i=p:

**

14.正确表示数学关系式x≥y≥z的C语言表达式是( B ) A.x>=y>=z C.(x>=y)&(y>=z)

B.(x>=y)&&(y>=z) D.(x>=y)||(y>=z)

15.设struct student{char name[10];char sex;}stu;,则sizeof(stu)的值是( C ) A.2 C.11

B.1O D.12

二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。

16.设int a=2,b=3;float x=3.5,y=2.5;,表达式(float)(a+b)/2+(int)x%(int)y的值是___3.5___。 17.设int i;,语句for(i=l;i==10;i++)++i;循环的次数是___0___。

l8.数组名作为实参传给被调用的函数时,形参获得的是___数组的首地址_________。 19.设int x=9;,执行语句printf(\,x<<2);后的结果是____36__。

20.设char c[5]={'c','d','\\0','e','\\0'};,执行语句printf(\,c);后的结果是___cd___。 21.设int a[2][3],p;,将数组a的最后一个元素赋值给变量p的正确语句是___p=[1][2]________。 22.字符串\在内存中占用的字节数是___2___。

23.设int x=l,y=1;,则执行表达式—x&&y++后,y的值是__1____。 24.函数的自我调用被称为___递归___调用。

25.设char w;int x;float y;double z;,则表达式w*x+z-y的值的类型是___double___。 三、程序分析题(本大题共4小题,每小题4分,共1 6分) 阅读下列程序,将输出结果写到各题右侧的空白处。 26.

void main()

2

{

int n=9;

if(n++<10) printf(\ else printf(\

} 27.

void fun(int x, int y, int z) {

z=xx+yy; printf(\ }

void main()

{

int a=31; fun(5,2,a); printf(\ } 28.

void main() {

int a[]={0,9,8,7,6,5,4,3,2,1},p=a; printf(\p+9,(p+9)); } 29.

func(int a) {

static int m=O; m+=a;

printf(\ }

void main() {

int k=4; func(k);func(k); }

四、程序填充题(本大题共3小题,每小题6分,共18分)

3

*

*

*

*

*

请将下列程序横线处缺少的部分补上,使其能正确运行。 30.求数组a的所有元素之和。 #define N 3 void main() {

int i,j,sum=0;

int a[N][N]={2,4,6,8,10,12,14,16,18}; for(i=0;i

31.键入一个字符串(不超过80个字符)存至字符数组s中并对各元素升序排序。 #include void main() {

int i,j,len; char s[81],t; gets(s); puts(s); len=strlen(s); for(i=0;i

for(j=i+1;j

{

t=s[i];

s[i]=s[j];

______; /*第三空*/

} puts(s); }

32.输入一个正整数,若是素数(或称质数)则输出“Yes”,否则输出“No”。 void main() {

int i,n;

scanf(\/*第一空*/

4

printf(\ for(i=2;i

if(n%i==0)______; /*第二空*/ if(______)printf(\\n\/*第三空*/ else printf(\ }

五、程序设计题(本大题共2小题,每小题8分,共16分)

33.从键盘输入一串字符(!作为结束标志),保存到文件“user.dat”中。 34.某幼儿园入园分班规定如下:

?若?1~3岁进入小班,输出标志\??若4岁进入中班,输出标志\若5~6岁进入大班,输出标志\ ???其它年龄不得入园,输出标志\'t enter\输入某个孩子的年龄后,输出其分班情况(要求使用switch语句)。

参考答案

一、单项选择题

1-5、DACBA 6-10、DBCDC 11-15、AADBC。 二、填空题

16、3.5 17、0

18、数组的首地址(实参的首地址) 19、36 20、cd 21、p=a[1][2] 22、2 23、1 24、递归 25、double 三、程序分析题

26、10 27、29 31

5