全国高等教育自学考试高级语言程序设计考试试题

发布时间:2020-05-07 03:55:17

做试题,没答案?上自考365,网校名师为你详细解答!

全国2006年1月高等教育自学考试

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

课程代码:00342

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

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

1.可以用作C程序标识符的一组是(   )

A.print B.i\am

oodb one-half

aBc 3pai

C.Pxq D.Cpp

line# pow

His.age while

2.以下叙述正确的是(   )

A.宏名必须用大写的英文字母表示

B.宏定义不仅是符号替换,也可以赋值

C.宏替换是在程序编译时完成的,不占用程序运行时间

D.引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致

3.char a=\70;则变量a中(   )

A.包含1个字符 B.包含2个字符

C.包含3个字符 D.是非法表示

4.long i=65539;,执行语句printf(%d,i);后的输出结果是(   )

A.-3 B.3

C.65539 D.数据不确定

5.float c,f;,将数学表达式C=(F-32)能正确表示成C语言赋值表达式的是(   )

A.c=5*(f-32)/9 B.c=5/9(f-32)

C.c=5/9*(f-32) D.c=5/(9*(f-32))

6.int i=10;,表达式30-i<=i<=9的值是(   )

A.0 B.1

C.9 D.20

7.以下看作一条C语句的是(   )

A.{;} B.a=5,b=5,c=5;

C.if(x>=0&&y=0); D.if(x= =0)a=5;b=10;

8.在函数调用时,以下说法正确的是(   )

A.函数调用后必须带回返回值

B.实际参数和形式参数可以同名

C.函数间的数据传递不可以使用全局变量

D.主调函数和被调函数总是在同一个文件里

9.int x=7;,执行语句x=x <<2;后,变量x的值是(   )

A.1 B.3

C.14 D.28

10.执行语句printf(|%9.4f|\n,12345.67);后的输出结果是(   )

A.|2345.6700| B.|12345.6700|

C.|12345.670| D.|12345.67|

11.以下说法中正确的是(   )

A.字符型变量可以存放字符串

B.递归调用是指函数调用自己

C.所有的外部函数只能在本文件中被调用

D.在循环体中break语句和continue语句的作用都是结束循环

12.char s[6],*ps=s;,则正确的赋值语句是(   )

A.s=12345; B.*s=12345;

C.ps=12345; D.*ps=12345;

13.int a[ ]={1,2,3,4,5},*p=a;

则数组元素的正确表示是(   )

A.a[2] B.&(a+1)

C.a[5] D.&p

14.对二维数组的正确定义是(   )

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

C.int a[ ] [3]={1,2,3,4,5,6}; D.int a[2,3]={1,2,3,4,5,6};

15.字符数组s作为字符串使用的是(   )

A.char s[ ]=happy;

B.char s[ ]={happy};

C.char s[6]={h,a,p,p,y};

D.char s[4]={h,a,p,p,y};

16.若定义函数:

fun(int a,float b)

{return a+b;

}

则该函数的数据类型是(   )

A.int B.void

C.float D.不确定

17.

struct st

{ int a;

float b;

}s, *p=&s;

则正确的引用是(   )

A.(*).s.a B.(*p).a

18.enum color {red,yellow=2,blue,white,black}r=white;,执行printf(%d,r);后的输出结果是(   )

A.0 B.1

C.3 D.4

19.以下说法中的是(   )

A.共用型数据中所有成员的首地址都是同一个

B.可以用已定义的共用型来定义数组或指针变量的类型

C.共用型数据中的成员可以是结构型,但不可以是共用型

D.typedef定义新类型取代原有类型后,原类型仍可有效使用

20.#define L(x) 2*3.14*x

L(x)是(   )

A.函数名 B.函数调用

C.无参的宏名 D.带参的宏名

二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

21.设int a[10];则数组a的首元素是__________________

22.设int a=0,b=0,c;,则执行c=(a-=b-5),(a=b,b=3);后变量c的值是__________________

