【程序38】6 S' ~7 i" c# |* l4 c
題目:求一個3*3矩陣對角線元素之和 + H) ~9 X5 Z$ D- ^3 Z( N
1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a累加后輸出。
1 ^$ R1 S4 w" L+ d, J/ A2.程序源代碼:
% `2 I6 i E4 X0 d! C6 T# }main()+ v9 W" `5 c) M
{
6 y& a0 R5 T( u4 I' {- X. R8 w! @ nfloat a[3][3],sum=0;
8 T" `" o0 m1 d3 h7 }' rint i,j;% }" l3 V1 T" ~6 `/ U& F6 g
printf("please input rectangle element:\n");
4 L! w4 T/ t$ X7 Q/ Cfor(i=0;i<3;i++). E1 U* `( n( ^ w( L$ z6 W
for(j=0;j<3;j++), ^$ O& Z( ?7 u9 j% t$ z
scanf("%f",&a[j]);! D8 i' w* U- {% y7 F; u( x
for(i=0;i<3;i++)7 k! p8 x( @0 h/ J% V# |
sum=sum+a;0 U0 K1 c! D; E1 k/ A
printf("duijiaoxian he is %6.2f",sum);
4 ?) |- `$ K- M}2 h6 _1 B2 D' _% o- i" q
==============================================================( W1 U ]* [" o" O% V/ k
【程序39】
0 `1 M/ X! P9 I- O4 s6 [題目:有一個已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。) G" {0 z: u4 G7 a% y( a+ G
1. 程序分析:首先判斷此數(shù)是否大于最后一個數(shù),然后再考慮插入中間的數(shù)的情況,插入后 D( I/ j7 ? |1 _5 h
此元素之后的數(shù),依次后移一個位置。
2 W' C0 H- P3 b/ N2 m7 f7 ^( K! z2.程序源代碼:
7 L0 E( P. w$ |% s1 P8 z& [. i2 t3 nmain()
1 V2 F, D* V% }1 B3 Z{* G8 N& m. l4 G" e' k
int a[11]={1,4,6,9,13,16,19,28,40,100};7 V( G: @% I& h( N
int temp1,temp2,number,end,i,j;/ D0 e& V; e2 l/ A
printf("original array is:\n");" ~# f( g, @' u* f$ [
for(i=0;i<10;i++)' V: U6 K# g: ?: Z1 W
printf("%5d",a);
! w- L( z* z# e3 Y6 d9 sprintf("\n");" p& a- A# w [4 j% P' P
printf("insert a new number:");$ q$ Q s- r# x- A. D8 k
scanf("%d",&number);
2 Q( C* i: B9 ~" j, Rend=a[9];
% W0 o; ^& r ?- y+ sif(number>end) h0 Q/ a* Y, X) L4 J2 U6 C
a[10]=number;
' P; y: ~# h6 b" ielse0 ?# ^- Q/ Z7 V& i
{for(i=0;i<10;i++)
: b- U% j+ z; Z2 U0 [/ F { if(a>number)
3 s8 P% ^! f. j m$ z: k {temp1=a;
0 Q6 v# y* Z, e1 R- K0 I a=number;# B( Z A/ T B# _# D' a& f: j$ Y
for(j=i+1;j<11;j++)! D: O4 ~( s# I5 e1 o7 i; R% G
{temp2=a[j];
4 W8 | f Z" B+ @% U- T# ` a[j]=temp1;
. y' s7 \ ?; C+ j9 f temp1=temp2;
8 V2 i* l$ l7 F3 b" U. l }
( T) e- q8 c/ z% q0 \- \ break;2 X. ^+ H$ E1 C& v
}
, I( O0 t% C' ]0 W5 k5 w9 z8 x x) _ }
9 u$ @ u1 Q& r. [}
$ ?) V Y; w* O" u) sfor(i=0;i<11;i++)
, E4 `7 O3 D. C printf("%6d",a);
4 M7 H1 R$ B/ }7 j6 L6 V# x# A8 }% y; g}" D5 V7 ^8 y( c# Z, G3 P4 K
==============================================================& y7 M/ W% K5 ] |% z0 O; C
【程序40】, V" v* z) Z! {3 x0 z
題目:將一個數(shù)組逆序輸出。/ v+ T- y4 F7 P. t8 d' k3 V: k) ?. t
1.程序分析:用第一個與最后一個交換。
0 p, S8 `" Y5 e1 p1 S2.程序源代碼:* f) b7 B( M9 y$ r( f
#define N 5
: _; f7 P g* d" O& Jmain()% P8 Y& g, E4 D
{ int a[N]={9,6,5,4,1},i,temp;! r, U7 }8 {5 u$ e" ~
printf("\n original array:\n");, ?4 c0 ~+ b9 W
for(i=0;i printf("%4d",a);, u% Z1 V4 p' R! Q) a7 C
for(i=0;i {temp=a;% [/ w0 ^5 O: Q) O% V4 s
a=a[N-i-1];
* ?5 A) U* \7 ~" q a[N-i-1]=temp;" L' t$ X c N( w, |3 @8 A* N3 a
}
7 m* ^$ R! d5 r9 G4 Gprintf("\n sorted array:\n");
; x4 D4 r) j6 i" _& G- _6 xfor(i=0;i printf("%4d",a);
- x' j5 T3 Z) Q' u; _$ I/ Y( T} 【程序41信盈達(dá)嵌入式企鵝一一起嗚嗚吧久零紀(jì)要 】 . T/ ]/ N( H% l( f
題目:學(xué)習(xí)static 定義靜態(tài)變量的用法
* l+ B) Z& F; \8 i1. 程序分析: ! _' ]+ L0 I% Y- Z! u. P& h
2. 程序源代碼:
" v# o( b# r) R1 p0 \ ~#include "stdio.h" & i3 Z6 b0 k! ?) f: j9 [; E
varfunc()
8 m, }! e. H) |8 i& W- U, a{ ' Y+ o5 x; i" T
int var=0; " h' X9 A$ _: _
static int static_var=0; 5 v! _) Z# c4 ^7 f9 D1 u- R) w
printf("\40:var equal %d \n",var); # {4 \* ^. T% X9 p! c
printf("\40:static var equal %d \n",static_var); 7 o5 G7 }; v0 Y, `) [! t& k2 H
printf("\n");
8 ?) P. q1 |/ f. P+ S3 N/ wvar++; ( E! M/ Q. \ Z5 K) G1 `
static_var++; $ w5 u' T7 t( \9 r) b/ {
}
7 d& H# u2 j( s) ?' ?* O# X) Wvoid main()
6 m, y; g" }! g/ n# r{int i; 4 s0 D4 ~$ m1 W; O4 C
for(i=0;i<3;i++) 9 S' E6 ^3 l: G" l9 |7 s
varfunc(); : R, f! D! [, @! [' a
} # y) x6 v( }0 ^( w
============================================================== 9 I5 `) Y C7 D2 R$ ~3 m, s
【程序42 】 2 K6 I! u- Z' B" e' m
題目:學(xué)習(xí)使用auto 定義變量的用法
$ Y4 y3 z+ P" d1. 程序分析: ( k" Y9 }+ M( [# S$ l- i$ h
2. 程序源代碼: ) e+ e0 R; Q4 n0 \7 l! G- L
#include "stdio.h" 5 b' S( k. h/ F; e8 B( @
main() ! q1 F) Q# Q5 C" x A! L& u
{int i,num; 4 N- e" R* H' @" \2 |8 W: k7 J
num=2; ; v- |# b- Z4 T4 F+ F; Q
for (i=0;i<3;i++)
) r, \8 T" ~, Y" {! t5 X7 s{ printf("\40: The num equal %d \n",num); ; u" K8 t: q5 [- U
num++;
% U/ l+ X% }2 n; t& W; P5 I{ ! M8 Q; m' Y5 ~2 j5 V
auto int num=1;
' L' L2 U% l0 v0 E; O% N6 Jprintf("\40: The internal block num equal %d \n",num);
+ ^. ~" u+ q* L0 N9 }) l" |9 X. ynum++;
9 Y5 |9 p% g9 X }} 9 P T, B0 w4 B( O
} 3 c+ s) V8 Y2 x3 i
} 7 e4 r0 e& \+ a6 R( U; S( O; l
==============================================================
% I" `+ r. K$ q【程序43 】 5 S2 @& a" F0 z) ]
題目:學(xué)習(xí)使用static 的另一用法。 - n- R4 O2 z2 x; k
1. 程序分析:
( W( Q. O: F& e2. 程序源代碼:
6 H/ l$ [9 Y: {, Q. L2 }#include "stdio.h" - C. T5 z( [: T) D9 Q
main()
! i; k/ Y$ S: i" @& A! a{ 4 e; a9 M+ S Z! j+ Q4 t+ X
int i,num;
- F7 T4 n. h! L5 H" k0 d0 N. dnum=2; * D2 J/ @3 D- J( f. J
for(i=0;i<3;i++)
9 z: D- D( X& j6 F( ]$ l{ # F1 Q# A/ f; P# i$ Z7 i6 O5 G: w
printf("\40: The num equal %d \n",num);
. C2 b4 N* d/ x# U& b8 inum++; ' y5 u! {- N$ q& o" \
{ - T9 }' {' r$ M+ c" k1 n
static int num=1; 3 v, h/ ]6 \( q1 P6 f
printf("\40:The internal block num equal %d\n",num); : Q# \8 R5 [: O- C% Y8 S" M' I n
num++; ' _& q4 |% {4 o( v+ I8 Y, K2 h
}
6 u3 G: a/ Q! b/ H* q& H} / J5 B- C1 i! M5 a' [( p$ p7 q; L0 H8 _* x
}
" J9 h) [) a& E% i. C+ ?5 B============================================================== 0 m3 G' I* J8 B& [ e) v
【程序44 】 A! n7 |0 T8 R0 n3 ?& I) a
題目:學(xué)習(xí)使用external 的用法。
$ e$ e- B% Y. k& Z1 B$ K( r1. 程序分析: + v. T5 s$ A" P) X1 U) k
2. 程序源代碼: 6 o9 p: ^- D1 a" O6 Q4 n
#include "stdio.h" , ~- U0 @$ X( A/ n0 L
int a,b,c;
- n8 @. [5 R/ \0 l! u5 Zvoid add() ) `/ N) f: N u* N
{ int a; & Y6 | J2 }) ?, o {' g
a=3; ; \0 w `$ F$ n1 N( y* h X/ ]8 F
c=a+b;
& U2 I( B: \ n( n0 M( n} - f* Z' c+ \% h3 _& E! V* Y
void main() : Y" B) @; {1 }
{ a=b=4;
5 X9 f- l+ p5 ?3 r( nadd(); 1 j: g3 G3 N- j# b; m& h
printf("The value of c is equal to %d\n",c);
1 J$ ^6 |5 C0 X}
' }' a( x6 \6 s8 o: p' R& B0 X' U7 s============================================================== 2 J1 M8 `: f* R) x- S
【程序45 】 2 W8 P: U. L) _5 y4 A) b b* e
題目:學(xué)習(xí)使用register 定義變量的方法。 8 g4 W/ F2 ?5 [0 m. l* i
1. 程序分析: , e+ m9 }7 K* k( {3 W
2. 程序源代碼:
- P6 [3 E5 s$ u- V8 l9 L! k$ qvoid main() & x# ?- V& a! D8 f) Y% F: u* k
{
. u- l. _" R5 @# O$ F" Y! kregister int i; * C, f+ S2 z$ h) \: M' _
int tmp=0; ) A' M9 C$ {( v+ I- g% [: }
for(i=1;i<=100;i++) ; N/ Y! [0 R1 F p: J
tmp+=i; 1 A8 x& c2 g, d, d! l
printf("The sum is %d\n",tmp);
- F- f/ q$ W3 u}
; e, z; ]# p7 h, b==============================================================
+ n) Q* q6 ^! ]8 i【程序46 】
4 n7 E; {! d" P題目:宏#define 命令練習(xí)(1)
' G/ S s6 x+ m: T1. 程序分析: ' p+ i+ D6 d& V; r* S
2. 程序源代碼:
) E. T4 g; F1 B# E" D' ^#include "stdio.h"
" H, y/ n0 @& V3 v1 R8 Y#define TRUE 1
^9 r2 y7 w/ t1 k#define FALSE 0 ) i4 i2 b2 w* o6 V# o
#define SQ(x) (x)*(x) % Q2 I6 S9 c/ P, u
void main() , C! H+ i+ `( I. F
{
1 d9 D/ X/ m& A9 z& {int num;
6 e H! ?3 [6 [" Q3 _# Bint again=1;
/ a% _0 ^. Z* u; e! Y$ H+ qprintf("\40: Program will stop if input value less than 50.\n");
& p0 I+ `' `% y7 Q7 a* ywhile(again)
& M2 Q( P% E' i5 [% l/ T5 k" t0 Z{ + m% @6 f- ?# I. m( p" s
printf("\40  lease input number==>"); - F1 G8 b. j: W' ]
scanf("%d",&num);
7 L+ O- T% l2 @4 v: A0 @printf("\40:The square for this number is %d \n",SQ(num));
1 [6 K' u# s/ Q3 }if(num>=50)
0 M g; b3 {! w9 }again=TRUE;
0 z4 E5 b$ E% u# U oelse 4 s' v7 i8 I! p2 X. [8 d
again=FALSE;
. }1 A% H E ]' }" h5 R, |}
" [' S+ _& s2 p: X x/ U. v+ ]) y1 P} ) t: h0 T- i+ P
============================================================== - D& S1 l% r8 n; Z& x
【程序47 】
% B) k m; [" W( _$ a3 P2 U7 T題目:宏#define 命令練習(xí)(2)
4 q4 C! ^8 A% {( P0 }3 L% H: t1. 程序分析:
' Q* m3 @' ~' D z3 S2. 程序源代碼:
3 x0 c7 u* m6 I$ M- d8 m, g. O#include "stdio.h" + j8 @ F. \/ `/ {: b" p: A8 {% x
#define exchange(a,b) { \ /* 宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/ . \* o- O a! v! }/ O
int t;\ 3 V) w: `( }5 W# Q4 Y2 l' z' d4 C
t=a;\ 2 o1 g( C7 O& H
a=b;\
% I' B/ T+ ~" [# r. s Nb=t;\
: d$ u' t6 O& y! ]/ v* L} ( M% i# @4 s+ N. Z
void main(void)
4 {) e* W0 ]" D* A, B& s{ & Y* z( v, J I0 N. q q
int x=10;
) g( @5 C K* pint y=20; ) F( Q/ `; f1 G; L0 }3 b4 e
printf("x=%d; y=%d\n",x,y); # T3 R4 ?/ s% E- L0 H. i) N
exchange(x,y); * I' ~5 V% Q+ o" \+ c$ e
printf("x=%d; y=%d\n",x,y);
- ?: d+ e0 v$ L; I" A} ' h; O/ V: q8 b: m5 N8 a+ I5 \% p. f
============================================================== % V# E3 N) B* J" {$ ]( `$ t) }+ V
【程序48 】 . W0 `) \% P! w6 J! W4 L) T
題目:宏#define 命令練習(xí)(3) 6 o+ ]; e' M5 j
1. 程序分析:
! C* R7 z9 G) \( E2. 程序源代碼:
/ u" {# x h; X1 s3 N& g3 T8 ^ F#define LAG >
7 d7 x: a: B$ a, L* |6 V#define SMA < # ~4 H( D* V; x9 i, Z
#define EQ ==
8 o+ e* m+ C! f R$ o1 A#include "stdio.h" 2 ]7 i: [7 m' ]' p
void main()
1 E o4 j. ~: E1 }8 O3 R/ ]4 z3 S{ int i=10; / F+ i" `( {$ t1 [* A1 Y
int j=20; / C& N0 |% V1 \! M: p. N1 L6 u
if(i LAG j) $ [" I+ c7 E. P, t9 N. O5 y
printf("\40: %d larger than %d \n",i,j);
2 U1 j! p4 B/ M$ e% ]* @% D$ Helse if(i EQ j) ' k, o- R& c+ B* ] S/ R. s7 Y
printf("\40: %d equal to %d \n",i,j); 5 D$ W5 }: f' q0 a8 W. |' |8 Z
else if(i SMA j) / G8 _$ t6 f1 ]
printf("\40:%d smaller than %d \n",i,j);
" k+ A: y/ K9 ^" Felse
G+ U+ R" h8 pprintf("\40: No such value.\n");
& D' Z! D" q8 a- v) t/ S+ z} . k2 n0 F8 {5 C1 D) f5 L, q. n
============================================================== 5 _+ w: k3 Y( ~4 e e
9 \6 z Q& S- R# l' g% B
|