展望2011

编程练习——c语言编程题精选(21-30题)

上一篇 / 下一篇  2009-03-11 23:11:47 / 个人分类:编程基础

51Testing软件测试网H;t }4^a u{3CJ

21、定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题),要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回主函数输出
3qao0l'J qM6G:k0#include <stdio.h>
ck j+X*kJ0#include <stdlib.h>
q%g{%V.E7YKi3`$@~0#include <time.h>51Testing软件测试网g zL/S}gP
#include <math.h>
51Testing软件测试网(g,~g/I+b6@x

)w1C"M xlG*KO0struct TIME
~b$a+i1]A%t O L0{51Testing软件测试网?rMCqw&Wex
 int year;51Testing软件测试网 |(G:R z3B
 int month;
![6M@B+GZ/m`0 int day;
._1a X)T OK)[0};

R6qjb6T6i051Testing软件测试网 Fa!Br!?;b'J:@\ F

int is_runyear(int year)
8N/Dz!u2U R0{51Testing软件测试网'ply Q&Xt9x
 if((year%4==0&&year%100!=0)||(year%400==0))
?rz vb"V&@0n0  return 1;
L#UdIH|/fS0 else51Testing软件测试网Oa%Z5C [C&WD{
  return 0;51Testing软件测试网G4q7rdh-v4N7]C4i
}
51Testing软件测试网Yz^:Np

51Testing软件测试网I~s\D2tR

