黑龙江大学C语言程序的设计试题库程序改错.docx

上传人:b****8 文档编号:10233516 上传时间:2023-02-09 格式:DOCX 页数:15 大小:17.03KB
下载 相关 举报
黑龙江大学C语言程序的设计试题库程序改错.docx_第1页
第1页 / 共15页
黑龙江大学C语言程序的设计试题库程序改错.docx_第2页
第2页 / 共15页
黑龙江大学C语言程序的设计试题库程序改错.docx_第3页
第3页 / 共15页
黑龙江大学C语言程序的设计试题库程序改错.docx_第4页
第4页 / 共15页
黑龙江大学C语言程序的设计试题库程序改错.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

黑龙江大学C语言程序的设计试题库程序改错.docx

《黑龙江大学C语言程序的设计试题库程序改错.docx》由会员分享,可在线阅读,更多相关《黑龙江大学C语言程序的设计试题库程序改错.docx(15页珍藏版)》请在冰豆网上搜索。

黑龙江大学C语言程序的设计试题库程序改错.docx

黑龙江大学C语言程序的设计试题库程序改错

程序改错

 

功能:

给定n个实数,输出平均值,并统计在平均值以下(含平

均值)的实数个数。

例如:

n=6时,输入23.5,45.67,12.1,6.4,58.9,98.4所得

平均值为40.828335,在平均值以下的实数个数应为3。

------------------------------------------------------*/

#include

intfun(floatx[],intn)

{

intj,c=0;

/**********FOUND**********/

floatj=0;

/**********FOUND**********/

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

xa+=x[j];

xa=xa/n;

printf("ave=%f\n",xa);

/**********FOUND**********/

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

if(x[j]<=xa)c++;

returnc;

}

voidmain(void)

{

floatx[]={23.5,45.67,12.1,6.4,58.9,98.4};

printf("%d\n",fun(x,6));

}

答案:

1).floatxa=0;或floatxa=0.0;

2).for(j=0;jj;j++)或for(j=0;n-1>=j;j++)或for(j=0;j<=n-1;j++)

3).for(j=0;jj;j++)或for(j=0;j<=n-1;j++)或for(j=0;n-1>=j;j++)

 

功能:

编写函数fun,求两个整数的最小公倍数,然后用主

函数main()调用这个函数并输出结果,两个整数由

键盘输入。

------------------------------------------------*/

#include"stdio.h"

main()

{

unsignedintm,n,q;

printf("m,n=");

scanf("%d,%d",&m,&n);

/**********FOUND**********/

q==fun(m,n);

printf("p(%d,%d)=%d",m,n,q);

getch();

}

intfun(intm,intn)

{

inti;

/**********FOUND**********/

if(m=n)

{

i=m;

m=n;

n=i;

}

for(i=m;i<=m*n;i+=m)

/**********FOUND**********/

if(i%n==1)

return(i);

}

 

答案:

1).q=fun(m,n);

2).if(m

3).if(i%n==0)

 

功能:

利用递归方法求5!

------------------------------------------------------*/

#include"stdio.h"

#include"stdio.h"

main()

{

inti;

intfact();

printf("5!

=%d\n",fact(5));

}

intfact(j)

intj;

{

intsum;

/**********FOUND**********/

if(j=0)

/**********FOUND**********/

sum=0;

else

sum=j*fact(j-1);

/**********FOUND**********/

returnj;

}

答案:

1).if(j==0)

2).sum=1;

3).returnsum;

 

功能:

用指针作函数参数,编程序求一维数组中的最大和最小的

元素值.

------------------------------------------------------*/

#defineN10

/***********FOUND***********/

voidmaxmin(intarr[],int*pt1,*pt2,n)

{

inti;

/***********FOUND***********/

*pt1=*pt2=&arr[0];

for(i=1;i

{

/***********FOUND***********/

if(arr[i]<*pt1)*pt1=arr[i];

if(arr[i]<*pt2)*pt2=arr[i];

}

}

main()

{

intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

/***********FOUND***********/

*p1=&a;*p2=&b;

maxmin(array,p1,p2,N);

printf("max=%d,min=%d",a,b);

}

答案:

1).voidmaxmin(intarr[],int*pt1,int*pt2,intn)或maxmin(intarr[],int*pt1,int*pt2,intn)或voidmaxmin(int*arr,int*pt1,int*pt2,intn)

2).*pt1=*pt2=arr[0];或*pt1=*pt2=*(arr+0);或*pt2=*pt1=arr[0];

3).if(arr[i]>*pt1)*pt1=arr[i];或if(*(arr+i)>*pt1))*pt1=arr[i];或if(*pt1<*(arr+i)))*pt1=arr[i];或if(*pt1

4).p1=&a;p2=&b;

 

功能:

将长整型数中每一位上为偶数的数依次取出,构成一个新

数放在t中。

高位仍在高位,低位仍在低位。

例如:

当s中的数为:

87654时,t中的数为:

864。

------------------------------------------------------*/

