|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27 】
p) p' y$ U* u- ]题目:利用递归函数调用方式,将所输入的5 个字符,以相反顺序打印出来。
- \% s: Y8 i: c5 q) M; f/ I1. 程序分析:
, t/ ]( r' J5 J; B$ [7 e: _- `+ @( d' W2. 程序源代码:
4 D/ E4 m4 O% w5 f#include "stdio.h"
7 R! P0 Q8 I; f& A7 Z! Kmain() : J8 Q2 M$ I$ f0 U3 ^& c
{ - N; p N( k& x7 Y# J
int i=5; : k: [) O0 R9 x) u. G8 m, o2 k
void palin(int n);
" `# t2 L1 z: O/ r5 m1 cprintf("\40:");
$ K# }% r+ I6 l% v; wpalin(i);
! a) [4 V, |/ d; Iprintf("\n");
6 E+ U0 K# F* ?4 I+ o5 l- d: p! R# F}
4 W+ _7 j- {. |; X% m% k" mvoid palin(n) & _6 h! z5 K( b. w2 r8 {+ a
int n;
, N$ d6 L& N. c( j{ 4 ^% I0 T2 t+ [3 X- j! ^& a
char next; * Y: H$ L" W* M7 M8 [7 @8 i
if(n<=1)
1 q6 C4 i% m: ? {
# \! [$ L, e6 i& ?$ [ next=getchar();
* \$ f4 i' M5 k* r3 U+ B printf("\n\0:"); 7 @- k" c$ Y' J3 w2 q& W
putchar(next); ! m, o, a8 r0 N% `. _
} $ r) }/ A' c2 e( M* i# _- ^& Z
else
* t- I8 n2 a8 `1 O9 S/ K# q: b { ) z) ~! d9 f- _5 p% v/ o
next=getchar(); " F' R1 r: G$ R2 c1 d2 s: i$ r( T! A
palin(n-1);
7 d$ z7 g! O2 u. }( H# X% l0 {+ Q putchar(next); 8 R3 X! @9 ^; _
}
# j+ l P9 a- P+ b. V5 o3 Z} 2 \% t# f; }& E8 ^5 a U& m
==============================================================
; y. Z' t7 E: `" E, l; x【程序28 】信盈达 嵌入式企鹅号要妖气呜呜吧久零就要 1 e/ V0 ^4 z. k6 b* C" Q7 @1 f
题目:有5 个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
* K2 s2 N# ]2 M) A8 o" R7 O; S) s 3 个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 - ?( Y6 a4 T/ Q M7 h
问第一个人,他说是10 岁。请问第五个人多大?
8 Y& D4 s0 o, H) {% P9 L' z/ d8 b1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
! x# o" t9 }: M9 Q, U: @( a' G# w 第四人的岁数,依次类推,推到第一人(10 岁),再往回推。
8 o% d9 ?1 T: U* M! {2. 程序源代码:
! ~# E5 T$ ^! Y4 \4 L, ]age(n) 0 v* \, L+ e! i
int n;
3 B# D/ b$ g5 P5 q! c{
+ [7 l' @9 |2 D: x; cint c;
; Q8 X+ a& k8 E: F$ Xif(n==1) c=10; 1 l) a. m s% V; C
else c=age(n-1)+2;
8 E6 u6 Z$ `+ M8 P2 q6 z. creturn(c); 0 z. U6 q' J' k* z% j+ [
}
0 G y4 Z/ @4 k+ A y* f$ i: k# k$ Omain()
! G4 j( \2 O5 ?& O{ printf("%d",age(5)); / [4 Q2 {& K" n, _- X1 ]( U
} I% H' h3 E E0 ~; }# W# k
==============================================================
" b2 t% e7 K6 x; C【程序29 】
8 T' u; F: m) K/ Q- w题目:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。( |' ?; M; l- Z. t" }, J
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) 9 l( ~" n( f9 D0 ~
2. 程序源代码:. E, a0 v. o/ X0 Y
main( )
1 I8 J: t, H+ }{ 6 ^" B' z* }# |) k7 H! B% U
long a,b,c,d,e,x;
L) X$ X- h' O2 Y( q4 C5 }scanf("%ld",&x);
5 Z& f. Q2 u: u$ ia=x/10000;/* 分解出万位*/
0 _/ X, i4 _5 I4 G0 h) @b=x%10000/1000;/* 分解出千位*/
( G9 w; _8 `7 u1 z- N5 ec=x%1000/100;/* 分解出百位*/( D& A; V: l3 D3 D1 X$ |: \" e$ I
d=x%100/10;/* 分解出十位*/$ s' W5 Y! Q) e% b( C$ {
e=x%10;/* 分解出个位*/3 S3 T' R+ Q5 W+ U; Y
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); 0 Y" R8 B3 |7 P4 \
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); & r4 |, T9 J: Q% t
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); - _7 W( B/ ?+ [
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
2 i" u. r, \( [9 N4 i; n else if (e!=0) printf(" there are 1,%ld\n",e); 4 l# w& c% i+ M+ M% h
} + y! l: _; \9 U: R+ E4 Y* G1 j9 j
==============================================================
/ B: p, V$ Q! D+ y【程序30 】
& S2 k% ]6 a+ N+ u+ B题目:一个5 位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
. I5 a: r8 L0 k: m, u1. 程序分析:同29例3 x9 s0 A+ \( E3 W
2. 程序源代码:
$ o3 Z: j5 z/ N7 ~8 M4 M, |3 emain( )
3 F2 c" `3 P% }* b( ^{ " R1 f7 A) t5 `$ w2 V* f7 l
long ge,shi,qian,wan,x;
. q5 U1 {$ W" D. ?scanf("%ld",&x); 2 c1 |- i* o, a, Z$ l ?% ]% J
wan=x/10000; , }# c8 u8 q+ P! e, Z' T$ T6 J
qian=x%10000/1000;
3 q8 G7 ] M0 Q; a9 d+ Sshi=x%100/10; - g+ Q2 R1 ^, {
ge=x%10; % C2 ~6 O6 }2 i' E8 h8 |7 G
if (ge==wan&&shi==qian)/* 个位等于万位并且十位等于千位*/
+ Z+ I% @) r1 {, X! F printf("this number is a huiwen\n");
$ E5 O1 O! I; D+ Felse 6 U' S$ E8 v8 _. I$ ]
printf("this number is not a huiwen\n");
3 t% j. e- @; ?. G9 \} 【程序31 】1 _4 x: B$ f B
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续/ o7 J1 U* G& E- _9 U6 M: V
判断第二个字母。5 C" w$ c5 {$ L' d- ~! L
1. 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。; _5 d h' J: ?1 B. ]5 L) r
2. 程序源代码:
4 |) A( v7 h( G q4 m2 @2 b#include
3 x ` T0 n1 p8 r& ~7 t# |void main()
* ^& T- l" \& S2 N! R5 f+ ]{
. a% q" e+ P4 Achar letter;
! T( p. N, O4 R7 I' R! O hprintf("please input the first letter of someday\n");
* H3 T3 D* |9 w& w b5 bwhile ((letter=getch())!='Y')/* 当所按字母为Y时才结束*/; A( }8 W3 c1 d5 [- ?
{ switch (letter) ! L+ @5 _9 c+ Y. C4 u' b
{case 'S':printf("please input second letter\n"); ; l. ?2 F) x8 k k
if((letter=getch())=='a') 9 H; V2 U+ ?- H! L. H$ c4 w
printf("saturday\n"); / ^+ c# t* N: ^7 G: J( D7 b5 F
else if ((letter=getch())=='u')
6 n/ g3 b7 h, c' @. v- f. N printf("sunday\n"); ! R* x1 H; k* T) ?' z! P
else printf("data error\n");
& p# Z) Q- }( J break;
% k% p) a! L/ v; o5 x$ N7 Ncase 'F':printf("friday\n");break;
8 ^. m7 `& g. d/ i( n2 {case 'M':printf("monday\n");break;
8 V& \; g/ o' e/ A4 w* J5 M+ e9 |case 'T':printf("please input second letter\n");
# t7 S' v' {% s4 K if((letter=getch())=='u')
$ b, e% U& \8 F9 t printf("tu ESDay\n"); / L B$ Y/ I% @5 ?! N
else if ((letter=getch())=='h')
) ~; B: i8 j+ ~4 ?! \3 @* A printf("thursday\n");
0 D9 ], W6 n, a1 q! K. q z- A else printf("data error\n"); $ K: B7 A+ Z* n, V$ s8 y
break; 5 ^1 j6 Y! c. ^% e7 f
case 'W':printf("wednesday\n");break;
1 x6 U" ]- T( u% T" L' V Ldefault: printf("data error\n"); - h* Q2 Z2 P" `7 v( i0 O
}
7 B3 p& W+ E( X } 8 x' D# v! w2 T u
} 0 j7 H! l8 g' z6 F0 o0 l
============================================================== " D- t3 a0 m2 s F" E4 V" h
【程序32 】
3 m5 Y; U) n% `. X* f7 m7 Y: z题目:Press any key to change color, do you want to try it. Please hurry up!
" R: i9 {/ r' e' i7 _7 ]1. 程序分析:
+ f3 t- @5 r% t6 x2. 程序源代码:
! [0 T# k5 M' V3 f#include
8 P# M5 L, F1 Jvoid main(void)
) X- V1 W9 R: G1 s+ a& l{
% f' t" \% m, X; |. hint color; % c. N7 ?+ x0 H) r- B+ ]' j
for (color = 0; color < 8; color++)
+ E' ]& I- K& B# F) e' k0 X! t { 1 I. A! q8 c! }% h4 e' B3 Z$ V/ d
textbackground(color);/* 设置文本的背景颜色*/
# C+ ? p# _/ }7 J9 i- ^ cprintf("This is color %d\r\n", color);
9 v- d( p6 W$ ^% u cprintf("Press any key to continue\r\n"); 9 J! x0 N A" U4 |
getch();/* 输入字符看不见*/
9 \/ I: a4 F$ w! ^2 x3 y }
9 N m. [+ d: r! G+ _: u3 K( @} 7 e" s+ v& ], |5 x) L3 S9 m& x$ ?$ ]* E
============================================================== ) T% ?5 u% I( y- n% t1 m
【程序33 】2 T3 M1 x" y6 _- [- m5 ?
题目:学习gotoxy() 与clrscr()函数 ( r+ T+ G* Y @# s+ E3 ]6 @
1. 程序分析:
5 \7 E, m x! Y2 F3 \9 y7 X2. 程序源代码:
8 F4 D& E5 d, W U$ H# M9 }# \#include * V* m! G- V, M1 p. o9 ?8 b3 R
void main(void) 5 M% y' G N1 {" e
{
& f# v) W* d8 r0 i1 V3 }4 x: @7 M) p. G& _clrscr();/* 清屏函数*/
/ N; ]8 J: R" ~9 xtextbackground(2);
5 \5 \% d i1 l4 a) ?! ?$ C3 \( igotoxy(1, 5);/* 定位函数*/
, r; W' |5 u" g' U/ ~" zcprintf("Output at row 5 column 1\n");
5 i4 X7 O% u. `textbackground(3); - ~2 c7 A+ ~, X- i$ ?
gotoxy(20, 10); g5 z1 f) ~8 H: C
cprintf("Output at row 10 column 20\n"); # _8 W+ F$ }2 a4 ?6 K5 J0 \
}
; b0 a3 ]. O n) h6 U============================================================== # \4 C' D) k' u8 a0 [) z2 h
【程序34 】
8 T! k7 @6 G. a7 [9 h! `! N8 ^题目:练习函数调用5 M$ @& h8 [1 x0 L* J
1. 程序分析: + n! }" Q, u9 G, f+ G
2. 程序源代码:
: b: d- k q3 i" s) Z#include ; Y) @6 }: u% n- l6 `. E7 L' t" N
void hello_world(void) ; a1 a' c* Q+ [- D3 G
{
, F# ?) v0 w+ a, V7 c) Cprintf("Hello, world!\n");
) z) }9 E6 m0 [6 D t} + t R# c; h& B/ P( f, h
void three_hellos(void)
; J$ M. }7 L, L& l2 i) Y: \: N4 R{
7 v; J0 B5 C. u7 n+ Y! j5 `8 F, T' Nint counter; 8 ?8 @5 Y4 x. |
for (counter = 1; counter <= 3; counter++) 2 X0 \. C# d- h; @3 J9 V
hello_world();/* 调用此函数*/- }8 c. B/ x I
}
* D3 {3 J, ~" Gvoid main(void) 2 q7 S9 e! N5 U2 \: g5 d, j F5 U+ C
{ 3 E1 T' `5 m, t" ]1 j0 C
three_hellos();/* 调用此函数*/! ]; f2 B$ S3 S% r. z
}
: Z) ~ Y8 o1 k, L==============================================================
' g+ O- s0 y1 g8 H$ W: o" J【程序35 】- F3 w0 c# ~7 V M- X7 Y7 Y# ?0 d5 T
题目:文本颜色设置
! {3 ], ^, R }4 K; S1. 程序分析:8 t. `- X. G9 D7 l' z
2. 程序源代码:
) S& I- `" `- O1 r2 B4 I$ V( M8 L#include 8 R6 c! X& }8 |- u+ A9 L2 ~
void main(void) # a4 \8 L, Q6 E3 q: X' Q
{
) p5 F( A3 u6 O6 K, ]1 |int color;
9 F& A' J/ c3 h5 A6 Z/ W! ?' [for (color = 1; color < 16; color++)
6 z! O% U' y4 W. S c2 E2 x {
6 \. I* M1 J" m9 ? w textcolor(color);/* 设置文本颜色*/
% F. F6 A* n) ^! [+ m5 u cprintf("This is color %d\r\n", color); 6 t- v) k4 T& y& w2 \% B
} 7 f+ j( y0 m9 |# q
textcolor(128 + 15);
' L8 | A! H: j) ?9 a+ @cprintf("This is blinking\r\n");
5 N7 ~$ ]8 m' a7 i, T/ m+ Q} % u6 G" {6 d1 h
==============================================================
3 T B7 j3 g0 T G【程序36 】2 ~) J0 |& h }; P+ B" g4 n
题目:求100 之内的素数
/ M, ]( c. v' }1. 程序分析:/ p3 @7 O6 l6 j, Y
2. 程序源代码:
, Z) Q8 p- M2 M1 D# v" t#include
$ O' }2 Q# C3 ]. h8 a#include "math.h"
# o* A5 M3 ]. g* ?#define N 101
$ B( z: S9 F7 T, W3 H, qmain()
6 b6 X m6 ` t \( \/ B{ : }# v. z; z7 j5 H* Q
int i,j,line,a[N];
# [) V- u7 e* Mfor(i=2;ifor(i=2;i for(j=i+1;j {$ a5 }. J- H: B) @. t# I5 M
if(a !=0&&a[j]!=0) c) {4 A2 B9 {+ x
if(a[j]%a==0)
4 ?" r+ G: t; K a[j]=0;}5 z. y5 r6 }# j/ a, {& H6 W
printf("\n");# V" d8 Q$ \$ L/ S* T2 \- i
for(i=2,line=0;i{
0 f% z" x, U" c4 Q! l- Q# J if(a!=0)
z' |2 V; ?5 J' _7 D5 d! X& H {printf("%5d",a);+ c8 d$ [, }0 ]/ u! d, ^
line++;}
0 s& R7 b7 _" X if(line==10)
! ~' n: i: s, } u: u {printf("\n");- w% K* p% B, x3 N9 T
line=0;}5 o# J, F4 y3 d, W' A
}
2 _( B3 G: k; o @}
3 d4 Q6 w8 t! I" _% Z==============================================================
* U4 W/ v: `6 I; {: I【程序37】- H* A: r+ ~' W, f9 R
题目:对10个数进行排序5 W- {- [& q2 s8 i, F
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
1 \/ m+ o8 m0 w, o 下次类推,即用第二个元素与后8个进行比较,并进行交换。
# ?: t8 O0 b2 x) B& S2.程序源代码:8 i1 e3 z% j1 Y- X- }$ o" q
#define N 102 A) x ?) F# f. ` L
main()0 i4 _% S: \0 X8 ]. h8 k
{int i,j,min,tem,a[N];/ Y; a( L% @7 J. R; {
/*input data*/
5 @8 w- ?* [) J8 z! Iprintf("please input ten num:\n");7 @# j! c+ X9 ~- j
for(i=0;i{# e0 Q' M9 K8 F5 Q4 ^
printf("a[%d]=",i);
. ?1 C. F! e, ?% I2 k8 Jscanf("%d",&a);}
+ l$ O8 e8 b5 |) o" }printf("\n");8 N" W" q1 t+ a( x% g' ^
for(i=0;iprintf("%5d",a);
& i- l& R8 Y2 K: Vprintf("\n");
+ ^& z) E/ c: O! u3 @/*sort ten num*/& r' j$ O* l$ ?
for(i=0;i{min=i;( X! y. ~, A: P
for(j=i+1;jif(a[min]>a[j]) min=j; W0 i2 Y& G' J# g4 `: k% H
tem=a;, Q+ e- g% F/ G( M% u, r1 v' U/ ^
a=a[min];
9 s- T- `" Y8 c/ M9 I, _a[min]=tem;3 x3 j& y. H# E( ^4 I: p
}
' x, b5 m6 F! S/*output data*/
& |3 W! f% n& {" ? K( ^printf("After sorted \n");
& k$ u8 ]; R, k, n6 {7 x4 L, k: mfor(i=0;iprintf("%5d",a);
! ~! ]/ ?3 |5 T}' G9 t7 r2 F3 s) y, y
==============================================================
) \! V2 X- O, }. }. j I) A9 ^# H0 o4 U: ~3 b
|
|