计算机二级上机题库很有用 题目就是里面出的
1、程序填空题
【答案及难度指数】★
(1)j<=m (2)||
【一起来审题】
(1)该程序功能是求小于等于m的所有被2或5整除的所有自然数的倒数之和。从已给部分源程序的main主函数开始入手,主函数"f=fun(m);"通过键盘输入自然数m,作为参数传给函数double fun(int m)中的m。
(2)进入fun函数,首先通过循环对小于m的自然数进行判断,求得所有被2或5整除的自然数,然后求得该自然数的倒数并对其求和。
【解题思路】
第一空:for(j=1;___1___;j++),根据题目要求,对所有小于等于m的数值进行循环判断,条件应该是满足j<=m,因此第一空应填j<=m。 第二空:判断是否能被2或5整除,其中的判断条件中的"或"用逻辑语句应为"||",因此第二空应填||。
第三空:"toal+=___3___/j;"语句是对"满足被2或5整除的自然数"的倒数求和,函数的返回值为double型,所以j的倒数为1.0/j,因此第三空应填1.0。
【主要考点】逻辑语句。
2、程序改错题
【答案及难度指数】★★
(1)int fun(int n)
【一起来审题】
(1)该题中函数功能是按题目中给出的递归公式求函数值。其中,递归是指函数直接或者间接调用函数本身的一种方法。
(2)从已给定源程序的main主函数开始入手,从键盘获得输入的参数n,然后通过"printf("The result:%d\n\n",fun(n));"语句调用fun函数,计算公式的值。
【解题思路】
(1)定义函数fun时,形参n并没有指定参数类型,因此,"int fun(n)"改为"int fun(int n)"。
(2)根据题目要求,原题中的"if(n=1)"应该是用于判断n是否等于1,但是被错误表示成赋值表达式。因此,"if(n=1)"应该改为"if(n==1)"。
【主要考点】函数定义;逻辑表达式。
3、程序设计题【答案及难度指数】★★★
char t;
int i,j;
for(i=1;i<n-2;i++)
//对n个元素进行循环选择
for(j=i+1;j<n-1;j++)
if(str[i]<str[j]) //将str[i]设为最大值,和剩下的j~n-1进行比较
{
t=str[i];
str[i]=str[j];
str[j]=t;
}
【一起来审题】
该程序功能是对字符的排序。字符的排序有多种方法,如冒泡排序、选择排序等。本题答案中采用的是选择排序。其中,选择排序法的降序排序,首先从数组中挑选一个最大的元素,把它和第一个元素交换,接着从剩下的n-1个元素中再跳出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
【解题思路】
进入fun函数,根据前面的分析:
选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一个元素交换,接着从剩下的n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。
【主要考点】数组操作;函数传值;if条件语句;for循环语句
(2)if(n==1) (3)1.0
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库c上机模拟详细参考答案_whc0909(7)在线全文阅读。
相关推荐: