【程序38】# ]8 V0 g& H& i# I
题目:求一个3*3矩阵对角线元素之和
6 m5 Z$ p- k4 Y# _- b( A: z6 g* t' Q! b1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。; v5 |" U3 y6 V
2.程序源代码:
7 f7 U1 Q/ M' ?* M" v- P. Imain()
$ z# @7 Q- ^& c8 N7 a2 Q! l{
# A: @; e# x% n. yfloat a[3][3],sum=0;/ ]1 k4 O: D2 W7 _$ o+ M
int i,j;: e& n5 W% o% o7 i
printf("please input rectangle element:\n");
: V# O. u$ [0 E2 y3 t8 Q8 \5 N( {for(i=0;i<3;i++)3 i* O, R" |0 p8 U/ p9 A
for(j=0;j<3;j++)
) P+ {( v/ [: @" O0 w" A S scanf("%f",&a[j]);6 M# c2 w7 L- r, m0 \6 J
for(i=0;i<3;i++)( m( L0 k" M; n
sum=sum+a;
t8 {, F" ~ B t0 J& [1 I! ]printf("duijiaoxian he is %6.2f",sum);9 h1 C' q) h7 ~# b/ R( j. P9 ^
}( z* U& K& @1 ?8 q, F
==============================================================1 f1 T8 Q" i" s! y1 L3 u
【程序39】( W4 I# G n( o" h0 S
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。, }+ _( [5 U6 H) v& \9 Y
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
+ r- ]; |- v1 G: u+ J% O) W+ R* { 此元素之后的数,依次后移一个位置。 . `$ V8 y9 P/ Q4 i' b D3 Q# r
2.程序源代码:
4 r: V6 [- [: U% h* F& emain()
4 j3 C4 w% o# c) u{6 x* ^2 z- q9 \
int a[11]={1,4,6,9,13,16,19,28,40,100};
$ ]1 Q+ [8 p a: r+ b: ^int temp1,temp2,number,end,i,j;$ a3 g9 D& a: l
printf("original array is:\n");5 A8 J; {$ E1 D( [9 E, ~. y$ z
for(i=0;i<10;i++): J2 t$ ]/ m0 h _, t0 k1 Y4 ^
printf("%5d",a);
! l* n& g- R @% N2 @6 ?) k% Nprintf("\n");
) [0 S' h. U* J1 \printf("insert a new number:");- ^, @0 X/ Q+ a* {* y
scanf("%d",&number);
: L4 ^7 {* ~/ t" J8 ?3 U4 M! pend=a[9];
4 A+ D4 Q0 I! y# ?if(number>end)+ B- P9 n+ n* y. V6 Y1 T/ e
a[10]=number;
& Q9 f+ W# U# J$ @! W, q# G( q9 helse
" j5 T+ l- C7 r {for(i=0;i<10;i++)- `6 H$ P8 F0 Z9 L
{ if(a>number)2 V# S9 A, n/ {$ j- z0 f5 o
{temp1=a;
* V+ [/ B5 Q4 U. I0 B) Q a=number;
8 U# ]. o4 W u; A for(j=i+1;j<11;j++)0 t! G9 l2 \7 d" W4 ^/ m' j; A4 k/ |
{temp2=a[j];
8 b4 F7 \5 Z- @5 q! v, }& J a[j]=temp1;! Y. A' |* J+ @0 {' n2 O+ P
temp1=temp2;5 y! c9 x1 P8 `3 Y# l: H
}0 m, T; c" R4 }8 p* ]
break;4 y9 f- T; X4 E3 H" g( {$ |
}! t5 F. m" m p! J7 [
}8 ?. d; l( ~# I& |, |
}
- a* A; r* O$ w4 }; Bfor(i=0;i<11;i++)3 T4 W. ~4 o. s5 [, o! _6 v
printf("%6d",a);; j; D' x- R; x2 Q
}& R2 ]" t" e5 a/ P' d
==============================================================. l- c( p# m% y
【程序40】
, H# N5 s' A: u题目:将一个数组逆序输出。
+ L! @# r8 V- h0 V! F+ D1.程序分析:用第一个与最后一个交换。7 K. d7 k$ a0 ~0 O) D
2.程序源代码:1 m2 y, x! N- }! y3 M- B
#define N 5
9 A7 E9 {* T1 T0 ~& Dmain()
% W% ~* ^( e% r/ s" _4 _- o, K, r{ int a[N]={9,6,5,4,1},i,temp;5 I* i+ L) l! T' P+ \% P
printf("\n original array:\n");
: v( H( O* O. e' @2 o; _$ d for(i=0;i printf("%4d",a);
& y) j) y7 |& Z% e for(i=0;i {temp=a;
2 K& @. I# o6 A# X: z- y. u a=a[N-i-1];
. | e6 Y6 ?/ p a[N-i-1]=temp;
$ B6 C ^% s' m; D" d6 x+ k }$ N# Z) r. a( p
printf("\n sorted array:\n");9 q8 S1 r0 X( Q+ ~
for(i=0;i printf("%4d",a);
! h0 f5 z+ c0 H y1 o! t$ a& D; H} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】
/ O0 l: l! Y8 |+ ~7 l0 A题目:学习static 定义静态变量的用法 % F: e# n: q; E& a+ N
1. 程序分析: + i- t7 }- I1 a/ q
2. 程序源代码:
% [3 i0 V+ n7 U- T4 F" j5 U#include "stdio.h" 8 L2 Q# d8 \. @) |5 m) G
varfunc() 0 @8 x6 f7 y+ }7 C% E& o
{
" @* v* W7 @% e. X: ~5 Nint var=0; . ]$ d& a n. W7 {1 q( P/ E: Y
static int static_var=0; ( p+ W6 h$ j- A% E( A
printf("\40:var equal %d \n",var);
3 Q" I# G% y2 t* kprintf("\40:static var equal %d \n",static_var); 3 X' ~3 t& [$ ?
printf("\n");
9 @5 A# k; y7 K5 \6 c6 m7 Gvar++;
. z( }7 V- l7 r' Tstatic_var++;
% Y! f' r, ~5 M$ O( N/ c}
2 J7 w6 M; H+ Jvoid main()
* Z% C% Z" y+ S- r g: q4 e{int i; 8 J8 s2 N+ L4 A
for(i=0;i<3;i++) 8 a/ {1 j% ?, p. [% t; S! D
varfunc();
4 ^/ \* z* ^( u$ U6 O7 N9 C2 b}
1 J t* i e8 Y7 U, w! F1 G; E==============================================================
l" {9 {. A: ]. R# ~5 s; ~【程序42 】 $ J- W4 v6 ^7 r, q
题目:学习使用auto 定义变量的用法
$ s v! }, z$ Y1. 程序分析:
; u- f' G$ r' z+ T, U) s9 F. b7 ?! f2. 程序源代码: f7 x; `' o$ v- D+ h
#include "stdio.h" ' x; i( e9 G2 Q9 [6 H1 \
main()
" g. E, h! m5 U{int i,num; / X2 M# v. \# W9 T! w# D& s6 Q2 }0 J
num=2;
0 f# Z% z- s' r# s) [- nfor (i=0;i<3;i++) " Z* }' f+ r8 R
{ printf("\40: The num equal %d \n",num); . w U% S1 L8 Y0 U
num++;
( W6 h; |, I+ A3 |{
( {1 z r d5 T: K' w! v# Cauto int num=1; # O, a, `8 t+ ]9 H
printf("\40: The internal block num equal %d \n",num);
9 }6 s7 V2 | @# s; j) anum++; ! |- _0 j4 L$ ~% Q0 [
} 2 S; x% A3 _! l+ F
}
8 M' J2 _! ^' |8 |- v} # N* p1 b1 o( e2 E
==============================================================
: ^. R9 n: o- i) M) z* ^. e& \【程序43 】 ) Q5 }% Y$ G/ ~( P
题目:学习使用static 的另一用法。 ! h7 Z. ~* ]0 [% M9 T
1. 程序分析:
# A3 r5 {% L7 T g# I) k2 }2. 程序源代码:
- b( }3 p# ^( @1 o) M X#include "stdio.h" $ x1 H! ]; C, |5 D+ S. K- L( }* Q" x
main()
* Y0 H9 E0 z5 P; U{ 1 u$ q h0 I0 Y" N& _9 ]. z6 F
int i,num; + n# ]4 ], j/ C6 @8 }" [9 |
num=2;
# u7 ~# l- P6 Tfor(i=0;i<3;i++) % e# h! v3 ?/ p" ?$ ?0 x
{ " M$ I9 y, A8 G+ m/ l9 o& k
printf("\40: The num equal %d \n",num); + S* U* K) P) [0 v" y# Z+ S% w. s
num++; 7 h0 g; ^! u4 {* j1 z- T5 w& i
{ ' R- {4 z/ w, G* M
static int num=1;
) [* o! {, F# Q% ]1 V& yprintf("\40:The internal block num equal %d\n",num);
# a/ K, k3 F( H9 L3 Bnum++; 3 }, H- ^- M8 X( u, q3 e. Z
} $ ~/ X- M! `( E4 _- O5 L; h3 R
}
4 x' ^) o1 l2 c2 C3 b3 q6 Z}
: J. P& z. \+ g4 O==============================================================
# w7 _, f; }( n6 T2 z【程序44 】
" D' B' v$ o; b3 e0 a( S _题目:学习使用external 的用法。
, J2 R; e& T/ @- c1. 程序分析:
% ?5 ]% R# M+ R4 ?+ S+ k2. 程序源代码: " ~2 d/ r. ]+ k
#include "stdio.h"
( C+ F: h7 D' L* xint a,b,c; " _- g: `- Z0 j* y" N
void add()
4 s5 {; z" Y* ?2 \+ H{ int a; - S! Y* j. p/ F6 n( `5 _
a=3;
0 K. R P7 D6 \, @, }. O. J" I- Bc=a+b; 2 v. H: z! g2 P4 Z% C$ Z# P4 G
} 4 K& C3 N F- e/ i
void main()
0 i. k+ y2 ^4 O( Z+ ^& v/ r, \2 c{ a=b=4;
7 ]3 R( N$ w5 x5 `, U. uadd(); : E9 f, p7 {7 p' \+ h
printf("The value of c is equal to %d\n",c); ; M3 l% }3 x' F1 P+ o, ^
}
* V8 f- ?$ A% x2 U* z3 q============================================================== % y' @* c' f# L& B# }; ~* V+ ~
【程序45 】 ( o& o; H3 X% `
题目:学习使用register 定义变量的方法。
! j7 Q: F4 v0 S1. 程序分析: # B: H! [% w1 K
2. 程序源代码:
2 g/ F C0 m7 t+ `* M( f, H8 ?void main()
& `1 S8 J1 [: ]$ r2 L; I{
7 d& |. q3 u9 R2 R# w7 _" Hregister int i;
1 R7 V( h7 h V, x) Z1 M4 Pint tmp=0;
% d* W" w! Y9 u$ n; k' kfor(i=1;i<=100;i++)
- S b1 `, _, g( ?tmp+=i;
7 O) ?( u2 D) w. b5 ]0 |! ^printf("The sum is %d\n",tmp);
! r7 V- S) A9 d a+ G6 ~1 T$ }}
' @5 f5 n3 \+ w' k. s3 x3 k/ {2 z============================================================== 8 Q \4 O$ B: \# K* _% |6 |) j
【程序46 】 T' E" ] j, J& K2 L
题目:宏#define 命令练习(1)
, Z& g; @/ j2 f5 d7 p& x/ n1. 程序分析:
( U6 I3 b# r' O. a x4 `" T2. 程序源代码:
, i8 c, f% K s% i9 j; Y [#include "stdio.h" " y0 Q, n* t4 m$ A6 o! l6 e
#define TRUE 1 # `/ L$ y* E+ Q% P
#define FALSE 0 & n$ F$ W3 J% B- y$ h! ?6 L
#define SQ(x) (x)*(x) 5 o5 e3 C n) c7 ?
void main() # T9 D& R* w O
{
: U5 ~1 p# c9 w1 k h+ Oint num;
2 m) X: B- t8 \+ P6 Uint again=1; / F$ Z# }( m$ z+ `& Z
printf("\40: Program will stop if input value less than 50.\n");
% ~* j3 u( x: G0 d) o' m+ E2 jwhile(again) % y9 t% b/ L. B- a9 l
{ 9 d: H1 D3 T9 V* e, G
printf("\40  lease input number==>");
* A" `; x' x6 Z# y; e) Z! kscanf("%d",&num); 2 B, ^& H8 w. F- w$ x, Q# w* u0 V
printf("\40:The square for this number is %d \n",SQ(num));
8 H6 ?& X- N$ L% mif(num>=50) " q2 M8 X" f4 a& n9 H5 L1 h
again=TRUE; , }* x$ d/ m8 Q2 a2 L( o" H
else ! A9 i' P1 l$ V, i% N
again=FALSE;
3 x4 L, J1 J; r+ j9 X) Z/ D}
1 o$ m7 c9 L7 ^/ P+ ?( c& A} 3 q/ v, e7 I s) b! w i; T3 k- w# B: |
==============================================================
8 }0 d1 [; {- o. E* [1 [0 ^【程序47 】
) D/ s, e/ a; Q! Y题目:宏#define 命令练习(2) 8 W' k0 ?9 j ?8 X R. ]5 g
1. 程序分析:
+ |! G) F- O: V6 A* t9 Q- A2 u. J2 F2. 程序源代码:
4 Z- b+ j/ i) ?: }2 |#include "stdio.h" 2 T1 N3 [2 l L' X
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ ! [/ H+ |; ` T* o
int t;\ ; V V! ]! q& S5 o* v
t=a;\
t) D. F; v- D* S3 ~9 Xa=b;\ 7 ^& E$ A- w- C1 Y: v p5 U' B
b=t;\
5 w( q1 S2 A' r: z} H9 i: |' H- J, M/ l
void main(void) / b6 L5 [- w3 V# U1 K
{
+ f; s/ x* R5 Z, Q- Dint x=10; ) G9 t# Z D8 P" w, o
int y=20; 1 F" @6 f7 C: n/ ?& m( d
printf("x=%d; y=%d\n",x,y); * a) j) j, V" X' @
exchange(x,y);
- W; A8 ~& j# @, L* W6 fprintf("x=%d; y=%d\n",x,y); 7 [; s% c" D% L( K/ ]% O
}
" n: @3 d, h/ B' o==============================================================
6 ]& U' m) I; J2 H4 [ @【程序48 】 1 W& b3 Y3 g, K1 ]- w
题目:宏#define 命令练习(3) : R, ], K' k7 e! W y2 L
1. 程序分析: 6 }; n7 j0 W! a+ X
2. 程序源代码:
/ X( t/ n# P1 ]( v) U#define LAG > 5 _: O2 O1 V9 u! X U& h; h
#define SMA < + b' q4 y! y4 R9 ?) v0 c. v
#define EQ == ! N6 Y% F& z' Z } g
#include "stdio.h"
7 x9 C6 i; {: Yvoid main()
/ x. E% [3 n# P+ \8 L3 ^: i{ int i=10; / w! U( S3 c$ w. K& p0 k7 v$ p0 B
int j=20; ! C: w, ^# l) g
if(i LAG j)
* Y2 h3 E. g( E4 k% Cprintf("\40: %d larger than %d \n",i,j); 8 X) K' t; i0 C
else if(i EQ j)
6 h E% j; \" G6 hprintf("\40: %d equal to %d \n",i,j);
% n1 G& {$ d+ b1 t' Yelse if(i SMA j)
" K6 o" _0 Y0 Q6 i" v5 \# W" A' \printf("\40:%d smaller than %d \n",i,j); , a. _) ^& T z: b* B6 B5 g* k/ X
else
1 `/ f# C3 f& Y1 Pprintf("\40: No such value.\n"); 5 X9 d9 g. u+ R/ ]/ `* l$ `: j& F
}
5 l$ h1 x7 }0 `- a s8 h============================================================== + Q4 z: [7 u# a8 l# f1 k
) n& x1 j0 j( C4 S1 S
|