C语言上级资料答案(解析).docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言上级资料答案(解析).doc

第一套 1、本题的考核点是结构体类型变量的定义和引用以及文件函数的应用。 fopen函数的作用是打开一个文件,在fun函数中为输入打开一个二进制文件,所以第一个空填:rb或与此语句功能相同的语句;利用嵌套循环语句按学号从小到大排序,所以第二个空填:s[j].sno或与此语句功能相同的语句;再用二进制方式把排序后的数据输出到指定文件中,fwrite函数的作用是往文件的当前位置写入指定字节的数据块,所以第三个空填:fwrite。 2、 首先,我们必须先读懂题中程序的大致意思,这是发现并改正程序中错误的重要前提。 程序中的重要思想如下: 1、函数fun()的功能是根据一个整型形参计算题目中的数学公式; 2、由于公式中运用了除法,所以公式的最终值必须使用double型,以保持最终值的精确性。 题中的第一个错误出现在函数fun()中的语句for(i = 2 ; i m ; i++)中,请注意这个循环的条件部分,仔细看看,就可以知道,如果这么写,公式中的最后一项将被丢掉。正确语句如下: for(i = 2 ; i = m ; i++); 题中的第二个错误是在for循环的循环体中,即计算公式的那条语句y -= 1 / (i * i) ;,前面分析过,公式的最终值为一个double型,题中除数位置使用了整数,这样的话,会造成不匹配错误,所以,正确语句如下:y -= 1.0 / (i * i) ;。 本评析仅作参考。 3、 本题的考核点是循环语句的应用。 解题思路:在Fibonacci数列中,每一项的值都是前两项之和。设置一个中间变量m,用来置放推出的最小数,所以可以用递推法求出大于s的最小的一个数。 本评析仅供参考。 int fun( int s) { int x1=0,x2=1,m=0; /*假如当前项的值小于指定值s,但是下一项的值又大于指定值s,即下一项值即为大于s的最小的一个数*/ while (sm) { m=x1+x2; x1=x2; x2=m; } return m; } 第二套 1、本题的考核点是C语言中的基本算法和简单语句的使用。 fun函数是用来对整数进行判断是否符合题目中规定的条件。首先对变量赋初值,n返回的是符合条件的整数的个数,因此第一个空填:0;while语句用于求出100至x(x≤999)之间的符合条件的整数个数,故第二个空填:x;由while循环语句可知第三个空是设置循环变量的步长,根据题义可知循环步长是1,因此第三个空填:t++或与此语句相同功能的语句。 2、本题的考核点是C语言的一些基本常识和循环语句的使用。 从本题的要求看,如果某一个元音字母没有在字符串中出现时,程序应返回0。主函数中num[5]代表一块C编译器随机分配的内存地址,在没有对这块内存地址初始化之前,这块内存中存放着随机的数据,也有可能是1,2...等数字,因此在fun函数开始应对num数组进行初始化。fun函数的第一个for循环中,k才是循环变量,而i只是一个常量,因此num[i]=0;应改为num[k]=0;或相同作用的语句。 另外,s代表的只是一个字符串的指针,把它直接当一个数据看待是没有意义的,应该把switch( s )语句改为switch( *s )语句。 本评析仅供参考。 3、 本题的考核点是数组、循环语句。 解题思路:使用循环语句将数组下标为奇数的元素与2取余,如果余数不为零则将其值存入另外一个数组中。 本评析仅供参考。 void fun(char *s, char t[]) { int i,slenth,n=0; slenth=strlen(s); /*统计字符串s中字符的个数*/ /*将字符串s中所有下标和ASCII值同时为奇数的字符复制到数组t中*/ for(i=1;islenth;i+=2) if(s[i]%2!=0) t[n++]=s[i]; t[n]=\0;/*在数组t最后添加字符串结束符*/ } 第三套 1. 本题的考核点是C语言中的基本算法和简单语句的使用。 在fun函数中,对整数进行判断是否符合题目中规定的条件。while语句设置循环结束的条件,由题面可知第一个空填:999;变量s1,s2,s3分别是整数的个位、十位以及百位上的数值,所以第二个空填:t/10;if语句进行条件判断,判断s1+s2+s3的值是否与输入的值相等,所以第三个空填:x。 2. 本题着重考察考生对C语言中指针以及一些简单算法的掌握情况。 本题中的第一个错误:由

文档评论(0)

tangtianxu1 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档