|
【程序6 】 4 Q5 g: B0 M# ^2 y3 f
题目:用* 号输出字母C的图案。
. ^# b% D1 B7 n& s7 M* w1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。
" P! o. B0 j7 E) d) [7 I$ a2. 程序源代码:
0 b: f% l' ~- b# S+ N; u- {#include "stdio.h"
h1 k. w# K, ~4 j# Y7 [, F' o4 K% v& Bmain() { 3 [- L: x, N. R+ q4 a, F& {
printf("Hello C-world!\n");
2 w6 V7 w- C. z% R$ s! p1 Q2 J+ Tprintf(" ****\n");
; M6 X9 U; s8 ?! G$ r# lprintf(" *\n"); 7 |( g3 [" h6 }3 G& [1 e: U+ Z
printf(" * \n"); 2 l+ p6 K* z: g
printf(" ****\n"); }
- d; G, p8 E3 X0 L8 i9 R============================================================== 0 v0 s9 k, }# N. g, b% U3 G/ ~
【程序7 】 " J* x( a( Y, `& u- G
题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
) U) e& ^, I5 Y: k& m: f8 a% x1. 程序分析:字符共有256个。不同字符,图形不一样。 9 l' M8 x6 K; p- N4 y4 }
2. 程序源代码: 6 E* ^+ O7 S; l! D
#include "stdio.h"
5 ~5 g3 T8 n U6 Y R8 ^# Amain()
& E# C8 ] h9 P- ~$ h) p; @{
0 r- M9 y1 _, H2 _' V/ O, b5 fchar a=176,b=219; $ v3 V J$ F/ H
printf("%c%c%c%c%c\n",b,a,a,a,b); 7 f7 G8 f1 _$ S, T/ c" O
printf("%c%c%c%c%c\n",a,b,a,b,a);
: h$ J6 h$ J, _, } H; I V4 jprintf("%c%c%c%c%c\n",a,a,b,a,a); $ o9 l8 B5 L3 ]/ @" x
printf("%c%c%c%c%c\n",a,b,a,b,a); h* v0 ?8 V% [# Z. Y6 S) @
printf("%c%c%c%c%c\n",b,a,a,a,b);} 0 O, U3 D5 d9 Z" E1 P
==============================================================
" Z9 y) ~7 Y5 w ~; h, }【程序8 】 & v, n m- A. W2 w$ ?9 N
题目:输出9*9 口诀。 1 A' |3 a# S: y. M% G/ _
1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
# U; y \; {* j* d/ D2. 程序源代码:
1 q5 ? v! n5 Z5 C7 M" i% Z#include "stdio.h"
- _3 a: M+ ]$ ?1 e! cmain() " T% D$ g+ ?8 f n+ h
{
9 U& D1 k( F+ X7 a o& _int i,j,result; ; M3 J, p" C2 m& v: O+ F
printf("\n");
5 L. d' q4 d2 Xfor (i=1;i<10;i++)
9 M9 |& x" D6 d{ for(j=1;j<10;j++) + H. e" M6 V+ P- s% s& w
{ + A6 ~. Y# ?, r
result=i*j; 1 ~/ U# [9 j# I& v# R! m) e
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
5 z, m n U$ N$ y1 S, g}
. T, Z! t& t) M1 q# C3 i% h6 ^printf("\n");/* 每一行后换行*/
p* L. B f0 k9 }}
# v; H) [3 S, G/ E+ @( p} $ H4 m* l* N/ X `- h
============================================================== 1 c" @0 ]: O5 ^4 w- b: ^ D9 H
【程序9 】
* u+ O6 T& X+ m0 Q5 t$ x题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
. Z2 W6 R5 h( Y* B1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 3 ^# Y/ T/ d. N
2. 程序源代码: ' }. n. F: y; `. O: X
#include "stdio.h"
6 C S7 S h+ V- S7 K/ P) ?main()
' L7 \: j& E2 G; w# o; R{
/ n# ] v0 ] oint i,j; $ b' n8 m2 ^, I; r
for(i=0;i<8;i++)
! K/ m7 `% r w w{ s1 T9 |. ?' r C7 n3 O2 S
for(j=0;j<8;j++)
" m& I1 x- I$ J: Qif((i+j)%2==0)
- A& a D3 [) h- gprintf("%c%c",219,219); 7 { U# C4 }9 _9 A8 N2 b3 v! T i
else 7 y/ m) ?$ y: ]& ~! q/ b
printf(" "); / d" q8 | a# o: ?! v
printf("\n"); - h7 K. O9 Y5 r1 X+ k8 W
}
5 V* M7 Q* t {; `5 f} % T q! r+ h6 S
==============================================================
* n5 \( B5 h7 H【程序10 】
9 a4 a& r" k& ^0 \- W5 }- W题目:打印楼梯,同时在楼梯上方打印两个笑脸。 + Z$ |( t# P5 a6 G/ x
1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
% w6 f! ?$ h8 X3 p0 e# @& _! G2. 程序源代码: 9 u+ h0 |; s" [6 t: Y' N
#include "stdio.h" 6 Y) c( c: P# H
main()
2 F3 q/ l2 D5 d. [" Z{
) m! a3 \) f) J/ Z+ z D6 ]5 Yint i,j; ( I2 a5 P' A# `& a
printf("\1\1\n");/* 输出两个笑脸*/
8 {/ i# K7 o4 R v) Y( Yfor(i=1;i<11;i++)
; {- F+ J1 J7 N* e9 X{
]" X# C+ U/ a/ Z. b4 gfor(j=1;j<=i;j++) k, t3 z2 e) g/ L- ?
printf("%c%c",219,219); + h+ P3 V* @6 B3 ~
printf("\n");
" R$ r( o- F. {1 G}
. n& l8 P4 z# Y; D& y} , \, u H( K8 y4 s6 e
' ~% s+ I/ L& n' k2 Z) [7 N+ s( l4 d4 f! }! g H
4 ^6 B! K3 b1 q- J6 l9 F
作者: zhlei81 2005-1-22 11:29 回复此发言
( u- |2 o0 |3 |
2 u5 ?# D3 Y+ V) A& A$ b0 Q--------------------------------------------------------------------------------
* I. I- B2 B; L5 ~( y$ [& n- m4 Z# s
" \2 U2 n/ X; D# ]6 u3 回复:经典C源程序100例 5 R0 d# f r% f# X# N
【程序11 】 4 s* t5 n' B+ c/ H$ J
题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月
3 Q) H% t, v5 {6 W3 f: q9 Y后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ) j' F: C0 z' { l
1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... & y4 V1 W, _/ ?0 L. t% _
2. 程序源代码: ' c" I4 t: i( ~, Q' h
main()
) N9 q; m) l0 [9 b9 y5 y9 O{
1 q# Y/ k8 }4 H: X: `+ along f1,f2;
; ^7 m3 e: Y% j# W! Q8 o: [int i;
- z+ E' W! r/ M! a' Q* H! L9 j% j, {f1=f2=1;
3 b- ~; x$ I4 |$ R% z- ^8 v$ W) Ofor(i=1;i<=20;i++) 2 N3 u* P3 z- c4 g( W0 P
{ printf("%12ld %12ld",f1,f2);
' ^1 Y% o+ s y* |if(i%2==0) printf("\n");/* 控制输出,每行四个*/
* w1 Z6 o; c: Z, N7 V& o& Sf1=f1+f2; /* 前两个月加起来赋值给第三个月*/ ( T5 F; C z, C1 P
f2=f1+f2; /* 前两个月加起来赋值给第三个月*/ : j% G5 }) b: U# O, s r5 z
} 2 Q# y3 k+ V# m. O7 {# q
} . i R% w- D/ ]# n
============================================================== * }: r$ r9 u7 ~: y p
【程序12 】 / e8 l* L9 ~( f5 y4 j8 s, Y8 Y
题目:判断101-200 之间有多少个素数,并输出所有素数。 ; M' d1 v; E9 m0 F: P
1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
* X+ z4 _9 p0 F( e) B则表明此数不是素数,反之是素数。
6 v+ U. v' V$ |2. 程序源代码: ' H# {$ ?) A @
#include "math.h"
/ H) `) g( Y: \" z0 R3 C- i8 hmain()
2 ]! ^/ c" @% {2 L{ ) \' a8 w4 v3 Z F$ q2 J+ {
int m,i,k,h=0,leap=1;
2 g. Q2 B+ B& o1 M% ~$ ?5 m. ?printf("\n");
4 }; E! ~ C0 S' Z( Jfor(m=101;m<=200;m++)
) K' g k z! Q3 u5 {6 }) }{ k=sqrt(m+1); ' t5 T% K6 C, f }
for(i=2;i<=k;i++) : a& [, b1 V$ U/ b n5 c
if(m%i==0)
# \3 }, j) R' E9 F{leap=0;break;}
& z; Z9 W, N& bif(leap) {printf("%-4d",m);h++; 9 T7 k ~/ V; {6 U" W2 a
if(h%10==0)
8 a8 B* {, @: y7 ?4 \printf("\n"); + ]1 S$ U3 e% C+ [6 o: N/ v5 Z9 X
}
4 k0 b, C. s6 k, E, d, [3 kleap=1;
* A$ u. ]/ q* M; [' z3 N}
/ T! d, T7 R' f! m& s, T/ k* V" ?printf("\nThe total is %d",h); - ?- T k# Q1 S* Z
} 3 y/ O0 o% F. L$ J* E
==============================================================
! H' S3 @8 D; |6 Q$ j【程序13 】
, _- u2 C c+ r题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
$ d$ w" a* ~: w) i" B本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 ' y( e6 S. m! @% b) n+ @$ F
1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 & y( l) Q; G/ {, [( {
2. 程序源代码:
6 S9 ]4 } {; N" `' Mmain() 9 z4 J4 _) }/ e- c7 ]: x& M$ Y# I3 @3 ^
{
0 j1 A( G( w6 x8 ~/ ~9 \int i,j,k,n; : `* c1 u: _5 j ~4 F' B5 U( |
printf("'water flower'number is:"); # r$ K1 p2 R, K( Z$ j
for(n=100;n<1000;n++) ( u+ n5 q4 V. S
{ 3 |4 o# V- R7 x0 V+ M# X$ [
i=n/100;/* 分解出百位*/ * p2 \/ M9 {" F' Q! z. w! g
j=n/10%10;/* 分解出十位*/
, q6 `/ V1 R" t, uk=n%10;/* 分解出个位*/ 4 S* ]& H/ A; @% }3 D1 S; a
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
7 l0 k) Q3 q6 [/ W3 {1 ^: J{ 8 p$ w; F# K. l$ l
printf("%-5d",n);
5 O! d9 h4 k: k9 h9 U} , K. @, q) G# G
} ! d; w: y# r* Z" F/ d$ [: {
printf("\n"); / m6 z. r- l, d; n
}
- N) ]. B# g8 Q! f==============================================================
0 s% e9 b7 ~- D$ y1 \! P/ `1 N【程序14 】 + T) L w5 o; G# D! b4 g5 T
题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。
6 {) o l# E: m, m- T1 d
* n5 S3 f; M- |程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
1 Q c- X0 C! x' C6 w- u$ K1 ](1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
! z6 K" n$ ]: B5 c# f! s(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
3 g5 V' ]1 d. p重复执行第一步。 / D& a" k6 d0 Z" ~" @
(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 3 A8 v" A5 {7 F0 t
3 h' Z- u. {' m# v2. 程序源代码:
4 Z& w0 ?- ]1 ]/* zheng int is divided yinshu*/ 0 C; u6 n5 w( ]/ g8 e. ^, w
main()
9 N" u) n+ N: E& }{ ! E) \! K+ z' { q
int n,i; : T/ O! A8 d+ ?1 t9 v& H
printf("\nplease input a number:\n");
( U/ W4 _" d* W- O$ ~; z |scanf("%d",&n); % b& U8 d/ G/ o6 t5 k3 A
printf("%d=",n); " {) D9 E- h2 I. l( C6 \+ U
for(i=2;i<=n;i++) , b0 s' T/ V. I8 Z) K
{
: i/ @; m5 x) u7 z7 j) Fwhile(n!=i)
" V" i% e7 a. k{
* d, I" D/ @% z; kif(n%i==0)
5 v6 B% \ D" L( i& N8 z; Z& i1 ]{ printf("%d*",i);
* [3 @( T* p+ [5 c1 Y' on=n/i; - S. |( n* d5 v( u: j
} + f# A# \" i+ g, `
else ; e' i0 N# Y7 P! S% q3 `
break;
) Q5 O7 Y% x- n* I0 P} ; l- `9 a; N) l# O, A* c
} $ R, x8 U$ ?( J
printf("%d",n);}
) U' e6 ]. t9 |# d9 e: E- x==============================================================
6 {. f( w; H6 F( [' p1 \6 K; l/ W【程序15 】 - L: r8 X3 h' P/ B
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示,
3 X) T+ e1 Y2 r1 N60 分以下的用C表示。 7 ?4 z8 p! W- J+ \
1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 U. i# w8 D" o8 J& J
2. 程序源代码: q* o2 v; z: H
main() : Z8 `1 x' @, ~1 T
{ ; E) p( t6 ~" }- j( @
int score;
6 \2 k+ P0 } Z( h/ H% f, cchar grade; 7 L( { k/ k6 z S2 H, y) Z' e0 H5 j
printf("please input a score\n"); & F5 X$ Y: S0 W5 @
scanf("%d",&score); 2 q1 j- R5 e7 |/ p, s) a
grade=score>=90?'A'  score>=60?'B':'C'); / }( t. T2 }9 {4 ]5 x; }/ b% ?7 w
printf("%d belongs to %c",score,grade);
* n/ e2 @1 K, `3 B/ u4 L}
3 n+ [3 ]3 f2 y3 X+ @============================================================== 9 j/ n+ F* S! ~; i4 V/ g0 O
a) \# g+ m0 U3 O2 V# U
|
|