展望2011

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

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

Se h5A8?Yg|[uZ p01、 编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中的其后第三个字母代替该字母,若为其它字符时不变。51Testing软件测试网!C?!ZR7xm*w#r
#include <stdio.h>
MGb4zZ7R/J0#include <stdlib.h>51Testing软件测试网~0[ mi U:\nw
#include <string.h>
51Testing软件测试网q4o1aC2aw:d8Y\x,aln

51Testing软件测试网 R.E5S5B{dI'}"fo

void main()51Testing软件测试网7jU,\$Vm:{7Mwc
{51Testing软件测试网Y p%s4y j eZz6SJ
 char str[1024];51Testing软件测试网z+pv H3G.K0~z
 int i=0;
$vv2A ?2q#E ~0]0 printf("请输入一串字符:");51Testing软件测试网5n~h5U0ps5?^
 scanf("%s",str);51Testing软件测试网T#@+K8e3N
 while(str[i]!='\0')
@L)WWKS1TASx0 {
caRf*o1NBp k0  if((str[i]>='a'&&str[i]<='w')||(str[i]>='A'&&str[i]<='W'))
0v"NEly%W{0   str[i]+=3;
8M XMivv0|0  else if((str[i]>='x'&&str[i]<='z')||(str[i]>='X'&&str[i]<='Z'))51Testing软件测试网8{0X!E]2N+w"oy7q
   str[i]=str[i]-26+3;
R!Z H]O0  i++;51Testing软件测试网D] |O @*](r
 }
OGD\-P0e0?#{g0 printf("加密后的字符串为%s\n",str);
OD~n f h}:DH S f0}
51Testing软件测试网h#B/kp\/o$m$c:p)_

51Testing软件测试网Y9XG2S*P[8e3qR

2、 编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。51Testing软件测试网a&}e5RP(s
#include <stdio.h>51Testing软件测试网#E4l/oiK%p"{ L!c
#include <stdlib.h>
e+tP)a&`[ ?P`0#include <string.h>51Testing软件测试网?@(nm$Q(vde7MA1\
#include <math.h>
51Testing软件测试网9n^:ic-z4B

51Testing软件测试网vQ$K/k5Jw'f;P

void main()51Testing软件测试网0p`#F\#yIf e*w
{51Testing软件测试网Q6W;bV Z6u g
 int inter;
-Z:{!f"p)x0 int R;
Hl%Ais x0 char result[100];
hD8d#@-eC0E0 int temp1,temp2;51Testing软件测试网FYi4v+k.bs%v%Y
 int i;51Testing软件测试网;^;JN$vNV}
 int flag;51Testing软件测试网vFW5~ ka.o8P2V
 printf("请输入一个十进制整数:");
hm*h/}e t]@0 scanf("%d",&inter);51Testing软件测试网(a{ZF`/q2Gi
    printf("请输入需要转换的进制数(2-16之间):");51Testing软件测试网N_FEw PJl-\
 scanf("%d",&R);51Testing软件测试网0Eq0Ero BL T
 if(R<2||R>16)51Testing软件测试网[K`sY?\7|
 {51Testing软件测试网JjV3X8|
  printf("输入数据错误");
F5C yN)n2aL K0  exit(0);
:R{ EE9z[/Nm1y0 }51Testing软件测试网 p;zbfD4a
 if(inter<0)51Testing软件测试网O ~ m{9\n
 {
"C)o(Xo0Y*M$Vc0  inter=-inter;51Testing软件测试网*qxA'N.c dT0^[Y
  flag=1;
D-^| @wj kc0 }51Testing软件测试网 `4Y$H0| T)PQ/R.Q3i:yM
 temp1=inter;51Testing软件测试网L*ess(I$b
 for(i=0;temp1!=0;i++)51Testing软件测试网|,k1]*^4i~1_x BD P
 {51Testing软件测试网gHF#~-B\]3IP
  temp2=temp1%R;51Testing软件测试网 Hl sl&Y:Txv;Prd
  if(temp2>=10)
\D,c4_-L[+?P c0   result[i]='A'+temp2-10;51Testing软件测试网rHB8@g$n0@
  else51Testing软件测试网p Vd'|D(N&q
   result[i]='0'+temp2;51Testing软件测试网 i4BgM#Co&K
  temp1=temp1/R;51Testing软件测试网/EmlkH%z:B&G]m
 }
