C期末考试必须掌握的部分程序及清单1.docx

上传人:b****4 文档编号:3990253 上传时间:2022-11-27 格式:DOCX 页数:10 大小:17.42KB
下载 相关 举报
C期末考试必须掌握的部分程序及清单1.docx_第1页
第1页 / 共10页
C期末考试必须掌握的部分程序及清单1.docx_第2页
第2页 / 共10页
C期末考试必须掌握的部分程序及清单1.docx_第3页
第3页 / 共10页
C期末考试必须掌握的部分程序及清单1.docx_第4页
第4页 / 共10页
C期末考试必须掌握的部分程序及清单1.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C期末考试必须掌握的部分程序及清单1.docx

《C期末考试必须掌握的部分程序及清单1.docx》由会员分享,可在线阅读,更多相关《C期末考试必须掌握的部分程序及清单1.docx(10页珍藏版)》请在冰豆网上搜索。

C期末考试必须掌握的部分程序及清单1.docx

C期末考试必须掌握的部分程序及清单1

C语言考试必须掌握的部分程序

请首先掌握本清单中前面最简单的程序,逐步增加掌握后面复杂程序。

最好是不用死记程序,而是掌握会编就行,尤其是前面简单程序。

由于上机考试可以调试运行程序,因此程序题目会比教材例题略难,具体是模拟试卷中一般难度(指针内容很少),请参考《C语言复习》PPT后面程序部分及模拟试卷。

分支=========================================

输入三个整数x,y,z,把这三个数由小到大输出。

main()