int check_data(struct TIME time)
J D-g x Xh _T0{
2s3Y'F2V[5e-P0 if(time.year<1)51Testing软件测试网 nSt(d+A
 {
(w#m'V,~rM0  printf("输入的年份错误\n");
IK8e\l4k0  return -1;
9T!w%B Us0 }
9P z){fs$B0 if(time.month<1||time.month>12)
7tZQy0[O%Wp m0 {
Er\C-T1V0  printf("输入的月份错误\n");51Testing软件测试网%B|6b ~xk;YK
  return -2;
8yvo7AkrID$e'ie0 }51Testing软件测试网_ i hsO-V XU
 switch(time.month)51Testing软件测试网L [!Q7[ c
 {
qn ?#@Z-}W%J,|0 case 1:51Testing软件测试网!G z%N_| @O/O
 case 3:
c%|Y{v;B0 case 5:51Testing软件测试网(v!H-Zt(I T7c `8[
 case 7:
hy7t3ng!I1tv0 case 8:
3j N{`7wj;e0 case 10:51Testing软件测试网'k0nX V/s$s
 case 12:if(time.day<1||time.day>31)
)z[t-K;c'Nhh0   {
T|Fnl8x0    printf("输入的日期错误\n");51Testing软件测试网!VcG3vw]$e ]T
    return -3;51Testing软件测试网"g8GK^7O6z
   }
2dhcd9U_8c x#P!s0      break;51Testing软件测试网h2?;oC#xP#DH
 case 4:
S A+eg"G5kB;F/og:m0 case 6:
*ak4mcH1b0 case 9:
$V#W}uNz%d'V0 case 11:if(time.day<1||time.day>30)51Testing软件测试网[Rk Z~P[e
   {
c,{+Di'cx*|+E0    printf("输入的日期错误\n");51Testing软件测试网9[&w Cd6R$I Q4SKSq
    return -3;51Testing软件测试网g,d WkG n%i
   }51Testing软件测试网 Sjz%?#l_
      break;
PI\0~q6WN0 case 2:if(is_runyear(time.year)==1&&(time.day<1||time.day>29))51Testing软件测试网y2o(TZ.ef9r#qAw{9j
     {
4n5W&j }w bU0      printf("输入的日期错误\n");
9G-Q0n6p1]S bo2D_:V0      return -3;
fEu){I^(F.Fb$@0     }51Testing软件测试网 i5jd:c0B{5n(rK
     else if(is_runyear(time.year)!=1&&(time.day<1||time.day>28))51Testing软件测试网bh_te4s!M6t
     {51Testing软件测试网0Q/? w4z&`3g
      printf("输入的日期错误\n");51Testing软件测试网g9A%c5u*F
      return -3;
4k$^u(sY"|2V6n0     }51Testing软件测试网x*uZFc.r
 }
e`jL*Z-Ymo0 return 0;51Testing软件测试网.SKxj+Ri
}51Testing软件测试网gSa$Jo9c
 
L+F)c {cK;M7[f0int days(struct TIME time)
$Z5a \|M,`!H KC k0{
} @a7d oV5}FO_0 int flag=0;51Testing软件测试网i ]{HN/j,_
 int result=0;51Testing软件测试网 t?h*}R |UR1}0P.XJ
 flag=is_runyear(time.year);51Testing软件测试网 v-N-tt;k!uFK
    switch(time.month)51Testing软件测试网{Nl nS2\$|
 {51Testing软件测试网:C.v(Lcr
 case 12:result+=30;
Nq`/YgYw\*M&bU|0 case 11:result+=31;51Testing软件测试网 FZn0u*I j
 case 10:result+=30;51Testing软件测试网Ff"S%K }3^2l x:_+h
 case 9:result+=31;51Testing软件测试网!C,u pp N,\J \"e
 case 8:result+=31;
ye0dI~$H V/F4M1ON(A0 case 7:result+=30;51Testing软件测试网]a*EN2Ek
 case 6:result+=31;
ba-@5^W3w9i#_0 case 5:result+=30;51Testing软件测试网e Sg k]
 case 4:result+=31;51Testing软件测试网%?y/`/b({!PQ:[k
 case 3:if(flag==1)51Testing软件测试网Vxl e#}!V8C
      result+=29;51Testing软件测试网gx;@Q#w,v
     else
'kL2Z Zc0      result+=28;51Testing软件测试网:H"OE;WE.c)Xz
 case 2:result+=31;
!R#dB,r5{?\)W z}W*XM%E@0 }
N`-srw^ h[0 return result+time.day;51Testing软件测试网+WnXN+}
}

&h-wN7E;A!B3S0

Y&y4I U"t0void main()51Testing软件测试网3L2_8Pp*o*j%Z$oQ
{
vX ?(zK%RztI:q0 struct TIME time;51Testing软件测试网F9L i!`'|2JDi
 int recode;51Testing软件测试网3R:~} h.rz
 printf("请输入年月日,以空格分开\n");51Testing软件测试网0aJ"r$s a!x(_ wn
 scanf("%d%d%d",&time.year,&time.month,&time.day);
2UNI+o#[F-A0 if((recode=check_data(time))!=0)51Testing软件测试网 k%h d!{x[
 {
d i2Xyd6d x5G^.n0  printf("输入数据错误,错误码为%d\n",recode);51Testing软件测试网u(IL/Vt.z'? W7V9DI
  exit(0);51Testing软件测试网6e%y@Y%i S|.F2q wo!R!MB
 }
!F[+os\3N0 printf("是该年的第%d天",days(time));51Testing软件测试网w.` `}m
}

5D`h7~3f^$l3~0

.}!Z0G]n%J022、建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个学号,如果链表中的结点包括该学号,则输出该结点内容后,并将其结点删去。51Testing软件测试网E/{SKw [N,@|

51Testing软件测试网J'k5z[#NF.v

#include <stdio.h>
2s"B_~/m0\*Y i3N0#include <stdlib.h>
R,I+]!k,fpH0#include <time.h>
K.Q+p!F6gZk0#include <math.h>
3f|q.@4X$f&]U0#include <string.h>

+@X+P4_-K(W&W051Testing软件测试网7T2_7B&R:m|+Y HIZ }

struct STU
`+hx`,[EE?6Y_0{51Testing软件测试网3]F\:p1q
 char number[20];
/Qu0~ Bs/Z m0 char name[20];51Testing软件测试网hp^(E0E4q8LHw
 int sex; //0:女 1:男51Testing软件测试网v@$m2_Jl
 int age;
Ve _(be"K2AP0 struct STU *next_stu;
F-geXG0};

)y$bfvTHM1^T5LB*SN051Testing软件测试网8xoTKo

int n;

DIU#e!a0

Dq!H(R*L0struct STU *creat_stu()
?:x___/TZ*r:}n3^0{
R:j7f#F!Y'T n T B0 struct STU *p,*before,*head;
#vb'\p ~0 int n=0;51Testing软件测试网SLS-h[
 int temp;
t2v_hy a N&@}dn0 p=before=head=NULL;
&E!g'QgtMFX0 printf("请输入一个学生,以回车分开\n");
loN ^1D0 while(1)
6H*A"MY8^ y}Ms,nN%x0 {51Testing软件测试网,ms4h(A-R,rE
  p=(struct STU *)malloc(sizeof(struct STU));
L*W a#I | T0  printf("学号:");51Testing软件测试网$]8N!Z*Tr vU\f9}
  scanf("%s",p->number);51Testing软件测试网.b)suj qmO
  printf("姓名:");
X cw/i;P!T0  scanf("%s",p->name);
HU$~z'e x;X]0  printf("性别(女填0,男填1):");51Testing软件测试网6zj S9TP*W:dF*U%a
  scanf("%d",&p->sex);
5e9c:u[Y0  printf("年龄:");
_"yYs3nf8`6FZu0  scanf("%d",&p->age);
I1k1o!N F-j2e0  n++;
@W`qaWA0  if(before!=NULL)51Testing软件测试网)G&wfMzN2c
   before->next_stu=p;
%L7_ P(f D0  else51Testing软件测试网 y:~2|-{3t1v
   head=p;
y.Mb ~$Uy*D}p0  printf("是否继续输入?(是的话输入1,不是的话输入0):");51Testing软件测试网&SA$[W8D2Mj ?
  scanf("%d",&temp);
bNOu s*EuA0  if(temp==0)51Testing软件测试网s7s+Vk/Wa
  {51Testing软件测试网li3^NWp
   p->next_stu=NULL;
u?O6mz[.ojb0   break;
+F~b {Y;y6\0  }
8h\oPx'p7_0  before=p;51Testing软件测试网L'`iuw?y;c
 }51Testing软件测试网G@f.P;B8R
 return head;51Testing软件测试网4R1a\ j1fVOi
}

.WA`S2tt'u%P|T0

0]!ynn:C+e3`n0void delete_stu(struct STU *stu,struct STU *before,struct STU *temp)
N t3lP4W0{
o#@a:Hl m4gP2u0 if(temp==stu)
z3K;J lSg8W0  stu=stu->next_stu;
)rj;j}kcSK_$T0 else51Testing软件测试网qo1hYz@)yU
  before->next_stu=temp->next_stu;51Testing软件测试网&qU+p1Q(y!p
}

h6cjp/k ]?051Testing软件测试网Wx)wV2Yb Q/m6aIQ

void main()51Testing软件测试网%h `:lx#yw+{
{
!X}+@P"o%t#M4T&MlB0 int i=0;51Testing软件测试网 f? S-g W"[.q*P1x/]:_
 char str[20];51Testing软件测试网:M,w*VW$n
 struct STU *p;
*nNT x |H8V0 struct STU *temp,*before;51Testing软件测试网[{-xP-U#Wt
    p=creat_stu();
jw1R8Z7ERr|1n~7k0 printf("需要查找的学号为:");51Testing软件测试网O6Y2} xZq
 scanf("%s",str);51Testing软件测试网&U1J*So.K` @~ x
 before=temp=p;
u Xi? LP$~0 while(temp!=NULL)
4}(E'e1E7| PKZH0 {51Testing软件测试网!t pOX6a/}.B:@N
  if(strcmp(temp->number,str)==0)
.M$a,q l'fZ0  {51Testing软件测试网-ZPp v,P
   printf("找到该学生,学号:%s,姓名:%s,性别:%s,年龄:%d\n",temp->number,temp->name,temp->sex==0?"女":"男",temp->age);
#^S8CwD^0   delete_stu(p,before,temp);51Testing软件测试网l LEA2C
   printf("删除该学生完成\n");
} B9{!E*nq0   break;51Testing软件测试网"L.nQ*DfQ G4F t&RE
  }
%P!YQ4V:p5|9v0  before=temp;
&@v!Vf_y m0  temp=temp->next_stu;
gD|Q @ar0 }
BV Ka3L3p0 if(temp==NULL)51Testing软件测试网8x sf `{p/y
  printf("没有找到该学生\n");51Testing软件测试网${:mkbL+^4t;z ~k
 free(p);
N!P0H6s/v#J0}
51Testing软件测试网+J"^o[+U_:iB

xs1BsDx4C&y[023、给定一个日期,求出该日为星期几(已知2002-3-28为星期四)。51Testing软件测试网 C n&s.@*P ~u-c5q

51Testing软件测试网(i}/rjNX

#include <stdio.h>
)oI$D:| c7I,j"TE0#include <stdlib.h>
peC6hp^I1l`o*{0#include <time.h>
^%rv7C+N[ m0#include <math.h>51Testing软件测试网+of2Pd;w_(`c$HKY
#include <string.h>
/^sl*w.\i)DA-^0struct TIME51Testing软件测试网N!e/U};qy0A R S)z
{51Testing软件测试网}'D.H6Y2[q
 int year;
l&s!B$z8s4Akvr0 int month;51Testing软件测试网+ni+M)O\ _W$Mb$K:c
 int day;
`.Bli ?3\k2C0};
51Testing软件测试网{8J{7W8j"Ed/I4C

jA9\.wJ tW q"~0int is_runyear(int year)
!o4]w%v'Ge-s0{
(be5K8Q!N%A0q9o r0 if((year%4==0&&year%100!=0)||(year%400==0))51Testing软件测试网j3]P0F3el
  return 1;
K G9[{ U+s/tS:y4vm1H0 else
wE#?#KZb b0  return 0;
h0u7L"U%nJB&Y9K0}
51Testing软件测试网+r T)@7f&J5iko F!j;`

6?1UqMJ0int computer_date(struct TIME time)51Testing软件测试网bn~y1At-`
{51Testing软件测试网f x3Z*a|X$O
 struct TIME t={2002,3,28};
'P` LT7L"S5VD0 int d=4;51Testing软件测试网}0\$Ae%D6k+I1I
 int temp_year,temp_month;
:hYa.yd0 int year_day=0;
Sq.Z^:p|%H0 int month_day=0;51Testing软件测试网v^H1ar4F
 int day_day=0;
T"ytV*]1~2X4cHZ0 int temp;
;T"J xHn&}0 temp_year=time.year;51Testing软件测试网8A3I?.hb6T1A
 while(temp_year!=t.year)
`+` FB;O J]0 {
E~'gDGk0  if(temp_year-t.year<0)
.]^8g ^V2z]q^0  {
9{ ?Q/UT&Q,l1u0   if(is_runyear(temp_year)==1)
l~2dA(v8i0    year_day-=366;51Testing软件测试网O/y8@?#Q q_O
   else
i7m1o T+hy0    year_day-=365;51Testing软件测试网%wpdL4C:n
   temp_year++;51Testing软件测试网.| wE1V+Y3eB
  }
I$L4Zz&Z J!Q0  else
TD3dO'v+ARp(X0  {
[MQ:x}B r0   if(is_runyear(temp_year-1)==1)51Testing软件测试网L|+G!qT:Wya5U:l4Y E
    year_day+=366;
u5E c"hs/Ay0O1X0   else51Testing软件测试网?8op(X,h8[
    year_day+=365;51Testing软件测试网'p?A-r f,D!Q[c:Z%z+h
   temp_year--;51Testing软件测试网h`(S)d[x0Fg)a*P
  }
2l(v1f| ^/o+b0 }51Testing软件测试网Hb]8f5@}+|
 temp_month=time.month;
_~!N?:u0 while(temp_month!=t.month)51Testing软件测试网,u8?)nYQ:rk._8I
 {
pO)}&M!~0  if(temp_month-t.month<0)
]fC:xH W2b/e0  {
.}#i#h@)E^7l0   switch(temp_month)51Testing软件测试网`N'O u)Kl8y Ke
   {
IGb wo l&C6V0   case 1:51Testing软件测试网hE4L&[3F-clg`
    month_day-=31;
"t^@S6LH&MD0    break;51Testing软件测试网*X7Z+[!G@IW#V P
   case 2:51Testing软件测试网4l%SD1R s1h%E q|
    month_day-=28;
3tYbCVhfP1a0    break;51Testing软件测试网.W#u,J2O.ql0vO\t1M
   }
%uH5V.c,d+A6h0   temp_month++;51Testing软件测试网h$Qk6|q}ye
  }
5~vbY_"C)H0  else51Testing软件测试网Z0`"Z@ygQ
  {
|)rOXB0   switch(temp_month-1)
o8Z j0RU0K*G{;C"t c\Z0   {51Testing软件测试网B FD!]*m I$j@8B
   case 4:51Testing软件测试网.c+an#V3B%c
   case 6:
&Rw*rM`a!Yq0   case 9:
U%Qq X I o0   case 11:
1eZ _L$gj*G9W0    month_day+=30;51Testing软件测试网[.U%K)}Xk
    break;51Testing软件测试网A PG2H*U o:{-w8A
   case 3:51Testing软件测试网]1Sw&c$uO7R
   case 5:51Testing软件测试网EN2s z y
   case 7:
-Uo MH0H(ZP ic"l0   case 8:
xcU,Z ["{#a n0   case 10:
G{"^9d Iz\0   case 12:51Testing软件测试网wSBb)M+Z
    month_day+=31;
d~6W#CAl$~@ S$e0   }51Testing软件测试网3_`~5p Ez4_2i\
   temp_month--;
I^#@,c'S?0  }
d7Qs)t5CF;i0 }
*QVnw/y:Nb0 day_day=time.day-t.day;
0jhx!W j+p0    temp=year_day+month_day+day_day;
"Q/nN6O6|0 if(temp<0)
5S[(J4cWxM3jz0 {
(V.W#~B7aJ.z0        temp=(-temp)%7;
Hs;].BD4p-R4p0  if(temp>=4)51Testing软件测试网 Vk(g6{.LX BX q
   return d+7-temp;
)s [3xTAQ7?4a&@a0  else51Testing软件测试网4{)] b4l;[ ?:g-Q7^9R5o)e^
   return d-temp;
6e6S&o0y3N0 }51Testing软件测试网;_6F&h Sjo L
 else51Testing软件测试网9i"N^ efo(`2Rh
 {
zH*uv*Y9L4L w0  temp=temp%7;
ho!P,q iw _!c0  if(temp>=4)51Testing软件测试网 d R _k"H`5U
   return temp-d+1;
Qq-w;c ek[res`0  else51Testing软件测试网!U1@kkm]{}:e
   return temp+d;51Testing软件测试网*P]9y!m;PV%Y,FzL$O
 }51Testing软件测试网]Cc? Ii1F
}

E,j0hVQT;Rd$cH0

]8ZN+G'h X0void main()51Testing软件测试网7Cn F4UC3uDOE2y
{
r!`5HV Iv`4x0 struct TIME time;51Testing软件测试网Al(aO2Q s8[
 printf("请输入年月日,以空格隔开\n");51Testing软件测试网b ?/zD*Uwe
 scanf("%d%d%d",&time.year,&time.month,&time.day);
&?*sU u Lp_k0 printf("是星期%d",computer_date(time));
q J2c#uI2Z0}
#Z }xW$A[.Ek1B0

(g)UTdtj0

9Pnn?v9q'\024、用递归法将一个整数n转换成字符串(例如输入4679,应输出字符串“4679”),n为不确定数,可以是位数不超过5,且数值在-32768~32767之间的任意整数。
{5]$Sn S7M0#include <stdio.h>51Testing软件测试网1i/~^Y4|;i fP/_1gz
#include <stdlib.h>51Testing软件测试网;La{$k!v&Pz6}
#include <time.h>
PF:d"b(|0#include <math.h>
ce/u(]2ak.HR&[(v_0#include <string.h>

Vc#k4F:e I8i#ca5g F051Testing软件测试网^&e)E`g

void func(int data)
N*c;~%|/s/of0{
IC1QX3E~]1Fp(M0 int temp;
!@/m)N1Z0qWne0 temp=data/10;
s%x3Re2Q$pR2u/h Y0 if(temp!=0)51Testing软件测试网7^'|)O!k2e
  func(temp);
)yu![2`z\;e|0 putchar(data%10+'0');51Testing软件测试网~M [-k-V)^ v`v
}51Testing软件测试网w X)I?/PR

(kv8u n1GF0void main()51Testing软件测试网)Outw)M O&r
{51Testing软件测试网#r"~"fop-W[-\x4g[
 int data;51Testing软件测试网6IQv1N:yua
 printf("请输入一个整数(数值在-32768~32767之间):");
Ru.u%o4w`,Y0 scanf("%d",&data);51Testing软件测试网#Iz,g m'V(v
 printf("转换为字符串后为:");51Testing软件测试网Xpx_2T{E
 func(data);
:T9})D\pdy*R0 printf("\n");
cnj$I:aB,Z%^0}

,L&B8w"qM*hd051Testing软件测试网I&u3|L)\2yt;r n

25、有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。要求在主函数输入字符串及m值并输出复制结果。
e;tguj0E*p0#include <stdio.h>51Testing软件测试网R/Z0@$`2Lz
#include <stdlib.h>51Testing软件测试网X3jP M7TA!g
#include <time.h>51Testing软件测试网Z;Dq[r
#include <math.h>
D&B y ?k]Q^Xt0#include <string.h>

/{S"Pj#@ ?%k051Testing软件测试网f {:fZZ g mS*^

void func(char *str1,char *str2,int m)
l\9ilxkejuU0{51Testing软件测试网V&TE%b^
 char *p,*q;51Testing软件测试网F,YX [S2zv
 p=str2+m-1;
-jv p5k'V0 q=str1;
E0IV o`2i?i0 while(*p!='\0')
;xWr3aOJ+g0 {
DV7rY#^0  *q=*p;51Testing软件测试网0ao)|4E GN*x9N)|
  q++;
:m)r%v_g S4x5}0  p++;
||9['i"CrU!h@0 }
;y/q3__ I/x;N0 *q='\0';51Testing软件测试网}!a-`w {8@a5}0B)A
}

j(}"x_t051Testing软件测试网 Qf-F2a)Za"K

void main()
Tz"y\ ? I0{
6K6?+n lbR0 char str1[1024];51Testing软件测试网;ui!ePKZ
    char str2[1024];51Testing软件测试网Vrn*]k)DlP:g"q
 int m;51Testing软件测试网3dbe2y"Y(L%H
 int leng;51Testing软件测试网"u,Fx0@`E)o/`
 printf("请输入一个字符串:");
Y}o!hcPy0 gets(str2);
:tV0PA \4e1Q}0 leng=strlen(str2);
mi1O]4eP}y0 printf("字符串长度为%d\n请输入m的值",leng);51Testing软件测试网WH4S3`x!l7R/V#B
 scanf("%d",&m);
!dS(w5Vy0 if(leng<=m)
S_9@ G%[9?@0  printf("error!");51Testing软件测试网`O:cNd(Yr,KL[
 func(str1,str2,m);
's.R9J A{_%PF0D0 puts(str1);
.h(i!Ls:]9k@N nJ7C+R0}

(B,qPL)U9UX-]051Testing软件测试网7b R*qZ eD

