报名
坐标您当前所在位置: 湖北自考网> 考试科目 > 高级语言程序设计(一) > 模拟试题> 2005年10月自学考试00342《高级语言程序设计(一)》试题

2005年10月自学考试00342《高级语言程序设计(一)》试题

  来源 : 386802031    湖北自考教育网 : http://www.hbzkjy.com   

2005年10月高等教育自学考试

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

课程代码:00342

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

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

1. 下列不属于...C语言保留字的是( )

A. char B. while

C. typedef D. look

2. 下列关于C语言的叙述错误..的是( )

A. 英文字母大小写不加以区分

B. 不同类型的变量可以出现在同一个表达式中

C. 在赋值表达式中赋值号两边的类型可以不同

D. 某些运算符在不同的场合可以有不同的含义

3. 下列转义字符中错误..的是( )

A. ′\000′ B. ′\14′

C. ′\x111′ D. ′\2′

4. 执行语句printf(″%x″, -1);后输出结果是( )

A. -1 B. -ffff

C. 1 D. ffff

5. 设float a=2, b=4, c=3;,以下C语言表达式与代数式1

2(a+b)c计算结果不一致...的是(

A. (a+b)*c/2 B. (1/2)*(a+b)*c

C. (a+b)*c*1/2 D. c/2*(a+b)

6. 设int a=10, b=20, c=30;条件表达式a

A. 5 B. 10

C. 20 D. 30

7. 设int a=9, b=6, c;,执行语句c=a/b+0. 8;后c的值是( )

A. 1 B. 1. 8

C. 2 D. 2. 3

8. 执行语句for(i=1;i++<4);后i的值是( )

A. 3 B. 4

C. 5 D. 不确定

9. 在位运算中,操作数左移一位,其结果相当于操作数( )

A. 乘以2 B. 除以2

C. 乘以4 D. 除以4

10. 使用语句scanf(″a=%f, b=%f″, &a, &b);输入变量a、b的值(□代表空格),正确的是

( )

A. 1.25,2.4 B. 1.25□2.4

C. a=1.25, b=2.4 D. a=1.25□b=2.4

11. 下列说法中错误的是( ) ..

A. C语言中循环嵌套的层数没有限定

B. C语言中的内部函数只能在本文件中被调用

C. 用typedef语句定义的数据类型名称必须是大写字母

D. C语言中的continue语句,可以通过改变程序的结构而省略

12. 设char s[10], *p=s;, 下列语句中错误的是( ) ..

A. p=s+5;

C. s[2]=p[4]; B. s=P+s; D. *p=s[0];

13. 设enum week {sun, mon, tue, wed, thu, fri, sat}day;,正确的赋值语句是( )

A. sun=0; B. sun=day;

C. mon=sun+1; D. day=sun;

14. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )

A. 数组的第一个元素值 B. 数组元素的个数

C. 数组中全部元素的值 D. 数组首地址

15. 下列错误的是( ) ..

A. char s[]=″China″; B. char s[10]={″China″};

C. char s[10]; s=″China″; D. char s[10]={′C′, ′h′, ′i′,;′n′, ′a′};

16. 在C语言中,有值函数的数据类型是指( )

A. 函数形式参数的数据类型 B. 函数返回值的数据类型

C. 调用该函数时的实参的数据类型 D. 任意指定的数据类型

17. 设

struct

{ short a;

char b;

float c;

}cs;

则sizeof(cs)的值是( )

A. 4 B. 5

C. 6 D. 7

18. 设

