编号
题目要求及代码描述
参考答案
补充说明
1
题目要求:有一分数序列:2/1-3/25/3-8/513/8…,求这个数列的前m(m>=1m<=100)项之和,并将总和存放到变量sum中,并输出sum
(若程序已经定义的变量不够用,考生可以补充定义其它变量)
题目已给出的框架如下:
  #include “stdio.h”
  main()
  {
int m;
float sum;
 
 
  }
参考答案如下:
  #include “stdio.h”
  main()
  {
int m,i,sign=1;
float sum=0,a=2,b=1,t;
scanf(“%d”,&m);
  for(i=1;i<=m;i++)
{
sum=sum+sign*a/b;
t=a;a=a+b;b=t;
sign=-sign;
}
  printf(“%f”,sum);
  }
多项式求和问题,例如:
1. 序列:1!2!3!4!5!…求前m项之和;
2. 序列:1*12*23*34*4求前m项之和;
3. 序列:1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出这个数列的前m项之和。
2
题目要求:有一序列:1,1,2,3,5,8,13……从第三个数开始每个数是前两个数之和,求出这个数列的前m(m>=1并且m<=100)项之和,并将总和存放到变量sum,并输出之.
(若程序已经定义的变量不够用,考生可以补充定义其它变量).
题目已给出的框架如下:
  #include “stdio.h”
  main( )
  {
  int m,sum;
 
 
  }
参考答案如下:
  #include “stdio.h”
  main()
  {
int m,sum=0,i,b=0,s=1;
scanf(“%d”,&m);
  for(i=1;i<=m;i++)
{
sum=sum+s;
a=b;
b=s;
s=a+b;
}
  printf(“%d”,sum);
  }
3
题目要求:对于任意给定的正整数m,求这个数的各位数字之和,并存入变量sum中,并输出之。例如:如果m123,则sum6
(若程序已经定义的变量不够用,考生可以补充定义其它变量).
题目已给出的框架如下:
  #include “stdio.h”
  main( )
  {
  int m,sum;
 
 
  }
参考答案如下:
#include “stdio.h”
main( )
{
int m,sum=0,i,s;
scanf(“%d”,&m);
while(m>0)
{
sum=sum+m%10;
m=m/10;
}
printf(“%d”,sum);
}
整型数据求位数、及按位提取数字问题。
4
题目要求:已知10名学生的成绩已存入数组a中,计算前m位同学的平均成绩,并存入变量aver中,并输出之。例如,若m=2,则aver=65
(若程序已经定义的变量不够用,考生可以补充定义其它变量)
题目已给出的框架如下:
  #include “stdio.h”
  main()
{int m,a[10]={60,70,77,79,76,83,78,56,85,69};
  float aver;
 
 
  }
参考答案如下:
#include “stdio.h” 
main()
{
int m,i,a[10]={60,70,77,79,76,83,78,56,85,69};  float aver=0;
scanf(“%d”,&m);
for(i=0;i<m;i++)
aver=aver+a[i];
aver=aver/m;
printf(“the aver is %f”,aver);
}
主函数中直接对整型(实型)数组进行统计处理问题,例如:
1. 求平均分;
2. 求最大值最小值;
3. 求高于平均分人数;
5
题目要求:将输入的一行字符串(<50)存入数组a中,求字符串中小写字母的个数并存入变量count中,并输出之。例如,若输入”It Is A Joke.”,则count=5
(若程序已经定义的变量不够用,考生可以补充定义其它变量)
题目已给出的框架如下:
  #include “stdio.h”
  main()
  {
  char a[50];int count;
 
  }
参考答案如下:
#include “stdio.h” 
main()
{
char a[50];
int count=0,i;
gets(a);
for(i=0;a[i]!='\0';i++)
  if(a[i]>='a'&&a[i]<='z')
      count++;
printf(“the count is %d”,count);
}
主函数中直接对字符型数组进行统计处理问题,例如:
1. 求字符串长度;
2. 求字符串中大写\小写字母个数;;
3.
6
题目要求:已知10名学生的成绩已存入数组a中,求不低于m分的人数,并存入变量count中,并输出之。例如,若m=60,则count=5;若m=80,则count=2
(若程序已经定义的变量不够用,考生可以补充定义其它变量)
题目已给出的框架如下:
  #include “stdio.h”
  main()
  {int m,a[10]={34,45,67,82,64,53,67,90,49,56}; int count;
 
  }
