C语言期末考试程序设计题复习.docx
《C语言期末考试程序设计题复习.docx》由会员分享,可在线阅读,更多相关《C语言期末考试程序设计题复习.docx(17页珍藏版)》请在冰点文库上搜索。
C语言期末考试程序设计题复习
程序设计题目
1.排序
#include//冒泡排序法(升序)
#defineN10
intmain()
{
intss[N];
inti,j,temp;
printf("请输入%d个数:
",N);
for(i=0;i{
scanf("%d",&ss[i]);
}
for(j=0;j{
for(i=0;i{
if(ss[i]>ss[i+1])
{
temp=ss[i];
ss[i]=ss[i+1];
ss[i+1]=temp;
}
}
}
printf("排序结果为:
\n");
for(i=0;i{
printf("%d",ss[i]);//两个数之间隔一个空格
}
printf("\n");
}
#include//冒泡排序法(降序)
#defineN10
intmain()
{
intss[N];
inti,j,temp;
printf("请输入%d个数:
",N);
for(i=0;i{
scanf("%d",&ss[i]);
}
for(j=0;j{
for(i=0;i{
if(ss[i]{
temp=ss[i];
ss[i]=ss[i+1];
ss[i+1]=temp;
}
}
}
printf("排序结果为:
\n");
for(i=0;i{
printf("%d",ss[i]);//两个数之间隔一个空格
}
printf("\n");
}
2.矩阵求最大、小值
#include"stdio.h"
#defineN3
#defineM5
voidmain()
{
intss[N][M];
inti,j,max,min;
printf("请输入矩阵数据:
");
for(i=0;i{
for(j=0;j{
scanf("%d",&ss[i][j]);
printf("%d",ss[i][j]);
}
}
printf("\n");
max=min=ss[0][0];
for(i=0;i{
for(j=0;j{
max=max>ss[i][j]?
max:
ss[i][j];
min=minmin:
ss[i][j];
}
}
printf("max=%d,min=%d\n",max,min);
}
3.累加、累乘
#include(累加)
intmain()
{
inti,n,s;
i=1,s=0;
printf("请输入n的值:
");
scanf("%d",&n);
while(i<=n)
{
s=s+i;
i++;
}
printf("s=%d\n",s);
return0;
}
#include(累乘)
intmain()
{
inti,n,s;
i=1,s=1;
printf("请输入n的值:
");
scanf("%d",&n);
while(i<=n)
{
s=s*i;
i++;
}
printf("s=%d\n",s);
return0;
}
#include(累加和累乘结合)
voidmain()
{
inti,j,n;longk,s;
i=1,s=1;
printf("请输入n的值:
");
scanf("%d",&n);
s=0;
for(i=1;i<=n;i++)
{
k=1;
for(j=1;j<=i;j++)
{
k=k*j;
}
s=s+k;
}
printf("1!
+2!
+...+%d!
=%d\n",n,s);
return0;
}
4.判断素数
#include
#include
voidmain()
{
intm,i;
printf("输入一个任意整数:
");
scanf("%d",&m);
for(i=2;i<=sqrt(m);i++)
{
if(m%i!
=0)
{
continue;
}
break;
}
if(i>sqrt(m))
{
printf("%d是素数\n",m);
}
else
printf("%d不是素数\n",m);
}
#include"stdio.h"//标记变量法
intmain()
{
intn,i,flag;
flag=1;
printf("请输入一个整数:
");
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
if(flag==0)
printf("%d不是素数",n);
else
printf("%d是素数",n);
printf("\n");
}
5.最大公约数、最小公倍数
#include
voidmain()
{
intm,n,r,p,temp;
printf("请输入两个数:
");
scanf("%d%d",&m,&n);
p=m*n;
if(m{
temp=m;
m=n;
n=temp;
}
r=m%n;
while(r!
=0)
{
m=n;
n=r;
r=m%n;
}
printf("最大公约数=%d,最小公倍数=%d\n",n,p/n);
}
6.数组产生随机数,求数组元素和及平均值、最值
#include
#include
#defineN10
intmain()
{
intss[N];
inti,max,min;
doubleave,sum;
sum=0;
srand(time());
for(i=0;i{
ss[i]=100+rand()%101;//100~200之内的随机数
}
printf("数组元素为:
");
for(i=0;i{
printf("%d",ss[i]);
sum=sum+ss[i];
}
printf("\n");
max=min=ss[0];
for(i=0;i{
max=max>ss[i]?
max:
ss[i];
min=minmin:
ss[i];
}
ave=sum/N;
printf("元素和=%lf,平均值=%lf,最大值=%d,最小值=%d\n",sum,ave,max,min);
}
7.百钱百鸡
#include"stdio.h"
intmain()
{
intcocks=0,hens,chicks;
printf("%8s%8s%8s\n","cocks","hens","chicks");
for(cocks=0;cocks<20;cocks++)
{
for(hens=0;hens<=33;hens++)
{
chicks=100-cocks-hens;
if(5*cocks+3*hens+chicks/3.0==100)
{
printf("%8d%8d%8d\n",cocks,hens,chicks);
}
}
}
return0;
}
8.测试字符是空格、数字、字母还是其他字符
#include
intmain()
{
charch;
printf("请输入一个字符:
");
scanf("%c",&ch);
if(ch=='')
printf("这是一个空格\n");
elseif(ch>='0'&&ch<='9')
printf("这是一个数字\n");
elseif((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
printf("这是一个字母\n");
else
printf("这是一个其他字符\n");
return0;
}
9.求三角形面积
#include
#include
intmain(void)
{
doublea,b,c,p,s;
printf("请输入三角形三边长:
");
scanf("%lf%lf%lf",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("面积=%lf\n",s);
}
else
printf("此三边不能构成三角形\n");
}
10.求水仙花数
#include"stdio.h"
intmain()
{
intn,a,b,c;
n=100;
printf("100~1000之间的水仙花数为:
\n");
while(n<1000)
{
a=n/100;
b=n%100/10;
c=n%100%10;
if(n==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",n);
}
n++;
}
}
11.百分制成绩与五级成绩的相互转换
#include
intmain()
{
doublescore;
printf("请输入分数:
");
scanf("%lf",&score);
if(score>=90)
printf("%.2lf分为A\n",score);//%.2lf保留两位小数
elseif(score>=80)
printf("%.2lf分为B\n",score);
elseif(score>=70)
printf("%.2lf分为C\n",score);
elseif(score>=60)
printf("%.2lf分为D\n",score);
else
printf("%.2lf分为E\n",score);
return0;
}
12.Fibonacci数列
#include
intmain()
{
intfib1=1,fib2=1,fib,i,n;
printf("请输入月数:
");
scanf("%d",&n);
for(i=3;i<=n;i++)
{
fib=fib1+fib2;
fib1=fib2;
fib2=fib;
}
printf("%d月后的兔子数=%d\n",n,fib);
return0;
}
13.九九乘法表
(1)满表
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
printf("%d*%d=%-2d",i,j,i*j);
}
printf("\n");
}
return0;
}
(2)左下三角
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%-2d",i,j,i*j);
}
printf("\n");
}
return0;
}
(3)右上三角
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
if(i<=j)
{
printf("%d*%d=%-2d",i,j,i*j);
}
else
printf("");//等价printf("%7c",'');此单位为7个字符
printf("\n");
}
return0;
}
(4)左上三角
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
if(i+j<=10)
{
printf("%d*%d=%-2d",i,j,i*j);
}
else
printf("");//等价printf("%7c",'');此单位为7个字符
printf("\n");
}
return0;
}
(5)右下三角
#include
intmain()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
if(i+j>=10)
{
printf("%d*%d=%-2d",i,j,i*j);
}
else
printf("");//等价printf("%7c",'');此单位为7个字符
printf("\n");
}
return0;
}