【程序38】
, Q0 C8 |# `1 W$ b* n* W+ u: Q- s题目:求一个3*3矩阵对角线元素之和
( m4 g4 |2 b5 x1 t3 V- e }4 n1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
& K3 a B. t0 c; T4 f2.程序源代码:7 f% U. n9 h7 p; W6 b! E7 e" G
main()
+ |% v0 u) R8 o7 K{
6 t% v1 I: c$ K4 M' Mfloat a[3][3],sum=0;0 A) }9 t+ W2 r( q$ g) @
int i,j;2 k; ^' k7 e+ G- k4 N# X/ i
printf("please input rectangle element:\n");# t4 E; |0 \) ~# t3 m! d3 ~% t1 v
for(i=0;i<3;i++)
! P2 G3 {* H7 l" J4 [6 N for(j=0;j<3;j++)
& `/ q, y6 y; O: ~0 ?% {: b, H scanf("%f",&a[j]);$ U5 S$ ~3 \7 R {0 D, P
for(i=0;i<3;i++)" y8 k4 L! Y7 W" S" B9 u1 d
sum=sum+a;
; z; D/ D; O- c. k* ?: e8 |printf("duijiaoxian he is %6.2f",sum);
" a' q% i) l/ F" O# a}
& `1 [/ E5 a- Z4 q6 L==============================================================
\8 M _2 s" i% i; b& F* s【程序39】5 o. D: x' M6 x1 s( s' B
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。: C* ~. m7 C% M# Y
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
* M2 D. Z7 F- Y- _# m 此元素之后的数,依次后移一个位置。
* _/ ~) Q) Z$ @9 `; p' g2.程序源代码:
6 @0 D" y* G. z2 K0 v2 amain()
# Q# T/ x1 s& G( |8 k{' O5 K/ H& F( X7 u
int a[11]={1,4,6,9,13,16,19,28,40,100};! ?2 X7 e+ s3 n! y1 Y7 Q* o) Q
int temp1,temp2,number,end,i,j;
. j) A2 W5 c9 b, m; @/ z' Xprintf("original array is:\n");5 J; Q5 O: G! }4 N1 X$ S6 g; S
for(i=0;i<10;i++)0 G5 k& G9 Q% Q# M2 Q
printf("%5d",a);
# N# [* v6 x. X; u8 O& {printf("\n");
& G- T4 a' H L7 k, s4 Eprintf("insert a new number:");
. I3 [% C2 X [scanf("%d",&number);
5 \6 }: F$ z3 |! x# }$ ^6 E; p8 cend=a[9];! O0 i& X1 y. Y
if(number>end): M0 [2 [+ a, o7 v4 u% x) c
a[10]=number;8 i. W# ^5 s( g/ k! {. Z; d4 o; v
else
" U+ v3 u* p9 f B: S {for(i=0;i<10;i++)3 T" ^2 T. {* M# j/ M
{ if(a>number)
* A% I4 u# S" n+ e$ x% U; L {temp1=a;
s. j5 ~4 r, F7 M% S a=number;" Q+ ^9 \7 v3 E# s1 Z7 v& h1 R
for(j=i+1;j<11;j++)
f% Y3 Y& z# f% H& r, Y- C {temp2=a[j];
" P/ i5 j. ~% }/ ~+ i2 w a[j]=temp1;
* D& p6 }8 E; N3 m% a' X, Q2 T temp1=temp2;. O7 D0 y9 c5 Z7 g5 V4 k; N
}1 P; B( j9 X/ b# `
break;
( h l7 ^6 d9 L5 h% A R1 S }+ ^: J) b3 @8 n8 T
}8 F) W* ?0 j- F. a- L$ c" L
}8 h- Y; G T" E9 I
for(i=0;i<11;i++)
* x) W5 {" @: `5 L* b printf("%6d",a);
" x- A# `! W# }+ w" P: a: J}* G7 b* p: Z& k( k
==============================================================
/ D9 D3 m/ m; p【程序40】$ N% G7 n# [! \. {
题目:将一个数组逆序输出。7 O1 \0 b( g& I3 I# z$ c. g9 ~
1.程序分析:用第一个与最后一个交换。9 Q/ X- g, c. a7 N. y$ P5 d
2.程序源代码:6 @0 [5 S5 Z. n3 U! ~1 h
#define N 5( G) s7 B" k. T- d3 e: s
main()
! Z( @# o# E9 C( e{ int a[N]={9,6,5,4,1},i,temp;5 g3 A" j0 {2 O7 C2 I: m6 B
printf("\n original array:\n");* y+ K& P. D. ~8 ~( F
for(i=0;i printf("%4d",a);
+ g) Y' u# o3 r, W* j for(i=0;i {temp=a;1 y6 P9 g- R$ ?) y8 E$ G" w# n% [
a=a[N-i-1];5 ^, k$ r0 {2 \2 T
a[N-i-1]=temp;
3 w5 K: f. I5 m9 b9 e( i/ x! ]/ x }
: P' V6 y# L+ k1 R" Tprintf("\n sorted array:\n");& n5 L# p x6 f
for(i=0;i printf("%4d",a);; ~4 d- d, C7 E8 ^, @- q
} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】
: b; B' n( ]" t& n$ o题目:学习static 定义静态变量的用法 / T- W- {0 n1 }" |$ g
1. 程序分析:
l& R6 ~% t+ T# z' O. |2. 程序源代码:
, X- c- D8 F* J- \) _7 W; k$ Z' L#include "stdio.h" ; X f) H. Y* @( H' m
varfunc() ' B# j4 ]. [5 Y. b; p
{
6 R3 G- q- R" P; v9 aint var=0;
0 E. s& v$ d/ ]. [" H9 U# U6 P [static int static_var=0; b: O M G1 t4 `% ?4 d. i
printf("\40:var equal %d \n",var); / G$ }. f, F7 P) E4 B R
printf("\40:static var equal %d \n",static_var);
' z8 {5 ?1 @& v' t5 [6 Rprintf("\n");
; F R1 ^, ?7 M* U$ Tvar++;
5 l4 q- D1 E9 O0 q* ?! P0 Cstatic_var++;
: I+ \, F: X" l: h} " I; R: o) i& ^5 g9 ` J
void main() ' w a* t4 P& V- d
{int i; . J u; R6 w: {% r4 h
for(i=0;i<3;i++) ! J' e4 E3 u4 i
varfunc();
) G/ y, w9 W" F1 t3 b} : d$ I7 \8 p0 t3 {* L
==============================================================
) d) c" ?5 W5 ^# A( q! y+ o8 N8 ?8 e6 Z5 H【程序42 】 ( F) c+ ?0 Q5 }8 B
题目:学习使用auto 定义变量的用法 4 ?' _6 r% h1 P# I& Z- d
1. 程序分析:
7 r3 L4 a+ s1 k; Y' d2. 程序源代码:
8 D( G3 r d& J4 r* k% b& l#include "stdio.h" % E1 @5 I6 j9 P4 q- A3 j5 p
main()
+ B3 F: r& u, t. [# A6 J{int i,num; ) k7 _2 Z; x+ G; G; P
num=2;
7 Y1 W; v. G: y6 o6 w$ Rfor (i=0;i<3;i++) 0 N$ k, E* D6 [6 S. V9 @: f
{ printf("\40: The num equal %d \n",num); ) h- }( G1 c2 X8 X
num++; 6 E+ E+ |: ?- h, c9 W) h3 l$ k
{ + y0 [# Y5 L2 p7 O( u$ n* |% Y
auto int num=1;
* g& q+ F- f5 X* vprintf("\40: The internal block num equal %d \n",num); 7 L0 B+ n/ I# ]: \/ x3 R7 J
num++;
f' A) r# S Z2 ]9 ~3 K% B}
: b4 W, c8 ~- c/ B( m+ F} : Q' h0 M5 |, J6 d1 t
} + X/ x5 x8 P2 O1 P5 [, t* o
==============================================================
3 B& t, T8 |3 g# [! l* k【程序43 】 3 k) l+ w, J! }: l" o( j
题目:学习使用static 的另一用法。 % @3 s9 P1 B: y
1. 程序分析: 7 ~( x) A- G# m
2. 程序源代码:
) I% u% M( K( [#include "stdio.h" % f% I3 m* J& v1 @4 s
main() % f: f: F; K! B# x3 R' J
{ ' D. U- o+ E& N3 x. s
int i,num;
& n" u* X! h1 Z0 n4 g0 `4 H. g4 Bnum=2; " O4 E) b! T) H( ~5 K/ N
for(i=0;i<3;i++)
1 V4 b! M9 o, m# H{ # F% j7 \; K- {. S+ t% E
printf("\40: The num equal %d \n",num);
; Y0 a; o# _( i3 C$ i9 Xnum++;
) Q& I: D; a h) H{
) @/ H% ~% U1 V- Z" U: Jstatic int num=1; - A% B. ?3 E3 n3 r( J0 G8 z! e/ r; C
printf("\40:The internal block num equal %d\n",num); `3 a F; v4 R# G* Z9 ~
num++;
+ I+ F) X: {2 L( D! \" M}
& F4 Z G! \% G8 }/ D2 E, y}
L6 B. v, e: H& b2 s} + W# G B/ F, A& }1 L1 x6 ?
============================================================== $ O0 _3 W4 @8 b7 Z; P( p: L% |
【程序44 】
7 L. h6 ^& ]3 f0 ]- `9 F3 |2 e; E题目:学习使用external 的用法。 - G, u- | V9 i" ~+ K4 ~
1. 程序分析:
8 B$ G4 l: C4 s. g, _$ n& Z2. 程序源代码: / @- p9 B0 u8 D: F# N' \3 Z
#include "stdio.h"
" q0 b1 ]- E$ a& Y% F6 Jint a,b,c;
* d6 R/ S! i. ]9 ?9 h; b% \void add()
/ k* t3 H% I/ q, r }& H{ int a;
8 X5 m) M0 _) {0 Ea=3;
4 K% z8 P9 q# J; ^c=a+b;
- h. B$ x% H6 _}
( ~, c1 o3 @. P, [! Uvoid main() K; Y# Q" k* l/ r4 B* J
{ a=b=4;
8 E) h9 O4 r9 M4 V+ Q7 s- aadd();
% ]0 R1 F7 x/ a Z% g( @% l$ Q7 bprintf("The value of c is equal to %d\n",c); 5 U# P' U. r" J7 c( q
} * V* p& Y1 H* B1 G- w( C
==============================================================
9 V: K' E7 \+ L* P【程序45 】 : |: N" N! a: X- {
题目:学习使用register 定义变量的方法。 @+ Y3 N0 y- _. L8 }* p/ ]6 u' p H
1. 程序分析: * P. H- x; B% i- U8 _4 y6 v
2. 程序源代码: 4 F) Q" K9 B' k1 S
void main() 6 [* D4 [2 f4 T4 S
{ " w _* u4 C. Q
register int i; 2 a( f! V5 x4 U- s d* P
int tmp=0;
' l, D: [8 x# d* Z sfor(i=1;i<=100;i++)
" q9 b% _& s$ dtmp+=i;
0 Z/ R8 X, G8 ]printf("The sum is %d\n",tmp);
+ [( U2 T" a+ z. d( \% U}
2 U1 Z6 [: Y, ?============================================================== 9 E; v' }( t: f& t
【程序46 】
/ [" ?9 P0 u" J1 @5 `8 R题目:宏#define 命令练习(1)
! |# ^. j. l" n4 E7 `; C6 n2 ]3 v1. 程序分析: 5 X5 {: u* ^6 i. |, j
2. 程序源代码:
5 O" x% N6 s) R3 z1 _#include "stdio.h" 9 I( p, a3 S1 c) `" O
#define TRUE 1 * x/ V" O) d- v: i& Y" _3 w8 ^
#define FALSE 0
f/ r: U' \* n#define SQ(x) (x)*(x) - N F; O. R1 j1 ^
void main()
# H" H1 G1 ^3 o" b7 K! G3 ~, S5 ]{ 8 Q$ x9 Z9 N! a' A' N
int num; ; `1 F. `2 u% l! S
int again=1;
8 \% a8 N/ Z4 q: R0 g& tprintf("\40: Program will stop if input value less than 50.\n"); 9 e! r" c" e3 _! P1 S [$ V0 T
while(again) ( V% p2 O6 N$ ?! h$ O8 P: g/ T* q
{ $ t6 h, _% a0 {$ r8 x
printf("\40  lease input number==>");
; X7 `. o' M: [; [/ @6 _scanf("%d",&num);
! p+ n, s# r, W9 I* n* c6 S" pprintf("\40:The square for this number is %d \n",SQ(num)); ' t# J. h i+ b6 j9 \2 g6 j$ K
if(num>=50)
3 o0 [- i0 |0 r3 J5 |: p0 b2 a1 e( pagain=TRUE;
! r6 _0 A3 V) K. p/ `0 O& r- nelse
) V4 ]# ]' h1 t. o- k+ wagain=FALSE; w# `. T5 Z) t% N8 n3 d ^" p: [
} 1 u! Z ]% S- Z T
}
. [# e, u% D6 K9 Y+ f1 g# h==============================================================
! Z: s' m: X, b0 d8 o! V8 C【程序47 】 / p) u# ~( {) h
题目:宏#define 命令练习(2) 6 a) g8 y" x3 `- n# [: b
1. 程序分析: ' ~5 }6 O) q) }2 {% p, X% ^) ]) y
2. 程序源代码:
! m+ I5 j x% A) o#include "stdio.h" " R: [& F, D/ y
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
, e' ?; H9 L" p" o# w8 \) Kint t;\ 6 u& k0 c, N3 m2 b( S4 j- P
t=a;\ / k6 S% X2 q* t* j& p3 f: {
a=b;\
" o4 {- {; X& u$ e4 C2 nb=t;\
( Y/ R+ V# t |/ T1 L}
& C0 N: I) v8 j' F, P6 Qvoid main(void)
4 ?0 Z8 F% s) e+ _2 `2 s$ }{
% x+ H/ A) U1 ?9 xint x=10; 4 b# H% i& P6 a5 H3 ~! D. U
int y=20; ( q7 |' n# V, y7 C* p5 h4 U1 N
printf("x=%d; y=%d\n",x,y);
6 U4 P: I6 ?# k: Iexchange(x,y);
- Q) Y9 u8 i% L- X/ Z$ Jprintf("x=%d; y=%d\n",x,y);
- a2 m9 R" X7 |7 w} $ u- R4 o3 d% s0 Y- y; M, K
============================================================== # q9 y/ o/ c/ K$ K# j( _' G
【程序48 】 4 |! y6 ?1 `+ S4 | J. X
题目:宏#define 命令练习(3) / y; t( R% H7 ~/ p9 p) b$ d
1. 程序分析: - F3 n6 M5 H( ]/ w/ [
2. 程序源代码: % y& J- Q+ O- N$ M; S4 V+ a. x
#define LAG >
% T( }4 ]$ D- M& g* h5 m- z#define SMA < / Y, {' p) _) _/ T; n
#define EQ == % E- {; A3 x5 ]- [7 {
#include "stdio.h" ( J6 u. e# ^8 ^2 d2 {. `
void main() - H; P5 i3 }( u" a; v8 Q% \6 G
{ int i=10; 2 s- r1 P" H8 m
int j=20; ; X" `, b4 i9 |$ l8 V$ n, u# x
if(i LAG j)
5 l* {$ S4 F) l/ Eprintf("\40: %d larger than %d \n",i,j);
* j5 b8 F+ o: v; p2 j* z0 }1 Yelse if(i EQ j) - x" p! m3 n$ Z
printf("\40: %d equal to %d \n",i,j);
& u+ r* W0 D7 B# I4 g6 R6 Z( }% ~else if(i SMA j) ; N( R, v) o2 @7 t. W6 c0 {
printf("\40:%d smaller than %d \n",i,j); ; X9 x+ ~9 x7 K/ u# f1 ?& A
else
+ \' C- @5 R! Rprintf("\40: No such value.\n");
* A! T8 P8 h; y! y! m3 H8 r/ x}
; G8 \" ^7 g# [; v. h8 a==============================================================
k% J/ X" g, c" @- I, J 6 ]& X4 s7 L: u
|