1
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:编写函数求1~50中奇数的平方和。结果为20825.000000。
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
*********Begin**********和********** End **********不可删除
------------------------------------------------*/
#include "stdio.h"
float sum(int n)
{
/*********Begin**********/
/********** End **********/
}
void TestFunc()
{
FILE *IN,*OUT;
int i;
float o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
fscanf(IN,"%d",&i);
o=sum(i);
fprintf(OUT,"%f\n",o);
fclose(IN);
fclose(OUT);
}
main()
{
printf("sum=%f\n",sum(50));
TestFunc();
}
答案
【参考代码】
float s=0;
int i;
for(i=1;i<=n;i=i+2)
s=s+i*i;
return(s);
===============
【考生代码】
int i;
float s=0;
for(i=1;i<=50;i++)
if(i%2!=0)
s+=i*i;
return s;
2
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:编写函数fun,求任一整数m的n次方。
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
*********Begin**********和********** End **********不可删除
------------------------------------------------*/
#include "stdio.h"
void TestFunc();
long fun(int m,int n)
{
/**********Begin**********/
/********** End **********/
}
void main()
{
int m,n;
long s;
long fun(int,int);
printf("输入m和n的值:");
scanf("%d,%d",&m,&n);
s=fun(m,n);
printf("s=%ld\n",s);
TestFunc();
}
void TestFunc()
{
FILE *IN,*OUT;
int n;
int i[2];
long o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write File Error");
}
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]);
}
o = fun(i[0],i[1]);
fprintf(OUT,"%ld\n",o);
fclose(IN);
fclose(OUT);
}
答案
【参考代码】
long int x=1;
int i;
for(i=1;i<=n;i++)
x=x*m;
return x;
===============
【考生代码】
int i,s=1;
for(i=1;i<=n;i++)
s*=m;
return s;
3
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:给定程序MODI1.C中函数fun的功能是:
首先把b所指字符串中的字符按逆序存
放, 然后将a所指字符串中的字符和b
所指字符串中的字符,按排列的顺序交
叉合并到c所指数组中,过长的剩余字符
接在c所指数组的尾部。 例如,当a所指
字符串中的内容为"abcdefg",b所指字符
串中的内容为"1234"时,c所指数组中的内
容应该为"a4b3c2d1efg";而当a所指字符串
中的内容为"1234",b所指字符串中的内容
为"abcdefg"时,c所指数组中的内容应该
为"1g2f3e4dcba"。
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改
程序的结构。
------------------------------------------------------*/
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun( char *a, char *b, char *c )
{
int i , j; char ch;
i = 0; j = strlen(b)-1;
/**********Error**********/
while ( i > j )
{ ch = b[i]; b[i] = b[j]; b[j] = ch;
i++; j--;
}
/**********Error**********/
while ( *a &&*b )
/**********Error**********/
{ If ( *a ){ *c = *a; c++; a+; }
if ( *b ){ *c = *b; c++; b++; }
}
*c = 0;
}
main()
{
char s1[100],s2[100],t[200];
clrscr();
printf("\nEnter s1 string : ");scanf("%s",s1);
printf("\nEnter s2 string : ");scanf("%s",s2);
fun( s1, s2, t );
printf("\nThe result is : %s\n", t );
}
答案
改错1】 正确
【学生答案】
while ( i < j )
【参考答案】
while(i<j)
==============================
【改错2】 正确
【学生答案】
while ( *a ||*b )
【参考答案】
while ( *a || *b )
==============================
【改错3】 正确
【学生答案】
{ if ( *a ){ *c = *a; c++; a++; }
【参考答案】
{ if ( *a ){ *c = *a; c++; a++; }
==============================
4
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数
返回二分之一的圆面积。
例如:输入圆的半径值:19.527 输出为:s = 598.950017。
------------------------------------------------------*/
#include "stdio.h"
#include "conio.h"
/**********ERROR**********/
float fun( r)
{
float s;
/**********ERROR**********/
s=1/2*3.14159* r * r;
/**********ERROR**********/
return r;
}
main()
{
float x;
clrscr( );
printf ( "Enter x: ");
scanf ( "%f", &x );
printf (" s = %f\n ", fun ( x ) );
}
答案
【改错1】 正确
【学生答案】
float fun(float r)
【参考答案】
float fun(float r)
==============================
【改错2】 错误
【学生答案】
s=1.0/2.03.14159 r * r;
【参考答案】
s=1.0/23.14159 r * r;
s=1/2.03.14159 r * r;
==============================
【改错3】 正确
【学生答案】
return s;
【参考答案】
return s;