王森版c语言课后题答案,《C语言编程基础第2版》王森-上机解答.doc

62e50291a81fc54b507f33cb80033297.gif 《C语言编程基础第2版》王森-上机解答.doc

(20页)

add934e4f04c55ddc3c9bd14bf1df185.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.90 积分

《C语言编程基础(第2版)》上机实习解答前 言《C语言编程基础(第2版)》在各章后面都安排了上机实习指导和上机实习,这是该书编写的一大特色。上机实习指导给出了该章的学习目标和应注意的问题,这两部分都非常重要,前者告诉读者应该掌握的知识重点,后者告诉读者最容易忽略、混淆、搞错的概念和问题。而上机实习的内容又很好地配合了对这些知识的掌握和理解,并通过实践、操作、练习,能很好地锻炼编程技巧和能力。为了帮助老师教学、方便学生做好实习准备,特别是帮助不具备上机条件的学生了解上机结果,我们给出本上机实习解答。重点是给出一些程序的运行结果、需要完善的程序语句、及要求编写的程序答案。如有错误或不当之处请批评指正。第1章 C语言概述上机实习 Turbo C系统的基本操作方法二、上机内容2、⑴ 运行结果如下:sum=3⑵ 删除变量定义语句或将其注释起来后,再运行会出现错误提示: “ Error Undefined symbol ‘a’ in function main. ”等信息。告知a、b、sum在函数中未定义3、运行该程序,输入任意两个整数,会输出其中的最大值。第2章 数据类型和简单程序设计上机实习 基本数据类型的简单程序设计二、上机内容1、语法错误的检查与修改。⑴错误:y未定义。修改:int x1,x2,y;运行结果:y=50⑵错误:inta 缺少空格。修改:int a,b,c;运行结果:c=5000⑶错误:ch=A 字符变量赋值错误。修改:ch=’A’运行结果:A⑷错误:m#1 #不能为变量名。修改:float m1;m1=2.36;printf(“%f”,m1/2);运行结果:1.1800002、分析程序运行结果。⑴ 该题是已知半径而求圆的面积,输出半径和面积值。运行结果为: r=2s=12.566360⑵ 该题是求字母a和b的ASCII码值。运行结果为: 字母a的ASCII码为:97 字母b的ASCII码为:98⑶ 运行结果:☻ (笑脸)♣ (梅花)3、设计编写一个简单程序。main(){printf(“平均成绩:%d\n”,(100+80+75)/3);}该程序运行结果为:平均成绩:85第3章 表达式与运算符上机实习 运算符及表达式应用二、上机内容1、指出下面程序中的错误,并改正。错误:C未定义且该定义语句不正确;若定义时给a、b、c三个变量都初始赋值了,可删掉“scanf(“%d,%d,%d”,a,b,c);”程序行;若定义变量时不进行初始化,该接收变量值的语句有错。修改:int a,b,c;scanf(“%d,%d,%d”,&a,&b,&c);运行结果:1,2,3↙A=1,b=2,c=62、运行下列程序,观察并分析运行结果。⑴ 运行结果:(a+b)/(a-b)=-5a+b/a-b=-9分析:该题说明在表达式中,分数线上下使用括号与否计算结果完全不同,应注意使用括号。⑵ 运行结果:100/200=0100/200.0=0.500000分析:该题说明整除运算结果只保留整数部分,实数运算的结果保留小数。⑶ 运行结果:(i++)+j=300i+(++j)=301i+++j)=300分析:自增自减运算符的前置运算与后置运算不同,并注意运算符的结合性。⑷ 运行结果:i=101j=101k=101分析:使原数加1的三种不同运算方法。⑸ 书中例3.7程序调试运行结果如下:char=1char(ch)=1int=2int(x)=2float=4float(y)=43、完善程序⑴ #include ……y=pow(x,5)+POW(10,5);…….⑵…….b=x>y?x:y;…….第4章 数据的输入与输出上机实习一 字符的输入输出二、上机内容1、运行下列程序,注意观察运行结果。⑴ 运行结果:① a↙(输入数据)c1=’a’② ab↙(输入数据)c1=’a’③ abc↙(输入数据)c1=’a’getchar()只接收一个字符,且等待回车后向下运行,因此c1输出结果相同。⑵ 运行结果:请输入一个字母:b↙(输入数据)b的前一个字母是a,后一个字母是c(输出结果)变化:更换“getch ()”命令不显示输入内容,不等待回车便向下执行,输出结果相同。2、完善程序……ch1=getchar();ch2=ch1-32;(ch1>=’a’&&ch1max[i]) max[i]=x[i][j];……}上机实习三 一个应用程序的设计二、上机内容题目要求编写应用程序的三个函数如下:1、减法练习函数 subt() {int i,num1,num2,answer;clrscr();for(i=1;i<=5;i++){num1=random(99)+1;num2=random(99)+1;question(num1,num2,‘-’);scanf(“%d”,&answer);if(answer==num1-num2)puts(“正确”);else{voice();printf(“错了!正确答案是:%d\n”,num1-num2);}}printf(“\n减法练习做完了,按任意键返回菜单……..”);getch();}2、乘法练习函数mult() {int i,num1,num2,answer;clrscr();for(i=1;i<=5;i++){num1=random(99)+1;num2=random(99)+1;question(num1,num2,‘*’);scanf(“%d”,&answer);if(answer= =num1*num2)puts(“正确”);else{voice();printf(“错了!正确答案是:%d\n”,num1*num2);}}printf(“\n乘法练习做完了,按任意键返回菜单……..”);getch();}3、除法练习函数divid() {int i,num1,num2,answer;clrscr();for(i=1;i<=5;i++){num1=random(99)+1;num2=random(99)+1;question(num1,num2,‘/’);scanf(“%d”,&answer);if(answer==num1/num2)puts(“正确”);else{voice();printf(“错了!正确答案是:%d\n”,num1/num2);}}printf(“\n除法练习做完了,按任意键返回菜单……..”);getch();}第8章 文 件上机实习一 文件的顺序读写二、上机内容1、建立和运行给定程序,分析并观察运行结果⑴ 该题目要求改正错误上机运行,请参看本资料包的习题解答部分。⑵ 该程序运行时,送入的文件名应该是⑴题中创建和操作过的xt1.txt。2、完善程序。⑴ ........ fp=fopen(filename,”w”); ...... fprintf(fp,”%s %d %d”,name,s1,s2); ...... fclose(fp); ......⑵ ...... if((fp=fopen(filename.”r”))= =NULL); ......fscanf(fp,”%s %d %d”,name,&s1,&s2):if(strcmp(name,stuname)= =0)......3、从文件中读出[例8.8]写入的字符串,可以放在字符数组中,通过屏幕输出查验读出的内容,写出参考程序如下:#include FILE *fp;main( ) { static char a[32]; fp=fopen("w88.txt","r"); {fgets(a,32,fp);puts(a);} fclose(fp); }该程序也可以定义数组a[3][8],类似教材中[例8.8],采用循环读a和输出显示的方法,请读者自己练习编写。上机实习二 文件的随机读写二、上机内容1、运行下列程序,分析并观察运行结果。⑴分析:输出xt1.txt中第六个字符,文件内容不变。运行结果:f⑵分析:该题是想改写xt1.txt中的字符。先给出要改写的字符在文件中的位置及新的字符,然后通过fseek()函数改变文件的位置指针,写入新字符。运行结果:5↙ (输入要修改字符的位置) x↙ (输入新的字符) 该程序运行完后,进入DOS状态用type xt1.txt命令显示该文件的内容如下: abcdxfgh 12345 ABCD2、完善程序。.......if((fp=fopen(“lx1.txt”,”r”))= =NULL);......fseek(fp,n-1,0);......ch=fgetc(fp);......fclose(fp);......第10章 指 针上机实习 指针的简单应用二、上机内容1、运行下列程序,分析并观察运行结果。⑴ 分析:该题是输出指针指向的输入数据。运行结果:8↙(输入数据) 8 (输出结果)⑵ 分析:定义p是指向字符型数据的指针变量,定义s是指向字符串″abcdef″的字符型指针变量,然后使p指向字符串的首地址,通过循环使指针p移位至字符串尾,输出其移位数。 运行结果:6⑶ 分析:该题是把指针变量作为函数参数使用,实现传递地址。 运行结果:a=10⑷ 分析:该题没有直接使用指针变量,它是用替代原理做的。用数组名作为函数的实参,将起始地址传递给被调函数ff中的形参b,b数组的个数由形参变量n传入,在ff中形参数组b实际上是一个指针变量,在被调用时被赋一个具体的初值。该题说明,函数的实参和形参均可采用数组名或指针变量。 运行结果:242、完善程序。........int i,j,k;for(i=0,j=strlen(str)-1;i

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值