文档库

最新最全的文档下载
当前位置:文档库 > 高级语言程序设计4答案

高级语言程序设计4答案

高级语言程序设计试卷4

姓名:班级:学号

高级语言程序设计4答案

一、选择题(每小题2分,共40分)

1、c语言的函数主体必须用以下( C )符号括起来

A、()B、“”C、{ } D、/* */

2、若有以下类型说明语句:char a; int b; float c; double d; 则表达式a/b+d-c的结果

类型为( D )

A)float B)char C)int D)double

3、判断char型变量c1是否为大写字母的正确表达式( C )

A、?A?<=c1<=?Z?

B、 (c1>=?A?)&(c1<=?Z?)

C、 (c1>=?A?)&&(c1<=?Z?)

D、 (…a<=c1?)AND(…Z?>=c1)

4、下面哪个表达式的值为4( D )

A、11/3 B、11.0/3 C、(float)11/3 D、(int)(11.0/3+0.5)

5、在C语言中逻辑“真”等价于以下( A )

A、不等于0的数B、大于0的数C、小于0的数D、整数1

6、指出下面不合法的标志符( A )

A、3ab B、ABC C、a_3 D、_stu2

7、该源程序执行后,假如输入2,5,屏幕上显示什么( C )

void main()

{ int a,b,sum;

scanf("%d,%d",&a,&b);

sum=a+b;

printf("sum=%3d\n",sum);

}

A、sum=%d\n

B、7

C、sum= 7

D、sum=21

8、c语言在上机调试时,编译源程序和执行程序时应按下面哪些键( D )

A、F6、F9

B、F8、Alt+F9

C、Ctrl+F6,F9

D、F9,Ctrl+F9

9、在调用一个函数的过程中直接或间接地调用函数本身,这就构成了函数的__ B 。

A. 迭代调用

B. 递归调用

C. 地址传递

D. 任意调用

10、getchar函数可以从键盘输入一个(D )

A)整型变量值B)实型变量值C)字符串D)字符或字符型变量值

11、下列程序的运行结果为( A )

main()

{ int a,b,c;

a=7;b=8;c=9; if(a>7)

a=b,b=c;c=a;

printf("a=%d b=%d c=%d\n",a,b,c);}

A、a=7 b=8 c=7

B、a=7 b=9 c=7

C、a=8 b=9 c=7

D、a=8 b=9 c=8

12、下列程序执行后输出的结果为( D )

#include

abc()

{ static int x=0; ++x; printf("%d",x);}

main()

{ abc(); abc();abc();}

A、000B、111C、1,2,3 D、123

13、下列程序的输出结果为( C )

main()

{ int a[5]={2,4,5,6,10},*p;

p=a; printf("%d",*(P++)); printf("%d",*p); }

A、44

B、22C、24D、4 2

14、这段程序运行的结果是 C

main()

{ printf("\\C Program\\\n");}

A. C Program

B.C Program\n

C. \C Program\

D. "\\C program\\"

15、以下程序的输出结果为(C)

#include

main()

{ int a=010,b=10; printf(“%d,%d\n”,a++,--b); }

A、10,10

B、8,10

C、10,9

D、8,9

16、若a为整型变量,且有以下语句 ( D )

a=-017L; printf("%d\n",a);

则下面哪个说法是正确的?

A. 赋值不合法

B. 输出值为-17

C. 输出为不确定值

D. 输出值为-15

17、C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是 B

A)float型B) int 型C) long型D) double型

18、已知学生记录描述如下,下面对结构体成员”computer”的赋值方式正确的是( C )

struct student

{ int num; char name[8];

struct

{folat math;

folat engl;

float computer;

}mark ;

} std ;

A) student . computer=84 B) mark . computer=84

C) std . mark . computer=84 D) std . computer=84

19、当定义一联合体变量时系统分配给它的内存是( C )

A、结构中每一个成员所需的内存量

B、结构中最后一个成员所需的内存量

C、结构体成员中占内存量最大者所需的容量

D、结构体中各成员所需内存量的总和

20、已知有以下的说明

int a[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为( D )

A、2

B、1

C、8

D、0

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

1、若已知a=10,b=15,c=0,则表达式a*b||c的运算结果为____1_____。

2、程序的三种基本结构为_____顺序_______、______选择_______、____循环_______。

3、C语言的数组名是一个___int______常量,不能对它进行加减和赋值等运算。

4、static char a[ ]= "I am a boy",则a数组在内存中存储时最后一个字符是…\0?。

5、若用以下形式表示for循环语句:for(表达式1;表达式2;表达式3) 循环体语句, 则执行语句

for(i=0;i<3;i++) printf("*");时,表达式1执行__1__次,表达式3执行__3___次。

6、int (*pf)( );表示pf是一个指向函数的指针变量,该函数的返回值为int 。

三、程序分析题(第小题4分,共20分)

1. 将二维数组行列元素互换,存在另一个数组中,并输出。请将横线中所缺语句补全。

#include

main()

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

int b[3][2],i,j;

printf("array a:\n");

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

{ for(j=0;j<=2;j++)

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

b[j][i]=a[i][j] ;

}

printf("\n");

}

printf("array b:\n");

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

{ for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");

}

}

2.以下程序的执行结果是: -1

main()

{ int x=100,a=10,b=20;

int v1=5,v2=0;

if(a

if(b!=15)

if(!v1)

x=1;

else

if(v2) x=10;

x=-1;

printf(“%d”,x);

}

3.该程序的输出结果为多少

m=37;n=13; 结果为m=1

while(m!=n)

{

while(m>n)

m=m-n;

while(n>m)

n-=m;

}

printf(“m=%d\n”,m);

4.该程序的输出结果是: Turbo C++

#include

#include

void main()

{ char destination[25];

char blank[] = " ", c[]= "C++",

turbo[] = "Turbo";

strcpy(destination, turbo);

strcat(destination, blank);

strcat(destination, c);

printf("%s\n", destination);

}

四、程序填空题(每小题6分,共12分)

1、下面程序段和功能是计算一个整数的绝对值,请填空。#include

main()

{ int x,y;

printf("Enter an integer:");

scanf("%d",&x);

y=x;

if(y<0)

y=-y ;

printf("\ninteger:%d--->absolute value:%d\n",x,y);

}

2、下面这个程序的作用是统计公元1年到公元2000年的闰年个数。判断闰年的方法是:能被400整除的年是闰年;除能被400整除的年以外,凡是能被4整除,但不能被100整除的年是闰年。其余年份是平年。请填空。

#include

void main( )

{

int year; int count=0;

for(year=0;year<=2000;year++)

if(( y%400= =0 )||(year%4= =0&& y%100!=0 ))

count++ ;

print f(“%d”,count);

}

五、编程题(8分)

以下程序求求10个学生的平均成绩。请同学写出它的被调函数average。

#include

float average(int stu[10], int n);

void main()

{ int score[10], i;

float av;

printf("Input 10 scores:\n");

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

scanf("%d", &score[i]);

av=average(score,10); printf("A verage is:%.2f", av);

}

float average(int stu[10], int n)

{ int i; float aver, sum= stu[0];

for ( i=1; i

sum=sum+stu[i];

aver = sum/n;

return (aver);

}