C程序复习典型题目.docx

上传人:b****1 文档编号:10540359 上传时间:2023-05-26 格式:DOCX 页数:26 大小:21.88KB
下载 相关 举报
C程序复习典型题目.docx_第1页
第1页 / 共26页
C程序复习典型题目.docx_第2页
第2页 / 共26页
C程序复习典型题目.docx_第3页
第3页 / 共26页
C程序复习典型题目.docx_第4页
第4页 / 共26页
C程序复习典型题目.docx_第5页
第5页 / 共26页
C程序复习典型题目.docx_第6页
第6页 / 共26页
C程序复习典型题目.docx_第7页
第7页 / 共26页
C程序复习典型题目.docx_第8页
第8页 / 共26页
C程序复习典型题目.docx_第9页
第9页 / 共26页
C程序复习典型题目.docx_第10页
第10页 / 共26页
C程序复习典型题目.docx_第11页
第11页 / 共26页
C程序复习典型题目.docx_第12页
第12页 / 共26页
C程序复习典型题目.docx_第13页
第13页 / 共26页
C程序复习典型题目.docx_第14页
第14页 / 共26页
C程序复习典型题目.docx_第15页
第15页 / 共26页
C程序复习典型题目.docx_第16页
第16页 / 共26页
C程序复习典型题目.docx_第17页
第17页 / 共26页
C程序复习典型题目.docx_第18页
第18页 / 共26页
C程序复习典型题目.docx_第19页
第19页 / 共26页
C程序复习典型题目.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C程序复习典型题目.docx

《C程序复习典型题目.docx》由会员分享,可在线阅读,更多相关《C程序复习典型题目.docx(26页珍藏版)》请在冰点文库上搜索。

C程序复习典型题目.docx

C程序复习典型题目

C程序复习典型题目:

一、第5章:

循环

1、P131:

例5.7求π/4

2、P133:

例5.8:

裴波那契数列

3、P135:

例5.9:

判素数

4、P140:

习题3:

求最大公约数

5、P140:

习题6:

求1至20的阶乘之和

6、P140:

习题8:

求所有水仙花数

7、P140:

习题10:

求分数序列前20项

二、第6章:

数组

8、P146:

例6.2:

用数组求裴波那契数列

9、P148:

例6.3:

一维数组排序

10、P152:

例6.4:

二维数组转置

11、P168:

习题5:

一维数组逆序处理

12、P168:

习题6:

杨辉三角形

三、第7章:

函数

13、P180:

例7.4:

用函数求两数之和

14:

P187:

例7.7:

用递归函数求n!

15:

P194:

例7.10:

用函数求一维数组的平均值

16:

P198:

例7.13:

用函数求二维数组的最大值

17:

P207:

例7.17:

用函数中静态变量的方法求1至5的各阶乘值

18:

P218:

习题3:

用函数判断一个数是否为素数

19:

P218:

习题4:

用函数法对一个二维数组进行转置

20:

P219:

习题13:

用递归函数求勒让德多项式的值

21:

P219:

习题14:

用函数对二维数组的数据进行各种处理:

如求行/列平均值

四、第8章:

指针

22、P252:

例8.14:

用指针法处理二维数组数据(元素指针与行指针)

五、第9章:

结构体与链表

23:

P310:

例9.8:

静态链表

24:

P311:

例9.9:

动态链表

六、第10章:

文件

25:

P338:

例10.1:

键盘输入内容存入文件

26:

P339:

例10.2:

文件复制和文件内容显示

C程序复习典型题目:

一、第5章:

循环

1、P131:

例5.7求π/4

#include

#include

intmain()

{

intsign=1;//sign用来表示数值的符号

doublepi=0.0,n=1.0,term=1.0;//pi代表π,n代表分母,term代表当前项的值

while(fabs(term)>=1e-8)//检查当前项term的绝对值是否大于或等于10的(-6)次方

{

pi=pi+term;//把当前项term累加到pi中

n=n+2;//n+2是下一项的分母

sign=-sign;//sign代表符号,下一项的符号与上一项符号相反

term=sign/n;//求出下一项的值term

}

pi=pi*4;//多项式的和pi乘以4,才是π的近似值

printf("pi=%10.8f\n",pi);//输出π的近似值

}

2、P133:

例5.8:

裴波那契数列

#include

intmain()

{

intf1=1,f2=1,f3;

inti;

printf("%12d\n%12d\n",f1,f2);

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

{

f3=f1+f2;

printf("%12d\n",f3);

f1=f2;

f2=f3;

}

}

3、P135:

例5.9:

判素数

#include

#include

intmain()

