




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
注:以下内容为教材部分习题答案,如发现错误请告知,欢迎讨论张惕远习题二一、 选择题1、 C2、 BCD3、 A4、 A(注:本题强调用户标识符,所以if、int不是,但是sin是用户标识符,原因是库函数不是标准语法成分,开发库函数的程序员也是用户,main虽然不是语法成分,但开发平台预定义了main为console application的执行入口,并且规定了定义格式,所以用户不能用作它用,但_main可以)5、 (D)(C)6、 C7、 D8、 B9、 A10、 D11、 B(注:本题是求strlen(”DEF”)的值,即字符串中有效字符的个数,不含串结尾符,sizeof(“”)的值与前者不同,含串结尾符)12、 D13、 C14、 D15、 A16、 B17、 A18、 B二、 判断题(对)(错)(错)(对)三、 填空题1、B 66回车2、n1=%dnn2=%d3、5四、 计算下列各表达式的值1、注:本书假设采用16位编译平台,所以int和unsigned int均为2字节类型。(1)47(2)38(3)9(4)0xFFC6 or 65478(5)104(6)22、(1)6(2)50(3)1(4)-16 or 0xFFF0(5)1(6)203、表达式值a的值b的值(1)053(2)153(3)313(4)15104(5)883(6)1534、表达式值x的值y的值(1)12252(2)0243(3)1243(4) 27243(5) 1243(6)663(7)242424(yai (注:教材中for语句有错,应该去掉表达式3后面的分号“;”)最后输出为u nalggace7、 (1) sj (2)sj 8、 D9、 B10、 611、 isdigit(si)该带参数的宏用来判断字符si是不是数字字符,该宏的定义在头文件ctype.h中12、 0和str1i str2i二、1、第7行sum=0; 第10行改为:scanf(“%d”,&aij);习题六一、 选择题1、 D2、 D3、 D4、 C5、 CD6、 D7、 B8、 B二、 填空题1、*(p+3)2222、cdefgbcdefgabcdefg73、6385三、 程序分析题9、 第5行改为:p =&s0; or p=s;10、 第4,5行合为:double x,y,*p;11、 第4行改为:int x,*p=&x;否则p为“野指针” 或者在给p赋值之前定义一个int变量y,然后p&y;12、 第4,5行交换书写次序。习题七一、 选择题1、 A2、 D3、 B4、 D5、 C6、 A7、 B二、 程序填空题1、akakak2、aij6 or i+1三、 改错题1、 第3行最后加分号“;”第4行改为:void main( )第7行去掉三个& 运算符第8,9行改为:if(strcmp(a,b)0)swap(a,b);if(strcmp(b,c)0)swap(b,c);if(strcmp(a,b)0)swap(a,b);swap函数改为:void swap(char *pstr1,char *pstr2)char p80;/千万不能用char *p;没有赋初值即为“野指针”,危险!strcpy(p,pstr1);strcpy(pstr1,pstr2);strcpy(pstr2,p);2、 第1行后面加入:float process(float * , int , int *);void main( )int m;定义后加入: float max;process定义改为:float process()float temp=p10; 或改为:=*p1*p2 =p10;/插入for(x=1;xn;x+)四、 编程题/P.230第七章习题/编程题4参考程序答案/#include void delete_char(char *s , char c);void main()char str80,ch;puts(请输入一个不足79个字符的串:);scanf(%s,str);getchar();puts(请输入待删除的字符:);scanf(%c,&ch);delete_char(str,ch);printf(删除特定字符%c后的字符串为%sn,ch,str);void delete_char(char *s , char c)char *p;p=s;for( ;*s;s+)if(*s!=c) *p+=*s;*p=0;/P.230第七章习题/编程题8参考程序答案/*#include #include #include /#include void reverse(char *s );int len;/全局变量使得reverse函数通用性降低void main()char *str;str =(char *)malloc(80*sizeof(char);if(!str)/if(str=NULL)puts(内存空间不够!);puts(请输入待翻转的字符串:);scanf(%s,str);/gets(str);len=strlen(str);reverse(str);printf(翻转后的字符串为:%sn,str);free(str);/很重要,必须与前面的malloc配对,编程时,最好习惯性地在写/完malloc后马上先把free写上,免得遗忘void reverse(char *s)char temp;if(len=2| len=3) temp =*s;*s=*(s+len-1);*(s+len-1)=temp;elsetemp =*s;*s=*(s+len-1);*(s+len-1)=temp;len -=2;reverse(s+1);*/-/下面是通用性强的reverse函数#include #include #include /#include void reverse(char *s , int len);void main()char *str;int length;str =(char *)malloc(80*sizeof(char);if(!str)/if(str=NULL)puts(内存空间不够!);puts(请输入待翻转的字符串:);scanf(%s,str);length =strlen(str);reverse(str,length);printf(翻转后的字符串为:%sn,str);free(str);void reverse(char *s , int len)char temp;if(len=2| len=3) temp =*s;*s=*(s+len-1);*(s+len-1)=temp;elsetemp =*s;*s=*(s+len-1);*(s+len-1)=temp;len - =2;reverse(s+1,len);/P.230第七章习题/编程题15参考程序答案/本例可以采用结构体数组/#include #include voidinput(int ,char 20,int ,int 4);voidcalcu(int 4,float ,float *);voidsort(int ,char 20,int ,int 4,float );voidoutput(int ,char 20,int ,int 4,float ,float);void main()int score304;float avg30,total_avg;char name3020;int id30,sex30;input(id,name,sex,score);calcu(score,avg,&total_avg);sort(id,name,sex,score,avg);output(id,name,sex,score,avg,total_avg);voidsort(int stu_id,char stu_name20,int stu_sex,int stu_score4,float stu_avg )int i,j,k,m,tmp;char temp20;float average;for(i=0;i29;i+) m=i; for(j=i+1;jstu_avgm) m=j; if(m!=i) tmp =stu_idm;stu_idm =stu_idi;stu_idi =tmp; strcpy(temp,stu_namem);strcpy(stu_namem,stu_namei);strcpy(stu_namei,temp);tmp =stu_sexm;stu_sexm =stu_sexi;stu_sexi =tmp; for(k=0;k4;k+)tmp=stu_scoremk;stu_scoremk =stu_scoreik;stu_scoreik =tmp;average=stu_avgm;stu_avgm =stu_avgi;stu_avgi =average; voidcalcu(int stu_score4,float stu_avg,float *stu_total_avg)int i,j;*stu_total_avg=0;for(i=0;i=29;i+)stu_avgi=0;for(j=0;j4;j+)stu_avgi +=stu_scoreij;*stu_total_avg +=stu_scoreij;stu_avgi /=4;*stu_total_avg /=30*4;voidinput(int stu_id,char stu_name20,int stu_sex,int stu_score4)puts(请按学号依次输入学生的学号、姓名、性别(1:男生,0:女生));puts(和数学、物理、英语、计算机的课程成绩:);printf(%6s%6s%6s%6s%6s%6s%6sn,学号,姓名,性别,数学,物理,英语,计算机);int i,j;for(i=0;i=29;i+)scanf(%d%s%d,&stu_idi,stu_namei,&stu_sexi);for(j=0;j4;j+)scanf(%6d,&stu_scoreij);puts(-);voidoutput(int stu_id,char stu_name20,int stu_sex,int stu_score4,float stu_avg,float tota
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源汽车智能网联化用户付费意愿调研报告2025
- 2025年固态电池在电动汽车电池全球市场布局与竞争格局报告
- 2025企业与合作方签订股权抵押担保合同
- 六方氮化硼特点
- 2025新上海合同范本
- 离婚协议中关于个人债权债务处理参考样例
- 时尚街区商铺租赁合同模板(含品牌形象维护)
- 桥梁工程砌体与高性能抹灰劳务分包协议
- 跨境电商外资股权投资与运营模式合作协议
- 石油期货交易及实物交割采购合同
- DBJ50-T-157-2022房屋建筑和市政基础设施工程施工现场从业人员配备标准
- 直播责任自负书
- 2023年太原市第二热力有限责任公司招聘笔试题库及答案解析
- 万科物业管理服务工作手册
- 简单的电动车代理合同模板
- DDI辅导员工迈向成功-辅导领导力系列
- 竞选大学心理委员ppt模板
- 煤矿井筒装备安装方案
- T∕CEPPEA 5008-2021 城市电缆线路岩土工程勘察规范_
- 人教版八年级上册物理期末复习:多选题专项练习题汇编[含答案]]
- 22.1.1二次函数-人教版九年级数学上册练习
评论
0/150
提交评论