下载后可任意编辑//C 语言第一题#include char *fun1(char *s,char *ct){ char *st=s; while(*s) s++; while(*s++=*ct++) ; return st;}char *fun2(char *s){ char tmp,*tmp1=s,*tmp2=s; while(*tmp2) tmp2++; tmp2--; while(tmp2-tmp1>0) { tmp = *tmp1; *tmp1=*tmp2; *tmp2=tmp; tmp1++; tmp2--; } return s;}char *fun3(char *cs,char c){ while(*cs!=c && *cs) cs++; if(*cs==0) cs=NULL; return (char *)cs;}void main(){ char a[50]="The first blow "; char b[50]="is half the battle"; printf("%s\n",fun1(a,b)); printf("%s\n",fun2(a)); printf("%s\n",fun3(a,'i')); return;下载后可任意编辑 }1. fun1,fun2,fun3 的作用fun1:把字符串 ct 连接在字符串 s 后面fun2:字符串逆转fun3:查找字符串 cs 中第一次出现字符 c 的位置2.写出程序执行的结果:The first blow is half the battleelttab eht flah si wolb tsrif ehTi wolb tsrif ehT//第二题:输入若干行文字,以空行结束,统计每行出现的字母,用链表表示,链表的结构体定义给出来了。问题:1.用流程图或伪代码描述程序2.用 C 语言实现程序。3.实现输出函数 output(Node*);#include #include #include struct Node{ char ch; int oc; Node *next;};void output(Node *list){ printf("字母\t 出现次数\n"); while(list) { printf("%c\t%d\n",list->ch,list->oc); list = list->next; } return;}void main()下载后可任意编辑{ Node *list = NULL; char buf[80] = {0}; gets(buf); while(strlen(buf)) { char *p = buf; while(*p) { Node *pNode = list; while(pNode) { if(*p == pNode->ch) { pNode->oc++; break; } else pNode = pNode->next; } if(!pNode) { if(list == NULL) { list = (Node*)malloc(sizeof(Node)); list->next = NULL; list->ch = *p; list->oc = 1; } else { pNode = (Node*)malloc(sizeof(Node)); pNode->ch = *p; pNode->oc = 1; pNode->next = list->next; list->next = pNode; } } p++; } gets(buf); } output(list);下载后可任意编辑 return;}数据库部分一:填空题1.数据模型的三要素2.数据库系统与数据库管理系...