知ing

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

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

゛Zirro、Y 上传

查看本书

73套: 

给定程序中,函数fun的功能是计算下式 

例如:若形参e的值为1e-3,函数的返回值为0.551690。 

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

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

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

给定源程序: 

#include <stdio.h> 

double fun(double e) 

{ int i, k; double s, t, x; 

s=0; k=1; i=2; 

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

x=__1__/4; 

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

while(x __2__ e) 

{ s=s+k*x; 

k=k* (-1); 

t=2*i; 

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

x=__3__/(t*t); 

i++; 

return s; 

main() 

{ double e=1e-3; 

printf("\nThe result is: %f\n",fun(e)); 

解题思路: 

第一处:根据公式,首项应该是3.4,所以应填:3.。 

第二处:当x大于e时,循环体才会运行,所以应填:>。 

第三处:分子的值是2i+1,所以应填:2*i+1。 

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

给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。 

2 3 5 8 13 21 

┄┄ ┄┄ ┄┄ ┄┄ ┄┄ ┄┄ …… 

1 2 3 5 8 13 

例如,若n = 5,则应输出:8.391667。 

请改正程序中的错误,使它能计算出正确的结果。 

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

给定源程序: 

#include <stdio.h> 

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

fun ( int n ) 

{ int a, b, c, k; double s; 

s = 0.0; a = 2; b = 1; 

for ( k = 1; k <= n; k++ ) { 

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

s = s + (Double)a / b; 

c = a; a = a + b; b = c; 

return s; 

main( ) 

{ int n = 5; 

printf( "\nThe value of function is: %lf\n", fun ( n ) ); 

解题思路: 

第一处:由于计算的实型值要通过函数返回,所以必须定义函数的返回类型,只要intvoid 可以省略,其他都要定义类型。由于返回是实型值,所以应在数名前加上doublefloat等定义。 

第二处:double的第1个字母错写成大写D。 

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

请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。 

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

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

给定源程序: 

#include <stdio.h> 

#define M 4 

fun (int a[][M]) 

main( ) 

{ int arr[2][M]={5,8,3,45,76,-4,12,82} ; 

printf("max =%d\n", fun(arr)) ; 

NONO( ) ; 

解题思路: 

本题是求出一个2×M整型二维数组中最大元素的值。 

参考答案: 

fun (int a[][M]) 

int i, j, max=a[0][0]; 

for(i=0; i<2; i++) 

for(j=0; j<M; j++) 

if(max<a[i][j]) max=a[i][j]; 

return max; 

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


查看更多