#include

#include

voidfun(longs,long*t)

{

intd;

longsl=1;

*t=0;

while(s>0)

{

d=s%10;

/**********FOUND**********/

if(d%2=0)

{

/**********FOUND**********/

*t=d*sl+t;

sl*=10;

}

/**********FOUND**********/

s\=10;

}

}

main()

{

longs,t;

clrscr();

printf("\nPleaseenters:

");

scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:

%ld\n",t);

getch();

}

答案:

1).if(d%2==0)或if(d%2!

=1)

2).*t=d*sl+*t;或*t+=d*sl;或*t+=sl*d;或*t=*t+d*sl;或*t=*t+sl*d;

3).s/=10;或s=s/10;

 

功能:

根据整型形参m,计算如下公式的值:

y=1/2+1/8+1/18+...+1/2m*m

------------------------------------------------------*/

#include"stdio.h"

doublefun(intm)

{

/**********FOUND**********/

doubley=0

inti;

/**********FOUND**********/

for(i=1;i

{

/**********FOUND**********/

y=+1.0/(2*i*i);

}

return(y);

}

main()

{

intn;

clrscr();

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

getch();

}

答案:

1).doubley=0;

2).for(i=1;i<=m;i++)

3).y+=1.0/(2*i*i);

 

功能:

以下程序输出前六行辉三角形,既

1

11

121

1331

14641

…………

…………

------------------------------------------------------*/

main()

{

staticinta[6][6];

inti,j,k;

/***********FOUND***********/

for(i=1;i<=6;i++)

{

for(k=0;k<10-2*i;k++)

printf("");

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

{

/***********FOUND***********/

if(j==0&&j==i)

a[i][j]=1;

else

/***********FOUND***********/

a[i][j]=a[i-1][j-1]+a[i][j-1];

printf("");

printf("%-3d",a[i][j]);

}

/***********FOUND***********/

printf("\t");

}

}

答案:

1).for(i=0;i<6;i++)或for(i=0;i<=5;i++)

2).if(j==0||j==i)

3).a[i][j]=a[i-1][j]+a[i-1][j-1];或a[i][j]=a[i-1][j-1]+a[i-1][j];

4).printf("\n");

 

功能:

以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的

最大的n。

------------------------------------------------------*/

#include"string.h"

main()

{

intn,s;

/**********FOUND**********/

s==n=0;

/**********FOUND**********/

while(s>1000)

{

++n;

s+=n*n;

}

/**********FOUND**********/

printf("n=%d\n",&n-1);

getch();

}

答案:

1).s=n=0;

2).while(s<=1000)

3).printf("n=%d\n",n-1);

 

功能:

读入一个整数k(2≤k≤10000),打印它的所有质因子(即

所有为素数的因子)。

例如:

若输入整数:

2310,则应输出:

2、3、5、7、11。

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

------------------------------------------------------*/

#include"conio.h"

#include"stdio.h"

/**********FOUND**********/

IsPrime(integern)

{

inti,m;

m=1;

for(i=2;i

/**********FOUND**********/

if(n%i)

{

m=0;

break;

}

/**********FOUND**********/

return(n);

}

main()

{

intj,k;

clrscr();

printf("\nPleaseenteranintegernumberbetween2and10000:

");

scanf("%d",&k);

printf("\n\nTheprimefactor(s)of%dis(are):

",k);

for(j=2;j<=k;j++)

if((!

(k%j))&&(IsPrime(j)))printf("\n%4d",j);

printf("\n");

}

答案:

1).IsPrime(intn)

2).if(!

(n%i))

3).return(m);

 

功能:

请编写函数fun,对长度为8个字符的字符串,将8个字符按

降序排列。

例如:

原来的字符串为CEAedcab,排序后输出为edcbaECA。

------------------------------------------------------*/

#include

#include

#include

intfun(char*s,intnum)

{

/**********FOUND**********/

inti;j;

chart;

for(i=0;i

/**********FOUND**********/

for(j=i;j

/**********FOUND**********/

if(s[i]>s[j])

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

main()

{

chars[10];

clrscr();

printf("输入8个字符的字符串:

");

gets(s);

fun(s,8);

printf("\n%s",s);

getch();

}

答案:

1).inti,j;

2).for(j=i+1;j

3).if(s[i]

 

功能:

计算正整数num的各位上的数字之积。

例如:

若输入:

252,则输出应该是:

20。

若输入:

202,则输出应该是:

0。

------------------------------------------------------*/

#include

#include

longfun(longnum)

{

/**********FOUND**********/

longk=1

do

{

k*=num%10;

/**********FOUND**********/

num\=10;

/**********FOUND**********/

}while(!

num);

return(k);

}

main()

{

longn;

clrscr();

printf("\Pleaseenteranumber:

");scanf("%ld",&n);

printf("\n%ld\n",fun(n));

getch();

}

 

答案:

1).longk=1;

2).num/=10;

3).}while(num);或while(num!

=0)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1