c语言解题文档格式.docx
- 文档编号:20607182
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:15
- 大小:19.56KB
c语言解题文档格式.docx
《c语言解题文档格式.docx》由会员分享,可在线阅读,更多相关《c语言解题文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
i%y==0)
2.字符串联接
请使用字符数组,编写自己的字符串联接函数。
编写一个程序,功能是能够由键盘输入两个字符串,并能调用自己编写的字符串联接函数,输出新的字符串。
{charlj(charx[],chary[],charz[]);
inti,j;
chara[100],b[100],c[200];
gets(a);
gets(b);
lj(a,b,c);
for(i=0;
strlen(a)+strlen(b);
%c"
c[i]);
\n"
);
charlj(charx[],chary[],charz[])
strlen(x);
z[i]=x[i];
for(i=strlen(x);
=strlen(x)+strlen(y)-1;
z[i]=y[i-strlen(x)];
3.三角函数
请使用台劳级数编写自己的常用三角近似值计算函数,用于自己程序的调用。
台劳级数
为:
x
x3
x5
x7
...
sinx
3!
5!
7!
1!
x0
x2
x4
6
cosx
2!
4!
6!
舍去的值由自己定义一个最小值。
请用自己的函数计算下边两个表达式的值,而且与行比较。
请输入结果。
VC++供给的标准函数之间的偏差进
y
1cos
,(
60o)
2
45
o
)
y2*sinxsinxcosx-cosx,(x
math.h>
{floats(floatx);
floatc(floatx);
floata,b,e,d;
a=3.141592/3;
d=3.141592/4;
b=sqrt((1-c(a))/2);
e=2*s(d)*s(d)+s(d)*c(d)-c(d)*c(d);
%f\n%f\n"
b,e);
floats(floatx)
floaty=0,s=1/x,t=1/2,w;
for(i=1;
w>
1e-6||w<
-1*1e-6;
s=x*x*s;
t=i*(i+1)*t;
w=s/t;
y=y+w;
w=-1*w;
return(y);
floatc(floatx)
floaty=0,s=1/(x*x),t=1/2,w;
s=x*x*s;
4.弦截法解方程
用弦截法求解方程
f(x)=x3-5x2+16x-80=0的根。
要求使用和编写以下的函数:
floatf(floatx)
代表f(x)=x
3-5x2+16x-80的值
floatxpoint(floatx1,floatx2)
来求出(x1,f(x1))
与(x2,f(x2))
的连线与x
轴的交点x坐标;
floatroot(floatx1,floatx2)
用于求出(x1,x2)
区间的近似根。
要求使用的x1与x2的初始值分别为
-10.5和20
#include<
{floatroot(floatx1,floatx2);
floatx1,x2,x;
do
{scanf("
%f%f"
x1,&
x2);
}while(f(x1)*f(x2)>
0);
x=root(x1,x2);
printf("
therootis%f"
x);
floaty;
y=x*x*x-5*x*x+16*x-80;
return(y);
floatxpoint(floatx1,floatx2)
{floaty;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
returny;
floatroot(floatx1,floatx2)
floatx;
{x=xpoint(x1,x2);
if(f(x)*f(x1)<
0)x2=x;
elsex1=x;
}while(fabs(f(x))>
=1e-6);
return(x);
5.最长单词
编写一个自己的函数,能够将一个字符串中最长的单词查找出来。
编写一个程序,功能是能够由键盘输入一行字符,并能调用自己编写的最长单词查找函数,输出这个单词。
chara[1000],b[1000][1000];
inti,k,f;
1000;
a[i]);
b[k][f]=longest(a);
f;
b[k][i]);
charlongest(chara[])
inti,j,f,k,n,y;
charx[1000],b[1000][1000];
n=strlen(a);
if(a[0]!
='
'
for(i=0,f=0;
n;
if(a[i]=='
break;
else
b[0][f]=a[i];
f++;
x[0]=f;
for(i=0,k=0;
if(a[i+1]!
for(j=i+1,f=0;
j<
j++)
if(a[j]=='
b[k][f]=a[j];
x[k]=f;
k++;
y=k;
for(k=0;
k<
y;
k++)
if(x[k]==Max(x,0,y))
return(b[k][f]);
intMax(inta[],intfirst,intn)
intmax;
if(first==n-1)returna[first];
max=Max(a,first+1,n);
if(max<
a[first])
returna[first];
elsereturnmax;
6.勒让德多项式
用递归思想求n阶勒让德多项式的值,该多项式为:
1
n
pn(x)
((2n1)*xpn1(x)(n1)*pn2(x)/n
n1
{floatp(floatx,intn);
floatx,y;
intn;
%f%d"
x,&
n);
y=p(x,n);
%f\n"
y);
floatp(floatx,intn)
if(n==0)
return
(1);
elseif(n==1)
elsey=((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2)/2);
7.角夫猜想
日本数学家角夫提出了以下的猜想:
任意一个自然数,比方奇数,将其乘以3再加
假如是偶数将其除以2;
频频运算。
请大家编写程序,看会出现什么结果?
编写程序功能要求能够不断的输入自然数,遇到输入自然数0时,程序结束。
如
1;
输入:
请输入自然数n:
30
输出:
自然数n依照角夫猜想运算规则变化的各次结果:
1546237035
10653160804020105168。
。
(直到结果收敛,不再
变化)
{intjf(intn);
intn,k;
%d"
n);
k=n;
jf(n);
}while(k!
=0);
intjf(intn)
{intn1;
if(n%2==0)n1=n/2,printf("
%d"
n1);
elsen1=n*3+1,printf("
if(n1!
=n)jf(n1);
8.数学黑洞
任意一个4位自然数(除4个数字完整相同除外,比方
数的各位数字重新摆列,形成一个最大数和一个最小数,
个自然数,重复上述运算,你会发现一个神奇数。
编写程序功能要求能够不断的输入自然数,遇到输入
4444、7777等),,将构成该
以后两数相减,其差依旧为一
0时,程序结束。
7754
自然数n依照以上运算规则变化的各次规律:
(7754,4577,3177)(7731,
1377,6534)(6543,3456,3087)(8730,0378,8352)(8532,2358,6174)。
(直到结果收敛,不再变化)
{intn,max,min;
sort(n);
sort(intn)
{inta[4];
inti,j,temp;
intmax,min;
a[0]=n/1000;
a[1]=n/100-n/1000*10;
a[2]=n/10-n/100*10;
a[3]=n-n/10*10;
3;
for(j=i+1;
if(a[i]<
a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;
max=a[0]*1000+a[1]*100+a[2]*10+a[3];
if(a[i]>
a[i]=a[j];
min=a[0]*1000+a[1]*100+a[2]*10+a[3];
n=max-min;
(%d,%d,%d)"
max,min,n);
9.设计递归途序
任意给定输入的一个小写英文字符串
aaa⋯a
a
123
n-1n(n≥5)
字符串
⋯
An1An-1
2An-2
3
A2
n-1A1n,此中Ai为ai的大写形式
比方,输入aybdx,则递归途序输出
XaDyBbYdAx
10.成绩排名
期中考试快要结束了,老师需要进行年级成绩排名。
排名的规则以下:
以期中考试的均匀成绩为排名依照(满分为
100分);
对学生A,假如一共有K个学生的均匀成绩比
A的均匀成绩高,则学生
A的年级排
名为K+1;
假如学生A和学生B的均匀成绩相同,则他们的排名相同。
要求编写几个函数,分别实现以下的功能:
函数1:
输入10个同学的学号、姓名、均匀成绩
函数2:
按均匀成绩由大到小的序次进行排序,学号、姓名也随之调整,并请依照
上述规则进行排名
函数3:
输入一个同学的学号,能够用折半查找法找出该同学的姓名、均匀成绩、
排名等信息
编写一个程序来使用考据上述函数。
输入、输出格式要求:
(1)
第一行为一个整数
N(1<
N<
200),表示学生的人数。
随后有
N行,每
行有两个非负整数和字符串描述一个学生的信息,挨次为学号、姓名和均匀成绩。
(2)随机输入一个同学的学号,请输出这个同学的姓名、均匀成绩、排名等信息。
假如学号不存在,输犯错误提示信息。
(3)输入学号0000000000时,程序退出。
11.日历计算
请使用已学的知识来编写一个自己的日历计算程序。
功能要求任意输入一个日期(年、月、日),请输出该日期为该年度的第几日、第几周、礼拜几。
请不要使用VC环境供给的日期计算函数。
已知公元1年1月1日为礼拜一。
(以下为选作题,请用递归思想试试编写程序)
12.分书问题
有编号分别为1,2,3,4,5的五本书,准备分给A,B,C,D,E五个人,每一个人阅读兴趣用一个二维数组加以描述:
1i喜爱j书
like[i][j]
1i不喜爱j书
希望你写一个程序,输出全部分书方案,让人人高高兴兴。
假定
5个人对5本书的阅读兴
趣以下表:
书0
书1
书2
书3
书4
人A
人B
人C
人D
人E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 解题