{intn,i,k;

printf("pleaseenteraintegernumber:

n=?

");

scanf("%d",&n);

k=sqrt(n);

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

if(n%i==0)break;

if(i<=k)printf("%disnotaprimenumber.\n",n);

elseprintf("%disaprimenumber.\n",n);

}

4、P140:

习题3:

求最大公约数

#include

intmain()

{

intp,r,n,m,temp;

printf("请输入两个正整数n,m:

");

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

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!

=0)

{

r=n%m;

n=m;

m=r;

}

printf("它们的最大公约数为:

%d\n",n);

printf("它们的最小公约数为:

%d\n",p/n);

return0;

}

5、P140:

习题6:

求1至20的阶乘之和

#include

intmain()

{doubles=0,t=1;

intn;

for(n=1;n<=20;n++)

{

t=t*n;

s=s+t;

}

printf("1!

+2!

+...+20!

=%22.15e\n",s);

return0;

}

6、P140:

习题8:

求所有水仙花数

#include

intmain()

{

inti,j,k,n;

printf("parcissusnumbersare");

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d",n);

}

printf("\n");

return0;

}

7、P140:

习题10:

求分数序列前20项

#include

intmain()

{

inti,n=20;

doublea=2,b=1,s=0,t;

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

{

s=s+a/b;

t=a,

a=a+b,

b=t;

}

printf("sum=%16.10f\n",s);

return0;

}

二、第6章:

数组

8、P146:

例6.2:

用数组求裴波那契数列

#include

intmain()

{

inti;

intf[20]={1,1};

for(i=2;i<20;i++)

f[i]=f[i-2]+f[i-1];

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

{

if(i%5==0)printf("\n");

printf("%12d",f[i]);

}

printf("\n");

return0;

}

9、P148:

例6.3:

一维数组排序

#include

intmain()

{

inta[10];

inti,j,t;

printf("input10numbers:

\n");

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

scanf("%d",&a[i]);

printf("\n");

for(j=0;j<9;j++)//进行9次循环,实现9趟比较

for(i=0;i<9-j;i++)//在每一趟中进行9-j次比较

if(a[i]>a[i+1])//相邻两个数比较

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("thesortednumbers:

\n");

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

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

printf("\n");

return0;

}

10、P152:

例6.4:

二维数组转置

#include

intmain()

{

inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],i,j;

printf("arraya:

\n");

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

{

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

{

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

b[j][i]=a[i][j];

}

printf("\n");

}

printf("arrayb:

\n");

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

{

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

printf("%5d",b[i][j]);

printf("\n");

}

return0;

}

11、P168:

习题5:

一维数组逆序处理

#include

#defineN5

intmain()

{inta[N],i,temp;

printf("enterarraya:

\n");

for(i=0;i

scanf("%d",&a[i]);

printf("arraya:

\n");

for(i=0;i

printf("%4d",a[i]);

for(i=0;i

{temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}

printf("\nNow,arraya:

\n");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

return0;

}

12、P168:

习题6:

杨辉三角形

#include

#defineN10

intmain()

{inti,j,a[N][N];

for(i=0;i

{a[i][i]=1;

a[i][0]=1;

}

for(i=2;i

for(j=1;j<=i-1;j++)

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

for(i=0;i

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

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

printf("\n");

}

printf("\n");

return0;

}

三、第7章:

函数

13、P180:

例7.4:

用函数求两数之和

#include

floatadd(floatx,floaty)

{floatz;

z=x+y;

return(z);

}

voidmain()

{

floata,b,c;

printf("Pleaseenteraandb:

");

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

c=add(a,b);

printf("sumis%f\n",c);

}

14:

P187:

例7.7:

用递归函数求n!

#include

intmain()

{intfac(intn);

intn;

inty;

printf("inputanintegernumber:

");

scanf("%d",&n);

y=fac(n);

printf("%lld!

=%d\n",n,y);

return0;

}

intfac(intn)

{

intf;

if(n<0)

printf("n<0,dataerror!

");

elseif(n==0||n==1)

f=1;

elsef=fac(n-1)*n;

return(f);

}

15:

P194:

例7.10:

用函数求一维数组的平均值

#include

intmain()

{floataverage(floatarray[10]);//函数声明

floatscore[10],aver;

inti;

printf("input10scores:

\n");

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

scanf("%f",&score[i]);

printf("\n");

aver=average(score);//调用average函数

printf("averagescoreis%5.2f\n",aver);

return0;

}

floataverage(floatarray[10])//定义average函数

{inti;

floataver,sum=array[0];

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

sum=sum+array[i];//累加学生成绩

aver=sum/10;

return(aver);

}

16:

P198:

例7.13:

用函数求二维数组的最大值

#include

intmain()

{intmax_value(intarray[][4]);

inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};

printf("Maxvalueis%d\n",max_value(a));

return0;

}

intmax_value(intarray[][4])

{inti,j,max;

max=array[0][0];

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

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

if(array[i][j]>max)max=array[i][j];

return(max);

}

17:

P207:

例7.17:

用函数中静态变量的方法求1至5的各阶乘值

#include

intmain()

{intfac(intn);

inti;

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

printf("%d!

=%d\n",i,fac(i));

return0;

}

intfac(intn)

{staticintf=1;

f=f*n;

return(f);

}

18:

P218:

习题3:

用函数判断一个数是否为素数

#include

intmain()

{intprime(int);

intn;

printf("inputaninteger:

");

scanf("%d",&n);

if(prime(n))

printf("%disaprime.\n",n);

else

printf("%disnotaprime.\n",n);

return0;

}

intprime(intn)

{intflag=1,i;

for(i=2;i

if(n%i==0)

flag=0;

return(flag);

}

19:

P218:

习题4:

用函数法对一个二维数组进行转置

#include

#defineN3

intarray[N][N];

intmain()

{voidconvert(intarray[][3]);

inti,j;

printf("inputarray:

\n");

for(i=0;i

for(j=0;j

scanf("%d",&array[i][j]);

printf("\noriginalarray:

\n");

for(i=0;i

{for(j=0;j

printf("%5d",array[i][j]);

printf("\n");

}

convert(array);

printf("convertarray:

\n");

for(i=0;i

{for(j=0;j

printf("%5d",array[i][j]);

printf("\n");

}

return0;

}

voidconvert(intarray[][3])

{inti,j,t;

for(i=0;i

for(j=i+1;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

}

20:

P219:

习题13:

用递归函数求勒让德多项式的值

#include

floatP(intn,floatx);

intmain()

{

intn;

floatx;

printf("请输入参数n(整数):

");

scanf("%d",&n);

printf("\n请输入参数x(实数):

");

scanf("%f",&x);

printf("\nP(%d,%f)的值为:

%f\n",n,x,P(n,x));

getchar();

return0;

}

floatP(intn,floatx)

{

if(n==0)

return1.0;

elseif(n==1)

returnx;

else

return((2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x))/n;

}

21:

P219:

习题14:

用函数对二维数组的数据进行各种处理:

如求行/列平均值

#include

#defineN10

#defineM5

floatscore[N][M];

floata_stu[N],a_cour[M];

intr,c;

intmain()

{inti,j;

floath;

floats_var(void);

floathighest();

voidinput_stu(void);

voidaver_stu(void);

voidaver_cour(void);

input_stu();

aver_stu();

aver_cour();

printf("\nNO.cour1cour2cour3cour4cour5aver\n");

for(i=0;i

{printf("\nNO%2d",i+1);

for(j=0;j

printf("%8.2f",score[i][j]);

printf("%8.2f\n",a_stu[i]);

}

printf("\naverage:

");

for(j=0;j

printf("%8.2f",a_cour[j]);

printf("\n");

h=highest();

printf("highest:

%7.2fNO.%2dcourse%2d\n",h,r,c);

printf("variance%8.2f\n",s_var());

return0;

}

voidinput_stu(void)

{inti,j;

for(i=0;i

{printf("\ninputscoreofstudent%2d:

\n",i+1);

for(j=0;j

scanf("%f",&score[i][j]);

}

}

 

voidaver_stu(void)

{inti,j;

floats;

for(i=0;i

{for(j=0,s=0;j

s+=score[i][j];

a_stu[i]=s/5.0;

}

}

voidaver_cour(void)

{inti,j;

floats;

for(j=0;j

{s=0;

for(i=0;i

s+=score[i][j];

a_cour[j]=s/(float)N;

}

}

floathighest()

{floathigh;

inti,j;

high=score[0][0];

for(i=0;i

for(j=0;j

if(score[i][j]>high)

{high=score[i][j];

r=i+1;

c=j+1;

}

return(high);

}

floats_var(void)

{inti;

floatsumx,sumxn;

sumx=0.0;

sumxn=0.0;

for(i=0;i

{sumx+=a_stu[i]*a_stu[i];

sumxn+=a_stu[i];

}

return(sumx/N-(sumxn/N)*(sumxn/N));

}

四、第8章:

指针

22、P252:

例8.14:

用指针法处理二维数组数据(元素指针与行指针)

#include

intmain()

{voidaverage(float*p,intn);

voidsearch(float(*p)[4],intn);

floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};

average(*score,12);

search(score,2);

return0;

}

voidaverage(float*p,intn)

{float*p_end;

floatsum=0,aver;

p_end=p+n-1;

for(;p<=p_end;p++)

sum=sum+(*p);

aver=sum/n;

printf("average=%5.2f\n",aver);

}

voidsearch(float(*p)[4],intn)

{inti;

printf("ThescoreofNo.%dare:

\n",n);

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

printf("%5.2f",*(*(p+n)+i));

printf("\n");

}

五、第9章:

结构体与链表

23:

P310:

例9.8:

静态链表

#include

structstudent//声明结构体类型structstudent

{intnum;

floatscore;

structstudent*next;

};

intmain()

{structstudenta,b,c,*head,*p;//定义3个结构体变量作为链表的结点

a.num=10101;a.score=89.5;//对结点a的num和score成员赋值

b.num=10103;b.score=90;/

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2