26、在主函数中输入6个字符串,用另一个函数对他们按从小到大的顺序,然后在主函数中输出这6个已经排好序的字符串。要求使用指针数组进行处理。
H"FgU&|:}0#include <stdio.h>
+U5HoE#?%A ZL!}0#include <stdlib.h>
"]"o5z/U&RenD0#include <time.h>51Testing软件测试网6`1p8R|zVU8B9_/w
#include <math.h>51Testing软件测试网RY1_ J7q
#include <string.h>51Testing软件测试网`-j4~2z8C^J

51Testing软件测试网f!mCAB K w2dI

void func(char *str[6])
^$v}g,SN0{
"J m:z%{LW0 int i,j;
'T Fm,iYeMn C0 char *temp;51Testing软件测试网t-^]MS1y g2rm
 for(i=0;i<5;i++)
0_ a+~1y$m wJ!e0 {
R/] duo7W.t]9k)K~0  for(j=i+1;j<6;j++)51Testing软件测试网(X(ff;?"E:o
   if(strcmp(str[i],str[j])>0)
,v{9_j,l:y|x)u8u W0   {51Testing软件测试网^[Hyis+X&|}A
    temp=str[j];
H-FU@\]9_w0    str[j]=str[i];51Testing软件测试网 Ad|eH8tb
    str[i]=temp;
` ?0O:M7h|y H0   }
pp4['r y0 }51Testing软件测试网yE\nw6M
}

rz2?ruD.|DU0

Ae.p.[ p/j~"u;M!e0void main()51Testing软件测试网*N;Lsmlo i|l
{
X\PAL?,Q}?0 int i;51Testing软件测试网#mC rRL
 char s[6][1024];51Testing软件测试网LP+Q*SB8x#rB
 char *str[6];51Testing软件测试网 p+i6]Xt:L)h T;c
 printf("请输入6个字符串\n");51Testing软件测试网1ax~1XM
 for(i=0;i<6;i++)51Testing软件测试网0GM"[2_0O}'R$b
 {51Testing软件测试网1PSs$b,n%Fk]
  gets(s[i]);51Testing软件测试网M0[2E Pih!s-j
  str[i]=s[i];51Testing软件测试网 N%P5Zt)zt#U%G
 }
7U8KE;h8e]6Eu v0 func(str);51Testing软件测试网BvZ{Y$bC*R#l-k*F
 printf("排序后\n");51Testing软件测试网;X4\}qN9i4t
 for(i=0;i<6;i++)
e c#GZ*U$}+|.z(c0  puts(str[i]);51Testing软件测试网uec(l:g$d8\3tp
}51Testing软件测试网X6r TK N$tb

W%Rik^H5cQm027、编写一个函数实现对两个字符串的比较。不用使用C语言提供的标准函数strcmp。要求在主函数中输入两个字符串,并输出比较的结果(相等的结果为0,不等时结果为第一个不相等字符的ASCII差值)。51Testing软件测试网{iPU9Z s4| {$v
#include <stdio.h>
Y q`-b_:U v#g'qdb0#include <stdlib.h>
'FCLC6^4M`"f0#include <time.h>
lF8PT[OSz@0#include <math.h>51Testing软件测试网/{%E@Nh*a
#include <string.h>51Testing软件测试网@ L/_7qGyZ

S+PWV.^x0l:P(p_0int func(char *str1,char *str2)51Testing软件测试网.R$h)YudfR3S
{
6L1|7F]tl!K0 char *p,*q;
C0Qsr iQ$|7I0 p=str1;51Testing软件测试网r~9lMn,dm$c0~8Ck
 q=str2;51Testing软件测试网3~ Nn@SR
 while(*p!='\0'&&*q!='\0')51Testing软件测试网,VY'dM$YZj\l
 {51Testing软件测试网)N:L#EI]+[2]
  if(*p==*q)
u*Fc%dQ4srL0  {
W'J3s5k(} AY5^z-i$V B0   p++;
$[Y pUc.w PfO0   q++;51Testing软件测试网_u}g H
  }else51Testing软件测试网f Iv7J"jU
   return *p-*q;
)y/aI/?;c-H/K:M[Z0 }51Testing软件测试网 ~&h0Irhcnz:_
 if(*p=='\0'&&*q=='\0')51Testing软件测试网m$JPy#{&e6X [s
  return 0;51Testing软件测试网kl/tQ u}3H2Cc
 else if(*p=='\0'&&*q!='\0')
_ Fzx$@-T0  return -*q;51Testing软件测试网UhR!F6kp MD
 else
4t(HrJQ za mzo1dT0  return *p;51Testing软件测试网x3L4vB2r6A
}51Testing软件测试网,|#{/q2~7C

eQ n`#`s0void main()
\$A#i!U9_q%W/^VxR0{51Testing软件测试网5DL@7z7wX,N cB
 char str1[1024];51Testing软件测试网Z"]iE\(SU/B
 char str2[1024];51Testing软件测试网4}5Q,Y B%ld{!J
 printf("输入2个字符串(以回车键分割)\n");51Testing软件测试网/^1xDi/HL1D
 gets(str1);
u7p _3}v*}fX9NF0 gets(str2);
$L Im-n&m;M0 printf("字符串比较的结果为%d\n",func(str1,str2));51Testing软件测试网0|D3O$s!e*XV(i!f
}

