【程序6
】 ( Z9 U- U" r5 M! H
题目:用*
号输出字母C的图案。 " Y% X+ W4 i1 [5 k; D
1.
程序分析:可先用'*'号在纸上写出字母C,再分行输出。
" J$ |+ Z7 @# a3 W2 z2.
程序源代码: - w; S: x+ ^+ V- H3 ~
#include "stdio.h"
+ F8 b/ a$ v# w0 V( \! a4 l+ V
main() {
T: P! M4 A% K8 Jprintf("Hello C-world!\n");
$ n( H4 m6 x4 ]7 m1 ]/ |/ y7 s
printf(" ****\n");
$ C6 j7 x* N9 b
printf(" *\n");
7 ^3 o5 ?0 j' k1 z! C, R- v- I( Kprintf(" * \n");
( {, e$ }$ q1 d- ?, K) G
printf(" ****\n"); }
/ W0 P: W: o" A2 h4 Q9 _==============================================================
5 R' z! {. u+ I3 l2 Z【程序7
】
+ x; |5 ~% X& x9 S/ v题目:输出特殊图案,请在c
环境中运行,看一看,Very Beautiful! 2 |, c9 U$ D F
1.
程序分析:字符共有256个。不同字符,图形不一样。 5 b5 v% f, S; x1 @
2.
程序源代码:
6 u O" w& e3 Z#include "stdio.h"
L2 O8 I& f# w, x0 b; `main()
" @+ r$ f- ^# n# i, M
{
2 X, B* _' ]+ q) g: ~char a=176,b=219;
' h) v0 t4 `1 v% C3 H, ^5 v& O
printf("%c%c%c%c%c\n",b,a,a,a,b);
6 _' H) ~5 h5 \5 Y5 J/ tprintf("%c%c%c%c%c\n",a,b,a,b,a);
6 L: I7 a% x! _$ {printf("%c%c%c%c%c\n",a,a,b,a,a);
- m- k$ _. t+ `: J4 Q0 v& q7 uprintf("%c%c%c%c%c\n",a,b,a,b,a);
: `1 x4 C7 I1 [4 m" ?) Nprintf("%c%c%c%c%c\n",b,a,a,a,b);}
" |4 _4 w2 _8 p0 |
==============================================================
+ K& H* K- m2 R1 t. w- `: S【程序8
】 " Q( U- @0 k8 p6 s
题目:输出9*9
口诀。 0 z2 N2 s8 E% x3 Q$ G+ a( d
1.
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
* n. K& W9 l4 ?6 O5 I" o+ z2.
程序源代码:
5 F3 \/ j. v$ w% Q+ O#include "stdio.h"
9 ^' G. t7 _( c$ g) B
main()
6 O9 q+ l8 t5 U; `7 ~% ?' z
{
0 R- S4 u! |8 h4 v& H9 aint i,j,result;
% \8 f5 \) ?/ D5 u4 Vprintf("\n");
7 Z. K7 y1 _' ^/ Xfor (i=1;i<10;i++)
: h6 H3 v3 T+ |, ^1 E* ?- d8 S6 r
{ for(j=1;j<10;j++)
j5 }% x$ S7 N5 C{
+ F* N; D* c6 G2 {; e1 {result=i*j;
/ K. {* U7 P7 C8 @. c$ H) b2 w
printf("%d*%d=%-3d",i,j,result);/*-3d
表示左对齐,占3位*/
# v5 V6 U" Z' m5 t6 V. f}
+ |; e% U- w5 k% K7 y) J# [printf("\n");/*
每一行后换行*/ + Q5 A5 ^" Y# r# m* M: P$ [" u
}
" \, B& g. ]2 d& V
}
8 Y$ z/ Z6 [ b4 a
==============================================================
7 b- L$ ^# v: @- A; J6 c% ^* {
【程序9
】 ; O1 k$ z% E3 }. K% ?2 B0 Y$ m. `
题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
D& U) ], B, W$ s' D
1.
程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 & d7 L7 J: F/ J: C% I- Y6 k% r; f
2.
程序源代码: 8 H* p! A4 }5 W
#include "stdio.h"
! F- }! n. }0 b3 s8 E" v0 Z) u5 h: Qmain()
5 w6 e0 e/ o) }+ Q
{
9 a4 j# C+ T/ r9 ^* a3 E$ U: O
int i,j;
5 y$ q6 O( `9 S# B" zfor(i=0;i<8;i++)
$ o5 N" a, {: o0 r; G: n+ W{
" |/ I; T# m. [3 Z2 V. \3 ^
for(j=0;j<8;j++)
/ {: ?" _! g; `* @; j+ x: u( y; gif((i+j)%2==0)
+ G# O) z; Y: u Dprintf("%c%c",219,219);
7 V& b! Y# ^' Uelse
$ Q/ t+ C% g# L6 {
printf(" ");
: [8 \4 A/ q9 R; Zprintf("\n");
( A" n' F, F( c& X4 L3 p* I
}
, F: T, p: b6 h! @* L8 c, f0 I
}
! G2 c0 z3 V, s1 f/ ]" R/ o
==============================================================
4 q$ F- u V F' i
【程序10
】 / I+ A1 s; p I1 z$ t5 L
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
/ h& N- c9 ?+ B& I' r1.
程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
/ ]9 w7 Z1 R$ I5 s, j2.
程序源代码: 1 f! G8 f" E T3 F# n
#include "stdio.h"
+ s% v. d5 i) n# Y
main()
8 f- B3 q: W0 V' ?& Z
{
; P7 D1 E8 U Y: T+ X- f& C* fint i,j;
$ l7 C3 ?' `) @
printf("\1\1\n");/*
输出两个笑脸*/
2 w4 O6 D1 `, C6 t; vfor(i=1;i<11;i++)
5 W; \! h0 R* Y0 f) y{
$ s0 C8 ]6 @: f+ D+ }" |8 W0 y6 w) z; Sfor(j=1;j<=i;j++)
# I" a3 q4 t) }2 I3 R
printf("%c%c",219,219);
3 V" J2 k, f# e, K- Lprintf("\n");
( y+ V6 }2 E+ X0 E0 ]}
9 e( f0 g% a7 ^ [2 ?9 L! ~
}
% f6 M- C* R/ t. c& I
1 a1 ?7 ]) |- `( E& l; K
+ e! w. ~/ \/ @) ^. N
6 n* \+ j7 m6 F5 k作者: zhlei81 2005-1-22 11:29
回复此发言 5 |8 J+ D6 F8 h, g# `7 I+ v
2 w& t. }) _1 C# V) y/ j5 _2 i# X
--------------------------------------------------------------------------------
' b8 K, X: K; k( F( D
# ^: ~7 V2 i( h# T" ]6 o3
回复:经典C源程序100例 1 V* d6 F0 L& Y0 }
【程序11
】 * H& q4 k1 t4 A, F2 \
题目:古典问题:有一对兔子,从出生后第3
个月起每个月都生一对兔子,小兔子长到第三个月
: \( ?+ z5 I3 F# S* f, A1 T后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? $ z, g! v( I5 I. ^8 a
1.
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
3 Z2 e2 Y& z2 | x% H8 W2.
程序源代码:
$ R4 {& ]! h- X# `2 C e6 {7 dmain()
# `3 G8 ~' i+ S) k; [* M% i{
4 H" C4 [& }: j' y
long f1,f2;
0 {5 H1 K: r. Y5 t2 [
int i;
) r. V1 z% h% z$ i/ i/ ?6 D% f, ?f1=f2=1;
8 f- D {7 T% V }0 g/ Rfor(i=1;i<=20;i++)
|! ?% ^ Z4 I4 Y& c
{ printf("%12ld %12ld",f1,f2);
: i, C8 \$ e' ]9 {: {/ F$ n, |
if(i%2==0) printf("\n");/*
控制输出,每行四个*/
/ y7 ^* M; Y5 a8 {8 G: g! Af1=f1+f2; /*
前两个月加起来赋值给第三个月*/ * t1 S, A% b& U4 A9 I M+ d
f2=f1+f2; /*
前两个月加起来赋值给第三个月*/
5 Q, j9 _8 c! o5 H3 F( i7 f# Q}
3 G& T9 O6 |4 N}
2 b( W i* X: O8 s7 w2 d
==============================================================
, \: K6 B1 T; i1 G" a1 A# r% _! _: l【程序12
】 ' i* C1 e. Y$ C! S7 e# E" V) d4 ?
题目:判断101-200
之间有多少个素数,并输出所有素数。 / m4 Q7 X. b6 t$ ?& T `
1.
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
4 E7 j* c0 s/ d3 X1 s8 A# |则表明此数不是素数,反之是素数。
) \$ G* d: {' d' e6 ^2.
程序源代码: ( P; c% h o- J; [/ h
#include "math.h"
* w2 J: d# Y' Z9 y) m6 U* Z' D7 I ~
main()
- P& B, [; i+ g0 I0 w{
$ b- g8 d8 [/ v9 z0 z* q# Cint m,i,k,h=0,leap=1;
% V7 ~( U( S& B Q
printf("\n");
# x) u8 M: d$ H7 S+ Q5 `* r8 F
for(m=101;m<=200;m++)
4 C7 k9 \# C) L5 |% x{ k=sqrt(m+1);
( j6 c& `* O. a& W* ?
for(i=2;i<=k;i++)
9 E! l! Z5 Y" F* i4 eif(m%i==0)
: L) ^/ `" ^) k2 W6 b{leap=0;break;}
* ^: ^, e' c6 q$ C, Z2 D1 w5 Bif(leap) {printf("%-4d",m);h++;
0 S4 _# F. w) i1 ]6 Uif(h%10==0)
4 R8 K7 b. r( D' v
printf("\n");
. j) w2 E( ]& n% m8 p}
8 U: O# k; p0 _- P6 w3 t" nleap=1;
" \3 x0 v+ z( P ?: q- Y}
# E' c9 ]" ]% T$ U7 Sprintf("\nThe total is %d",h);
0 P: t9 \! A4 g# ?* B* x
}
4 {+ M" a0 T( t5 l1 i
==============================================================
~9 a% M4 ^* O( Y2 `/ U8 h
【程序13
】 , [* }+ m( v2 }4 P, |! R
题目:打印出所有的“
水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 , f/ P r# `: U8 O9 P8 p! y9 u' v- N
本身。例如:153
是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
' K7 s3 l. N; a* j9 q1.
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
+ {8 @% Z& i1 m2 v2.
程序源代码: ( U' H9 `% ^0 P0 z/ B
main()
+ v7 Q8 ~9 y+ X. s{
) H( F k! j* f6 r
int i,j,k,n;
6 z+ S& z/ P# V. S+ tprintf("'water flower'number is:");
) e& Y3 W9 r3 X3 b' Y9 ^for(n=100;n<1000;n++)
& C4 I: T; l6 [4 X. u{
$ s* M8 r/ _* e9 di=n/100;/*
分解出百位*/ / [( Q+ E4 L+ K z5 g1 W
j=n/10%10;/*
分解出十位*/ ( h. L: v8 e% r+ F
k=n%10;/*
分解出个位*/
^3 r2 Y3 W$ I0 H& S7 Yif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
/ h3 z, Q% `4 i, E- ^
{
& i* ~5 O& k6 Y# u' a/ F3 u
printf("%-5d",n);
: l+ ~- A, D: I& |, y4 M
}
5 S, E0 Y @ E; \0 J- k n1 v( O
}
6 r5 ^. T. ?5 ` Sprintf("\n");
$ q& m4 F& X. U3 C
}
7 L* m) Z/ u$ t
==============================================================
1 N' t5 c# P l1 A
【程序14
】 - G( |: o1 n( @9 |3 f
题目:将一个正整数分解质因数。例如:输入90,
打印出90=2*3*3*5。
; l" O/ p$ M5 L+ H5 |2 @2 H2 ~1 k+ C. Q
程序分析:对n
进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 6 E" ~& R! m n/ |$ G: D4 W
(1)
如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 7 Y% Z: n0 R# ?( N( W' ?4 }: W4 W& Y
(2)
如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 4 C& ` F3 F0 X: G; L/ b
重复执行第一步。
9 t( _: {$ ^. F! Y5 I, N' N(3)
如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 & [% D0 J, K5 C, K3 Q, ]# O
8 H) \+ a: U* x$ z* X8 M; Y; [
2.
程序源代码: - T; s& m" y2 Z0 a% F
/* zheng int is divided yinshu*/
" H/ ?8 O3 w# R4 \ Emain()
; j! ]2 k; R" n0 a* b# ]7 Z2 ^$ i/ ~{
5 Y2 t/ }; c9 y" L4 qint n,i;
+ Q4 N* j" @+ f4 }printf("\nplease input a number:\n");
( j+ B0 L* a4 _, n, t& v! M7 lscanf("%d",&n);
H- }8 i# o; b; }( h* Fprintf("%d=",n);
* H2 E; ]/ Z/ l E2 v7 S
for(i=2;i<=n;i++)
, P8 {" g5 V Q Q6 r' N
{
! j$ y0 S8 c4 `& H% twhile(n!=i)
' ~- m& K+ W6 ~' K" O0 m$ |4 ]0 Q' t/ A
{
% T8 T- ~4 j i: d& }
if(n%i==0)
1 G4 _7 _( g% q2 l4 r$ U. S
{ printf("%d*",i);
# l, z% M. E3 O+ N, J5 ?. t
n=n/i;
: l: B2 r @" l7 N1 a% F}
# x5 h; T X/ p x5 `else
' v: u$ v" g; |! z& v( Wbreak;
! ?+ A! O. D, ~) S
}
. | A; H2 s) Z2 N* q# j}
( |* E# c+ q3 d% t; r& t/ v6 a
printf("%d",n);}
6 _! u! T8 e, f( a& E3 a) t; ^==============================================================
: Y# r8 w: N7 {7 ?( q% {. ?/ Y
【程序15
】
) C+ R7 [* P) N/ o) N题目:利用条件运算符的嵌套来完成此题:学习成绩>=90
分的同学用A表示,60-89分之间的用B表示,
4 s" y2 _! }4 i& G$ @4 d60
分以下的用C表示。 + v. F0 h/ Y$ A e' F9 U* E
1.
程序分析:(a>b)?a:b这是条件运算符的基本例子。
8 q, a9 A/ b( O+ |7 U0 B2.
程序源代码:
. [9 b5 h! {5 W9 o9 `2 zmain()
W5 R- _, ~! ^; V7 p
{
. S3 |' s+ _! a/ Aint score;
4 q+ U+ g. t4 E! A4 g# L F3 W' Hchar grade;
, O8 p2 z: x) P6 g7 Bprintf("please input a score\n");
- V' b; U" b- j6 e: T$ y4 Mscanf("%d",&score);
# q; n/ P/ X, j5 W1 [2 c
grade=score>=90?'A'

score>=60?'B':'C');
6 e) _0 t1 x, i, h9 L
printf("%d belongs to %c",score,grade);
; \. b2 B& c" L. C( `}
* J0 a; D" E6 ?# w: M==============================================================
. M* w2 S( k y3 `; I( z