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