【程序38】7 C! Z+ n1 h1 T2 P1 q9 e
題目:求一個3*3矩陣對角線元素之和
& C" [# y" U Q8 P$ @# P* v1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a累加后輸出。/ n8 S0 U3 Q$ p }4 m2 p
2.程序源代碼:
! N' h z2 c" c) m/ w5 Tmain()3 ^' a2 f; R6 ~" t, a* }
{
0 w/ \/ v* Z* [. i3 hfloat a[3][3],sum=0;
% z( l; L1 {9 Fint i,j;6 _, t9 w! |+ _4 m
printf("please input rectangle element:\n");
" X3 J. _ n |$ U- mfor(i=0;i<3;i++)) `# E+ F0 C! G4 ^' ?
for(j=0;j<3;j++)
2 w' ?6 \' x$ r, K: o7 L! f scanf("%f",&a[j]);4 t- Z/ D, I/ ^
for(i=0;i<3;i++)
1 ]. T# J; ~# Y. W sum=sum+a;
" x* w: p8 v% \+ X/ lprintf("duijiaoxian he is %6.2f",sum);2 \" b- \% @! ]3 ~4 {: y
}# {' p+ q! `- X6 A% I
==============================================================. \* k7 l8 ?$ g% o) K! ~
【程序39】
8 C- Z$ y. |5 m4 i/ r6 }( P( N題目:有一個已經(jīng)排好序的數(shù)組,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。. \% S3 \6 M9 w0 {2 s
1. 程序分析:首先判斷此數(shù)是否大于最后一個數(shù),然后再考慮插入中間的數(shù)的情況,插入后
* }% N' Q/ U7 k/ p8 H6 { y 此元素之后的數(shù),依次后移一個位置。
" q! h- ~ U' w$ a, v2.程序源代碼:
& x+ a8 V9 ^) _main()
( R3 C8 C4 a$ F) x- ]{
2 Y3 J# U, w9 z. W- hint a[11]={1,4,6,9,13,16,19,28,40,100};0 N6 ~* W0 o7 ?8 z' e. f
int temp1,temp2,number,end,i,j; |$ M- X$ ~# r O
printf("original array is:\n");
5 j: `3 n) F! h7 ifor(i=0;i<10;i++)
3 w g H/ O/ @5 [! E printf("%5d",a);5 S( Q2 d! r `1 T* C1 Z
printf("\n");
. V5 _3 x# r; I' L0 Q. z' u7 B( Gprintf("insert a new number:");
' g/ z/ D1 e {4 B; `4 ` R1 Vscanf("%d",&number);: u9 o5 L2 B0 e: B) V1 Z% }( ?
end=a[9];
6 z" w& |( y0 _' Y4 ^if(number>end)
* i0 v& ]! D N! @# q" o a[10]=number;
! G* } {$ u9 z8 o7 Lelse% _% V+ ?. `1 S" t) h: o
{for(i=0;i<10;i++): Y1 y# n* G5 x9 G+ w9 [
{ if(a>number)
/ H7 |% h1 F! W# c. i {temp1=a;
7 ~, E/ s) e- m# E2 j0 G8 O, {0 k a=number;& m5 i2 g k) b& A: j
for(j=i+1;j<11;j++)
' B5 x2 ?1 q1 n+ F" Q S# n {temp2=a[j];
3 }2 |: _: j: L* T a[j]=temp1;
& J6 g7 }1 [3 G; Z9 }! H$ b$ y temp1=temp2;
- _. v! I& X8 r6 X }3 D9 |: `% R1 Y7 F- F
break;, a' y8 ?- z1 S9 B! O' \( e4 t
}
; I$ r# J9 U5 [7 y" n }
& G: w w: [0 t& B}
8 |* \$ o+ G/ ]) h. Cfor(i=0;i<11;i++)3 H5 o: }. g' \6 z! q
printf("%6d",a);
% c: }6 q9 z, f' ^. g+ J2 R, O}
D; w. s' e j, u- Z+ t: c5 t==============================================================
, Q9 {5 S6 R% y1 f1 h2 s. @; S【程序40】0 g9 N/ Z: P6 E+ m
題目:將一個數(shù)組逆序輸出。
& t+ m' O; G7 G$ k: l1.程序分析:用第一個與最后一個交換。" w! {# ~3 }0 E# P
2.程序源代碼:$ c' F* ]7 T" H& n/ j1 Q
#define N 5- A+ _/ G" y1 d2 H
main()
/ w. J" d6 c* V$ \6 X. j{ int a[N]={9,6,5,4,1},i,temp;
! h$ z- P5 z* h/ B7 d5 ~( }1 H printf("\n original array:\n");
; r2 W5 r( l+ ] for(i=0;i printf("%4d",a);
: {% u. ?) _3 k! f for(i=0;i {temp=a;
6 X- D2 b- u% w0 y" N/ l a=a[N-i-1];2 u- O: ]$ G4 }' J+ U
a[N-i-1]=temp;
$ u+ m7 v& e0 ^$ q }, M0 i7 ?% S7 ?
printf("\n sorted array:\n");
& }8 Z8 x) d/ Lfor(i=0;i printf("%4d",a);
) v+ H% C4 F* |5 A+ t% ?} 【程序41信盈達嵌入式企鵝一一起嗚嗚吧久零紀要 】 ) B/ E. P: w/ }" D4 J9 U' N* y# O
題目:學(xué)習(xí)static 定義靜態(tài)變量的用法
/ c# X3 d$ A# d4 b1. 程序分析: , o& z/ Q3 V( g' f; B
2. 程序源代碼:
8 H. x9 b, O! y6 b#include "stdio.h"
& p0 [. y+ [- y, g: T- avarfunc()
$ L1 p& {8 r' c; e7 \2 |) S. ~5 _{
" |( K* l& l2 {9 Q4 ~ z; aint var=0;
( |" i9 q, [' C" B/ Z; Ostatic int static_var=0;
4 r) v: R+ S# k5 A/ W& F: z! P3 Y: Uprintf("\40:var equal %d \n",var); 4 m) ?1 r; v+ l* S' Y! D8 Q
printf("\40:static var equal %d \n",static_var); ( z; a6 C8 ^4 @$ G: h! B+ g5 d
printf("\n"); - r8 G* u0 t' `* d8 a- h) w
var++; . L: ~3 Q/ X/ ~# E# e% l
static_var++; + u, _" w# {: {& C. A5 {" z
} 2 e! A4 {8 u, N! p' {
void main()
$ }, v9 C8 k, l3 u |{int i; 9 b, X6 q$ s0 {8 j; H. r6 t
for(i=0;i<3;i++)
3 f! X0 n |' G: W: R0 n$ ivarfunc(); 6 E! ] l) T( O. O" S8 B
}
; e& s0 @1 A; ]* A# X==============================================================
: ?. w4 v% G& f& b【程序42 】
: X/ z5 h$ ?8 H J7 e+ `( L- W題目:學(xué)習(xí)使用auto 定義變量的用法 $ r0 D- D- ~" b! V% Z
1. 程序分析: ! p; L$ S! ~3 J6 l3 k" Z, G
2. 程序源代碼: & f1 l6 I1 d, I* l
#include "stdio.h"
- f4 @( S& c- {. X6 a6 D3 xmain()
8 o# W" r, l/ l y9 B{int i,num; ' ^4 Y/ f8 M6 i$ q; P8 t
num=2;
- P# x* O1 t# x7 h1 dfor (i=0;i<3;i++)
1 Z9 Q$ W. S; w+ Z4 M{ printf("\40: The num equal %d \n",num);
) D7 p( q5 E1 ^6 a6 r! a$ Anum++; & K$ H: N* T% j3 c2 _( @. Z
{ - Q1 Q7 ~+ s* V/ h9 @' C6 b
auto int num=1; $ d7 }3 I4 N- f/ }4 X0 j
printf("\40: The internal block num equal %d \n",num); ; |, E' L5 N+ V+ R# I" t
num++; & c$ i D; j4 b1 ]' Y
} ) H( \; r; n; N6 a
}
6 n9 ] D( n a( }' h}
3 p. Q0 M: `3 [/ r, M0 y============================================================== 2 ]: Z5 K2 J) J, P1 J* [
【程序43 】
" ]5 ~/ b: Q% o) X( n; H( h題目:學(xué)習(xí)使用static 的另一用法。 " y. M P) p- r+ G
1. 程序分析: ! W% G9 Q/ a# N0 n
2. 程序源代碼:
' P# t/ O7 T# `3 t0 q z#include "stdio.h" 2 s& w9 J+ j! h5 J6 j8 j
main()
8 @- E" [! F! r. C{ ( E/ F0 Y( L0 [. l
int i,num;
# o: Z5 O& |7 U- j7 inum=2; 8 f$ J F n( I# G. ~
for(i=0;i<3;i++) $ r3 u, c6 a4 n6 [. v
{ ; Z% Q% y5 b% l7 p! D; d
printf("\40: The num equal %d \n",num);
+ E5 G# I `" {3 r5 M2 `num++; & l5 r; N3 h; }( b+ o
{ 1 Z# p8 `4 J4 @. [: s
static int num=1;
1 o( j3 k: E. ]4 {& \printf("\40:The internal block num equal %d\n",num);
, L3 f! S, @. T- x5 X$ Z8 _num++;
/ I# x( g# j# D* z3 Q* J}
# c- @4 z; @. k9 P} U7 Z1 t; @. @ Y3 G
} ( K8 w( y: F; q& u: {2 o
============================================================== 0 N/ j; e' z, Q+ ^8 r- l, ] m
【程序44 】
, L4 z' ^- \: d T2 q) Y! [題目:學(xué)習(xí)使用external 的用法。
0 i/ F! F! p9 L s1. 程序分析: 0 P. Y. y. w/ ^ G3 Q6 t4 J, [
2. 程序源代碼: : r3 J2 Q/ q/ U% j3 a. g2 H
#include "stdio.h" 9 w' e' g. Z; }. Z, @4 N+ `
int a,b,c; 5 q& ]; V5 r( N& u( U% ^# e
void add()
$ u' a; ~ ~' b& A5 B, X3 i{ int a;
9 P% I. Y% g5 z3 u! la=3;
# Z, `5 H% S/ t% v4 oc=a+b; 5 C4 s( C4 W. x9 m0 ? H
} ~$ t( c5 w* b( r) n8 y
void main() , v- d; i$ _8 h8 {, i
{ a=b=4; / {# V3 [0 m6 f0 d' y. S
add();
1 e: l0 U" t: k/ O6 }% yprintf("The value of c is equal to %d\n",c); " T0 U+ f/ y5 |
}
( F7 h) ]' X/ z9 l' T3 a* [. H==============================================================
* }# g5 L+ v) N8 v, m【程序45 】 % m# O4 X/ a1 Y0 x5 {" e/ ]6 m
題目:學(xué)習(xí)使用register 定義變量的方法。 ) f8 {2 [$ \. t& w
1. 程序分析: ; p9 T% u; u1 m h% h) H" z
2. 程序源代碼:
+ E. \( R) r$ k9 q" qvoid main()
; Q( }' p9 v' s6 d) b: K3 ]{ % W1 b/ \0 X4 V' ^; ~! e
register int i;
; x. M: a) l9 I5 z( K, o, {int tmp=0;
9 X) [" W, F2 Bfor(i=1;i<=100;i++) ' W, h. d/ Q* ]9 Q* u
tmp+=i; , A2 v( r6 x0 G* }- F% m
printf("The sum is %d\n",tmp);
) H, B7 E X" s# l}
+ u, s7 r2 B4 i, l G" J5 `6 K9 x8 `============================================================== * V! d3 N# w# q
【程序46 】
3 o; o3 u/ u& s- U- s題目:宏#define 命令練習(xí)(1) 9 e; Y6 }2 ]' N4 y% X( \
1. 程序分析:
! {# \; L$ X2 F% c- O2. 程序源代碼:
: v0 W1 A* u6 T) b' ]7 m' A+ `#include "stdio.h"
b1 F* m* f) X, ^#define TRUE 1 8 C6 k' H1 [9 G" X7 [% |
#define FALSE 0
: e6 m1 F, v8 ^; t3 E# u#define SQ(x) (x)*(x) 0 P. P! x. ~; L6 Q, p
void main() + i$ g: x: D4 t Q7 {+ Z+ Z r
{ 2 N" z6 b; f- H/ i
int num; 1 \: D1 |0 ^- a; c. R3 D( }
int again=1; ! C- M6 q9 [; Y O% S/ c2 C. N
printf("\40: Program will stop if input value less than 50.\n"); * m' a# O/ N2 w
while(again) + y9 p) J% t% a6 N n
{ 2 [2 M a; |8 G+ \! g% y
printf("\40 lease input number==>"); ' T; p- i' J* Y' a( c* \# y
scanf("%d",&num); " ~9 j3 Y7 C5 r z
printf("\40:The square for this number is %d \n",SQ(num));
$ [/ ?/ p5 |& ~; |7 I! Y5 ~8 i) Fif(num>=50)
8 [, n% k% [3 V3 x5 d) n0 dagain=TRUE;
. Q" g/ J( V* N+ c! d; Z/ z* Lelse & i8 `# `6 m, {* v; G8 p
again=FALSE; % k3 f) P% j# l; l" f* ^
}
) }! p2 f( h Z2 h: p* E$ O$ ~}
; p( Y4 ?! l# g2 E% C==============================================================
' H4 c" R0 O9 n9 ]【程序47 】 4 g6 ^7 G% ^2 D. S
題目:宏#define 命令練習(xí)(2) ) P Z' ?3 l% b" l* H! R6 _7 S6 c
1. 程序分析:
$ W0 T9 S+ [, G2. 程序源代碼: 4 a' G& s+ h5 R+ y Y+ ~
#include "stdio.h"
- Y, h) K y! { w; G#define exchange(a,b) { \ /* 宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/ : b) _5 Q O/ {
int t;\ ( R& X1 ?3 @2 ]; G2 h; Y
t=a;\
; r( f: \1 }) ] F. Ka=b;\ * f# Z3 t: N& Q. }( @8 D7 b; t7 T
b=t;\
1 ]7 d$ d, k3 i7 [6 ?% Q}
1 O- Y" E9 X3 V& ?$ J# avoid main(void) 7 A" e) @1 z: j4 J! |+ n7 f
{ * D! q0 a) i7 L5 h
int x=10;
, d9 R! F1 ^. }" ^int y=20;
: o; X/ c9 ]+ W4 Y4 p9 m! [5 pprintf("x=%d; y=%d\n",x,y); 1 q4 v8 T. \* m. Z% C2 [* g, N$ ^' Q
exchange(x,y);
# h+ }: ]& h$ @8 j# M, V# P' N# Tprintf("x=%d; y=%d\n",x,y);
: `0 C* f9 p7 [( m} ) W4 v* f, O4 k9 R6 r* \) E0 j! I, f
============================================================== % O! u' R3 b6 P/ H U$ Y# e
【程序48 】 1 B. w% f) v h( V0 C& t
題目:宏#define 命令練習(xí)(3)
" X. [ c4 o0 {% F4 \9 g1. 程序分析: & e# p- v- z4 R& a+ o
2. 程序源代碼:
9 V6 u7 j% n: G6 W" u#define LAG >
% q* S9 N8 e4 Z#define SMA < 4 x/ i0 j: t* V5 t6 A
#define EQ == 3 W+ B0 S- }/ K; B
#include "stdio.h"
1 o6 P# X; a/ qvoid main() ' B6 d2 g/ A+ D" z# n9 `
{ int i=10; " ^) ?0 y3 j/ F; z: N1 G
int j=20;
: {- M* ? e( Qif(i LAG j) 3 ] @0 ^( w1 C7 P* W1 L- ?
printf("\40: %d larger than %d \n",i,j); . \# O+ y) I% Z$ Z
else if(i EQ j) 4 l3 S0 N+ v. N! J7 Y7 Q1 |9 M
printf("\40: %d equal to %d \n",i,j);
5 i5 t4 K: D1 m. g* k/ z# pelse if(i SMA j)
4 a3 ]* C* M& D5 Wprintf("\40:%d smaller than %d \n",i,j);
& M2 W4 c* H% j0 v+ _" \3 P4 t, _/ {7 {else
$ c5 v5 v: d' b; e, g m5 f& f# }printf("\40: No such value.\n");
8 Y& T1 W6 S# t o! T b} ~6 q: q* l W& x9 O, x. a+ Y
============================================================== + P/ [5 K: U- B4 i5 d5 `: a7 X
0 P& r3 @: Z5 b. J% f* x
|