请编写函数proc(),它的功能是计算: s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5 在C语言中可调用log(n)函数求1n(n)。 例如,若n1的值为30,则proc()函数值为8.640500。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:
第1题:
请编写一个函数fun(),它的功能是求出一个正整数的所有因子。例如,若输入72, 则程序应该输出:72=2*2*2*3*3。
注意:部分源程序已存在文件PROC14。CPP中。
请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。
文件PROC14.cpp的内容如下:
//PROC14. cpp
include <iostream>
using namespace std;
void fun(int number);
int main ( )
{
int n;
cout<<"Please enter a number \n";
cin>>n;
cout<<n<<"=";
fun (n);
return 0;
}
void fun(int number)
{
//* * * * * * *
}
第2题:
编写函数fun(),其功能是计算:
s作为函数值返回。
在C语言中可调用log(n)函数求1n(n)。log函数的引
用说明为:double log(double x)。
例如,若m的值为20,则fun()函数值为6.506583。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
试题程序:
【解析】题目要求写出程序实现数学表达式的功能,需要用for循环计算累加的结果,调用sqrt函数实现求平方根。循环变量的范围是1~m,每次循环都进行一次累加求和。需要特别注意的是,log函数的形式参数为double型变量,用于循环的计数变量为整数,所以必须强制转换。最后返回所求出的平方根。
第3题:
程序定义了M×M的二维数组,并在主函数中自动赋值。请编写函数proc(int a[][M],int n),该函数的功能是使数组左下半三角元素中的值加上n。例如,a数组中的值为:
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
【解析】使数组左下半三角元素中的值加上n,首先要找出数组中下半三角元素。数组中下半三角元素的特点是,其列下标小于等于行下标。根据这个特点找出所有的下半三角元素再加上n放在原来的位置上。
第4题:
请补充函数proc,函数proc的功能是求7的阶乘。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。 试题程序: include<stdio.h> long proc(int n) { if( 【1】 ) return(n*proc( 【2】 ); else if(【3】) return l; } void main { int k=7: printf("%d!=%ld\n",k,proc(k)); }
第5题:
请编写函数proc(),它的功能是求Fibonacci数列中小于n的最大的一个数,结果由函数返回。
Fibonacci数列F(n)的定义为
F(0)=O,F(1)=1
F(n)=F(n-1)+F(n-2)
例如,n=500时,函数值为377。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填写所编写的若干语句。
试题程序:
【解析】由题目中所给的公式可知,Fibonacci数列的第n项为第n-1项和第n-2项的和。要求Fibonacci数列中小于n的最大的一个数。首先根据公式求出Fibonacci数列的第n项的值,当第i项大于n,则返回第i-1项的值。