二级C语言程序改错题汇总.docx

上传人:b****5 文档编号:8097400 上传时间:2023-01-28 格式:DOCX 页数:31 大小:32.78KB
下载 相关 举报
二级C语言程序改错题汇总.docx_第1页
第1页 / 共31页
二级C语言程序改错题汇总.docx_第2页
第2页 / 共31页
二级C语言程序改错题汇总.docx_第3页
第3页 / 共31页
二级C语言程序改错题汇总.docx_第4页
第4页 / 共31页
二级C语言程序改错题汇总.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

二级C语言程序改错题汇总.docx

《二级C语言程序改错题汇总.docx》由会员分享,可在线阅读,更多相关《二级C语言程序改错题汇总.docx(31页珍藏版)》请在冰豆网上搜索。

二级C语言程序改错题汇总.docx

二级C语言程序改错题汇总

索引

循环

4.组合

11.二分法求根多函数精度数据类型

12.多项式之和迭带循环终值

13.多项式之和数据类型循环终值

36.多项式之和

23.求多项式的和包含返回值

25.求PI精度正负号

35.级数和终止值t=s的妙用

37.PI精度

34.数列前N项平方和

20.菲玻那契数列第N项

24.分数序列前N项和

二维数组

1.二维数组对角线积赋初值输入函数的正确使用(地址)

一维数组

26.数组找最大数次大数技巧最小值赋值

27.数组统计低于平均值人数计数多种传值办法

28.随机数选择排序多函数

17.数组选择排序

5.一维数组按要求输出似二维数组

素数

2.求一个整数的所有质因子判素数函数定义if条件

9.按指定条件找素数判素数的关键环节

33.若干素数之和技巧

31.判素数

指针

3.求两数的平方根之和直接间接运算

6.两数交换函数定义形参必分别标注数据类型

30.传址形参的声明

字符串

14.统计各元音字母个数字串数组下标妙用字串结束

数操作

7.输出k以内最大的10个能被13或17整除的自然数之和逻辑等于计数器大括号

18.由一个数构成另一个数的技巧(数的逐位取出由小变大)逻辑等于

19.求三个数的最小公倍数

20.菲玻那契数列第N项

21.字符串转成数八进制

22.阶乘由大向小技巧

29.公约数

32.由一个数转成另一个数隔位取数

15.由一个数转成另一个数

16.找含5的自然数数组

排序

8.数据交换三个数的有序排放

10.选择排序内层循环的起始值

1.二维数组对角线积赋初值输入函数的正确使用(地址)

/*1.给定程序modi.c中,fun函数的功能是;先从键盘上输入一个3行3列的距阵的各个元素的值,然后输出主对角线元素之积。

请改正程序中的错误,在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

以下不再提示*/

#include

intfun()

