|
【程序6 】
& b$ s, R% Z& \) m2 u; v5 a题目:用* 号输出字母C的图案。
; ~7 |+ V3 v$ r* z2 @6 b1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。 2 U$ j* h7 R; _# H9 ~2 n& C$ R# G
2. 程序源代码: / u+ T" o A: ~4 G5 t: ~5 {
#include "stdio.h"
- k, h( f0 ]- R! Jmain() { - r! j2 j7 q* H
printf("Hello C-world!\n");
# H$ X* p2 K5 Z- M# m' o6 |: x' p7 `printf(" ****\n"); % z+ N7 N P" E+ h% r4 G' H3 A
printf(" *\n");
9 p+ {- ]! n" B: B$ e% J" W' Qprintf(" * \n"); 6 A ^. Z8 {+ V
printf(" ****\n"); }
* J2 R6 ?* g0 Z==============================================================
4 _1 e9 n+ L1 J* K【程序7 】 * t8 [2 J' d1 {) U3 j ~5 w7 |/ [, W
题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
/ \( ?1 L4 e& P7 e' L* @8 q) b" p9 R1. 程序分析:字符共有256个。不同字符,图形不一样。 i, H8 d% v$ ^6 {
2. 程序源代码:
5 n3 F/ g8 u! N+ k c5 D1 J#include "stdio.h" . C& l5 u! `5 D/ L# v* l
main() ; s' }5 }& |& |3 y5 ~* ]! b3 c9 ^
{ 4 p( D X3 I5 y y# R
char a=176,b=219;
7 d0 x- W2 i$ {- b& ?* |% Sprintf("%c%c%c%c%c\n",b,a,a,a,b);
! r; f' K7 v) A, mprintf("%c%c%c%c%c\n",a,b,a,b,a); s' D; P6 Q9 r
printf("%c%c%c%c%c\n",a,a,b,a,a);
7 e. s/ J, w5 o5 `+ [2 `: C1 \printf("%c%c%c%c%c\n",a,b,a,b,a);
- Y8 K1 R1 ~* V; r1 ~) Oprintf("%c%c%c%c%c\n",b,a,a,a,b);}
+ }* `# x1 W. D- ?& V8 f==============================================================
, G$ {$ R) ^+ W2 d9 ?; G【程序8 】
# ?( y/ F3 m* E7 e2 ?9 u) m" ~/ J) b题目:输出9*9 口诀。
) O, F" W0 ? b. Y* y1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 5 F' X# F6 d5 H5 n* n2 F
2. 程序源代码:
/ E5 q* m! L! a; v#include "stdio.h"
/ _0 x- P& X6 K" R L9 [main() ! ~* S- A- C% ^2 v6 ~. p
{
- w# s+ K; D0 ?' ?4 x7 Iint i,j,result; ) i5 u) V2 \# v; e/ J
printf("\n"); 6 H" a# Z. N, L5 k# H
for (i=1;i<10;i++)
4 e! e9 c5 ^6 I$ N8 w{ for(j=1;j<10;j++) / H2 l J7 W) B1 d2 L
{
! d% u% U6 h3 t s$ Xresult=i*j; 6 \, z- d3 s) t' d4 ^7 N$ q
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/ ! t4 \" S7 J# [, M- ]
}
2 v& ?: W6 n9 v% Y+ {4 M2 J- Eprintf("\n");/* 每一行后换行*/
/ u8 \$ o% N o# k! @( a} - V3 _$ w# o5 N3 |# e
} & ?6 D" D5 |& p
==============================================================
% C- N9 {# z% ?6 a【程序9 】 % p9 O$ v$ m0 O' S, `" j* k
题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要) n8 [+ ?# Q$ O. F* w
1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
4 t' Y' w( t" w) g& u; ~- {0 @2. 程序源代码:
U6 j$ v# |( W. T, W# I#include "stdio.h" " \4 N2 `3 r2 b
main()
: J, J+ b+ {4 W4 l{ ) O7 {# Z$ u$ ?% D2 t' X
int i,j; ( l% X6 l& l$ h( f' u% W' I* _7 P
for(i=0;i<8;i++) 2 f, N0 c" h+ M
{
0 [; b9 k, c8 dfor(j=0;j<8;j++) " d( R; K! d4 t8 h/ l* r1 C
if((i+j)%2==0)
0 }# d$ H2 F( d; b, U& z6 o& Aprintf("%c%c",219,219); ' J3 V; @3 @8 V/ } P! K
else
4 F+ Q, O: ^6 h: Kprintf(" ");
v2 G7 @+ g* P _7 Wprintf("\n"); 6 C" b1 g; V+ E' x
} # S1 w* ~* B, ?. ?4 u) z
} Q2 I. X e/ J9 |. y8 u
============================================================== $ y: w/ l5 J& |, J5 b5 M
【程序10 】
{- H5 ?- Y: h5 w题目:打印楼梯,同时在楼梯上方打印两个笑脸。 ! `) k* g0 h! |3 n" W% X0 {5 ?4 T
1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
2 U. X4 ]+ t1 d' g$ i; w; g2. 程序源代码:
: A+ T1 g3 g# }( U+ p- L+ l#include "stdio.h"
' Q# u# L2 z$ ^9 e! ]: r; Emain() ' |; a0 S. E/ f g+ k8 G6 m6 e
{ . l- n, M1 Q! ^; Y
int i,j;
0 @ ]& q" K0 Wprintf("\1\1\n");/* 输出两个笑脸*/ $ S& u4 i9 M( H+ |0 Y
for(i=1;i<11;i++) , v3 q1 ^6 A' c7 ^. ~1 \. P
{
- s6 k" ?# o3 U8 e4 F Z3 Xfor(j=1;j<=i;j++)
8 j" P& X2 M5 ~ Uprintf("%c%c",219,219); ' B$ f+ }0 \/ n7 m+ ?
printf("\n"); 1 ?/ u- z6 j; T, f( R2 b% g; h
}
/ Z. \, t# c$ ]}
+ O3 S$ Z3 ~# t6 l
/ f9 Y* ], c' c& v; R9 V. N1 {* N9 K% C9 _
( u4 p3 A6 d6 z$ q( \" u作者: zhlei81 2005-1-22 11:29 回复此发言
: n+ G2 u) U5 J: w* E1 D# S" P# }2 \0 N; W' ^6 w9 E4 r9 v
-------------------------------------------------------------------------------- 8 ]/ j5 e' N1 v- ~" b( L
9 r- _% S( A" X! e/ N( z, J3 回复:经典C源程序100例
0 q$ E- ]) `: V+ G1 e3 W【程序11 】 $ z. e4 ?, b. V1 L3 u4 |$ c6 C
题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月
( L% h+ p4 Y) B后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? . O$ z4 v7 N4 x" F' }# _
1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
1 T8 ^/ G$ h2 c2 q2. 程序源代码:
/ w, O- W- z9 nmain() ( x1 W0 i: ~" L" W2 g3 M
{ & G! \( O! q1 X. X9 C( T
long f1,f2; + L2 n+ {8 _ R) S
int i; * O9 C3 ]9 D5 }* I0 `
f1=f2=1; ' D* h7 M/ M4 h% D# r
for(i=1;i<=20;i++) 5 O9 @, o/ u% C
{ printf("%12ld %12ld",f1,f2); ; P4 w- x5 J6 |1 {" l" x
if(i%2==0) printf("\n");/* 控制输出,每行四个*/
: y) @+ w' b# y z. ~3 l( V& W& Qf1=f1+f2; /* 前两个月加起来赋值给第三个月*/
* H8 V! Z& z" mf2=f1+f2; /* 前两个月加起来赋值给第三个月*/ 1 A) [. q2 Y$ j6 e0 @; P, Z
} ; B6 }8 {' m, R- L- E
} - w4 a' x& M! s* Q% g. d- P
==============================================================
$ H" ?% s& K1 M' [/ ]8 m+ ~. T【程序12 】 . ]. I V ~0 o$ r
题目:判断101-200 之间有多少个素数,并输出所有素数。
: Y W5 G; v X D' S# Y+ v1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, L* C- ^) }" b0 K* P5 |
则表明此数不是素数,反之是素数。 5 X7 v& F" t* g6 K3 l
2. 程序源代码:
$ C$ `$ [' I9 A: y" \#include "math.h" / }; v" C+ ~& [0 P8 @
main()
5 K3 B( G" a C" S1 ^ |2 g{
2 x/ X. P2 }. E% `5 `int m,i,k,h=0,leap=1; & _; P2 d. J( ~9 I' E1 R
printf("\n");
6 X2 B: i, C& t0 |6 a9 E* rfor(m=101;m<=200;m++)
0 W F8 Q4 u1 N6 ]' U) T1 f4 o: N{ k=sqrt(m+1); `# e* o C: Y( U* W
for(i=2;i<=k;i++)
: u' ]% t x, Z0 Gif(m%i==0)
0 \! x% @0 t0 m& l5 |{leap=0;break;}
/ c- p |7 s9 j9 r- |if(leap) {printf("%-4d",m);h++;
4 M! D8 T! @& T# I( I" H' Iif(h%10==0)
9 f. W5 d- d( H8 }% Vprintf("\n"); 8 z# R1 G5 ]/ U! H, E
} 6 E W8 `* X4 v! d2 r
leap=1; ' \+ t+ v( o5 b8 C; B z
} * e" n$ K6 f1 }! R5 Y$ ^
printf("\nThe total is %d",h);
5 P8 m( @/ ?! R& [; R/ F: [2 u}
3 u4 I+ b9 Q1 k* l% z r* n$ U3 g! _============================================================== / i8 t' s4 m9 ?" v
【程序13 】
* P5 l" i' g7 L3 _1 \% J6 y @8 _题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
- D. S" f# d# s- J本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
' A$ w- c+ g% p$ [. S1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
4 i* \. p( w4 h( h% T2. 程序源代码:
! }" U' S, C1 j! ~6 W, n% ]- }main() 7 @" t* p5 k" ?( o6 {
{
( K$ J7 g' `9 K ]6 bint i,j,k,n; 9 j1 G k z+ Y2 n( e- t
printf("'water flower'number is:");
/ j) l0 ?9 |. C9 v. Pfor(n=100;n<1000;n++)
4 ^/ F( {& @. _/ v6 }- w$ _{ 0 Q1 k$ I3 W0 _, O1 x$ Z! E' }
i=n/100;/* 分解出百位*/ , W' [: @* B9 F" n! D
j=n/10%10;/* 分解出十位*/
% P3 i$ F! U+ \4 ek=n%10;/* 分解出个位*/ 1 _( v2 p" L. D3 X$ [7 h8 m
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 1 G- W- C1 ]0 f% T9 {
{
; p! P5 S* e+ O. g: [8 yprintf("%-5d",n); : s+ s& L" {; w% s
}
# v/ z% U/ K6 {) S4 I8 j}
/ D4 M; e/ z- [; I! U( k- Y& \8 O( Yprintf("\n"); % S) Q8 S+ d, T. `5 l0 j
}
' }% r3 Y# I! f8 c! c4 S c============================================================== 3 K. Q6 Q2 X+ ]3 l& X( }4 f/ R- E
【程序14 】
Y. ?! X6 W& W0 u* C$ W题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。
) O5 ]3 m T( Y& y1 |' w* a3 f2 s; X; n8 c
程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 9 E' s4 z5 _* n( `0 J Y- Q
(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 O# H- H0 t' G; S% _
(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
" r R4 e- v- x$ T重复执行第一步。
- g. n/ E5 w& b, l" w) ?(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
% k6 J& f3 ~, H' A9 T
, D* Y( U r4 ~- |" e2. 程序源代码: 9 _ x4 |2 _1 a5 o$ q
/* zheng int is divided yinshu*/ - O6 A, P1 Q C6 F7 d" n( Q
main()
. z2 O, m5 F/ [; O# d; p{
2 }9 C) {* w6 U; Iint n,i;
+ o6 V, z, ]. R3 K/ Iprintf("\nplease input a number:\n"); # y& ?( |# I" F+ j; O5 r
scanf("%d",&n); ( y- G7 ^" J+ m* [. d
printf("%d=",n); 4 `" t) E3 C: ~: h7 H4 \9 S4 ?7 n/ ]7 Z
for(i=2;i<=n;i++)
: j+ W+ ]$ W6 ]: i7 `{ " ]7 o/ \; m6 {5 M7 B! W
while(n!=i) 4 D4 B: K& h/ |
{ & C, p- i, y$ K( ]% t
if(n%i==0) + B( Y; ?4 t7 @& t
{ printf("%d*",i);
3 E8 C( G$ O3 F9 ^! d: E7 bn=n/i;
8 c; A: `/ ~, v/ b! _7 i2 p} 6 E0 K$ W6 W4 ? {
else
7 R) P U7 }3 m) W; z2 `' Obreak;
q0 N- A9 B) e/ y5 G}
, l' E" Q, s* F7 z) E}
- `. @$ E; k0 Aprintf("%d",n);} 1 \, M$ Q4 f/ M6 s% E
==============================================================
$ o! E, ~; [, }. t% A0 t【程序15 】
# [' V$ t' n! `- E题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示, 6 E% e5 e9 S+ {9 `; ?8 q
60 分以下的用C表示。 2 s# X* c/ T' \$ o
1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 ; P) V8 `& }- \8 V2 c) G
2. 程序源代码: , S0 q; ]$ S4 |; w4 X1 Q8 m. y" C9 R
main()
4 F) O. h2 H6 X% i- u5 O: @7 r, u* ^7 [, z{
/ D- W4 @3 v! j" ]( Cint score; 7 Z8 t% l) A) i+ e8 P% x
char grade;
' k( Z& q! u e5 p S0 E6 Oprintf("please input a score\n");
. w) c* @7 l; x& S0 y( z8 X& p Mscanf("%d",&score);
& F& w; ^4 p+ ~9 f; g% Xgrade=score>=90?'A'  score>=60?'B':'C'); & T" j/ d& q% r; {
printf("%d belongs to %c",score,grade);
9 }% `7 W! j! q, ?* s} # ^: w) i( s) Y
==============================================================
+ b1 o, k) T. R/ T6 y1 }. B + b ]4 y6 z. G: I: a/ U/ T4 [- m
|
|