首页 > 课程 > 高级语言程序设计(一) > 模拟试题 > 2011年10月自学考试00342《高级语言程序设计(一)》试题

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

发布时间:2019-08-12

2011年高级语言程序设计模拟试卷(九)

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1. 在定义 int a[5][4];之后,对 a 的引用正确的是()

A. a[2][4]

B. a[5][0]

C. a[0][0]

D. a[0,0 ]

答案:C

2. 设函数f()定义如下,则fun(7,8)的值是 ()

int fun(int x1,int x2)

{ int x; x1>x2?(x=3)∶(x=4); return(x+x1); }

A. 9

B. 10

C. 11

D. 12

答案:C

3. 设有定义语句“int x[8]={5,4,3,2,1},*p=x;”,则*p+6的值是 ()

A. 0

B. 1

C. 5

D. 11

答案:D

4. 运行下列程序后,输出结果是()

int f(int x,int y)

{ return(x-y); }

main()

{ int a=40,b=20,c=10;

printf(″%d\n″,f(f(a,b),f(b,c)));

}

A. 0

B. 10

C. 30

D. 50

答案:B

5. 下列符号串中,不属于C语言保留字的是()

A. if

B. then

C. static

D. for

答案:B

6. 当 c 的值不为0时,在下列选项中能正确将 c 的值赋给变量 a、b的是()

A. c=b=a;

B. (a=c)||(b=c);

C. (a=c)&&(b=c);

D. a=c=b;

答案:C

7. 执行下列程序段后的输出结果是 ()

int x=8; while (--x>6) printf(″*″);

A. ****

B. ***

C. **

D. *

答案:D

8. 运行下列程序后,输出结果是()

f(int x,int y,int *z)

{ return(*z=x*x+y*y); }

main()

{int a=3;

f(f(1,2,&a),f(1,2,&a),&a);

printf(″%d″,a);

}

A. 9

B. 10

C. 50

D. 60

答案:C

9. 设有定义语句“int( *ptr)[10];”其中的 ptr 是()

A. 10个指向整型变量的指针

B. 指向10个整型变量的函数指针

C. 一个指向具有10个元素的一维数组指针

D. 具有10个指针元素的一维数组

答案:C

10. 以下()是不正确的转义字符。

A. \\

B. \

C. 081

D. \0

答案:C

11. 以下正确的定义语句是()

A. int A[′a′];

B. int A[3,4];

C. int A[][3];

D. int A[10];

答案:D

12. 以只写方式打开一个文本文件,应选择的文件操作方式是()

A. ″a+″

B. ″w+″

C. ″wb″

D. ″w″

答案:D

13. 在C语言中,不合法的保留字是 ()

A. if

B. Char

C. float

D. default

答案:B解析:Char

14. 设有定义“double a=5.0,b=2.5;”,则表达式(int)b+a/b的值是()

A. 3

B. 4

C. 3.0

D. 4.0

答案:D解析:4.0

15. 语句“printf(″%d\n″,(x=1,x=2));”的输出结果是 ()

A. 1

B. 2

C. 0

D. 语法出错

答案:B

解析:2

16. 下列程序段的输出结果是 ()

int x=2;

do { int x=1; x=!x; printf(″%d,″,x); }

while (--x);

A. 2,1,0,

B. 1,0,

C. 0,0,

D. 2,1,

答案:C

解析:0,0,

17. 以下与int*q[5];等价的定义语句是()

A. int q[5];

B. int *q;

C. int*(q[5]);

D. int(*q)[5];

答案:C解析:int*(q[5]);

18. 若定义了()

struct

{ char a[10];

short b[4][5];

long c[5];

}u;

则执行printf(″%d\n″,sizeof(u));语句的输出结果是()

A. 10

B. 20

C. 40

D. 70

答案:D

解析:70

19. 下列程序段的输出结果是 ()

char b=′b′,e=′e′;

printf(″%d,%c\n″,e-b,e-′a′+′A′);

A. 2,M

B. 2,E

C. 3,M

D. 3,E

答案:解析:ASCⅡ

20. 以下选项中,合法的用户标识符是 ()

A. long

B. 2Test

C. 3Dmax

D. A.dat

答案:B

解析:2Test

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

1. 表达式10<<3+1的值是___。

答案:160

2. 执行下列语句后,变量x的值是___。

switch (x=1) { case 1: x=2;

case 2: x=3; }

答案:3

3. 在执行循环结构时,能够直接退出循环的语句是___。

答案:break;

4. 在C语言中,当定义一个函数的类型为void时,说明执行该函数后___。