参考答案如下:
#include “stdio.h” 
main()
{int m,a[10]={34,45,67,82,64,53,67,90,49,56}; 
int count=0,i;
scanf(“%d”,&m);
for(i=0;i<10;i++)
    if(a[i]>=m)
      count++;
printf(“the count is %d”,count);
}
7
题目要求:从键盘输入的一行字符串(<50)存入数组a,求该字符串的长度,并将长度存入变量count,并输出之.例如,若输入”I am a student.”,count=15.
(若程序已经定义的变量不够用,考生可以补充定义其它变量).
题目已给出的框架如下:
  #include “stdio.h”
  main()
  {
  char a[50];int count;
  }
参考答案如下:
#include “stdio.h” 
main()
{
char a[50];
int count;
gets(a);
for(count=0;a[count]!='\0';count++)
      /*此处表示循环体为空*/
printf(“the length is %d”,count);
}
8
题目要求:根据三角形的三边(a,b,c)判断是否能组成三角形,若可以则求三角形的面积并存入变量area,并输出之.
(若程序已经定义的变量不够用,考生可以补充定义其它变量).
题目已给出的框架如下:
  #include “stdio.h”
  #include “math.h”
  main()
  {
  float a,b,c,area;
  }
参考答案如下:
#include “stdio.h” 
#include “math.h”
main()
{
float a,b,c,area,s;
scanf(“%f,%f,%f”,&a,&b,&c);
if(a+b>c&&b+c>a&&c+a>b)
    {
    s=0.5*(a+b+c);
    area=sqrt(s*(s-a)*(s-b)*(s-c));
    printf(“yes! and the area=%f\n”,area);
    }
else printf(“yes!\n”);
}
简单数学公式使用的问题:
1. 判断润年;
2. 求方程的解;等等
9
题目要求:编写一个名为fun的函数将字符串中所有的大写字母转换成小写字母.例如,对于字符串”AAbbCC”,则会被转换成”aabbcc”.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(char w[])
  {
  }
  main()
  {
  char a[20]=“AAbbCC”;
  fun(a);
  puts(a);
  }
参考答案如下:
#include “stdio.h” 
fun(char w[])
{int i;
for(i=0;w[i]!='\0';i++)   
    if(w[i]>='A'&&w[i]<='Z') 
      w[i]=w[i]+32;       
}
main() 
char a[20]=“AAbbCC”; 
fun(a); 
puts(a); 
}
使用自定义函数处理字符串问题,例如:
1. 大写\小写字母转换;
2. 字符串逆序存放;
3. 排序(升序、降序)。
10
题目要求:编写一个名为fun的函数,其功能为:将数组n中的字符串拷贝至数组m.例如,main中调用fun以后,会输出”university”.
(不允许用C语言提供的strcpy函数.)
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(char m[],char n[])
  {
  }
  main()
  {
  char a[20],b[20]=“university”;
  fun(a,b);
  puts(a);
  }
参考答案如下:
#include “stdio.h” 
fun(char m[],char n[])
{int i;
for(i=0;n[i]!='\0';i++)
m[i]=n[i];
m[i]= '\0' ;
main() 
char a[20],b[20]=“university”; 
fun(a,b); 
puts(a); 
}
使用自定义函数处理字符串问题,例如:
1. 字符串拷贝;
2. 把字符串a追加到b后。
11
题目要求: 编写一个名为fun的函数实现一个字符串按逆序存放. 例如:abcd变为dcba.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(char w[])
  {
  }
  main()
  {char a[20]=“abcd”;
  fun(a);
  puts(a);
  }
参考答案如下:
#include “stdio.h” 
fun(char w[])
{int i,n,t;
for(i=0;w[i]!='\0';i++)
    ;             
n=i;
for(i=0;i<n/2;i++)   
    {t=w[i];w[i]=w[n-1-i];w[n-1-i]=t; }
main() 
char a[20]=“abcd”; 
fun(a); 
puts(a); 
}
12
题目要求: 编写一个名为fun的函数实现将数组a中的n个整数依次向后移一位,最后面一位移到最前面的位置.例如,若有a[5]={0,1,2,3,4};,则调用fun函数后,数组元素的排列顺序为 4,0,1,2,3.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n)
  {
 
 
  }
  main()
  {
  int i, a[5]={0,1,2,3,4};
  fun(a,5);
  for(i=0;i<5;i++)
      printf(“%d,”,a[i]);
  }
