【程序38】8 d% |. ]3 k5 J
題目:求一個3*3矩陣對角線元素之和 $ M' M) V) H7 ]
1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,,再將a累加后輸出。
& ~- Z& n. p4 y- l( L$ z o2.程序源代碼:
- z( c$ r5 l! B: V/ w7 {main()
0 X1 F* g+ O5 x ~: W. P; ^$ V. v{
/ O4 f8 {6 T7 D5 Sfloat a[3][3],sum=0;
9 B4 d' {- q' P1 g0 Eint i,j;
! X6 ^+ Z# d; l" B- zprintf("please input rectangle element:\n");1 B( L# C- r7 y- w
for(i=0;i<3;i++)
* T0 m; T5 F' C7 w for(j=0;j<3;j++)
8 u) ]! \" ^( @% L# ]- v scanf("%f",&a[j]);
, l; i. Y* H9 a9 ofor(i=0;i<3;i++)4 | a9 m. d- M5 W2 B# s" m
sum=sum+a;& c5 k0 O8 ^9 A2 m1 T
printf("duijiaoxian he is %6.2f",sum);/ O, r) T: |& t# D* d
}
9 r' u- U, Z, z6 v$ q& H- t==============================================================. P# v1 a8 D) K$ F) H
【程序39】' h3 q% N2 L" |
題目:有一個已經(jīng)排好序的數(shù)組�,,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中,。$ o* k% d( _( l" y1 g
1. 程序分析:首先判斷此數(shù)是否大于最后一個數(shù),,然后再考慮插入中間的數(shù)的情況,插入后
" K2 N: b3 c& V; L( n; B" X/ f 此元素之后的數(shù),,依次后移一個位置,。 t1 K# t( K) Y0 ^7 F
2.程序源代碼:2 d7 w, W/ S: T k/ B& T! H' Q* ^$ s( I
main()
8 k% p# w5 @9 V6 f{! c9 |) ~4 y) R% Y* I. f
int a[11]={1,4,6,9,13,16,19,28,40,100};
& |2 c. D) N- Q! u1 b( `int temp1,temp2,number,end,i,j;
7 |; U& ?& i: N! V/ ?! @; h- }% ?2 cprintf("original array is:\n");
0 |6 `' {( i. Z7 A! z jfor(i=0;i<10;i++)% `' S, O7 T( u% t" p- v# U- L
printf("%5d",a);
, Z7 e w+ m7 y5 I, y. Xprintf("\n");& `2 }* G3 k; q! F2 d3 Q
printf("insert a new number:");
* T) M! B; f: B [, Mscanf("%d",&number);- ]9 T' e+ U( l# {+ `
end=a[9];, |" s# [5 U$ X8 x# M* P3 g. F
if(number>end)
$ @) Y }/ ]" e3 b+ `* H* C# ` a[10]=number;
0 P" L/ I U; T9 g& L6 w/ t) j0 helse: `$ d6 Q6 n: n3 A" m) E
{for(i=0;i<10;i++)- J% [: O5 {# q
{ if(a>number)
- A# K; Z! |2 X& L6 W% Z {temp1=a;
* q, Y: s* W' W# q9 F: r a=number;
) V4 R+ ~. E2 X* k for(j=i+1;j<11;j++)
$ A! u( w- x/ W# U {temp2=a[j];/ ~% F6 v. j1 R) ^
a[j]=temp1;
: J8 Z: q" v# G: B4 U temp1=temp2;
+ h) \9 ?& r! c% o* ~; \) C; o }$ `7 S1 b2 u$ p4 o# N+ u
break;
0 {/ C, Q0 Y" Z% z7 a& Q7 J }2 } H: b6 A$ ?9 S" o$ {
}6 N. q- f2 y- u: B; L
}( ?1 Q8 n4 M' `) H
for(i=0;i<11;i++)) }5 n8 J# L! W
printf("%6d",a);
7 ]$ @: P0 M) i% M& [8 W* R}
! ]) u4 O/ W3 P o) T1 ?==============================================================
! x3 A1 @! X$ t K' j) p【程序40】
# a( x% i! G/ p7 v0 C* N題目:將一個數(shù)組逆序輸出。
1 R3 { J& U- @' b$ V- F1.程序分析:用第一個與最后一個交換,。
/ Q+ M9 g7 G3 f$ r. I1 x2.程序源代碼:$ z- S& z+ O# J8 x* z5 m- u; ]
#define N 54 ~9 T: f& d, \( d9 D
main()* V- g) M+ a: l& R" a
{ int a[N]={9,6,5,4,1},i,temp;8 O9 I4 r V& n% ~+ \, b9 S
printf("\n original array:\n");
) G& h7 W; V" A# C for(i=0;i printf("%4d",a);
4 \. T; B& J' @8 H* c; D. B" ? for(i=0;i {temp=a;
/ G0 t! t! @% f, b5 s; \. }- d a=a[N-i-1];
4 Z! H8 V" A; \, u. g a[N-i-1]=temp;
$ n' g. E0 w( K }0 `* p8 _ c% y6 J3 D
printf("\n sorted array:\n");
& h! I# n5 p* v( |1 }" m+ f7 bfor(i=0;i printf("%4d",a);
3 X' R1 `3 i9 d} 【程序41信盈達嵌入式企鵝一一起嗚嗚吧久零紀要 】
/ p7 U+ A3 L5 C7 u題目:學(xué)習(xí)static 定義靜態(tài)變量的用法
$ a+ w8 E) d" b1. 程序分析: . p/ F( B. n( J; a2 b- U$ l
2. 程序源代碼:
* [' c' C: ]. R# C! a0 l#include "stdio.h"
' W( y* q$ w( N1 {$ f* Mvarfunc() ! r+ H+ U8 o. u; V' F: h
{
2 r/ v& K; ?: ~3 N0 O% S4 Nint var=0;
9 h9 p4 b0 S7 p2 E* wstatic int static_var=0;
/ Q' T3 d7 \) [printf("\40:var equal %d \n",var);
5 _: H, B& y; l: {* r/ u$ i& uprintf("\40:static var equal %d \n",static_var);
' k; o7 I) e d- E( I% Rprintf("\n"); # I3 n# g6 ` }* m1 ^* D% z
var++;
+ O1 _8 X) b3 l1 b, L* tstatic_var++;
# k" L1 d3 C: j l, ^7 ]}
& F# S" G' ^# ^2 a& u# s) h3 gvoid main() 5 I, R8 g) B5 |
{int i;
0 S+ _7 _4 {1 U4 G- y5 x: D# D. Hfor(i=0;i<3;i++)
6 Z: D1 H' b' x% v bvarfunc();
# \8 J& ^8 t2 ^% \$ Z} : e+ ~0 t$ [/ V2 l# T
============================================================== h% \9 e1 l1 E! f2 e
【程序42 】 1 p8 e1 p* y# n1 B
題目:學(xué)習(xí)使用auto 定義變量的用法
" F' `1 s9 q8 s: _% ^1 u6 E$ t3 J1. 程序分析: + p. }3 V6 [' {" ?
2. 程序源代碼:
. D% ~" [8 L$ s1 I: r9 C#include "stdio.h" * c4 u! Q& e" m, p
main() ; y# ^3 T, E+ a' r
{int i,num;
" Z! m8 G5 L9 n5 E& ~num=2; 6 B5 K6 z" | X# d) E
for (i=0;i<3;i++)
; }/ Z# i: q3 T6 D+ U! A) y{ printf("\40: The num equal %d \n",num);
: s. K% F& ~- Z* }2 v- }num++;
$ f! B8 w2 y3 Y, A+ s" K- V; o: d{
6 s- h# U$ @$ P2 E* Gauto int num=1; % [; a7 X; E( O1 m. W
printf("\40: The internal block num equal %d \n",num);
7 }$ F) l+ |% [; |num++; 5 o$ c% I* V3 i2 S" _
} 6 P. s3 n0 D: l& ?8 `
}
" O S, S3 f: Z# t}
9 W. M/ c, i# X; b, j==============================================================
" R" J0 _- G: v【程序43 】
1 ]( H! N5 n6 g% G' Q B! ]題目:學(xué)習(xí)使用static 的另一用法,。 ( h B! W/ x1 r0 l
1. 程序分析:
( @+ g d: M+ P5 u" e2. 程序源代碼: & y' k* d# }. c; R' H
#include "stdio.h" 4 O C( ^* C" {. m% s1 y' f5 a* \
main() 9 x5 A( i+ S1 @8 l% b& z
{ ; M' U& G1 ]3 A: Y/ g( t3 V6 Z
int i,num; ' s& ?6 P* j/ C- a' e
num=2;
! j+ A/ ]4 _# _; S7 a( O9 V9 _for(i=0;i<3;i++)
% i, y" T2 a6 o{ , v* n* i: ^1 }$ U
printf("\40: The num equal %d \n",num);
! Q2 I; V* _5 N' D! @/ Ynum++; 3 e$ R' b8 c7 j2 u& i5 u5 c
{
# p( a4 F/ l1 S4 L4 f: ustatic int num=1;
7 c v( n& F0 Hprintf("\40:The internal block num equal %d\n",num);
+ w2 g8 k, i. s# A: `& R# a9 J( xnum++;
1 _" l4 {9 ~2 b4 `} r; V; k$ r3 f. z
} # `; a: e; W* p% H0 Q K1 d, @
}
3 v* }; \& y9 q! n( N/ x============================================================== 9 _9 b! o; w6 l
【程序44 】 # W; U- e/ |7 M* g
題目:學(xué)習(xí)使用external 的用法。
; ]8 V% h3 h' c- m3 V4 Z: j1. 程序分析: ! I. ]9 L R" m/ i: P& X6 t7 `
2. 程序源代碼:
, [4 E4 v1 ]0 c3 [0 X- C$ _#include "stdio.h" 4 n8 v6 v6 I5 V1 _. r4 D
int a,b,c; ( n7 t2 t. x2 K- p2 y' r) X( X" J
void add()
4 L! i( S8 ~! D2 w" Z: o# p$ ~0 j{ int a;
. v+ L- L' s2 ~ B! Qa=3; 9 T/ e3 {" B) N3 v2 X6 o5 q, O2 \
c=a+b; ; @3 @( |& G) |1 z! i* R$ h
} 2 W1 M! t/ h4 R, ? p
void main() " y% w4 C% P$ I1 c. j4 N0 A
{ a=b=4; ( K( x+ ?- i) S: g
add();
; C1 {" r" h$ g& y6 Lprintf("The value of c is equal to %d\n",c); ( E' y2 B& ?% d( ~9 C, S
}
- e8 {! ], u, n1 c============================================================== ( E) B- a3 ]- _
【程序45 】
- Q j/ |+ |4 J1 ~: j題目:學(xué)習(xí)使用register 定義變量的方法,。
1 U; p5 p+ N/ t- b1. 程序分析: 7 p3 @9 d. }9 b$ F' p/ l
2. 程序源代碼:
* T$ V! W5 S$ svoid main()
8 I0 a* v! r* k+ n6 @{
+ N2 B9 F( }! n# X3 qregister int i;
# f r2 X2 y6 Hint tmp=0;
: {# v8 x6 x2 G5 u {. Q/ j$ G2 Mfor(i=1;i<=100;i++)
) G4 M. C. n# J( A, Utmp+=i;
6 ?% d. l7 K- B% J7 @. Gprintf("The sum is %d\n",tmp);
' q7 c6 T# [) T} # f4 I3 ~% ?8 g% o# D" _3 a; c
============================================================== 1 a5 R1 G6 y/ y, R, n- {. R
【程序46 】 I6 W$ |/ i r2 r3 L# E. k
題目:宏#define 命令練習(xí)(1)
' j. j) w/ V! [/ c$ D2 n1. 程序分析:
. U, ?8 ~1 T, z2 i2. 程序源代碼: ' Y3 B8 R1 f1 \9 l( m1 O
#include "stdio.h" 6 r i# g9 s& M" o+ \( z
#define TRUE 1
% h) U3 g6 J0 H#define FALSE 0
+ L4 a- O0 W' F" ?' o#define SQ(x) (x)*(x)
* C+ d# r/ k# L6 Q# h! y$ zvoid main()
+ X H0 P3 l$ R1 t5 m7 q' d2 I{
6 s8 x& _3 R8 h$ R: Cint num; & g h. ]9 g$ A' u8 \- k& S
int again=1;
% p1 V, f1 d& {2 Rprintf("\40: Program will stop if input value less than 50.\n");
9 y' \; [" J7 v4 t- m9 Bwhile(again)
" \: e; y* d& M8 {) I; E{ ( |7 z' X% U/ i, t
printf("\40 lease input number==>");
8 Z7 ?5 R0 q. b0 Y3 m6 v6 Fscanf("%d",&num); . U8 l2 b" G" ~( R2 m# t4 v
printf("\40:The square for this number is %d \n",SQ(num)); 0 M/ t, O$ O* j, Q
if(num>=50)
% i+ U! t: i' ~3 E- ?5 s- `1 vagain=TRUE;
, M/ N" \% j. f% g) qelse 3 A( F$ p8 F6 V' w
again=FALSE;
' @+ A9 z* r6 F- n2 ~! w( i2 ~} , j: Q2 ^1 N7 G; F* |8 [
} " r3 ^+ r1 |+ j( |5 S5 v, a0 n
============================================================== . E( c- k. X% L- ~* Z' s) s4 F. f
【程序47 】 0 w: f9 |* x" \1 s
題目:宏#define 命令練習(xí)(2) ' M( X( E% Q8 w+ P W5 Y3 v/ p
1. 程序分析: . w; e% s8 b. s7 |2 I
2. 程序源代碼:
: V$ ?6 P, F" Z& [#include "stdio.h"
) U- W4 h2 I' X* A- k0 o#define exchange(a,b) { \ /* 宏定義中允許包含兩道衣裳命令的情形,,此時必須在最右邊加上"\"*/ # ~: C0 X' t% s$ L3 q
int t;\
( Y9 A2 l. U" Y6 T q* E o5 D9 bt=a;\ 8 t$ P/ c5 n: H: |# E( @1 o1 X
a=b;\ 7 i8 Y3 {) z3 a# M& |- _* O4 s! i
b=t;\ : L: P) ~4 i8 a' ~, i! A/ y
} ; v' I" y9 y: M' C! m
void main(void) 2 _& a4 ^; }' w5 w+ O V
{ 3 z* a* r) ^ K( @( ^' w
int x=10;
+ u' S7 u9 {: n/ H) S- c3 Iint y=20; 5 [. }1 I* P& Z! M
printf("x=%d; y=%d\n",x,y);
1 J! m5 A y2 I8 q2 hexchange(x,y); ; o' U" D) i3 P) v
printf("x=%d; y=%d\n",x,y);
* K; F1 z8 {1 D8 z6 }8 H6 L}
; m5 a& s+ W4 z0 W============================================================== $ T% r2 T. F+ e6 m$ @/ `
【程序48 】 + O! ?1 S( K) b+ M
題目:宏#define 命令練習(xí)(3)
- y/ i7 p9 Y: f0 Q$ k8 n: f( s: N1. 程序分析: 5 c5 t1 Q6 C2 k1 `7 R
2. 程序源代碼:
F( G* i8 r3 ~- d9 j/ d# D' l#define LAG > * i$ h$ K; Z8 K& n: w
#define SMA < % R* W$ _3 `, h/ v% }: _
#define EQ ==
6 r, Y! t7 H4 T; j6 I) U#include "stdio.h"
2 `" t0 |- F# D* qvoid main()
7 Q2 q! |' p: P- \{ int i=10;
! E8 S- i, h5 l' Fint j=20; ( ^ e' D# M* r3 I* u: F3 P
if(i LAG j)
, H; p2 D& l2 @/ Kprintf("\40: %d larger than %d \n",i,j);
$ N; @/ A( ]7 W, Nelse if(i EQ j) / l: K# p# L* `9 N0 e) b
printf("\40: %d equal to %d \n",i,j); 0 s: Y4 ^# ]! P4 Z# Z" I
else if(i SMA j)
! I% `4 u1 p' C- Jprintf("\40:%d smaller than %d \n",i,j); ' \( ]$ a* g5 H7 {" c6 Q# r1 m
else
) W* I S# h6 {4 \) nprintf("\40: No such value.\n");
9 Z& M7 [& O& Z* ~* {4 E" _+ m} 8 R/ B2 h, }) S, w" |1 @
============================================================== ! _6 |. I8 B) q+ y8 [, m
+ q4 D) Z! I/ A' Q |