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. 函数调用可以出现在表达式中
B. 函数调用可以作为一个函数的实参
C. 函数调用可以出现在表达式中
D. 函数调用可以作为一个函数的形参
4.阅读下面程序段,则执行后输出的结果是____。
#include <stdio.h>
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 <stdio.h>
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语句只能返回一个函数值
B. return (表达式);
C. 一个return语句可以返回多个函数值
D. 一个return语句只能返回一个函数值
8.阅读下面程序,则执行后的结果为____。
#include <stdio.h>
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 <stdio.h>
void fun(int k)
{ k++;
k=k*6;}
void main()
{ int k=1;
fun(k);
printf("%d\n",k);}
[A] 2分
A. 1 B. 2 C. 6 D. 12
三、程序设计题 (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】
【参考答案2】
#include <stdio.h>
int f(int x)
{ int y;
if(x>0) y=1;
else if(x==0) y=0;
else y=-1;
return y;
}
void main()
{ int x;
scanf(“%d”,&x);
printf("f(%d)=%d\n",x,f(x));
}
#include <stdio.h>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("f(%d)=%d\n",x,y);
}
2. 第5章 四、4 10分
题目描述
输入三个数,输出它们的最小值。要求定义一个函数,返回两个数的最小值。
输入描述
输入三个实数中间用空格间隔
输出描述
输出结果保留三位小数
样例输入
5.7 98.32 -123.45678
【参考答案2】
#include <stdio.h>
double min(double x,double y)
{ double m;
if(x<y) m=x;
else m=y;
return m;
}
void main()
printf是不是c语句{ double a,b,c,m;
scanf("%lf%lf%lf",&a,&b,&c);
m=min(a,b);
m=min(m,c);
printf("%.3f\n",m);
}
样例输出-123.457
【参考答案1】
#include <stdio.h>
double min(double x,double y)
{ if(x<y) return x;
else return y;
}
void main()
{ double a,b,c,m;
scanf("%lf%lf%lf",&a,&b,&c);
m=min(min(a,b),c);
printf("%.3f\n",m);
}
3. 第5章 四、5 10分
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论