1.编写函数,实现按照如下公式计算的功能,其中n为自然数
#include <stdio.h>int fac(int n) {if(n==0)return 1;elsereturn n*fac(n-1);
}float fun(int n) {float flag;float sum=0;for(int i=0; i<=n; i++) {flag=i/((i+1)*fac(i+2));sum+=flag;}return sum;
}
2.编写bool函数,判断给定的整数数组a[n]中是否存在元素a[i](0<i<N),等于前边所有元素之和,即a[i]=a[0]+a[1]+...+a[i-1]
#include <stdio.h>
#include <stdbool.h>bool judge(int *a,int n) {for(int i=0; i<n; i++) {int sum=0;for(int j=0; j<i; j++)sum+=a[j];if(sum==a[i])return true;}return false;
}int main() {int a[]= {2,21,1,4,5};printf("%d",judge(a,5));
}
3.编写一个递归函数,计算组成给定整整数n的所有数字之和
#include <stdio.h>int func(int n) {int sum=0;while(n>0) {sum+=n%10;n/=10;}return sum;
}int main() {printf("%d",func(1240));
}
4.构造一个表示教师的结构体(包含3个字段,姓名,性别,年龄),编写函数读入M个教师的信息,存入一个结构体中
张三 | 李四 | ...... | 赵九 |
男(true) | 女(false) | 男(true) | |
50 | 37 | 09 |
#include <stdio.h>struct teacher{char name[10];bool sex;int age;
};void save(struct teacher st[], int M)
{for(int i = 0; i < M; i++){scanf("%s",st[i].name);scanf("%d",&st[i].sex);scanf("%d",&st[i].age);}
}
5.设有一个保存教师信息的单链表(每个结点包含4个字段:姓名、性别、年龄、后继指针),如下图所示。构造该链表中一节的数据类型声明;编写函数,在给定的链表中查找所有女教师的信息,并存储导指定文件output.txt中
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>struct LinkNode{char name[30]; bool sex; int age; struct LinkNode* next;
};void save(struct LinkNode* head)
{FILE *fp;if((fp = fopen("output.txt","w")) == NULL)printf("can not open the output.txt\n");struct LinkNode* p = head;while(p != NULL){if(p -> sex == false){fprintf(fp,"%s",p->name);fprintf(fp,"%d",p->age); }p = p -> next;}fclose(fp);
}