2007
1、编写程序,从键盘输入一个字符串,并将其中非小写字母的字符去掉。
#include<stdio.h>
#include<string.h>
int main()
{
    int i,j=0;
    char a[50],b[50];
    printf("输入一个字符串:\n");
    gets(a);
    for(i=0;i<strlen(a);i++)
        if(a[i]>='a'&&a[i]<='z')
        {
            b[j]=a[i];
            j++;
        }
        b[j]='\n';
        for(i=0;i<j;i++)
        {
            printf("%c",b[i]);
        }
        return 0;}
2(不完整)某小组8个队足球比赛完毕,所有比赛结果均有记录,设任两队之间只赛了一场,且比赛没有平局,胜队的3分,负队得0分。编辑输出该小组名次顺序,规则是首先看积分,积分相同看净胜球数,以后依次为进球数、两队之间的比赛结果。为了简化问题,设通过以上比较肯定能得出排名顺序,也就是说不需要考虑连环套的现象。(20分)
#include <stdio.h>
#define N 2
struct team
{int fen;
int jin_shen_qiu;
int jin_qiu;
char shen_fu;}t[N];
void init(struct team t[N])
{int i;
for(i=0;i<N;i++)
{
    printf("\nTeam %d ji fen: ",i+1);
scanf("%d",&t[i].fen);
printf("\nTeam %d jin_shen_qiu: ",i+1);
scanf("%d",&t[i].jin_shen_qiu);
printf("\nTeam %d jin qiu: ",i+1);
scanf("%d",&t[i].jin_qiu);
printf("\nTeam %d shen fu: ",i+1);
scanf("%c",&t[i].shen_fu);}
}
int sort(struct team t[N],int flag)
{int i,j=0,max=0;
printf怎么加endl
switch(flag)
{case 1:
for(i=0;i<N;i++)
{if(max<t[i].fen)
{max=t[i].fen;j=i;}
}
return j;
case 2:
for(i=0;i<N;i++)
{if(max<t[i].jin_shen_qiu)
{max=t[i].jin_shen_qiu;j=i;}
}
return j;
case 3:
for(i=0;i<N;i++)
{if(max<t[i].jin_qiu)
{max=t[i].jin_qiu;j=i;}
}
return j;
case 4:
for(i=0;i<N;i++)
{if(t[i].shen_fu=='w') return i;}
return 0;}
}
int main()
{ int i,j,k=0;
init(t);
for(i=0;i<N;i++)
{j=sort(t,1);
 
        j++;
if(j)
{ printf("\nteam %d is %d.",j,i+1);
t[j-1].fen=0;
} } 
getchar();  getchar(); return 0; }
2008
(未执行成功)某班共有50人,每人都参加了20门功课的考试,试求该班每门功课的平均成绩、最高分数、最低分数、并打印输出。(15分)
#include<stdio.h>
#define N 50
#define M 20
int main()
{void avcour(char (*)[],float *);
void fscore(char (*)[],float *);
float score[N][M],*ps;
char course[M][10],(* pc)[10];
int i,j;
printf("输入课程名:\n");
for(i=0;i<M;i++)
{
    scanf("%s",course[i]);
}
printf("\n输入学生成绩和课程名:\n");
printf("学生号和课程名");
for(i=0;i<M;i++)
{
    printf("  %s",course[i]);
}
for(i=0;i<N;i++)
{
    printf("\n");
    printf("%d",i); 
  for(j=0;j<M;j++)
    scanf("%5.2f",score[i][j]);
}
ps=&score[0][0];
pc=course[0];
avcour(pc,ps);
fscour(pc,ps);
return 0;}
void avcour(char (*pc)[10],float *ps)
{int i,j;
float sum[M],average[M];
printf("输出每门功课的平均成绩:\n");
for(i=0;i<M;i++)
{
    sum[i]=0.0;
    for(j=0;j<N;j++)
        sum[i]=sum[i]+(*(ps+20*i+j));
    average[i]=sum[i]/N;
printf("%s:%5.2f\n",(pc+i),average[i]);
}
return;
}
void fscore(char (*pc)[10],float *ps)
{int i,j;
float max[M],min[M],k;
printf("输出每门功课的最高成绩和最低成绩:\n");
for(i=0;i<M;i++)
    max[i]=*(ps+i);
    min[i]=*(ps+i);
    for(j=0;j<N;j++)
    {
        k=*(ps+20*i+j);
        if(max[i]<=k)
            max[i]=k;
        k=*(ps+20*i+j);
        if(min[i]>=k)
            min[i]=k;
    }
printf("%s:%5.2f,%5.2f\n",(pc+i),max[i],min[i]);
}
return;
}
试编写输出1000内所有素数的程序。(17分)
(一)
#include<stdio.h>
#include<math.h>
int main()
{int i,n,k,m=0;
printf("输出1100之间的素数:\n");
for(i=1;i<100;i++)
{
    k=sqrt(i);
    for(n=2;n<=k;n++)
        if(i%n==0) break;
    if(n>k&&i!=1)
    {
        printf("%3d",i);
        m=m+1;}
    if(m%5==0)printf("\n");
}
return 0;}
筛选法
#include<stdio.h>
#include<math.h>
int main()
{
    int i,j,a[100],n;
printf("输出1100之间的素数:\n");
for(i=0;i<100;i++)
    a[i]=i+1;
a[0]=0;
for(j=1;j<sqrt(100);j++)
{
    for(i=j+1;i<100;i++)
        if((a[i]!=0)&&a[j]!=0)
            if(a[i]%a[j]==0)
            a[i]=0;
}
n=0;
for(i=0;i<100;i++)
    if(a[i]!=0)
    {printf("%3d",a[i]);n++;}
    if(n%5==0)printf("\n");
}
return 0;}
N个英文单词,式编写程序,按这些单词在英文词典上的排列次序输出这些单词。(20分)
#include<stdio.h>
#include<string.h>
int main()
{
    void sort(char *[],int );
    char *name[]={"china","english","japan","america","austrilian"};
    int i,n=5;
    printf("排序后的字符串:\n");
    sort(name,n);
    return 0;}
void sort(char *name[],int n)
{
  int i,j,k;
  char *temp;
  for(i=0;i<n;i++)
  {
      k=i;
      for(j=i+1;j<n;j++)
          if(strcmp(name[k],name[j])>0)
          { 
              k=j;             
          }
          if(k!=j)
          {
              temp=name[i];name[i]=name[k];name[k]=temp;
          }
  }
  for(i=0;i<n;i++)
  {
      printf("%s\n",*(name+i));
  }
  return;
}
2009
1
#include<stdio.h>
int main()
{void sum(int,int *);
void shift(int,int);
int n=0,a;
printf("输入一个正整数:");
scanf("%d",&a);
sum(a,&n);
printf("此正整数位数是:%d\n",n);
printf("按逆序输出此数是:\n");
shift(a,n);
printf("\n");
return 0;
}
void sum(int a,int * k)
{if((a=a/10)!=0)
  sum(a,k);
*k=*k+1;
return;
}
void shift(int a,int n)
{int i,b=1,c=0;
if(n>0)
{for(i=1;i<n;i++)
    b=10*b;
c=a/b;
a=a%b;
n=n-1;
shift(a,n);
printf("%2d",c);}
return;
}
2
#include<stdio.h>
int main()
{int sum(int month,int day);
int leap(int year);
int year,month,day,days;