C语言2作业1
一、判断题?(16分)
1. C程序是由函数构成的,每一个函数完成相对独立的功能。
?2分
2. 被main函数调用的函数只能是库函数。
?2分
3. 只有在函数被调用时,其形式参数才临时地占有存储空间.
?2分
4. 函数若无返回值,则它一定无形参.
?2分
5. 如果函数类型不定义为空类型,即使在return后面没有表达式,而实际上函数也是有一个不确定的返回值的.
?2分
6. 函数必须有形参
?2分
7. 函数必须有return语句
?2分
8. 函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5
?2分
二、选择题?(18分)
1.一个数据类型为void的函数中可以没有return语句,那么函数被调用时( ).
???[A]?2分
A. 没有返回值?????B. 返回一个系统默认值?????C. 返回值由用户临时决定?????D. 返回一个不确定的值
2.在C语言中,函数的数据类型是指____。
???[A]?2分
A. 函数返回值的数据类型?????B. 函数形参的数据类型?????C. 调用该函数时的实参的数据类型?????D. 任意指定的数据类型
3.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是____。
???[D]?2分
A. 函数调用可以作为独立的语句存在?B. 函数调用可以作为一个函数的实参?C. 函数调用可以出现在表达式中D. 函数调用可以作为一个函数的形参
4.阅读下面程序段,则执行后输出的结果是____。
#include
void main()
{ int m=4,n=2,k;
k=fun(m,n);
printf("%d\n",k);
}
int fun(int m,int n)
{
return(m*m*m-n*n*n);
}
???[C]?2分
A. 64?????B. 8?????C. 56?????D. 0
5.编写求两个双精度数之和的函数,选项中正确的是____。
A)double add(double a,double b)
{ double s;
s=a+b;
return s; }
B)double add(double a,b)
{ double s;
s=a+b;
return (s);}
C)double add(double a double b)
{ double s;
s=a+b;
returns;}
D)double add(a,b)
{ double a,b,s;
s=a+b;
return (s);}
???[A]?2分
A. A?????B. B?????C. C?????D. D
6.现有如下程序段
#include
int aa(int x,int y);
void main()
{ int a=24,b=16,c;
c=aa(a,b);
printf("%d\n",c);
}
int aa(int x,int y)
{ int w;
while(y)
{ w=x%y;
x=y;
y=w;
}
return x;
}
则程序段的输出结果是____。
???[D]?2分
A. 5?????B. 6?????C. 7?????D. 8
7.函数的值通过return语句返回,下面关于return语句的形式描述错误的是____。
???[C]?2分
A. return 表达式;?B. return (表达式);C. 一个return语句可以返回多个函数值?D. 一个return语句只能返回一个函数值
8.阅读下面程序,则执行后的结果为____。
#include
void main()
{ fun3(fun1(),fun2());}
fun1()
{ int k=20;
return k;}
fun2()
{ int a=15;
return a;}
fun3(int a,int b)
{ int k;
k=(a-b)*(a+b);
printf("%d\n",k);}
???[B]?2分
A. 0?????B. 175?????C. 184?????D. 编译不通过
9.阅读下列程序,则执行后输出的结果是____。
#include
void fun(int k)
{ k++;
k=k*6;}
void main()
{ int k=1;
fun(k);