暑假作业第一周

c语言:

1.使用函数求奇数和:输入一批正整数(以零或负数为结束标志),求其中所有奇数的和。要求定义和调用函数even(n),判断整数的奇偶性,当n为偶数时返回1,否则返回0。
 #include 
even(int n) 
{  if(n%2) 
return(1); 
else  return(0); 

main() {  int n,sum=0;  scanf("%d",&n);  while(n)  {  if(even(n))  sum+=n;  scanf("%d",&n);   }   printf("%d",sum); } 

2.使用函数计算两点间的距离:给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。要求定义和调用函数dist(x1,y1,x2,y2)计算两点间的距离。 

#include #include double dist(double x1,double y1,double x2,double y2) {  return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))); } main() {  int x1,y1,x2,y2;  scanf("%d%d%d%%d",&x1,&y1,&x2,&y2);  printf("%.2f",dist(x1,y1,x2,y2)); }

 3.使用函数判断完全平方数:输入一个正整数n,判断其是否为完全平方数,如果是,则输出”YES”,如果不是,则输出”NO”。要求定义并调用函数IsSquare(n),判断n是否为完全平方数。

 #include lsleap(int n) {  int i,a=0;  for(i=0;i<=n;i++)  if(i*i==n)  a=1;  return(a); } main() {  int n;  scanf("%d",&n);  if(lsleap(n))  printf("yes");  else  printf("no"); } 

4.编写一个函数IsLeap(n),其功能是:检验一个输入的四位数字是否是闰年,如果是闰年则返回1,否则返回0。在主函数中从键盘输入一个四位数m,调用该函数进行判断,如果是则输出” yes”,否则输出”no”(提示:如果该四位数能被4整除但不能被100整除,则是闰年;如果该四位数能被400整除,则是闰年) 

#include lsleap(int n) {  if(n%4==0&&n%100!=0||n%400==0)  return(1);  else  return(0); } main() {  int n;  scanf("%d",&n);  if(lsleap(n))  printf("yes");  else  printf("no"); }

 5.输入一个正整数n(1

#include"stdio.h" main() {  int a[10],b[10],m,n,i,j,flag;  scanf("%d",&m);  for(i=0;i<=m;i++)  scanf("%d",&a[10]);  scanf("%d",&n);  for(i=0;i

 6.任意输入两个字符串,逐个比较两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到新的数组c中,形成一个新的字符串并输出,要求用函数编程现。

 #include char bi(char a,char b) {  return(a>b?a:b); } main() {  char a[10],b[10],c[10];  int i;  scanf("%s",&a);  scanf("%s",&b);  for(i=0;i<10;i++)  {  c[i]=bi(a[i],b[i]);  }  printf("%s",c); }

 7.通过键盘输入下面表格中学生的信息,编程计算并输出4门课程平均成绩最高的学生记录。其中,m表示男,f表示女。

 #include struct student {  int num;  char name[10];  char xing;  struct birthday  {  int year;  int mouth;  int day;  }a;  int cheng[4]; }; main() {  struct student stu[4]={{1,"wanggang",'m',.a={1991,5,19},72,83,90,82},  {2,"liming",'m',.a={1992,8,20},88,92,78,78},  {3,"wangli",'f',.a={1991,9,19},98,72,89,66},  {4,"chenghong",'f',.a={1992,3,22},87,95,78,90},  };  int i,j;  int avger[4],sum[4]={0};  for(i=0;i<4;i++)  {  for(j=0;j<4;j++)  sum[i]+=stu[i].cheng[j];  avger[i]=sum[i]/4;  }  int max=0;  for(i=0;i<4;i++)  if(max

8.编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显示各候选人的得票结果和废票信息。要求用结构体数组candidate表示3个候选人的姓名和得票结果。

 #include #include struct man {  char name[10];  int shu; }m[3]={"zhang",0,"li",0,"wang",0}; main() {  int i,name[10],j;  for(i=0;i<10;i++)  {  scanf("%s",name);  for(j=0;j<3;j++)  {  if(strcmp(name,m[j].name)==0)  m[j].shu+=1;  }  }  for(i=0;i<3;i++)  printf("%s %d\n",m[i].name,m[i].shu); } 

9.编写程序,求出n1至n2自然数之和。要求使用递归方法。

 #include he(int n,int m) {  int sum=0;  if(n==m)  return(n);  else  return(n+he(n+1,m)); } main() {  int n,m;  scanf("%d%d",&n,&m);  printf("%d",he(n,m)); } 

10.递归实现求Fibonacci数列。f(n)=f(n-2)+f(n-1)(n>1)其中f(0)=0,f(1)=1。

 #include f(int n) {  if(n==0||n==1)  return(1);  else  return(f(n-2)+f(n-1)); } main() {  int n;  scanf("%d",&n);  printf("%d",f(n)); }

二级练习:

#include  
#define    N    5
typedef struct  student {
  long  sno;
  char  name[10];
  float  score[3];
} STU;
void fun(char  *filename, STU  n)
{ FILE  *fp;
/**********found**********/
  fp = fopen(filename, "rb+");
/**********found**********/
  fseek(fp, -(long)sizeof(STU), SEEK_END);
/**********found**********/
  fwrite(&n, sizeof(STU), 1, fp);
  fclose(fp);
}
void main()
{ STU  t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88},
             {10003,"LiSi", 85, 70, 78},    {10004,"FangFang", 90, 82, 87},
             {10005,"ZhangSan", 95, 80, 88}};
  STU  n={10006,"ZhaoSi", 55, 70, 68}, ss[N];
  int  i,j;      FILE  *fp;
  fp = fopen("student.dat", "wb");
  fwrite(t, sizeof(STU), N, fp);
  fclose(fp);
  fp = fopen("student.dat", "rb");
  fread(ss, sizeof(STU), N, fp);
  fclose(fp);
  printf("\nThe original data :\n\n");
  for (j=0; j   {  printf("\nNo: %ld  Name: %-8s      Scores:  ",ss[j].sno, ss[j].name);
     for (i=0; i<3; i++)  printf("%6.2f ", ss[j].score[i]);
     printf("\n");
  }
  fun("student.dat", n);
  printf("\nThe data after modifing :\n\n");
  fp = fopen("student.dat", "rb");
  fread(ss, sizeof(STU), N, fp);
  fclose(fp);
  for (j=0; j   {  printf("\nNo: %ld  Name: %-8s      Scores:  ",ss[j].sno, ss[j].name);
     for (i=0; i<3; i++)  printf("%6.2f ", ss[j].score[i]);
     printf("\n");
  }
}
   


#include 
#include 
typedef  struct  aa
{  int  data;
   struct  aa  *next;
} NODE;
NODE *Creatlink(int  n, int  m)
{  NODE  *h=NULL, *p, *s;
   int  i;
/**********found***********/
   p=(NODE *)malloc(sizeof(NODE));
   h=p;
   p->next=NULL;
   for(i=1; i<=n; i++)
   {  s=(NODE *)malloc(sizeof(NODE));
      s->data=rand()%m;      s->next=p->next;
      p->next=s;             p=p->next;
   }
/**********found***********/
   return  h;
}
void outlink(NODE  *h)
{  NODE  *p;
   p=h->next;
   printf("\n\nTHE  LIST :\n\n  HEAD ");
   while(p)
   {  printf("->%d ",p->data);
      p=p->next;
   }
   printf("\n");
}
void main()
{  NODE  *head;
   head=Creatlink(8,22);
   outlink(head);
}


 

#include
#include
#define N 80
int fun(char *s)
{
  int i,n=0;
  for(i=0;s[i]!='\0';i++)
  if(s[i]!=' '&&(s[i]!=' '||s[i]!='\0'))
  n++;
  return(n);
}
void main()

  FILE *wf;
  char line[N]; 
  int num=0;
  printf("Enter a string:\n "); 
  gets(line);
  num=fun(line);
  printf("The number of word is:%d\n\n ",num);
/******************************/
  wf=fopen("out.dat","w");
  fprintf(wf,"%d",fun("a big car"));
  fclose(wf);
/*****************************/

你可能感兴趣的:(c语言)