实验10指针做函数参数编程训练

上传人:枫** 文档编号:503424841 上传时间:2023-07-26 格式:DOC 页数:5 大小:24.50KB
返回 下载 相关 举报
实验10指针做函数参数编程训练_第1页
第1页 / 共5页
实验10指针做函数参数编程训练_第2页
第2页 / 共5页
实验10指针做函数参数编程训练_第3页
第3页 / 共5页
实验10指针做函数参数编程训练_第4页
第4页 / 共5页
实验10指针做函数参数编程训练_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验10指针做函数参数编程训练》由会员分享,可在线阅读,更多相关《实验10指针做函数参数编程训练(5页珍藏版)》请在金锄头文库上搜索。

1、实验10指针做函数参数编程训练实验目的:1.掌握指针的定义及使用;2.体会使用指针的作用;3.掌握指针做函数参数的作用;4.掌握指针做函数参数的基本步骤;实验题目:1.输入某年某月某日,计算并输出它是这一年的第几天。/*函数功能:对给定的某年某月某日,计算它是这一年第几天函数参数:整型变量year,month,day,分别代表年,月,日函数返回值:这一年的第几天*/int DayofYear(int year,int month,int day);2.输入某一年的第几天,计算并输出它是这一年的第几月第几日。/*函数功能:对给定的某一年的第几天,计算它是这一年的第几月第几日函数入口参数:整型变量

2、year,存储年整型变量yearDay,存储这一年的第几天函数出口参数:整型指针pMonth,指向存储这一年第几月的整型变量整型指针pDay,指向存储第几日的整型变量函数返回值:无*/void MonthDay(int year,int yearDay,int *pMonth,int *pDay);3.输出如下菜单,用switch语句实现根据用户输入的选择执行相应的操作。 1.year/month/day-yearDay2.yearDay-year/month/day3.ExitPlease enter your choice:参考程序及注释:#include #include int Day

3、ofYear(int year, int month, int day);void MonthDay(int year, int yearDay, int *pMonth, int *pDay);void Menu(void);int dayTab213 = 0,31,28,31,30,31,30,31,31,30,31,30,31, 0,31,29,31,30,31,30,31,31,30,31,30,31;int main()int year, month, day, yearDay;char c;Menu(); /* 调用Menu函数显示一个固定式菜单 */c = getchar();

4、/* 输入选择 */switch (c) /* 判断选择的是何种操作 */case 1:printf(Please enter year, month, day:);scanf(%d,%d,%d, &year, &month, &day);yearDay = DayofYear(year, month, day);printf(yearDay = %dn, yearDay);break;case 2:printf(Please enter year, yearDay:);scanf(%d,%d, &year, &yearDay);MonthDay(year, yearDay, &month,

5、&day);printf(month = %d, day = %dn, month, day);break;case 3:exit(0); /* 退出程序的运行 */default:printf(Input error!);return 0;/* 函数功能:对给定的某年某月某日,计算并返回它是这一年的第几天 */int DayofYear(int year, int month, int day)int i, leap;/* 若year为闰年,即leap值为1,则用第1行元素dayTab1i计算;否则leap值为0,用第0行dayTab0i计算 */leap = (year % 4 = 0)

6、& (year % 100 != 0) | (year % 400 = 0);for (i=1; idayTableapi; i+)yearDay = yearDay - dayTableapi;*pMonth = i; /* 将计算出的月份值赋值给pMonth所指向的变量 */*pDay = yearDay; /* 将计算出的日号赋值给pDay所指向的变量 */* 函数功能:显示菜单 */void Menu(void)printf(1. year/month/day - yearDayn);printf(2. yearDay - year/month/dayn);printf(3. Exit

7、n);printf(Please enter your choice:);实验11 字符串与指针编程练习实验目的:1. 熟悉字符串的输入及输出2. 掌握字符指针做函数参数的方法3. 掌握数组做函数参数的方法实验题目:1. 编写一函数实现字符串的反序输出,函数原型如下:void invert(char *s);即将字符串s反序。解题思路:用循环将串s的首尾字符对调,直到中间位置结束。如:串“ABCDE0”,将A与E对调(交换),B与D对调,循环次数是串的实际长度的一半。2. 在主函数main中输入一串字符串,并调用invert函数将此字符串反序,然后再将反序后的字符串输出。3. 编写一函数将字符

8、串s中的字符c删除void charDel(char *s,char c);解题思路:假设s为“aebefe0”串中的e字符删除,判断当前s指针是否指向e字符,若指向e字符,则将e字符后面的befe0字符向前移动一位,然后移动s指针,重复这一过程。4. 编写函数void replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串,字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上。解题思路:如果当前s指针指向的是c1字符,则把c2赋值给s指针所指向的地址空间,然后移动指针s,重复上述过程。参考代码:#includ

9、e stdio.h#include string.hvoid replace(char *s,char c1,char c2);void charDel(char *s,char c);void invert(char *s);int main()char str=acbd;invert(str);puts(str);void invert(char *s)int strLenth;char *i,*j,*mid,temp;/j和i所指向字符是相互交换的字符strLenth=strlen(s);mid=s+strLenth/2;/交换的次数应为字符串总长度除以2j=s+strLenth-1;/

10、令j指向字符串的末尾,0字符的前一个字符for(i=s;imid;i+)/i=s令i指针指向字符串的首部,i+令i指针指向下一个字符temp=*i;*i=*j;*j=temp;/交换对应的字符j-;/字符串末尾指向前移void charDel(char *s,char c)char *p,*q;while(*s!=0)if(*s=c)p=s;q=s+1;while(*p+=*q+);/要删除的字符后面的字符串整体向前移动一位,也可以用下面的这段代码/*while(*p!=0)*p=*q;p+;q+;*q=0;*/s+;void replace(char *s,char c1,char c2) while(*s!=0) if(*s=c1) *s=c2;s+;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号