参考答案如下:
#include “stdio.h” 
fun(int w[],int n)
{int i,t;
t=w[n-1];
for(i=n-1;i>0;i--)
    w[i]=w[i-1];
w[0]=t;
main() 
int i, a[5]={0,1,2,3,4}; 
fun(a,5); 
for(i=0;i<5;i++)     
  printf(“%d,”,a[i]);
}
使用自定义函数处理整型(实型)数组置换问题。,例如:
1. 排序;
2. 逆序存放;
3. 有序数组中插入新的数后仍然有序。
13
题目要求:编写一个名为fun的函数统计一个字符串中英文字母(letter)和其它字符(other)的个数.例如,对于”aed234efg”,letter应为6,other应为3.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(char w[],int *p1,int *p2)
  {
  }
  main()
  {
  char a[20]=“aed234efg”;
  int letter,other;
  fun(a,&letter,&other);
  printf(“%d,%d”,letter,other);
  }
参考答案如下:
#include “stdio.h”
fun(char w[],int *p1,int *p2)
{int i;
*p1=0;
*p2=0;
for(i=0;w[i]!='\0';i++)
  if((w[i]>='a'&&w[i]<='z')||(w[i]>='A'&&w[i]<='Z'))   
(*p1)++;
    else  (*p2)++;
}
main()
{ char a[20]=“aed234efg”;
int letter,other;
fun(a,&letter,&other);
printf(“%d,%d\n”,letter,other);
}
使用指针,自定义函数统计字符串问题,例如:
1. 统计字符串中大写/小写字母个数;
2.统计字符串中字母/符号/数字个数。
14
题目要求:编写一个名为fun的函数实现计算数组an个整数的最大数和最小数.例如,本题的main函数应输出 7,1 .
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n,int *p1,int *p2)
  {
  }
  main()
  {
  int a[5]={1,2,3,4,7}, max,min;
  fun(a,5,&max,&min);
  printf(“%d,%d”,max,min);
  }
参考答案如下:
#include “stdio.h”
fun(int w[],int n,int *p1,int *p2)
{int i;
*p1=w[0];
*p2=w[0];
for(i=1;i<n;i++)
    if(w[i]>*p1)
      *p1=w[i];
    else if(w[i]<*p2) *p2=w[i];
}
main()
{
int a[5]={1,2,3,4,7}, max,min; 
fun(a,5,&max,&min); 
printf(“%d,%d”,max,min);
}
使用指针,自定义函数处理整型(实型)数组统计问题。例如:
1. 求平均分;
2. 求最大值最小值;
3. 求高于平均分人数;
15
题目要求:编写一个名为fun的函数实现向有序数组a(由小到大排列)中插入一个数m后使数组仍然有序.例如,若有a[6]={10,20,30,40,50};,则调用fun函数插入35,数组元素的排列顺序为 10,20,30,35,40,50.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n,int m)
  {
  }
  main()
  {
  int a[6]={10,20,30,40,50}, m,i;
  m=35;
  fun(a,5,m);
  for(i=0;i<6;i++)
      printf(“%d,”,a[i]);
  }
参考答案如下:
#include “stdio.h”
fun(int w[],int n,int m)
{int i,t;
if(m>w[n-1])
w[n]=m;
else
{for(i=0;w[i]<m;i++)
    ;
t=i;
for(i=n-1;i>=t;i--)
    w[i+1]=w[i];
w[t]=m;
}}
main()
{
int a[6]={10,20,30,40,50},m,i; 
m=35; 
fun(a,5,m); 
for(i=0;i<6;i++)     
printf(“%d,”,a[i]);
}
16
题目要求:编写一个名为fun的函数实现计算数组a中的n个学生成绩中小于平均分的人数,平均分按实型数考虑.例如,若有a[5]={50,60,70,80,90};,fun函数的返回值应为2.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n)
  {
  }
  main()
  {
  int a[5]={50,60,70,80,90}, count;
  count=fun(a,5);
  printf(“%d”,count);
  }
参考答案如下:
#include “stdio.h”
fun(int w[],int n)
{int i,sum=0,m=0;
float avg;
for(i=0;i<n;i++)
    sum=sum+w[i];
avg=sum/n;
for(i=0;i<n;i++)
    if(w[i]<avg) m++;
return m;
}
main()
{
int a[5]={50,60,70,80,90}, count; 
count=fun(a,5); 
printf(“%d”,count);
}
使用自定义函数对整型(实型)数组进行统计处理问题,例如:
1. 求平均分;
2. 求最大值最小值;
3. 求高于平均分人数;
4. 统计问题和置换问题结合。
17
题目要求:编写一个名为fun的函数实现将数组an个整数中的最小数与最后面的数互换,而其它元素不变.例如,若有a[5]={34,1,2,56,4};,则调用fun函数后,数组元素的排列顺序为 34,4,2,56,1.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n)
  {
  }
  main()
  {
  int i, a[5]={34,1,2,56,4};
  fun(a,5);
  for(i=0;i<5;i++)
      printf(“%d,”,a[i]);
  }
