|
【程序6
】
- P' I, {4 X# l4 a- H: q4 `$ Z ]; V
题目:用*
号输出字母
C
的图案。
# I6 Y- c7 c5 I% V0 }) W0 ]1.
程序分析:可先用
'*'
号在纸上写出字母
C
,再分行输出。
% S' z* R2 f g( u( [9 d0 z
2.
程序源代码:
- C# E3 P3 Y6 I, w
#include "stdio.h"
. W! W. E/ }+ S& h% I+ Q# s; h
main() {
& [/ [7 l$ K( v: iprintf("Hello C-world!\n");
0 f" o0 L# X; s, q- L! Cprintf(" ****\n");
8 C W' U" t4 E$ z% pprintf(" *\n");
$ U3 B2 m& t: U7 E9 |" eprintf(" * \n");
7 z! _* w5 W% b! M0 ^
printf(" ****\n"); }
7 F5 q* W1 a+ P. R0 E==============================================================
$ }+ S( r) _5 s) ~2 ^$ m9 V" L, g
【程序7
】
( {; r7 G& t6 {
题目:输出特殊图案,请在c
环境中运行,看一看,
Very Beautiful!
: V$ P4 U( B7 D/ ?4 p' r. L; q! {1.
程序分析:字符共有
256
个。不同字符,图形不一样。
- H5 {: O) Q! c' r5 T) C% B2 w0 M
2.
程序源代码:
) @$ @. M0 Z0 o4 S
#include "stdio.h"
! M3 n! [8 v" G+ g% p, ^main()
4 r- b" ] n' G. p+ L$ Z
{
9 B* N) }5 ]+ c8 c/ d
char a=176,b=219;
4 q( f& ] J8 O* Y3 j8 h0 Q6 ?
printf("%c%c%c%c%c\n",b,a,a,a,b);
% v. k z" F; C" F: Q. k
printf("%c%c%c%c%c\n",a,b,a,b,a);
( m) _2 {4 C! Z' S
printf("%c%c%c%c%c\n",a,a,b,a,a);
. \6 \! f: b3 w' b' a" ]: _printf("%c%c%c%c%c\n",a,b,a,b,a);
& ?& N+ ~- k* \printf("%c%c%c%c%c\n",b,a,a,a,b);}
m5 ]) v" U: A) w n6 H3 N
==============================================================
$ p: i6 @" l8 g
【程序8
】
6 F! g) l x# Z& y
题目:输出9*9
口诀。
6 |. r U$ g& d9 |1.
程序分析:分行与列考虑,共
9
行
9
列,
i
控制行,
j
控制列。
. U* o! x& a! o7 q5 P
2.
程序源代码:
6 \8 s8 Z; q' K( J- @#include "stdio.h"
/ r) @8 ?$ d3 w! S: s. |; b1 D0 kmain()
; V8 W! _" L$ k6 |{
+ `( P7 i4 q2 p. Vint i,j,result;
/ |$ n# o( K; c* H/ K9 Iprintf("\n");
; t% n% a7 {' B/ {# [/ kfor (i=1;i<10;i++)
2 N9 ^: ^# p; r" p% u
{ for(j=1;j<10;j++)
$ r+ T& U1 f) {. a$ `+ r{
, K9 I1 p' H$ Z2 ~; Eresult=i*j;
9 l' w, B- v" U5 I6 F: h5 f
printf("%d*%d=%-3d",i,j,result);/*-3d
表示左对齐,占
3
位
*/
5 a" P0 y2 |+ e9 e( P}
. t# V1 Y( b3 |! b0 K- jprintf("\n");/*
每一行后换行
*/
9 H7 A9 @+ m0 Q}
2 s& M+ N# @. H/ ?% J6 L
}
2 T6 ]. V, ?2 X4 M/ t==============================================================
; a O! a! ]* K) |2 e( a
【程序9
】
+ ^; P4 {2 L1 }2 p" r. N8 l6 i
题目:要求输出国际象棋棋盘。(嵌入式学习企鹅要妖气呜呜吧久零就要)
r, z4 L+ L: T4 @' }2 }: I1.
程序分析:用
i
控制行,
j
来控制列,根据
i+j
的和的变化来控制输出黑方格,还是白方格。
7 {; |' u' X0 x: L: H3 R0 Z
2.
程序源代码:
8 ^* q/ H: L5 g) T! ]: z P m#include "stdio.h"
9 M1 q5 `4 [$ l0 {1 J- H7 D. C% i
main()
* Q* D& i' q: s* h{
3 W/ c- H! A- T/ Y1 @: i& m( T
int i,j;
3 V8 j% M9 }0 C& @" o, d
for(i=0;i<8;i++)
! O! M3 P+ `3 }- G{
3 ~8 N+ _' N& ~for(j=0;j<8;j++)
4 R8 @# N+ T# d6 h0 `if((i+j)%2==0)
$ b3 u2 ^, r( y! X7 I6 h4 V+ I& \! Jprintf("%c%c",219,219);
3 P$ }3 }0 s3 [ I" t; C
else
) E. a3 ~5 f8 G3 Z# B. uprintf(" ");
% U6 ?8 I% v# U4 r& q, F+ Rprintf("\n");
- ^6 X" o4 z# \}
) @1 E. p7 I1 K3 X$ I, u1 J. G
}
* I' ^: z! n+ S==============================================================
6 x/ ]$ Y4 z4 p
【程序10
】
2 A. U ?8 X% J$ ?
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
1 G' C. P* V# ^, G% e$ B- }1.
程序分析:用
i
控制行,
j
来控制列,
j
根据
i
的变化来控制输出黑方格的个数。
( b6 M1 D; N2 ^: k5 Q3 S$ K& C( b2.
程序源代码:
f0 S* U9 ^* |5 j! X8 n" g
#include "stdio.h"
- j- V# a& a: H1 O
main()
6 T, C6 o$ k* n{
5 [ v/ C5 W$ r. e% |6 ]5 }; G
int i,j;
: C& F$ k* Q9 u7 M7 d: r; U1 d
printf("\1\1\n");/*
输出两个笑脸
*/
- v5 e7 Y/ z$ b) y8 Y0 @for(i=1;i<11;i++)
9 C* ~) b H0 c- p{
% [, y- S8 w z/ P) J+ }for(j=1;j<=i;j++)
6 C7 m2 N' a7 D4 ^2 U8 ?* V7 ?
printf("%c%c",219,219);
/ F7 F c3 X: g
printf("\n");
8 k3 u7 z# H$ M1 G}
+ E! Q1 _' T0 t9 F2 t* ]}
; `6 O7 ~3 \# ~, S% i
8 Z# E, M' R! \* c5 ^/ Z
. b5 J$ l' F8 e6 Q$ G" L
0 C1 A3 t3 C- o& O1 W
作者:zhlei81 2005-1-22 11:29
回复此发言
1 |6 f4 _+ v( G. q1 a5 G& @. s0 w
% G" U: g/ u$ h3 o2 @7 I4 U4 M; p+ A
--------------------------------------------------------------------------------
6 z* q7 D }7 ]9 V, h2 q7 B2 G, d
3 A, a7 n, c" h3
回复:经典
C
源程序
100
例
" B0 m4 I0 |" _! m
【程序11
】
# O9 t% d. }2 _9 W6 p7 P1 b
题目:古典问题:有一对兔子,从出生后第3
个月起每个月都生一对兔子,小兔子长到第三个月
# n6 V- s- N6 o0 b$ h- M9 D
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 Q' N4 F6 E0 ? t8 ~1.
程序分析: 兔子的规律为数列
1,1,2,3,5,8,13,21....
& o% |' }/ G* \ E5 V f7 Z4 }
2.
程序源代码:
/ d, Z+ F" ^) o8 @0 t. cmain()
`; Y# f, a9 N) S* d! {4 I. l
{
- N9 a9 e, {( ]4 plong f1,f2;
0 R! l. ^& r: H5 C2 y6 G" g( d) k% C
int i;
4 u6 f1 w5 F. J8 p! N" N
f1=f2=1;
) c3 s: c! z: b3 D$ l- k0 I3 T: W. ]
for(i=1;i<=20;i++)
! Q( f6 d! Z! \
{ printf("%12ld %12ld",f1,f2);
$ x: i2 N4 D# I$ {! L8 wif(i%2==0) printf("\n");/*
控制输出,每行四个
*/
u% w b( [$ G
f1=f1+f2; /*
前两个月加起来赋值给第三个月
*/
0 b3 n+ ^) X. U, e8 m: @* [3 v7 i
f2=f1+f2; /*
前两个月加起来赋值给第三个月
*/
. e* M6 c7 y- t: X9 R0 q; j
}
' q" w/ a3 d7 G4 P- b}
& Z8 L: }& k! d8 A! x==============================================================
2 w# X8 n0 k, U$ D) {6 x
【程序12
】
$ y- A4 D2 D; K, y$ b- z4 H
题目:判断101-200
之间有多少个素数,并输出所有素数。
2 P' b2 p3 f8 F- B [
1.
程序分析:判断素数的方法:用一个数分别去除
2
到
sqrt(
这个数
)
,如果能被整除,
0 D2 [6 ~1 B+ |; e" _, Q3 u
则表明此数不是素数,反之是素数。
" @. N9 H6 q& U$ A
2.
程序源代码:
/ s5 Z! t7 y* f/ w0 B" x4 z9 }) G
#include "math.h"
% v) j: o5 U2 \2 j) n" P5 ], w5 r3 ~
main()
0 @7 I# v/ t2 U/ l: ^' o1 x
{
5 _1 d! Y0 Q& c# r' }
int m,i,k,h=0,leap=1;
m2 s- w" P; R$ ?1 _0 B
printf("\n");
* k$ q' K$ {, v; e
for(m=101;m<=200;m++)
5 Q4 q6 v, m; ]7 _& q
{ k=sqrt(m+1);
) W# T1 t: `2 @; p* @& G5 L
for(i=2;i<=k;i++)
' r! b0 ~9 Q* E( r" F: l+ fif(m%i==0)
$ `: q* q' H( u* V; k" n0 A- t3 C{leap=0;break;}
2 H: a0 q' T6 [/ T6 ?4 F7 B1 F9 W" V
if(leap) {printf("%-4d",m);h++;
7 ?2 H6 J& Q9 s% _8 d
if(h%10==0)
) q( `0 b' ?* G+ `1 o
printf("\n");
P# l0 D3 X2 z$ i j* f}
- \8 i. R' q/ ~3 a# ^
leap=1;
8 A4 j( M" ?5 ~! g4 ~& ^; p}
$ |# _6 L- ^( P/ ?# A: l7 m" {
printf("\nThe total is %d",h);
1 y: O5 Y* ^* S8 ], w3 O
}
9 p. d+ ~: n0 s, }" S( R
==============================================================
1 E$ `0 W5 J1 L! B' F
【程序13
】
2 j# V1 B- ~# P8 R
题目:打印出所有的“
水仙花数
”
,所谓
“
水仙花数
”
是指一个三位数,其各位数字立方和等于该数
) H: o: d i) D) k
本身。例如:153
是一个
“
水仙花数
”
,因为
153=1
的三次方+
5
的三次方+
3
的三次方。
. z+ t8 ?! `, [2 [% H1 J, T7 {
1.
程序分析:利用
for
循环控制
100-999
个数,每个数分解出个位,十位,百位。
" }1 n9 F- n) Z1 Q" n
2.
程序源代码:
z2 k- s6 h. p% x6 Y9 \9 I& Cmain()
- ~9 J& y, h1 l{
x% n. X6 U3 h$ ~int i,j,k,n;
; T$ ?0 N: z4 g% l3 cprintf("'water flower'number is:");
9 j( k+ N( }* I4 h/ G4 {7 efor(n=100;n<1000;n++)
/ I" z# K6 [0 ?: F' G5 r3 B1 z! `{
* [4 Z2 H1 ?$ L& a) ai=n/100;/*
分解出百位
*/
9 G/ Y2 D( t: s# c" mj=n/10%10;/*
分解出十位
*/
# e3 b+ ?4 h! |
k=n%10;/*
分解出个位
*/
" b$ m: {# D7 L. \
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
" _+ d1 j1 I F
{
7 C$ K' ^% ^ Q) C1 j/ N- e4 r
printf("%-5d",n);
! |% \! x9 |9 a1 X
}
1 F# H. J6 p9 [8 c}
5 E" ?6 P q% f& {+ B* z. ^printf("\n");
, `( o8 s( d. r+ G5 P
}
2 P5 x( g- ~5 ^) v* d8 L
==============================================================
# e S) Z( Y0 _1 K, f9 s+ K( a
【程序14
】
% l; N2 N% p% _) g/ \% S9 t
题目:将一个正整数分解质因数。例如:输入90,
打印出
90=2*3*3*5
。
$ T+ O* o; f0 F9 w/ k8 [/ t% ^
* [" ?4 U/ |% a/ y. w& P" A o
程序分析:对n
进行分解质因数,应先找到一个最小的质数
k
,然后按下述步骤完成:
# E2 m# ?8 u' ~0 @(1)
如果这个质数恰等于
n
,则说明分解质因数的过程已经结束,打印出即可。
9 r- Q5 _( v, t4 j- w
(2)
如果
n<>k
,但
n
能被
k
整除,则应打印出
k
的值,并用
n
除以
k
的商
,
作为新的正整数你
n,
7 B0 Q! |5 P/ L, l( Q
重复执行第一步。
# j7 {3 d" p" S/ u5 Q
(3)
如果
n
不能被
k
整除,则用
k+1
作为
k
的值
,
重复执行第一步。
9 j+ n) ?4 |( }# ~+ l8 Y
A7 Y8 w' ]* F
2.
程序源代码:
7 i6 c) _ G3 V7 ^# e$ M. [
/* zheng int is divided yinshu*/
" E) ^# b, h0 `+ Cmain()
$ v$ d* L, m) E6 Q) a& o& V
{
$ P2 {6 B2 s) M& c
int n,i;
& ]1 r3 ?# u$ c( X& I* Aprintf("\nplease input a number:\n");
A3 H( H5 O/ h
scanf("%d",&n);
' T4 f0 Y1 O$ X/ y6 o9 ]( J
printf("%d=",n);
+ o7 q$ U7 n1 n0 y# C3 K+ L
for(i=2;i<=n;i++)
2 B* }; n( O8 H% P# K% w; _
{
+ @( k$ B4 m9 g; u. I) Z
while(n!=i)
R4 F9 U% _8 V( S{
+ Q1 o! ? \# H" ?, A, J
if(n%i==0)
* y Y" b% u' u% \. |" B
{ printf("%d*",i);
, z' n! e. R# t& z* G2 s" Dn=n/i;
$ t4 {1 \) _. A. Z0 ~1 x e2 ~! a3 u
}
* f+ V* N3 Y/ O! f
else
% ], p- {1 R7 V1 r& W! ^- P4 `break;
1 S- @+ Q) p- G( Z}
& C) n& ]. I) d2 B* C* E
}
" d' a0 | f X4 U( `, @% uprintf("%d",n);}
* l: Y w2 _$ b. f9 P9 t2 f1 U9 r
==============================================================
/ @6 H5 @. Y2 W( m
【程序15
】
* q X# Y, `1 B1 ^5 q9 [$ U$ l
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90
分的同学用
A
表示,
60-89
分之间的用
B
表示,
+ G2 {8 K4 e2 Z. G60
分以下的用
C
表示。
% } i p4 T: n! G) g5 D
1.
程序分析:
(a>b)?a:b
这是条件运算符的基本例子。
- @; L+ s& q1 ]& ~
2.
程序源代码:
p( a& V) }# n
main()
1 S4 }. p& _4 x- `* P. b
{
# R% U/ B+ e, U3 i; J, U D* _int score;
3 j9 B: L7 r5 f( {- vchar grade;
) G# h; Q! T) O0 n; m/ \
printf("please input a score\n");
U5 L! L/ U/ _7 v/ F. \0 L* Fscanf("%d",&score);
* b' T [# y! S) b" ograde=score>=90?'A'
score>=60?'B':'C');
; y/ E. H: a9 ?2 C. L% S% o
printf("%d belongs to %c",score,grade);
) Y! q2 S0 O+ s% \
}
8 l7 J/ ^- p0 W2 j$ l' |) ]# e==============================================================
4 r: q$ h: L7 e2 h9 Q0 U* w% w
3 v% B* |" v9 O& t7 T. I6 w! v5 _ |
|