|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序6 】
( i3 s5 ^/ g" M2 e) s1 K( m) C1 T题目:用* 号输出字母C的图案。 * r9 I" ?& R, p" @: T
1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。 # [: V+ t6 n, _& S0 S
2. 程序源代码:
' l" V& J% g$ I- z% \0 o( ~; s#include "stdio.h"
Z' W }3 d7 k7 ?' N; I7 Tmain() {
" g. z/ ]' E, Bprintf("Hello C-world!\n"); 7 v) t! i; E7 ~9 v. O3 T
printf(" ****\n");
9 n' r) h1 J& z% Pprintf(" *\n");
, ?# X9 _4 D- D* L2 X# Yprintf(" * \n");
' G( n0 A# E8 R. j8 ?printf(" ****\n"); } / x# Z. V0 n/ u+ i M" s% F5 F
============================================================== ' X9 J0 c4 @) l
【程序7 】 " |8 v3 l& H+ K) ^. Y
题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful! 6 D1 j* r& A5 i6 [5 k
1. 程序分析:字符共有256个。不同字符,图形不一样。
5 ~5 \: Q+ H7 z( C$ ~2. 程序源代码: + w q' u) O* Y! V3 Q& f
#include "stdio.h"
! ^8 {' G; |) t( Mmain()
% S( D- V) @; e) L3 G( ?. v: J* H{ U n9 u6 } J! o
char a=176,b=219; / E+ E' e7 G+ k: I
printf("%c%c%c%c%c\n",b,a,a,a,b);
( d. D& R% r: S* t4 H# bprintf("%c%c%c%c%c\n",a,b,a,b,a); 7 \* P% F* }) \+ @" W$ K& R0 i: s
printf("%c%c%c%c%c\n",a,a,b,a,a);
4 q7 l2 U8 l( I6 K3 i& xprintf("%c%c%c%c%c\n",a,b,a,b,a);
7 W' ~3 v X1 E5 f8 N) \: w* Y/ }printf("%c%c%c%c%c\n",b,a,a,a,b);}
) U3 j: Q$ s$ Q) k( R==============================================================
' W, M% ~( I8 \; h【程序8 】 5 t4 D& @0 v# c: U* w
题目:输出9*9 口诀。
9 U, F. l2 E! g. U2 j- W0 n2 x+ P1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 ( R6 w. {4 `+ c4 i6 t5 m- K) U
2. 程序源代码: . L: k! C; s) D* X$ H, x. k) K5 G5 y# j
#include "stdio.h" % x" i( z- @4 X$ M' V
main()
. k; E' ? p. m' B{
8 E5 w) R& O8 i: }5 z5 c: b7 |( ~int i,j,result;
, }( j4 y8 h* K/ y b) O7 hprintf("\n"); - ?2 X( b+ g$ q2 D7 f: Q/ A
for (i=1;i<10;i++)
+ k$ L$ y, y' y{ for(j=1;j<10;j++)
* ^3 `! Y+ ~$ p( _! X. z& k' G W{
' V% R! U8 y! Q; w% s9 u0 X6 eresult=i*j; 9 p0 m% W! m" H: [3 l9 }2 m0 o
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
- n9 D) M; i. X1 n; J}
, G2 E2 U; P" f6 M& |# V( I. @printf("\n");/* 每一行后换行*/
6 h9 l$ }! M+ L/ A T2 X: p, e}
0 t+ A4 |; t$ j f% H}
K8 |0 [6 E0 k% D$ a) \8 u============================================================== * l3 j V7 L! S T: h9 k, {9 B
【程序9 】
# ], B1 E+ y( A- Y C题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要) . Q- l' C. ?% V. r
1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 y* T1 j ^0 ~2 ], t+ S
2. 程序源代码:
+ n% A {6 v+ E0 b* |#include "stdio.h"
# l' w3 C6 |* B* [" m& `+ q. {main()
9 A4 m' K, }: D6 O# D7 N5 X) S{
9 g( h+ G0 M1 E1 b4 C0 Y3 mint i,j; , A# Y9 J' g6 {8 Z+ z% g
for(i=0;i<8;i++) ( i/ B% T1 C# M6 c9 T3 S( k
{ 8 x! P3 G8 S2 b6 ]6 L }
for(j=0;j<8;j++) / `3 i" H0 _2 b% Z9 M# L
if((i+j)%2==0)
/ B( l2 B5 r' Y/ f3 nprintf("%c%c",219,219); 2 Q) a$ T2 ~ d* A# W4 `0 \
else ' S. q+ Z8 z$ G H; J0 |* f. z
printf(" "); : m) P- E6 O+ l2 k3 ?; K$ r
printf("\n");
0 q5 f0 b7 y: r+ E3 a1 \}
0 y% Y5 g n' a- E! F0 j3 T} - ^# V. m7 a* |# ^
==============================================================
4 c' F% Z- o! G( R; R/ v【程序10 】
) N. O3 u: @; _题目:打印楼梯,同时在楼梯上方打印两个笑脸。 / I. T! \" s# p9 L* v: \9 @
1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 9 }$ d- [* r+ ^/ \4 T
2. 程序源代码: 8 k9 U, u1 r0 F2 T ]
#include "stdio.h" 5 [$ p6 R" M% Q4 {. M2 ?
main() Z3 D5 l2 ]3 c3 ^2 r$ [' `" \: C
{
* n' s# r6 ^& r" {" Q% jint i,j;
5 N: c( M& y, d1 N( r) ]+ Tprintf("\1\1\n");/* 输出两个笑脸*/
& z3 v0 G( O" N& r3 f, g. H% [for(i=1;i<11;i++)
; W9 }5 B } U: L8 n/ g! i{ 0 \2 R# X' q; }4 {! w( F4 L! R9 K
for(j=1;j<=i;j++)
" Z8 _5 d/ i9 Y2 `6 dprintf("%c%c",219,219); % B+ f, N4 ?& P
printf("\n"); 5 L2 X2 e- ~! B- Y6 [
} 4 O# c3 {3 ^4 F3 F4 X# P. g
}
/ A( b, j0 z1 j! i1 T+ X' e, n
& n) {/ R3 y! L, h
7 i- o! _3 @* k, ^6 H9 E1 q9 s/ M. P: B; G, X# w
作者: zhlei81 2005-1-22 11:29 回复此发言 0 J. G1 D) e4 a
+ Z8 C+ x+ j: l5 f: H-------------------------------------------------------------------------------- ! i: ~3 k; M8 g
1 G; v& H5 E; T/ Y8 h3 回复:经典C源程序100例
7 O0 H& f, E8 |3 q【程序11 】
t! M: T3 c0 L$ K" [. f1 R题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月 ! i1 i0 e/ e( w
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
) o/ j0 y9 U O' C' V" k% @# V1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
, _3 R& h0 o. P1 F2. 程序源代码: ! e* ?7 {5 w7 t9 N: K& X+ h, C7 r
main() # d! I' H; G( X4 M- B
{
Q5 j4 l2 T$ @9 J/ qlong f1,f2;
6 X8 C4 w8 Q& C: v; _* k X6 Eint i;
: y1 p/ @: @) r6 q/ C* _: z( nf1=f2=1;
' h0 L$ ]! I6 ^( sfor(i=1;i<=20;i++) - R' V& `; B2 H4 | w7 A8 ~
{ printf("%12ld %12ld",f1,f2); " G" R- |* [7 P; g0 u& P Y
if(i%2==0) printf("\n");/* 控制输出,每行四个*/ 4 V. h {2 u5 z4 X; M" o, ?* [, J! d; z/ V
f1=f1+f2; /* 前两个月加起来赋值给第三个月*/ ; }( e- Q) S9 g, ^5 `. J
f2=f1+f2; /* 前两个月加起来赋值给第三个月*/ . \ u; [ A* G B* y
}
" t, e# b5 F; G% P7 E/ T% i}
. r) O, f& r Z$ D/ l==============================================================
3 i$ K: T; I0 }' u0 e! o【程序12 】 & i% S2 l. V2 l# `0 C9 h, {# B; T9 h& Q, j
题目:判断101-200 之间有多少个素数,并输出所有素数。 8 T# f) Z$ B, S( j) y; M4 {
1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
( Q' s" ~0 Q, j3 I则表明此数不是素数,反之是素数。 - n9 m% W( }( E
2. 程序源代码: # j4 X& N* b' y
#include "math.h"
& j' ?/ p( I5 k. U/ Cmain() ; X# i& t( }1 {! K( q
{ 8 u& e3 E5 _% H9 `/ G& m
int m,i,k,h=0,leap=1; ' s* `4 a; y$ i4 M/ m6 P6 M
printf("\n");
' {. i' p9 P, g. ~5 Xfor(m=101;m<=200;m++)
4 c4 B S7 A) a{ k=sqrt(m+1);
+ a: Q+ K, Y% E, N: [9 @for(i=2;i<=k;i++)
" K3 K7 g1 B1 zif(m%i==0)
5 X# Y# v! {3 \7 r5 k{leap=0;break;} * U2 f& x& w- G
if(leap) {printf("%-4d",m);h++; . U/ T$ [! h1 [5 d3 d3 \
if(h%10==0)
$ V: b% U; `' H2 _6 G4 ?9 Pprintf("\n"); $ z2 |* B8 n; y0 N" y" C0 u
}
8 G, Y9 Q5 E" \1 rleap=1; 3 U) p# `" X) r( l# k
}
$ Z4 s5 J9 c& y3 I# S" Fprintf("\nThe total is %d",h);
' y7 {, _ A- t( U' H7 T" q- B6 P$ c E/ n} 8 Q% R5 R' `- `! N9 K
==============================================================
8 \) t* r, m0 J0 c【程序13 】 6 ?) w S% Z5 R( F: c
题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
?+ s0 {8 I. K+ _本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
' O5 R0 ? k& q3 J1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2 m6 f# ~) S. Q2. 程序源代码: 2 v3 l, b4 r2 d7 J6 u w
main()
; M2 o7 } c% c% W; N0 E{
" R, v; u. S3 x, l- Iint i,j,k,n; / _" o: ?% @7 D. U3 ?
printf("'water flower'number is:"); 9 ~8 G# i/ B1 ~+ A0 r* s5 s, {
for(n=100;n<1000;n++) ! e h/ g1 m- _5 J( j. Y
{ % b# n" d% c+ t) B
i=n/100;/* 分解出百位*/ & L8 k/ U" P; a# K9 L
j=n/10%10;/* 分解出十位*/ $ M# b4 K% n7 G7 g
k=n%10;/* 分解出个位*/
6 e" U" F% D* E3 s/ P0 tif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) ' T ?! W5 l$ ^& G9 g7 |
{
' J$ E" ~8 l" z& G% fprintf("%-5d",n); 1 |: l8 V: _! R- q) Z* m
} ( e! ]7 S- j' O; \2 |; ?2 u
} , d6 {7 H! V8 @
printf("\n"); 6 K: y- l+ R9 S0 |9 Y% R
}
' k3 u+ q7 l& i1 A7 w4 ]% B8 [============================================================== 0 t7 ^2 s* V. {; Q
【程序14 】 ( u' S: i5 U- j- t
题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。 4 E- t( z7 u r
S3 a4 z) R! _9 S" B' B程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 8 L& k8 n1 A: ^" ?5 S4 g
(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 % u3 q- P+ f# U7 H6 {7 H
(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
1 g& p9 O! ?/ @( p重复执行第一步。 8 }2 a; Q4 Z) p0 ^3 v; c
(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
1 p! \' M& Y! \+ r
a; J. }$ J2 F' r* M2. 程序源代码: + l' _* t% m% r/ x. a
/* zheng int is divided yinshu*/
- E: J. W; l% S1 l- \6 wmain()
! T2 E7 B" D# C{ * I- s. r' g9 @
int n,i; " j5 g' w& G$ r. z' l
printf("\nplease input a number:\n");
4 ^0 c4 i$ m( q4 Oscanf("%d",&n); # R- X8 N, x! V/ a& d
printf("%d=",n); , y b' f0 O! d3 D
for(i=2;i<=n;i++)
! ]8 x. G6 y6 e2 O: X{ / g' C7 G4 S% v: e; \
while(n!=i) 3 u8 `* I# b" u% D6 h2 U* c4 G0 ^0 [
{
& O& s9 }* D: M1 x, Cif(n%i==0)
4 S# T5 P* z4 t% S' k0 r2 p{ printf("%d*",i); 2 s! w9 O6 `3 T# E+ K5 M# R
n=n/i;
' n" C; t6 O: C9 M, A) t} * H$ S! K1 o" }
else , Z3 p3 P; U5 ?
break; : M6 |7 y I5 w5 r
}
$ q& M5 }( P. v3 u H& \) |+ S) Q}
4 O) k+ |$ c: N- H$ e) kprintf("%d",n);}
% ?, T- Q% L2 ~" l) R$ U3 r4 b==============================================================
2 u; Z% g8 `: ?【程序15 】
& ?. L4 ^0 q x: {5 r0 M题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示, 8 a- E/ I: @% F5 E
60 分以下的用C表示。
. [ [1 f' f: v m3 t1 o1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 6 |) ]' G5 k* _3 B, S, T- t
2. 程序源代码:
' r) u; N! A9 a% @main() 0 t8 f' g, r1 L- s
{
5 J9 H+ E0 V1 u1 e0 t' q) ]int score; + Q/ q0 Z a+ }- T- l
char grade; * V% Q, E% ~0 M$ \( M7 L+ `
printf("please input a score\n"); ) Z9 \) Y9 e: Z4 o6 v. t
scanf("%d",&score);
. p6 P$ P& \' c- L" E+ l Ygrade=score>=90?'A'  score>=60?'B':'C');
$ k" p+ i# _. i2 R4 D# Fprintf("%d belongs to %c",score,grade); 1 s& r: I$ K6 c' G6 ? e
}
" M. y1 g6 ?8 K+ d9 _============================================================== ) L% M" T6 i& I$ V# m
5 {( ?( a" B( u% Q& o |
|