|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序6 】
; O8 v* \! s$ ^: d题目:用* 号输出字母C的图案。 " P' r# q2 _5 c* f7 i+ u% `
1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。 ; `# P. k: h5 Z |
2. 程序源代码:
3 f4 C; d) G3 j# `#include "stdio.h"
+ }% O. a9 {, @% l: X4 w8 \main() { & A- G S a* N6 Q
printf("Hello C-world!\n"); , l) h1 P: {6 C: E( J
printf(" ****\n");
]3 ]9 n0 s% Q7 ^- u8 ^- Vprintf(" *\n"); 7 }2 J& I/ a" k% W% u/ x
printf(" * \n"); ! `. L/ E0 O% V. J
printf(" ****\n"); }
5 t* w. F8 W/ v+ y' {- b' U============================================================== ! Y: _) V+ a0 P* Y( K" t% X7 _: {
【程序7 】
# p: h7 s. M- G& v6 W) G4 \题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
3 {7 `+ X2 F, I9 I& d/ r1. 程序分析:字符共有256个。不同字符,图形不一样。
1 J) @8 e( }+ Y+ u3 f6 S2. 程序源代码: 1 b3 u# R }1 Q8 E) M
#include "stdio.h" - m/ }6 r7 w+ O6 D+ }/ r
main() ' s+ o0 O% j# Q) I: w
{
" D1 S" t6 I% j, mchar a=176,b=219; + E/ ~) p. f2 J7 D3 h
printf("%c%c%c%c%c\n",b,a,a,a,b);
+ o& A2 S; b- Lprintf("%c%c%c%c%c\n",a,b,a,b,a);
, |% c( x1 }* g+ [6 \. Z7 Eprintf("%c%c%c%c%c\n",a,a,b,a,a); * N X2 S3 U0 `) C4 m/ R
printf("%c%c%c%c%c\n",a,b,a,b,a); ' n4 v `1 T' D- A
printf("%c%c%c%c%c\n",b,a,a,a,b);}
+ z" ]/ t2 \$ j5 K. k==============================================================
4 o7 m7 b& i K! A$ Z$ l' i【程序8 】
* N8 k$ S7 q: l7 n7 C( \题目:输出9*9 口诀。
* Z+ g6 u. j" {0 H1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 0 ~/ [7 g: D1 N7 M/ e; {
2. 程序源代码:
. \# J! a, _1 k" y" R#include "stdio.h" # I l* e; ]/ G5 s# {0 G% i2 M" G n
main() 2 s$ G9 M9 Y5 o' S5 ~- p
{ " A9 F# r( F5 z1 D3 g/ W2 H' l
int i,j,result;
, }7 x4 Z A, u0 W6 u3 Hprintf("\n");
# F. y; T3 N. W3 P4 C% kfor (i=1;i<10;i++)
$ c" y$ f5 Z$ e" V{ for(j=1;j<10;j++)
1 D; \+ R+ i. B; m" u( h0 W{ 4 b. q7 g. E0 d4 {$ O4 X
result=i*j; " o9 L) e2 t0 o! T9 m
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
! ]7 A% w' m" ]) T}
2 R, d: i) n6 Q" Mprintf("\n");/* 每一行后换行*/ , t+ m. y: b$ m- w
}
4 H" K4 F' ~7 S$ K% D J} 8 |" a& S9 X% z }9 [. P* Y* a, _
==============================================================
* c! B8 h3 p" D+ p: w【程序9 】
5 n# D& S* a' V" M) E1 s6 z% g题目:要求输出国际象棋棋盘。 ( 嵌入式学习企鹅要妖气呜呜吧久零就要) & F" @+ H" U$ y0 m M
1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 7 w/ w1 ~0 s3 l4 I
2. 程序源代码: - ~, _3 q- Y0 h- w) W1 |) _
#include "stdio.h"
4 O2 \7 K) f0 z9 `0 Z) @main()
3 @0 p; Q% E. s( n; L$ g; E{
3 ?2 X$ S/ Z6 s) o* f s, \& Oint i,j;
* {, r" E9 v+ ?' ~8 ^# B: p/ lfor(i=0;i<8;i++)
+ i E4 C. Y0 Y" P1 O{ : O. J5 M3 d8 {% j1 l0 Z
for(j=0;j<8;j++) / d4 p* [, t- z& P6 H- ?3 g
if((i+j)%2==0) 6 q6 s3 C S- j$ y' l! Y/ g
printf("%c%c",219,219);
^7 M- g% ?# k3 g/ l+ celse * ^3 h( j; C6 |& q' O7 r
printf(" "); # [1 e) @. G3 R5 M& x+ z% d9 G
printf("\n"); 0 ]' T8 k9 v. @* Y& |6 q/ J% o
} - Y. d$ W, n; W9 l- v8 F
} 0 q8 ?9 u9 J5 {/ B y& K
============================================================== & q" b0 i3 e9 _( j
【程序10 】
2 i5 P' I$ M& n! ]1 K8 a( b题目:打印楼梯,同时在楼梯上方打印两个笑脸。 ; j: P4 V9 C) m& f; `. @3 J
1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
! J0 ~8 D# m- Z% ?; {" q! k2. 程序源代码: 8 d! @( W' n0 N& p t+ O) B( A
#include "stdio.h"
$ `1 m9 M3 a qmain() 3 S" }2 f- ~) ?% [* \
{ 7 r: f. p8 u/ k `, n# f6 G
int i,j; 2 j) B2 N4 [% {( a. f0 O8 A, H
printf("\1\1\n");/* 输出两个笑脸*/ & Z9 j9 y6 m6 i% ~' Y
for(i=1;i<11;i++) * K6 ?9 \1 z# O$ b; S, j1 b1 v
{
1 {/ v* k& u6 K+ E8 Lfor(j=1;j<=i;j++) ! h2 I+ M( n( g- C+ |( l
printf("%c%c",219,219); 4 M0 }) ~# }& j' Z# g) J: M
printf("\n"); + G' |$ {; r8 _: H# I
}
- `2 Z; ]+ ?% M: ?5 G" _} 5 g5 y/ D# \. I2 U4 {+ h, F
3 m5 w1 V, h6 z7 l0 }% P
( l" V8 D* v6 j
\0 a3 ^# j- i7 D* [
作者: zhlei81 2005-1-22 11:29 回复此发言 . S1 i/ Y7 J' c3 ?
' y. Y! e( b9 T: k% q! m
-------------------------------------------------------------------------------- * F/ B1 |; K+ h5 j
* O" T1 l- v2 L6 E; F1 T0 N. M3 回复:经典C源程序100例 : D$ |7 F+ S" Z- K' P' d+ |
【程序11 】 3 i; I% E6 P! e m) ]. |; X
题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月
- K [! L8 p2 ~0 k/ Q/ l& X后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 E2 J6 b# w1 k. v: v: O1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 3 l# @: W3 I* V1 o: g, \& s
2. 程序源代码: / ~, r' h) N2 B9 g4 X- x
main() 0 T* ~9 C- A5 \3 j+ z" n4 T
{ ! S! @0 S& c: O$ J7 L
long f1,f2;
9 F, l) r" m6 J7 [$ W6 T1 dint i; 2 F) S# @" j9 a5 f0 t
f1=f2=1;
) n6 _) F2 J# u( Afor(i=1;i<=20;i++)
: }4 q- @/ m9 v8 ^7 I% u* ?{ printf("%12ld %12ld",f1,f2);
5 u; A a5 L4 j0 Cif(i%2==0) printf("\n");/* 控制输出,每行四个*/
7 `8 p; m) v( o) t1 Q7 ~f1=f1+f2; /* 前两个月加起来赋值给第三个月*/ & X" J) q( _) {& V9 K! R& B' i& g9 i
f2=f1+f2; /* 前两个月加起来赋值给第三个月*/
! ?5 u5 d3 h0 K+ @5 X' j} & A6 {6 X* z% z6 R- A1 {
}
: `6 C0 v9 _" L' c============================================================== ! H" z9 W6 V8 |' N: R0 Q+ d% }+ l
【程序12 】
9 C" ^8 c" R0 k3 j; _7 f; K3 Q题目:判断101-200 之间有多少个素数,并输出所有素数。
1 w# S" r/ R4 A+ z( Z! z7 V) r1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, ; O' J& g6 S+ V- G7 a2 t; N& B6 Y
则表明此数不是素数,反之是素数。
1 r- @( W9 D N% K2. 程序源代码:
* ?# V' m5 `& b5 n. @, U$ N2 ^#include "math.h" " \+ r7 y& l; @ D- q
main() * H5 Q# E& I0 ]5 Q# O
{
9 [' p8 {5 P# Q1 D7 a% v% j xint m,i,k,h=0,leap=1;
5 ]- I8 M: j: Pprintf("\n"); $ ^9 }( p* G8 t5 I
for(m=101;m<=200;m++)
4 Y2 M; ~9 Z" `9 Z{ k=sqrt(m+1); # o4 y9 V; H% }5 M
for(i=2;i<=k;i++)
+ _0 ^1 X4 i% j, O/ Xif(m%i==0)
6 Y% p- E& y/ p" P9 Z{leap=0;break;}
1 Z( H( W& M9 E9 E3 C$ ^if(leap) {printf("%-4d",m);h++;
& z( j9 ^' P# a* g1 A: Zif(h%10==0)
8 a9 L5 N3 b" P0 K; @' Pprintf("\n");
6 z4 Q4 [* b: P} 4 l- l) Y( t k3 ~9 H$ y
leap=1; 6 g6 |. i2 e& P* \
}
( W" t, a |$ | D- I$ `printf("\nThe total is %d",h);
- S0 f) D, e; n. p3 f}
" _# B2 I6 W& z) y( g/ P============================================================== # L) `) w# R; `: D4 f
【程序13 】 ' B9 ], G, ^, V& A/ m& D' g! |
题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
2 M5 p2 h- A. i U, w7 M9 Y. I本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
) U" Q$ i0 {* J: D3 Z1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
, n( X+ m4 u; y. ~" v- l- z4 g) G2. 程序源代码:
, X0 t8 |* P" ~main()
; x" ~, d* W# }{
4 z ~2 q1 Z9 ~, z! }int i,j,k,n; : ^; p: ]% H! A8 q
printf("'water flower'number is:"); ! m0 B/ |, s+ E# a! p' n
for(n=100;n<1000;n++) 6 K& c) b& k6 r
{
: |5 K7 p c6 U Gi=n/100;/* 分解出百位*/
" N: {* `: F' d5 K( ^j=n/10%10;/* 分解出十位*/
" A3 W; S1 ?. M N2 Rk=n%10;/* 分解出个位*/
$ h9 ?* ]- w7 sif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
2 \1 x, x6 p% _+ d$ f! R{
) h. g6 I: ^6 V5 \5 ?printf("%-5d",n);
9 [1 Z3 F; M: F- t& T}
/ ]7 R1 U& i3 a( J} 2 Z' g8 s9 U) O/ A$ y
printf("\n"); - @# {. d8 {4 @% c" ^
} - I# Z( f2 F& @/ c1 t
==============================================================
2 x! k3 S1 p0 m) A3 X【程序14 】 7 y( C% E- Z; Y( q8 {0 P
题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。
?- y% w6 N1 @; o" z! K
% z& ^) n# J1 g+ k程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
6 h, K6 h' e5 i7 P5 x/ J- L(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
- u1 }6 I' ~) W* E+ F; I, }* A(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, . B& J/ V! r/ `2 a1 X
重复执行第一步。
$ _+ k3 I! B1 A. x# M(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 7 ]" m: q& i$ S+ l$ g
4 r" |) P9 Q" ]' V: ?: s
2. 程序源代码: 8 {7 j5 T2 f% F" e
/* zheng int is divided yinshu*/ 0 z+ z! c+ j2 e/ r! r
main() 5 V7 t, Q3 U# ]- c9 w, c8 s/ C9 }8 w
{
& C* Q' P! \9 X, y# m; Iint n,i;
9 p$ J; ^) C9 T. V) Z2 { L0 Z. Eprintf("\nplease input a number:\n");
, J0 w. x/ K. Zscanf("%d",&n); # N! `- t: y' l. i, u+ b; a
printf("%d=",n); ) I& Z0 c# G% D3 w2 k
for(i=2;i<=n;i++) ) h; I9 b. `+ T; Q
{ - J7 Z4 R; ?7 |, r
while(n!=i)
7 Z6 Q! z2 [( D{
1 }7 p( q- V+ w" a/ _4 Rif(n%i==0)
* a- G3 ]4 g% f2 a. @% K% H{ printf("%d*",i);
; ~: t. Y- W) n. h( sn=n/i;
" t# w) S( _ q6 F) i. I: i) f}
0 U* v9 a- J0 w# }( }- c$ ]6 Eelse
( D4 j6 h7 g/ y) a6 Gbreak;
5 d# p$ ~; q" R' O& E# {# K& O} 8 o, L# M$ u- {- j5 A r/ S3 D% v
}
. I* w% C: Y1 u- C+ F4 R; Z; a0 `printf("%d",n);} * X2 }6 p& H+ c# y0 j% W r" Q! `
============================================================== * q$ i/ |4 O2 U7 r1 z y
【程序15 】
) u& o6 S; P/ }/ p$ i6 e& D" l4 r题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示,
4 R m+ n4 ^9 o; y# c! U# f60 分以下的用C表示。 : q4 h' A7 g5 R; _3 Q3 u: P1 z
1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 1 E: ~9 E. ^5 `, r( N
2. 程序源代码: 4 R. l/ a9 N0 H. D# j
main()
C& |" s# }3 ?2 T- [( V% Q0 Q8 ]; _{
, J0 R# @: Q. p. ^' fint score; I& \/ `2 g, g! D/ @7 v
char grade;
" u4 ~, a8 ^5 o5 S+ n% u$ ^printf("please input a score\n");
( R5 f- ^* ^6 o1 Q4 R0 Ascanf("%d",&score);
U x; G3 d& i' |3 Q" F; |, Rgrade=score>=90?'A'  score>=60?'B':'C'); ; \1 ^3 D1 e7 r* z( V% V5 i
printf("%d belongs to %c",score,grade);
& o; f) ?& _, V; l} . f/ J% W2 E9 A/ q* P4 h) y
==============================================================
" M: R, q* K$ P& l% u9 C$ m7 O, i+ I
/ x& X# k- Y: {% ? |
|