int x[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p=x, k;

且0≤k<10, 则对数组元素x[k]的错误引用是( ) ..

A. p+k B. *(x+k)

C. x[p-x+k] D. *(&x[k])

19. 设

#define N 3

#define Y(n) ((N+1)*n)

则表达式2*(N+Y(5+1))的值是( )

A. 42 B. 48

C. 54 D. 出错

20. 关于主函数的形式参数,下列说法正确的是( )

A. 可以有两个

B. 类型可以是实型

C. 不可以由用户自己定义名字

D. 是在程序编译时获得实际值

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

21. 可以将被调函数中获得的值返回给主调函数的语句是__________。

22. 设int x=2, y=1;则表达式x+++y的值是__________。

23. 若未指定局部变量的存储类型,则其隐含的存储类型是__________。

24. 在执行循环结构或switch结构时,能够立即退出该结构的语句是__________。

25. 设int a=-3, b=7, c=-1;则执行(a==0)&&(a=a%b

26. 设int a, b, c;则执行a=(b=3, c=5, b=10);后变量a的值是__________。

27. 设int a=100, *pl=&a, **p2=&p1;, 则表达式**p2的值是__________。

28. 静态型外部变量的作用域是__________。

29. 设

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

则数组元素a[1][0]的值是__________。

30. 函数调用时,若形参是一个变量,而对应的实参是一个有确定值的表达式,则函数参数的传递方式是__________传递。

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

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

31. mian( )

{ int i;

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

}

f(int j)

{ static int a=100;

int k=1;

++k;

printf(″%d\n″, j+a+k);

a-=2;

}

32. #include

long fun(int n)

{ long s;

if(n<=2)s=2;

else s=n+fun(n-1);

printf(″%d\t″, s);

return s;

}

main( )

{

fun(5);

printf(″\n″);

}

33. struct porb

{ char *name;

int age;

} s[]={″LiHua″, 18, ″WangXin″, 25, ″LiuGuo″, 21};

#define N (sizeof(s)/sizeof (s[0]))

void f (struct porb a[], int n);

main( )

{

f (s, N);

}

void f (struct porb a[], int n)

{

int i;

for (i=0;i

printf (″%s:%d\n″, a[i]. name, a[i]. age);

}

34. void LE(int*a, int b)

{

int x=*a;

printf(″%d\t%d\n″, *a, b);

*a=b;b=x;

}

main( )

{

int x=10, y=25;

LE(&x, y);

printf(″%d\t%d\n″, x, y);

}

35. /*设从键盘输入:420<回车> */

#include

main( )

{ char c;

while ((c=getchar( ) )!=′\n′)

switch(c-′0′)

{ case 0:

case 1:putchar(c+2);

case 2:putchar(c+3);break;

case 3:putchar(c+4);

default:putchar(c+1);break;

}

printf(″\n″);

}

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

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

36. 一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33), 找出所有的这种数。

main( )

{

int n, a, b, c;/*n、a、b和c分别为三位数自身及其个位、十位和百位 */

for(c=1;c<=9;c++)

for (b=0; b<=9;b++)

for(______;a++) /*第一空*/

{

n=_________; /*第二空*/

if(a*a*a+b*b*b+c*c*c==_________) /*第三空*/

printf(″%d\n″, n);

}

}

37. 输入一个数字(范围在0~9之间,若不在此范围内显示输入错),输出对应的英文单词(Zero, One, Two, ,Nine)。

main( )

{

int i;

char *digit[10]={″Zero″, ″One″, ″Two″, ″Three″, ″Four″,

″Five″, ″Six″, ″Seven″, ″Eight″, ″Nine″};

scanf(″%d″, _________); /*第一空 */

printf(″%d→″, i);

if(____________) /*第二空 */

printf(″%s\n″, digit[_________]); /*第三空 */

else printf(″Input error! \n″);

}

38. 将一个文本文件(ma. dat)拷贝到另一个文本文件(niu. dat)中。

#include

main( )

{

FILE *ma, *niu;

ma=fopen(″ma. dat″, ______); /*第一空 */

miu=fopen(″niu. dat″, ″w″);

while(! feof(ma)) fputc(fgetc(ma), ________); /*第二空 */

fclose(niu);__________; /*第三空 */

}

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

39. 输入某学生的数学(math)、英语(english)和C语言(C)的成绩,输出该学生这三门课的成绩、总成绩(sum)和平均成绩(aver)。

40. 按下列要求分别写出两个函数(不用写主函数)

(1)计算n!

计算公式:n!=1×2×3× ×n

函数首部为log fac(int n)

(2)调用上述函数计算Ck

mcmk

计算公式: Ckm m! k!(m k)!

函数首部为long cmk(int m, int k)

41. 在一个二维数组(定义为int a[5][5];)中形成并按下列形式输出矩阵各元素的值。 1 0 0 0 0

2 1 0 0 0

3 2 1 0 0

4 3 2 1 0

5 4 3 2 1

热门专业推荐

  • 联系方式
  • 投诉与建议电子邮箱:272223086@qq.com
  • 联系方式:13117063983
微信
微信