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