请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(char *s)
{int i, j, n;
for(i=0; s[i]!='\0'; i++)
/**********found**********/
if(s[i]>='0' ___1___ s[i]<='9')
{n=0;
/**********found**********/
while(s[i+1+n]!= ___2___) n++;
for(j=i+n+1; j>i; j--)
/**********found**********/
s[j+1]= ___3___;
s[j+1]='*';
i=i+1;
}
}
main()
{char s[80]="ba3a54cd23a";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
}解题答案:
/**********第一空**********/
if(s[i]>='0' && s[i]<='9')
/**********第二空**********/
while(s[i+1+n]!= 0) n++;
/**********第三空**********/
s[j+1]= s[j];
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。

例如,若 m 中的值为: 5,则应输出:1.463611。
请改正程序中的错误,使它能得出正确的结果。
注意: 不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun (int m)
{double y = 1.0 ;
int i;
/**************found**************/
for(i = 2 ; i < m ; i++)
/**************found**************/
y += 1 / (i * i);
return(y);
}
main()
{int n = 5 ;
printf("\nThe result is %lf\n", fun (n));
}
解题答案:
/**************found**************/
for(i=2; i<=m; i++)
/**************found**************/
y+=1.0/(i*i);
******************************************
[NextPage] 三.程序题:请编写函数fun, 函数的功能是:实现B=A+A', 即把矩阵A加上A的转置, 存放在矩阵B中。计算结果在 main 函数中输出。
例如,输入下面的矩阵: 其转置矩阵为:
1 2 3 1 4 7
4 5 6 2 5 8
7 8 9 3 6 9
程序输出:
2 6 10
6 10 14
10 14 18
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
void fun (int a[3][3], int b[3][3])
{
}
main() /* 主程序 */
{int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ;
int i, j ;
void NONO ();
fun(a, t);
for (i = 0 ; i < 3 ; i++) {
for (j = 0 ; j < 3 ; j++)
printf("%7d", t[i][j]);
printf("\n");
}
NONO ();
}
void NONO ()
{/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int i, j, k, a[3][3], t[3][3] ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(k = 0 ; k < 5 ; k++) {
for(i = 0 ; i < 3 ; i++)
fscanf(rf, "%d %d %d", &a[i][0], &a[i][1], &a[i][2]);
fun(a, t);
for(i = 0 ; i < 3 ; i++) {
for(j = 0 ; j < 3 ; j++) fprintf(wf, "%7d", t[i][j]);
fprintf(wf, "\n");
}
}
fclose(rf);
fclose(wf);
}
参考答案:
void fun ( int a[3][3], int b[3][3])
{
int c[3][3] ;
int i, j ;
for(i = 0 ; i < 3 ; i++)
for(j = 0 ; j < 3 ; j++) {
c[i][j] = a[j][i] ; /* 矩阵的转置 */
b[i][j] = a[i][j] + c[i][j] ;
}
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|