期末复习.docx
《期末复习.docx》由会员分享,可在线阅读,更多相关《期末复习.docx(15页珍藏版)》请在冰豆网上搜索。
期末复习
编程题
//1、两个数的最大值
intMax(inta,intb)
{
intmax;
if(a>b)
max=a;
else
max=b;
returnmax;
}
voidmain()
{
intx,y;
intmax;
printf(“请输入两个数:
\n”);
scanf(“%d%d”,&x,&y);
max=Max(x,y);
printf("最大值是%d\n",max);
}
//2、两个数的最小值
intMin(inta,intb)
{
intmax;
if(a
min=a;
else
min=b;
returnmax;
}
voidmain()
{
intx,y;
intmin;
printf(“请输入两个数:
\n”);
scanf(“%d%d”,&x,&y);
min=Min(x,y);
printf("最小值是%d\n",min);
}
//3、判断某年是否为闰年
intleapyear(inty)
{
intflag=0;
if((y%4==0&&y%100!
=0)||(y%400==0))
flag=1;
returnflag;
}
voidmain()
{
inty;
printf(“请输入一个年份,判断该年份是否为闰年:
\n”);
scanf(“%d”,&y);
if(leapyear(y))
printf(“是闰年\n”);
else
printf(“不是闰年\n”);
}
//4、判断某世纪有多少个闰年
intleapyear(inty)
{
intflag=0;
if((y%4==0&&y%100!
=0)||(y%400==0))
flag=1;
returnflag;
}
voidmain()
{
inti,a,b,count=0;
printf(“请输入某个世纪的起始年份和终止年份,判断该世纪有多少个闰年:
\n”);
scanf(“%d%d”,&a,&b);
for(i=a;i<=b;i++)
if(leapyear(i)==1)
count++;
printf(“%d到%d之间有%d个闰年\n”,a,b,count);
);
//5、判断某个数是否为素数
intIssushu(intx)
{
inti,flag;
flag=1;
for(i=2;i{
if(!
(x%i))
{
flag=0;
break;
}
}
returnflag;
}
voidmain()
{
intx;
printf(“请输入一个数,判断该数是否为素数:
\n”);
scanf(“%d”,&x);
if(Issushu(x))
printf(“是素数\n”);
else
printf(“不是素数\n”);
}
//6、判断某个数是否为水仙花数
intIssxh(intx)
{
intm1,m2,m3,n,flag=0;
m1=n/100;
m2=x/10%10;
m3=x%10;
n=m1*m1*m1+m2*m2*m2+m3*m3*m3;
if(x==n)
flag=1;
returnflag;
}
voidmain()
{
intx;
printf(“请输入一个数,判断该数是否为素数:
\n”);
scanf(“%d”,&x);
if(Issxh(x))
printf(“是水仙花数\n”);
else
printf(“不是水仙花数\n”);
}
//7、分段函数
intfenduan(intx)
{
inty;
if(x>=1)
y=x*x-2*x+1;
elseif(x>-1)
y=x+5;
else
y=3*x-8;
returny;
}
voidmain()
{
intx;
printf(“请输入一个数字,求分段函数的值y。
\n”);
scanf(“%d”,&x);
printf(“y的值等于%d\n”,fenduan(x));
}
//8、等腰三角形
voiddengyaosanjiao(intn)
{
inti,j,k;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
printf(“”);
for(j=1;j<=2*i-1;j++)
printf(“*”);
printf(“\n”);
}
}
voidmain()
{
intn;
printf(“请输入一个数字n,输出n行的等腰三角形。
\n”);
scanf(“%d”,&n);
dengyaosanjiao(n);;
}
//9、直角三角形
voidzhijiaosanjiao(intn)
{
inti,j,k;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
printf(“*”);
printf(“\n”);
}
}
voidmain()
{
intn;
printf(“请输入一个数字n,输出n行的直角三角形。
\n”);
scanf(“%d”,&n);
dengyaosanjiao(n);;
}
//10、输出fibonacci数列第n项的值
longFibonacci(intn)
{
inti;
longfib[30]={1,1};
for(i=2;ifib[i]=fib[i-1]+fib[i-2];
returnfib[n-1];
}
voidmain()
{
intn;
printf(“请输入一个数字n,求fibonacci数列第n项的值。
\n”);
scanf(“%d”,&n);
printf(“%ld”,Fibonacci(n));
}
//11、输出fibonacci数列前n项的和
longFibonaccisum(intn)
{
inti;
longsum=2;
longfib[30]={1,1};
for(i=2;i{
fib[i]=fib[i-1]+fib[i-2];
sun+=fib[i];
}
returnsum;
}
voidmain()
{
intn;
printf(“请输入一个数字n,求fibonacci数列前n项的和。
\n”);
scanf(“%d”,&n);
printf(“%ld”,Fibonaccisum(n));
}
//12、输出等比数列第N项的值
intdengbi(intn)
{
inta,d,i;
printf(“Pleaseinput:
a1=?
\t,d=?
\n“);
scanf(“%d%d“,&a1,&d);
for(i=2;i<=n;i++)
a1*=d;
returna1;
}
voidmain()
{
intn;
printf(“请输入一个数字n,求等比数列第n项的值。
\n”);
scanf(“%d”,&n);
printf(“%d”,dengbi(n));
}
//13、输出等比数列前n项的和
intdengbisum(intn)
{
inta1,d,i;
intsum=0;
printf(“Pleaseinput:
a1=?
\t,d=?
\n“);
scanf(“%d%d“,&a1,&d);
for(i=1;i<=n;i++)
{
sum+=a1;
a1*=d;
}
returnsum;
}
voidmain()
{
intn;
printf(“请输入一个数字n,求等比数列前n项的和。
\n”);
scanf(“%d”,&n);
printf(“%d”,dengbisum(n));
}
//14、输出等差数列第N项的值
intdengcha(intn)
{
inta,d,i;
printf(“Pleaseinput:
a1=?
\t,d=?
\n“);
scanf(“%d%d“,&a1,&d);
for(i=2;i<=n;i++)
a1+=d;
returna1;
}
voidmain()
{
intn;
printf(“请输入一个数字n,求等差数列第n项的值。
\n”);
scanf(“%d”,&n);
printf(“%d”,dengcha(n));
}
//15、输出等差数列前n项的和
intdengchasum(intn)
{
inta1,d,i;
intsum=0;
printf(“Pleaseinput:
a1=?
\t,d=?
\n“);
scanf(“%d%d“,&a1,&d);
for(i=1;i<=n;i++)
{
sum+=a1;
a1+=d;
}
returnsum;
}
voidmain()
{
intn;
printf(“请输入一个数字n,求等差数列前n项的和。
\n”);
scanf(“%d”,&n);
printf(“%d”,dengchasum(n));
}
//16、打印99乘法口诀表
voidjiujiuchenfabiao()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(“%d×%d=%-4d“,i,j,i*j);
printf(“\n“);
}
}
voidmain()
{
jiujiuchenfabiao();
}
//17、判断某个字符数组是否为回文
intIsHuiWen(chars[100])
{
inti,j,flag=1;
i=0;
j=strlen(s)-1;
while(i<=j)
{
if(s[i++]!
=s[j--])
{flag=0;break;}
}
returnflag;
}
voidmain()
{
charstr[100];
printf(“请输入一个字符串str,判断该字符串是否是回文\n“);
gets(str);
if(IsHuiWen(str)==1)
printf(“是回文\n”);
else
printf(“不是回文\n”);
}
//18、求二维数组中的最大值
#defineM10
#defineN3
intMax(ints[M][N])
{
inti,j,max;
max=s[0][0];
for(i=0;i{
for(j=0;j{
if(s[i][j]>max)
max=s[i][j];
}
}
returnmax;
}
voidmain()
{
ints[M][N];
printf(“请输入30个数组元素:
\n“);
for(i=0;ifor(j=0;jscanf(“%d“,&s[i][j]);
printf(“数组中的最大值为%d\n”,Max(s));
}
//19、求二维数组中的最小值
#defineM10
#defineN3
intMin(ints[M][N])
{
inti,j,min;
min=s[0][0];
for(i=0;i{
for(j=0;j{
if(s[i][j]min=s[i][j];
}
}
returnmin;
}
voidmain()
{
ints[M][N];
printf(“请输入30个数组元素:
\n“);
for(i=0;ifor(j=0;jscanf(“%d“,&s[i][j]);
printf(“数组中的最小值为%d\n”,Min(s));
}
//20、数组从小到大选择排序
#defineN10
voidSortScore(ints[])
{
inti,j,temp;
for(i=0;i{
for(j=i+1;jif(s[i]>s[j])
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
}
voidmain()
{
ints[N];
printf(“请输入10个数组元素:
\n“);
for(i=0;iscanf(“%d“,&s[i]);
SortScore(s);
}
//20、数组从小到大冒泡排序
#defineN10
voidSortScore(ints[])
{
inti,j,temp;
for(i=0;i{
for(j=0;jif(s[j]>s[j+1])
{
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
voidmain()
{
ints[N];
printf(“请输入10个数组元素:
\n“);
for(i=0;iscanf(“%d“,&s[i]);
SortScore(s);
}