|
【程序6
】
7 f3 x$ {9 t: i% T0 b
题目:用*
号输出字母
C
的图案。
2 K4 M1 z$ n/ X1 i2 N+ G& o
1.
程序分析:可先用
'*'
号在纸上写出字母
C
,再分行输出。
( z/ M" L' M* p$ z# p. Y
2.
程序源代码:
3 J9 @( |, D5 j1 ?#include "stdio.h"
( ?3 X+ t, ^$ _, S- H% S
main() {
" B, l7 E$ l; Y
printf("Hello C-world!\n");
( ]5 n+ ~* A/ c& z" i+ }
printf(" ****\n");
/ S4 q2 r6 \* ~" J* d( lprintf(" *\n");
% r3 ]" M; ]" o0 ?5 x$ L
printf(" * \n");
4 O/ v- i5 Z! ], Z8 ^8 Iprintf(" ****\n"); }
% g4 B& u2 F* C==============================================================
% W6 F9 [7 z; b% A4 V- v. a
【程序7
】
3 z! M3 R! [8 s8 Z9 Z8 x9 }( s! ?
题目:输出特殊图案,请在c
环境中运行,看一看,
Very Beautiful!
8 u4 x- @' q, B3 C
1.
程序分析:字符共有
256
个。不同字符,图形不一样。
H: r' N5 \1 F0 ?2.
程序源代码:
: a& H1 w- R8 z; Y3 w3 Z& q#include "stdio.h"
2 n3 T3 c1 S4 V+ {$ H/ J
main()
1 n l, P. t5 T
{
! o, v" I* o6 Z: {6 k( `
char a=176,b=219;
- z. s4 A1 q) yprintf("%c%c%c%c%c\n",b,a,a,a,b);
. c% T- z3 ^9 v/ C1 R, V/ H3 j; A
printf("%c%c%c%c%c\n",a,b,a,b,a);
; ]" u7 n# Y& o5 }printf("%c%c%c%c%c\n",a,a,b,a,a);
4 l# ~7 r/ y7 E! Y% x
printf("%c%c%c%c%c\n",a,b,a,b,a);
# K" @1 B1 f1 Q9 j0 y. aprintf("%c%c%c%c%c\n",b,a,a,a,b);}
8 q ^3 z8 }5 f' D==============================================================
& h: O: p" y) B: ^
【程序8
】
( ?( G, K- b/ k0 \
题目:输出9*9
口诀。
; j* z a+ M5 ?# A6 U+ s0 }9 n1.
程序分析:分行与列考虑,共
9
行
9
列,
i
控制行,
j
控制列。
" i, N6 W7 v% S6 S' b2.
程序源代码:
5 ~ X! @! E( t& y( B$ D#include "stdio.h"
+ d" F4 O5 W7 P# k# X8 g. @main()
" b& E/ Z' W Y$ O5 p
{
1 w* a( Z: c" m
int i,j,result;
' Z0 B# T7 b& C8 @5 P
printf("\n");
( b) I. }2 `0 W$ lfor (i=1;i<10;i++)
6 V3 \! R5 G4 a0 x2 z7 x" f{ for(j=1;j<10;j++)
! m2 I4 ~/ q1 p5 T; _( a
{
- w& w* V3 S, s% ~7 ^result=i*j;
1 f- I' e3 j9 wprintf("%d*%d=%-3d",i,j,result);/*-3d
表示左对齐,占
3
位
*/
: b2 Z/ s" g7 G: Y
}
6 x9 R% b% Z: N9 s5 u' tprintf("\n");/*
每一行后换行
*/
* \0 g4 m' }- ~+ e6 P: F) R' ]3 G}
- N; i6 B2 _5 o& V/ J6 G
}
% b: ]2 }0 @' \$ |3 I
==============================================================
% G2 m' e5 G+ S# C) ]
【程序9
】
8 z2 H8 q! [# \7 n' B; L4 Q1 q' D
题目:要求输出国际象棋棋盘。(嵌入式学习企鹅要妖气呜呜吧久零就要)
& e2 r5 `! K4 J1 V8 ^
1.
程序分析:用
i
控制行,
j
来控制列,根据
i+j
的和的变化来控制输出黑方格,还是白方格。
/ D3 x5 ?' b: ]7 A2.
程序源代码:
' C! I( y; y( E8 I' m7 P# N6 b8 Q#include "stdio.h"
, N- Z* o: R1 Y' t, m. j3 `main()
q4 `/ n/ e, q# C, ]" W+ [{
% {0 v6 L8 \9 A) [1 _( S) ]
int i,j;
* ^% s! {# @) m5 [: _3 ^+ x0 _
for(i=0;i<8;i++)
- }$ a; u f* l( T- ~/ D{
% t4 q- O5 g- c; X4 o+ s# }8 dfor(j=0;j<8;j++)
" \7 }9 p: ~4 ]- sif((i+j)%2==0)
- D7 V- n3 l5 {7 \: c" O* }4 Sprintf("%c%c",219,219);
- g/ }# d; @: u8 u h! R* D" ?
else
* I2 j' }. t6 q- D" p" H2 ]printf(" ");
& `/ n( b$ }3 E6 O) f
printf("\n");
4 x7 H4 l2 W" s4 _8 t
}
. { x0 n& _& _/ Z" D& B+ G
}
! ]' [$ _( [$ d1 t* @==============================================================
7 o3 D) h+ i5 J2 L* N, Z
【程序10
】
, {: }/ k `) l m4 j- I
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
# ^; m: d/ O2 D" n7 p1.
程序分析:用
i
控制行,
j
来控制列,
j
根据
i
的变化来控制输出黑方格的个数。
) a t8 B$ L# W. \
2.
程序源代码:
6 I1 u) ]9 G4 T8 w+ g. M2 i# p
#include "stdio.h"
) p/ f+ r6 ?# |6 U" w- \, q1 Mmain()
* X9 _0 |% j$ i+ v' \2 t
{
: g0 c; p6 b' q/ }0 V+ x& ?) Z
int i,j;
& G! N7 B. K* y7 W/ E# G( n4 B
printf("\1\1\n");/*
输出两个笑脸
*/
6 { b1 x- @/ ]3 X: U
for(i=1;i<11;i++)
" s3 S _3 h0 @5 M( z J
{
5 Q( ?7 u! i9 ]for(j=1;j<=i;j++)
% n1 [9 B- ]6 X$ j2 z
printf("%c%c",219,219);
3 y8 T/ x) v0 `+ f1 M) D/ Y5 i$ E9 g
printf("\n");
% e1 p: Z" c0 a6 L}
5 c9 u) B4 i3 ?& A5 z7 `}
- U8 H; h4 E" Q, v
$ _: M* z' z0 `* q
/ c, g/ h' O {3 I
3 c0 z: ^& b; ~( ~ b3 F" f' W
作者:zhlei81 2005-1-22 11:29
回复此发言
2 L; A1 F* ~. ^ N0 Z$ ^
2 c+ l! H/ \! j" U$ |' [--------------------------------------------------------------------------------
5 }* |: e: G8 }+ T" I2 D
; j F$ Z4 a, C6 T+ o0 U+ Q. I
3
回复:经典
C
源程序
100
例
n& C" d* n7 t# C' G
【程序11
】
# r" {; g& J( N3 p' N9 T# k+ L
题目:古典问题:有一对兔子,从出生后第3
个月起每个月都生一对兔子,小兔子长到第三个月
8 a h) N% x. d. S
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
0 J2 ?% R4 V2 O! Y: ^7 m, R1.
程序分析: 兔子的规律为数列
1,1,2,3,5,8,13,21....
/ v% M* u( L* w4 \' b( W
2.
程序源代码:
* \; z0 o: s" @" h5 Mmain()
5 w ]5 o3 _4 X+ R" I. F: C
{
, ]7 T* F1 k+ [$ J a2 V, ilong f1,f2;
* Y4 B( P& Q% T! d5 c
int i;
/ a0 a% C; c; j/ m# O+ Vf1=f2=1;
1 C# Q$ U2 ~) r: s: zfor(i=1;i<=20;i++)
+ `8 _7 [9 e" x# a: t" B
{ printf("%12ld %12ld",f1,f2);
6 |% M4 d6 e0 v' w
if(i%2==0) printf("\n");/*
控制输出,每行四个
*/
5 E6 R8 b; S* }5 \; _
f1=f1+f2; /*
前两个月加起来赋值给第三个月
*/
# T2 G7 I3 k* x: R9 j: `, G3 a4 k/ x
f2=f1+f2; /*
前两个月加起来赋值给第三个月
*/
: t4 |: u* b# A+ m, f! |
}
. @4 ~- c2 N' q9 F5 |/ T
}
/ ?8 N! m( s) w2 @( l
==============================================================
8 }) p* g2 p( h% }* K
【程序12
】
3 f$ _3 M) ^: _1 y7 D
题目:判断101-200
之间有多少个素数,并输出所有素数。
( b g2 C2 K( s7 F/ {" H- W5 b
1.
程序分析:判断素数的方法:用一个数分别去除
2
到
sqrt(
这个数
)
,如果能被整除,
) s' `' \* g* h z) N K
则表明此数不是素数,反之是素数。
! y! }; B% B$ X# Y8 a" _) {$ Q2.
程序源代码:
2 m' W w5 D9 n6 {; Y4 {4 A0 Y#include "math.h"
% a7 l7 _( n# s
main()
6 n$ z: k% b- J8 Q3 }" [2 U' D; o
{
: z T6 G e/ lint m,i,k,h=0,leap=1;
/ S5 g8 n2 x5 r
printf("\n");
+ D; X. q4 i& B! q f7 }7 R
for(m=101;m<=200;m++)
* t: A7 c; W2 X" H$ y: v5 w7 p{ k=sqrt(m+1);
) o; f4 V' M0 Hfor(i=2;i<=k;i++)
1 Z% i% w' x3 V6 f( Zif(m%i==0)
, L; d: F' b+ k$ {{leap=0;break;}
* H2 w7 F! w/ j+ Sif(leap) {printf("%-4d",m);h++;
* {9 }. W- T# r$ u5 M" x
if(h%10==0)
}, ^5 {- d' ^' V1 ^
printf("\n");
! S6 E, e/ f( b, U) j b}
- r- J7 ?, o5 C3 A
leap=1;
" n" O4 B* S d( G9 ?}
4 O' w$ J W0 l. C# }! ]2 |& I
printf("\nThe total is %d",h);
: y) B: Z# Y0 z6 k
}
+ K+ |- U( j' y. h9 m2 `: p
==============================================================
4 O# s! n! R; f$ W( g/ ~2 u6 t
【程序13
】
! ]; e! u8 g" l6 P* Z, o3 ^$ @
题目:打印出所有的“
水仙花数
”
,所谓
“
水仙花数
”
是指一个三位数,其各位数字立方和等于该数
( |& P) ? E% r6 [9 b0 l/ Y" V
本身。例如:153
是一个
“
水仙花数
”
,因为
153=1
的三次方+
5
的三次方+
3
的三次方。
: d4 V! m) R! h: z6 N( D8 d( ?# [
1.
程序分析:利用
for
循环控制
100-999
个数,每个数分解出个位,十位,百位。
. M# S$ D8 E, j* d4 _' v
2.
程序源代码:
% e" o) a7 `/ F$ smain()
( \5 N6 A$ Q/ Y0 [3 O5 z$ l
{
4 C% T0 r( e3 b0 F- d9 Hint i,j,k,n;
7 Q/ [0 V4 t) Y/ w6 p8 Q
printf("'water flower'number is:");
9 ]2 Z; V* {6 M, p" p1 l3 P# J
for(n=100;n<1000;n++)
+ b6 M1 y$ Q9 p3 \# _{
) \) x! k9 u: z8 w% K9 U
i=n/100;/*
分解出百位
*/
$ I& g2 P9 ]8 g* Y* v
j=n/10%10;/*
分解出十位
*/
8 H1 s8 K U: |( N* J2 {2 ^k=n%10;/*
分解出个位
*/
5 ?+ e5 o \; g2 p t- N; v. p
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
+ n, l M* l A/ H3 B+ P/ }3 y" D{
4 D* X# G' ^- g4 L
printf("%-5d",n);
$ M. G" f8 b- n. p: Q/ A# J
}
1 l/ `( S2 A3 b7 B a# L}
) H# O+ g6 n/ x( P C
printf("\n");
& k, w# _1 ^6 v T3 N}
0 ]" U0 ^8 r4 r) ~ N==============================================================
6 X5 j) q. l0 K3 u
【程序14
】
5 @) }$ P6 ]# o/ X# i: z% ]
题目:将一个正整数分解质因数。例如:输入90,
打印出
90=2*3*3*5
。
* I+ A" V) w: h6 Q
6 Z, m- ?7 u/ l% x7 W, c/ G, P" ^# I
程序分析:对n
进行分解质因数,应先找到一个最小的质数
k
,然后按下述步骤完成:
* A% R8 z5 J5 l
(1)
如果这个质数恰等于
n
,则说明分解质因数的过程已经结束,打印出即可。
! j! E! B, ` R0 \1 o( {
(2)
如果
n<>k
,但
n
能被
k
整除,则应打印出
k
的值,并用
n
除以
k
的商
,
作为新的正整数你
n,
0 |4 g9 M" s8 L) F( t0 X
重复执行第一步。
4 H; P! I, Z2 y" W0 _3 a$ r
(3)
如果
n
不能被
k
整除,则用
k+1
作为
k
的值
,
重复执行第一步。
6 T% a: o3 O1 c4 n
( y" {2 I9 {7 a' J2.
程序源代码:
5 C1 x! K2 q/ f6 u+ f; V9 ?% U' Y7 G ~
/* zheng int is divided yinshu*/
/ ~9 v( B* V) I
main()
# U( |% q: b" t. t4 i2 a
{
* L: t, x4 z3 i1 [( Uint n,i;
9 z7 M& M: w0 Y. N0 y& t/ Z3 a% i$ J
printf("\nplease input a number:\n");
( ~; O2 h6 J7 f/ n {7 i; sscanf("%d",&n);
4 N" ^0 g" p: s# E6 j& Xprintf("%d=",n);
- M$ r4 K5 [+ r( _: @4 U% _. Y6 x
for(i=2;i<=n;i++)
; e7 I2 t1 _6 |& d" [' Y{
$ C5 P$ i* e. G# ? C2 P
while(n!=i)
8 i( z# t# E0 h3 v5 q! P{
, D( x) j+ d% o7 r( ]* nif(n%i==0)
8 E; @7 `: ?- o! Z6 S{ printf("%d*",i);
5 F+ t0 U. f6 @- E! b8 t2 ]
n=n/i;
& `: s8 x" ~' r1 Q2 q}
/ M7 Z% ~- |9 c5 O8 s
else
8 p1 H+ k8 U) y
break;
% S* N" j% Z4 u) }}
/ G7 Q5 B6 f7 o) ~, w6 q W
}
. H! a/ y! Y$ W8 @% `( m1 Yprintf("%d",n);}
( w' q- I% y: L% _
==============================================================
! m {; J- s7 C$ ~' U4 e
【程序15
】
8 q* H( {" T& \! a1 X$ w/ Q
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90
分的同学用
A
表示,
60-89
分之间的用
B
表示,
% [" x9 J: m m3 p& a+ g, r K" H60
分以下的用
C
表示。
" a; Q+ V+ }4 P4 n6 R1 Z: `1.
程序分析:
(a>b)?a:b
这是条件运算符的基本例子。
7 j+ Y, r3 |9 `+ f2 U i
2.
程序源代码:
: b% s! }* o5 p% Z% k' |& {" W; k. _( ~
main()
! m6 ~5 y' ~2 ?
{
2 u$ \# g# G/ N( f4 K( Sint score;
' g! ?# Y& {: n, P5 ~4 b
char grade;
6 b$ {" s( f* H0 x
printf("please input a score\n");
% v* S, }: V! }$ S d2 G
scanf("%d",&score);
# K6 d ]. o# H/ igrade=score>=90?'A'
score>=60?'B':'C');
0 I/ L1 Z/ l+ G, S! K
printf("%d belongs to %c",score,grade);
' k; E% J! M$ ~2 a* D* C}
! Q/ l* q# G! q: C+ H1 U# O1 w==============================================================
' [7 S, C P" W% B# P" o
7 x+ C9 [4 s# b! D: i- k3 s" C4 c
|
|