王红c语言程序Word文档下载推荐.docx
《王红c语言程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《王红c语言程序Word文档下载推荐.docx(112页珍藏版)》请在冰豆网上搜索。
b=(d-a*100)/10;
c=d-a*100-b*10;
a<
"
"
b<
c;
第4题:
输入三个数给a、b、c,然后交换,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。
123
312
#include<
{floata,b,c,x,y;
a>
b>
x=a;
y=b;
b=x;
c=y;
第5题:
有一分段函数如下,请编写程序,输入x值,输出y值。
-2
7
1
2
11
0.222681
math.h>
{floatx,y;
x;
if(x<
=-1)
y=3.0*sqrt(fabs(x)+2.0)+1.0;
else
=10)
y=pow(x,5)+1.0;
else
y=sqrt((x+1.0)/(2.0*pow(x,2)));
y;
输入5个小写字母,将其译成密码。
密码规律是:
用原来的字母后面第4个字母代替原来的字母。
例如,输入“ahoux”,‘a’->
‘b’->
‘c’->
‘d’->
‘e’,所以字母‘a’后面第4个字母是‘e’,用‘e’代替‘a’;
字母‘x’后面不足4个字母,则从‘a’开始补充,‘x’->
‘y’->
‘z’->
‘a’->
‘b’,所以字母‘x’后面第4个字母是‘b’,用‘b’代替‘x’。
因此,“ahoux”应译为“elsyb”。
ahoux
elsyb
stdio.h>
{chart1,t2,t3,t4,t5;
t1=getchar();
t2=getchar();
t3=getchar();
t4=getchar();
t5=getchar();
if(t1>
'
v'
)
t1=t1-22;
t1=t1+4;
if(t2>
t2=t2-22;
t2=t2+4;
if(t3>
t3=t3-22;
t3=t3+4;
if(t4>
t4=t4-22;
t4=t4+4;
if(t5>
t5=t5-22;
t5=t5+4;
putchar(t1);
putchar(t2);
putchar(t3);
putchar(t4);
putchar(t5);
输入一个不多于5位的正整数,要求分3行输出以下信息,第1行输出它是几位数;
第2行从高位到低位依次输出每一位数字(以空格分隔,下同);
第3行从低位到高位依次输出每一位数字。
32100
5
32100
00123
40
2
4
0
04
{inta[20],i=0,x,j;
while(x!
=0)
a[i]=x%10,x=x/10,i++;
i<
endl;
for(j=i-1;
j>
=0;
j--)
a[j]<
;
for(j=0;
j<
i;
j++)
输入五级制成绩(A~E),输出相应的百分制(0~100)区间。
要求用switch语句。
五级制对应的百分制成绩区间为:
A(90~100)、B(80~89)、C(70~79)、D((60~69))、E(0~59)。
B
80~89
{chara;
a;
switch(a)
{case'
A'
:
cout<
90<
~"
100;
break;
case'
B'
80<
89;
C'
70<
79;
D'
60<
69;
E'
0<
59;
求数列
计算该序列的前n项和,n由键盘输入。
2.5
{floats=1,i,x,n,j;
n;
for(i=1;
=n;
i++)
{x=1;
for(j=1;
=i;
x=x*j;
s=s+1.0/x;
s;
-1
-1.4597
0
1.57
0.999999
y=2*x+cos(x);
elseif(x>
=1)
y=sin(x)*sin(x);
y=1.0/pow((x+1)*(x+1),1.0/3.0);
有一分数序列,
20
32.6603
{floatsum=0,x=1,y=2,z,i=0,n,s;
while(i<
n)
{z=y/x;
sum+=z;
s=x,x=y,y=s;
y=x+y;
i++;
sum;
输入一批整数(以零或负数为结束标志),求其中的偶数和。
14679190
10
{inta,b,sum=0;
while(a>
0)
{b=a%2;
if(b==0)
{sum+=a;
输入一个正整数n,求其位数及各位数字之和并输出。
14562
518
{intn,i=0,sum=0,t1;
while(n!
{t1=n%10;
sum+=t1;
n=n/10;
计算该序列的和,直到最后一项的绝对值小于e为止,e由键盘输入。
1E-4
0.866924
{floats=1.0,a=1.0,b,i=1.0,c,d;
do
{a=a+4;
b=pow(-1,i)*1/a;
s=s+b;
c=1/a;
while(c>
d);
s=s-b;
编写程序求a+aa+aaa+aaaa+…+aaa…a(n个a)之和,其中a和n由键盘输入。
85
98760
{inta,n,sum=0,i=0,x=0,b=10;
{x=x+a*pow(b,i);
sum=sum+x;
第6题:
计算s和n,直到s大于0.97为止。
s=1/(1*2)+1/(2*3)+1/(3*4)+…+1/(n*(n+1))
0.97058933
{floatf1=1.0,f2=2.0,f3,f4,s=0.0;
intn;
while(s<
=0.97)
{f3=1/(f1*f2);
s=s+f3;
f4=f1;
f1=f2;
f2=f1;
f2=f1+1;
n=f1-1;
s<
哥德巴赫猜想指出:
任何一个不小于6的偶数都可以表示为两个素数之和。
例如:
6=3+38=3+5…50=3+47。
从键盘输入n(n>
=6),输出对应的表达式(只输出在所有可能的表达式中第一个素数最小的那个表达式,例如:
10=3+7,10=5+5,10=7+3中只输出第一个表达式10=3+7)。
10=3+7
{intn,a,b,i;
intsum(int);
for(i=2;
{a=sum(i);
b=sum(n-i);
if(a==1&
&
b==1)
n<
="
+"
n-i;
intsum(intx)
{intj,k;
j=2,k=sqrt(x);
while(j<
=k)
{if(x%j!
=0)j++;
elsebreak;
if(j==k+1)
return1;
有三个不同的数字(其中没有零),用它们可能组合的所有各个三位数的和都是2886。
如果把这三个数从大到小和从小到大依次排列成两个三位数,其差是495。
请求出这三个数字各是什么?
(按数字从小到大输出)
247
{inta,b,c,x,y,z,i;
for(a=1;
=9;
a++)
for(b=1;
b++)
for(c=1;
c<
c++)
{intflo(int,int,int);
x=a,y=b,z=c;
x=x>
y?
x:
z?
z;
y=y>
y:
i=flo(x,y,z);
if(i!
=0&
x!
=y&
y!
=z&
=z)
}
intflo(intx,inty,intz)
{intm,n,i;
m=(x+y+z)*200+(x+y+z)*20+(x+y+z)*2;
n=x*100+y*10+z-(z*100+y*10+x);
i=z*100+y*10+x;
if(m==2886&
n==495)
returni;
elsereturn0;
编写函数fun(num),其中num是一个n位数,函数功能是:
求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。
9
6734
734
1000
10101
101
intmain()
{intx,y;
intfun(int);
y=fun(x);
return(0);
intfun(intn2)
{intn1,f,g=0,n3;
n3=n2;
if(n2<
10)
{f=0;
returnf;
{while(n2!
{n1=n2%10;
n2=n2/10;
g++;
f=n3-n1*pow(10,(g-1));
编写函数,函数功能是:
判断输入的字符是否为数字字符。
如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。
5
YES
B
NO
{chart1;
intt2;
t2=fun(t1);
if(t2==1)
YES"
NO"
intfun(intx)
{inty;
if(48<
=x&
x<
=59)
{y=1;
returny;
{y=0;
编写函数求Fibonacci数列中大于k的最小数。
k由键盘输入,输入输出均在主函数中完成。
1000
1597
{intk,z,a=2,b=3;
k;
if(k==1)
2"
if(k==2)
3"
{intsh(int,int,int);
z=sh(a,b,k);
intsh(inta,intb,intk)
{intc;
while(b<
{c=a+b;
a=b;
b=c;
return(b);
编写程序求m和n之间(包括m和n,m<
=n)所有素数的平方根之和。
要求使用函数,函数功能是:
判断某一个数是否为素数。
m和n由键盘输入,要求输入输出均在主函数中完成。
100999
3157.48
{intm,n,a,c;
floatt,s=0;
m>
for(a=m;
c=fun(a);
t=sqrt(c);
s=s+t;
{intj=1,gs=0,f=0;
=x)
{if(x%j==0)gs++;
j++;
if(gs==2)
returnx;
输入两个正整数m和n,编写程序求其最大公约数和最小公倍数。
1525
575
{intm,n,r,t1,t2;
t2=m*n;
if(m>
{r=m%n;
while(r!
{m=n;
n=r;
r=m%n;
t1=t2/n;
t1;
r=n%m;
while(r!
{n=m;
m=r;
}t1=t2/m;
m<
输出所有大于给定数n的“水仙花数”,n由键盘输入。
所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
例如,153是一个“水仙花数”,因为153=13+53+33。
100
153370371407
{intm,b,s,g,a;
for(g=0;
g<
g++)
for(s=0;
s++)
{m=b*100+g*10+s;
if((m>
a)&
(b*b*b+g*g*g+s*s*s==m))
一个数恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1、2、3,并且6=1+2+3,因此6是“完数”。
编写程序找出小于给定数n的所有“完数”,n由键盘输入。
628496
{inti,n,a,j,S=1;
{for(j=2;
{a=i%j;
if(a==0)
S+=j;
if(S==i)
S=1;
输入一行字符,以字符0作为结束标志,输出这行字符对应的ASCII码值之和。
ABCDE0
335
{inta,s=0;
a=getchar();
while(a!
='
0'
{s=s+a;
编写程序,从n个整数中找到最小的数并输出。
输入分2行:
第一行为n的值,第二行为n个整数。
15320
{floati,n,a,b,x;
i=1;
{cin>
b;
if(a>
b)
x=a,a=b,b=x;
其中分母为n以内(包括n)的素数,计算该序列之和,n由键盘输入。
1.17619
{intn,i,j,f;
floats;
s=0;
{f=1;
j=2;
=sqrt(i))
if(i%j!
break;
if(f==1&
i!
s+=1.0/i;
第7题:
输入一行字符,以回车结束,统计出其中英文字符、数字字符、空格和其它字符的个数。
aB()1*
21
13
{charm1;
inty,s,k,q;
m1=getc