{intx,y,z,t;

if(x>y){【?

】}//t=x;x=y;y=t;

if(x>z){【?

】}//t=x;x=z;z=t;

if(y>z){【?

】}//t=y;y=z;z=t;

printf("smalltobig:

%d%d%d\n",x,y,z);

}

判断闰年,教材P4.8程序3

#include

intmain()

{

intyear,leap;//leap为1则闰年,为0则不是。

printf("enteryear:

");

scanf("%d",&year);

if((year%4==0&&year%100!

=0)||(year%400==0))

leap=1;

else

leap=0;

if(leap)

printf("%dis",year);

else

printf("%disnot",year);

printf("aleapyear.\n");

return0;

}

求一元二次方程的解,教材P108例4.9

#include

#include

intmain()

{

doublea,b,c,disc,x1,x2,realpart,imagpart;

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

printf("Theequation");

if(fabs(a)<=1e-6)

printf("isnotaquadratic\n");

else

{

disc=b*b-4*a*c;

if(fabs(disc)<=1e-6)

printf("hastwoequalroots:

%8.4f\n",-b/(2*a));

else

if(disc>1e-6)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf("hasdistinctrealroots:

%8.4fand%8.4f\n",x1,x2);

}

else

{

realpart=-b/(2*a);

imagpart=sqrt(-disc)/(2*a);

printf("hascomplexroots:

\n");

printf("%8.4f+%8.4fi\n",realpart,imagpart);

printf("%8.4f-%8.4fi\n",realpart,imagpart);

}

}

return0;

}

循环=========================================

输入n,输出1~n之间能被3整除的数,每行一个。

#include

Voidmain()

{inti,n;

scanf(“%d”,&n);

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

if(i%3==0)printf(“%d\n”,i);

}

输入n,求1~n的累加和,并输出。

#include

voidmain()

{

inti,n,sum=0;

scanf(“%n”,&n);

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

sum=sum+i;

printf(“sum=%d\n”,sum);

}

输出菲波纳契数列前20个数,每行4个(教材例5.8P135程序)。

#include

intmain()

{intf1=1,f2=1;

inti;

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

{printf("%12d%12d",f1,f2);

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

f1=f1+f2;

f2=f2+f1;

}

return0;

}

求两个数的最大公约数、最小公倍数(教材P140第3题,程序见学习辅导;函数)

#include

main()

{

intm,n,r,p,gcd,lcm;

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

if(m

p=m*n;

r=m%n;

while(【?

】)//r!

=0

{m=n;n=r;【?

】;}//r=m%n

gcd=【?

】;//n

lcm=p/gcd;

printf("gcd=%d,lcm=%d\n",【?

】);//gcd,lcm

}

主函数中输入一个整数n,判断是否素数,并输出。

(教材P137例子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);

}

主函数中,输出100~200间的全部素数(教材p137例5.10)。

#include

#include

intmain()

{intn,k,i,m=0;

for(n=101;n<=200;n=n+2)

{k=sqrt(n);

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

if(n%i==0)break;

if(i>=k+1)

{printf("%d",n);

m=m+1;

}

if(m%10==0)printf("\n");

}

printf("\n");

return0;

}

判断素数的函数,对参数判断是否素数,若是素数返回1,否则返回0。

#include

intprime(intn)

{inti,k;

k=sqrt(n);

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

if(n%i==0)return0;

return1;

}

译密码,将键盘输入字母按规律转换成密码(P138例子5.11改进的程序)。

#include

intmain()

{charc;

while((c=getchar())!

='\n')

{if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))

{c=c+4;

if(c>='Z'&&c<='Z'+4||c>'z')

c=c-26;

}

printf("%c",c);

}

printf("\n");

return0;

}

输出所有水仙花数,每行一个(教材P140第8题,程序见学习辅导;水仙花函数)

#include

intmain()

{inti,a,b,c;

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

{a=i%10;

b=i/10%10;

c=i/100;

if(i=a*a*a+b*b*b+c*c*c)

printf(“%d\n”,i);

}

return0;

}

输出9×9乘法表

#include

main()

{inti,j,result;

printf("\n");

for(i=1;【?

】;i++)//填i<10

{for(j=1;j<10;【?

】)//j++

{result=i*j;

printf("%d*%d=%-3d",i,j,【?

】);//result

}

printf("\n");

}

}

数组=========================================

将一维整型20个元素的数组a元素按五个一行输出(参见教材P146例6.2);

求一维整型数组a的元素累加和

#include

voidmain()

{inta[10],i;

for(i=0;i<10;i++)//输入10个整数

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

sum=0;

for(i=0;i<10;i++)//求和

sum=sum+a[i];

for(i=0;i<10;i++)//输出10个元素,每个数占4位,总共占一行

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

printf(“\n”);

printf(“sum=%d\n”,sum);//输出累加和

}

求一维整型数组a的元素中的最大值

#include

voidmain()

{inta[10],i,max;

for(i=0;i<10;i++)//输入10个整数

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

for(i=0;i<10;i++)//求和

sum=sum+a[i];

for(i=0;i<10;i++)//输出10个元素,每个数占4位,总共占一行

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

printf(“\n”);

printf(“sum=%d\n”,sum);//输出累加和

}

对一维整型数组a的元素按升序排序(冒泡法见教材P148、选择法见P168第2题)

将二维数组行列互换(教材P152例子6.4)

求二维数组的最大值及其行号列号(教材P153例子6.5)

输出二维数组元素

输入一行字符,统计其中的单词个数(教材P165例子6.8)

找出二维数组中的鞍点(教材P169第8题)

一维数组中折半查找(见教材P169第9题)

函数===========================================

求两个整数参数m,n的最大公约数函数(教材P218第1题)

intgcd(intm,intn)

{intp,r;

if(m

p=m*n;

r=m%n;

while(r!

=0)

{m=n;n=r;r=m%n;}

returnn;

}

判断素数函数(教材P218第3题)

#include

intprime(intn)

{inti,k;

k=sqrt(n);

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

if(n%i==0)return0;

return1;

}

判断水仙花数函数

intdaf(intn)

{inta,b,c;

a=n/100;

b=n/10%10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)return1;

elsereturn0;

}

将一维int数组元素反序

voidinvert(inta[],intn)//两个参数,a是字符数组,n是数组长度。

{inti,t;

for(i=0;i

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

将一维字符数组中字符串反序(教材P218第5题)

#include”string.h”

voidinvert(chars[])

{

inti,n=strlen(s);//strlen为求字符串长度的函数

for(i=0;i

{t=s[i];s[i]=s[n-1-i];s[n-1-i]=t;}

}

选择法排序函数(教材P196例子7.12)

voidsort(inta[],intn)

{inti,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;j

if(a[j]

t=a[k];a[k]=a[i];a[i]=t;

}

}

递归函数求n!

(教材P187例子7.7)

intfac(intn)

{intf;

if(n<0)

printf("n<0,dataerror!

");

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

f=1;//数学规定0!

和1!

都是1

else

f=fac(n-1)*n;

returnf;

}

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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