【程序38】$ J: R3 n3 D7 p
題目:求一個3*3矩陣對角線元素之和
u- g( g; |- B7 o1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a累加后輸出。) H1 J! @9 F$ c7 b) E# M
2.程序源代碼:8 q# k, w* y1 z% t
main()
$ f0 @4 Q4 Z4 U# |) R+ h{
3 s6 T2 l6 A! _- J# |4 mfloat a[3][3],sum=0;
. S2 Z% N: a3 bint i,j;7 J# Q2 ~- e, E1 i: X& |5 E
printf("please input rectangle element:\n");
/ E6 n" m# s" Q3 c9 |( _8 L6 |" `for(i=0;i<3;i++)
/ K; d6 a. _. U- O0 ?- w( W for(j=0;j<3;j++)
2 y* o- U- X6 l% B& }/ x scanf("%f",&a[j]);
9 l( H$ n2 y% m' l" R" \for(i=0;i<3;i++)
: M* p6 S' [) L2 {) L# U; q$ L sum=sum+a;% C5 E e7 d% E
printf("duijiaoxian he is %6.2f",sum);0 X% @0 b* `! m3 J
}
/ c: }) ^4 s" Y3 y) K6 Y==============================================================
, T0 L: J6 y) @) @【程序39】+ D! Q( E* m8 B7 J; Q- Q
題目:有一個已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。
) @4 k. ?0 T6 m! T1 q# f1. 程序分析:首先判斷此數(shù)是否大于最后一個數(shù),然后再考慮插入中間的數(shù)的情況,插入后, S5 Z' z+ m7 g- G
此元素之后的數(shù),依次后移一個位置。
" J2 r' L1 l. V4 m+ u2.程序源代碼:
R- v5 k ^7 T: Jmain()
) p F- e( d* q2 ^{
# v' k( e" S( A" h; w9 _int a[11]={1,4,6,9,13,16,19,28,40,100};
3 Y7 C* f$ C/ Y; s3 Jint temp1,temp2,number,end,i,j;0 S7 ~0 Z$ @8 }: |! X( i( l* }
printf("original array is:\n");
$ X( P) ~, d9 @: D/ h$ t8 rfor(i=0;i<10;i++)
- a3 a: C* R% A7 \ printf("%5d",a);
$ O# e; }- g |( _printf("\n");
) s3 l) s* q' M, oprintf("insert a new number:");; {3 B# Z: X. C( O: `, V
scanf("%d",&number);0 B) Q8 \4 \' @* w, s% g4 n
end=a[9];3 r9 ?6 g: v: ]* z: r& M# {2 d+ @# C
if(number>end)6 R. w* u9 [, v9 f
a[10]=number;
2 m/ n. ?( ^. r8 C' } uelse
: b; ]! l+ {# j7 b \ {for(i=0;i<10;i++)
- c% F/ j0 F+ Q( G1 V { if(a>number)
7 q% Q) A7 `7 I; V4 s: V' o {temp1=a;
& o2 E. l' }& _! E a=number;0 n: u+ a5 R P. C8 F0 `
for(j=i+1;j<11;j++)# I Y4 p7 ~$ f& g E
{temp2=a[j];* u; B4 G* m$ K. k- J
a[j]=temp1;
) ^, G# A& r" a9 p, ^ temp1=temp2;
" @4 ^/ O0 T) I5 {' c( K. t }
8 q7 U% W1 d2 ]/ t- K: a5 | break;
9 v" m/ {' m* W1 S }2 n! l: t: d9 U* f7 `6 m9 U1 H# |
}
" e" j7 M( Q/ L}, H" G$ W: \! u1 G! e$ k
for(i=0;i<11;i++)
B4 y! g u- s( m printf("%6d",a);
' T, s9 K( j8 U+ R* D* f! u}/ ^* y" }) V& L9 Z5 X: J7 w
==============================================================
% {0 D) U5 y5 y' Z/ [! t- S2 R【程序40】
& @4 c! C* Z+ x" Y題目:將一個數(shù)組逆序輸出。
* Z8 M8 M6 h- x K& ~) A& `1.程序分析:用第一個與最后一個交換。' B# m+ J8 W4 I9 w# ^/ `9 v
2.程序源代碼:0 O5 g+ }3 t4 t# J/ N) E# K$ ?9 O
#define N 5
& D6 B3 Y" N# Q0 H* ~main()
4 d V$ V" h; G' W n/ J" S{ int a[N]={9,6,5,4,1},i,temp;. M6 T% n. M2 f! D8 Q3 _
printf("\n original array:\n");
0 \: s1 h9 T0 T$ c for(i=0;i printf("%4d",a);9 n, k# H* B- a4 w- k' O
for(i=0;i {temp=a;1 v. P5 v# w% |, A
a=a[N-i-1];: X1 }6 v; P2 @; V8 h' _
a[N-i-1]=temp;& k: a: E2 E7 U# Q' y9 J& v
}& n9 o) ^ @1 R
printf("\n sorted array:\n");3 @; u6 e" P: ~( R( X) r% }' h2 a
for(i=0;i printf("%4d",a);
7 U1 _% l: _0 |6 g" R} 【程序41信盈達(dá)嵌入式企鵝一一起嗚嗚吧久零紀(jì)要 】 ! b+ j3 R6 x7 w- q) B5 p, r- ^
題目:學(xué)習(xí)static 定義靜態(tài)變量的用法 d$ E1 O* C! Y$ r. [
1. 程序分析:
+ M$ [+ `7 m7 Q# A" o+ _7 W2. 程序源代碼:
1 S! |3 \9 a: I, S- Z#include "stdio.h" $ u+ G* p7 K M, d# K, W9 u
varfunc()
; Q: w- `7 I- I' Q8 y4 ]6 l' B( m{ 7 c- t1 a# E& W& i, o
int var=0; ) q; J; g! M% o' o# a# h
static int static_var=0;
% M" K! H6 H, `7 Y Qprintf("\40:var equal %d \n",var); 2 D- z# @( L7 C
printf("\40:static var equal %d \n",static_var); " E7 j( L- p% o$ h
printf("\n"); " y. ?/ X2 i2 @, O# C% e
var++; ; w! t$ N3 @3 O; d7 \& T
static_var++; ' S; Q$ l' N1 m( u" V! s
}
/ s. Q* w" t. |' v$ \* w, b& Ovoid main()
% F4 I/ f- y0 H4 k, H{int i; # O/ X. {7 E0 P# P# F. R
for(i=0;i<3;i++) 9 O6 U) p2 V) A8 A8 X% i
varfunc(); ! q/ N+ `) R9 n' z9 g1 g$ ]! D
}
# o e2 V- q2 |. @8 I! z! G4 L. {==============================================================
9 U ^2 t& ?/ Y6 c7 |【程序42 】 ( u4 D2 V& u) e5 R
題目:學(xué)習(xí)使用auto 定義變量的用法 - k4 T) I* N/ S9 M- w6 o
1. 程序分析: 6 y: t W0 O7 j, l5 q! y
2. 程序源代碼: D& j8 |& p# I1 t
#include "stdio.h"
: c) O" N% A1 T1 Y, r% Xmain() ( a6 q; G: _- ~7 M7 _5 S% l
{int i,num;
( _6 o/ Y' Q0 g0 ~3 L* bnum=2; ! _( s3 Q% M' d; r
for (i=0;i<3;i++)
! }! b- W8 D7 c* r5 y* f{ printf("\40: The num equal %d \n",num); " G4 U4 l6 `7 n' l
num++;
" p* @5 H$ Z: w, |: v( R{
7 O b! r: p" V- ~auto int num=1;
2 d! k# a2 K, J/ s" Vprintf("\40: The internal block num equal %d \n",num);
- ?7 T, A5 I0 [& pnum++;
0 F# h; |" [; B- ? s! j}
0 x4 J8 b* v! P9 t. |4 d# @} / S, m8 {: Q- K, W' d
}
r5 D: w, p, l# }============================================================== - r4 }. g7 Q4 C4 j9 i* |
【程序43 】
L! N7 E$ R/ \6 e! J- E題目:學(xué)習(xí)使用static 的另一用法。
: f2 L: | Q1 F9 S* p7 g; S$ |1. 程序分析:
8 R' X. H2 _5 W/ T7 T2. 程序源代碼:
' v! @+ ~$ Q4 z7 U#include "stdio.h"
. o' }. r/ _8 w$ H, ?" y% Xmain() 6 o3 }+ u8 A i1 }4 t/ P+ q
{
9 N2 P5 i# |- u" ^# V4 Cint i,num;
0 P2 ^+ S C- `& Q; O! m. o: rnum=2; 5 o( ~# c; O/ m# f4 `& ~2 h/ i
for(i=0;i<3;i++) 4 V4 {8 m* w- s" C8 x4 M( M
{ ; R/ ^9 Y& C. o1 j5 q6 \5 W7 q
printf("\40: The num equal %d \n",num);
" Y. O, Z# M& }/ J4 C8 ?num++;
( b9 ^: d- K1 O5 j, ]' e{ 0 ?/ g& N/ N) q9 l4 O% w; V% l3 o* m
static int num=1;
" h s: \9 U- t8 e9 z$ Mprintf("\40:The internal block num equal %d\n",num);
' f) \! a9 B* \2 x& `+ tnum++; 2 p. t% j) o3 \" A# A; E/ @
} " E9 F. b5 U4 T8 w
}
) T T! J+ w5 A( w' D3 [% D9 t0 h, x}
( ~. D! y; W* R b! U4 E, P============================================================== - v. z) o N2 r
【程序44 】
+ ^) [! C# Y% N0 t3 v( @9 U題目:學(xué)習(xí)使用external 的用法。 - g+ G* y* u! ?" ~! ?! ?0 ]6 s3 a; S
1. 程序分析: , R* Z1 C0 M" ?
2. 程序源代碼:
0 [' D- A; ^* L- R#include "stdio.h" ( k& d. Y8 p! V" w/ s' l* w5 B
int a,b,c;
+ [4 j" J# J. s# X+ w7 Z x. Svoid add()
d* T: j; b4 w/ n& f{ int a; 8 w4 `6 \, c& Z* J b
a=3; : l! h) g2 S- d1 S* I
c=a+b; / R5 l9 {+ M3 L1 y5 y* q# b+ Z
}
+ s( ?3 ~4 B+ r. V& ~void main() " y" `) V" a# k F! h7 E
{ a=b=4; 2 M$ w5 D% Q+ V0 I
add(); 2 u0 ^ k4 b/ ]. N
printf("The value of c is equal to %d\n",c);
# U$ y: Y. F+ v% y# f3 ]} . f4 B" Y! @: C# K$ R; E
============================================================== 0 k7 U8 D3 L" q% P M
【程序45 】 9 B) N) Y& t- d' C- P
題目:學(xué)習(xí)使用register 定義變量的方法。 7 _$ [) [' V8 e4 z- E* F* t, Z
1. 程序分析:
! J& i h2 x2 B4 \/ y5 J2. 程序源代碼:
) z u; Q8 Y1 E. [: cvoid main() 1 S3 _. E5 o& F& S& D& s1 V% O
{
# p' J1 Q2 s' r/ A0 x2 pregister int i; 7 v/ [' C v) y6 \! B( Q( J3 P) w9 F- w
int tmp=0; " M f3 D, }, F1 ]5 |- s
for(i=1;i<=100;i++) + M4 j$ V5 b) m5 m
tmp+=i;
7 d6 i) d+ |2 j. K; P/ F- d* P Fprintf("The sum is %d\n",tmp); 0 w! J: C6 P; b" A
} 5 H5 m" |& c/ u+ i
==============================================================
& L2 M* N8 h% Z8 f" O" |2 a【程序46 】
6 F& @7 t% J; V/ Z) v! i9 y題目:宏#define 命令練習(xí)(1)
7 u0 h! S, p( F/ m+ `9 p8 X1. 程序分析:
[" b7 W8 l8 f. f9 I/ l2. 程序源代碼:
6 o$ }7 l% G9 L* n0 F#include "stdio.h" $ l( |3 Z( S2 J
#define TRUE 1 8 ]1 b8 v; C+ e
#define FALSE 0 3 {4 k8 \0 R; S; P1 |$ _) q
#define SQ(x) (x)*(x)
* b" N# ~& I: D; b5 J+ F% W2 Lvoid main()
0 l- Q' j. u0 y5 v{
2 S/ i) R Q4 {+ n6 q1 Vint num; ) P$ y9 i6 h" l8 Q+ A5 o: c( K
int again=1;
: r4 f9 Q# D) Kprintf("\40: Program will stop if input value less than 50.\n");
% K/ P. \5 L2 W/ \4 N6 ^+ ^! Dwhile(again)
3 G4 J1 w- m. K7 V1 D8 }{ ) z3 I# S" s; k5 S
printf("\40  lease input number==>"); ! Q$ T+ g, r% n- u+ ~; r0 }$ V& Z
scanf("%d",&num);
0 `% w3 ^' f7 U0 F5 Sprintf("\40:The square for this number is %d \n",SQ(num)); * g! g' D$ I/ N( ~ a
if(num>=50) ( z; O- S. M( k9 u; w. B
again=TRUE; ' c8 L2 [5 s- r8 l
else
2 b1 j" Y/ Z; V$ L4 ^+ Sagain=FALSE;
( v$ _5 @+ C; R$ d! ]} # _, f- y j' t3 ^
} 1 @) m8 \* |2 {9 m4 o* _- H4 H
============================================================== 2 r" G A8 o5 z8 ~9 _+ A
【程序47 】
a9 S* f0 c/ o6 C$ `9 D題目:宏#define 命令練習(xí)(2) 2 k) e1 ]4 ]: f! }% S! j
1. 程序分析: " o# N3 o/ G$ p% D o6 T
2. 程序源代碼: ' X& { g! t5 M- S: o
#include "stdio.h"
/ {$ z4 }; o4 Z2 z7 V/ e#define exchange(a,b) { \ /* 宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/
0 M' W# j* h0 J6 A0 pint t;\ 9 Y, M( a, y% E0 ^; Z8 [
t=a;\
8 B# n9 o4 T# s1 Q! [$ ]a=b;\ 9 J5 |1 a, d! _
b=t;\ ( E6 ?4 y1 g9 N1 S! i5 _
} ! H, N" N, M5 A8 ^2 }2 j
void main(void) 2 V! s" L q/ {
{ 0 f" A ^$ _: Y) F; W) q
int x=10; ) c8 ^- X. s. E8 y" z4 H8 `
int y=20; / R4 G, K7 X$ `. z1 Q7 x- s
printf("x=%d; y=%d\n",x,y); $ r1 p% X6 k: i7 K( e e i1 D3 a* H
exchange(x,y); 8 Q, ~4 _* W- K u
printf("x=%d; y=%d\n",x,y);
& Q( f" t" I1 j5 ]}
6 @' @4 t/ e2 M. r+ K' ~============================================================== 5 W# e- u! d; O% n. V( z
【程序48 】 * F0 W7 k* u( I
題目:宏#define 命令練習(xí)(3)
5 I) C; r, v. U2 B: V& _5 R1. 程序分析:
* m G) @+ F8 z4 v! A2. 程序源代碼: 5 e- i# F# ?: W T
#define LAG >
. \# P2 z. v' |+ N0 ^#define SMA < " m; A: E* e- A9 R. H% ~$ h8 A
#define EQ == - E5 L; _, x8 X* j
#include "stdio.h" 4 o m1 O/ J+ r# j) R! j' m
void main() ; \5 p- r$ p5 X4 ]
{ int i=10;
4 y1 {1 Z7 ^( a2 sint j=20;
# e( P% A2 I" Uif(i LAG j) / S( r3 u1 w4 U) d' m! l. c
printf("\40: %d larger than %d \n",i,j); * Y% _$ l+ ?% l: M5 w, H4 B
else if(i EQ j) 0 v9 p% U: z" ~0 l. z! D( R/ s
printf("\40: %d equal to %d \n",i,j);
2 w$ @: D G7 G. _( helse if(i SMA j)
6 r- _0 W0 P# t! x& W0 Zprintf("\40:%d smaller than %d \n",i,j);
+ s) n8 f( }1 Nelse
: }* A7 C3 [6 N) Y2 m% n; l8 Aprintf("\40: No such value.\n");
6 s' N' d" S! j5 Z' @, P7 H}
: X3 O0 Y6 _% ~0 O# Y0 p==============================================================
# w$ o \! w t! A . M% A! f# W! w# e9 n; @
|