知ing

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

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

゛Zirro、Y 上传

查看本书

96: 

给定程序中,函数fun的功能是:N×N矩阵,将矩阵的外围元素顺时针旋转。 

操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。 

例如,若N=3,有下列矩阵: 

1 2 3 

4 5 6 

7 8 9 

计算结果为

7 4 1 

8 5 2 

9 6 3 

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

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

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

给定源程序: 

#include <stdio.h> 

#define N 4 

void fun(int (*t)[N]) 

{ int j ,r[N]; 

for(j=0; j<N; j++) r[j]=t[0][j]; 

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

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

t[0][N-j-1]=t[j][___1___ ]; 

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

t[j][0]=t[N-1][j]; 

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

for(j=N-1; j>=0;___2___ ) 

t[N-1][N-1-j]=t[j][N-1]; 

for(j=N-1; j>=0; j--) 

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

t[j][N-1]=r[___3___]; 

main() 

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; 

printf("\nThe original array:\n"); 

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

{ for(j=0; j<N; j++) printf("%2d ",t[i][j]); 

printf("\n"); 

fun(t); 

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

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

{ for(j=0; j<N; j++) printf("%2d ",t[i][j]); 

printf("\n"); 

解题思路: 

第一处:把第1列上的数存放到第1行上,所以应填:0。 

第二处:for循环的增量值,由于循环是从大到小递减,所以应填:j--。 

第三处:把临时数组中的元素成为最后一列,所以应填:j。 

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

给定程序MODI1.C中函数 fun 的功能是:计算S = f(-n) + f(-n+1) +…+ f(0) + f(1) + f(2) +…+ f(n)的值。例如,当n5时,函数值应为:10.407143f(x)函数定义如下: 

(x+1)/(x-2) x>0 且 x

f(x) = 0 x=0 或 x=2 

(x-1)/(x-2) x<0 

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

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

给定源程序: 

#include <stdio.h> 

#include <math.h> 

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

f( double x) 

if (x == 0.0 || x == 2.0) 

return 0.0; 

else if (x < 0.0) 

return (x -1)/(x-2); 

else 

return (x +1)/(x-2); 

double fun( int n ) 

{ int i; double s=0.0, y; 

for (i= -n; i<=n; i++) 

{y=f(1.0*i); s += y;} 

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

return s 

main ( ) 

printf("%f\n", fun(5) ); 

解题思路: 

第一处:由于返回值是实数型值,所以在函数名前加上double。 

第二处:语句后缺少分号。 

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

编写函数fun,它的功能是计算: 

s作为函数值返回。 

C语言中可调用log ( n )函数求ln (n)log函数的引用说明是double log(double x) 

例如,若m的值为: 20fun函数值为: 6.506583。 

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

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

给定源程序: 

#include <math.h> 

#include <stdio.h> 

double fun( int m ) 

main() 

printf("%f\n", fun(20)); 

NONO(); 

解题思路: 

本题是根据给定的公式计算结果。使用for循环语句依次求出每一项的值,分别进行累加并把结果存入变量s中,循环结束后再对s求平方根,结果仍存入s中,最后返回s。 

参考答案: 

double fun( int m ) 

double s = 0.0 ; 

int i ; 

for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; 

s = sqrt(s) ; 

return s ; 

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


查看更多