欢迎来到天天文库
浏览记录
ID:44053085
大小:120.55 KB
页数:3页
时间:2019-10-18
《指针的应用,结构体的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、指针程序一:#includevoidmain(){inti;char*day_name(intn);printf("inputDayNo:");scanf(”%d",&i);if(i<0)exit(l);printf("DayNo:%2d->%sM,i,day_name(i));}char*day_name(inln){staticchar*name[]={"Illegalday","Monday",”Tuesday",•'Wednesday",•Thursday",'•Friday","Saturday",“Sunday”};ret
2、um((n3、4、n>7)?namefO]:name[n]);}运行结果如下:程序分析:木程序中定义了一个指针型函数day.name,它的返回值指向一个字符串。该函数中定义了一个静态指针数组nameoname数组初始化赋值为八个字符串,分别表示各个星期名及出错提示。形参n表示与星期名所对应的整数。在主函数中,把输入的整数i作为实参,在printf语句中调用day_name函数并把i值传送给形参n0day_name函数中的return语句包含一个条件表达式,n值若大于7或小于1则把name[0]指针返回主函数输出出错提示字符串"Illegalday'o否则返冋主5、函数输出对应的星期名。主函数中的第7行是个条件语句,其语义是,如输入为负数(ivO)则中止程序运行退出程序。exit是一个库函数,exit⑴表示发生错误后退出程序,exit(O)表示正常退出。本程序是通过指针函数,输入一个1〜7之间的整数,输岀对应的星期名。指针程序二:#includeintmax(intajntb){if(a>b)returna;elseretumb;}voidmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf(Hinputtwonumbers:n6、);scanf(”%d%d“,&x,&y);z=(*pmax)(x,y);printf(Hmaxmum=%d*z);}运行结果:inputtwonumbers:2345maxinuiiF45inputtwonumbers:7869maxmuiD=78程序分析:这个程序是用指针函数对两个数进行求最大值,运行中输入两个数,程序自动求出两个数中大者,并输出较大数的值。实际上,可以利用求最大值的函数对若干个数求最大值,可以将函数调用作为一个函数的参数,它的值又作为另一次调用的实参,如此进行很多次便可求出若干个数的最大值。结构体程序:#include7、#includevoidmain()struetstudent{longnum;charname[20];charsex;floatscore;};structstudentstu1;structstudent*p;p二&stu1;stu1.num二89101;strepy(stu_Lname,订in");stu丄sex=,Nf;stu_1・score=89.5;printf("%ld%s%c%frT,stu1.num,stu1.name,stu1.sex,stu1.score);printfCO;printfCz%ld8、n%s%c%fz,,(*p).num,(*p)・name,(*p).sex,(*p).score);运行结果:程序分析:在指向结构体变量的指针的学习中,对结构体变量的赋值方式可以有多种,可以利用先定义一种结构体类型,定义以后再定义结构体变量,在定义变量的同时即对结构体变量赋初值,另外可以先定义了结构体变量再对结构体变量各元素分别引用赋初值,这时要注意用成员运算符•符号。开始调这个程序的时候,“strepy(stu_l.name,订irT);”这个语句我用的是stu_l.name=〃1订in〃,后来发现出现错误。所以在对各成员进行赋值的时候应该注意。
3、
4、n>7)?namefO]:name[n]);}运行结果如下:程序分析:木程序中定义了一个指针型函数day.name,它的返回值指向一个字符串。该函数中定义了一个静态指针数组nameoname数组初始化赋值为八个字符串,分别表示各个星期名及出错提示。形参n表示与星期名所对应的整数。在主函数中,把输入的整数i作为实参,在printf语句中调用day_name函数并把i值传送给形参n0day_name函数中的return语句包含一个条件表达式,n值若大于7或小于1则把name[0]指针返回主函数输出出错提示字符串"Illegalday'o否则返冋主
5、函数输出对应的星期名。主函数中的第7行是个条件语句,其语义是,如输入为负数(ivO)则中止程序运行退出程序。exit是一个库函数,exit⑴表示发生错误后退出程序,exit(O)表示正常退出。本程序是通过指针函数,输入一个1〜7之间的整数,输岀对应的星期名。指针程序二:#includeintmax(intajntb){if(a>b)returna;elseretumb;}voidmain(){intmax(inta,intb);int(*pmax)();intx,y,z;pmax=max;printf(Hinputtwonumbers:n
6、);scanf(”%d%d“,&x,&y);z=(*pmax)(x,y);printf(Hmaxmum=%d*z);}运行结果:inputtwonumbers:2345maxinuiiF45inputtwonumbers:7869maxmuiD=78程序分析:这个程序是用指针函数对两个数进行求最大值,运行中输入两个数,程序自动求出两个数中大者,并输出较大数的值。实际上,可以利用求最大值的函数对若干个数求最大值,可以将函数调用作为一个函数的参数,它的值又作为另一次调用的实参,如此进行很多次便可求出若干个数的最大值。结构体程序:#include
7、#includevoidmain()struetstudent{longnum;charname[20];charsex;floatscore;};structstudentstu1;structstudent*p;p二&stu1;stu1.num二89101;strepy(stu_Lname,订in");stu丄sex=,Nf;stu_1・score=89.5;printf("%ld%s%c%frT,stu1.num,stu1.name,stu1.sex,stu1.score);printfCO;printfCz%ld
8、n%s%c%fz,,(*p).num,(*p)・name,(*p).sex,(*p).score);运行结果:程序分析:在指向结构体变量的指针的学习中,对结构体变量的赋值方式可以有多种,可以利用先定义一种结构体类型,定义以后再定义结构体变量,在定义变量的同时即对结构体变量赋初值,另外可以先定义了结构体变量再对结构体变量各元素分别引用赋初值,这时要注意用成员运算符•符号。开始调这个程序的时候,“strepy(stu_l.name,订irT);”这个语句我用的是stu_l.name=〃1订in〃,后来发现出现错误。所以在对各成员进行赋值的时候应该注意。
此文档下载收益归作者所有