H,v7[R+y$G,G:\ZU051Testing软件测试网4?x/W/V$`

28、有一个unsigned long型整数,先要分别将其前2个字节和后2个字节用为两个unsigned int型整数输出(设一个int型数据占2个字节),试编写一函数partition实现上述要求。要求在主函数输入该long型整数,在函数partition中输出结果。51Testing软件测试网8TJ Jr.J
#include <stdio.h>
,q7V"~o{0#include <stdlib.h>51Testing软件测试网*c$HNH0@+D{{3h
#include <time.h>51Testing软件测试网]#G!D3P,rO0Ct_'K.y
#include <math.h>
7y"ix\h!CN7W2Z0#include <string.h>

$He#a~py-g)Q!y051Testing软件测试网.{rF}0Z0e-O+}-E ^1a/O

void partition(unsigned long data)
7jJ@*Db'Abf _l0{51Testing软件测试网d] G0@ iV%}
 unsigned int d1,d2;
R&Nm X+eW3KZ c)f `0 d1=data/(long)pow(2,16);
T DU~Uu4U0 d2=data%(long)pow(2,16);51Testing软件测试网)Wb"x1^_5]my,o*G
 printf("拆开后为%d,%d\n",d1,d2);51Testing软件测试网 l@r9s.K7w.@
}51Testing软件测试网k+D]!ZQ?-TOf3D!r

