5-计算机等级C语言上机考试编程题分类总结..doc

5-计算机等级C语言上机考试编程题分类总结..doc

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

计算机等级C语言上机考试编程题分类总结 编程题目分类: (一)、数学题目:5、6、11、14、34、48、49 编程的题目中,如果是数学题目,编程时用到阶乘或者是奇数项的积,则首先给变量赋初值为1,不能赋初值为0,同时把变量的类型定义为实型而不是整型。数学题目中结果都需要返回,如果说函数的类型是void 则是通过指针返回,如果不是void,则必须用return 返回。 如果是表达式中的值为1,则在编写程序时用去1.0.而不能用1。C 语言中的除法的运算原则是整数除以整数,结果还是整数。 数组中存储数据时以下标来存储的,在数组中下标从0 开始。 解题详解: 6、观察表达式,左边求出的是p 的值的一半,所以右边的表达式的值的计算好后应该乘以2 才能得到p 的值,观察表达式的右边,右边表达式中有分子、分母以及各表达式的值的和,分子是阶乘、分母是奇数项的积,分子除以分母得到一项的值。由此定义三个变量:s1 代表分子,s2 代表分母、s3 代表各项的和,定义一个整型变量i,让变量i 从1 开始。知道循环的结束。 int i; double s1=1.0,s2=1.0,s3=0.0; for(i=1;s1/s2=eps;i++) { s3+=s1/s2; s1*=i; s2*=(2*i+1); } return 2*s3; 注意:此题目中要特别注意,循环语句的表达式2 的判断条件是s1/s2=eps,而不是i=n,循环语句的语句的顺寻不能颠倒,即先加之后再计算。 11、此题中要求能整除x,那么x 应该为分子,而不是分母,把满足条件的数组放到pp 所指的数组中,即pp 数组应用一个整型的变量来做pp 下标,数组下标从0 开始,所以定义一个整形变量k 并且赋初值为0;满足条件的个数通过形参传回。 int i,k=0; for(i=1;i=x;i++) if(x%i==0i%2==1) pp[k++]=i; *n=k; 备注:此题目中不能把i 初值定义为0,否则程序运行时得不到结果。 14、首先看清题意,题目中要求是小于形参n,不包括n,能被3 与7 整除,两者用逻辑与连接,平方根用平方根的函数sqrt;此题中要求的是自然数的和的平方根,而不是平方根的和,所以要先把满足条件的数加起来后再开方。定义一个整型变量i,让该变量由1 直到n-1,用循环实现,一个整形变量s,让该变量存放的是满足条件的数的和,由于s 为全局变量,故应该赋初值为0; int i,s=0; for(i=1;in;i++) if(i%3==0i%7==0) s+=i; return sqrt(s); 34、观察表达式,表达式的分子为x 的n 次冥,分母为数字的阶乘,s 为表达式的累加和,定义三个变量s1 为分子,s2 为分母,s 为分子除以分母的和。 float s1=1.0,s2=1.0,s=1.0; int i; for(i=1;i=n;i++) { s1*=x; s2*=i; s+=s1/s2; } return s; 备注:此时s 的值不能赋初值为0;如果s 得初值为0,此时表达式的值中没有第一项的值。并且必须用return 返回。 48、该表达式的分子均为1,分母为该项和下一项的积,s 为最后表达式的累加和,定义一个整形变量I,用于代表某一项的序号,则i+1 到表达的是下一项的序号。 float s=0.0; int i; for(i=1;i=n;i++) s+=1.0/(i*(i+1)); return s; 备注:分子为1.0,而不能是1;因为c 语言中规定,整型除以整型,得到的值仍然为整型,i+1 必须用括号括起来,如果没有用括号括起来,根据乘法运算规则,则先运算i*i,再运算i*i+1 的值。 49、在该表达式中,分子分母都是阶乘,可以看做是三个数之间的运算,其中的每一个数都是另外一个数的阶乘,定义三个变量,其中s1 代表的是m 的阶乘,s2代表的n 的阶乘,s3 代表的是m-n 的阶乘,表达式的值可以计算为:s1/(s2*s3);三个变量都是代表的是阶乘,所以在赋初值时应该赋初值为1 或者是1.0; float s1=1.0,s2=1.0,s3=1.0; int i; for(i=1;i=m;i++) s1*=i; for(i=1;i=n;i++) s2*=i; for(i=1;i=m-n;i++) s3*=i; return s1/(s2*s3); (二)、把满足条件的数放到数组中4、12、25、35、37 在做该类题目时,看清题目的要求,根基题目的要求解题,若只是把满足条件的删除或者是保留,则该类题目首先要定义一个整型变量并且赋初值0,根据题目意思把满足条件的存放到数组中,数组的下标同时加一往后走一个位置,如果是字符串类型的题目,在最后还要加上字符串

文档评论(0)

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

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

1亿VIP精品文档

相关文档