湖南科技大学考试试题纸(A卷)
(2019- 2020学年度第2学期)
阅卷老师邮箱:  83408674@qq             
课程名称: C语言程序设计 开课单位: 计算机科学与工程学院 命题教师: 柳萍           
授课对象:      全校      学院    2019        年级    各专业   
考试时量:  100    分钟  考核方式:    考试    考试方式:    开卷     
审核人:                            审核时间:               
一、简答题(共5题,每题10分,共50分)
1、构成C语言源程序的基本单位是什么?某C程序由自定义函数sum(),averge()及主函数main()构成,则该程序从哪个函数开始执行?
2、设a=4,b=5,c=6,d=7,m=3,n=3,执行(m=a > b)&&(n=c>d)后n的值为多少?请简要写出分析过程。
3、写出下列程序段的输出结果,并简要说明变量a的值的变化过程。
int main()
{ int x = 1, a = 0, b = 0;
        switch(x)       
      {
            case 0:  b++;break;
            case 1:  a++;
            case 2:  a++; b++;break;
            default:  a--;b--;
      }
      printf("a=%d,b=%d\n",a,b);       
      return 0;
}
4、什么是函数的调用?简述函数调用的执行过程。
5、什么是指针?什么是指针变量?指针变量定义格式是什么?
二、程序填空题(10分)
---------------------------------------------------------
功能:将一个数组中的元素按逆序存放。
-------------------------------------------------------*/
#include <stdio.h>
#define N 7
main ()
{
  static int a[N]={12,9,16,5,7,2,1},k,s;
  printf("\n the origanal array:\n");
  for (k=0;k<N;k++)
    printf("%4d",a[k]);
  /***********SPACE***********/
  for (k=0;k<N/2; 【?】 )
  {
    s=a[k];
  /***********SPACE***********/
  【?】 ;
  /***********SPACE***********/
  【?】 ;
  }
  printf("\n the changed array:\n");
  for (k=0;k<N;k++)
      /***********SPACE***********/
      【?】  ("%4d",a[k]);
}
三、程序改错题(10分)
/*-------------------------------------------------------------------------
功能:求110的阶乘的和。
(注:错误处位于/**********FOUND**********/下一行,程序其余位置无需改动。)
---------------------------------------------------------------------------*/
#include <stdio.h>
main()
{
  int i;
  float s=0;
  float fac(int n);
  /**********FOUND**********/
  for(i=1;i<10;i++)
    /**********FOUND**********/
    s=fac(i);
  printf("%f\n",s);
}
float fac(int n)
{
/**********FOUND**********/
  int  y=1;
  int i;
  for(i=1 ;i<=n;i++)c程序是什么程序设计语言
    y=y*i;
  /**********FOUND**********/
  return;
}
四、程序设计题(2题,每题15分,共30分)
1、统计出若干个学生的平均成绩,最高分以及得最高分的人数。(15分)
例如:输入10名学生的成绩分别为92876856928467759266,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。
#include <stdio.h>
float Max=0;
int J=0;
float fun(float array[],int n)
{
/**********Program**********/
 
 
 
 
 
 
/**********  End  **********/
}
void main(  )
{  float  a[10],ave;
  int i=0;
  for(i=0;i<10;i++)
      scanf("%f",&a[i]);
  ave=fun(a,10);
  printf("ave=%f\n",ave);
  printf("max=%f\n",Max);
  printf("Total:%d\n",J);
}
2、在日常生活中,我们常常需要将一些大额的人民币换算成零钱,已知我们有许多面值5元,2元和1元的人民币。编程实现:输入我们需要兑换的金钱数(钱数大于等于8小于等于100),然后我们用这些面值5元,2元和1元的人民币来兑换,要求每一种面值都至少有1张,请每行输出一种兑换方式,最后输出一共有多少种兑换方式。(15分)
如输入:13
输出为:
five=1,two=1,one=6
five=1,two=2,one=4
five=1,two=3,one=2
five=2,two=1,one=1
count = 4
#include <stdio.h>
int main()
{ int n1,n2,n5,i,j,s,count=0;/*变量n1,n2,n5分别代表1元,2元,5元人民币数目*/
  printf("请输入零钱数目,零钱数目大于等于8小于等于100") ;
  scanf("%d",&s);
  /**********Program**********/
 
 
 
 
 
 
 
 
 
/**********  End  **********/
return 0;
}