B T8u!f)sK4I0void main()51Testing软件测试网9NU4qV(`3d#xq$L
{51Testing软件测试网*G@#qh7X!D5[
 unsigned long data;
S3Y/d8v~#e#[R9Hv0 printf("请输入一个长整数:");
8{)Nm[rU7FJ&E0 scanf("%ld",&data);
"n,`3vGE w0 partition(data);
-S _2wvWrO0}

{+x8tx7Cc"j051Testing软件测试网c2S W/Eq1}2~K

29、编一程序,能把从终端读入的一串字符中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存(用字符!表示输入字符串的结束)。51Testing软件测试网 RV@](j)h
#include <stdio.h>
D8d4TP }0#include <stdlib.h>
,y;}6S;Qn7dV%v{0#include <time.h>51Testing软件测试网\ ]8I&l)OM/t
#include <math.h>51Testing软件测试网XG@-~dR6gI
#include <string.h>51Testing软件测试网 H/T p[g E @

51Testing软件测试网+stf|:kX

void main()51Testing软件测试网)w]2]Q-O`_)c
{
b&b5z#_8LT0 char s[1024];51Testing软件测试网,Z.a8]8As3a.C`(d+Z,x
 int i=0;
b&?s pD\Z+u;z%]0 FILE *p;51Testing软件测试网7@ p\ r{vFE.N
 printf("输入一串字符:");
~:ks{f9N7N:?{%I0 gets(s);51Testing软件测试网exrQ,^Y
 if((p=fopen("test","w+"))==NULL)
|f E ljH(K5wc0 {51Testing软件测试网I9H6dG"I
  printf("打开文件失败\n");51Testing软件测试网N0ON$ng
  exit(0);51Testing软件测试网.\iFN+B
 }51Testing软件测试网Fj x:_g8s/Mvr]
    while(s[i]!='\0')51Testing软件测试网&h5ScGL6s ]
 {51Testing软件测试网D1aC4B L;k.~'~P
  if(s[i]>='a'&&s[i]<='z')
'Y0K\/X!G0   s[i]=s[i]+('A'-'a');
:Qqu&Q(SecM&v9}l0  fputc(s[i],p);
w:W)[ vb;g sM E0  i++;
8?(?eh{-gjm0 }
MU8p4N s5N&D0 fputc('!',p);
H(H+u3l Y|-O0 fclose(p);51Testing软件测试网H8tM.~&ib[P9Q d
}51Testing软件测试网#{.GdE!R/}'{9V

/yF0a"Q%XC$E;d6V[030、有五个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人多少岁?他说比第3个人大2岁。问第3个人多少岁?他说比第2个人大2岁。问第2个人多少岁?他说比第1个人大2岁。最后问第1个人多少岁?他说是10岁。请问第5个人多大?(这是一个递归问题)51Testing软件测试网9y/bgi a%g C
#include <stdio.h>51Testing软件测试网.h1L8{'e'BR:mm ?x
#include <stdlib.h>51Testing软件测试网 L&Y`1Fz
#include <time.h>
8] U!W+q^6V0#include <math.h>
OT:_K){:cta0#include <string.h>51Testing软件测试网 mV9}kFHJf

51Testing软件测试网 o4C8WT"_iX`6K

int func(int i)51Testing软件测试网f-L6]e6S2_T
{
2SU$`4s$\+GIDP:[w?0 if(i==1)
YL'PrX0  return 10;51Testing软件测试网u Y @k6}9y I gm
 else
*PE4Q ^y Cd0  return 2+func(--i);
{9H2RM j4g(JvQ0}51Testing软件测试网,|;[1YQ6\nWk9IU

51Testing软件测试网R}fK6z&La

void main()
0LXh/e``+r0{51Testing软件测试网@ ^6Ow"[!z U
 int i=5;51Testing软件测试网SvhSR/UZC
 printf("第5个的岁数是%d",func(5));
8O'h/Ih3yJ k@0}51Testing软件测试网m.T$w}]A N8A!Y7QA

51Testing软件测试网 HsP.M.lB

完。。。

%])\U#\gz-i0

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar