c上机模拟详细参考答案_whc0909
计算机二级上机题库很有用 题目就是里面出的
参考答案:
第1套上机考试答案解析:
1、程序填空题
【答案及难度指数】★★
(1)m>1 (2)m-1
【一起来审题】
(1)该程序功能是对阶乘的实现。其中,阶乘的计算公式定义为:
(3)1
公式分为参数m是1和大于1的两种情况,例如,1的阶乘1!=1;5的阶乘5!=5×4×3×2×1。
(2)从已给部分源程序的main主函数开始入手,主函数执行printf输出语句,该语句调用自定义的fun函数,并将数值8传递给fun函数的m参数。其中fun函数就是对阶乘算法的实现。
(3)进入fun函数,根据前面的定义,它对阶乘算法的实现可以分为两种情况,一是当m>1时,应该用什么程序来实现阶乘的计算;二是当m=1时,函数直接返回1即可。
【解题思路】
第一空:if(___1___)是要根据m的取值来判断使用何种阶乘的计算公式的。这里根据第2句递归调用语句,可知该语句是用来计算当m>1时的阶乘。因此第一空if语句里面的条件应该是满足m>1。所以,第一空应填m>1。
第二空:return (m*fun(___2___))很显然是采用递归函数来实现阶乘的计算,所以,第二空应填m-1。
第三空:return ___3___该语句是要实现当m=1时的阶乘计算。所以,第三空应填1。
【主要考点】递归函数。
2、程序改错题
【答案及难度指数】★★
(1)Prime(int m) (2)if(!(m%j))
【一起来审题】
(1)整数n的素数因子为整除n的所有素数,但不含n本身。
素数是指能被1和本身整除的正整数(>1),所以判别n是否为素数,只要用2、3、…、n-1这些数逐个去除n,观察余数是否为0即可,只要有一次相除余数为0,n就不是素数,否则n为素数。
因此,求整数n的素数因子,要从求整数n的因子和判断该因子是否为素数的两方面来看。
(2)从已给定源程序的main主函数开始入手,核心部分是循环判断if((!(n%i)) && (Prime(i))),"!(n%i)"为判断i是否是n的因子,Prime自定义函数的功能是判断i是否为素数,&&与逻辑是指当两个判断条件都为真的时候,i即为n的素因子。
【解题思路】
(1)第一个标识下面的"Prime(int m);"在程序中显然是一个函数,因此应将后面的分号去掉。
(2)第二个标识下面的for语句最简单的应用形式为:for(循环变量赋初值;循环条件;循环变量增值)语句。显然if语句后面缺少括号,因此,if !(m%j)改为if(!(m%j))。
该题主要考查标点符号、运算符、基本定义。
【主要考点】if条件语句;函数定义。
3、程序设计题
【答案及难度指数】★★
int j,k=0,average=0;
for(j=0;j<n;j++)
average+=point[j]; //统计总分数
average/=n;//求平均分
for(j=0;j<n;j++)
if(point[j]>average)
//逐个判断每个分数是否大于平均分
{
high[k]=point[j];
//将高于平均分的人放入high数组
k++; //统计大于平均分的人数
}
计算机二级上机题库很有用 题目就是里面出的
return k;
【一起来审题】
(1)该程序功能是返回高于平均分的人数。它的解题思路可以分解为以下几步:求总分→求平均分→逐个元素与平均分比较→统计高于平均分的人数。
(2)从已给部分源程序的main主函数开始入手,核心函数fun(point,9,high)中的参数由题目可知,point存放着m个人的成绩,high存放高于平均分的分数。另外,根据point的定义,可知9为point数组中元素的个数,传给函数fun中的参数n。
【解题思路】
进入fun函数,根据前面的分析:
首先,定义变量average,通过循环,用average+=point[j]计算总分数,然后通过average/=n;语句来计算平均分。
其次,通过循环,让每个分数和平均分比较,高于平均分数的分数给high[](high[k]=point[j];)。在进行以上循环的同时,定义了一个变量k,每当发现一个大于平均分的分数,k自动加1(k++;)。
最后,返回k值,即是数组point[]中高于平均分的元素个数。
【主要考点】数组操作;if条件语句;for循环语句。
计算机二级上机题库很有用 题目就是里面出的
【答案及难度指数】★
(1)n%100!=0 (2)n%400==0 (3)flag
【一起来审题】
(1)该题中函数功能是判断一个年份是否为闰年。其中,闰年的条件是年数可以被4整除,即为闰年;被100整除而不能被400整除的为平年;被100整除也可被400整除的为闰年。
(2)从已给部分源程序的main主函数开始入手,主函数中的"if(fun(year))"判断语句,调用函数fun对年数进行判断。
(3)进入fun函数,利用if对年数进行判断。
【解题思路】
第一空:根据闰年的条件和已有的语句"if(n%4==0)",知道这里的条件应该是能被4整除但要排除被100整除的整数,所以第一空填"n%100!=0"。
第二空:被100整除也可被400整除的为闰年,所以第二空填"n%400==0"。
第三空:主函数中"if(fun(year))"语句是对函数返回值的判断,所以fun函数应该将对n的判断的flag值返回,第三空填"flag"。
【主要考点】if条件语句。
2、程序改错题
【答案及难度指数】★★
(1)s+=1.0/i; (2)return s;
【一起来审题】
该题中函数功能是求题干累加公式的值。从已给定源程序的main主函数开始入手,通过"printf("\n\nthe result is%lf\n",fun(n));"语句调用fun函数,求得公式值。
【解题思路】
(1)第一个标识下,在以i为循环参数的for循环中进行公式累加,每一项为1.0/i,所以"s+=1.0/k;"改为"s+=1.0/i;"。
(2)第二个标识下,首先根据题干,将"填空"删除,函数定义为"double fun(int n)",它有double型的返回值,所以这里返回累加公式的计算结果,即"return s;"。
【主要考点】函数功能;函数返回。
3、程序设计题
【答案及难度指数】★★★
int j,k=0;
for(j=2;j<500;j++) //循环条件
if((j%7==0||j%11==0)&&j%77!=0)
//判断是否符合题干要求
b[k++]=j; //将结果放入数组b
*m=k; //将累加器值赋值给m
【一起来审题】
(1)该程序的解题思路,可以分解为以下几步:判断是否被7整除→判断或者是否被11整除→并且不被77整除→按要求返回计算结果。
(2)从已给部分源程序的main主函数开始入手,核心函数"fun(a,&m);",其中m返回这些数的个数,a传给函数中的参数,存放计算结果的数组b。
【解题思路】
进入fun函数,根据前面的分析:
首先,定义变量k,设置为累计器,计算符合条件的数的个数。
然后,通过循环,判断小于500的每一个整数是否符合题干中的要求。其中的判断条件能否被7或者被11整除为j%7==0||j%11==0,不能被11和7同时整除为j%77!=0,它们之间的并关系就用&&连接,最后结果即为(j%7==0||j%11==0) && j%77!=0。
最后,将符合条件的整数存入数 …… 此处隐藏:2600字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




