打印本文 打印本文  关闭窗口 关闭窗口  
C语言2004最新模拟上机试题
作者:佚名  文章来源:不详  点击数  更新时间:2007/12/21 18:20:02  文章录入:杜斌  责任编辑:杜斌

1. 
给定程序modi1.c中函数fun的功能是: 先从键盘上输入一个  
3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。  
请改正函数 fun 中的错误或在横线处填上适当的内容并把横线删  
除,使它能得出正确的结果。  
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序  
的结构!  
*/  
#include   
int fun()  
{  
int a[3][3],sum;  
int i,j;  
/*********found**********/  
sum=0;  
//______;  
for (i=0; i < 3; i++)  
{ for (j=0; j < 3; j++)  
/*********found**********/  
scanf('%d',&a[ i ][ j ]);  
//scanf('%d',a[ i ][ j ]);  
}  
for (i=0; i < 3; i++)  
sum=sum+a[ i ][ i ];  
printf('sum=%d/n',sum);  
}  

main()  
{  
fun();  
}  


/*编程题  
编写程序, 实现矩阵(3行3列)的转置(即行列互换)  
例如, 输入下面的矩阵:  
100 200 300  
400 500 600  
700 800 900  
程序输出:  
100 400 700  
200 500 800  
300 600 900  

注意: 部分源程序在文件prog1.c中。  
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun  
的花括号中填入你编写的若干语句。  
*/  
#include   
#include   

int fun(int array[3][3])  
{//  
int i,j,t;  
for(i=0; i < 3; i++)  
for(j=0; j < i; j++)  
{ t=array[i][j];  
array[i][j]=array[j][i];  
array[j][i]=t; }  
//  
}  

main()  
{  
int i,j;  
int array[3][3]={{100,200,300},  
{400,500,600},  
{700,800,900}};  

clrscr() ;  
for (i=0; i < 3; i++)  
{ for (j=0; j < 3; j++)  
printf('%7d',array[i][j]);  
printf('/n');  
}  
fun(array);  
printf('converted array:/n');  
for (i=0; i < 3; i++)  
{ for (j=0; j < 3; j++)  
printf('%7d',array[i][j]);  
printf('/n');  
}  
nono();  
}  

nono()  
{  
/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */  
int i,j, array[3][3];  
file *rf, *wf ;  

rf = fopen('b0103.in', 'r') ;  
wf = fopen('b0103.out', 'w') ;  
for (i=0; i < 3; i++)  
for (j=0; j < 3; j++)  
fscanf(rf, '%d', &array[i][j]);  
fun(array);  
for (i=0; i < 3; i++)  
{ for (j=0; j < 3; j++)  
fprintf(wf, '%7d', array[i][j]);  
打印本文 打印本文  关闭窗口 关闭窗口