e.{sA3i?#i0 if(flag==1)
8}N zP#~H)|l+p0  printf("-");51Testing软件测试网PGL7j~$v6vs
    for(i=i-1;i>=0;i--)51Testing软件测试网Wj%_g5E!`*T
  printf("%c",result[i]);
dn s#]$K(c#o!rs0 printf("\n");
V6yEyE1bg6L7F0}

yE\8|eV [051Testing软件测试网6_-X8Eh-Ha0W

3、 从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
a,xf` f%r4Sa0#include <stdio.h>
jfjO_\$~y!GZ*|2V*C9r0#include <stdlib.h>51Testing软件测试网:OI ])],xB*E3AD*l
#include <string.h>
uOF T k$r5f0#include <math.h>
51Testing软件测试网5Q*p;N s5D^/S7~-C

51Testing软件测试网!F L j3|X"t*?B"D Y Q

void main()51Testing软件测试网O%Cn.Oa
{51Testing软件测试网S"uwBq
 int money[9]={10000,5000,1000,500,200,100,10,5,1};51Testing软件测试网!ee PZ6I!u
 float temp;51Testing软件测试网8^|"lzY4N
 int data;51Testing软件测试网M`X?nK._/V^*i,j
 int result[9];
7MCK*p,u^'p F0 int i;51Testing软件测试网9\$r4O+ynCi6C
 printf("请输入一金额(精确到分):");51Testing软件测试网A'Vh9Pd Ok
 scanf("%f",&temp);51Testing软件测试网o1g)X4cfp
 if(temp<0)51Testing软件测试网L2Z j.] T4OF"]"E;M
 {
FS?`4fz6E r0  printf("输入金额小于0,错误");51Testing软件测试网\V'e$U5[
  exit(0);
Jdn1gYj$g0 }51Testing软件测试网(QDf+V+b
    data=temp*100;
Pp2i:ad0    for(i=0;i<9;i++)51Testing软件测试网5X6P:gER:w
 {51Testing软件测试网ST4iJ8Uv
  result[i]=data/money[i];
gb8mCN0  data=data%money[i];51Testing软件测试网R3J|b l!z
  if(i==6)51Testing软件测试网)Q;BpdM/f?6L
   printf("%d角%d张;",money[i]/10,result[i]);51Testing软件测试网wS!U*dF&gT(RPQ
  else if(i>6)
B"K,D:\nA0   printf("%d分%d张;",money[i],result[i]);51Testing软件测试网,f}!`k*r?B
  else51Testing软件测试网`B:a#x:t+eR&j
            printf("%d元%d张;",money[i]/100,result[i]);
p*^9g,cZ!d*nWi0 }51Testing软件测试网g7u#z6w.Be7Q
}

;YTn H*`K-O }v8\8i0

w;ds#xz'xR04、 随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。#include <stdio.h>51Testing软件测试网+^K;i^6kA _
#include <stdlib.h>51Testing软件测试网 W8j-K9Hg2O
#include <time.h>

\p3yt7l0

LE#e Uo_-M4\h6B0void main(void)51Testing软件测试网e8t2rR5M(h)c2m
{51Testing软件测试网1fm's"l+Ng
 int i;51Testing软件测试网dd'S t"M6|
 int inter[20];51Testing软件测试网d5B W$CLU!A8I
 int max,min,value,sum=0;51Testing软件测试网)h_P+y5T,f1b6~
 srand(time(0));
s;M3JB_$k${tG0 for(i=0;i<20;i++)51Testing软件测试网Z ?:Z1Pr u!fY/z
 {
1vlV1O%u0  inter[i]=1+(int)(50.0*rand()/(RAND_MAX+10.0));51Testing软件测试网'X1e j{(O]2uE4aD
  printf("%d ",inter[i]);51Testing软件测试网LaZ_/`:F0t]U&Q
 }
pX x/|;JGQ:]?B6~0 max=min=inter[0];
Mi(bG9Z D`/['O2i0    for(i=0;i<20;i++)51Testing软件测试网.Pj/B0z?
 {
i-Z9kq3H0  if(max<inter[i])51Testing软件测试网Q;G;yq;z)hK8|
   max=inter[i];
?B8n2uG+A0  if(min>inter[i])
WKL*|G6V7F0   min=inter[i];
UwwJ&j Ng0  sum+=inter[i];
'kid3Nhl&u;~0 }51Testing软件测试网:sr*\v{,r;Qo P
 value=sum/20;51Testing软件测试网L)S#CM8^8NJ
 printf("最大值是%d,最小值是%d,平均值是%d,各元素之和是%d\n",max,min,value,sum);
DQR*|.U#Ihr5~0}

5s$Fz7xpa051Testing软件测试网;D h+XE)c

5、 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
#e"fl)g` mU r0#include <stdio.h>
a't#X [$Pb0#include <stdlib.h>51Testing软件测试网 s)i F,v,z8C(B:M G'I
#include <time.h>

-Z'u OCOO:|z051Testing软件测试网,X-h A ~y

void main()51Testing软件测试网|3V4[yq!m ^
{
9c6i Z1au+xQ0 char str[]={"ASEEsdffw WEsdfe joiejorjerojeojr ASOJGWOEJIOJERJJ wejr"};51Testing软件测试网4XTz~]Hd[
 int len=0;51Testing软件测试网@_ g&z+E;|e
 int temp;
5wt;C,E HBo [0 int point;51Testing软件测试网/Te!q'uk-R f
 int i=0;
A;Au7Dd'WE~c@0 while(str[i]!='\0')
0R!` xE9Ti0 {51Testing软件测试网lM,SjTo{9@:M|x
  temp=0;51Testing软件测试网0e9A ~#o&Q+I
  while(str[i]!=' '&&str[i]!='\0')51Testing软件测试网L2_h xsIJ@|
  {
9E^&vQn9xX u0   temp++;51Testing软件测试网-bM%WOO V3`6x2uB8k
   i++;51Testing软件测试网L~+vy'w
  }
8sHvKT@;Cc%y3k*L#U0  if(len<temp)51Testing软件测试网+l8UHMD
  {51Testing软件测试网 D:u]l#j,LQ R
   len=temp;51Testing软件测试网7bh ZC.@
   point=i-len;51Testing软件测试网-B o6m+vz
  }
.G)wMo wiq"xe0  if(str[i]=='\0')
E(bWK+zt ~l0   break;51Testing软件测试网;Ej-WT:~2k@*}XtY'O
  else51Testing软件测试网M0a _R`0K
   i++;51Testing软件测试网*P_{.SV9B&@'^O
 }
!HK]oD(@.rJ-s0 while(str[point]!=' '&&str[point]!='\0')
0f mj)x!rGctg0 {
J3oWG)xcK,Pu0  printf("%c",str[point]);
as/y|7~5Vh p |0  point++;
~ej;?N+BC0 }
5QB/y4k9ni Y0 printf("\n");51Testing软件测试网%`L tAl
}
51Testing软件测试网:P?U\X!gS[3g

51Testing软件测试网 [9Q(I m{p+w

6、 模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。51Testing软件测试网a-E TT#{'N'lQfI Pf

51Testing软件测试网R!D|LU1@j n[

#include <stdio.h>51Testing软件测试网1T3o?9O Ue9^ hE
#include <stdlib.h>51Testing软件测试网"Dk?*_bpL&JJ
#include <time.h>51Testing软件测试网sbb a X#K-mO
#define N 100

HO%f&p |#y051Testing软件测试网?:TH_y)z6jm

void main()
9B e6h1^9Q \0{
M&D$?/B_.kY\#E0 int num[5]={0,0,0,0,0};
&v }"uT"W/U0 int temp;51Testing软件测试网xx)tV-f
 int i,j;
Sg+cm1M F0 char str[]={"ABCD0"};
(\V*C){0i1`}0 srand(time(0));
E*O/mQ9G(Z?3f#T0 for(i=0;i<100;i++)51Testing软件测试网/W8E%_ Y3h'L W
 {
*_;w0SHF;C/u6`9`%jC0  temp=1+(int)(5.0*rand()/(RAND_MAX+1.0));51Testing软件测试网Qgum m[S w`
  printf("%d ",temp);
MHfBK#~S0  switch(temp)
z1Bx*|uySh0  {
#J r)n EB5x-H5{#M0  case 1:51Testing软件测试网Uw-c?9l
   num[0]++;51Testing软件测试网}L;NJ#vO
   break;
{{`*{jd x [1_%u0        case 2:51Testing软件测试网!^9j^lw A9J5|
   num[1]++;
2h'zV0Q~eV3h)T.|0   break;
OPG{x.T!}\0  case 3:
i!j&o"J&YK0   num[2]++;51Testing软件测试网R ?O0dg~ I N
   break;
hQ6I$[J t I0  case 4:51Testing软件测试网K!]~b}+i6TS
   num[3]++;
o jh0F3^C7x0      break;51Testing软件测试网(f2b$l"Klu|
  case 5:51Testing软件测试网w0bk.T(T8p']kxt
   num[4]++;
)M%m;a4J8pL{#l0   break;51Testing软件测试网Y7NhG:Mv$~0Yaj |
  }
pz}/F a'{+EMp0 }51Testing软件测试网r _)YN:i ex P
 for(i=0;i<4;i++)51Testing软件测试网xWHz(S%]6f
 {51Testing软件测试网_7n3B5v5R+{
  for(j=i+1;j<5;j++)51Testing软件测试网j\VLz
  {
9O_ yM Lmq(S0   if(num[i]<num[j])51Testing软件测试网'I}H U f)c1e*}'F-u
   {51Testing软件测试网;]2a0x+h*T(s/n.C
    temp=num[j];
,[8mj4W3yiW `0    num[j]=num[i];
O ub8[d Qko l0    num[i]=temp;51Testing软件测试网R,u@2n H7kv)P!H6` Uw
    temp=str[i];51Testing软件测试网R` \ v t%n
    str[i]=str[j];
R}p|"X.q P*W0    str[j]=temp;
e?)PC9p"p?EL0   }51Testing软件测试网9C*fW:[h8t'ML6]N
  }
yRbF%H@{$P[.`0  printf("\n编号为%c,得票数为%d",str[i],num[i]);
&V z#v.z'^N EbN3?:w0 }51Testing软件测试网7oR c6CLJS
}

mb2X5hy-b`:g0

F;~GBd%dA07、任何一个自然数m的立方均可写成m个连续奇数之和。例如:51Testing软件测试网TH){Pb;E%mP
 1^3=1
\%IwK0`C%g'Y0 2^3=3+551Testing软件测试网"Y$c6C8w_Qv |%aL g*}
 3^3=7+9+11
K4d LEeAH0 4^3=13+15+17+19
^ tx4v?&b-BI0编程实现:输入一自然数n,求组成n3的n个连续奇数。
51Testing软件测试网 ~s5J0gx b"HG7V)EY
#include <stdio.h>
Je4[Bb9`u/n7Mj9b0#include <stdlib.h>51Testing软件测试网8h:f#}e g'H"W
#include <time.h>
51Testing软件测试网5r0tv P5n q3vs

u3w&[e_gl&[0void main()51Testing软件测试网 D K gS1{E$l z
{51Testing软件测试网+oQSMk,V:cv s;w
 int num;51Testing软件测试网6e/`+N,Ug,~"O
 int i;51Testing软件测试网1B Md?ND|-T'w
 int first;
p*` hr-uD b {0 int n;
-?m8B9R:hK&g ] w0 printf("输入一个自然数:");
$P {k&n@8f0 scanf("%d",&n);51Testing软件测试网Yq@~r(`_^
 if(n<0)
XY3Uz6d7p0 {51Testing软件测试网.tT#D5c{:^f4_
  printf("输入数据有错误");51Testing软件测试网3Qm|8eUP)A
  exit(0);
)hW2c(C[3f)Ph6X;y0 }51Testing软件测试网3L+WW+SI
 num=0;
mo"FH e8nODL0 for(i=1;i<n;i++)
^ `WVO3o5fbQYs;K0  num+=i;
@wA:z~`'{{0 first=num*2+1;
0B{/T pT\#m;xa0 printf("组成%d的立方的%d个连续奇数为:",n,n);
*AV1R H/bX0    for(i=0;i<n;i++)
Ps7e2E+s4a0  printf("%d ",first+2*i);51Testing软件测试网!^,w] x-bXbrQ7i(R
}

;tdp3] ?6@.}"i0

6K)^S:t lA+H N"` U08、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。51Testing软件测试网,F'h/Cs2x5~!c[|
#include <stdio.h>
-k p,X.V)`%E0#include <stdlib.h>
ZxEN Q&tc ^/Q_0#include <time.h>

?7t3ck,n\?$wT051Testing软件测试网pi V8To6Z"Z

void main()
8I9h(d&r.V7Q6Z0{51Testing软件测试网 hp| ^x sb
 int a,b,c;51Testing软件测试网f;Yh4zJDRL
 int temp;51Testing软件测试网8p O V"n3`U l
 for(a=1;a<10;a++)51Testing软件测试网9}cA @\
 {51Testing软件测试网#KN/sm&t y(c'sV
  for(b=0;b<10;b++)
n^v8^;F3d4Q&I0   for(c=1;c<10;c++)51Testing软件测试网1E`bs5?
    if((temp=a*100+b*10+c+c*100+b*10+a)==1333)51Testing软件测试网0w&[H.Og-[
     printf("a=%d,b=%d,c=%d\n",a,b,c);51Testing软件测试网'Ii"@/^2gu+}D.Z5Y
 }
zZ8t`D:]~ eV0}

}qKTFAQ"k J051Testing软件测试网1`b[en.N+C

9、编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
?OV]Dus1x0#include <stdio.h>51Testing软件测试网?2b|8av$v9u,f8D
#include <stdlib.h>51Testing软件测试网3FoA-J W)J.X~
#include <time.h>

:Rkd!rqy$d:d0

qcT*A q2ln(J0void main()51Testing软件测试网` _1P/v)?3EHb]l
{51Testing软件测试网 {.^k,]&F TGe
 char ch;51Testing软件测试网QQ0R&ugl1QM@
 float a,b,result;51Testing软件测试网/A5wc#v \B
 printf("请输入两个数和操作符(例如46+78):");
N G6ZIn$\(D;Ry0 scanf("%f%c%f",&a,&ch,&b);
l$h$LB*iB.C0 switch(ch)51Testing软件测试网:x n3E,c Zem0p!b%w
 {
cf}[ x0r0 case '+':result=a+b;break;51Testing软件测试网;Wgty(`-L~
 case '-':result=a-b;break;51Testing软件测试网+I%uT1`O&P7fGQ
 case '*':result=a*b;break;
?(l%V&e6tWi0 case '/':result=a/b;break;
W8k.h)[/d2w s0 default:printf("输入操作符错误");exit(0);
J,om QU m0 }51Testing软件测试网v-iQxz$J%Ofg
    printf("运算结果为%.2f\n",result);51Testing软件测试网 K9e~P3Q$Zk
}
51Testing软件测试网W(D6@*OX3['jt l

0]` p$~,H,C051Testing软件测试网oC:Z\+E3J's6HP
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
8C!m-a5f$j0如输入:56439,输出:5位数51Testing软件测试网 I4x;C)o['n W.F8u6C
          5,6,4,3,9 51Testing软件测试网g M:_/iO/|b7z
                9,3,4,6,5

!C5@7]8c}.|$T0#include <stdio.h>
(J8o'SUqL8`0#include <stdlib.h>51Testing软件测试网9^s,rw4~+w pwS/cz
#include <time.h>
Dw6bj;w([~M\a8\c0#include <math.h>51Testing软件测试网r a2Dqo-VH

51Testing软件测试网&?{,{3vJS

void main()
EI-N&[/I8W,IU*A0{51Testing软件测试网:T8yj;M;_
 int n=0;51Testing软件测试网{X#\T6g
 int inter;
eK+e`%Q4J5eL0 int ys;51Testing软件测试网^@_Q)?yz"x"~5u0]
 int num[5];
!Cp ~(ZKLso6W0 int i;51Testing软件测试网d-Z*x/E^9Qz;v
    printf("请输入一个5位以内的正整数:");
'vp)H'g_C2U$T7V0 scanf("%d",&inter);
P*}KL/E$hK h0 if(inter<=0||inter>99999)
jIE ct1T;H0 {
`Ch*pkr-y2g0  printf("输入错误");
myu6I B"X S!U0  exit(0);
)wkS_/V3GKB0 }51Testing软件测试网PP5D*_W
 for(i=0;i<5;i++)
/\:{"z)}![ @$g0 {
n0]| hs1x5W8o4C0  if(inter/int(pow(10,4-i))!=0)51Testing软件测试网FhZ%xb+lm
   break;
)H!Rrv!XO0 }
u8mw6KF0 n=5-i; //位数51Testing软件测试网v0\nn [
    printf("%d位数\n",n);51Testing软件测试网 _v6f6d'kr2[3HG
 ys=inter; //余数
|Ws$X]f9\Z0 for(i=0;i<n;i++)51Testing软件测试网OjH2}F
 {51Testing软件测试网c?0E|1N%fE*i8@
  num[i]=ys/int(pow(10,n-i-1));
wX C0n\,B E0  ys=ys%int(pow(10,n-i-1));
xb,BE7k0 }
WR:P\5tA$v@V,D0    for(i=0;i<n;i++)51Testing软件测试网JI%G g6yU4r$W}-N
  printf("%d ",num[i]);51Testing软件测试网xG/dDe
 printf("\n");
9eRQ6^ o.@4R7w*V0 for(i=n-1;i>=0;i--)
V yNy6f0  printf("%d ",num[i]);51Testing软件测试网 bXoen2~+w ^(M
}51Testing软件测试网z;O.d\&` z;n'}
51Testing软件测试网Kt@,P"@0se


TAG:

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

评分:0

我来说两句

Open Toolbar