c语言的软件分析作业答案,标准C语言程序的设计与应用周纯杰版习题参考答案...

《标准C语言程序的设计与应用周纯杰版习题参考答案》由会员分享,可在线阅读,更多相关《标准C语言程序的设计与应用周纯杰版习题参考答案(14页珍藏版)》请在人人文库网上搜索。

1、注:以下内容为教材部分习题答案,如发现错误请告知,欢迎讨论张惕远习题二一、选择题1、 C2、 BCD3、 A4、 A(注:本题强调用户标识符,所以if 、int不是,但是sin 是用户标识符,原因是库函数不是标准语法成分, 开发库函数的程序员也是用户, main 虽然不是语法成分,但 开发平台预定 义了 main 为 console application 的执行入口,并且规定了定义格式,所以用户不能用作它用,但 _main 可以)5、 (D)(C)6、 C7、 D8、 B9、 A10、D11、 B(注:本题是求 strlen ( ” ” ”)的值,即字符串中有效字符的个数,不含串结尾符, s。

2、izeof( “ ” ) 的值与前者不同,含串结尾符)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、。

3、表达式值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、 D。

4、7、 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 m。

5、ain( )第 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 m。

6、ain( )int m;定义后加入:float max;process 定义改为:floatprocess()float temp=p10 ;或改为: =*p1*p2 =p10;/ 插入for(x= 1;x 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)。

7、;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(。

8、 请输入待翻转的字符串:);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;else.temp =*s;*s=*(s+len-1);*(s+len-1)=temp;le。

9、n -=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(翻转后。

10、的字符串为: %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。

11、,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_av。

12、g);voidsort(intstu_id,charstu_name20,intstu_sex,int.stu_score4,float stu_avg )int i,j,k,m,tmp;char temp20;float average;for(i=0;istu_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;ktotal_avg&stu_sexi=1)printf(%-8d%-10s%-6d%-6d%-6d%-6d%-6dn,stu_idi,stu_namei,st u_sexi,stu_scorei0,stu_scorei1,stu_scorei2,stu_score i3);puts(-);。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值