|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。" X$ w1 E" n9 t8 C, e
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
& v4 Q1 ^8 @' Y) h 则表明此数不是素数,反之是素数。*/5 C7 ~* Y0 }9 y C; @- z1 ]; K3 P
- #include "math.h"
, m2 ~+ e, f1 j E" Q5 U! P
9 e$ X: F5 x0 K0 n- main()
! H+ l" Z4 m5 {9 X
5 K/ S3 }3 Z: H1 X! _% U g- {
- t: f" h% W3 K% P
! i( \" j( U. w5 n1 L" O- intm,i,k,h=0,leap=1;
8 K" `" i. W' H, d7 p; f
' w3 H- g! t) A" [6 G- printf("\n");; E# V D' v) T% C/ c/ ^
; j" Y3 F! |6 r& z- for(m=101;m<=200;m++)
0 b4 @8 d2 d! A! U1 i$ I$ H - . Q- g5 h; u& a7 ]4 Y, s- W g( O P
- {k=sqrt(m+1);
3 x6 C% a% `5 s- g
6 W* ~/ ]3 Q5 P1 U8 ^- for(i=2;i<=k;i++) @1 S2 D6 f0 t& D& {
- % }2 Y) G/ Y# e- G7 A7 h' D) J
- IF(m%i==0)7 |8 W9 b( ^( z- }9 a7 d' m9 }
- * ?6 o# I, Y9 |0 A5 ^9 j6 h
- {leap=0;break;}9 b& w) Z8 E) ^' i- k% N; N# V
- ! i0 ^" Z% J3 b. W
- if(leap) /*内循环结束后,leap依然为1,则m是素数*/
/ @5 N" S6 D$ ]2 O; H% W0 N - : J/ D1 |+ v, }9 n2 v
- {printf("%-4d",m);h++;
' e, l% b+ O7 w. T# P7 w, `8 } - ) y. H: a# V: i6 l! {) e! C
- if(h%10==0)6 j; x' M: c A! N
4 V/ U# m1 A/ ~! J2 ~( P- printf("\n");& E1 S, E( k$ `9 `8 G9 x
- / a5 M9 c( O& o7 C9 B2 b
- }
. ]3 H& ?6 H' N
) v. |# D( l) f) s; U- leap=1;9 o* A, {/ W: x
- " @. C4 K& D7 @; f) M
- }
( D: N) p: d3 E. t/ `
6 q s& D A% H- printf("\nThetotal is %d",h);: ~. ^/ ~( J9 }& S" m3 L0 N4 A
- / m) l5 t. X8 S+ j4 @4 P5 g
- }
复制代码
1 `6 K( U6 c. [$ t1 a 2、/*完善程序,实现将输入的字符串反序输出,9 ~' \. Y6 B7 V
如输入windows 输出swodniw。*/
/ o" P- v. Q% r2 q- #include( i$ m, u$ w8 c# w
- ( i$ D& g; \9 B( j1 `$ e
- main()
) p H) W: u( P+ a5 G - 0 p+ B6 U2 H4 w0 j- {/ ~' n
- { char c[200],c1;
8 `4 f/ X6 G! ]0 g& j) P
) n5 T+ n5 \9 i. h5 E! q$ l- }- int i,j,k;
; h9 f- Y# J" ^7 K1 G; P: i
/ v" |* \+ e" t @- printf("Enter a string: ");8 Q& n8 O, g7 C2 f
3 {- v3 j$ i$ v; H l- scanf("%s",c);3 L4 ]1 e: Y9 V) o. N j
- " _5 B8 W, `, z( D8 h
- k=strlen(c);9 ? h% j6 m, G0 j: T
- % T' L. h+ A; B" e6 Q1 e; s
- for (i=0,j=k-1;i. s! y9 K" A* S! z$ [; k7 ^* `+ C% f# v
- ) X0 d& K3 R1 o" c) g' X* f
- { c1=c[i];c[i]=c[j];c[j]=c1; }
5 I |: R( R% N6 }! m" n6 z
% R/ A+ f: h2 [* {# s- printf("%s\n",c);
& A, }+ C9 x) `' Y$ a. l7 s8 p - " v& N3 O6 I: }8 i- B4 u
- }
复制代码
7 t/ }- @0 v2 q- {5 W# C 指针法:
7 r7 e" {: v* f
$ x: ^8 M9 {, c; V( ^5 T- void invert(char *s)% S1 @7 w% ]% _' @
- + N" F" D1 B3 I
- {int i,j,k;# q- q' S# @( T. H# F1 b" m
- % o$ I* Z: V: ]% C q
- char t;* `9 [3 w( u' s, t% i" Z
- . g5 M7 ]5 P: Z I
- k=strlen(s);
: h- i! \. A5 }: v6 ` r# f* A$ i6 C
0 E, G3 p7 L% u# `6 @% M- for(i=0,j=k-1;i
6 `( J9 }: ^$ w2 j J/ w6 `
7 f' J( i6 p9 L* w% [/ ~- { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
( ?' {0 O: Y8 @. W, c5 J5 {) i
. H. U# i% W9 \- }9 [* e. G8 c6 p$ q
- : {6 E* @! S4 t& A' z
- main()
1 X, ~! \, D, C# m; K
6 L, H" `- v6 y) t. y- {FILE *fp;. S. X/ E5 J# J! e9 Y
- ! y% W* k. j) B1 R
- char str[200],*p,i,j;
2 J- E7 E P/ Z: O1 h; R; N$ ]; `
9 L9 \# s" e2 x- if((fp=fopen("p9_2.out","w"))==NULL)8 @" Z# G' p4 b& f" T/ M$ Y% g
- C; D$ J3 t: ^7 o% l+ W( p# ~
- { printf("cannot open thefile\n");
. ]* K# T- `1 s. f' q- H& l9 u
: T8 e" H0 d* o; u* ^4 V- exit(0);$ N4 C8 C6 Z7 h# q7 `
- ; d9 l# a* U7 j' T
- }& |' L) A. j) f2 T- _; q: h" N! h
# K' Z+ Y7 C- F+ c: Z% C7 V- printf("input str:\n");9 ~. Z* M7 z* j# r" V Q% s, F
% ?3 U& `: l; c4 p- gets(str);
" D% r; J6 f1 d- |5 a' n5 ?. | - . V+ C9 \3 n/ s7 Y/ B2 [7 d
- printf(“\n%s”,str);$ W' H" x( { j7 G; w; D) v
0 P3 ]1 ]+ I) u; Q, T. D/ b- fprintf(fp,“%s”,str);
+ c1 g3 c/ X9 q+ P - 7 f$ K1 M, Y l: w( O
- invert(str);
4 h; o6 T; P+ }
1 y4 c. V* F6 \* W- printf(“\n%s”,str);; @4 ]/ N" Z3 J1 Q
- ) d' H; s$ r2 Q! Y* \
- fprintf(fp,“\n%s”,str);
$ K( t4 I3 m3 k6 k
* Y" d1 _/ A' p9 h" s% j- fclose(fp);
' N1 A* |# E$ f8 w - ) o) T. n1 N" a) F" |8 w/ O6 n
- }
复制代码 9 ]) K; ?6 o5 g$ H* y
3、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程2 N( h9 ~9 D Y& D6 X6 f4 z, C
找出1000以内的所有完数。*/) M& V2 h: h0 E/ O# P
& R8 W6 @" c; f- M6 t! q- main()
- a, _3 R' v" z' A9 A& `& a4 ?& Y5 x* s - & F; s0 B8 p0 _8 o- Q3 s! H% C
- {/ ]7 t9 f' N/ V) C P% E; X
) b1 {/ L& ]- o' ?. q# W+ p- static int k[10];
% U/ j) f7 N2 x! a: j9 }% _ - ' c% q- l3 ^1 u; i4 s) a* T
- inti,j,n,s;
. o k0 @* _2 Q4 f9 n
1 k% @- ^0 V! ^9 M m) h6 V- for(j=2;j<1000;j++)
1 L' ?9 u- v, M) L! W
1 X4 N3 ]1 C6 V9 \: b) F- {
3 m7 x( y. F7 S5 S1 `. k5 ~6 s
6 u8 Z T8 c7 g" b) d1 R3 v o4 {- n=-1;
9 C# y* G6 P( o3 q' { m9 @ - 7 y1 s' R( @% v0 j9 u
- s=j;6 g! ^; f6 X1 f. o' h6 U
2 I& y8 _! `6 N: ~9 e* s+ B- for(i=1;i
) ^' b# E4 |2 @6 _5 [! M
" I2 @! g6 c* y) k- {if((j%i)==0)
1 X: N8 l& M- U% a8 U0 s
1 v" E( n8 e' `2 F) W0 @( }- { n++;9 x% u) i5 I4 } \. a( J
- " i& P2 H# R4 ]+ j& o
- s=s-i; G6 P' n/ |* l2 B' u
7 ^% U3 Q2 T9 j- k[n]=i;
4 X2 w. G8 d1 L. h
$ s8 b$ r7 r' `0 r. x- }
( |2 Z; {) H( j; f+ M3 h - 4 F% a9 z8 X8 b" [* V
- }% ~2 z7 g3 w7 p& ~+ Z0 L. i
- & s. P1 s% w% M3 p0 u
- if(s==0); I0 e: V2 v- e9 [: T$ W
- ( h4 _! Y$ S; w& a
- {printf("%d is a wanshu: ",j);( v) W, E$ D* L3 z
- 3 q5 }$ {7 D: W) |! h9 N: g
- for(i=0;i
5 T8 A" k% K3 u- r - 9 V2 M( w4 C q" B1 T* U6 s
- printf("%d,",k[i]);0 g, \3 R0 D3 g; ^, {
- 6 l' \/ r- X% v9 R: [5 g
- printf("%d\n",k[n]);& ]& b4 \8 n; Y) G# g# `! P1 |
- 5 p1 q2 I& c5 ]- Z6 i( {: u$ e3 V& a9 [
- }
% N" m4 {) i- @' b6 s O - ( I4 O0 k1 O" Q0 m/ J& D
- }- z/ f; B3 s! q: p- @0 ]
- 1 t" _$ U: Z; E6 r( @+ z# F( p
- }
复制代码 % l# }: O$ n' g" D- X
4、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,! I( w: ~' d+ L6 k$ H% `& ]
请在空白处完善程序。*/
" e8 q0 O, U" b/ V# o" t: @" l' I T) |! v; U5 `
- main()$ `* f0 `2 [8 c% i- K8 P' r
/ P6 w' @1 [& q1 W- { int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
) j- {+ g% |/ r9 k. b, E" y
# Y5 i) v- W. ^- printf("input 16 numbers: ");
( {- A, r6 D5 }+ g - - b8 E# u# _1 R! Z; @' u0 I; D
- /*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
9 s) o- g3 \* k% ]" N$ @1 ~8 L
1 y- V, D. d7 ~8 P1 s- for(i=0;i<4;i++)
* T7 J" C! G3 O' J
6 G0 W$ ~( j+ |- E5 G% l- U- for(j=0;j<4;j++)
- X0 E: L. p d
% r( E2 T W5 v* M( r2 c+ O- { scanf("%d",&a[i][j]);9 m$ P8 O- a4 _( P' X) s
6 X8 N: q: y/ \( }' t- b[3-j][i]=a[i][j];
! V. v- Y9 t1 m; z* A
o9 Y) q6 ]+ ]9 }3 H2 L! n- C0 c- }$ |! h% e# O# @: g( ?! H* r0 _. V
- 1 w# X7 J/ r$ C, U
- printf("arrayb:\n");! z \% N9 H' H5 s
- 3 S! b z/ F) w1 R C" H
- for(i=0;i<4;i++)& j# R1 `; _5 d- V1 c
- t. h" {( o- Q, ?, _- { for(j=0;j<4;j++), }0 A' R5 L/ N4 t
- 5 D2 E/ m( {1 r: I# V& I6 ?) a3 ?
- printf("%6d",b[i][j]);# P: c/ ?+ h% U% ^( n
% v3 U9 y* y; G. G- printf("\n");
) E5 b8 C# X8 X" T% x# K U
2 L7 \5 j; L, y, V* U7 c! h- }
, E. \/ `3 V4 W1 b- U5 b
' G+ x0 H$ {2 p- }
复制代码
! U2 n+ C) y1 b" c' n 5、/*编程打印直角杨辉三角形*/
: B i, ~7 Z8 \! n8 U, v. T; F& t& t
- main()
* C. A5 E' [2 O# _9 @
7 n ~0 Y+ W; W' a' s! o* ^9 ?( [0 l2 b J- {int i,j,a[6][6];' n, _: V4 M% n$ }. z
( Q& k$ d8 R* @3 g- for(i=0;i<=5;i++)
# n3 B9 S3 w2 x* J
. x Z) i* n5 i* H) [4 U4 m- {a[i][i]=1;a[i][0]=1;}
$ M A( |% h5 ~+ O2 {" u k - & }8 v6 a [) T# Z) g
- for(i=2;i<=5;i++)
! P( `, C) G* G( O% G
; `0 Y8 ` M/ k3 Q2 z- C6 B- for(j=1;j<=i-1;j++)
! l! r7 k- q5 Q" A" {$ V* A - ' S1 U4 B7 r. C. {! T" C; o6 `
- a[i][j]=a[i-1][j]+a[i-1][j-1];7 O. F: H7 k+ Z" M* s7 G4 m+ K
- ' h2 L' R7 W$ L* E5 Y, a
- for(i=0;i<=5;i++)( K, z5 H9 |. n3 \
0 `6 i3 L' }, Y3 c( ?: K- {for(j=0;j<=i;j++)
' \1 V3 Y! R: d# A2 y/ ^9 `, @
3 q- ]% l% B9 I- printf("%4d",a[i][j]);7 Z# r, Z$ r6 s
- " A& h1 c! `' u/ x; k9 M2 G
- printf("\n");}
) E! s3 s5 n" a" b) _6 s - 0 _7 X' S: b7 B' m/ r
- }
复制代码 # W* V# w7 Y' D) Z7 f
6、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/5 e. a- b+ |4 w5 u
- #include "stdio.h"; i5 Y$ c4 }+ | N2 h
) C; Y) m8 F3 ~) }, v/ @- main()5 j; P, v+ I8 M! o9 @ H
- ; M1 O2 m+ S9 B: a1 C6 R% V5 A
- {int i,j,result;5 x$ d. S9 [5 p! b4 E
# T n; m: q4 S# A4 J7 d% r! _- for(i=1;i<10;i++)
* T' Y5 P- g% y* P. a8 J - 7 a- P @9 E J2 z# v
- {for(j=1;j<10;j++)
/ v' F3 ]3 p& P0 \. x0 [
' T) g( q0 K+ k" B6 `( h0 ?- {
( C! \4 t! `' s8 H% R+ p
, ? g& s6 @2 c4 `& O$ b& B- result=i*j;/ z D4 G6 ]! E3 x
' C/ L: F9 Z' B3 v5 g" Z- printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/* t4 U4 \7 S5 U, q, W
( f$ q q6 y7 |+ g7 U4 |- }
/ m- u: k3 j0 J2 n$ l1 c+ u
5 P% y0 H6 A2 A- printf("\n");/*每一行后换行*/
5 _5 a! K7 ^0 m, b
/ p8 ], |/ Y" l0 `: T; J- }) j% |: y1 S- W- b% |0 P
- $ H8 I: f( G1 u
- }
复制代码 ! Q& k; f' ^* B; o" n& T
7、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/, F) a8 t, R& i; R9 Q3 p
- #include
4 b2 Y' p8 ]/ S" o2 B2 @9 R - : N! X; D) o' t4 g9 P
- main()
1 C$ G m, b' a8 y( r
# g6 H& l& C0 t. O- ~' p/ A- { char s[80],c;
* ?; N9 i& ^- u3 V
2 d0 \, p# U+ E) M- \. l1 V- int j,k;: [ B5 U3 g M' g5 I& @( T8 Z
- 4 L# |: C% }$ @' {- {& O
- printf("\nEnter a string: ");
( k) X) _( [' K, c1 {6 g - 1 r& {8 e, ]* f2 W; E& ~
- gets(s);
- a# ~* r; w8 \1 D- g/ [; E! V - * u4 J) V+ f+ E5 H D- m/ A5 x g8 p
- printf("\nEnter a character: ");4 S1 b1 }% l. X" b. i
- ; |1 o: e, p' |1 E
- c=getchar( );5 H& k4 C, [- D/ e
- 2 y2 e! J1 Y/ S
- for(j=k=0;s[j]!= '\0';j++)
* u; Z& ?2 G: V
. j# v U8 R/ Q/ w! X- if(s[j]!=c), h d# D w- A4 x) g& o: {( M0 @& c
- / [3 j; k* Y5 m( J O
- s[k++]=s[j];
# @/ B( ]$ E& G. g- H - n1 S; K* h9 O9 l; x+ @" `! b
- s[k]='\0';
" f5 x7 @6 l+ h5 L8 | - ' r9 P8 V; q% Q" ?) G
- printf("\n%s",s);# [( m+ A4 |7 @
) @# F( v5 z( ]2 Z1 q: \- }
复制代码
- D6 I- H, G8 \$ s& @1 c 8、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
$ W; x) t+ X5 P. p 兔子的规律为数列1,1,2,3,5,8,13,21....*/
7 \ }7 w ]) g% N. v2 m( ]' A) w4 ] b. i6 m D" F
- main()
4 w# X+ e9 I& Z5 w
, x3 G2 r9 D9 U* B4 _8 q- {. g. H3 i3 t5 u/ I" H: U" O/ V
" b4 {1 }6 n; k+ ^3 U- long f1,f2;
/ U' s' |/ v+ U* e" l4 c+ U7 I - 1 j5 f' ^9 Q* L. n# |
- int i;; e2 |: M g" x* c2 ^) f
- 4 ]' r/ H6 F- D- |
- f1=f2=1;) [9 I4 N7 ~ I
- 8 B7 i4 n- M; h9 R9 Z
- for(i=1;i<=20;i++); f' l5 x M$ l6 \7 D
- / M2 W2 @: U, c1 h) }3 h! Y
- { printf("%12ld%12ld",f1,f2);
1 H6 f# G' c; x" ~ J x - $ l4 }( _* N _
- if(i%2==0) printf("\n");/*控制输出,每行四个*/
: e7 u: b. L4 I% T3 U. C
0 A$ F# d) V& `5 N) o" v. z# t- f1=f1+f2;/*前两个月加起来赋值给第三个月*/! N6 @- Q# g2 u
- ! E J, U8 N( T H; x2 x* m8 j6 e
- f2=f1+f2; /*前两个月加起来赋值给第三个月*/* U, r# r+ D) E" H8 ^" I: D" D: \
/ u. P* P2 {" V4 o, P" W- }, z6 t9 v; |% ^ |
1 c" l. x! g4 ~- }
复制代码 1 [( L: I$ h& ~) e' c8 r8 A
9、/*通过键盘输入3名学生4门课程的成绩,+ C2 c8 f G4 h0 f& P
分别求每个学生的平均成绩和每门课程的平均成绩。6 a, f* A$ Y. H1 h
要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车; o& T) z: W2 ~- ?5 ]
其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
0 C; K& G3 S! I2 ^7 Z
) y9 U3 g0 I! l2 W- #include1 r/ W# w& G" A$ `9 ? z0 o
. I# g/ v$ u/ I6 N& ?0 t4 x- #include
8 S$ }, y; e( {, b$ H: S0 j0 a
9 h; ]5 h& s, o# m0 }8 `6 `/ T- main(). j9 Z T2 D; W
- A& U8 u8 \" a. } A* ?4 I
- { float a[4][5],sum1,sum2;, l" G% O5 D1 `1 J
- ' B9 p+ f& `' n& e% E' W
- inti,j;
& I6 A8 n* n1 L6 M0 {* c4 }: v
) r% a ?: v3 Y+ |( E% M- for(i=0;i<3;i++)0 h. Y' ?7 f* y% c
- 0 \" ]: w( s3 o" j* n6 r
- for(j=0;j<4;j++), Z( s5 m2 e, a, `* T {* s3 U9 }
* D0 W# Q8 ^. X- scanf("%f",&a[i][j]);
" \7 _# Y% Q, f# K
6 z5 T/ c( R6 P$ }2 p- for(i=0;i<3;i++)
}$ r, K4 ]1 w" f/ K - & s- M2 F3 O. m& ~- Z$ G
- {sum1=0;
; a/ i9 n7 z% Z% `) y7 X3 t - 5 E$ ?1 \3 W5 Q5 U5 P2 m( r* s! A
- for(j=0;j<4;j++)
: R; E6 q& l1 @4 y! E, V- w# D
0 y$ [3 A* u) ^% a) H- sum1+=a[i][j];4 z- L( U! p; z! `
V: y* S- l" W5 b- a[i][4]=sum1/4;
8 m' j* u6 V4 b7 V z4 O) R) m) o
2 k4 x5 u5 [% f9 q, J! D- }; v3 N* y1 ~' R, h" s: v0 p) K
$ p p7 l4 d1 e. T8 p- for(j=0;j<5;j++)
8 t" T, g8 L1 T; p& K
# `7 x% o! {( F, f" e3 Z, q* z- { sum2=0;
/ _4 [8 Z/ k$ g3 i1 x4 L0 U! o
3 ?& x) c3 g* L c- V `- for(i=0;i<3;i++)
f4 g: g( T. I1 Y2 D
& J1 z& U! { D9 ?- G* f- sum2+=a[i][j];
; _8 F0 k, p; R [7 p - , P& _, M; p. P6 T! W' ~
- a[3][j]=sum2/3;
" i0 o" z& I$ C - & w! D' t* B7 H, [7 m `
- }
9 {2 J* S% L% D5 `3 s
7 _4 @$ j# L1 H3 S; p5 f8 @- for(i=0;i<4;i++). k# p9 }$ o' n c" [ u
- , y2 _: Q8 p% i2 j9 ]$ {
- { for(j=0;j<5;j++)0 `" ~$ {5 `" S: L+ r
- ! d1 z; _: l; C$ w/ }
- printf("%6.2f",a[i][j]);# ^( @3 |/ d+ j6 |# a
D( u! X6 j( `6 b7 i; c* _+ K- printf("\n");
" v8 }) f' F2 P8 e5 k - 1 r. |9 @5 ?- b- {; F& g
- }
( w0 z) |1 W: Y2 h& K8 n' c2 D0 b
8 n' v% y5 D: q" T) D8 y2 D- }
复制代码
0 I4 {/ S" d% P, i# m5 J r& ?2 e& y 10、/*编写一个voidsort(int *x,int n)实现将x数组中的n个数据从大到小& o) ~: B* G$ b
排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
h3 O! \! e7 @( j' `2 U8 F- #include" g) }4 {0 l$ V' v4 ? P
) l v5 D/ \% u }6 n& \' t* d/ {( G- void sort(int *x,int n)0 p8 r; r1 e; ]7 E7 l, Q; C0 K
! j8 @) s/ I0 X6 \/ R- J- {
0 V% J# |* ?( j. C# _! l$ r ] - ' n: h5 c j; d) f) n
- int i,j,k,t;* F7 T3 V8 C4 B8 r; `( X
- / v5 {* F4 v. ?0 d% f# F9 g0 o
- for(i=0;i
. K" V9 r/ A9 ~/ q. u5 F - 5 K2 [$ e; O% G4 D
- {
, n+ r, \ O; c* w2 i- S! o: \ - - Z8 G2 G3 h( e: N" F" X( J* c+ @, I
- k=i;0 r, I/ C i/ z/ X
- : G" Z) J) \* d# t9 \" @ u# ?1 r
- for(j=i+1;j$ }0 B2 k0 l: t2 I
1 S- k6 T/ x& t1 g2 _9 y- if(x[j]>x[k]) k=j;, @: H; I3 A5 p" U( {( v
- 3 E; W# l/ E! A: V( C* v
- if(k!=i)
' A! r$ }+ v" ?9 U# o$ Q; I - * ]' y! u' a4 l; s& _' u& l
- {& L Y" [' m& Y4 e/ M
2 u5 ]% ^' H% g9 K- t=x[i];
% a: M- p- C7 r2 H4 J
2 k' e" ~9 a6 {. r- x[i]=x[k];: L9 r5 J+ x3 } k' W6 S( {
- % m1 I) d$ l: t+ T6 Q5 M* L
- x[k]=t;
, N6 ?- H- G; {+ S0 w
+ g; [$ E, d( p$ ~, j+ o. Z7 F2 d- }& l# L) ~ s [9 { M' G/ |; U
- ) N4 i7 \# ?, r1 h
- }
; v/ N4 y6 j( X$ ^- N/ G# d- s - $ z3 Q' A; K i5 I
- }
4 w& c5 ?: R. N; i5 ]- ]2 }# w4 K - ! U( e& X# n W. W% M! C
- void main()
( f/ R- s' G8 t& ~' Q3 I/ \6 `9 O - ( K+ P* H% [' B0 L8 `% r+ J6 Z
- {FILE *fp;
+ k. h2 n; ?- K h
$ _' U* }9 i* j8 ]* d3 t' e- int *p,i,a[10];; p% e1 }+ J2 p
- 7 d3 @0 U7 }! u( @7 m' t
- fp=fopen("p9_1.out","w");
9 K6 \- ]4 c# |9 j# t# r
' B( _% `# k5 D( o* b6 T. {- p=a;3 | n4 }8 o/ |: r) _: ~/ F% C6 Y' z! d
- ' `1 h( Q n4 Z# M
- printf("Input 10 numbers:");
4 F5 T: T$ _) @' \, }5 f# ~* y - ' H- Z# X: n% G; A$ U
- for(i=0;i<10;i++)
4 M4 @9 w0 w6 z- u
) O9 [0 E* v) \" R8 l- c- scanf("%d",p++);; k- ]5 n8 i H) T
* o' P8 Q* }+ a# j2 I8 z. |- p=a;
h) V0 b6 E: b" \% j$ H - S, |7 O$ j3 U v
- sort(p,10);; }- h2 w+ @$ ~" i
- 5 p5 R7 Q6 v: u' u4 \
- for(;p
4 j! j# u" S8 ^
9 g( A6 }3 y/ e- { printf("%d ",*p);: ^# B. O \; e
# w' _" L. O3 \ e- Z- fprintf(fp,"%d ",*p); }
" A. t( _( N, G3 X4 e1 h
f- T, _6 @* d: Y& u$ j- system("pause");
, r7 S% A- e8 x% Y" p4 \
7 E' r4 c7 q! |7 u! b6 L0 ]# a' z2 Q- fclose(fp);
$ W$ c1 `. d( } - A9 B/ M9 k% g, K5 e2 k; \- E7 z3 g
- }
复制代码 / e! i7 F( n, h2 G
11、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/- T+ i) c' L' {9 I7 i v* S
6 f9 i4 Z) j- c- #include+ X; _# I1 q" n3 c% B
- ( C/ ]( I v9 [+ B. ]
- replace(char*s,char c1,char c2)- Q% C$ O" A6 W+ a
8 T& ]: H9 S! S4 x: w% M$ I4 w- {while(*s!='\0')- o- x6 @4 n3 Q/ q7 E
* H5 W9 h: C3 u$ j b. \+ \% z- { if(*s==c1)
9 b4 k0 M) j) C
; m5 Q& o7 k- T- *s=c2;
$ A6 h- b! N$ B
H4 u; F9 T/ G7 W- s++;! ]; J6 T! H0 \+ h7 ` \$ q+ Z
- N; D; P8 C1 }, H7 a
- }
! _" d8 h2 ~7 j0 j% h( c
4 ]( ?+ |- q- V7 |- }4 V2 ]" |0 d2 K1 u7 a3 z
- $ P5 i/ K# `! p( u W, Y# I
- main()9 H. @9 g5 e$ f2 n) |
. F* t& x" B# w5 M1 [/ ]- { FILE *fp;$ S# }; {( K: ~: X
$ `! J( |9 ^) P) H- char str[100],a,b;* _+ h @7 a( d. N% D+ V6 A2 X, w
) m' u* Z# f* o- if((fp=fopen("p10_2.out","w"))==NULL)
" x3 g# x7 s0 m5 R$ J - . N! W3 q9 }- K' x
- { printf("cannot open thefile\n");1 Q3 B) C$ [ i: I9 H0 s
/ a8 Y4 @! R+ v3 _- exit(0); }
( S9 A! G: s& O" M9 ?5 o - ; y# `/ H. U+ g4 [, s; s
- printf("Enter a string:\n");
+ m* C& w) m2 P) u1 s6 |! \
4 t7 w9 }2 G9 p+ i* o( ~, g! P- gets(str);
# {* u9 y0 T, }# c; V - . x+ }; ~; R+ ?2 y
- printf("Enter a&&b:\n");/ I& l z0 A# D3 o
& T. A: b2 v8 _/ o/ o `$ ^- scanf("%c,%c",&a,&b);! m) |& }2 Z5 k2 ?
- 9 k, k! Q' a" G
- printf("%s\n",str);5 A, W) U) o+ U2 z) R
- ' k* i" v: @0 c$ w
- fprintf(fp,"%s\n",str);
! [7 ~2 u7 t' b: g# M - ! f- @6 v/ F/ D7 @2 K$ I, {8 s
- replace(str,a,b);. N F& O0 f( w6 A1 u& u
- # T$ S1 L2 F! C4 b
- printf("Thenew string is----%s\n",str);7 k! `% Y+ d' _3 k
- 1 p* ~ f' u" }, e: ` h
- fprintf(fp,"Thenew string is----%s\n",str);" k+ V" \, Q8 {
9 Q T2 g' }% t m+ t- fclose(fp);+ n9 n3 j, c2 C/ n
- 0 ?% r" d3 o+ F K5 |/ b9 G
- }
复制代码 D$ a9 m2 ]/ N! e
12、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置( M1 H" u! a. M* p' c; C0 t" i4 z
,不存在则返回-1。*/% k" p& p' n! U, T1 B; I
% n$ `* N3 W# y+ w& M1 y
- main()" C* m* X6 E( v; R
- # h: D9 m8 Q( w) \
- {chars1[6]="thisis";char s2[5]="is";% L9 f$ \8 W3 }( i9 k% j' r' T6 g
- 6 D- n# I& ^$ k% I3 Z
- printf("%d\n",search(s1,s2));
9 O& [8 N3 g/ m+ E; P
/ l5 e6 Y* n; f7 o- system("pause");4 V F: ^1 \2 |2 h8 t% O
y! p2 ?9 S+ O. P E0 \' e- } v2 ^ z- Q9 ]+ Z# C$ U
6 @8 H+ Y+ A% S6 M5 v5 ~( s- int search(chars1[],char s2[]), b6 n6 u: J7 V! {/ m9 i9 E/ {
9 t) B$ Q' J: [% }( m" N& b- {inti=0,j,len=strlen(s2);
$ Q1 ~3 B: B# K8 A - / \9 T; Y; t& W$ c7 u" ?1 P+ K
- while(s1[i]){
1 |8 h/ K# I/ k! S: Y3 c5 o" f - 0 ~- w! ]* Q+ l7 J# O
- for(j=0;j
2 d4 `+ U$ F6 }
~4 D1 \8 f, G& Q- if(s1[i+j]!=s2[j]) break;
6 T5 }2 v& K3 H1 Y" Q
+ `6 R, Y; e/ K6 a5 `' O8 i0 _- if(j>=len)return i;( ^) S) o. r% M/ J+ }# D) V& F( a
- 6 I+ w& `, j( T
- else i++;
8 i' @' I4 i( J* {) f) s' Q, o - ~' A$ Q/ _$ Z; A& ^' G% R
- }
3 g3 ~1 A! s" V2 t9 w - 2 N+ A* \8 _+ H, ]. E/ \
- return -1;
& k8 ~3 Z9 O3 G0 @5 E
" g" H* W0 c/ l' H# t) D: y- }
复制代码 $ z% T8 X7 Y; U0 N0 ]6 ~* ~0 V- z
13、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/" J' `" j, D! g5 K' O! x1 v
+ S+ o6 B! v% O: A6 ^9 ~
- main()1 l. w' w# {5 l) p" r
- " n3 z1 t( w+ b+ b. H3 W- q
- { inta[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/5 ]1 n2 b( ^' l8 F
- % A1 W" _; `7 H4 c
- int x , i, j=6; /*j为元素个数*/1 b' C' ^ H1 @3 j: z7 u4 x+ y
- 2 o' D5 v6 @% s
- printf("Enter a number: ");
" @9 m) \9 q( L+ G3 @) @ - 9 l2 A4 D! Y9 K- |7 }2 z
- scanf("%d",&x);
" h( X9 q" `& j+ N- |( I - " c/ ` ]9 c& e6 d
- a[0]=x;8 \9 E' u9 E% H9 s N
; p" i3 S$ c, `- i=j; /*从最后一个单元开始*/
) {2 f& ]6 e) g# p - " ~" D, @3 j" W
- while(a[i]>x)+ u8 i, j; N' T
2 z0 ]) D* g1 I/ y- ^2 N- { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/! R: J8 ]8 c' c1 Z# t. K3 {. l5 `4 q0 R
- s% V) s5 }# o/ Y
- a[++i]=x;
1 I8 O+ S. w$ I) @ - , l1 I; f( y2 j3 l
- j++; /*插入x后元素总个数增加*/
% ^9 j+ E6 j* C: Z- e - ' @- A3 F3 q+ r9 V
- for(i=1;i<=j;i++) printf("%8d",a[i]);
1 e! L) d. h9 q* X% X: }8 s
' M6 b& `& e# U" m. ^- printf("\n");
4 [2 Z: \1 m: d) j) m6 x, v: J
& h' Y# U% n ^2 h8 T- D- }
复制代码
. O. _1 f. q0 j q- I8 { 14、/*用指针变量输出结构体数组元素。*/2 q0 ~3 O. U% H b( o/ T8 ~
u; A8 n# e! c+ d1 m- struct student5 z! w" ^! s5 `$ [5 Z, k% j$ c
- 8 c; N5 P8 x, L; q5 F' y
- {
& W; C: a0 p# t, P' H - 3 X2 m5 B1 S j' C5 \! c
- int num;
* j9 P# S9 t9 \2 t/ y% w' J# h7 i( U
' G0 a% }/ J% l& t- m- char *name;7 l- U. c0 Q' q: j
- $ b0 w" q+ r$ i! W7 |$ R) D
- char sex;6 p* u: [) @* M' |" I+ V
- $ `+ n; K9 \+ N* F& Z: n/ o
- int age;4 ^) c- O1 |+ b0 D7 Y9 l
- j3 T# e' M: ]- b$ a' n! F1 c- }stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
: R0 a! V/ Q5 n% a
. N2 v$ Q. ^$ ], x- main()) ]0 e5 F% f) S( V5 L5 B6 v# _
6 A2 J$ n/ _" u, j! c5 ^ ~- {int i;( A/ j7 C: t X- ^
- ' J0 I d- V) q {4 c- ?
- struct student *ps;
% h! N: d3 n" L3 x3 Z# T - % c' {& Q5 D P2 k) c6 `
- printf("Num \tName\t\t\tSex\tAge\t\n");- j9 m: R: r$ s
6 b( Q* _$ }5 B$ Y2 ?* V, r- /*用指针变量输出结构体数组元素。*/7 J" W3 n( m4 [8 H9 r6 l; s
- . d; R0 r5 A! ?# X1 U
- for(ps=stu;ps
; U% W( O* v) [" z
! I( O, n% f% o- printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);, Y1 h8 C5 Y/ S
- i E1 |6 k# B5 C! K; ]- /*用数组下标法输出结构体数组元素学号和年龄。*/
- ]) f0 N0 Y9 z" k0 |& T* m2 s
1 B( V' Q# s# B+ r" t- for(i=0;i<5;i++)
, d4 F' e; `! R7 j# ? - * \& _) [/ D# R& O+ J
- printf("%d\t%d\t\n",stu[i].num,stu[i].age);
6 _; Q' y: M, a: c$ b2 c
. N$ f1 Y2 \) I, C& M- }
复制代码 2 f: X. s! u# K* s
15、/*建立一个有三个结点的简单链表:*/
3 [7 h1 k4 m5 f4 S1 W* T$ s
" |4 W, F# h G6 T4 g- I* R- #define NULL 09 q! t7 z2 _; F* m# K1 W- B
+ b8 l2 T* L, O1 u ~1 w- struct student
( P% N8 c0 u6 ` - 0 x! @% |! F3 }" S$ \
- {
( \' m5 Z' {- \2 L8 N! \ - - a: q1 _, C7 g3 X0 K$ Z$ s% i
- int num;2 G# l4 ^% H: {6 S* @) k
- ! h7 o/ }5 A5 E8 l# i
- char *name;
- Z/ z% M8 h) Z- q9 F - 2 J$ T; K4 C; T$ v+ U+ z
- int age ;
6 @" v; Y6 W1 p' a1 D9 H - 0 {+ I- ?, m7 b$ u
- struct student*next;
" J& Q) M9 Z0 h5 K1 |
3 U& S! N' I" N/ A& Y# \- };# y% ~9 ?# b( [- O- N5 `. ?
/ ]/ H4 D) B1 x3 t) m6 u5 s- void main()
$ Y$ R, ^3 T+ E! G0 \ - 1 h- X3 B0 Y! r% Y- U2 o$ J
- {: a3 ]: V: d$ S
) V8 r @% j2 m- struct studenta,b,c,*head,*p;
H6 K1 n9 Z6 @ - 6 O* O) o( {0 }. ^8 m6 b% _9 y
- a.num=1001;a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */
6 M9 H5 L$ I, h& [' Q
5 a( R, a8 K0 V- b.num=1002;b.name="liuxing"; b.age=19;* U$ t1 s2 ~" h# G, S1 {3 N j4 u3 }
- l0 ^. O6 I3 T
- c.num=1003;c.name="huangke"; c.age=18;
+ R7 b3 j4 L: X* ^
' O. V" ?3 }, ]- head=&a; /* 建立链表,a为头结点 */1 b0 W9 b4 T% S* y$ x; f
- , V0 X/ K# \0 J9 z5 R: I- U- s
- a.next=&b;: e2 r" Q, U3 S" d2 w
- 7 ^, t1 M9 E# V6 [" W
- b.next=&c;/ k- V1 X/ W4 L. w9 I; _
9 a6 K M L4 O2 j& D- c.next=NULL;/ R j+ @. A M
- . t& E- A( A3 g* c
- p=head; /* 输出链表 */
) d% x$ o/ I# f1 E6 `+ y
- S2 R5 U0 p/ ^- do{) {# _$ [1 g$ ^
- ' a; d" r# z/ r/ ]! C
- printf("%5d,%s,%3d\n",p->num,p->name,p->age);7 E0 } H3 W2 ]- p1 b3 L
- 8 P3 m2 D. V8 M4 o$ r, _
- p=p->next;
2 U% e' B4 J, D8 U - 6 q. e& E* y1 t6 [6 `; b
- }while(p!=NULL);* f- f! C: Y& c" K- \3 c4 ~) A
A& S+ e6 {! g3 Q& b' W. l- }' ^" Q. _- y c: J
- : |9 t% l; k6 k/ I! q3 k5 P& M
- 16、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/) H4 z! z! Y5 y( B
7 }1 G5 E0 h) \- #include
- y- D- V$ g# r: ]4 S4 f5 }9 n. u& h - / Q2 Q. |2 ~# W4 ~
- void fun(inta[],int n): t- m! ^2 L# E$ h% ~( w& l
6 R" E7 i$ [ h% M- {int i,j,t;
/ o8 u- |# J/ x
% C3 [' u. W: s# ~+ d Q% ?- }. M- for(i=0;i<=n-1;i++)3 H* u0 j- e& ` [. K# u, z
6 n; t! t7 w9 ~; y3 V4 U- for(j=0;j0 R6 {0 M" L T% F! _
+ ?# L& S$ L& t- if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}0 o8 D& X' h5 a; l9 ?7 N
- 3 f8 C* Q. U+ F' k$ X
- }7 w! B9 p. H3 G" s
7 }7 Z+ e1 d* e4 K; V' H- main()
9 O- h/ O* A2 b
) b' w( `0 x4 _7 s6 N" e- n- {inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
; n) L, }. W( ^$ f
% O. r1 e+ v' }: h& X- FILE *f;; h% H& F W& }$ y; Z2 Y; i
/ ^. g0 I- \9 d3 o$ A- if((f=fopen("myf2.out","w"))==NULL)8 y# K I4 t2 e' n
( N) j+ b- X' M( M9 D% _' V2 c- printf("open file myf2.outfaiLED!\n");
% e( p4 B: l. }4 Z% e# d
$ \0 |* `) h3 y% C; {* L- fun(a,10);
# @& `: E, } s( V
5 v, ]4 v+ o( E. |# b: y+ g2 B- for(i=0;i<10;i++)
: J; K9 ?6 c4 K2 Q [; d: o - 5 {4 l6 k9 p2 r$ g# X
- {printf("%4d",a[i]);( K2 }9 i5 Z1 d+ D
- 3 ^5 D) p) \/ r l, D
- fprintf(f,"%4d",a[i]);' D: Z- l8 o% q: i. @5 Q! ^# |
- . S# r9 C; a# B( ^" x2 y0 R+ W% r
- }3 ?% B; I, u; p* ]. ^
: b$ {& Z: B( n2 ^5 N# Z; o$ w- fclose(f);2 C$ L! C& W, J/ y
- - E/ u0 ~6 @6 w, E' f1 y5 |3 d2 w$ X
- }
复制代码 , f1 N8 _ N9 z, Q$ _ m
17、编写函数countpi,利用公式
+ E6 w% Q; E) l) C+ O D 计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。 R1 K, }( r* D. S$ F2 g
5 N) [# f2 f' D2 a" k- #include
& u* Q: {$ @ f- E) D - ) A+ u% ]* L- V
- doublecountpi(double eps) /*eps为允许误差*/. Y9 c! ^1 m- G, p; j+ O
q l4 @0 j, N+ c' J+ l# G- `( R- {
- q; b2 s$ k) t- l0 [9 E - 5 l* c$ Q7 u: r
- int m=1;
5 g0 O- b3 o3 I X; U/ Z4 F/ ~
% ~2 ~5 }+ y: ]. {- double temp=1.0,s=0;
. I, `# m! U% p) ?, j/ A* z
& f" O3 ^0 r% ~/ r' b" y* C! q- while(temp>=eps)
P @9 p' a( N, E - ! P: _5 ~4 e; _
- { s+=temp;
, P; q/ c+ h( B/ a - 5 X5 r6 E; |) ~9 T4 q1 e
- temp=temp*m/(2*m+1);7 Q: s' g# L$ v7 Y1 M7 n$ x
- ) }- f( H s- V# l) B9 N @
- m++;" ?" E: }: R4 e g
- |; M% g: L x# I6 k. ?* l, q9 o- }- }" f: m" N: L1 k" w: E, U
& Z- Q2 K, E; R$ \# I! i- A$ S- return(2*s);
: N$ x1 _: G" `5 ?! f
8 R+ y+ y5 p% U+ v) J" r7 i- }
) `) P& Z7 J( {! o+ n - : v* ~$ F6 k2 s _& d
- main()
5 W0 J' W9 F* v! j. m; U
& Z' l7 s4 m! [, O5 O) x7 I7 P/ q- {FILE *fp;
4 l8 n9 _2 @5 I0 E - 5 F' }5 W4 S( l' U
- double eps=1e-5,pi;3 T9 X, ^) U$ h
- ( n1 x2 F* k( F9 p: s, R' F7 Y# y; Q
- if((fp=fopen("p7_3.out","w"))==NULL)# L+ t8 H% `2 l2 T: B$ t/ i M1 n
- \' c3 |" O# B- m0 n! z& T. O
- { printf("cannot open thefile\n");' F, \8 X5 a0 F4 k6 ^
- ; x6 l; P6 l+ c/ K9 f
- exit(0);
8 p5 U! m" [1 I( i - # y. d6 u$ P/ N, r; {1 S% }
- }3 R8 h, m+ ^6 i- g8 k' S( c
- # |5 _$ g6 G- x" X
- pi= countpi(eps);
* \$ d. H q' L7 Q3 j4 H3 b3 n9 R8 m - , o9 D. {( _+ E* z* X" ^
- printf("pi=%lf\n",pi);
3 Z: Q {; K% M( {3 q. u/ B
. `+ |' B. k- q' N' W- fprintf(fp,"pi=%lf\n",pi);5 M- C$ j- a5 d' g- ?
- + v! q5 u5 |- |
- fclose(fp);
, @& d, z" ]5 a& o; o
' c4 c$ C" r, Z2 r& C7 G. Q+ J- }
复制代码
: @% z! T7 k) ~9 ]1 `) ]! g, Y8 { 18、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/2 y5 ~' S& F4 [- `6 O& F
2 b! a! w, _% w% o, _, `, C
- #include, r3 K! l Q6 z4 r' t, Y
- 2 v+ d" m) D C4 \" n( G9 g, }
- #include' ~, F, i4 M' C5 p1 q
3 J* N: I! R6 K5 f' y- #include
" P2 E2 l4 E5 G& U - ; p& Z, h3 n+ M" y$ C* k+ j
- main()4 e- n2 E7 g" A: D9 h# @( E, c
$ K! ]' s o7 B" I6 K8 g( D9 [- { char s[100];
1 U/ F! @7 g7 l. e - $ J% t: G- j- ^( X, r2 ]. D
- int i,j,n;
6 {' |; m Z& R. V& k) u - ' y. N; Q4 Y6 U/ P0 R; Z' w! n$ x
- printf("输入字符串:\n");
0 S2 D) i/ O4 v( c) s
/ g' [7 o7 W9 i: h5 T- gets(s);
( y$ a/ E: {$ t9 M |/ U4 V - 3 O) y4 u/ @6 Q" `$ T) f
- n=strlen(s);* B6 O3 g3 R( O
- ! n" \. x3 ?4 _1 D4 B
- for(i=0,j=n-1;i
; u2 z( E+ w' h* m ~7 i/ @; ? - 6 J2 @% N0 }- W4 w0 Q9 ?5 H
- if(s[i]!=s[j]) break;& V2 } M4 R. y M. U+ M
- 4 I+ ]$ ?& ?- d5 V/ `% @8 L
- if(i>=j) printf("是回文串\n");
0 _4 w) M: s# I1 f: i# H - ; ^2 q, L4 s* U8 l1 E$ E$ `/ G
- else printf("不是回文串\n");
( }8 K/ S( c* ]. _2 b2 O; {" J' T9 x$ c* i
, o0 a! G$ G: `- }
复制代码 : H! o& b& S: d
|
|