第1套
一、填空题
给定程序的功能是求1/4的圆周长。函数通过形参得到圆的直径,函数返回1/4的圆周长(圆周长公式为:L=Πd,在程序中定义的变量名要与公式的变量相同)。
例如:输入圆的直径值:19.527,输出为:15.336457
请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所需的若干表达式或语句。
#include<stdio.h>
double fun(double d)
{
  return 3.14159*d/4.0;
}
main()
{
  double z;
  printf("Input the d of the round:");
  scanf("%lf",&z);
  printf("L=%lf\n",fun(z));
}
二、改错题
下列给定程序中函数fun的功能是:计算正整数m的各位上的数字之积。例如,若输入202,则输出应该是0。
请修改程序中的错误,得出正确的结果
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构
#include<stdio.h>
#include<conio.h>
long fun(long n)
{
  long r=1;
  do
  {
    r*=n%10;
    n/=10;
  }while(n);
  return(r);
}
main()
{
  long m;
  printf("\nplease enter a number:");
  scanf("%ld",&m);
  printf("\n%ld\n",fun(m));
}
三、编程题
请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整初的所有整数放在数组b中,通过n返回这些数的个数。
例如,若传送给m的值为20,则程序输出7  11  14。
请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<conio.h>
#include<stdio.h>
#define N 100
void fun(int m,int*b,int*n)
{
  int i,j=0;*n=0;
  for(i=1;i<=m;i++)
    if(i%7==0||i%11==0)
    {
      b[j]=i;
      j++;
    }
  *n=j;
}
main()
{
  int a[N],n,i;
  FILE*out;
  fun(20,a,&n);
  for(i=0;i<n;i++)
    if((i+1)%20==0)
      printf("%4d\n",a[i]);
    else
      printf("%4d",a[i]);
  printf("\n");
  out=fopen("outfile.dat","w");
  fun(100,a,&n);
  for(i=0;i<n;i++)
    if((i+1)%10==0)
    fprintf(out,"%4d\n",a[i]);
    else
    fprintf(out,"%4d",a[i]);
  fclose(out);
}
fprintf作用
第2套
一、填空题
函数fun的功能是:统计长整数test的各位上出现数字5、6、7的次数,并通过外部(全局)变量sum5、sum6、sum7返回主函数。
例如:当test=89431676时,结果应该为:sum5=0  sum6=2  sum7=1。
请勿改动主函数main与其它函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。
#include<stdio.h>
int sum5,sum6,sum7;
void fun(long test)
{
  sum5=sum6=sum7=0;
  while(test)
  {
    switch(test%10)
    {
    case 5:sum5++;break;
    case 6:sum6++;break;
    case 7:sum7++;
    }
    test/=10;
  }
}
main()
{
  long test=89431676L;
  fun(test);
  printf("\nThe count result:\n");
  printf("test=%ld sum5=%d sum6=%d sum7=%d\n",test,sum5,sum6,sum7);
}
二、改错题
下列给定程序中,函数fun的功能是:将字符串str中的小写字母都改为对应的大写字母,其它字符不变。例如,若输入“asAS”,则输出“ASAS”。
请修改程序中的错误,使它能统计出正确的结果。
注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构
#include<conio.h>
#include<stdio.h>
#include<string.h>
char*fun(char str[])
{
  int i;
  for(i=0;str[i];i++)
  if((str[i]>='a'&&str[i]<='z'))
    str[i]-=32;
  return(str);
}
main()
{
  char str[81];
  printf("\nplease enter a string:");
  gets(str);
  printf("\nThe result string is:\n%s",fun(str));
}
三、编程题
请编写一个函数fun,它的功能是:出一维整型数组元素中最小的值和它所在的下标,最小的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中a是数组名,n是a中的数据个数,min存放最小值,flag存放最小值所在元素的下标
请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void fun(int b[],int n,int*min,int*d)
{
int i;
  *min=b[0];
  *d=0;
  for(i=0;i<n;i++)
  if(b[i]<*min)
  {
    *min=b[i];
    *d=i;
  }
}
main()
{
  int i,a[20],min,flag,n=10;
  FILE*out;
  for(i=0;i<n;i++)
  {
    a[i]=rand()%50;
    printf("%4d",a[i]);
  }
  printf("\n");
  fun(a,n,&min,&flag);
  printf("min=%5d,Index=%4d\n",min,flag);
  out=fopen("outflie.dat","w");
  memcpy(a,"3.141592653589793238462643383279",32);
  fun(a,8,&min,&flag);
  fprintf(out,"min=%5d,Index=%4d",min,flag);
  fclose(out);
}
第3套 上机考试试题
一、填空题
请补充main函数,该函数的功能是:从键盘输入一组整数,使用条件表达式出最大的整数。当输入的整数为-1时结束。例如:输入96 121 23 343 232 54 89 365 89 -1时,最大的数为365。
仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容
#include<stdio.h>
#include<conio.h>
#define NUM 100
main()
{
  int n[NUM];
  int i=-1;
  int MAX=-1;
  printf("\nInsert integer with the '-1' as end:\n");
  do
  {
    i++;
    printf("n[%d]=",i);
    scanf("%d",&n[i]);
    MAX=MAX<n[i]?n[i]:MAX;
  }while(n[i]!=-1);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。