{inta[3][3],sum;

inti,j;

/************found************/

_______;sum=1;

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

{for(j=0;j<3;j++)

/************found************/

scanf("%d"a[i][j]);scanf("%d",a[i]+j);#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();}

2.求一个整数的所有质因子判素数

/*2给定程序modi.c的功能是:

读入一个整数k(2<=K<=10000),打印它的所有质因子(即所有为素数的因子)。

例如,若输入整数2310,则应输出:

2、3、5、7、11。

*/

#include"conio.h"

#include"stdio.h"

/************found************/

Isprime(intn);Isprime(intn)

{inti,m;

m=1;

for(i=2;i

/************found************/

if!

(n%i)if(!

(n%i))#if(n%i==0)

{m=0;break;}

return(m);

}

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");

}

3.求两数的平方根之和地址与地址中的内容

/*3.输入二个双精度数,函数返回它们的平方根之和.例如:

输入22.993612和84.57629872,

则输出:

y=13.991703.*/

#include

#include

#include

/**********found**********/

doublefun(double*a,*b)doublefun(double*a,double*b)#doublefun(double*b,double*a)

{doublec;

/**********found**********/

c=sqrt(a)+sqrt(b);c=sqrt(*b)+sqrt(*a);#c=sqrt(*a)+sqrt(*b);

returnc;

}

main()

{doublea,b,y;

clrscr();

printf("Entera,b:

");

scanf("%lf%lf",&a,&b);

y=fun(&a,&b);

printf("y=%f\n",y);}

4.组合

/*4给定程序modi.c中函数fun的功能是:

从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。

在每组中,可以没有黑球,但必须要有红球和白球。

组合数作为函数值返回。

正确的组合数应该是15。

程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。

*/

#include

intfun()

{inti,j,k,sum=0;

printf("\nTheresult:

\n\n");

/**************found**************/

for(i=0;i<=3;i++)for(i=1;i<=3;i++)

{for(j=1;j<=5;j++)

{k=8-i-j;

/**************found**************/

if(k>=1&&k<=6)if(k>=0&&k<=6)

{sum=sum+1;

printf("red:

%4dwhite:

%4dblack:

%4d\n",i,j,k);

}

}

}

returnsum;

}

main()

{intsum;

sum=fun();

printf("sum=%4d\n\n",sum);}

5.一维数组按要求输出似二维数组

/*5给定程序modi.c中函数fun的功能是:

给一维数组a输入任意4个整数,并按下例的规律输出。

例如输入1、2、3、4,程序运行后将输出以下方阵。

4123

3412

2341

1234*/

#include

#defineM4

/**************found**************/

voidfun(inta)voidfun(int*a)

{inti,j,k,m;

printf("Enter4number:

");

for(i=0;i

printf("\n\nTheresult:

\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[j]=a[j-1];

a[0]=k;

for(m=0;m

printf("\n");

}

}

main()

{inta[M];

fun(a);printf("\n\n");}

6.两数交换传址形参必分别标注数据类型

/*6给定程序modi.c中,函数fun的功能是:

实现两个整数的交换。

例如给a和b分别输入:

60和65,输出为:

a=65b=60*/

#include

#include

/************found************/

voidfun(inta,b)voidfun(int*a,int*b)#voidfun(int*b,int*a)

{intt;

/************found************/

t=b;b=a;a=t;t=*b;*b=*a;*a=t;#t=*a;*a=*b;*b=t;

}

main()

{inta,b;

clrscr();

printf("Entera,b:

");scanf("%d%d",&a,&b);

fun(&a,&b);

printf("a=%db=%d\n",a,b);}

7.逻辑等于计数器输出k以内最大的10个能被13或17整除的自然数之和

/*7给定程序modi.c中,函数fun的功能是:

计算并输出k以内最大的10个能被13或17整除的自然数之和。

k的值由主函数传入,若k的值为500,则函数值为4622。

*/

#include

#include

intfun(intk)

{intm=0,mc=0,j;

while((k>=2)&&(mc<10))

/************found************/

{if((k%13=0)||(k%17=0)){if(k%17==0||k%13==0)#{if(k%13==0||k%17==0)

{m=m+k;mc++;}

k--;

}

returnm;

/************found************/

_____}

main()

{clrscr();

printf("%d\n",fun(500));

}

8.数据交换三个数的有序排放

/*8.把主函数中输入的3个数,最大的放入a中,最小的放入c中,若输入:

551234.

则输出:

a=55.0,b=34.0,c=12.0.*/

#include

voidfun(float*p,float*q,float*s)

{

/************found************/

float*k;floatk;

if(*p<*q)

{k=*p;*p=*q;*q=k;}

/************found************/

if(*s<*p)if(*p<*s)#if(*s>*p)#if(0>*p-*s)#if(*p-*s<0)

{k=*s;*s=*p;*p=k;}

if(*q<*s)

{k=*q;*q=*s;*s=k;}

}

main()

{floata,b,c;

printf("Inputabc:

");scanf("%f%f%f",&a,&b,&c);

printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);

fun(&a,&b,&c);

printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);

}

9.按指定条件找素数判素数的关键环节

/*9.给定程序modi.c中,函数fun的功能是:

找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

*/

#include

#include

intfun(intm)

{inti,k;

for(i=m+1;;i++){

for(k=2;k

/************found************/

if(i%k!

=0)if(i%k==0)

break;

/************found************/

if(k=i)#if(i<=k)#if(i==k)

return(i);

}}

main()

{intn;

clrscr();

printf("\nPleaseentern:

");

scanf("%d",&n);

printf("%d\n",fun(n));}

10.内层循环的起始终止值选择排序

/*10.给定程序modi.c中,函数fun的功能是:

用选择法对数组中的n个元素按从小到大的顺序进行排序。

*/

#include

#defineN20

voidfun(inta[],intn)

{inti,j,t,p;

for(j=0;j

/************found************/

p=j;

for(i=0;i

if(a[i]

/************found************/

p=j;p=i;

t=a[p];a[p]=a[j];a[j]=t;

}}

main()

{

inta[N]={9,6,8,3,-1},i,m=5;

printf("排序前的数据:

");

for(i=0;i

fun(a,m);

printf("排序后的数据:

");

for(i=0;i

11.二分法求根多函数精度

/*11给定程序modi.c,函数fun和funx的功能是:

用二分法求方程2x^3-4x^2+3x-6=0

的一个根,并要求绝对误差不超过0.001。

例如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000。

*/

#include"stdio.h"

#include"math.h"

doublefunx(doublex)

{return(2*x*x*x-4*x*x+3*x-6);}

doublefun(doublem,doublen)

{

/************found************/

intr;doubler;

r=(m+n)/2;

/************found************/

while(fabs(n-m)<0.001)while(fabs(n-m)>0.001)#while(fabs(m-n)>0.001)

{if(funx(r)*funx(n)<0)m=r;

elsen=r;

r=(m+n)/2;

}

returnr;}

main()

{doublem,n,root;

printf("Entermn:

\n");scanf("%lf%lf",&m,&n);

root=fun(m,n);

printf("root=%6.3f\n",root);}

12.多项式之和迭带

/*12.给定程序modi.c中,函数fun的功能是:

根据整型形参n,计算如下公式的值。

A1=1,A2=1/(1+A1),A3=1/(1+A2)。

An=1/1+A(n-1)

例如:

若n=10,则应输出:

0.617977。

*/

#include

#include

/************found************/

intfun(intn)floatfun(intn)

{floatA=1;inti;

/************found************/

for(i=2;i

A=1.0/(1+A);

returnA;

}

main()

{intn;

clrscr();

printf("\nPleaseentern:

");

scanf("%d",&n);

printf("A%d=%f\n",n,fun(n));}

13.多项式之和数据类型

/*13给定程序modi.c中,函数fun的功能是:

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

t=1-1/(2*2)-1/(3*3)......-1/(m*m)例如:

若m中的值为:

5,则应输出:

0.536389。

*/

#include

#include

doublefun(intm)

{doubley=1.0;

inti;

/************found************/

for(i=2;i

/************found************/

y-=1/(i*i);y-=1./(i*i);#y-=1.0/(i*i);#y-=(double)1/(i*i);

return(y);

}

main()

{intn=5;

clrscr();

printf("\nTheresultis%lf\n",fun(n));}

14.字串数组下标妙用字串结束

/*14函数fun的功能是:

统计字符串中各元音字母(即:

A、E、I、O、U)的个数。

注意:

字母不分大小写。

例如:

若输入:

THIsisaboot,则输出应该是:

1、0、2、2、0。

*/

#include

#include

fun(char*s,intnum[5])

{intk,i=5;

for(k=0;k

/************found************/

num[i]=0;num[k]=0;

for(;*s;s++)

{i=-1;

/************found************/

switch(s)switch(*s)

{case'a':

case'A':

{i=0;break;}

case'e':

case'E':

{i=1;break;}

case'i':

case'I':

{i=2;break;}

case'o':

case'O':

{i=3;break;}

case'u':

case'U':

{i=4;break;}

}

if(i>=0)

num[i]++;

}}

15.由一个数转成另一个数

/*15.将长整型数中的每一位上为奇数的数依次取出,构成一个新数放在t中,高位仍为高位,低位仍为低位,例如:

s中的数为:

87653142,t中的数为7531.*/

#include

#include

voidfun(longs,long*t)

{intd;

longs1=1;

/************found************/

t=0;*t=0;

while(s>0)

{d=s%10;

/************found************/

if(d%2==0)if(d%2!

=0)#if(d%2)#if(d%2==1)

{*t=d*s1+*t;

s1*=10;

}

s/=10;

}

}

main()

{longs,t;

clrscr();

printf("\nPleaseenters:

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

fun(s,&t);

printf("Theresultis:

%ld\n",t);}

16.找含5的自然数数组

/*16.从整数10到55之间,选出能被3整除且至少有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回.规定:

函数中的a1中放个位数,a2中放十位数.*/

#include

fun(int*b)

{intk,a1,a2,i=0;

for(k=10;k<=55;k++)

{a2=k/10;

/************found************/

a1=__________;a1=k%10;

if((k%3==0&&a2==5)||(k%3==0&&a1==5))

{b[i]=k;i++;}

}

/************found************/

returnk;return(i);#returni;

}

main()

{inta[100],k,m;

m=fun(a);

printf("Theresultis:

\n");

for(k=0;k

}

17.数组选择排序

/*17.把n个数按由大到小排序.*/

#include

#include

#include

#defineN20

/************found************/

voidfun(inta,intn)voidfun(int*a,intn)#voidfun(inta[],intn)#voidfun(inta[N],intn)

{inti,j,k,t;

for(j=0;j

{k=j;

for(i=j+1;i

/************found************/

if(a[i]a[k])k=i;

t=a[j];a[j]=a[k];a[k]=t;

}

}

main()

{inta[N],i;

clrscr();

for(i=0;i

printf("####beforesort####\n\n");

for(i=0;i

"%6d":

"%6d\n",a[i]);

fun(a,N);

printf("****aftersort****\n\n");

for(i=0;i

"%6d":

"%6d\n",a[i]);

printf("\n");}

18.由一个数构成另一

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

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

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

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