C语言期末考试范围及题型.docx
《C语言期末考试范围及题型.docx》由会员分享,可在线阅读,更多相关《C语言期末考试范围及题型.docx(18页珍藏版)》请在冰豆网上搜索。
![C语言期末考试范围及题型.docx](https://file1.bdocx.com/fileroot1/2023-2/9/b97019c4-000a-44d1-aba8-a42e85f91a4a/b97019c4-000a-44d1-aba8-a42e85f91a4a1.gif)
C语言期末考试范围及题型
题型一:
大写字母与小写字母的相互转换
例:
输入一个大写字母,要求输出为小写字母
#include
intmain()
{
charc1,c2;
scanf("%c",&c1);
c2=c1+32;
printf("原大写字母为:
%c\n",c1);
printf("转换为的小写字母为:
%c\n",c2);
return0;
}
题型二:
两个数交换(数据类型可能是整型,字符型,指针类型或结构体类型)
例:
数据交换。
从键盘输入a、b整数的值,输出交换以后的值。
#include
Voidmain()
{inta,b,c;
printf("\ninputa,b:
");
scanf("%d,%d",&a,&b);
printf("\nbeforeexchange:
a=%db=%d\n",a,b);
c=a;a=b;b=c;
printf("afterexchange:
a=%db=%d\n",a,b);
}
题型三:
求一元二次方程的实根
例:
求ax2+bx+c=0方程的根.
#include
#include
intmain()
{doublea,b,c,disc,x1,x2,p,q;
printf("\npleaseinputa,b,c:
");
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
return0;
}
#include
#include
intmain()
{doublea,b,c,disc,x1,x2,p,q;
printf("\npleaseinputa,b,c:
");
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
If(disc<0)
Printf(“无解”);
else
{
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("\nx1=%7.2f\nx2=%7.2f\n",x1,x2);
}
return0;
}
题型四:
数列求和
求100个自然数的和即:
s=1+2+3+…+100。
#include
main()
{inti,sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i++;}
printf(“%d\n",sum);
}
题型五:
数据的逆序储存(整型,字符型等)
例:
输入一个自然数,将其各位数字按相反顺序输出,例如输入5789,输出9875。
#include
voidmain()
{
intn,t,bei;
scanf("%d",&n);
bei=1;
while(n/bei!
=0)
{
t=n/bei%10;
printf("%d",t);
bei=bei*10;
}
printf("\n");
}
类型六:
满足条件的数据个数统计
例:
输入一行字符,以回车结束。
统计其中字母、数字、空格和其它字符的个数。
#include
Intmain()
{
intn1,n2,n3,n4;
charc;
n1=n2=n3=n4=0;
for(c=getchar();c!
='\n';c=getchar())
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
n1++;
elseif(c>='0'&&c<='9')
n2++;
elseif(c=='')
n3++;
elsen4++;
}
printf("%d,%d,%d,%d\n",n1,n2,n3,n4);
}
类型七:
阶乘或者阶乘和
例:
输入n的值,求n!
用for
#include
intmain()
{
inti,fac,n,s;
fac=1;
s=0;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
fac=fac*i;
s=s+fac;
}
printf("%d!
=%d\n",n,fac);
printf("%d\n",s);
return0;
}
题型八:
可逆素数,求素数(判断一个数是否为素数,求某一范围内的所有素数)
例:
把100~200之间的素数输出.
#include
#include
intmain()
{
inti,n,flag;
printf("PrimeList:
\n");
for(n=100;n<200;n+=1)
{
flag=1;
for(i=2;i<=n-1;i++)
if(n%i==0)
{
flag=0;
break;
}
if(flag)
printf("%5d",n);
}
}
题型九:
Fibonacci数列的计算
例:
按每行输出5个数的形式输出Fibonacci数列的前20项。
解析:
Fibonacci数列的前几项是:
1、1、2、3、5、8、13、21、34、…。
#defineN20
main()
{inti,f1,f2,f3;
f1=f2=1;
printf("\n%8d%8d",f1,f2);
for(i=3;i<=N;i++)
{f3=f1+f2;
printf("%8d",f3);
if(i%5==0)printf("\n");
f1=f2;
f2=f3;
}
}
题型十:
求两个数的最大公约数和最小公倍数
#include
intmain()
{
intm,n,i,l,k;
Scanf(“%d,%d”,&m,&n);
If(m{
i=m,m=n;n=i,k=m,l=n;
}
r=m%n;
while(r!
=0)
{
m=n;
n=r;
r=m%n;
}
printf(“最大公约数:
%d\n”,n);
m=(k*l)/n;
printf(“最小公倍数:
%d\n”,m);
return0;
}
题型十一:
用“*”打印图形
例:
编程序,输出以下图形。
*******
*****
***
*
#include
Intmain()
{inti,j;
for(i=1;i<=4;i++)
{for(j=1;j<=i;j++)
printf("");
for(j=1;j<=8-(2*i-1);j++)
printf("*");
printf("\n");
}
}
题型十二:
求平方根(顺序,用平方根函数或循环,用迭代公式)
用牛顿迭代法求方程2x3+4x2-7x-6=0在x=1.5附近的根。
#include
#include
intmain()
{
floatx,x0,f,f1;
x=1.5;
do
{x0=x;
f=2*x0*x0*x0+4*x0*x0-7*x0-6;
f1=6*x0*x0+8*x0-7;
x=x0-f/f1;
}while(fabs(x-x0)>1e-6);
printf("%f\n",x);
}
题型十三:
求三角形的周长及面积
#include
#include
intmain()
{
inta,b,c,l,s,area;
printf("三角形的三条边:
");
scanf("%d,%d,%d",&a,&b,&c);
l=a+b+c;
s=l/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形周长l=%d\n三角形面积area=%d\n",l,area);
return0;
}
题型十四:
分段函数求解
y=x(x<1)
y=2x-1(1<=x<10)
y=3x-11(x>=10)
#include
intmain()
{
intx,y;
scanf("%d",&x);
if(x<1)
y=x;
elseif(x<10)
y=2*x-1;
else
y=3*x-11;
printf("%d\n",y);
return0;
}
题型十五:
求水仙花数,阿姆斯特朗数
#include
intmain()
{
intx,a,b,c;
for(x=101;x<1000;x++)
{
a=x/100;
b=(x-a*100)/10;
c=x-a*100-b*10;
if(x==a*a*a+b*b*b+c*c*c)
printf("%d\n",x);
}
return0;
}
例:
输入三个数,输出题型十五:
查找(最大值,最小值,与关键值相同的元素是否存在,与关键值相同的元素的下标)
最大值;
#include
intmain()
{
inta,b,c,max;
printf("输入三个整数:
");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(max
max=b;
if(maxmax=c;
printf("最大值:
%d\n",max);
return0;
}
题型十六:
百钱百鸡
一百个铜钱买一百只鸡,其中公鸡一只5钱,母鸡一只3钱。
小鸡一钱3只,问买一百只鸡中公鸡,母鸡,小鸡各多少。
#include
voidmain()
{
intcock,hen,little;
for(cock=0;cock<=20;cock++)
for(hen=0;hen<34;hen++)
{
little=100-cock-hen;
if((little%3==0)&&(cock*5+hen*3+little/3==100))
printf("cock=%d,hen=%d,little=%d\n",cock,hen,little);
}
}
题型十七:
对调数
#include
voidmain()
{
intfirst,second,changeF,changeS;
printf("对调数有:
\n");
for(first=10;first<=99;first++)
{
for(second=first+1;second<=99;second++)
{
changeF=first/10+(first%10)*10;
changeS=second/10+(second%10)*10;
if(first+second==changeF+changeS)
printf("%d+%d",first,second);
}
}
}
题型十八:
求一个数的所有因数
#include
voidmain()
{
intx,i;
scanf("%d",&x);
for(i=1;i{
if(x%i==0)
printf("%d,",i);
}
}
题型十九:
判断三角形类型以及能否构成三角形
#include
voidmain()
{
inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a)
printf("不能构成三角形");
elseif(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("该三角形为直角三角形");
elseif(a*a+b*b>=c*c||a*a+c*c>=b*b||b*b+c*c>=a*a)
printf("该三角形为锐角三角形");
else
printf("该三角形为钝角三角形");
}
题型二十:
1.计算某年某月某日是这年的第几天
例:
计算20XX年8月8日是该年的第几天。
#include
intmain()
{
/*定义需要计算的日期*/
intyear=2008;
intmonth=8;
intday=8;
intsum,flag;
switch(month)
{
case1:
sum=0;break;
case2:
sum=31;break;
case3:
sum=59;break;
case4:
sum=90;break;
case5:
sum=120;break;
case6:
sum=151;break;
case7:
sum=181;break;
case8:
sum=212;break;
case9:
sum=243;break;
case10:
sum=273;break;
case11:
sum=304;break;
case12:
sum=334;break;
}
sum=sum+day;
if(year%400==0||year%4==0&&year%100!
=0)
flag=1;
else
flag=0;
if(flag==1&&month>2)
sum+=1;
printf("%d年%d月%d日是这年的%d天",year,month,day,sum);
return0;
}
2.判断闰年还是平年。
#include
voidmain()
{
intyear;
scanf("%d",&year);
if(year%400==0||year%4==0&&year%100!
=0)
printf("%d年是闰年",year);
else
printf("%d年是平年",year);
}