题目部分,(卷面共有100题,300.0分,各大题标有题量和总分)
一、单项选择题(100小题,共300.0分)
(3分)[1]
以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,‘A’,‘B’,‘C’);则符合程序段运行结果的选项是
void move(char getone,char putone)
{
printf(“%c-->%c\n”,getone,putone);
}
void hanoi(int n,char one,char two,char three)
{
if(n==1) move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
A、A-->C B、A-->C C、A-->C D、A-->C
A-->B A-->B A-->B A-->B
C-->B C-->A C-->B C-->B
B-->A A-->B A-->C A-->C
C-->B B-->C B-->A A-->B
A-->C A-->C B-->C B-->C
A-->B A-->B A-->C A-->C
(3分)[2]
以下不正确的说法是
C语言规定 A、实参可以是常量、变量或表达式
B、形参可以是常量、变量或表达式
C、实参可以为任意类型
D、形参应与其对应的实参类型一致
(3分)[3]
以下正确的描述是
在C语言程序中 A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均不可以嵌套
D、函数的定义和函数的调用均可以嵌套
(3分)[4]
以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include
#include
main()
{
float x,y,z,sum;
scanf(“%f %f %f”,&x,&y,&z);
sum=f(【1】)+f(【2】);
printf(“sum=%f\n”,sum);
}
float f(float a,float b)
{
float value;
value=a/b;
return(value);
}
【1】 A、x-y,x+y B、x+y,x-y C、z+y,z-y D、z-y,z+y
【2】 A、x-y,x+y B、x+y,x-y C、z+y,z-y D、z-y,z+y
(3分)[5]
以下错误的描述是
函数调用可以 A、出现在执行语句中
B、出现在一表达式中
C、做为一个函数的实参
D、做为一个函数的形参
(3分)[6]
下面函数调用语句含有实参的个数为
func((exp1,exp2),(exp3,exp4,exp5));
A、1 B、2 C、4 D、5
(3分)[7]
C语言规定,函数返回值的类型是由
A、 return语句中的表达式类型所决定
B、 调用该函数时的主调函数类型所决定
C、 调用该函数时系统临时决定
D、 在定义该函数时所指定的函数类型所决定
(3分)[8]
C语言允许函数值类型缺省定义,此时该函数值隐含的类型是
A、 float型
B、 int型
C、 long型
D、 double型
(3分)[9]
以下程序有语法性错误,有关错误原因的正确说法是
main()
{
int G=5,k;
void prt_char();
… …
k=prt_char(G);
… …
}
A、 语句void prt_char();有错,它是函数调用语句,不能用void说明
B、