【程序38】
% \/ [0 c h2 {: e题目:求一个3*3矩阵对角线元素之和
8 l: a* O5 ~% }5 ?( S1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
# l3 U* Q% f9 C, M/ I! a# ^) Q2.程序源代码:1 Z. {1 B9 @7 D8 i1 @
main()" h( {: E, e0 k; Q% a6 S, M6 G
{
v. I: X7 R8 C3 @. |* [" p: Nfloat a[3][3],sum=0;- O1 |5 B( J9 K- e% _9 N
int i,j;
9 d% I5 j* O( pprintf("please input rectangle element:\n");+ p% U. m* d2 L
for(i=0;i<3;i++)
. {" S- b0 |+ d8 q. U5 ?* u5 C$ [( o for(j=0;j<3;j++)
1 @2 v0 L4 V% E8 t$ p scanf("%f",&a[j]);
. A5 L* J! v$ E1 k0 efor(i=0;i<3;i++)
s5 m, S; o, n# v2 } sum=sum+a;
# [' I3 c* t* W+ t+ E3 G/ q3 @6 M: ~printf("duijiaoxian he is %6.2f",sum);
& S. D5 Y' K5 f* @4 z3 p}
8 H7 p- o: s$ ?! y============================================================== U' _* Y" ], ]
【程序39】
, J$ z( ?3 G" g J题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。! E9 K/ A6 N1 Z/ T4 e! w; {; B
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
. o% o2 U9 j$ H& |/ q9 j6 P1 O 此元素之后的数,依次后移一个位置。 ! b: k4 ^' F8 `2 \
2.程序源代码:
5 t/ F9 D7 l7 a5 u2 V, i H6 ` Kmain(): B* p9 x& j! h( v$ c
{
p, T$ _3 l- q/ r3 e! _: K4 i+ F% Mint a[11]={1,4,6,9,13,16,19,28,40,100};7 L% [) P9 v4 t! @. _
int temp1,temp2,number,end,i,j;7 u5 X$ ] H+ R- s: A, ?
printf("original array is:\n");" K2 F$ X, p1 G4 g. \2 p/ f0 r
for(i=0;i<10;i++)
+ P6 Z# W+ x" `8 n+ q3 e8 a printf("%5d",a);
7 `: Z( |( D/ j. A: c4 I# Fprintf("\n");. r0 e f5 ~$ J- i" Q
printf("insert a new number:");
' v5 `' |. y& O' {6 x6 Q6 uscanf("%d",&number);
/ D) [6 w3 q0 y5 I5 p& R0 [4 A: Nend=a[9];
2 {% D0 X6 ^2 F3 q( Cif(number>end)
- Q) }1 v6 k9 g% K a[10]=number;. d& f& [! B: ^) l+ ^6 _; Y& O
else
4 {" K8 n! b& i: x4 q' M$ F {for(i=0;i<10;i++)
! | i# k% ~+ A' F: q, O' l { if(a>number)
# i# D2 Y) o& n; u, D9 Y {temp1=a;
# [' [8 ^- a& ^8 c3 S# ~1 N+ R; g a=number;8 C8 e: V: ~/ W- I K8 C; V+ u
for(j=i+1;j<11;j++)
; l; j4 i( @: T- R: ^ {temp2=a[j];
) i5 L1 `6 ~* b9 W4 l a[j]=temp1;2 F) ?! q8 b5 \' n6 k) `, r
temp1=temp2; x8 @1 h2 X8 v. [' t7 d0 u
}8 i+ ?# M/ w( k2 j
break;
% Z2 c. W1 [0 j }2 z0 h; n3 C" U: I/ V$ e
}1 U, K0 G; V* p: P
}
/ ~+ c' W) i# Z* G8 M6 qfor(i=0;i<11;i++)' i" c$ J! ]- n' c0 {" V
printf("%6d",a);, J# |1 F$ H; c, Z3 Z
}5 x2 D) Z7 E" o# |( g6 g
==============================================================, x: u1 a6 V) I: v& {5 x& \
【程序40】9 x `9 ?# z' C3 \* `+ i4 t
题目:将一个数组逆序输出。* ]9 q$ w- w; n
1.程序分析:用第一个与最后一个交换。
1 |- D% w: V9 `# U1 W& U2.程序源代码:" k2 U; \( V1 ]9 g6 Z$ [
#define N 5
4 M7 Y: `" N3 Emain()
$ a, P I1 j2 O0 E4 X5 C{ int a[N]={9,6,5,4,1},i,temp;8 Q, W4 j; }+ }
printf("\n original array:\n");
. ~* Q j& U1 O$ {; R' C1 @ for(i=0;i printf("%4d",a);3 ]; }( n' B- l
for(i=0;i {temp=a;: ^% u3 l, O" ?3 b M
a=a[N-i-1];
% l5 L! N% a4 R; D a[N-i-1]=temp;
2 h* @" n2 p4 W }, \! C/ Z1 |* }: I
printf("\n sorted array:\n");
: h2 G' E& U: `7 F+ q( }for(i=0;i printf("%4d",a);
, H( x6 }( u1 u( G8 k} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】
u! `$ s+ O) i" ?: b4 p1 i0 s题目:学习static 定义静态变量的用法 # x4 e& w6 s3 Q1 [( P$ m, N4 j
1. 程序分析: ) U# l8 V4 z8 f$ v9 V
2. 程序源代码: ) W; q% ^, ~' @8 P" e! H1 L
#include "stdio.h"
( J; ~; U9 `& K/ A" N4 X) Xvarfunc() 6 D% j4 L u% C2 n H A% ?, i
{ 8 N1 e" j3 W8 g/ ]/ w
int var=0; ! e- P& v. @/ d7 R- R
static int static_var=0; * v+ N, {: F# f" h
printf("\40:var equal %d \n",var);
9 ]9 L' {3 p0 X8 T( aprintf("\40:static var equal %d \n",static_var); ! z% Q: g7 l. t* i. L
printf("\n"); ; {7 u' u: U. P* c$ N; x. h) [
var++; ^! Z2 ?8 N$ p; ?
static_var++;
5 g0 \! n" G6 A2 @5 Q# H" q- @}
. h* w% Z4 r6 g L9 y. x5 T; L% Dvoid main()
2 ?9 h# h: a$ _7 M4 w* D; p- I{int i;
4 ^2 H: T! Z7 n9 K: K' U. e$ a+ [for(i=0;i<3;i++)
0 Z' B. O/ x& U7 @4 q. S+ Y/ Tvarfunc(); + ~4 l$ X" _4 A3 s0 i
}
|( I& H9 U. [4 i* i============================================================== , C, q" y- E. u9 k
【程序42 】 1 J. _( s3 h6 w: C; E
题目:学习使用auto 定义变量的用法
9 P) A) c- |* E1. 程序分析: , q5 t% I. X" O
2. 程序源代码:
8 N) f* @. y7 L4 w3 a9 W#include "stdio.h" - ?, p7 B( _/ I. C0 B/ t8 S4 I2 g
main()
7 z5 y, E) K5 v5 c7 z2 T' d m* n{int i,num;
/ V. z9 I! @+ H* v7 Knum=2;
5 Z3 V1 ?8 _( R. A6 t& Pfor (i=0;i<3;i++)
3 `. T, U; ]: X{ printf("\40: The num equal %d \n",num);
8 G/ Z2 r8 u7 ]1 G$ Unum++; 0 C1 ]8 I- N% Y
{ 1 L+ G( P* R3 k% I
auto int num=1; ( V+ H( O+ Q" A4 d
printf("\40: The internal block num equal %d \n",num);
9 ~8 t o. P+ tnum++;
" z6 \9 y/ i& @# r2 @}
, a( E& [( \" H" Q} * B8 w. b4 d9 f( T+ w
}
9 X/ M: G0 d5 y! f) J4 ~============================================================== ; Z/ ^+ T$ f# s
【程序43 】
, Y& S+ @9 W1 B题目:学习使用static 的另一用法。
$ y+ b7 A- J) F6 y, X$ t1. 程序分析:
( |7 {' i. q6 e2 e2 ?2. 程序源代码:
9 g- A) {. ~( G% X5 [% P#include "stdio.h"
# \: b/ A% q2 }: cmain()
5 P9 A! J2 E5 @1 W ^{ S; d& F0 `" D- @% ]
int i,num; ( d5 Y, L, {* O$ u5 Y+ `
num=2;
6 G0 P2 U" Z0 E9 W' C# Z" Q- jfor(i=0;i<3;i++)
. r5 l5 }1 d- i) z{
& ~; H/ D; O8 m% X: F: | z/ @printf("\40: The num equal %d \n",num);
( }1 ]' K6 y% c- z0 x" }num++; 9 O1 q: Y. W e9 {
{ : {4 y6 H2 U" W/ @- U# ~
static int num=1; % n, n/ n) Y7 `* K
printf("\40:The internal block num equal %d\n",num); & d% A+ R b J, b2 ]- X* `
num++;
; ^1 W$ [" H I y( P}
/ Z- }' F1 n3 W1 D) S/ ~( \9 i}
( Z7 j z0 C8 Q9 Z+ g t} ( {3 L9 `2 l3 G2 \' ]
==============================================================
# G# j4 ~8 `- R4 h' t& }0 p【程序44 】
0 `+ @0 K1 c( M- T题目:学习使用external 的用法。 & Y6 s) s, l( g; X( U
1. 程序分析:
7 ^5 z) h/ m4 s3 ~+ U7 P2. 程序源代码:
6 m" f( N( O# {7 V0 K#include "stdio.h"
0 i# `' y% F' _( K6 C6 |9 J, [5 Sint a,b,c; + t# J k$ v- H( @
void add() ( K+ w0 e* w3 u9 s1 N1 G# W/ f
{ int a; 2 B1 g! o, m* X0 q
a=3; ' H5 v u, Y0 }" Y; j
c=a+b;
6 V) [* }$ S! Y) H} ( k: Z+ q' d) T4 D$ K5 Q
void main()
( r+ R& b9 V) b3 B{ a=b=4; . ]' V% L5 R- u Q1 w0 Z
add();
! _2 E* G1 n3 ]+ }* J5 B+ z8 aprintf("The value of c is equal to %d\n",c); * V, n! h3 s/ u
}
+ @6 p( v* W' `8 ]==============================================================
2 W: U) p: G1 w【程序45 】 $ k. ], c/ }+ B0 v5 O6 F
题目:学习使用register 定义变量的方法。 & `: i! q2 [& `; \) k
1. 程序分析: 9 g- \) W6 A; y
2. 程序源代码: 6 W8 c+ s5 o6 R5 V, P2 Z8 u
void main()
% |0 J! A3 K! f& j! B" G{ % i4 }6 }/ X+ x5 o* t
register int i;
0 @( w- J+ c1 ?. N) Qint tmp=0;
: n, I5 n" s8 D3 s0 qfor(i=1;i<=100;i++) 7 W I' c7 w. }& u
tmp+=i;
& J1 @9 m% x0 a5 ]7 ^" ]1 bprintf("The sum is %d\n",tmp); . w7 F5 L8 p6 x' o: [8 Z: y# F$ w" x
} - w; I- D, }7 n' b6 ~* v9 u- \
==============================================================
# s f" M6 J, Q2 i K【程序46 】
6 k/ j/ ^# x5 m' Y/ q7 o题目:宏#define 命令练习(1) 4 _2 M8 a3 g" e$ W
1. 程序分析:
/ b" I8 X9 C5 j2 [2. 程序源代码:
$ B$ \, _0 |( ~* E4 m1 o/ T/ z#include "stdio.h"
# B' l$ ~, i7 J* q- s#define TRUE 1 7 H8 ?7 }3 D8 n% U; z1 N' r
#define FALSE 0
9 U6 |% r1 Z _0 @- r$ I$ l2 ?#define SQ(x) (x)*(x) ' s2 v7 G- X" z* ]0 g$ p& S7 R
void main()
T. ?6 d4 j* S! L3 `{
T. I9 w4 B5 r! C7 a3 O: [( eint num;
; F8 k# S( H/ _# b9 s, R, Mint again=1;
7 p# z' t& V+ ]& Aprintf("\40: Program will stop if input value less than 50.\n"); A3 k: f/ A! p- p2 U6 T7 a
while(again) ' a7 A# h. v" ?' t. E
{
" p- Q/ `, ~9 X0 d4 Q, \ ~printf("\40  lease input number==>");
! S; c% C" W% g5 Cscanf("%d",&num);
: r8 E3 C4 }6 Z9 l1 Mprintf("\40:The square for this number is %d \n",SQ(num)); ! T3 x4 X5 q; t2 i1 u& Q% z% |; N
if(num>=50)
3 f! B- N& [7 |# T! I5 E% F8 Y: f/ gagain=TRUE;
: W: w, ]5 X" a v+ \+ S( Welse
( @* s( o. w) u$ [& P pagain=FALSE; ( S2 d" g' j7 B+ R& ]+ |
} ; a* g1 p& y9 D4 a3 j% K
} 2 R' Q0 s; `/ b) \: c. B5 H9 ?
============================================================== : [& D! \& }' g0 b2 p4 A: J
【程序47 】
) m( j' `8 h& W+ \) P9 H6 w题目:宏#define 命令练习(2)
. S* ?0 J# Q6 S3 s1. 程序分析:
* P% u) ^. l, s- _: z2. 程序源代码:
2 O0 [+ r) c2 c& A2 f#include "stdio.h" 7 W8 H2 ?, o( b0 [
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
' U2 z' h0 d0 f, O+ rint t;\
# X3 X) L0 ^) Bt=a;\ % f. G y0 w- a: R
a=b;\ # K/ x. C6 i& R; n
b=t;\
$ i4 c0 n, a, B3 `} . ]6 M1 A& v; j* }# K1 X* J
void main(void) & f) C! U- `: g7 z' q$ c
{
, T2 c) x9 E( A8 ^int x=10;
: E$ c& z0 h7 R# Rint y=20;
- t4 k" a' ^: e3 g9 a: sprintf("x=%d; y=%d\n",x,y); ! |+ u/ J, S+ _1 {- \, f! h5 _
exchange(x,y);
9 ?" i) s, g- e8 c/ {* V( E! R8 nprintf("x=%d; y=%d\n",x,y); - K+ `3 W% J+ y- c' X
} & u. H# n' J. M' D
============================================================== 8 b* R- I. Q0 c1 b/ y
【程序48 】
% J7 {' C" z) ~/ a: C6 V题目:宏#define 命令练习(3)
4 Z* v& v. g9 O! J" O1. 程序分析:
5 T0 x5 A7 z2 Q9 M- f. D2. 程序源代码:
8 D g1 K3 Y' d( Z( y#define LAG >
% ?7 W% D5 U" Y1 l#define SMA < ; u/ [1 a r8 {
#define EQ == 6 e g" ]1 T) r" K9 \. L3 ?
#include "stdio.h" 2 L9 q, p9 ?# H3 j
void main() 4 \, n& P6 A# S
{ int i=10;
$ V: k- D, L8 V+ {int j=20;
. ^; v7 _; U* X7 Z5 C) wif(i LAG j)
6 k/ H. t- H6 t3 o$ [& O: G/ s! K& g0 oprintf("\40: %d larger than %d \n",i,j); 4 t. Y" s6 T. f6 V8 ~; Y
else if(i EQ j)
8 b0 V, d$ u2 s4 G1 Y8 {7 lprintf("\40: %d equal to %d \n",i,j); $ j! Z5 P ?6 t6 `! N
else if(i SMA j) ( j4 T& U8 h( P, N* R2 O
printf("\40:%d smaller than %d \n",i,j);
% x% ]: m; [" T# z1 Y. L" b1 ]" ?else , q1 Q% e5 g& C
printf("\40: No such value.\n"); $ z0 j2 z, L: @/ Q
}
: C& s m3 o. T' |==============================================================
0 c. J% Q7 X5 s( [) G 6 j7 V) Q) v2 t ]
|