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 <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.编写求两个双精度数之和的函数,选项中正确的是____
Adouble  add(double a,double b)
  { double s;
    s=a+b;
    return s; }
Bdouble  add(double a,b)
  { double s;
    s=a+b;
    return (s);}
Cdouble  add(double a double b)
  { double s;
    s=a+b;
    returns;}
Ddouble  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语句只能返回一个函数值
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小时内删除。