EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】
$ r3 n) U6 j1 L( U* Y题目:求一个3*3矩阵对角线元素之和
# o R" }8 O v1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
* e2 g# N- P6 H; y& @5 l+ R. k2.程序源代码:8 w g" D' S/ Y2 C6 J; ^
main(): E+ V t5 q' n% S" `4 C5 \
{
! g) q+ W v$ D$ |+ T2 h% |float a[3][3],sum=0;5 X* k% A: O' z
int i,j;
, ^& Z! K6 c6 ^/ K3 d* Lprintf("please input rectangle element:\n");
6 O- H: A9 c9 Q- B/ Zfor(i=0;i<3;i++)) O9 @6 G4 v7 {& U
for(j=0;j<3;j++)) d- W1 ^5 V+ @: F, Q7 r% G4 f m
scanf("%f",&a[j]);# b n* e8 `+ g3 J- x
for(i=0;i<3;i++)
7 T% x2 q/ b% _3 J5 i* U sum=sum+a;/ C1 o: M) H6 p* Y
printf("duijiaoxian he is %6.2f",sum);+ P; }+ i/ x; N {9 d- A# Y
}
6 ]7 i. g7 D% w- B* R==============================================================9 k. X2 g! Q7 I
【程序39】
& t# X$ `: ^+ C! q( F题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。9 |" G5 Y0 W/ `5 e0 \* f3 Z
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后, c( Q/ e6 k1 e# P P( n
此元素之后的数,依次后移一个位置。 " F o2 p" u7 S* m
2.程序源代码:3 v4 M. g5 {+ s. r" N
main()
7 p9 l4 @& ^* _- }& c& }{' q( a: P3 }" F. ^
int a[11]={1,4,6,9,13,16,19,28,40,100};
; B5 V; T0 _* S8 x5 ^4 }# xint temp1,temp2,number,end,i,j;0 ^# I3 w/ m: i( Q- A
printf("original array is:\n");$ o3 ] q4 t+ A+ X5 G1 j
for(i=0;i<10;i++)
0 s& ^$ _9 a. p9 T E( i) e+ A printf("%5d",a);
/ R2 P$ u& H' ^8 G2 h- [printf("\n"); Z; f- a I/ _8 f+ Q8 ]3 k
printf("insert a new number:");# i' I. \+ ?2 i% m4 r
scanf("%d",&number);' d u& a* x! w3 H9 r
end=a[9];
$ Z: c% _/ N/ oif(number>end)
6 f8 v4 {) ]- ~, D4 ?, g7 K; o! v a[10]=number;
. K( ~ x9 D8 m! X/ f0 Relse$ B* {; m$ a& `' C
{for(i=0;i<10;i++)
( c; Y! `) ~, ^1 v+ N+ k, a5 z { if(a>number), S0 C; Y& }7 L
{temp1=a;: g4 m% P/ m9 {) j7 R) D8 l. G
a=number;8 L {# m3 h1 h* r9 w
for(j=i+1;j<11;j++)
/ E- G( j/ B/ X6 b" p6 d {temp2=a[j];
6 @( `$ P" ^: q# X L+ G a[j]=temp1;
( {& N" i8 ?" \7 T/ |) Z) ] temp1=temp2;" l1 T5 I$ a; H: h" c, i% Y
}
$ G' Y9 F' t; G/ b break;
! j3 {. Y$ }4 e5 C/ z# c }! p) F3 I& G/ g7 a' f
}
! O; `% D" U- d u( f) p# T/ }}
" b, k1 e8 j% x m; nfor(i=0;i<11;i++)2 V) N2 v, x/ D& Q
printf("%6d",a);0 h3 M: p: X- Z* _' W) W
}" b; {8 G3 K( X5 J" L
==============================================================; r" A5 w4 o4 J$ K, k! d3 s, q
【程序40】0 {% {4 S9 {) b( H+ W
题目:将一个数组逆序输出。
- `' R1 J# C8 o7 h# m& @% L' t1.程序分析:用第一个与最后一个交换。9 |9 @+ r8 v# O3 B. \5 L
2.程序源代码:9 [& J9 B7 x# S* a
#define N 54 T4 z# @" F% ?, A1 X
main()% p8 T# f6 j+ @5 Y8 f
{ int a[N]={9,6,5,4,1},i,temp;9 d$ n, k9 `) d7 C7 }
printf("\n original array:\n");9 n4 V/ ^1 D" S( Q/ F! t1 r* }
for(i=0;i printf("%4d",a);6 m# c z' j! j' e. W, o* Y
for(i=0;i {temp=a;
$ ]5 p! S: s. a" D. d a=a[N-i-1];. U$ c# r/ ^6 Q8 W# w0 Y, Z" U
a[N-i-1]=temp;2 e/ M A) i F* G* y+ M
}, e `0 G5 b' g5 p. Z' v6 E" ^
printf("\n sorted array:\n");
3 A9 |3 G' X9 Y9 f9 q) B% Tfor(i=0;i printf("%4d",a);$ Y6 B. s% T7 B
} 【程序41信盈达 嵌入式企鹅一一起呜呜吧久零纪要 】 o7 l, z* O" R) F" s, C& D$ ?
题目:学习static 定义静态变量的用法
$ u- f: c6 E: l* L1. 程序分析:
8 ~ Z$ p4 Y6 i. w9 a2. 程序源代码: - c1 L& k6 ]: c4 L
#include "stdio.h"
6 q5 U1 r/ a% M5 `va RFunc() ( f7 a' d9 _: [
{
7 ?, C& e- e. F( y( `' H; \6 G6 Wint var=0; ( Y0 \/ m6 s7 N9 N, \7 P. W
static int static_var=0;
f6 y, R: K! M% ?1 dprintf("\40:var equal %d \n",var); ( |; a: D- A+ b/ ~# ~
printf("\40:static var equal %d \n",static_var); , N9 _( {+ W- W$ F: A
printf("\n"); ) t" O ?' m+ e" T
var++;
5 f: j% ?. \, s6 tstatic_var++;
; h! c7 n) s5 C+ L M% ^1 f}
5 o5 R2 C1 U$ \- R3 D+ O, i lvoid main() % X X$ H" F" x8 D( I) t# h
{int i; 3 `( d6 [( ]# ?7 u" G: W0 b
for(i=0;i<3;i++) 6 W# _, l$ I9 R: I, L
varfunc(); ' N/ T: H6 ]% c4 G9 d
}
( X0 Z0 Y/ ~ M9 O1 b" x8 E==============================================================
" x$ u: A4 k1 V! `【程序42 】 ( {7 B! E! E3 X( ?. }4 r$ `
题目:学习使用auto 定义变量的用法
# L$ }- H* Z. D# c1. 程序分析:
. E( S: r* k& U m! S2. 程序源代码:
( Z) \8 R0 N' q8 b$ ?; u6 U+ {#include "stdio.h"
' G }4 M8 q5 f& [main()
" b6 f: ]& G/ C' ]/ }{int i,num; 7 r: c* o6 y8 r- u( \3 R
num=2; ' e$ V& m! ]" w( P; n1 x
for (i=0;i<3;i++)
; c* Z$ s. ~+ ?+ S{ printf("\40: The num equal %d \n",num);
5 J$ \9 |1 Y- znum++; ) D+ s$ \( C4 E, }
{ $ p7 J: F2 B2 D& g7 ?
auto int num=1;
/ u& u: J$ C+ D: L' s+ C% {" nprintf("\40: The internal block num equal %d \n",num); ! ^5 u2 x( m2 j
num++; , i3 [! J4 K+ B: ^: b7 w
}
; Q$ S t" G) N2 j) ?$ h7 Z& }}
! e( Z1 K2 N& ?}
% N4 \: G% u1 P: A. X0 ~============================================================== ( y' ]! ]$ }+ L( t9 `& R1 m
【程序43 】
' X4 W' d8 O2 m题目:学习使用static 的另一用法。
% D. a+ y0 ~! \9 x1. 程序分析:
4 C# l I: @7 ?* y) [8 |' J2. 程序源代码:
7 e3 |/ E( N. P% t#include "stdio.h"
- L; n) p* b+ _5 Qmain()
) q n, a/ g! L6 z) E; O8 y{
- N3 w$ \" m) h& d6 Hint i,num; 7 ?% }. r: N3 k/ S. D8 m7 f
num=2;
% U4 v# _' v5 q1 ufor(i=0;i<3;i++)
" \5 O2 C1 U4 n( |/ d( d, T+ d{
& l6 R/ `" r9 A8 o7 `8 G9 z- j0 ^) n8 e1 ?' jprintf("\40: The num equal %d \n",num);
& w7 M' g9 V$ r- l9 Jnum++; 8 s3 g, \1 S; c4 {
{
5 B( t% @9 q: }- H: Sstatic int num=1; 5 Q6 [4 _. v! e% `+ f# {
printf("\40:The internal block num equal %d\n",num); , r; T( R. x% K4 U* w# }
num++;
+ ?" S" `" t- C}
7 Y: J5 y/ z* k* r6 e} * X/ z7 z0 U: Y$ ^! x
}
9 ~6 S8 k* [, ^0 Z# ]7 h# e& U============================================================== 2 R, P) U x, l* |7 ` ~* T
【程序44 】 . Q8 d# I+ N; F' t
题目:学习使用external 的用法。 & [' i, ^+ c/ e1 T+ {2 n" S1 D3 R
1. 程序分析:
( T( d9 U4 t8 \: E. t2. 程序源代码: * t. i' `# w; c- r& h* ~
#include "stdio.h" * e' |: j6 c, @( y9 H" l1 x
int a,b,c;
3 |6 I/ m2 m; p* e$ n2 H' o, F9 Yvoid add() 3 a% |- f! S/ L" X" j7 h, l9 M
{ int a;
+ e) b W/ w5 Z6 |7 G5 e2 P7 O- Ha=3;
) `: i. Y: C% h" R" A: n: uc=a+b; . ?0 w3 L0 S0 h
} 3 V. V$ j% w; c- z
void main() 6 G9 F9 a6 l. k8 B4 ?
{ a=b=4; ( B. x a( I3 D+ m* B+ F
add();
% G9 M/ J2 u5 i8 gprintf("The value of c is equal to %d\n",c); 1 L: `' ?# w" T9 M. n
} ; Y* A1 T& C1 v" e
==============================================================
3 k" L, V7 i( q$ O- ?【程序45 】 4 O6 Z \& |2 }0 t$ H
题目:学习使用register 定义变量的方法。 ; E7 F6 e- t9 k+ ^
1. 程序分析: 8 {$ d- v' @% C: h
2. 程序源代码: + x4 C+ D! y; j( G7 I
void main() & v8 Z2 s% ^6 ~! q9 I) a1 k' c0 I
{
: q& C6 }2 r% L, Uregister int i; " C6 q: P7 [3 R1 D
int tmp=0; * }. g5 J, R! M2 B& F6 G9 y
for(i=1;i<=100;i++)
" C% I, G. b9 n7 {# Gtmp+=i; * d6 `0 P& Q% B; c3 O0 O" M$ `
printf("The sum is %d\n",tmp);
3 O* h6 X9 v- u. v7 l} 0 ?2 g- M. M5 W$ H' C3 q
============================================================== 4 `+ r# R5 I/ U, O- Z& p
【程序46 】
& M$ |; d2 o$ ^; {题目:宏#define 命令练习(1) ( |3 W6 M0 j+ L/ [8 ?3 v, h8 @5 Y3 L' h
1. 程序分析: , x: f- g8 i' M+ |+ U; X% W5 B! ?- j
2. 程序源代码:
8 a& V1 U1 r- f) L#include "stdio.h"
$ u0 ]: S, u" J& o- V#define TRUE 1 2 {/ Q6 k8 b" p7 T( T: h r9 m
#define FALSE 0
+ E p W6 I0 V$ U) e" y#define SQ(x) (x)*(x) ; j C, J! [' r% |7 H( W( a
void main() 5 b) {# D' t. G8 x( Y9 l! o3 K
{
7 `! X6 \: j {0 Pint num; ; P8 V4 {# Z3 R; ?
int again=1;
! `& g0 b5 S9 i1 w, ?, ~: Fprintf("\40: Program will stop if input value less than 50.\n");
4 j) U+ i, S; H8 V0 {while(again) 0 e' x7 P6 }- {7 ]4 E4 ^
{ 1 i6 e6 b/ G% w# {, V: }2 H- q( f
printf("\40  lease input number==>"); 8 y# T/ S6 e. j# d
scanf("%d",&num); : j2 M8 g m" v t
printf("\40:The square for this number is %d \n",SQ(num)); 0 E4 [1 s/ K# R: e1 _+ j( n: r
if(num>=50) , @) P7 {) ~5 v
again=TRUE;
" A$ q l# G. n0 ~0 Eelse $ j3 R2 \- p, ]% O: e
again=FALSE; + c% N# J( R: F; Y# B
} % K- ]5 q0 H, X! P( _+ L
} & U( A+ w) s b0 _5 x+ B- ?! u4 x9 m
============================================================== 3 H/ u3 d+ n. g: f2 t! ]: h. C
【程序47 】
1 T6 l: l& \9 o题目:宏#define 命令练习(2) $ y* v( C+ A7 X1 }" s
1. 程序分析:
) o) ~3 f F( J+ D2. 程序源代码: 2 @1 z5 o6 s( f8 r8 d
#include "stdio.h"
* O9 Z8 r+ y& h( w( U0 ~: d#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ & h* O( Z, u* w: q
int t;\
/ n4 L8 _& U5 i( @- u, ]6 a0 o3 wt=a;\ % q6 D8 A* X' ^9 g9 B1 J6 E! M
a=b;\
: O0 g0 b6 {" n# q3 ?) [( ^b=t;\ 6 G( E! A3 F Y9 u: b! I
}
~$ N8 h& s# E7 ~2 `( g# Pvoid main(void) ! _% ^3 a6 t* o* V
{
. y& _4 E. O0 f/ B9 @int x=10;
* D: v. {* l& O9 d! W8 @int y=20;
H9 y$ L+ A9 bprintf("x=%d; y=%d\n",x,y);
. U0 @/ L# m# o7 J) Q/ C( S& Vexchange(x,y); 2 m# k0 h+ N1 I8 I2 X y: d
printf("x=%d; y=%d\n",x,y); ; b/ O+ x1 Z7 C3 B: Z) ~7 F
}
- D* h8 w! i: h8 _' _7 L==============================================================
% F* Y1 s& a. ^! X% b, W【程序48 】
# ]: G3 ]7 w/ U; J" U题目:宏#define 命令练习(3) & S. A! m3 h6 `3 l
1. 程序分析: & o# k$ C( T/ q5 l* O
2. 程序源代码:
) S0 P/ J* T8 S: F( [#define LAG > ( c4 ^/ Y7 R$ z
#define SMA < 9 u K* x& V e& L' r/ u* i
#define EQ ==
; k9 ]0 G9 Q: w& d5 F$ g' u F#include "stdio.h"
2 T% @0 k3 H' Z. b0 A4 p% `, mvoid main() ! p6 c& H% p! G: i, T" ^
{ int i=10; 2 n u) C3 Y5 f- c+ q n' E
int j=20; ( f) M' n# N+ h# u1 x
if(i LAG j) - w0 v; b( Q- R/ D4 q7 v$ H
printf("\40: %d larger than %d \n",i,j); / c6 x* m+ d$ c
else if(i EQ j) 2 I2 n4 M& `2 [
printf("\40: %d equal to %d \n",i,j);
$ |3 q& R* Z( Z$ }$ s* C' \else if(i SMA j) * Y- b# g& J7 n- w2 |' O
printf("\40:%d smaller than %d \n",i,j);
( m; O& t% F1 @else
0 }6 y! f: b+ {8 b7 j8 l# Bprintf("\40: No such value.\n");
% h7 K B- P5 L% `* x) _}
+ {6 U$ q- _# P$ w4 B+ C============================================================== S6 L g0 L2 T& {7 `: J# s3 I
$ [! C% K. m4 L& w |