23.设int a=0,b=0,c=2,d=4;,则执行(c=a= =b)||(d=b= =a);后变量d的值是__________________

24.设int a[ ]={1,2,3,4,5,6,7,8},*s=a

则*(s+1)的值是__________________

25.设char s[ ]=apple;,则数组s的长度是__________________

26.被调用函数执行结束时,此函数中定义的__________________类型的变量不被释放。

27.表达式的运算对象可以是常量、函数调用和__________________

28.设int x;,则将x强制转换为双精度类型应写成__________________

29.语句if(!k)a=3;!k__________________等价。

30.函数调用时,若形参是一个指针变量,而对应的实参是一个数组名,则函数参数的传递方式是__________________传递。

三、程序分析题(本大题共5小题,每小题5分,共25分)

阅读下列程序,将输出结果写到各题右侧的空白处。

31.main( )

{

int a[3][3]={{1},{2},{3}};

int b[3][3]={1,2,3};

printf(%5d,a[1][0]+b[0][1]);

printf(%5d\n,a[0][1]+b[1][0]);

}

32.int a=10;

struct data {int a, b;} s;

main ( )

{ int c;

s.a=20s.b=30;

c=f (s.a+s.b);

printf(%d,%d,%d\n, s.a, s.b, c);

}

f (int b)

{

printf (%d,%d\n,a, b);

return (a+b);

}

33.#include

fun ( )

{ int y=1;

static int z=4;

z ++; ++ y;

return (y*z);

}

main ( )

{ int i;

for (i=1; i<3; i++)

printf (%5d\n,fun ( ));

}

34.main ( )

{ char *p,s[ ]=6543210;

for (p=s; *p!=\0;)

{ printf (%s\n,p);

p ++;

if (*p!=\0) p ++;

else break;

}

}

35.main( )

{

long f( );

printf(%5ld\n,f(5));

}

long f(int b)

{

if(b= =1| |b==2)return 1;

else return f(b-1)+f(b-2);

}

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

给出下列程序,将横线处缺少的部分补上,使其能正确运行。

36.键入10个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。

int neg=0,pos=0,zero=0;

void sele(int num)

{

if(num>0)neg ++;

else if(num<0)pos ++;

else ______________ ;/ * 第一空 */

}

main ( )

{

int i,a[10];

for(i=0;i<10;i++)

{

scanf(%d,&a[i]);

printf(%5d,a[i]);

self(_________________); / * 第二空 */

}

printf(\nneg=%d,pos=%d,zero=%d\n,_______________); / * 第三空 */

}

37.输入一个学生的成绩(在0~100分之间,超出此范围显示错),进行五级评分并显示。

main ( )

{

int score;

scanf (%d,&score); printf (%d->,score);

if(__________________) / * 第一空 * /

switch (___________________) / * 第二空 */

{

case 9:

case 10: printf ( Excellent \ n);break;

case 8: printf (Good \ n);break;

case 7: printf (Middle \ n); break;

case 6: printf (Pass \ n);_______________;/* 第三空 */

default: printf (No pass \ n);

}

else printf (Input error! \ n);

}

38.键入一个字符串(换行作为结束标志),将该字符串分别写到文本文件(te.dat)和二进制文件(bi.dat)中。

#include

main ( )

{

_______________;/* 第一空 */

char str [80];

gets (str); puts (str);

te=fopen (te.dat_______________); / * 第二空 */

bi=fopen (bi.dat,_______________); / * 第三空 */

fputs (str, te); fwrite (str, sizeof (str), 1, bi);

fclose (te); fclose (bi);

}

五、程序设计题(第39小题5分,第40、41小题各6分,共17分)。

39.输入一个圆半径(r),计算并输出圆的面积(s)和周长(l.

40.计算当sum=1+时,输出N的值。

41.用循环语句输出下列字母编排的三角形。

a

ab

abc

abcd

………

abcde………xyz

全国高等教育自学考试高级语言程序设计考试试题

相关推荐