我想找几个c语言的小项目做~!

我现在大二,觉得学c语言没什么进展,所以现在想找几个c语言的小程序作一下,促进自己的学习。大家给找找哦 。

第1个回答  2006-09-25
小程序么,给你几个你试试:
算法类的:求全排列,算24,快速排序的迭代实现,汉诺塔,8皇后,1笔画......
综合类:学生信息管理,动画演示排序,打印年历,计算某文章单词数.....
深入的:磁盘文件管理,线性方程求解,超大整数计算,算PI到小数点后2万位,贪吃蛇,俄罗斯方块.....
超简单的:求1元2次方程的解,牛顿迭代法求平方根,逐差法计算试验数据,求方差,坐标变换.....

你能把上面那些全做出来,恭喜你,你是天才了...-_-
第2个回答  2006-09-30
网上C语言的题很多的,比如:8皇后,汉诺塔,24点,万年历等等,有很多的程序题目,也有相应的解答。
把前几个星期我们的程序题给你看一下:
1、 实现简单的学生成绩信息管理软件。 学生信息包括:学号、姓名、4门课程的成绩(计算机,数学,英语,物理)。 要实现的功能:学生信息的录入、修改、删除和查询。
2、 编写小学生数学测试软件。 (1) 可选择题型加,减,乘。 (2) 可选择每次答题的个数。 (3) 随机生成两个数进行运算。 (4) 每次输入答案后判断对错,若答案错误,给出正确答案。 (5) 最后给出做对题目的总个数。
3、 用字符数组保存一个英文句子。 (1) 删除该英文句子的前导空格、后导空格、句中多余空格(单词之间只留一个空格)。 (2) 统计句中某单词出现的次数。 (3) 查找并替换某单词。
4、 用文件保存一段英文文本。 (1) 统计各字母在文本中出现的次数(忽略大小写)。 (2) 查找并替换文本中的某字符串,将替换后的文本存入另一个文件。
5、 打印如下方阵(任选一题)。 (1) 螺旋方阵: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 (2) 蛇形方阵: 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16
6、 已知2000年1月1日为星期六,输入任一年的年份后,打印该年的年历。
7、 假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,实际的长整数m表示为: m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1] 其中a[0]保存该长整数的位数。完成(任选一题): (1) 长整数乘普通整数。 (2) 长整数除普通整数。
8、 对于题7描述的10进制长整数,要求: (1) 转换成16进制数输出。 (2) 转换成8进制数输出。
9、 算法问题(任选一题)。 (1) 皇后问题:在国际象棋中,能否在空棋盘上摆放八个皇后,并使其中任意两个皇后不能在同一行或同一列或同一对角线上,并编写完整的摆放八皇后问题的程序。要求:第一个皇后的起始位置由键盘输入,国际象棋的棋盘为8*8的方格。 (2) 迷宫问题,用数组方式实现一个迷宫。
还有就是多找几个与c有关的网站多看看。比如编程爱好者。
第3个回答  2006-09-25
在网上找一些ACM比赛的题目吧,有简单的,也有的有一些难度,你可以试试看,为以后在学校参加此类比赛也可以做一些基础本回答被提问者采纳
第4个回答  2006-09-25
你还懂其他的语言吗?最好是VB++和SQL什么的,就最好了
第5个回答  2006-09-26
(二)程序修改题:
1、给定程序modi.c中函数fun的功能是:找出100至n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define N 100
int fun(int *s, int n)
{ int i,j,k,a,b,c;
j=0;
for(i=100; i/**************found**************/
k=n;
a=k%10; k/=10;
b=k%10; k/=10;
/**************found**************/
c=k/10;
if( a==b && a==c ) s[j++]=i;
}
return j;
}
main()
{ int a[N], n, num=0, i;
do
{ printf("\\nEnter n( <=1000 ) : "); scanf("%d",&n); }
while(n > 1000);
num = fun( a,n );
printf("\\n\\nThe result :\\n");
for(i=0; iprintf("\\n\\n");
}
2、给定程序modi.c中函数fun的功能是:计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数。并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16807,其低3位数的和值是15。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
int fun( int n ,int *value )
{ int d,s,i;
/**************found**************/
d=0; s=1;
for(i=1; i<=5; i++) d=d*n;
*value=d;
for(i=1; i<=3; i++)
{ s=s+d%10;
/**************found**************/
s=s/10;
}
return s;
}
main()
{ int n, sum, v;
do
{ printf("\\nEnter n( 2while(n<=2||n>=8);
sum=fun( n,&v );
printf("\\n\\nThe result:\\n value=%d sum=%d\\n\\n",v,sum);
}
3、数列中,第一项值为3,后一项都比前一项的值增5。给定程序modi.c中函数fun的功能是:计算前n(4例如,当n的值为20时,该数列为3,8,13,18,23,28,……,93,98。符合此条件的累加值应为42,126,366,570,1010。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define N 20
int fun(int n,int *a)
{ int i,j,k,sum;
/**************found**************/
sum=0;
for(k=3,i=0;i{ sum=sum+k;
/**************found**************/
if(sum%4=2)
a[j++]=sum;
}
return j;
}
main()
{ int a[N],d,n,i;
printf("\\nEnter n (4d=fun(n,a);
printf("\\n\\nThe result :\\n");
for(i=0; i}
4、给定程序modi.c中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数:并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(unsigned n, int *zero)
{ int count=0,max=0,t;
do
{ t=n%10;
/**************found**************/
if(t=0)
count++;
if(maxn=n/10;
}while(n);
/**************found**************/
zero=count;
return max;
}
main()
{ unsigned n; int zero,max;
printf("\\nInput n(unsigned): "); scanf("%d",&n);
max = fun( n,&zero );
printf("\\nThe result: max=%d zero=%d\\n",max,zero);
}
5、给定程序modi.c中函数fun的功能是:给一维数组a输入任意4个整数,并按下例的规律输出。例如输入1、2、3、4,程序运行后将输出以下方阵。
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define M 4
/**************found**************/
void fun(int a)
{ int i,j,k,m;
printf("Enter 4 number : ");
for(i=0; iprintf("\\n\\nThe result :\\n\\n");
for(i=M;i>0;i--)
{ k=a[M-1];
for(j=M-1;j>0;j--)
/**************found**************/
a[j]=a[j+1];
a[0]=k;
for(m=0; m}
}
main()
{ int a[M];
fun(a); printf("\\n\\n");
}
6、给定程序modi.c中函数fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun()
{ int i,j,k,sum=0;
printf("\\nThe result :\\n\\n");
/**************found**************/
for(i=0; i<=3; i++)
{ for(j=1; j<=5; j++)
{ k=8-i-j;
/**************found**************/
if(k>=1 && k<=6)
{ sum=sum+1;
printf("red:%4d white:%4d black:%4d\\n",i,j,k);
}
}
}
return sum;
}
main()
{ int sum;
sum=fun();
printf("sum =%4d\\n\\n",sum);
}
7、给定程序modi.c中函数fun的功能是: 求整数x的y次方的低3位值。例如,整数5的6次方为12625,此值的低3位值为625。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
long fun(int x,int y,long *p )
{ int i;
long t=1;
/**************found**************/
for(i=1; it=t*x;
*p=t;
/**************found**************/
t=t/1000;
return t;
}
main()
{ long t,r; int x,y;
printf("\\nInput x and y: "); scanf("%ld%ld",&x,&y);
t=fun(x,y,&r);
printf("\\n\\nx=%d, y=%d, r=%ld, last=%ld\\n\\n",x, y,r,t );
}
8、给定程序modi.c中函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(int a,int *b,int *c)
{ int i,j,d,y;
for(i=3;i<=a/2;i=i+2) {
/**************found**************/
y=0;
for(j=2;j<=sqrt((double)i);j++)
if(i%j==0) y=0;
if(y==1) {
/**************found**************/
d=i-a;
for(j=2;j<=sqrt((double)d);j++)
if(d%j==0) y=0;
if(y==1)
{ *b=i; *c=d; }
}
}
}
main()
{ int a,b,c;
do
{ printf("\\nInput a: "); scanf("%d",&a); }
while(a%2);
fun(a,&b,&c);
printf("\\n\\n%d = %d + %d\\n",a,b,c);
}
9、给定程序modi.c中函数fun的功能是:根据输入的三个边长(整型值),判断能否构成三角形: 构成的是等边三角形,还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(int a,int b,int c)
{ if(a+b>c && b+c>a && a+c>b) {
if(a==b && b==c)
/**************found**************/
return 1;
else if(a==b||b==c||a==c)
return 2;
/**************found**************/
else return 3;
}
else return 0;
}
main()
{ int a,b,c,shape;
printf("\\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c);
printf("\\na=%d, b=%d, c=%d\\n",a,b,c);
shape =fun(a,b,c);
printf("\\n\\nThe shape : %d\\n",shape);
}
10、给定程序modi.c中函数fun的功能是:首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减21。转换后的小写字母作为函数值返回。例如,若形参是字母A,则转换为小写字母f;若形参是字母W,则转换为小写字母b。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
char fun(char c)
{ if( c>=\'A\' && c<=\'Z\')
/**************found**************/
c=c-32;
if(c>=\'a\' && c<=\'u\')
/**************found**************/
c=c-5;
else if(c>=\'v\'&&c<=\'z\')
c=c-21;
return c;
}
main()
{ char c1,c2;
printf("\\nEnter a letter(A-Z): "); c1=getchar();
if( isupper( c1 ) )
{ c2=fun(c1);
printf("\\n\\nThe letter \\\'%c\\\' change to \\\'%c\\\'\\n", c1,c2);
}
else printf("\\nEnter (A-Z)!\\n");
}

(三)、上机编程题:
1、请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。
例如,给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。
注意:部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(double x[9])
{
}
main()
{ double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};
int i;
printf("\\nThe original data is :\\n");
for(i=0;i<9;i++)printf("%6.1f",a[i]); printf("\\n\\n");
s=fun(a);
printf("s=%f\\n\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int i, j ; double s, a[9] ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 5 ; i++) {
for(j = 0 ; j < 9 ; j++) fscanf(rf, "%lf", &a[j]) ;
s = fun(a) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(double x[9])
{int i ;
double avg=0.0,sum=0.0;
for (i=0;i<8;i++)
{avg=(x[i]+x[i+1])/2;
sum+=sqrt(avg);
}
return sum;
}
2、请编写函数fun,其功能是:计算并输出下列多项式的值:
1 1 1 1 1
S=(1 - —) + (— - —) +…+ (—— - ——)
2 3 4 2n-1 2n
例如,在主函数中从键盘给n输入8后,输出为:s=0.662872。
注意:要求n的值大于1但不大于100。
部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的
花括号中填入你编写的若干语句。
#include
double fun(int n)
{
}
main()
{ int n; double s;
printf("\\nInput n: "); scanf("%d",&n);
s=fun(n);
printf("\\ns=%f\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(int n)
{ int i;
double sum=0.0;
if (n>1&&n<=100)
{for(i=1;i<=n;i++)
sum+=1.0/(2*i-1)-1.0/(2*i);
}
return sum;
}
3、请编写函数fun,其功能是:计算并输出下列多项式的值:
1 1 1
S = 1 + —— + ——— + … + —————
1+2 1+2+3 1+2+3+…50
例如,在主函数中从键盘给n输入50后,输出为:s=1.960784。
注意:要求n的值大于1但不大于100。
部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的
花括号中填入你编写的若干语句。
#include
double fun(int n)
{
}
main()
{ int n; double s;
printf("\\nInput n: "); scanf("%d",&n);
s=fun(n);
printf("\\n\\ns=%f\\n\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(int n)
{int i;
double sum=0.0,tmp=0.0;
if(n>1&&n<=100)
{for(i=1;i<=n;i++)
{tmp+=i;
sum+=1.0/tmp;
}
return sum;
}
}
4、请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。
注意:要求n的值不大于100。
部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
double fun(int n)
{
}
main()
{ int n; double s;
printf("\\nInput n: "); scanf("%d",&n);
s=fun(n);
printf("\\n\\ns=%f\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(int n)
{int i;
double sum=0.0;
if(n>0&&n<=100)
{for (i=1;i<=n;i++)
if(i%5==0||i%9==0)
sum+=1.0/i;
}
return sum;
}
5、请编写函数fun,其功能是:计算并输出下列多项式的值:
S = 1 + 1/1! + 1/2! + 1/3! + 1/4! + ... + 1/n!
例如,在主函数中从键盘给n输入15,则输出为:s=2.718282。
注意:要求n的值大于1但不大于100。
部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
double fun(int n)
{
}
main()
{ int n; double s;
printf("Input n: "); scanf("%d",&n);
s=fun(n);
printf("s=%f\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(int n)
{double m=1.0;
int i;
double p=1.0;
for(i=1;i<=n;i++)
{p=p*i;
m=m+1.0/p;
}
return (m);
}
6、请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值, 直到|S(n)-S(n-1)|<0.000001为止。
0.5(0.5-1) 0.5(0.5-1)(0.5-2) 0.5(0.5-1)(0.5-2)…(0.5-n+1)
S=1+0.5x+—————x^2+—————————x^3…+——————————————x^n
2! 3! n!
例如,在主函数中从键盘给x输入0.21后,输出为:s=1.100000。
注意:部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(double x)
{
}
main()
{ double x,s;
printf("Input x: ");
scanf("%lf",&x);
s=fun(x);
printf("s=%f\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int i ; double s, x ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%lf", &x) ;
s = fun(x) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(double x)
{
int n=1; /* 循环计数*/
double sn=1; /* 累计数*/
double xn=1,xn1=0; /*x的n值,以及x的n-1值;*/
while(fabs(xn-xn1)>=0.000001)/*绝对值是否合格*/
{
xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/
n+=1;
sn+=xn; /*sn累加上xn*/
}
return(sn);
}
7、请编写函数fun,其功能是:计算并输出给定10个数的方差:
┌ 1 10 ┐0.5
S=│ — ∑ (Xk-X\')^2│
└ 10 k=1 ┘
1 10
其中X\'=— ∑ Xk
10 k=1
例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。
注意:部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(double x[10])
{
}
main()
{ double s, x[10]={95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0};
int i;
printf("\\nThe original data is :\\n");
for(i=0;i<10;i++)printf("%6.1f",x[i]); printf("\\n\\n");
s=fun(x);
printf("s=%f\\n\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int i, j ; double s, x[10] ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 5 ; i++) {
for(j = 0 ; j < 10 ; j++) fscanf(rf, "%lf", &x[j]) ;
s = fun(x) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(double x[10])
{ int i;
double avg=0.0;
double sum=0.0;
double abs=0.0;
double fc;
for (i=0;i<10;i++)
sum+=x[i];
avg=sum/10;
for (i=0;i<10;i++)
abs+=(x[i]-avg)*(x[i]-avg);
fc=sqrt(abs/10) ;
return fc;
}
8、请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。
例如,在主函数中从键盘给n输入100后,
输出为:sum=148.874270。
注意:要求n的值大于2但不大于100。
部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(int n)
{
}
main()
{ int n; double sum;
printf("\\n\\nInput n: "); scanf("%d",&n);
sum=fun(n);
printf("\\n\\nsum=%f\\n\\n",sum);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(int n)
{
int i,j=0;
double s=0;
for (i=3;i<=n;i++)
{ for (j=2;jif (i%j==0) break;
if (j==i) s=s+sqrt(i);
}
return s;
}
9、请编写函数fun,其功能是:计算并输出
S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+(1+2^0.5+3^0.5+……+n^0.5)
例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。
注意: 要求n的值大于1但不大于100。
部分源程序在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(int n)
{
}
main()
{ int n; double s;
printf("\\n\\nInput n: "); scanf("%d",&n);
s=fun(n);
printf("\\n\\ns=%f\\n\\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("bc.in", "r") ;
wf = fopen("bc.out", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
s = fun(n) ;
fprintf(wf, "%lf\\n", s) ;
}
fclose(rf) ; fclose(wf) ;
}
参考答案:
double fun(int n)
{int i;
double fac=1.0;
double sum=1.0;
if (n>1&&n<=100)
for(i=2;i<=n;i++)
{fac+=sqrt(i);
sum+=fac;
}
return sum;
}
网上C语言的题很多,你可以自己找找看
第6个回答  2006-10-02
你可以找一些计算机耳机或者计算机三级的考试题,如果你比较在意实用性的话,就找一些mfc的电子书来看看
相似回答