级电信C语言期末考前例题Word格式文档下载.docx
- 文档编号:18419924
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:20
- 大小:28.35KB
级电信C语言期末考前例题Word格式文档下载.docx
《级电信C语言期末考前例题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《级电信C语言期末考前例题Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
%f"
score);
while(score>
100||score<
0)
{//成绩不合法
\n输入有误,请重新输入:
score);
}
if(score>
=90)
grade='
A'
;
elseif(score>
=80)
B'
=70)
C'
=60)
D'
elsegrade='
E'
成绩是%5.1f,相应的等级是%c\n"
score,grade);
P1405.3
输入两个正整数m和n,求其最大公约数和最小公倍数。
intm,n,max,min;
%d%d"
m,&
n);
//最大公约数从两个数中较小的一个开始寻找
if(m<
n)max=m;
elsemax=n;
while(m%max!
=0||n%max!
=0)
max--;
//最小公倍数从两个数中较大的一个开始寻找
if(m>
n)min=m;
elsemin=n;
while(min%m!
=0||min%n!
min++;
max=%d,min=%d\n"
max,min);
P1405.8
打印出所有"
水仙花数"
,所谓"
是指一个三位数,其各位数字立方和等于该本身。
例如:
153是一个水仙花数,因为153=13+53+33。
math.h>
intx=100,a,b,c;
while(x>
=100&
&
x<
1000)//100~999
a=x%10;
//个位
b=x/10%10;
//十位
c=x/100;
//百位
if(x==a*a*a+b*b*b+c*c*c)printf("
%5d"
x);
x++;
P1415.9
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如,6的因子为1、2、3,而6=1+2+3,因此6是"
编程序找出1000之内的所有完数,并按下面格式输出其因子:
6itsfactorsare1、2、3
intm,i,j,s;
for(m=6;
m<
1000;
m++)//考虑1000以内的自然数
s=1;
//s表示因子的和,1是所有自然数的因子
for(i=2;
i<
m;
i++)//寻找m的所有因子
if(m%i==0)s=s+i;
//如果i是因子
if(m==s)//m的因子和与m相等
%5ditsfastorsare1"
m);
for(j=2;
j<
j++)//再次寻找m的所有因子并输出
if(m%j==0)
%d"
j);
\n"
或
m++)
s=m-1;
i++)
if(m%i==0)//如果i是m的因子
s=s-i;
//从s中减去该因子
if(s==0)//说明m与其因子和相等
j++)
j);
P1415-13
用迭代法求平方根
迭代公式为:
xn=xn-1-f(xn-1)/f'
(xn-1)
floatx0,x1,a;
a);
//求a的平方根
x1=a/2;
//迭代的初始值,可以给任意值
do
{
x0=x1;
//记录前一个近似值
x1=(x0+a/x0)/2;
//根据迭代公式计算新的近似值
}while(fabs(x0-x1)>
=1e-5);
//比较前后两个近拟值
%.3f\n"
x1);
P1415-14
用迭代法求方程的根
doublex0,x1,y;
x1=1.5;
//给定一个初始近似值
y=2*x0*x0*x0-4*x0*x0+3*x0-6;
//f(x0)
x1=x0-y/(6*x0*x0-8*x0+3);
//计算新的近似值
}while(fabs(x1-x0)>
1e-6);
//比较前后两个值
x=%.3f\n"
P1415-15
用二分法求方程的根。
doublem,a,b,fm,fa,fb;
a=-10;
b=10;
/*[-10,10]之间有一个根*/
while(fabs(b-a)>
1e-3)
m=(a+b)/2;
/*中点*/
fa=2*a*a*a-4*a*a+3*a-6;
fb=2*b*b*b-4*b*b+3*b-6;
fm=2*m*m*m-4*m*m+3*m-6;
if(fm*fa>
0)/*f(m)与f(a)同号*/
a=m;
else
b=m;
x=%.3f\n"
(a+b)/2);
例题
编程计算级数
的近似值
intn;
floatex,x,item;
x=1;
//近似计算e1
ex=1;
item=1;
n=1;
while
(1)
item*=x/n++;
//计算一项
ex+=item;
//累加
if(fabs(item)<
1e-6)
break;
}
%f\n"
ex);
*********************************************
编程近似计算定积分
floata,b;
//定积分的上下限
floatx,dx,sfx;
a=0;
b=3.14;
dx=1e-3;
//区间长度
for(x=a,sfx=0;
x<
=b;
x+=dx)
sfx+=dx*sin(x);
sfx);
P1686-2
选择排序
#defineN10
inta[N],t,i,j,min;
Input:
"
for(i=0;
i<
N;
i++)
scanf("
a[i]);
//输入数据
N-1;
i++)
min=i;
//记录下标
for(j=i+1;
j++)
if(a[j]<
a[min])
min=j;
t=a[min];
//交换
a[min]=a[i];
a[i]=t;
i++)//输出数据
printf("
a[i]);
蒙特卡洛近似计算
//近似计算定积分
stdlib.h>
time.h>
#defineN50000
#definePI3.1415926
doublex,y;
unsignednum,j;
srand((unsigned)time(NULL));
num=0;
for(j=0;
j<
x=(double)rand()/RAND_MAX*PI;
y=(double)rand()/RAND_MAX;
if(y<
sin(x))
num++;
%lf\n"
(double)num/N*PI);
//近似计算球体体积
doublex,y,z;
x=(double)rand()/RAND_MAX;
z=(double)rand()/RAND_MAX;
if(x*x+y*y+z*z<
1)
(double)num/N*8);
P2187-1
公约数公倍数
intminmult(intm,intn)
intj;
n)j=m;
elsej=n;
while(j%m!
=0||j%n!
=0)
j++;
returnj;
intmaxdivisor(intm,intn)
while(m%j!
=0||n%j!
j--;
inta,b;
Inputa&
b:
a,&
b);
%d%d\n"
minmult(a,b),maxdivisor(a,b));
P2187-2
一元二次方程求根
方法一:
voidgetroot(floata,floatb,floatc);
//函数声明
voidmain()
floata,b,c;
Inuta,b,c:
%f%f%f"
b,&
c);
//输入系数
getroot(a,b,c);
//调用函数计算方程根
voidgetroot(floata,floatb,floatc)
floatd,x1,x2;
d=b*b-4*a*c;
x1=(-b+sqrt(d))/2/a;
x2=(-b+sqrt(d))/2/a;
x1=%.1fx2=%.1f\n"
x1,x2);
方法二:
voidgetroot(floata,floatb,floatc,floatx[3]);
voidmain()
floata,b,c,x[3];
getroot(a,b,c,x);
x[1],x[2]);
voidgetroot(floata,floatb,floatc,floatx[3])
floatd;
x[1]=(-b+sqrt(d))/2/a;
x[2]=(-b+sqrt(d))/2/a;
方法三:
voidgetroot(floata,floatb,floatc,float*px1,float*px2)
*px1=(-b+sqrt(d))/2/a;
*px2=(-b+sqrt(d))/2/a;
floata,b,c,x1,x2;
getroot(a,b,c,&
x1,&
x2);
P2187-3
质数
intprime(int);
{
intx;
输入一个正整数\n\n"
&
x);
if(prime(x))printf("
\n\n此数为素数\n\n"
elseprintf("
\n\n此数不是素数\n\n"
intprime(intn)
intk;
for(k=2;
k<
n;
k++)
if(n%k==0)//余数为0
return0;
return1;
/*是质数,返回1*/
排序,用函数实现
//选择排序
voidselectsort(inta[],intn)
inti,j,k,t;
n-1;
k=i;
//假设
n;
if(a[j]<
a[k])//有更小的
k=j;
//用k记录其下标
t=a[k];
a[k]=a[i];
a[i]=t;
//起泡排序
voidbubblesort(inta[],intn)
intj,i,t;
j++)
for(i=0;
n-1-j;
i++)
if(a[i]>
a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
main()
inta[N],i;
Input:
bubblesort(a,N);
//函数调用
i++)//输出结果
a[i]);
P2197-13
勒德让多项式
floatp(int,float);
intn;
floatx;
输入n和x\n\n"
%d%f"
n,&
\n\n%d阶勒德让多项式的值为:
%f\n\n"
n,p(n,x));
floatp(intn,floatx)
if(n==0)return1;
elseif(n==1)returnx;
elsereturn((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电信 语言 期末 考前 例题