编程练习——c语言编程题精选(1-10题)
上一篇 / 下一篇 2009-02-24 23:03:22 / 个人分类:编程基础
U1JX$l$s]te01、 编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后第三个字母代替该字母,若为其它字符时不变。51Testing软件测试网3P!Z!Qcv
#include <stdio.h>
'OBnT4u$l4U]$}
Q0#include <stdlib.h>
%M!D6_}`7^1`dP2kC0#include <string.h>51Testing软件测试网P~B(SjS
void main()51Testing软件测试网8DXcB*c$}'})b5|-N
{51Testing软件测试网/c!P
C#Q mk
char str[1024];51Testing软件测试网s/kz#nfe)[6A-b:U
int i=0;
L#pp$PZ._mo0 printf("请输入一串字符:");
7L3?pQ9M
M'x{0 scanf("%s",str);
,~&^*l%zIk-g ow-x0 while(str[i]!='\0')51Testing软件测试网c
q gt/V!jQl)Q
{
7hC~RR KT5V-B0 if((str[i]>='a'&&str[i]<='w')||(str[i]>='A'&&str[i]<='W'))51Testing软件测试网5T}0f,w![Am
v:f
str[i]+=3;
SPhC
M ~'G%h'p$x0 else if((str[i]>='x'&&str[i]<='z')||(str[i]>='X'&&str[i]<='Z'))
1f,`I(KlO ce0 str[i]=str[i]-26+3;
o
}"U&aXN-bU0 i++;
{3s1Q6tb:?%D0 }
Nk
Rj}6w#b.d0 printf("加密后的字符串为%s\n",str);51Testing软件测试网)?(w'e^8b];N2xps%|
}
2、 编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
[+h.FU D+r\/d0#include <stdio.h>51Testing软件测试网3MU5Us.}:d5G
#include <stdlib.h>
+G'Jf[5N(fV0#include <string.h>
YJUZFJjy(~G0#include <math.h>
void main()51Testing软件测试网pI(@/c F;cd
{
Iu_.luI0\k0 int inter;51Testing软件测试网?e8eG M Na E
int R;51Testing软件测试网mJd"k!}Nx9d'v
char result[100];
dUq1b U#]glCGv0 int temp1,temp2;51Testing软件测试网1cx*H;J2tz
UW:o
int i;
(UE`1c;t'_|;Y0 int flag;51Testing软件测试网w{&U$r4O3RS6e
printf("请输入一个十进制整数:");51Testing软件测试网d gAW sP
scanf("%d",&inter);51Testing软件测试网a&O DQ2e"s
printf("请输入需要转换的进制数(2-16之间):");51Testing软件测试网]*fR-ed _O;C[
scanf("%d",&R);
.x:_0V Olh
Y4`9et0 if(R<2||R>16)51Testing软件测试网)JcO7i Zp4V
{51Testing软件测试网5F2Utcd&}A:H
printf("输入数据错误");
mx\8HU[0 exit(0);
BOF.v
y8Zt\_2q0 }
4K/]7v O$qV0 if(inter<0)
#d[qJ{"@O"Q0 {
[ q/U/x[H9VHV0 inter=-inter;51Testing软件测试网#Q|-`["ER1|B
flag=1;51Testing软件测试网
~D'u%Sg!a%z0{
W
}51Testing软件测试网:wV'n*apW7t T
temp1=inter;51Testing软件测试网v gK"v$R"]u ~
for(i=0;temp1!=0;i++)
T RV4zL0 {51Testing软件测试网\A Q?7LZ
temp2=temp1%R;
+jMvg1mq4xT#qw0 if(temp2>=10)51Testing软件测试网:mQ7A;y5EpN N
result[i]='A'+temp2-10;
r g(|K9ai` k!Nv#Ep0 else
rMR*^)d!~!D0 result[i]='0'+temp2;51Testing软件测试网"f*fD8g
R&@6m!W
temp1=temp1/R;51Testing软件测试网,Ok!Q3h*\0l*~
}51Testing软件测试网'p3s'Tk;NFi
if(flag==1)51Testing软件测试网 Uv9O_&HVNB.a;B
printf("-");51Testing软件测试网kDUI.p
for(i=i-1;i>=0;i--)51Testing软件测试网:Ak$W(|*~~
printf("%c",result[i]);
t
fB:cW
U+Z*] {b t0 printf("\n");51Testing软件测试网db@.L8l~
}51Testing软件测试网d(W
q _+N$h#b7~
3、 从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
%oB^T+cHf0#include <stdio.h>
1S7CyJ9s8d-j
gd0#include <stdlib.h>51Testing软件测试网:N1\)f
B_8w?GU W ^/_-v
#include <string.h>
IXmz:b2DY0#include <math.h>
void main()51Testing软件测试网6S_K,f9kL
{
?Qp5P'x'^0 int money[9]={10000,5000,1000,500,200,100,10,5,1};51Testing软件测试网-?zX [U
float temp;51Testing软件测试网[q%YDW$N n!~"r
int data;51Testing软件测试网(T$l@c%P
int result[9];51Testing软件测试网x"A QD7V
int i;
6b7d o5]*r3OP },e0 printf("请输入一金额(精确到分):");51Testing软件测试网N1n&l@V
scanf("%f",&temp);51Testing软件测试网+d{} P@3n(o
if(temp<0)51Testing软件测试网Ua
]ohgaKT-f
{
%Zh3Ko%U0 printf("输入金额小于0,错误");
#?+_E A$he%Z(^e0 exit(0);
3ch|#b1I9I3T0 }51Testing软件测试网&Z,Yx1^8i%t5P*^vB,V
A
data=temp*100;
4W$m.M3@DRs.e pX5@'L/j0 for(i=0;i<9;i++)
T\8PjY3M`%j0 {
RA
ZiN6`t-}0 result[i]=data/money[i];
!M)x5w5|&Uy(V9|K0 data=data%money[i];51Testing软件测试网M+gcoue
if(i==6)51Testing软件测试网3_g;s{8Z'B(f
printf("%d角%d张;",money[i]/10,result[i]);
r
y;oL8A*_)k2_0 else if(i>6)51Testing软件测试网8vye#Xp/o!LJ
printf("%d分%d张;",money[i],result[i]);
BX$Q|]LH:`0 else51Testing软件测试网
F4j$s4`Z+A$z7n
printf("%d元%d张;",money[i]/100,result[i]);
J*fDs7y],Mv0 }
Y Q8I"H%i
Q0}
]+{6d7n/t.u_rx@04、 随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。#include <stdio.h>
5m-g:?*[b"|E0#include <stdlib.h>
1vm(UWH
M:R9k0#include <time.h>51Testing软件测试网&}/l*k3V
Q/? b
(yRB
[Y2{EJ"y0void main(void)51Testing软件测试网[0IG$F7bV3Ub3O
{
a1F;h-i0f1a
e'Nt:nV0 int i;
_&S;f8H z0 int inter[20];
,z%ye6p9}:t
x&u0 int max,min,value,sum=0;51Testing软件测试网F`L*@Y(ht
^1K
srand(time(0));51Testing软件测试网UPz1K0az
for(i=0;i<20;i++)
.pYE!cO9Q'CL4^5aO0 {
1V]ga+`%`
I{0 inter[i]=1+(int)(50.0*rand()/(RAND_MAX+10.0));51Testing软件测试网)?SVyW
printf("%d ",inter[i]);51Testing软件测试网x!y.?KU+[5Z
}51Testing软件测试网k*y A6Rywx{0e
max=min=inter[0];
:|,kn{0Av7x0 for(i=0;i<20;i++)
LG*N.H4R?*C0 {51Testing软件测试网6N_iK-y ~y ef
if(max<inter[i])51Testing软件测试网9~$Jw{m$g!_m
max=inter[i];51Testing软件测试网 c.UW{!O
if(min>inter[i])
S+t:}Bv,L F;f~"I0 min=inter[i];51Testing软件测试网&WSF'Y0_+YJ0a6e
sum+=inter[i];51Testing软件测试网.|4W2i$ZT
}
i H5C4E-p$s+r(\0 value=sum/20;
1P"Rkm(Z0 printf("最大值是%d,最小值是%d,平均值是%d,各元素之和是%d\n",max,min,value,sum);51Testing软件测试网U$iBj"|i6qt
}
he5^5Q]05、 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
;rE.b#Aa0#include <stdio.h>51Testing软件测试网G+J H%\3l%D4D$R6^
#include <stdlib.h>51Testing软件测试网p/bnH^
#include <time.h>
void main()51Testing软件测试网L+kr6Y1O.W6s9VCj
{
Rn*~4n%UC%C0 char str[]={"ASEEsdffw WEsdfe joiejorjerojeojr ASOJGWOEJIOJERJJ wejr"};
a#DH7aT*y0 int len=0;
rk%~TT0 int temp;
.Gd2Tg,N0[6EIq0 int point;
H2o2^jl(iu)Wt0 int i=0;51Testing软件测试网0]q'n4QJ+G6@9vQ*g
while(str[i]!='\0')
XxJ8W@Ns9d0 {51Testing软件测试网Tw]_8Z8HJF
temp=0;51Testing软件测试网e }1v;E}@Z
while(str[i]!=' '&&str[i]!='\0')51Testing软件测试网o'Y+OYT;w
S
{
^,d@P4L%hM0 temp++;
sHE0H
`b0 i++;
]e!V;At
D(Vbp)T0 }51Testing软件测试网Td+Ff{/Vp
if(len<temp)
7g L#]+Fy0 {51Testing软件测试网;f5m3m&V8r/S(N
len=temp;
0o"o
BYTfYT0 point=i-len;
@)K`J,G
u$c0 }51Testing软件测试网BX`3n GBuG#ga0DH%c
if(str[i]=='\0')51Testing软件测试网g"u,{!P;OT"f
break;
2X1Nw}-]Ca0 else
@3d/W/H%z'dKWR0 i++;51Testing软件测试网{-_
c9gi
}51Testing软件测试网,^.~;t-V.G_6t
while(str[point]!=' '&&str[point]!='\0')
usiR$[W0 {
9` hY ^1ky/j,T^Gl{0 printf("%c",str[point]);51Testing软件测试网L/_|D%t5D!r5t
point++;
v`TC#U~%`N9\x0 }51Testing软件测试网9~4sG,l1kD
printf("\n");51Testing软件测试网v UHI9[
}51Testing软件测试网
[q @3gP_TC(G
6、 模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。51Testing软件测试网z'c?y rS.aF
-C0x-Aq6kL*ID0#include <stdio.h>
IRm$au\ U2JO0#include <stdlib.h>51Testing软件测试网3XJ1UW4].w;Z ZL
#include <time.h>
G`H$?m!Y0#define N 10051Testing软件测试网9C9]K,M A-h
void main()51Testing软件测试网5ph9Wr2A3|
{51Testing软件测试网0x5Bmj1L&cb ^
int num[5]={0,0,0,0,0};51Testing软件测试网$e3VF(UzF#j{
int temp;51Testing软件测试网 X)c7u%nQ u%Y
int i,j;51Testing软件测试网y:h%[S@/Y]3F
char str[]={"ABCD0"};51Testing软件测试网#@bz
JJ6t
srand(time(0));51Testing软件测试网'n&De?-G:u2x
for(i=0;i<100;i++)
tN,pF_Ef0 {51Testing软件测试网S.d:KGC!su1~o
temp=1+(int)(5.0*rand()/(RAND_MAX+1.0));
r'N2t yRML2O0 printf("%d ",temp);51Testing软件测试网H iVEN:R@K
switch(temp)
_"U$MlGr8}"M
u0 {51Testing软件测试网}a3S:y+XJA7kUM\
case 1:51Testing软件测试网!N#P:fh/g!bLq
num[0]++;51Testing软件测试网
nfJ%GaxT
break;
TH^o-ycx4S]0 case 2:
X5Q$A]fF'qRdj$D&I(@0 num[1]++;51Testing软件测试网:u/q"^ z4mG"P-G
break;
2g&q1D7Jw0 case 3:51Testing软件测试网 _x1EmYC
num[2]++;51Testing软件测试网8sf%?dqD0_
break;
AA AY~u0c@0 case 4:
#j,UD9M7Y1@0 num[3]++;51Testing软件测试网L*MHvP\}
break;
B"{)w]9{a+P0 case 5:51Testing软件测试网;u{j3Yh [+rI c9M
u
num[4]++;
C|*ZK"Q5QLq3V2j0 break;51Testing软件测试网-k vE*M@'~Wj
}51Testing软件测试网Z7pZuAC"W;Z!s
}
_1K[nN2y2Vv0 for(i=0;i<4;i++)
(G:j^
c8U N`0 {51Testing软件测试网+f6S]Z6t
for(j=i+1;j<5;j++)51Testing软件测试网6fT
g0zlJE
{
J6Og
A E.Z8d0 if(num[i]<num[j])51Testing软件测试网3O.dZ:PM'x0eL:Q
{51Testing软件测试网o/I Sq[Ul
temp=num[j];51Testing软件测试网5['O}X0@(`Se
num[j]=num[i];51Testing软件测试网
y7i+]7Cs)r Y h.N
num[i]=temp;
SqY!}p\1r+C0 temp=str[i];
eZ-D4why5A3a0 str[i]=str[j];51Testing软件测试网m uF9N'C2G#w
str[j]=temp;51Testing软件测试网wIT/YAuB&U/Z9g
}51Testing软件测试网l~t{7@8]&K*t&J[
}
axlVN
^#be*LI0 printf("\n编号为%c,得票数为%d",str[i],num[i]);51Testing软件测试网BY1n7gaV@1`Z
}
n6kF ]
I{-u0}51Testing软件测试网Z+qRB$C/A
xd4W
'{/}(|ksu/d07、任何一个自然数m的立方均可写成m个连续奇数之和。例如:51Testing软件测试网H.JW WN2h2U
1^3=1
R}
@{g5~a5[p0 2^3=3+5
#l O
e,k5a:E&ifC0]p0 3^3=7+9+11
m9u.VFV L y.i0 4^3=13+15+17+19
pl.C6_!e LIS(B0编程实现:输入一自然数n,求组成n3的n个连续奇数。
6W
z,ho8}:v
l1r?(y&])}0#include <stdio.h>51Testing软件测试网a6Q,v4O2|
#include <stdlib.h>51Testing软件测试网uZwW
fZ[O_l
#include <time.h>
rQ$w3Mo0void main()51Testing软件测试网*{{[s7Nw
{51Testing软件测试网!k}(l D4Bd
int num;
h"Kz;hZ0 int i;
l-L-B\;RY e%?s!T%~0 int first;51Testing软件测试网 T;Y-KZ9L&nH!y
int n;
6Q`N#f]&A5NH0 printf("输入一个自然数:");51Testing软件测试网ov6_)@+L*K@dZ
scanf("%d",&n);