知ing

最新计算机二级C语言上机试题汇编100套

NCRE研究组 编 / 高等教育出版社

゛Zirro、Y 上传

查看本书

91套: 

函数fun的功能是:计算

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 

注意:源程序存放在考生文件夹下的BLANK1.C中。 

不得增行或删行,也不得更改程序的结构! 

给定源程序: 

#include <stdio.h> 

#include <math.h> 

double fun(double x) 

{ double f, t; int n; 

/ **********found**********/ 

f = 1.0+___1___; 

t = x; 

n = 1; 

do { 

n++; 

/ **********found**********/ 

t *= x/___2___; 

/ **********found**********/ 

f += ___3___; 

} while (fabs(t) >= 1e-6); 

return f; 

main() 

{ double x, y; 

x=2.5; 

y = fun(x); 

printf("\nThe result is :\n"); 

printf("x=%-12.6f y=%-12.6f \n", x, y); 

解题思路: 

第一处:根据公式可知,此处应填:x。 

第二处:根据公式可知,此处应该除以n,所以应填:n。 

第三处:计算的结果进行累加并赋值给变量f,所以应填:t。 

*************************************************** 

给定程序MODI1.C中函数fun的功能是计算n5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。 

例如,75次方是16807, 其低3位数的和值是15。 

请改正函数fun中指定部位的错误使它能得出正确的结果。 

注意不要改动main函数不得增行或删行也不得更改程序的结构

给定源程序: 

#include <stdio.h> 

#include <math.h> 

int fun( int n ,int *value ) 

{ int d,s,i; 

/ **************found**************/ 

d=0; s=0; 

for(i=1; i<=5; i++) d=d*n; 

*value=d; 

for(i=1; i<=3; i++) 

{ s=s+d%10; 

/ **************found**************/ 

d=d\10; 

return s; 

main() 

{ int n, sum, v; 

do 

{ printf("\nEnter n( 2<n<8): ");scanf("%d",&n); } 

while(n<=2||n>=8); 

sum=fun( n,&v ); 

printf("\n\nThe result:\n value=%d sum=%d\n\n",v,sum); 

解题思路: 

第一处:变量d的初始值应为1。 

第二处:整除的符号是/。 

*************************************************** 

请编写函数fun, 其功能是计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 

例如给定数组中的9个元素依次为12.034.04.023.034.045.018.03.011.0, 输出应为: s=35.951014。 

注意:部分源程序在文件PROG1.C中。 

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 

给定源程序: 

#include <stdio.h> 

#include <math.h> 

double fun(double x[9]) 

main() 

{ double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0}; 

int i; 

printf("\nThe original data is :\n"); 

for(i=0;i<9;i++)printf("%6.1f",a[i]); printf("\n\n"); 

s=fun(a); 

printf("s=%f\n\n",s); 

NONO(); 

解题思路: 

本题是计算并输出给定数组中每相邻两个元素之平均值的平方根之和。 

参考答案: 

double fun(double x[9]) 

int i ; 

double avg=0.0,sum=0.0; 

for (i=0;i<8;i++) { 

avg=(x[i]+x[i+1])/2; 

sum+=sqrt(avg); 

return sum; 

※※※※※※※※※※※※※※※※※※※※※※※※※ 


查看更多