相关题目
7、 给定程序modi.c中,函数fun的功能是:按以下递归公式求函数值
┌10 (n=1)
fun(n)=│
└fun(n-1)+2 (n>1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
本题着重考察考生对递归算法的掌握情况。
在C语言中,"="是指赋值号,要判断表达式相等,需用"==",所以程序中的语句"if (n=1)"应改为"if (n==1)"或相同作用的语句。
本评析仅作参考。
知识点:知识点/C程序修改
6、 给定程序modi.c中,函数fun的功能是:计算输出high以内最大的10个素数之和。high由主函数传给fun函数。
若high的值为:100,则函数的值为:732。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
本题的考核点是C语言中一些规定的应用。
本题中的第一处错误是:在C语言中,"{"和"}"应成对出现,所以程序中的语句" while ((high>=2)&&(n<10)"应改为"while ((high>=2)&&(n<10))"或相同作用的语句。
本题中的第二处错误是:C语言中,";"是语句的一部分,是语句结束的标志,不可缺少,所以," if (high%j==0){yes=0;break}"应改为"if (high%j==0){yes=0;break;}"或相同作用的语句。
本评析仅作参考。
知识点:知识点/C程序修改
5、 给定程序modi.c中,函数fun的功能是:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中,依次和a[0]、a[1]中的数对调。
例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,
输出的结果为:12、11、7、0、3、6、9、10、5、8。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
本题的考核点是循环语句和常用算法。
本题要求将最大数和a[0]中的数对调,把次最大数和a[1]中的数对调。题目给程序fun函数定义了变量t作为中间元素,因此对调过程应如下:t = a;a = b;b = t;然而fun函数中两次对调均没有形成三角型赋值,是错误的。应该把" t= a[0]; a[m1]=a[0]; a[m1] = t;"语句 和"t= a[1]; a[m2]=a[1]; a[m2] = t;"语句改为"t = a[0]; a[0] = a[m1]; a[m1] = t; "和"t= a[1]; a[1]=a[m2]; a[m2] = t;"语句或相同作用的语句。
本评析仅作参考。
知识点:知识点/C程序修改
4、 给定程序modi.c中fun函数的功能是:根据整型参数m,计算如下公式的值。
y=1+1/根号(2)+1/根号(3)+……1/根号(n)
例如,若m中的值为:5,则应输出:3.231671
请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
在程序中应用了算术函数sqrt,所以在横线处应填入"#include
本评析仅供参考。
知识点:知识点/C程序修改
3、 给定程序modi.c中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
选择法排序的思路是:通过一个整型变量指向数组中最小数所在的下标,第一次循环找出最小的数,与第一个数的位置交换,第二次循环找出次小的数,与第二个数的位置交换,以此类推,直至数组中的数由小到大排列。
本题中的第一个错误:C语言中的命令语句应以分号作为分隔符,所以语句"p=j"应改为"p=j;";
本题中的第二个错误:结合程序上下文,可知当a[i]中的数小于a[p]中的数时,应使得下标i赋给变量p,所以语句"p=j;"应改为"p=i;"。
本评析仅作参考。
知识点:知识点/C程序修改
2、题目中要求找出一个大于给定整数 m 且紧随 m 的素数。
本题中的第一个错误:在函数fun()的嵌套循环的循环体中,语句"if (i % k != 0) break ;"是不正确的,结合程序上下文,程序是为了判断当前离m最近的整数是否可以为素数,如果它可以整除除了1和它自身以外其他任意一个整数,就说明它不是素数,所以应当更改为"if(i%k==0) break;";
本题中的第二个错误:函数fun()中的第二个判断语句"if (k<i)"是不正确的,应当更改为"if (i<=k)"。
本评析仅作参考。
知识点:知识点/C程序修改
1、首先,要了解素数的意思,素数是指只能被1和它自身整除的数;
2、 给定程序modi.c中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
首先,我们必须先读懂题中程序的大致意思,这是发现并改正程序中错误的重要前提。
程序中的重要思想如下:
1、 给定程序modi.c中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。
请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
本题的考核点是C语言的基本语句的使用。
由题意可知,程序中通过sum变量累计对角线元素的积,在初始化时需先为sum赋初始值,所以应在横线处填入:"sum=1;"。
根据scanf语句的语法规则,格式控制与输入项地址表之间需用逗号分隔,所以 "scanf("%d" a[i][j]);"应改为"scanf("%d,",&a[i][j]);"或相同作用的语句。
本评析仅供参考。
知识点:知识点/C程序修改
149、比较两个字符串是否相等不能通过条件运算符"=="。
