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
{ int m=4,n=2,k; k=fun(m,n);
printf(\}
int fun(int m,int n) {
return(m*m*m-n*n*n); }
[C]
A. 64 B. 8 C. 56 D. 0
2分
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]
A. A B. B C. C D. D
2分
6.现有如下程序段 #include
{ int a=24,b=16,c; c=aa(a,b);
printf(\}
int aa(int x,int y) { int w; while(y) { w=x%y; x=y; y=w; }
return x; }
则程序段的输出结果是____。
[D]
A. 5 B. 6 C. 7 D. 8
2分
7.函数的值通过return语句返回,下面关于return语句的形式描述错误的是____。
[C]
2分
A. return 表达式; B. return (表达式);
C. 一个return语句可以返回多个函数值 D. 一个return语句只能返回一个函数值
8.阅读下面程序,则执行后的结果为____。 #include
{ 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(\
[B]
2分
A. 0 B. 175 C. 184 D. 编译不通过
9.阅读下列程序,则执行后输出的结果是____。 #include
printf(\
[A]
A. 1 B. 2 C. 6 D. 12
2分
三、程序设计题 (30分) 1. 第5章 四、1
10分
题目描述
输入一个整数x,输出下面分段函数f(x)的值。要求将分段函数的计算定义成函数。当x>0时 f(x)=1;当x=0时 f(x)=0;当x<0时 f(x)=-1。
输入描述
输入一个整数
输出描述
输出分段函数f(x)的值
样例输入
100
样例输出
f(100)=1 【参考答案1】 #include
int f(int x) // 函数定义 {
if(x>0) return 1;
else if(x==0) return 0; else return -1; }
void main() { int x,y;
scanf(“%d”,&x); y=f(x); // 函数调用
printf(\}
【参考答案2】 2. 第5章 四、4
10分
#include
输入三个数,输出它们的最小值。要求定义一个函数,返回两个数的最小值。
输入描述
输入三个实数中间用空格间隔
输出描述
输出结果保留三位小数
样例输入
5.7 98.32 -123.45678 样例输出
【参考答案2】 -123.457 【参考答案1】 #include
double min(double x,double y) { if(x void main() { double a,b,c,m; scanf(\ m=min(min(a,b),c); printf(\} 3. 第5章 四、5 10分 #include 在主函数中输入字符c和m,调用函数prn,连续将字符c输出m次。定义函数prn,完成连续将某个字符c输出m次后换行。 输入描述 先输入要输出字符,再输入一个整数,两者之间用空格间隔 输出描述 在一行中输出 样例输入 # 5 样例输出 ##### 【参考答案】 #include void prn(char c,int m) { int i; for(i=1;i<=m;i++) putchar(c); printf(\} void main() { char c;