|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序6 】 / F! X: x5 H& |9 _7 y6 Q
题目:用* 号输出字母C的图案。
7 T; d& l4 Z4 r5 B. u+ i. a- D$ ]: `1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。
* b4 _0 a1 [' J0 k+ F2. 程序源代码: 9 U9 N' h9 i* [ c( S: ~
#include "stdio.h"
2 N: l; {# l5 A- [8 ?main() {
6 X; H8 w3 t% cprintf("Hello C-world!\n");
8 ]. W/ i6 Y3 P+ g0 N: q aprintf(" ****\n"); 5 h% }2 J, h, E
printf(" *\n");
, z) K2 T1 ?* K- k+ Z4 a6 Bprintf(" * \n");
* u+ {: X: w" S2 E3 Gprintf(" ****\n"); } 4 d" Z" N; k) J. U# f: B
============================================================== $ c. h/ C# E4 _1 b+ u1 r! {
【程序7 】
x/ e$ j! X, w题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
* l8 K& ~! |( {5 m9 w3 w# w1. 程序分析:字符共有256个。不同字符,图形不一样。
7 V% h+ m; J. J; I: A2. 程序源代码: 0 |, T: M- P' h+ `/ M
#include "stdio.h"
, E( m8 j! Q! ^/ y6 hmain() 5 E0 Y* r6 j; _2 T1 T0 u
{ 7 k4 n3 f o$ t; W# G7 c1 L
char a=176,b=219;
! b: j8 M, z- Y8 E# E+ f4 Y! V% d) Vprintf("%c%c%c%c%c\n",b,a,a,a,b);
; C# I1 d$ v9 ?# Y0 K9 O1 J0 |printf("%c%c%c%c%c\n",a,b,a,b,a);
6 E1 G& S* B" H; j& pprintf("%c%c%c%c%c\n",a,a,b,a,a); ( t9 S6 v2 L& Y5 b5 h9 j+ ]5 @
printf("%c%c%c%c%c\n",a,b,a,b,a); 2 k; [5 n% U; F+ x l% _ F
printf("%c%c%c%c%c\n",b,a,a,a,b);} 4 M9 Q+ f2 O3 p6 d9 o3 _" T; L$ M* R
==============================================================
8 [. W" Z! n" _2 k【程序8 】
: Z- P K8 ~3 u题目:输出9*9 口诀。 ; k* S; _ X- G' l+ h
1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 7 ?* J4 y2 |1 A% R h# K
2. 程序源代码:
4 u# y1 ?0 p4 A0 ~#include "stdio.h" / a6 Y; i9 w" W0 [
main()
( p+ m! b$ l8 ~* Q% Q+ E{
, X& }- v9 `% \0 j3 Uint i,j,result;
2 m }1 z) S- D- Y# H% Sprintf("\n");
1 F9 v; b3 `! _$ h7 ~, jfor (i=1;i<10;i++)
( g8 G1 o9 P N# i$ r# J{ for(j=1;j<10;j++)
% b0 E* Q, C8 S{
2 o6 Q, b/ E2 |. s5 Iresult=i*j;
3 t+ m- a; V2 J9 n1 J5 Z% p) rprintf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
( v& a7 L7 z: I} 6 T/ o" y3 U! i- T: f' F
printf("\n");/* 每一行后换行*/
- @( p$ o% e& b}
4 a1 r' P* W" N}
4 @8 t. F3 w5 }( f$ X# S8 f==============================================================
9 I0 G4 a+ ]) U6 v6 b【程序9 】
8 _3 Z% t- b2 |8 C# |8 Y' l, P题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
9 t3 Y, u( \# y9 }4 P1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 # |/ p5 A9 V+ T7 v4 \
2. 程序源代码: " b; \9 l4 c Q' O8 K( H" g5 U
#include "stdio.h"
" t, D+ T7 L: G* Q0 b" t* S. pmain() - W5 A1 N* D$ R: K. n
{ 5 @$ v# [" h/ y* Q% h; m
int i,j; 8 |/ ?( H$ }. F( c( d: [2 b
for(i=0;i<8;i++) 0 p- \# v1 ]4 L! y) M
{
1 o8 _, b; h* ?& ^& Z- E8 ~6 I9 |for(j=0;j<8;j++)
7 I5 x$ x4 m, U" C2 y, F, _ t6 J6 Iif((i+j)%2==0)
0 r _. ~( Q5 Y) _0 E+ Lprintf("%c%c",219,219);
9 y9 z7 z- v- o8 B7 @: ?& v( jelse 9 g* m& O* M9 d3 ^9 P: x1 E. h
printf(" ");
# K/ Q, _! }" ]6 d* ?) Cprintf("\n");
$ @: ^0 Q7 K( z3 B5 a" S. [$ d& M}
6 Y2 ^& M6 g) K6 p5 `, h B2 F} ( P4 h2 [2 m- k; d0 ^* m8 {
============================================================== . N0 ~7 a G1 G8 Y+ u" l
【程序10 】
: P8 m4 b7 {5 f- D题目:打印楼梯,同时在楼梯上方打印两个笑脸。 5 h0 [0 U: F& a6 o' a: ] p4 Z
1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
z$ p2 ~8 M( I5 p V2. 程序源代码: " W, ?+ O8 ]! O" x. p, b5 u
#include "stdio.h"
( F( g0 c1 W: k/ smain()
6 n$ c6 _. ~$ P d8 j6 u& i& X5 i{ * O4 O9 c/ [+ s3 b* _! f% c
int i,j;
- @9 B# d. D y3 Kprintf("\1\1\n");/* 输出两个笑脸*/ 9 k7 M" S/ V% x q
for(i=1;i<11;i++) ) i- w3 t& ?" y3 m! q
{ - j' N: M! }4 b
for(j=1;j<=i;j++) ! }/ E2 N5 S6 V- H, f3 S
printf("%c%c",219,219); / j5 F8 v. M* J2 `4 o4 O) L' C
printf("\n");
( H2 N& y" f# F8 B: s+ G. C}
) _4 _( z9 D, g! S5 b' F" }- i}
! Y7 j+ C3 |( h! e4 k% B# V( f6 H
8 a7 j; N x2 s) U* x9 l$ [8 C
: z% h$ f* }. J: N# {6 G, d- u+ s5 n
作者: zhlei81 2005-1-22 11:29 回复此发言 + _9 d' U" f* o; v# L; Q/ H" O2 z
7 R6 w3 v W; K ?
-------------------------------------------------------------------------------- 2 M, P7 l! q. I
) Z h5 H. c8 O/ M j
3 回复:经典C源程序100例 6 M; g3 D& b/ |. Z
【程序11 】
1 R- x7 k1 ^$ o- q9 q! q8 I题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月 ' y* a$ r. A* K+ v
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ) A9 U0 o# R3 o. G
1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... ( j8 Q- L* o3 \! ]3 Q
2. 程序源代码:
7 w+ @. u- m+ {& h+ `4 kmain() ) j3 h9 A; I8 I0 G( ]
{ $ R/ o9 h. K& b! A8 f
long f1,f2; # {5 c% Z. B( R: J
int i;
/ H6 w8 ]( U& H, f% n; W# hf1=f2=1; 0 f4 |1 ^2 l6 O; u+ z; Z
for(i=1;i<=20;i++)
5 r: R- V4 h% `+ b6 L6 e7 ?{ printf("%12ld %12ld",f1,f2); - u; @0 h, n% Y' K \5 v a2 r% |
if(i%2==0) printf("\n");/* 控制输出,每行四个*/
3 T# l% b6 p5 h; h9 vf1=f1+f2; /* 前两个月加起来赋值给第三个月*/
& [- p+ `1 G" j' O4 uf2=f1+f2; /* 前两个月加起来赋值给第三个月*/ , Y$ e' K' p/ A7 v; M- K2 t
}
& a% g$ w& A _% R7 p7 }5 y}
% Z6 q" \* u. l5 x, Z/ b============================================================== # s8 P, R/ g$ a+ f) ?. Y1 {: o2 r
【程序12 】 - i0 V5 K' w2 S% w+ g
题目:判断101-200 之间有多少个素数,并输出所有素数。
. Z5 K* X3 @( v; O, M* \ b" I, n1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, ( l Y3 B5 _+ {# ~
则表明此数不是素数,反之是素数。
0 ~4 j# R+ o4 F6 w2. 程序源代码:
2 a3 U9 @2 f( u& S, K#include "math.h"
2 U& ], h# `/ ^% M5 H# Pmain() % s3 n& S( d# l+ j9 s9 m( z
{
' _$ \0 n4 T7 V: A4 ?int m,i,k,h=0,leap=1; 4 ?9 y8 y$ [ y/ ~7 s
printf("\n");
- O' o& i, h* D' }for(m=101;m<=200;m++) , v" B- Y% H4 a
{ k=sqrt(m+1);
6 b5 }$ s- Y5 c6 O- U9 T: O1 bfor(i=2;i<=k;i++)
& a; T/ V8 B6 |7 c4 s/ u) Q' N; {if(m%i==0) 7 ]) t0 S3 @1 k+ w- }
{leap=0;break;}
1 K" p, C1 K5 [if(leap) {printf("%-4d",m);h++;
5 D( L: U/ L8 l+ B4 P* x. ^) S0 o0 W& \if(h%10==0) $ b# L. }9 |/ o& `( t- R, v! u
printf("\n");
+ o* N9 ~4 |: k% j& [: E: i} 1 A, `: j K# @' I+ t; j
leap=1; & S7 b# q" K$ j- ]
} $ O4 N0 l2 Q8 h
printf("\nThe total is %d",h);
6 ]2 a3 A4 q) C) `' o6 c8 G}
( A( w. r6 m3 y==============================================================
+ N ^& r% C1 Q9 z n6 Q ^【程序13 】 # ?" c, c+ \' G1 l
题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
9 `/ I |7 h, a6 t( C8 X+ A本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 & E3 H, }- p- r0 I
1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ' P( i1 B7 K6 d9 @2 v$ X/ x Y
2. 程序源代码:
2 d4 S: U" [6 l% J6 G: A$ u/ W, b, zmain()
' _9 |9 q# A/ a) O; E8 G7 }' T' n{
. z( l( N& {/ {/ e1 ?' t3 B' A- Yint i,j,k,n; * L: V& T& a$ Y4 ]
printf("'water flower'number is:"); ; d t0 }1 y+ o8 W: F7 U& c7 P
for(n=100;n<1000;n++)
, Q" L; e. F3 y! p. c7 h6 M{
1 p6 f; F+ N' @! Oi=n/100;/* 分解出百位*/ 4 i7 o( P O! M! C
j=n/10%10;/* 分解出十位*/
( h; \) a. K$ V3 Y- \0 s/ \- ek=n%10;/* 分解出个位*/
9 N' y1 \9 i0 @: e- e& Qif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 0 F, p, u( W, X C. M
{ ( X! n8 a/ m9 l% Q2 f3 S
printf("%-5d",n); ( V1 V+ G6 z. |* Q# L3 s
}
/ o' c1 Z$ k3 H$ U3 L}
9 w$ ]% G! S3 eprintf("\n"); . _! q. Y% a; y$ l+ _4 C
} 8 H' a- o! I* z" ]! F7 a
============================================================== ; {0 {# n0 O9 U1 s a+ i
【程序14 】 / V+ ?) U( Y( x
题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。 * A, E# \4 @8 E4 P% c3 p
2 P% {- ?" I; K J程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: $ G! ^' c% E, Q, u: I' x
(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 Y: m* l. E2 t& i6 n. P0 U
(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
" s$ @% `+ `7 b8 n( v5 c重复执行第一步。
2 u8 S8 I: Y( i- @+ |" C( X8 V- y7 k8 g(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 $ j. L; q& U2 Q3 y8 P
- [1 _2 p3 V, u( ?& `" v
2. 程序源代码:
: a2 M% c0 `7 b7 b" i: q/* zheng int is divided yinshu*/
, h0 U, p" ~7 @, ^main() 6 R8 f1 ]6 e3 {. f2 ^
{ / k3 R* @5 v! X% [/ Y
int n,i;
( O+ c/ E6 T+ b2 zprintf("\nplease input a number:\n"); " X: l1 s! u- ~; S' d: I- I
scanf("%d",&n);
4 r& v; x8 z* m& x% aprintf("%d=",n);
" g# L7 e) m# M" ?$ Y* b& [for(i=2;i<=n;i++) 1 D# K, a0 F: \6 _/ k v+ a$ b S, V5 s
{
B4 j, k9 h/ v4 G, mwhile(n!=i) " o& d- Y/ T( N7 O5 A
{ 6 u: o7 j* H1 Y8 k
if(n%i==0)
2 B1 b; d) ]0 @* z{ printf("%d*",i); 8 g, |- v' D: W# F
n=n/i;
& \% x/ I: }( C$ f. i6 s}
! R( \& k# a# A9 G. d% ?else
6 q$ c0 D$ s8 y" [3 z" obreak; 9 `+ ^" S& Z, q0 B J
} + @2 F+ Q0 }, C5 x7 H. t
} 0 F8 H5 D6 q' u6 u
printf("%d",n);}
5 _* z! [9 c) `% S: X. ~! b==============================================================
- z& ?9 ^* @) Q! ~【程序15 】
& L, P6 {8 w Z' Q9 h$ f6 z题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示,
) H' v1 h2 l0 J60 分以下的用C表示。
2 y& m& d P2 X+ X1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 * @ l! E$ ]( I$ A0 g: Y
2. 程序源代码: 6 _" W3 D0 X7 }6 P3 ^. U
main() . M5 s+ d: t3 {1 {- n" {
{ - w6 {' F5 D3 Z/ I, \
int score;
1 D# Q7 ^9 f- f) f' d0 Tchar grade; 1 M' |. Q: A0 E1 } q8 H' o7 x8 ^
printf("please input a score\n"); 2 G e. `, E; a
scanf("%d",&score); ( W" w! a, K5 j% L7 u" x
grade=score>=90?'A' score>=60?'B':'C');
$ `! h2 C+ N+ j" ~! u7 B8 bprintf("%d belongs to %c",score,grade);
6 V9 n9 L6 v m7 A6 ]4 P}
$ i+ A" ?9 s) m# A, g% ~7 i: c. C==============================================================
6 U4 w4 k0 @2 Q4 q8 ]7 E6 k $ D: j; }3 N- w& I
|
|