答案:无返回值

5. 若有定义 int a[3][4]={1,2,3,4,5,6,7,8,9};则a[1][3]=___,

a[2][3]=___。答案:8 0

6. 在C语言中,输入操作是由库函数___完成的,输出操作是由库函数___完成的。

答案:scanf printf

7. 表达式″islower(65)″的值是___。

答案:0

8. 若有char a[5]={′1′,′2′,′\0′,′3′,′\0′};则执行语句

printf(″%s″,a);的结果为______答案:12

9. 设有定义语句“int k,*p1=&k,*p2;”,能完成表达式“p2=&k”功能的表达式可以写成_________

答案:p2=p1

10. 设有数据定义语句″struct{char a[5];long b[5];}x;″,则为变量x所分配的内存字节数是个______

答案:30

三、程序分析题(本大题共5小题,每小题5分,共25分)阅读下列程序,将输出结果写到各题右侧的空白处。

1. 分析下面程序的运行结果。

main()

{

int i,j,row,col,max;

static int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}};

max=a[0][0];

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

for(j=0;j<4;j++)

if(a[i][j]>max)

{ max=a[i][j];row=i;col=j;}

printf(″max=%d,row=%d,col=%d\n″,max,row,col);

}

答案:max=9,row=1,col=0

2. main()

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

int *p;

int i;

p=a;

*(p+3)+=2;

printf(″%d,%d\n″,*p,*(p+3));

}

答案:1,6

3. int f(int x,int y,int *px,int *py)

{ *px=x+y;

*py=x-y;

}

main()

{ int a=10,b=20;

f(a,b,&a,&b);

printf(″%d,%d/n″,a,b);

}

输出结果为?

答案:30,-10

4. # include <stdio.h>

main()

{ in i,n;

FILE fp;

if((fp=fopen(″temp″,″w+″))==NULL)

{ printf(″不能建立 temp 文件\n″);exit(0);}

for(i=1;i<=10;i++) printf(fp,″%3d″,i);

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

{fseek(fp,i*6L,SEEK_SET);

fscanf(fp,″%d″,&n);

printf(″%3d″,n);

}

fclose(fp);}

答案:1 3 5 7 9

5. # include

main()

{ int a[]={5,6,7,8},i;

func(a);

for(i=0;i<4;i++) printf(″%d″,a[i]);

}

func(int b[])

{ int j;

for(j=0;j<4;j ++) b[j]=2*j;

}

答案:0246

四、程序填充题(本大题共3小题,每小题6分,共18分)给出下列程序,将横线处缺少的部分补上,使其能正确运行。

1. 图中空白处答案应为:___,___,___。

答案:″r″ fgetc(fp) count++

2. 下列程序是求短整型正整数的各位上的数字之和并输出。

main()

{ short m,;

scanf(″%d″,&m);

while ()

{ s=s+m%10;

______

}

printf(″%d″,s);

}

答案:s=0m!=0m=m/10

3. 要求输入10个数,并将最大数输出。

# include ″stdio.h″

main()

{ int a[10],i,j;

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

scanf(″%d″,___);

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

if(a[i]>a[i+1])

{ j=a[i+1];;a[i]=j; }

printf();

}

答案:&a[i]″%d″,a[i]a[i+1]=a[i]

五、程序设计题(第1小题5分,第2、3小题各6分,共17分)

1. 编一个程序,输入一个整数,输出其符号(若≥0,输出1;若<0,输出-1)。答案:# include

main()

{ int a;

scanf(″%d″,&a);

if(a>=0)printf(″1″);

else printf(″-1″);

}

2. 编程序按下列公式计算e的值(精度为1e-6)。

e=1+11!+12!+13!+…+1n!

答案:# include

# define N 3

main()

{ int i;

float e=1,f=1;

do{ f=f*i;

e=e+1/f;

}

while(1/f>1e-6);

printf(″e=%f″,e);

}

3. 编一个函数,返回一维实型数组前 n 个元素的最大数、最小数和平均值。数组 、n 和最大数、最小数、平均数值均作为函数的形式参数,本函数无返回值。(用指针方法实现)答案:void M(float *z,int *n,float *max,float *min,float *j)

{ int i;

float s=0.0;

*max=*z, *min=*z;

for(i=0;i<*n;i++,z++)

{s=s+*z;

if( *max<*z) *max=*z;

else if( *min>*z) *min=*z;

}

*j=s/(*n);

}

联系方式

  • 投诉与建议电子邮箱:272223086@qq.com
  • 联系方式: 13117063983    http://www.hbzkjy.com