展望2011

编程练习——c语言编程题精选(1-10题)

上一篇 / 下一篇  2009-02-24 23:03:22 / 个人分类:编程基础

U1JX$l$s]te01、 编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后第三个字母代替该字母,若为其它字符时不变。51Testing软件测试网3P!Z!Qcv
#include <stdio.h>
'OBn T4u$l4U ]$} Q0#include <stdlib.h>
%M!D6_}`7^1` dP2kC0#include <string.h>
51Testing软件测试网P~B(SjS

51Testing软件测试网 j@ wF/B

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?p Q9M M'x{0 scanf("%s",str);
,~&^*l%zIk-go w-x0 while(str[i]!='\0')51Testing软件测试网c qgt/V!jQl)Q
 {
7hC~R R 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;
S PhC M ~'G%h'p$x0  else if((str[i]>='x'&&str[i]<='z')||(str[i]>='X'&&str[i]<='Z'))
1f,`I(Kl Oce0   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%|
}

Q$f'P K#GU ba#J051Testing软件测试网:E6X*TKr

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>

V6Y S,fv)D051Testing软件测试网@S oo/Z$xe

void main()51Testing软件测试网pI(@/c F;cd
{
Iu_.lu I0\k0 int inter;51Testing软件测试网?e8eGMNa E
 int R;51Testing软件测试网mJd"k!}Nx9d'v
 char result[100];
d Uq1b U#]glC Gv0 int temp1,temp2;51Testing软件测试网1cx*H;J2tz UW:o
 int i;
(UE`1c;t'_|;Y0 int flag;51Testing软件测试网w{&U$r4O3RS6e
 printf("请输入一个十进制整数:");51Testing软件测试网dgA WsP
 scanf("%d",&inter);51Testing软件测试网a&O DQ2e"s
    printf("请输入需要转换的进制数(2-16之间):");51Testing软件测试网]*fR-ed _O;C[
 scanf("%d",&R);
.x:_0VOlh Y4`9et0 if(R<2||R>16)51Testing软件测试网)JcO7iZp4V
 {51Testing软件测试网5F2Utcd&}A:H
  printf("输入数据错误");
mx\8H U[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软件测试网:w V'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;y5EpNN
   result[i]='A'+temp2-10;
r g(|K9ai` k!Nv#Ep0  else
rMR*^)d!~!D0   result[i]='0'+temp2;51Testing软件测试网"f*f D8g R&@6m!W
  temp1=temp1/R;51Testing软件测试网,Ok!Q3h*\0l*~
 }51Testing软件测试网'p3s'Tk;NFi
 if(flag==1)51Testing软件测试网 Uv9O_&HVNB.a;B
  printf("-");51Testing软件测试网kDU I.p
    for(i=i-1;i>=0;i--)51Testing软件测试网:Ak$W(|*~ ~
  printf("%c",result[i]);
t fB:cW U+Z*]{bt0 printf("\n");51Testing软件测试网db@.L8l ~
}
51Testing软件测试网 d(W q _+N$h#b7~

51Testing软件测试网 [u;Mu6qs2aO

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>

@ D-Gw@+ezIli051Testing软件测试网IsI w!B7]O

void main()51Testing软件测试网6S_K,f9k L
{
?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.ep X5@'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;o L8A*_)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 }
YQ8I"H%i Q0}

b8b!?'|e'dCp(P0

]+{6d7n/t.u_r x@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];
:|,k n{0Av7x0    for(i=0;i<20;i++)
LG*N.H4R?*C0 {51Testing软件测试网6N_i K-y ~yef
  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"Rk m(Z0 printf("最大值是%d,最小值是%d,平均值是%d,各元素之和是%d\n",max,min,value,sum);51Testing软件测试网U$iBj"|i6q t
}

v0zrJ)^1o.Z0kWQO+hx0

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>

g$qc{5e,e8@.N051Testing软件测试网J9C3GO"C l

void main()51Testing软件测试网L+kr6Y1O.W6s9VCj
{
Rn*~4n%UC%C0 char str[]={"ASEEsdffw WEsdfe joiejorjerojeojr ASOJGWOEJIOJERJJ wejr"};
a#DH7a T*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)
7gL#]+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'dK WR0   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软件测试网vUHI9[
}
51Testing软件测试网 [q @3gP_TC(G

51Testing软件测试网@+u4wkI%c|

6、 模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。51Testing软件测试网z'c?y r S.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 100
51Testing软件测试网9C9]K,M A-h

51Testing软件测试网wg\7V-v4Z

void main()51Testing软件测试网5ph9Wr2A3|
{51Testing软件测试网0x5Bmj1L&c b^
 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,p F_Ef0 {51Testing软件测试网S.d:K GC!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[+rIc9M u
   num[4]++;
C|*ZK"Q5QLq3V2j0   break;51Testing软件测试网-kvE*M@'~Wj
  }51Testing软件测试网Z7p ZuAC"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 Yh.N
    num[i]=temp;
Sq Y!}p\1r+C0    temp=str[i];
eZ-D4why5A3a0    str[i]=str[j];51Testing软件测试网m uF9N'C2G#w
    str[j]=temp;51Testing软件测试网wI T/YAuB&U/Z9g
   }51Testing软件测试网l~t{7@8]&K*t&J[
  }
axlVN ^#be*LI0  printf("\n编号为%c,得票数为%d",str[i],num[i]);51Testing软件测试网BY1n7ga V@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
#lO e,k5a:E&if C0]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,h o8}:v l1r?(y&])}0#include <stdio.h>51Testing软件测试网a6Q,v4O2|
#include <stdlib.h>51Testing软件测试网uZwW fZ[O_l
#include <time.h>

Yn"p(C}m|"j1y.E0

rQ$w3Mo0void main()51Testing软件测试网*{{[s7Nw
{51Testing软件测试网!k}(l D4Bd
 int num;
h"Kz;hZ0 int i;
l-L-B\;RYe%?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);
d*?W1b)[ex#g0 if(n<0)
6^E'd6s0di3u+M,S \0 {51Testing软件测试网 p0I.Wo,lG(m
  printf("输入数据有错误");
+}B{1o&b7^? X0  exit(0);
8}#_Bl:Hla@A0 }51Testing软件测试网T0iU2k&n
 num=0;
a2n'F#{6R]'U0 for(i=1;i<n;i++)
"HoV-g C3g G0  num+=i;
d\,jP7s8cV!cf0 first=num*2+1;51Testing软件测试网4Yg*\e-@:KS
 printf("组成%d的立方的%d个连续奇数为:",n,n);51Testing软件测试网!p![#ry6FbQ
    for(i=0;i<n;i++)51Testing软件测试网ZDw(i{J&o
  printf("%d ",first+2*i);51Testing软件测试网"[,g7GCH)J;i*u,Z$[*^?
}

8Z B8@ \c;y^051Testing软件测试网,k)Y5U9WeNV6@-m l

8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。51Testing软件测试网$ep;LX jx u8e-yr
#include <stdio.h>51Testing软件测试网e-OO9UK
#include <stdlib.h>51Testing软件测试网,X0Xv.a*wp
#include <time.h>

+`(QY}/k xxBl0

?$Y1rY _H R0void main()
|!i \ w$wj wBZ0{
$A2K-Jm2cLY7[0 int a,b,c;51Testing软件测试网5M:o4O B4dd3b?\
 int temp;
:]w p _5YpL0 for(a=1;a<10;a++)51Testing软件测试网)f a`YN;o:Rl#j
 {51Testing软件测试网T8ir9]/ziw%Z4t(M`
  for(b=0;b<10;b++)
.FS;X5F8MB0   for(c=1;c<10;c++)51Testing软件测试网-d)Z8Ln*Qb
    if((temp=a*100+b*10+c+c*100+b*10+a)==1333)
)xIhB5n ou/x0     printf("a=%d,b=%d,c=%d\n",a,b,c);51Testing软件测试网@%YJCI*C
 }51Testing软件测试网H!pfe ^8["`xhM
}
51Testing软件测试网5KN YtQ.\+L(n

hS6t#qUA1E?09、编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
] a{3}'g@os#[g0#include <stdio.h>
*eo yB/R W@9h T0#include <stdlib.h>
B?6x{*?0#include <time.h>

)b1d&dd$O4yOs0

@9\:{$v)f{ oG'f X0void main()
.Y.y4Tf)a0{
0j@9nQUWD)M|0 char ch;51Testing软件测试网Sq6Y!Uv"e+]+x
 float a,b,result;51Testing软件测试网SB7D\cr
 printf("请输入两个数和操作符(例如46+78):");51Testing软件测试网HS-S^}
 scanf("%f%c%f",&a,&ch,&b);
!XD$J$R^ y0 switch(ch)51Testing软件测试网,N _Z'Y JhU,|
 {
0dQ"NG]K oh0 case '+':result=a+b;break;51Testing软件测试网 @'\z| pqg_zJ
 case '-':result=a-b;break;51Testing软件测试网7G;j:S/}-U;YrM0O0z
 case '*':result=a*b;break;51Testing软件测试网4|~?[5y2Ah9_,z
 case '/':result=a/b;break;
kC3\+j F4w:[6o z!H;u0 default:printf("输入操作符错误");exit(0);51Testing软件测试网,I,cIrb&M
 }
0~VCiC&\0    printf("运算结果为%.2f\n",result);51Testing软件测试网5s6D9P0zQ
}

8P RRn:n9ph051Testing软件测试网/XFrJl'@

51Testing软件测试网8oI|U Ft!`9t
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
:ld n%_\8j0如输入:56439,输出:5位数
3q#aD1VAy0W0          5,6,4,3,9 
4J8^Fd:p#F6PA#a0                9,3,4,6,5
51Testing软件测试网Oq jCWD9e8UQm
#include <stdio.h>51Testing软件测试网E)Km#IhNq
#include <stdlib.h>51Testing软件测试网;RB0X p$]/g
#include <time.h>
D5P9YC u0#include <math.h>

R5rHJS051Testing软件测试网AS{ @$m

void main()51Testing软件测试网LM\xQ/y%F
{51Testing软件测试网_ }mcJ
 int n=0;51Testing软件测试网2vy~U*Bj,u
 int inter;51Testing软件测试网5mR(]&Fu!Bb
 int ys;51Testing软件测试网3U#O2t q4fA#j
 int num[5];
:V*x'm7A`P0 int i;51Testing软件测试网^"`F \C+r
    printf("请输入一个5位以内的正整数:");
S0h(J/_*iU0 scanf("%d",&inter);
v(]&y4h'T2vkGW`0 if(inter<=0||inter>99999)51Testing软件测试网s"gF3Q sg7r'e'K
 {51Testing软件测试网S&m{(E;l7K)f?m
  printf("输入错误");
&W7c3Q2v|} o} r!f0  exit(0);51Testing软件测试网#iz9v u8n
 }51Testing软件测试网 Id^6O6R3W$P\.i
 for(i=0;i<5;i++)
P z q x}e%`;c)r0 {
#j/[ jci y1Ia4_0  if(inter/int(pow(10,4-i))!=0)51Testing软件测试网-Fk/M[1\6p5Yq)s
   break;
#Tb n}u9xk0 }
?zZS{SKY0 n=5-i; //位数51Testing软件测试网|#K*s w+]o)A%T _
    printf("%d位数\n",n);51Testing软件测试网`%e&Hc-vW^{
 ys=inter; //余数
Uf3}N'Uuv0 for(i=0;i<n;i++)51Testing软件测试网 O"l3I.A2] hvH
 {
-E`tAUW0  num[i]=ys/int(pow(10,n-i-1));
Y+fch9PZ0  ys=ys%int(pow(10,n-i-1));
;i1v"{$T0X0 }51Testing软件测试网7l+i']c3neb
    for(i=0;i<n;i++)51Testing软件测试网]%r*u&zwZ D#rSR
  printf("%d ",num[i]);
Lu)E0`6RzH&DkD0 printf("\n");51Testing软件测试网)i:K@B X,O
 for(i=n-1;i>=0;i--)
2\nka%gj0  printf("%d ",num[i]);
!Tt?W]s/?)r_ c0}
(JFvh.e{ z-d:f6Y0

1}ke Vy+P j0

TAG:

引用 删除 罗成   /   2011-12-23 17:30:54
5
兜里有糖 引用 删除 yoyonickyoyo   /   2009-03-09 11:27:07
好好得看呵呵,谢谢哦
 

评分:0

我来说两句

Open Toolbar