|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序6 】 ( J( y) }2 Q( }
题目:用* 号输出字母C的图案。
% E) k# G7 A* N. _2 ]6 Z' n6 s1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。
( y9 P( T' [7 ~/ U2. 程序源代码:
4 B9 O# z$ \% y( X; b#include "stdio.h"
8 f7 M- G- ~# J2 r$ V0 B& [main() { * S* s; a: ? L
printf("Hello C-world!\n");
- G4 Y' A% p* I! F# E& O' c n fprintf(" ****\n");
. [8 n: c' |% \! T$ qprintf(" *\n");
3 O0 `7 A9 W. q) wprintf(" * \n"); + c6 ?+ a' ] g# C% ~& \6 _
printf(" ****\n"); } # ~+ |, I( y: x0 m
============================================================== ; S$ n( c# z4 F- @; V' e
【程序7 】
! |; |' l! b& b- N+ y" q; n5 K0 T题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
8 B- f: |9 D. y5 I& D1. 程序分析:字符共有256个。不同字符,图形不一样。
3 ~% G p- m3 E* Z3 U0 w) g1 o) @: `2. 程序源代码:
+ s7 u6 w0 c* E# I! X#include "stdio.h" 4 X7 U' ?6 n3 t/ z! P; i
main()
% V+ B# P& t1 t# V% @9 B3 V& g, s. y{ % r- y0 @9 a- o" B6 F
char a=176,b=219; $ h+ ]3 R- i, O! X2 I$ Q
printf("%c%c%c%c%c\n",b,a,a,a,b);
4 m# c V* |: w6 m* _ xprintf("%c%c%c%c%c\n",a,b,a,b,a);
6 j( V$ s! E( Wprintf("%c%c%c%c%c\n",a,a,b,a,a); 0 D8 k J5 Z& [! B& J9 E: {
printf("%c%c%c%c%c\n",a,b,a,b,a);
1 F& H' n1 a5 l Y Z5 q1 ]printf("%c%c%c%c%c\n",b,a,a,a,b);}
# R; e8 {$ r+ R2 U- s3 P==============================================================
' H9 Q: H1 C$ l0 B- E6 l! y【程序8 】
5 u9 c3 c; K, ]; j% g4 z+ ~) U0 @' h题目:输出9*9 口诀。 ' t% C X6 R, j( r
1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 % ]* r: }6 ~# r! H3 z0 E2 X9 ~
2. 程序源代码: ; x* X% k1 l0 P1 a! |- H' o. Z% }
#include "stdio.h"
; Z/ k1 G; d: F6 |+ kmain() " Y4 t* l# A& L! B. j
{ , B+ A; h6 f# L( A1 t
int i,j,result;
8 u9 J1 P. f+ P1 \/ j& Rprintf("\n"); 1 Z2 M O( c& l" Z
for (i=1;i<10;i++)
/ f- B) H* j7 P1 _{ for(j=1;j<10;j++)
7 q0 s6 h ?, Q( r _ ?$ {& u{ 6 E9 Q% d, w& q6 K% Q E' {
result=i*j;
8 J/ j. t& ]( P4 {! j9 V% Q8 `printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/ - j3 b4 V" C$ m7 ? r0 S( e
}
7 B& F, ^( Y% ]( x- p3 Q( i z$ {+ pprintf("\n");/* 每一行后换行*/ 2 @1 T8 x% ?0 _8 N
} ; h, b: H: B" I- [6 ]
}
& a T# }! r1 C* i% R2 n$ j==============================================================
' c! x" B9 r' o【程序9 】
' l- b$ B& D+ D7 K; u+ j题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
2 P8 j2 U2 a! @; P2 o& ?1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
' ~$ Q; E* ^! C2. 程序源代码: 5 r- Y! x& }% E7 w7 U
#include "stdio.h" 5 x3 b7 @1 m; m( B
main()
4 f/ Y# ~8 F, n. `7 }5 n{
# d( A: Y/ u% _ @; w3 T" Nint i,j;
3 j4 U: Z f3 T1 U" [for(i=0;i<8;i++)
0 p! A- T+ E; R: s9 n% U% f{
. Q; f% K5 }, x/ I" i$ Mfor(j=0;j<8;j++)
5 k# w- C6 L* ]5 Pif((i+j)%2==0) ; |) Z. W7 Y, \- e% g& H
printf("%c%c",219,219); / z9 o" R0 L- h. m
else
1 ?2 ]1 t2 J4 u( W1 g. B. G" Eprintf(" ");
1 u: i- U' x N% L+ [printf("\n");
1 q/ f5 }5 w) k}
3 h6 z" l+ j+ L) M9 V1 z- F} & |7 @% @- b8 @6 \9 ~9 o
============================================================== ) o3 z3 [) Q" J9 M! r- K
【程序10 】 : O6 g- |. t0 ?8 J) A1 y' c4 S- ^
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
! X) c( I6 O- @; ~0 h- c1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 ! _1 N4 x+ N& J0 F
2. 程序源代码:
2 ]% v* u1 l7 f: s8 w#include "stdio.h" ( S* N1 U4 \; K4 f
main()
- Y _+ Q. v: u2 p7 t1 v- i# b{
1 k( y% G9 \* ?$ Qint i,j;
5 Q" {7 a0 ?* }# t. x4 p0 Rprintf("\1\1\n");/* 输出两个笑脸*/
5 a: h) Z# b2 |1 j, I, T1 sfor(i=1;i<11;i++)
% k8 X9 t) e! R* J1 e$ r{
& }. }& \$ \2 a6 m* ?6 I& Nfor(j=1;j<=i;j++)
3 z3 m1 n. b: l2 e7 w6 d$ {, ? y4 R5 Hprintf("%c%c",219,219);
% |; t6 ]$ N, H, k. X! fprintf("\n"); . c; x: B# b! X# }
}
$ p) h- j3 I% w$ y" G Z. y}
, f1 K6 `" c0 q2 i* U5 }8 |
; G; U" @6 E; t9 f" |$ M) V) W
/ a7 h: N" Z/ ?! _( h0 w' a1 B' Y r+ R r2 Z% S2 e/ O+ K; y
作者: zhlei81 2005-1-22 11:29 回复此发言
\* g( G9 v$ k4 i% E/ K
2 M; S" m. _4 e--------------------------------------------------------------------------------
7 d% s0 @$ m3 X9 s7 J6 F, _
( T. n! }( y# n6 F7 m6 ]' {3 回复:经典C源程序100例 7 i, U) K0 o3 R7 \* b) i
【程序11 】
' _( K3 N, s% c3 v/ p# j* P3 d题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月 ! J) L {" m3 X8 b% W
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ; I5 t; u$ T# h" F8 i% o' {5 N
1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
7 F! i3 ^4 {2 b C3 x3 G7 I2. 程序源代码: ) \. S' x2 v8 P; J; g
main() , V5 T1 \+ {4 U7 T7 T2 s
{ / X! T: z) z3 P2 Q( {9 [3 [# G
long f1,f2;
$ S- E0 C( B; ]) n$ G- N* C* ?int i;
, l! w8 ]& |4 k$ c2 D! |f1=f2=1; ! ~ N4 S* h9 J7 {. d9 \4 ?
for(i=1;i<=20;i++)
# u& u# K& Q# {% f i5 D{ printf("%12ld %12ld",f1,f2); 1 S1 D1 d. H8 Z! X) Z: P
if(i%2==0) printf("\n");/* 控制输出,每行四个*/
; G# s" C& ^' H! K! ~% |f1=f1+f2; /* 前两个月加起来赋值给第三个月*/ 1 K4 \; q) X9 f8 h; F$ l
f2=f1+f2; /* 前两个月加起来赋值给第三个月*/ 8 z- B9 }& [ H5 C* F3 b8 }
} : G; S# A9 J% j& S1 c! y+ b0 y
} 8 G! ~; o; Z. h' V9 L
============================================================== : H$ o: J% @( k& ?: e# P; i
【程序12 】
# j' ~9 M- v5 K题目:判断101-200 之间有多少个素数,并输出所有素数。
: ^4 X- g0 R& E8 j" x2 m" i; S1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, ( g" J7 k5 q2 B+ ^& ]3 b
则表明此数不是素数,反之是素数。
) K7 y: ~6 L- \% t" I2 [2. 程序源代码: & g, v6 K7 j2 Q2 T$ J
#include "math.h" - N$ p. u9 g( F0 D& w4 p& d' t
main()
7 }# u$ X C7 v0 r0 i; y6 W{
- W% X8 p* f- o) X- B! M4 Hint m,i,k,h=0,leap=1;
3 s; f5 d% B9 K( S7 A( w3 F/ |) D4 qprintf("\n"); 7 D& X* V# j' t8 i1 X! v
for(m=101;m<=200;m++)
' J0 f) l$ r' }8 [, q{ k=sqrt(m+1);
$ T) \- g" ^- {3 J3 @5 ]5 H% [for(i=2;i<=k;i++)
. J9 T, \* X0 Wif(m%i==0) - s4 b6 r# S/ f
{leap=0;break;}
8 ?( V9 C, l! N3 qif(leap) {printf("%-4d",m);h++;
( E- s% q' |+ W. s6 X, U/ M# sif(h%10==0)
. r1 B+ y$ Y5 a: l# G( Uprintf("\n");
. s- R1 E: U n3 k}
# J9 r& `3 I% `* z% Z, ~leap=1;
1 Z$ _& C+ g5 e( \$ J- \ d} 4 F% \* G% c9 v/ J1 ~- [
printf("\nThe total is %d",h);
2 |! N5 W6 ~- L5 a}
?: p2 I* e* I============================================================== 3 h* N' {4 w) ?5 W1 u# V
【程序13 】
# h. I" M! s# a& k; P' W题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
. ]- r8 O- R' X8 p4 [本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 : S% N" s. F1 ]4 n# n8 ^: y! J
1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2 L# b' E" X, U7 B1 m( ?2 q
2. 程序源代码: / P$ A/ y7 I, \4 _
main() 0 \" g: L" T1 b$ M/ ]9 S
{
& V/ |1 ^2 V) j" U/ }' i# qint i,j,k,n; ; ]: y) |, x% S9 ~9 W8 N/ U9 ^/ R
printf("'water flower'number is:");
0 K, F1 [! Z% P, _/ e" T+ @for(n=100;n<1000;n++)
5 A5 P% h7 G3 @( I1 Y, n{
# X: p) g ~9 {1 r# [& V7 V bi=n/100;/* 分解出百位*/
# }7 X5 z d) _4 l! w# ~j=n/10%10;/* 分解出十位*/
9 @+ \9 u5 g% V% m8 {; H, Ck=n%10;/* 分解出个位*/ . o% k- w" `3 X& C5 F
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) ) p9 N( z( o- D+ P
{
5 i3 w8 c2 a# s6 L. c. Nprintf("%-5d",n); - T$ G4 g1 g4 a2 X/ Q7 Y1 K
} ' D' T: ~* U. ~4 `; k" Y
}
z0 X$ V% @! y3 m$ xprintf("\n"); ; \1 g O, _2 S- f% U: ?, {5 P
}
# z$ C1 q! B1 \4 C9 f5 j% A==============================================================
7 j% L" I5 j* `) e【程序14 】
9 ~+ t2 f/ C+ {7 ?3 i6 P9 m. o题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。 8 K# ~+ s: m/ y6 s( }* B V" ?
, `; l Y1 j) e' z* _; p程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
% U& ~9 `& Z7 I" M* @1 s(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
5 u* J# N. | x* E(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 4 T, g% N9 {. j' m# A) `
重复执行第一步。 3 t: P9 ~/ c2 D& c: a. S
(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 9 H9 A& c6 T* V: K( ^
9 o3 \3 g+ Q# @( _
2. 程序源代码: 8 C @2 o, l- L3 k6 O# ~# ^
/* zheng int is divided yinshu*/
/ D1 |2 G: l0 K6 |$ ~5 Lmain()
4 d7 M/ ]# B) U! ^* M1 g{ M% O1 Z: q7 X
int n,i;
* l4 }# A7 c% c+ O- l* @printf("\nplease input a number:\n");
1 @- u) L" X% H( O4 l" t' e: hscanf("%d",&n);
' {( w' n( ~) W- @3 s! g# bprintf("%d=",n);
2 a- Z1 |! S* A5 sfor(i=2;i<=n;i++)
4 t% ]. \. E9 q9 a$ ~! |$ A/ ~) T{ - _& k# u5 u; _8 A
while(n!=i) ) E) }6 N$ S0 \! C
{ $ v) C8 y; n7 _! ?2 ]1 a6 a
if(n%i==0) * ~9 M1 G ~' v7 S; x) E
{ printf("%d*",i); 9 p6 e I" o, @; W6 j5 J9 ^
n=n/i; . l9 S4 S7 M5 u& X1 l
}
0 A: l% J7 Z: o1 J& F/ q& Yelse ( W& r* ]% Z5 s3 ?) @
break; % ]. _$ T' `& i/ ?/ O
} ! }7 o' J$ I6 J- F2 R
}
3 `! t* q. y0 a, r& F& ^+ I$ Sprintf("%d",n);}
: P0 h4 V: C+ Q l8 C==============================================================
$ h$ v* s( L/ s% ~+ p# W" H4 s( G【程序15 】 2 ?/ w0 j: s0 K2 T/ ], ^- c
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示,
# R& q% T( U% K8 s* @9 G6 E3 R60 分以下的用C表示。 2 v3 h4 \1 {! O5 _
1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 ' x# _- _$ F; w* u; q+ V) t
2. 程序源代码: ) @3 |8 ]: N2 z1 `) p- h
main() 6 D6 i2 Z/ s; J) Z" J
{ * S8 T% B4 q Q" z' t% M+ c+ Z
int score; 3 U4 W2 v" J. o5 f
char grade;
$ S' N) _. K# U/ hprintf("please input a score\n");
/ a) } I6 K9 \/ }( v3 L( [8 |) Fscanf("%d",&score); 1 w, l' O: C8 I4 v0 b- g
grade=score>=90?'A' score>=60?'B':'C'); 8 [, t+ n z1 y' \, X3 @
printf("%d belongs to %c",score,grade); # ?" `- B6 j) T
}
6 R/ ?- A! s u- R7 G==============================================================
% ~9 I! I6 O: H! C
- M8 {5 F) V/ I# V4 n7 z |
|