【程序38】
' p; m" ]" S/ | g题目:求一个3*3矩阵对角线元素之和
' }& W3 G' w! D' }9 J8 t) m3 ]7 Q4 X1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。& e4 }1 T4 v U/ D) U2 [+ h+ _1 q
2.程序源代码:# N, c* {& g$ O4 q7 j: ~
main()) O8 Y) f) q) l
{
e8 q- d6 l+ W6 Qfloat a[3][3],sum=0;# D/ D' C% X1 z9 e
int i,j;
( B* D: c. a6 A8 N$ c1 H9 mprintf("please input rectangle element:\n");
7 \) O: ~+ a, I- t, Bfor(i=0;i<3;i++)
7 n0 Y- Y" _4 U5 w7 q for(j=0;j<3;j++)9 Q* F3 d. c( |( o" l$ O1 g. K9 x
scanf("%f",&a[j]);6 c/ e" ]+ D9 l2 u" e# u+ V7 E
for(i=0;i<3;i++)
& u1 R% b& t z sum=sum+a;
6 A9 l( I8 n `5 |2 Zprintf("duijiaoxian he is %6.2f",sum);9 a; j$ ?+ {- H4 W# y \
}
' l, l' ?% Y' E( z==============================================================5 U5 @0 P6 [0 r/ d7 k! n* d
【程序39】
3 O* o9 W- Z6 k% L- `, K5 R+ d' q题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。5 X- `. O6 V6 T
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后: W$ ^' u' K5 g4 S r
此元素之后的数,依次后移一个位置。 ) N# ^. U/ W/ X# x2 c6 W) {$ v
2.程序源代码:
; D% U3 Z' a. @2 y1 i; L# `" @main(); k6 R6 B! y! k4 C5 U, p0 u6 j
{
9 ~; o" b' p, Oint a[11]={1,4,6,9,13,16,19,28,40,100};. u+ p: y: [/ f4 h. V# g1 m0 k G
int temp1,temp2,number,end,i,j;- O" Q0 h5 q" G: M
printf("original array is:\n");3 ~* l& d2 p0 K5 Q
for(i=0;i<10;i++)0 j; V7 \( `# w( H
printf("%5d",a);
& b, m A9 J) e: @printf("\n"); l) t: F u3 S& L2 J3 }) D
printf("insert a new number:");
( P$ [9 B4 G7 d7 P* l# m; S/ K0 ^scanf("%d",&number);
" P g F, m. S1 W# q( m9 lend=a[9];* h# d' F* i2 X( _9 [4 A
if(number>end)' `0 x0 y" S+ Z; `$ `
a[10]=number;
8 c2 D0 @0 m# g2 o; k3 Yelse
' q, ~2 I" F4 w7 T {for(i=0;i<10;i++)
) ^! r% h* m. C { if(a>number)
- |" [# t2 {1 J {temp1=a;
/ C9 f9 K% O/ H' t4 r3 p- R6 U1 N a=number;; u: r' p6 p6 y& U
for(j=i+1;j<11;j++)$ f. } k9 h' Q) O
{temp2=a[j];% @1 S3 `, y" x4 r7 o
a[j]=temp1;* N, s1 O6 }% w4 p+ r! b* y
temp1=temp2; ?3 g; g# o' r$ O4 f
}
! l. o# Q5 P9 } m. N% D break;
- J2 l4 [; Q6 ?$ }9 r }
# E, `$ g5 O2 t D1 Z6 `; O: \ }
1 f: B+ r& H. s8 ?}
4 h7 M L0 D8 i( b `! U; `- {for(i=0;i<11;i++): L" } W# f# S/ q
printf("%6d",a);
. [; k! A% i: m9 H" z$ `. |7 }}
9 W5 q7 f; ]# x0 Q8 j==============================================================5 t& O+ z9 ?; i, J# S
【程序40】
: F1 a$ {4 }' ?+ a. |题目:将一个数组逆序输出。1 c6 {- q' Y0 r$ |
1.程序分析:用第一个与最后一个交换。
( j2 {& @$ v4 p' \8 Y2.程序源代码:' M. Z. ^" A: B" K7 B( A4 o
#define N 52 j% \; t: p L# @& Y
main()4 g' Z7 h1 Z! l& C3 J
{ int a[N]={9,6,5,4,1},i,temp;; {: D+ R' w( r7 V/ d5 u/ ?! |1 s, ^ F* V
printf("\n original array:\n");+ S- R$ L6 `4 J% c/ H
for(i=0;i printf("%4d",a);
2 [( U. ]( N L: J for(i=0;i {temp=a;3 N L9 \/ C5 ^+ h4 B
a=a[N-i-1];$ ~, r+ k8 M) \: g4 {6 i' S/ s
a[N-i-1]=temp;. C2 }. Z' L+ s, |
}
' V! h2 E, F$ e0 k3 Y2 {7 ~printf("\n sorted array:\n");
/ y+ @1 L4 T& m3 afor(i=0;i printf("%4d",a);$ u: P" G8 a& `) Z
} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】 " x) g3 W1 t: |# D- {7 x+ p: K
题目:学习static 定义静态变量的用法
4 ?" j% f6 ^* c4 c1. 程序分析:
' p! P3 c* ]/ \( L5 m4 N2. 程序源代码: ' {9 I, g$ e( d, h7 A
#include "stdio.h"
6 q+ W! Q9 z7 C0 B! _- rvarfunc() , }! D2 {2 q* N3 S0 s0 G
{ , m# O# W. e3 y4 w) x& C8 ?
int var=0;
; _1 u. Z" x6 c8 C0 bstatic int static_var=0;
" r+ [/ C- n2 }' K' A3 E7 hprintf("\40:var equal %d \n",var); 6 ]) i# l. \% E! m2 J
printf("\40:static var equal %d \n",static_var); $ x% X3 r" B3 u- e( \
printf("\n");
. I- P2 O; y/ w9 w' u& Hvar++;
; G: }4 s* a/ [% z7 \" Z( W! Cstatic_var++;
( W7 u* U g/ \% }, M% z} ' D/ {& ~7 T7 l* T2 N! e* n% {1 ~ n
void main()
- v+ \/ m2 _+ |3 i1 J{int i;
: ?' {8 E" ~* ]2 w0 H" n8 e1 w' lfor(i=0;i<3;i++)
[- |# {& q6 O9 P# p. x2 hvarfunc();
, Z/ [7 F+ _$ \3 Z$ z+ W( D}
\1 O. O1 i( m% V5 R6 {+ v' g==============================================================
7 M9 r0 ?: `8 ?【程序42 】
! T+ q" v% ?9 p+ I" a o题目:学习使用auto 定义变量的用法
- q8 p" \: C* l' j3 N1. 程序分析: / O% L/ G7 ?8 u7 M; \3 ^7 H
2. 程序源代码:
+ @/ A7 j$ _ N" L! ~#include "stdio.h" ( n7 Z0 L, I7 A! s) `( x( r
main() 3 ~3 z* r7 p. I( V0 H
{int i,num;
5 B( Y8 @/ d, t. h" a mnum=2; 4 i; ]. l+ I- m- W/ u! r" M3 V
for (i=0;i<3;i++) . [% p( S* E+ q9 g
{ printf("\40: The num equal %d \n",num); - g. S q0 P9 i8 ^( k1 p- y
num++;
" X* N* A ~$ b% r2 g{ ( H3 b- m* {" c4 Y& m
auto int num=1;
2 G6 N* Y: k6 v- T$ @printf("\40: The internal block num equal %d \n",num);
J% L1 z$ U3 P6 R& {& v0 T' dnum++; + Q6 W9 g+ x* G% D7 f9 p* o
} / X. _& b6 ]3 R) O* H
} Q7 L8 o& e" N& q
} 7 P" U, \: @" s1 Y" `
============================================================== 2 V8 E2 c1 `) ]9 c" r
【程序43 】
% y7 Y0 b" Q6 j& z5 H/ r8 g+ c题目:学习使用static 的另一用法。
- f: c4 L( r( @: X1. 程序分析: , q' \- m0 J A+ n5 b
2. 程序源代码:
$ W5 A+ k' G( s" I. J1 Z9 `#include "stdio.h" / I0 K1 i! i3 H8 w7 ~( V6 S! S- Z
main() 7 s5 m- `- ?, @, M2 D; Z2 S5 F
{
( B! G5 D2 f: E- t3 b+ tint i,num;
- `; C* l/ R; c6 k( Y2 Rnum=2;
4 ]1 t& D. _# B( U H9 ifor(i=0;i<3;i++)
* |$ P" ]8 W/ N2 n{
8 d! G' o5 |1 F. s( j9 d1 xprintf("\40: The num equal %d \n",num);
- u; T* [0 s" m# `7 bnum++; 1 g. M1 b( L0 Z% X/ N0 H* }! l
{ 4 x! n1 T6 {: k, f8 I0 ~) J
static int num=1; 9 W, ^5 b. t! `! v- J; A
printf("\40:The internal block num equal %d\n",num); 0 o) D0 D# U1 T- y/ ?) o$ e, F
num++;
+ c6 e `" I0 s+ t' E3 ]} , j" v+ C8 T" \/ s
}
* a( i1 c3 j8 F& d/ Y}
, c$ b# m7 R! `9 o( \4 Z6 j==============================================================
8 X* U. T: s: N. ~1 G) [* l6 W【程序44 】
+ C$ }6 G. F2 H# ?题目:学习使用external 的用法。 + d; j" `$ a e# X' J. i2 B5 a" O
1. 程序分析:
& B, \- z+ w$ B2. 程序源代码: : ~; g, u$ j" f; S
#include "stdio.h"
0 K: E8 Z3 t! i, N7 r. r/ fint a,b,c;
( n- {* I- R( X D/ Z: u- hvoid add() : h- q8 j9 R8 B3 P: L0 m
{ int a;
3 S* W q8 T" b f8 U% {( b% o: ra=3;
3 i5 d6 N! g# g# V0 Xc=a+b; / Q% v- Y+ R! U" u# _: A0 d
} " ?" r9 f& A/ ]! E, R1 c' R
void main()
8 J! G% R1 w/ |6 \, K6 P{ a=b=4;
. H! s: e& u% l& k1 e8 L* B' madd();
" A) X* B$ {1 | R) F( ^1 n- D- o- H; Mprintf("The value of c is equal to %d\n",c); 4 o2 X) w7 J& }! _7 X
}
4 j2 t4 S' Y- V- l) z/ ?$ k3 v==============================================================
- D/ ~; t4 t4 }# | J【程序45 】 3 }% m! F C( k+ ]
题目:学习使用register 定义变量的方法。 $ B* e2 \; _7 S o$ F! Z, k
1. 程序分析: 1 g% F& h' V+ ?8 x _, `
2. 程序源代码: 1 u) b" N; `( G/ G K1 S/ e
void main() 4 X9 L* T7 J$ j: X2 H/ J6 e7 A
{
5 F+ b R( R G [9 G3 ?; Cregister int i; ) S3 `7 @. Y6 X3 }$ \/ W4 G
int tmp=0; ) ~8 P/ Q9 u" o$ W" d1 n3 O
for(i=1;i<=100;i++) , z+ {, F) E. I7 O p8 [
tmp+=i;
, E+ U' k! u, o2 t) F- n; u, }printf("The sum is %d\n",tmp); ' l. } m3 C4 X6 {
} 7 t! E# q) j2 L0 q4 X: v$ c
==============================================================
/ v/ s9 K/ L: _ L2 U. U; \5 O7 B【程序46 】
5 ~" ^. T5 O' O2 s$ _' M; r0 T题目:宏#define 命令练习(1) 9 R! ~- z# g& {3 [ [! m
1. 程序分析: 3 F# ?- z8 Q7 _/ v4 T! r
2. 程序源代码: , A% U4 I+ s; Q# C
#include "stdio.h" / K4 J$ k8 K& m& Y! k
#define TRUE 1
; E, V' L' a" a S9 N( T1 l#define FALSE 0
/ @3 J" W' [. J) y7 h: f5 Z#define SQ(x) (x)*(x) 8 o- K4 P! s X' S! z( j
void main()
5 H; C* d: h' r0 _8 H! _/ x{
V# v3 T1 Y2 J6 [int num; / Z4 X2 Z1 l5 U8 g3 t F
int again=1;
+ \3 r) T" l i/ m: Uprintf("\40: Program will stop if input value less than 50.\n");
1 c( z% B$ r8 [. W2 pwhile(again) % K% @8 \2 p: p
{
2 S0 @( K; O: Q& j6 D) x: Jprintf("\40  lease input number==>"); 3 G* T+ z2 k1 B: B: u2 V7 y
scanf("%d",&num); 3 |' E5 h9 G, w- R
printf("\40:The square for this number is %d \n",SQ(num)); 1 x X+ O3 G4 R
if(num>=50) S/ ]+ u, X( \8 E& L- t1 M1 n1 r
again=TRUE;
2 ]4 |- d% V7 K( q4 {1 y1 Relse ! L; X8 |2 G% i6 g0 f4 A
again=FALSE;
7 M$ L( e8 @+ C6 N r4 W. h}
. k1 q2 o% l9 k! B) C6 R0 r}
2 o& H# a( s& Y/ S# `8 B==============================================================
' v) E1 ?# U$ v* ]【程序47 】
( t" L, }- F* e8 W+ L$ R& l, s6 }% x题目:宏#define 命令练习(2) # c+ i% S. [# ]* K/ h
1. 程序分析:
* d5 _2 M, M: e/ ~6 D7 O% Z2. 程序源代码:
9 k8 l. P% `+ o9 u! U3 {#include "stdio.h" 5 f$ F. g6 F% @
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
' n" u% e' ]. e! }int t;\ 5 x$ X- `6 x/ ^: e9 E a
t=a;\
1 q7 k" H! P* o# a$ Za=b;\ ) T3 M% z+ C/ P+ D
b=t;\ - s3 Z: R- f3 f2 B" |* W
}
. w! h8 Z7 {& bvoid main(void) % e! P* N8 e6 P* _
{ ' n" v8 H; l+ H
int x=10;
5 l `# ], h$ e) y* U) @7 nint y=20;
& ]- }2 f Q! r# `- @, r: |printf("x=%d; y=%d\n",x,y); 8 ^; d2 |4 y* E+ c# l
exchange(x,y);
6 e/ C8 ^; e: P1 N4 oprintf("x=%d; y=%d\n",x,y); & Q. c: G* y' P( D7 l
} . w3 A; y3 W) w" W* C; M8 c
============================================================== 7 ], j* [8 w$ l4 ]/ C, ?
【程序48 】 ! |1 o+ M5 P& ^; U; t" `
题目:宏#define 命令练习(3)
: e: z# e% Q# m% f$ j! K( w1. 程序分析:
3 F+ _0 w% G% } I) c3 Y, k2. 程序源代码: 0 J$ |% Q" P9 p+ d) o2 _
#define LAG >
v8 O2 t, G& j( l# O9 m' s' Z' c#define SMA <
5 `9 B. S. x" u#define EQ == ' f S; Y" P: {: s |
#include "stdio.h" 3 ^$ o: a. Q3 {$ u' Y6 |
void main()
6 o4 e' ~2 K: ]5 W{ int i=10;
% D3 D; n3 }0 E$ U: T: L. r; Uint j=20; # g6 \4 g" Z' a0 d) X
if(i LAG j)
2 X8 |# e* ?5 y8 Q8 uprintf("\40: %d larger than %d \n",i,j); 5 k: u/ B" I# h- I9 t n$ V
else if(i EQ j)
: R2 z q% W& e: {1 wprintf("\40: %d equal to %d \n",i,j);
I! ]; l- s( E: h: S! f# }else if(i SMA j)
/ E+ {/ Z3 O7 m+ eprintf("\40:%d smaller than %d \n",i,j);
, Z0 |) U$ @# Q- [6 i" Xelse
. J+ N9 O! M" K# [- eprintf("\40: No such value.\n");
4 t# C+ J; a: A' u5 K} & ?. K* m5 }$ Q
============================================================== 9 p. k2 r% b6 A0 V4 L) I0 g
l: K- X! p0 c" z0 i9 c* i- O e
|