5月25日C语言练的习题解析.docx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5月25日C语言练的习题解析

C语言题目解析2016年5月25日 上午NightCat以下所有代码均在TDM-GCC 4.9.2编译环境下通过使用Visual Studio的同学请自行验证假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比,编写程序。计算公式 p=(1+r)*(1+r),由于r是按百分比输入,所以要变成小数r*100%。其中p为增长百分比总数,r为增长率,n为增长年数解析:这题可以用两种方法计算,第一种是用for循环计算指数,第二种是用math.h中的pow()函数计算指数。第一种方法:(使用for循环计算指数)第二种方法:(使用pow函数)最终输出结果:累积10年的9%增长率为236.736435%易错点:格式符%.2f表示保留两位小数;注意r和p在输入时都是百分数,输入9(%)即表示0.09从键盘输入一个4位数x,编程计算x的每一位数字相加之和(忽视整数前的正负号)。例如,输入x为1234,则由1234分离出其千位1,百位2,十位3,个位4,然后计算1+2+3+4=10,并输出10。解析:该题有两种方法,第一种是将数字分别除和取余,用单独的变量存储每位数字并相加;第二种是嵌套循环(关于嵌套循环的细节请查阅课本第124页),使用4个变量进行嵌套遍历,当4个变量等于原数字时,则将4个数字相加。第一种:(对输入数进行除法和取余)第二种:(嵌套循环法)最终输出结果(当输入1234):10易错点:对于使用嵌套循环,尽量使用 花括号 { } 分清层次三色球问题,若一个口袋中放有12个球,其中有3个红球,3个白球,6个黑球,从中任意取8个球,问共有多少种不同的颜色搭配?解析:方法与第2题的第2个方法雷同,定义3层嵌套循环,循环条件值为红白黑各种球类的数量。例如,可以定义for循环语句:遍历当有0、1、2、3个红球时……for( Red = 0 ; Red = 3 ; Red++ ){……}最终输出结果:易错点:注意调整每层循环的最大球数【嵌套循环的细节请查阅课本第124页】编写一个单科学生成绩处理程序,具体要求如下:学生个数定义成符号常量学生成绩定义成一维数组进行处理,并有键盘逐个输入要求统计出平均成绩,各个等级的人数及百分比数据输入和输出要有提示信息解析:对于一维数组存储成绩,可使用循环语句进行输入;统计出平均成绩、找各等级的人数时,可使用循环取出数组所有元素累加并除以学生个数,在循环体内使用条件控制分等级。最终输出结果:易错点:1.该练习代码段较长,注意各变量拼写;2.我将“每个分数等级的人数”变量设定为float是有原因的(人数总不可能是小数吧,怎么会有2.5个人这样的数量),这样在编写代码的时候可以减少显式转换类型的过程。我将总成绩设定为float类型,那么在赋值等号后的算术运算中,“被除数”变量必须是与承载“商”变量同一类型,例如:此时输出B=2.00000,这显然不是我们想要的值。因为A和B的类型不一致以下写法是正确的:或者保持A的int类型,在运算时加入显式转换类型:编写一个程序用于实现函数strcpy()的功能解析:strcpy()函数的功能、参数和返回值详见这里。该方法主要考察字符数组和指针应用。在这里分两种方法:第一种、将字符串数组使用for循环执行复制字符一直到0字符或数组末尾时完成strcpy;第二种、将字符串指针传入函数中处理,返回第一个参数的指针地址。第一种:(直接使用字符数组)第二种:(使用指针作为函数返回值)易错点(难点):(1).sizeof()是计算指定对象的数据类型所占的字节数(2).gets()和scanf()的区别在以上代码我没有使用scanf,是因为该函数在读取输入的时遇到空格、Tab、换行符即停止输入,只有gets在遇到换行符时才会停止输入,如下例:(3).指针函数返回值在C中函数的返回值如果需要返回一个字符数组,那么,以下代码在C中是不合法的所以函数返回值必须使用指针作为返回值,使用return语句时,可返回指针类型,也可以返回数组(4).在使用指针前,养成良好的习惯,先判断指针是否为空指针;如果程序未经判断使用了空指针,在调试和运行阶段可能会发生不可预料的错误。※ 啰嗦一句:在C中使用指针是一种不安全的、也是不可或缺的代码行为,不留神检查使用指针的代码可能会造成灾难性的后果,轻者会使程序崩溃数据丢失,严重会影响计算机系统的运行。就目前阶段来说,未涉及malloc申请内存地址等高级指针应用,这些也不在本文的讨论范围之内,但还是需要注意指针的使用和编译器的错误或警告,养成良好的代码习惯。(5).注意运算符的优先级首先,“*”指针取值符号和“++”自增运算符属于第2级运算符,是同级运算符。在一堆同级运算符中没有圆括号的时候顺序是从右到左。请注意:++a和a++是有区别

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档