当前位置:首页 > C语言实验册
金陵科技学院实验报告
void fun (char s, char t) {
int i, d;
/**********FOUND**********/ d = len(s);
/**********FOUND**********/ for (i = 1; i t[i] = s[d - 1 - i ]; for (i = 0; i /**********FOUND**********/ t[2*d] = '/0'; } main() { char s[100], t[100]; printf(\ scanf(\ fun(s, t); printf(\} 3、程序设计 说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。 (1) 功能:请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用k返回。 例如: 输入如下整数:876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980 (2) 功能:编写函数void len_cat(char c1[],char c2[])将第二个串连接到第一个串之后,不允许使用strcat函数 (3) 功能:编写函数long fun ( char *p),将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 例如:若输入字符串\,则函数把它转换为整数值 -1234。 (4) 功能:编写函数int fun(char *ptr)过滤串,即只保留串中的字母字符,并统计新生成串中包含的字母个数作为函数的返回值。 (5)功能:编写函数void fun(char s[])将一个由四个数字组成的字符串转换为每两个数字间有一个空格的形式输出。 例如:输入“4567”,应输出“4□5□6□7”(□表示空格)。 (6) 功能:编写函数void fun(char s[],char c)从字符串s中删除指定的字符c。 说明:该字符可能多次和连续出现,算法应全面考虑。 9 金陵科技学院实验报告 4、讨论、思考题 (1)功能:请编写函数void fun(char (*s)[N], char *b),将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。 例如:二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSHWSH。 (2)功能:编写函数void fun(char str[],int i,int n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。 (3)功能:编写函数void fun(char *s,char t[]),将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如:若s所指字符串中的内容为:\,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:\。 (4) 功能:请编写函数int fun( char *s),统计一行字符串中单词的个数作为函数值返回。规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 程序清单及流程图: 10 金陵科技学院实验报告 四、实验结果与分析(程序运行结果及其分析) 1、程序调试 (1) struct aa {int x,*y;}*p; int a[8]={10,20,30,40,50,60,70,80}; struct aa b[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]}; main() {p=b; printf(″%d″,*++p->y); printf(″%d\n″,++(p->x)); } (2) struc STU { char name[10]; int num; }; void f1(struct STU c) { struct STU b={“LiSiGuo”,2042}; c=b; } void f2(struct STU *c) { struct STU b={“SunDan”,2044}; *c=b; } main( ) { struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(a) ;f2(&b) ; printf(“%d %d\\n”,a.num,b.num); } 2、程序设计 说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。 (1)(2)两题的学生记录由学号和成绩组成,结构体类型定义如下: typedef struct { char num[10]; double s; } STREC; (1)功能:a所指向的数组中有N名学生的数据,请编写函数double fun(STREC *a,STREC *b),把a数组中分数最高的学生数据放在b所指的数组中。分数最高的学生可能不止一个,函数返回分数最高的学生人数。 11 金陵科技学院实验报告 (2)功能:a所指的数组中有N名学生的数据,请编写函数double fun(STREC *a,STREC *b,int *n),把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 (3)从键盘输入一系列字符(以$作为输入结束标志),将其存入文件file1.txt中,再从该文件中查找某个字符(该字符可以输入),如果查找成功将返回成功标志,否则返回不成功标志。 3、讨论、思考题 功能:N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写子函数double fun(STREC *h),找出学生的最高分,由函数值返回。 注意:链表的节点类型定义如下: struct slist { double s; struct slist *next; }; typedef struct slist STREC; 程序清单及流程图: 12 金陵科技学院实验报告 四、实验结果与分析(程序运行结果及其分析) 13
共分享92篇相关文档