- 1、本文档共79页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
3.寄存器变量(register变量)由于CPU访问内存需要较长的时间,因此,可以将一些使用频率很高的变量直接存放在CPU的寄存器中,提高程序的执行效率。例如,registerintx=9; 很多现代编译器具有优化功能,会自动将使用频率高的变量存放到寄存器中。根据函数是否能被其他文件调用,将函数分为外部函数和内部函数。1外部函数外部函数能被其他文件调用,定义格式如下:[extern]类型标识符函数名(形参列表)如果省略extern,则默认为外部函数。6.8外部函数与内部函数2内部函数内部函数只能被本文件中的函数调用,定义格式:static类型标识符函数名(形参列表)当多人合作开发时,如果在不同文件中有同名的内部函数,将互不干扰。6.9案例分析与实现display_id()函数的功能是显示指定学生的信息,以下3个函数会调用它:(1)查找学生信息函数find()。(2)修改学生信息函数modify()。(3)删除学生信息函数del()。【例6-18】请编写根据学号显示指定学生信息的函数。【编程思路】(1)该函数应该有一个形参,且形参为字符数组,用来接收主调函数传来的学生学号。(2)函数将根据学号进行查找,如果找到了,就显示相关信息,否则,提示没有找到。(3)该函数的返回值为该学生在数组中的下标,因为del()和modify()需要根据这个返回值进行后续操作。intdisplay_id(charstr[]){inti,id=-1; //id用来保存该学生在结构体数组中的下标for(i=0;istu_num;i++)if(strcmp(str,stu[i].num)==0) //查找{//显示该学生的信息printf(学生学号\t姓名\t年龄\tC语言\t数学\t英语\t总分\t平均分\n);printf(%-16s%s\t%d\t%d\t%d\t%d\t%d\t%5.1f\n,stu[i].num,stu[i].name,stu[i].age,stu[i].c,stu[i].math,stu[i].en,stu[i].sum,stu[i].ave); id=i;//将该学生的数组下标赋给id}if(id==-1)printf(没有找到符合条件的学生\n);returnid;}【例6-19】从键盘输入某学生的学号,查找该学生,并显示他的所有信息。voidfind(){ charstr[15]; printf(请输入要查找的学生学号:); scanf(%s,str); display_id(str);}【例6-20】从键盘输入某学生的学号,找出该学生并修改他的信息。voidmodify(){charstr[15],m; inti;printf(请输入要修改的学生学号:); scanf(%s,str);i=display_id(str); //查找学生,i为数组下标if(i!=-1) //i!=-1表明该学生已找到{printf(确认修改该学生的信息吗?(y/n):);m=getche();if(m==y||m==Y)//再修改{printf(\n请重新输入该学生的信息\n);printf(\n请输入学号:); scanf(%s,stu[i].num);printf(请输入姓名:); scanf(%s,stu[i].name);printf(请输入年龄:); scanf(%d,stu[i].age);printf(请输入C语言成绩:);scanf(%d,stu[i].c);printf(请输入数学成绩:); scanf(%d,stu[i].math);printf(请输入英语成绩:); scanf(%d,stu[i].en);stu[i].sum=stu[i].c+stu[i].math+stu[i].en;stu[i].ave=(float)stu[i].sum/3;}}}【程序说明】getche()函数用于从键盘输入一个字符。
文档评论(0)