|
【程序6 】
l* x9 f5 ?9 f0 p: p4 }* A- S- ]4 {题目:用* 号输出字母C的图案。
- g$ R* r& E" {1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。
1 O n0 r2 ` t' c6 t9 t2. 程序源代码: 1 t- F; t- G9 q( a" j' C; w' u
#include "stdio.h"
( N: g+ _3 ]% q( ^0 n% cmain() {
! t# P. x4 i- F2 \printf("Hello C-world!\n"); $ w E3 A' B8 G* {* I8 z8 B
printf(" ****\n");
( i) K; X M! A7 F- f8 Q, k* U' sprintf(" *\n"); ; i+ Q+ j3 h4 J4 Y) S/ i8 o& _
printf(" * \n"); " y3 s7 j& ?/ u( }7 G% S. ~
printf(" ****\n"); } $ O- L4 a2 G7 g5 B! A
============================================================== # L% w& U8 [$ E9 ^% V0 Q
【程序7 】
6 J& d: a" @" t- `题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful! ; a- n% ^1 G# |! V- b7 a
1. 程序分析:字符共有256个。不同字符,图形不一样。 $ H- H1 g# \& t d8 g) g
2. 程序源代码: - e" I2 c9 e8 h' S
#include "stdio.h"
8 _3 Q% A; M4 e) o: Jmain() 5 J# P8 G" T- _! k# ~
{ 6 y5 U' a- d" _( }* a6 J5 j+ x
char a=176,b=219;
' h k. m- J+ G, X# C0 I8 i" `; mprintf("%c%c%c%c%c\n",b,a,a,a,b); 4 W: [: w7 y# x5 O
printf("%c%c%c%c%c\n",a,b,a,b,a); " l& L: \) t7 u- u. l. V7 U2 C
printf("%c%c%c%c%c\n",a,a,b,a,a); 4 u$ Q& q! _. r: m
printf("%c%c%c%c%c\n",a,b,a,b,a); ( q9 y- r7 _. X' B4 _5 e+ @
printf("%c%c%c%c%c\n",b,a,a,a,b);} 5 p3 Q1 q# [0 V: z4 e+ b b- s9 |
============================================================== ' T" X- B3 U9 A+ {- t1 W
【程序8 】
% u1 L, d$ ?3 {0 U; Z$ F题目:输出9*9 口诀。 2 s8 T/ v2 k& t7 k/ ?2 ~* |( R
1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 8 A5 K1 d2 ^* f! l5 G! i. [
2. 程序源代码: # l1 o V, @! X# K; |$ ~ J( h
#include "stdio.h"
. f& d7 D, F& b- Q( Z( s8 Dmain()
3 B1 |4 v+ e" e ? W3 X{
/ ^- @( X. ?4 r4 o0 kint i,j,result;
* e* U6 I. f4 ]printf("\n");
5 c2 E# k! ]( a- K$ u' h( c- c" }for (i=1;i<10;i++) " X) `3 r/ S1 y* |
{ for(j=1;j<10;j++) " x/ k/ d6 @, w; o) ? R$ ]
{
( n; o5 ^$ y. o# V- B' \; E/ p( cresult=i*j; # c& {: J/ h" B, v# b9 T. {) W; \
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
1 h3 y" O0 b7 x5 x}
4 y) w$ P) i+ b# M$ | W( u5 T% tprintf("\n");/* 每一行后换行*/
+ u; ~, K+ r# W. c& Y}
; k4 p1 Z- R$ o+ o8 e+ ]}
; u9 T) }! V2 l* K) g, z9 J==============================================================
) O M3 S+ O, C【程序9 】
; ~$ t6 n- y9 y6 D+ O题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要) , Y+ `- G' B& E; I7 n2 K- X# P
1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 ' q# K/ _1 [% k6 y' h
2. 程序源代码: 9 w7 F4 R5 ~$ O) X! \1 x" l
#include "stdio.h"
- L+ J+ I8 D J- W0 R+ l2 [, Pmain() , i/ k& n( \- R& _7 y
{ . C. Z% y! v6 U$ p9 P
int i,j;
2 E) y7 g2 |2 `; Mfor(i=0;i<8;i++) 5 A! C1 _% Y9 H8 H
{ , \3 v+ X. z6 Q$ V$ F
for(j=0;j<8;j++)
8 B/ Q: ?1 X- Yif((i+j)%2==0)
0 l/ R. p/ u( G; F/ M$ Qprintf("%c%c",219,219);
6 `% t+ } h O3 i- Helse 2 U2 j# e; `0 e5 Q' I3 A8 z
printf(" ");
6 V" {2 W# y! M% ~/ L, R3 U; C6 mprintf("\n"); - I3 y8 x- L5 h" Z9 ]$ v
} 7 f: s# z* I+ t+ o
}
1 l* ]6 h# j9 W# m: }0 |==============================================================
# \9 Z3 [1 o/ o, b- N6 I! \! {【程序10 】
' t' A9 E+ ~9 I+ k5 [4 E. G8 `) ]9 l题目:打印楼梯,同时在楼梯上方打印两个笑脸。
F2 V$ _' U7 w* m1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
$ ?( [9 ?. H1 ^0 |; e% K3 J2. 程序源代码:
3 H2 Y$ N2 \0 I. u% h7 ]& R#include "stdio.h" 6 g+ d1 K- O( S$ d3 r
main() ' }5 _- L0 O1 i! c' z
{ : x: l" ^! l/ t5 E' f9 ]. S8 ^
int i,j;
! n* [" A4 T n" v* Z" hprintf("\1\1\n");/* 输出两个笑脸*/
7 _% A; H5 ?3 `9 a* Q. ofor(i=1;i<11;i++)
8 ~3 \2 D9 V% v, P* P{
1 l5 k( g8 E! U* \5 a0 F- q6 nfor(j=1;j<=i;j++) 6 U% J2 g, n6 H
printf("%c%c",219,219); 4 z# D; r+ D; T( O+ T% p8 Y7 J* @7 O& v
printf("\n");
3 L- M6 Y) E: l4 ?$ s7 Z2 W2 U+ [- h} , z0 j: x& q, W8 Z; i+ ]/ h$ Z
}
& O7 I* t5 U# E! x! d$ f, B
4 e. g* \; T% d/ l# v5 i. E' I: Y) h! n% ?: [
6 d9 S8 N( p" _* |作者: zhlei81 2005-1-22 11:29 回复此发言 8 d" v z0 i* o( L) D2 ~- a
1 _, T, _4 I2 C: {, X9 Y--------------------------------------------------------------------------------
$ K) \! B* ]5 X6 L2 a$ v
' e, T! l" J$ y" u& j+ q3 回复:经典C源程序100例
6 z6 s( o9 ?' |, q【程序11 】
9 P* }: y9 w4 w8 \* L9 l题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月
' k; Q: s1 o3 U; R8 h' g后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 j! J8 z- N' g. V m1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... " m" W+ T# w: G. b
2. 程序源代码: & r( c9 ]8 {2 D' I
main() ; Z" D" K6 H+ R% h$ C+ A
{
' Y9 `# w0 y+ a2 c% mlong f1,f2;
# P4 c7 k* h: {7 J' Wint i; 2 L u& g, n; A3 H, o" p
f1=f2=1; , J, ~" \# j3 ^1 s, ^# Z
for(i=1;i<=20;i++) . w) m! p9 Y5 z D' c! H
{ printf("%12ld %12ld",f1,f2); $ M" m X+ t. X' ]( u* t
if(i%2==0) printf("\n");/* 控制输出,每行四个*/ ; v' z# }* a2 P3 d5 t8 g8 T3 R
f1=f1+f2; /* 前两个月加起来赋值给第三个月*/ Z+ F* }0 B a' z7 V6 J
f2=f1+f2; /* 前两个月加起来赋值给第三个月*/
* {' `9 c& Y8 i. p}
# b" ^: w9 @* a/ i} ( f& S! I. j! t1 i/ k/ Y
==============================================================
4 `" F9 H5 R; ^【程序12 】
! M) R% r! I8 A. H$ K题目:判断101-200 之间有多少个素数,并输出所有素数。
- D& I2 U7 x# R* G* X1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
; ?: n, q( P" ^则表明此数不是素数,反之是素数。
. [) u- w, j* {: w: Q2 Z2. 程序源代码: + g% m% o* O8 j: K
#include "math.h" 0 r2 l/ m6 @5 o- m6 h
main()
; o$ h! W: ?. I1 N' T7 ^! f{ ( N( A8 g) M, M8 _# G
int m,i,k,h=0,leap=1;
% w6 o* T# W! a: `0 ?printf("\n");
1 F5 ]- ~/ `. ofor(m=101;m<=200;m++) + p1 H9 p! ~9 ~) Q
{ k=sqrt(m+1);
1 p0 K6 K5 N5 ]for(i=2;i<=k;i++) " c" m6 x: | J% J! i$ ~ c3 b. b
if(m%i==0) 8 P/ e2 t+ B% \ M- t9 ^, H7 [
{leap=0;break;} ( g& G0 {* C$ p2 r
if(leap) {printf("%-4d",m);h++; / n: B+ ?5 `' N- g# `7 M
if(h%10==0)
M, i6 ?0 C- r! P' z" `+ hprintf("\n");
9 K v6 l7 D- j5 G} " g3 I; k) b% J2 ~% J m- f
leap=1;
1 P0 g- n- E1 c- ^0 f. }4 Y}
* B3 k" H n9 Zprintf("\nThe total is %d",h);
% M: l" {8 q+ e, s8 ?9 c1 s} : u3 f" [: q4 |+ n3 {* ]" K: q8 B7 s, K* R
==============================================================
9 J" G% |5 y6 c【程序13 】 ' z! J- o! E1 |: c$ J
题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 / M1 S0 V, q6 f! E, B; f, z
本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 / b: Z: H. M( o" A, ?
1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
+ Z6 @: W6 n; e# G+ ~3 e" |" v+ A' X2. 程序源代码: : d6 ?: \* o5 ^3 _, N0 [; C" o' G. t
main() 3 }5 V! ^0 [- ?
{
7 L' Z3 V% p2 pint i,j,k,n;
; @( ] {+ L/ l0 z# ?printf("'water flower'number is:"); : U& J! V' A7 F# U
for(n=100;n<1000;n++)
/ B( ~# Z/ J7 D) `{
, f4 \4 v& J' g5 }) r2 w2 B4 u. r) j+ si=n/100;/* 分解出百位*/ 7 n7 d6 D8 s9 ]7 f6 `
j=n/10%10;/* 分解出十位*/ 0 K+ r% R% t# h; K6 `! c
k=n%10;/* 分解出个位*/
2 D/ [' l" f# _$ o: Q4 Hif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 6 R6 x( C+ p& N1 |9 [% G3 W. o7 L
{
6 d8 s& [) \( a5 q- Uprintf("%-5d",n);
$ }" y2 f, L' z3 }}
) G: Z0 k. i2 L+ e, n% Y R}
% e9 T; I+ M/ }1 G- _; [, H9 Zprintf("\n"); % |3 n( k. m4 h Z7 k
}
' Y+ x3 g4 F7 F/ U! n! I==============================================================
& g! x( i) Z4 M8 r) d7 H0 B' J【程序14 】
. I$ h+ ~0 T6 ~/ ~) e, @题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。
( ^: m- Q; S- [3 O3 D' F, ]! K' p. z8 r7 B/ x; u" D
程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
1 L& g* x# J9 m# C(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 5 ]) ~( c" t/ N/ j8 {
(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
" S3 P9 K, S! N重复执行第一步。
% [* i) ]" z/ D& Q# S! y: M(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 / x& ]# ~7 w; n& g! E" x v# X
3 {; f. K7 R( l0 D
2. 程序源代码: ! t# x' m4 @0 Q2 Y% k
/* zheng int is divided yinshu*/ . o' ?- Z# |5 U0 _! K, k, y4 e
main()
$ u2 P) t$ H# w; U{ 0 E4 x f, C# E+ ~# d8 q& U8 n
int n,i; % E% P* k& u! W8 F5 x5 o! |
printf("\nplease input a number:\n");
& v; e! r0 Y* }" c4 z; g; mscanf("%d",&n); / x: C. n! @2 a2 R* e+ b/ [
printf("%d=",n);
9 j5 ^6 i& [) t+ n( V- ^for(i=2;i<=n;i++) ' L: a9 t' @3 a+ Q5 \
{
& x6 r l! y& iwhile(n!=i) $ H- C1 a) K0 b
{ ' _& z: j7 K$ X7 Z1 w) `: g
if(n%i==0) ( [/ {3 `( R) H" N9 r0 D
{ printf("%d*",i);
1 t6 ]0 Q8 {) G# B' n2 d Xn=n/i;
9 o+ k5 V: K, X: n, o b8 X" `& u}
0 L0 H& z' a1 j8 welse 9 o* y8 }' B7 |6 V# D U3 b( K. {
break; % N- \; ^' m2 z; ^( y
}
: n& y. [* ]/ M6 G1 t2 t2 g I} * @" f7 p: m8 d5 L% {" K) L9 Z
printf("%d",n);}
! O( I% @/ @4 f" }/ Y============================================================== 5 O l* x0 Q, d2 n2 x0 k
【程序15 】 " N& x9 I0 N( d; u
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示,
) s; M8 A% @4 p% S60 分以下的用C表示。
" m7 R7 B' K7 D6 v( U1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 0 H4 L: X. x0 D* b9 @
2. 程序源代码:
! b6 G+ M3 x! t+ X0 L4 h' p) i& Imain() . \, I: j1 j) }( O! S0 q/ |
{ 9 s. F6 j1 Y9 Y% }; a1 b
int score;
Q! S9 c! f1 N, A4 L( ~# ochar grade; 5 R5 q; {* i ^; q) }: r* b( x! k
printf("please input a score\n"); " P( n7 y5 V3 @. Z- m$ r
scanf("%d",&score); $ W/ s& j/ u# J0 @0 ^
grade=score>=90?'A'  score>=60?'B':'C');
1 t3 T3 x3 N; x X+ Jprintf("%d belongs to %c",score,grade);
. w8 B% r: p$ O( c} % F, m% L2 n. }! X* V
============================================================== 1 H0 Y8 Y' O7 @ u" ]# p2 s: w
' V$ ?4 L- Y Y/ ^+ n4 R6 I
|
|