参考答案如下:
#include “stdio.h”
fun(int w[],int n)
{int i,min,j;
min=w[0];
for(i=0;i<n;i++)
    if(w[i]<min)
      {min=w[i]; j=i;
      }
w[j]=w[n-1];
w[n-1]=min;
}
main()
{
int i, a[5]={34,1,2,56,4}; 
fun(a,5); 
for(i=0;i<5;i++)     
    printf(“%d,”,a[i]);
}
c编程必背100题
最大数和第一个元素互换。
18
题目要求:编写一个名为fun的函数根据一个学生一学期5门课的成绩,判断学生是否优秀,优秀的条件是单科分都大于85,如果是优秀则函数返回1,否则返回0.本题的main函数应输出”no good”.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n)
  {
  }
  main()
  {
  int k, a[5]={34,56,72,99,80};
  k=fun(a,5);
  if(k==1)  printf(“good”);
  else      printf(“no good”);
  }
参考答案如下:
#include “stdio.h”
fun(int w[],int n)
{int i,m=1;
for(i=0;i<n;i++)
    if(w[i]<=85) m=0;
return m;
}
main()
{
int k,a[5]={34,56,72,99,80}; 
k=fun(a,5); 
if(k==1)  printf(“good”); 
else  printf(“no good”);
}
19
题目要求:编写一个名为fun的函数,实现求一行字符串中小字字母的ASCII码值之和.本题的main函数应输出195.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(char w[])
  {
  }
  main()
  {
  char a[10]=“aCbD”;
  int k;
  k=fun(a);
  printf(“\n%d”,k);
  }
参考答案如下:
#include “stdio.h”
fun(char w[])
{int i,sum=0;
for(i=0;w[i]!='\0';i++)
    if(w[i]>='a'&&w[i]<='z')
        sum=sum+w[i];
return sum;
}
main()
{
char a[10]=“aCbD”; 
int k; 
k=fun(a); 
printf(“\n%d”,k);
}
使用自定义函数处理字符串统计问题,例如:
1. 字符串中大写/小写/数字的ASCII码值之和;
2. 字符串中数字之和。
20
题目要求:编写一个名为fun的函数,实现对整型数组元素作如下操作:a[1]=a[1]+a[0],a[2]=a[2]+a[1]...即每一个元素等于它本身与上一个元素之和,最前面的一个元素值不变.例如,若原来的数组为 8,9,1,0,4,则新数组为8,17,10,1,4.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w[],int n)
  {
  }
  main()
  {
  int i,a[5]={8,9,1,0,4};
  for(i=0;i<5;i++)
      printf(“%d “,a[i]);
  fun(a,5);
  printf(“\n”);
  for(i=0;i<5;i++)
      printf(“%d “,a[i]);
  }
参考答案如下:
#include “stdio.h”
fun(int w[],int n)
{int i;
for(i=n-1;i>0;i--)
    w[i]=w[i]+w[i-1];
}
main()
{
int i,a[5]={8,9,1,0,4}; 
for(i=0;i<5;i++)     
    printf(“%d “,a[i]); 
fun(a,5); 
printf(“\n”); 
for(i=0;i<5;i++)     
    printf(“%d “,a[i]);
}
使用自定义函数对整型(实型)数组进行数学处理问题。
21
题目要求:编写一个名为fun的函数,判断给定的正整数是否是素数.素数的定义是:其因子只有1和它本身. 例如,7就是素数.本题的main函数应输出Yes.
(不要改动已有的代码,仅在fun的函数体中填写若干语句)
题目已给出的框架如下:
  #include “stdio.h”
  fun(int w)
  {
  }
  main()
  {
    int m;m=7;
    if(fun(m)) printf(“Yes”);
    else      printf(“No”);
  }
参考答案如下:
#include “stdio.h”
fun(int w)
{int i;
for(i=2;i<w;i++)
    if(w%i==0) return 0;
return 1;
}
main()
{
int m;
m=7;   
if(fun(m)) printf(“Yes”);   
else printf(“No”);
}
使用自定义函数处理数学问题,例如:
1. 百鸡问题;
2. 古典数学问题。等等。