教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

c上机模拟详细参考答案_whc0909

来源:网络收集 时间:2026-08-14
导读: 计算机二级上机题库很有用 题目就是里面出的 参考答案: 第1套上机考试答案解析: 1、程序填空题 【答案及难度指数】★★ (1)m1 (2)m-1 【一起来审题】 (1)该程序功能是对阶乘的实现。其中,阶乘的计算公式定义为: (3)1 公式分为参数m是1和大于1的

计算机二级上机题库很有用 题目就是里面出的

参考答案:

第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字,全部文档内容请下载后查看。喜欢就下载吧 ……

c上机模拟详细参考答案_whc0909.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/41768.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)