EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】
- ] `2 ~* ?4 ^题目:求一个3*3矩阵对角线元素之和
, U' u# z# v# P- g1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
5 I. v) u$ ^1 p5 z; j2.程序源代码:0 _ |' f w" z+ s/ |+ {
main()
7 f) ]& I1 M" ?{# u. c; e4 B* @
float a[3][3],sum=0; n0 c$ F0 E% W" S! U2 L9 J; G
int i,j;
2 {2 w6 s# }4 z4 a# W# v9 j) o5 Lprintf("please input rectangle element:\n");) l' \1 L/ G# V; W8 p
for(i=0;i<3;i++)
6 ^9 g" Z) p- C+ A. l7 ]; E9 @ for(j=0;j<3;j++)- d+ t$ T3 U% m; J6 k
scanf("%f",&a[j]);
! I# `; ?! _/ W% Ofor(i=0;i<3;i++), n! S( _2 [6 }& d2 ^1 T6 G0 o5 d- u6 r
sum=sum+a;9 _" K9 t% c% j; l" d" K& k
printf("duijiaoxian he is %6.2f",sum);; i9 d. G. {3 ]4 C5 b5 ^. e; p; w
}( z: X/ Z9 `3 P u6 G
==============================================================" Y8 \) y e: P' t: Z5 k7 ?
【程序39】
& h* e7 q- c7 e5 ]* h( {/ |题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。) j, W6 A2 m8 ~/ m2 m3 S
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
' Z6 x) a- T2 V; ] 此元素之后的数,依次后移一个位置。
) X) Z7 ~# G3 R5 f2.程序源代码:. _8 O1 d/ E) V% E
main()
6 z: U' X' o9 V9 ^9 I{
0 |, q. C1 e( k$ I* z3 Q9 N( Tint a[11]={1,4,6,9,13,16,19,28,40,100};0 M4 T/ w" H- a
int temp1,temp2,number,end,i,j;
9 t. Q( u* [/ b- gprintf("original array is:\n");" P9 E. m* B5 w6 c. L7 r- u
for(i=0;i<10;i++)
3 Q' w3 e) } M! ^/ z @ printf("%5d",a);3 g, `& s' u- r! M3 z4 p
printf("\n");# g4 D6 N9 H% K
printf("insert a new number:");
2 Z4 F C% a! m& V: `+ `scanf("%d",&number);+ i1 A$ K8 Y! b" b1 k
end=a[9];
3 ^( ?% _1 o8 i2 ~8 ~+ a5 Zif(number>end)
6 K; n! D/ d& }( r a[10]=number;7 Z& i5 s7 x8 J+ L l
else& o# A# s; X O! g- i' w6 k6 n
{for(i=0;i<10;i++)
m# `8 w7 O0 F, a+ ^ u: w. N2 x { if(a>number)# l3 C" _' C3 @2 t) h. b" M/ m
{temp1=a;
! I( U; Y/ @. S2 ^' b( P: P a=number;
0 f9 q$ L. o) U2 _( ] for(j=i+1;j<11;j++)- s9 H- I4 J( N: e5 }
{temp2=a[j];
5 j, X$ O, o4 B) T a[j]=temp1;) e/ i' g( I5 G+ f
temp1=temp2;' f2 F: Y9 U% c8 t# Z
}
0 f% A0 {' K8 J$ ?5 {2 W1 } break;
$ m: {* Z5 } G0 b) B }
j; [8 h6 y4 ^ }) ~8 Y& k" U! |2 ^# G! T
}
/ q# y7 ~6 B0 W" x# g2 ^for(i=0;i<11;i++)1 P" r9 u2 P4 `6 K/ @% n) r
printf("%6d",a);
& j6 ~0 K8 M u( C}7 |3 T2 f" X; {6 q1 Z
==============================================================% U) r2 e8 H) [9 @: ^1 z
【程序40】' L3 W; A7 z+ c" c
题目:将一个数组逆序输出。
6 ]4 \) o* Z4 v% r1.程序分析:用第一个与最后一个交换。& Q7 Q2 M9 D* C$ @! E
2.程序源代码:% Y o& v, @& d+ L) b0 }
#define N 5
* t1 f+ \, C9 z9 o9 _) Dmain()
' C Q* W# N6 `9 x: {6 q( n* u{ int a[N]={9,6,5,4,1},i,temp;
5 W' s2 C" f0 g& s' z3 d printf("\n original array:\n");
: s, z) N& n/ l3 K ?/ H. w for(i=0;i printf("%4d",a);
9 j+ U3 B L& ]- G: t( P- ] for(i=0;i {temp=a;
# H) l+ y! }% `& r( } a=a[N-i-1];& e! Z* r- U; M9 F7 z- q. V4 v
a[N-i-1]=temp;& P/ n& | J/ _+ z6 W5 P
}7 _( h/ f$ r; V. _4 m; [+ ^1 G& Z2 ? U
printf("\n sorted array:\n");% x u$ \6 }7 P4 d R$ e& k
for(i=0;i printf("%4d",a);3 X% ]' H7 o% q9 Z! S
} 【程序41信盈达 嵌入式企鹅一一起呜呜吧久零纪要 】
. y2 r$ u( d( X题目:学习static 定义静态变量的用法
3 O4 {2 W2 U! S9 s1. 程序分析: : F' c* Z8 G) k; K
2. 程序源代码: / t( N# L }+ [6 E& j/ z& K/ d) C
#include "stdio.h"
0 g& y1 Y9 q; g. o" o3 b0 ava RFunc() : o' m t* w# W4 d* R
{ X" B+ y% Z i6 x s
int var=0;
4 q3 z% V7 Y. Q6 w" Cstatic int static_var=0; 6 Y) q& V7 S1 V2 Z* _' v$ k
printf("\40:var equal %d \n",var);
& p' B0 ^% t- Z# V" Tprintf("\40:static var equal %d \n",static_var); % B; K; ?8 H* U3 G, u% F$ ?- N
printf("\n");
' ^, l* i6 J7 {2 Q( Z8 k# }5 bvar++; ) Q4 [. [- c v. }
static_var++; $ x+ j7 T: D+ U8 b! S6 y" c
} : q" m, S+ S; j3 L; }& I8 a2 ~: A3 [
void main()
$ B$ I, |1 x( w% o* b{int i;
6 t i1 S1 E% A" Vfor(i=0;i<3;i++) - m4 Y0 e" n" y) a* c, Z: }0 ~
varfunc(); d, U$ l- a, q* _4 z/ |9 k* f
}
; O4 Q- o w. W5 A) W% @ U% K============================================================== : p- _1 f! r: S- a
【程序42 】
, r' q; O1 H8 x+ z0 x2 ~题目:学习使用auto 定义变量的用法 & s9 C. A k9 q6 w! o
1. 程序分析:
+ ]& W( P8 P5 \5 H" @6 Z: k2. 程序源代码: * \& A' E( ?" U0 W1 k
#include "stdio.h" 1 y( `8 Y. b! S& c
main()
# c2 Y" _, n8 ~{int i,num; $ d) H f, j; A, |
num=2;
8 \& r" T5 q/ y4 Q+ H! `/ z' Wfor (i=0;i<3;i++)
1 |, I( c) ~8 Z1 x7 `{ printf("\40: The num equal %d \n",num); , w: p. z+ V, H" p" O
num++; + o& x6 u3 m% f
{ 2 M' t7 Q# J! d( H) e
auto int num=1; 0 J$ p+ J% c& W/ V5 t2 @ F
printf("\40: The internal block num equal %d \n",num);
. X& g4 w$ i* M2 T1 q* z# [num++;
+ y3 t( I7 k! ]}
8 W9 U3 W! }+ i8 x% D; M; |- N} ; @7 l$ e P4 \: c
}
/ t" X$ S9 h1 Q: D2 Z, ^# j$ Z( ~==============================================================
g8 f) f1 D+ H* c【程序43 】 8 }/ s) h/ V+ d U2 f3 v
题目:学习使用static 的另一用法。
. @% Q! n4 ?' M, ^) F$ K5 ~1. 程序分析:
; l& R5 ~4 N q7 s2. 程序源代码:
7 p# k# j" Y' J" W$ V7 R. O#include "stdio.h"
3 m$ J: E$ q8 }' G5 W+ Bmain()
9 {4 k: A/ K2 z- _ _{ ; x: j/ r# K1 m1 c
int i,num; 9 e8 w) b7 I5 H4 \3 N; S* ?, }* V
num=2;
1 R1 f4 l, P+ Hfor(i=0;i<3;i++)
B- z" k# Q1 X$ f{ 6 D" T- U! j$ m ^" M$ m
printf("\40: The num equal %d \n",num); / x2 V/ Q8 a# l5 p
num++;
3 |$ {; F. N z{
9 d2 l* R+ g/ w; u; S9 k! U5 Cstatic int num=1; 5 n. s+ }! M, Q }! Q5 @
printf("\40:The internal block num equal %d\n",num);
o9 O( u6 O1 ~5 F" @, ^3 W5 Znum++; ; `( C; F$ Q( u- H. F
}
; n2 X; U# N: B2 w b8 h& Z} " g/ D Z$ T! ]
} & V# N$ p2 r/ M; Q C0 i
==============================================================
9 e9 p* y3 ]3 V, k6 U【程序44 】 3 O' |) v! |- ^- L5 y: y; [5 _4 Z- V
题目:学习使用external 的用法。
; n8 u. W5 {1 ^ D1. 程序分析: 2 a1 S, t% l7 V! Y
2. 程序源代码: $ |. U( ], {" ]: u: W6 x
#include "stdio.h" " y- i7 s8 g( `
int a,b,c;
6 K' ~* F( {$ z1 J+ pvoid add() & ]3 ]3 C7 r: W
{ int a; " U! U" R( |" h! G& G/ _
a=3; " ]3 X" d E. ` ~
c=a+b;
9 D6 _) z0 w, m6 }* e" h+ s} 6 ]% n/ T3 W7 N
void main()
4 N: F% z- I4 L# [{ a=b=4; & I* g$ R; j. ~7 s( j ]
add(); 7 Z) Y: V+ L7 u/ Y+ [9 }( D
printf("The value of c is equal to %d\n",c);
( T* S5 B1 [5 n: I& p( k! p7 ~& I}
' F& ~: ~( ^; a/ u- S0 r==============================================================
) c% R2 O5 t2 w( |0 |【程序45 】 + D# s9 x$ c+ y$ ?$ e
题目:学习使用register 定义变量的方法。
( Z1 n* }& e5 u1. 程序分析:
6 _7 W2 x! F7 V4 e/ [2. 程序源代码: $ d, {" n2 x2 n3 @! M& I
void main() $ s4 T+ K* S4 F8 n# N8 W; ~
{ 5 n W. L3 U+ r( j. ^; c
register int i; / N0 F! F. P% \8 p( L5 r
int tmp=0; 8 k* Z4 a' l5 N$ Y
for(i=1;i<=100;i++)
6 {( M `/ Z0 @9 O* c) b/ gtmp+=i; ' B3 ~) j/ H5 I9 H T' u3 @- P
printf("The sum is %d\n",tmp);
9 K' i! Z; ~1 Y3 d2 w7 v} 4 ~4 _1 d' Y! H5 C- b U
============================================================== 8 B1 Q& j" [6 a& B0 ~
【程序46 】 1 ~* F# {1 \: P: u
题目:宏#define 命令练习(1)
7 K! ~1 R; N0 y$ H. ]; e& [1. 程序分析: ~5 o2 t2 M$ `$ s1 i
2. 程序源代码: & ~4 \0 _' ]# V$ q
#include "stdio.h"
% r3 u) L: j$ l# C9 o#define TRUE 1 - F2 U8 Q2 i9 `% D; B; r" Y
#define FALSE 0
4 c6 Q7 K% H; Y( |5 S9 r+ n7 s#define SQ(x) (x)*(x)
6 m! u* y: Z' G% \void main()
' T% ?' G: o- x# ^# {- w{ # X# F; }/ f/ m+ i( @" w* ]4 ]
int num;
( R/ ~2 s5 g. O9 H1 Mint again=1; : X) r0 P: ^( g! C
printf("\40: Program will stop if input value less than 50.\n"); # @6 S: K" f7 v2 ~+ a$ z) D" P
while(again) ( K; |3 g0 W; n! e U, r! p
{ / `8 }/ Q. }6 ^& z2 n8 {' V
printf("\40  lease input number==>"); , } C$ v9 ~; w
scanf("%d",&num); ! Q1 q8 h/ ~* @, i
printf("\40:The square for this number is %d \n",SQ(num)); 3 f( `# n6 n g2 u7 u; M5 l
if(num>=50)
) Q& Y7 F0 x0 K5 ~7 Wagain=TRUE; + x- Q' b9 m5 h. n% ~- |; H* x
else ' F# N0 V6 I r7 Q& C
again=FALSE;
( b4 I6 z, k/ C4 y* k2 d} . `. }. d' S3 F+ P/ q
}
6 m( U6 H$ W# J' I% C============================================================== " W( v8 m1 m* v; F" { c
【程序47 】
8 U; ^4 S* z( I" W% [% i- n' O题目:宏#define 命令练习(2) 0 R2 q2 e- p5 K& x3 ?* D3 r* f
1. 程序分析:
9 P: O/ I5 X% S! ^( n2. 程序源代码: & d. s9 a T: O p
#include "stdio.h" 4 p6 ^4 H( A6 M/ p* t, i }
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ 7 L$ C+ M. s A/ |+ C0 {
int t;\
" S/ c+ E1 L2 A1 C) y# M) Ct=a;\
- `( w. H6 u+ i, A% q# H4 l1 `& ja=b;\ 8 v5 n) J$ S3 Q' ^& Y4 o/ t; C \
b=t;\
6 {8 F* ~5 s* V+ [/ P} # ~0 ~$ O8 |, T* e5 X# }. K
void main(void) * L& X, A4 U2 g
{ ! K) C4 u" S9 i; H
int x=10;
' k; `/ }- e3 Q. y: r2 i2 b7 Tint y=20;
# D/ J( m- X% ^1 s( t5 A kprintf("x=%d; y=%d\n",x,y);
' ], d& `0 L1 z" k3 f- zexchange(x,y);
$ ]4 x$ d Z$ a, tprintf("x=%d; y=%d\n",x,y); # L( r, U* p1 F q+ I& i! l
} / v& n9 z) u. r+ ~5 q2 I$ {
==============================================================
8 }: y6 v& W$ c4 ?) I1 U) j: Q【程序48 】
L o: y, @" r$ ^ S题目:宏#define 命令练习(3) 9 ~) q; y( N3 A6 ]! S2 l
1. 程序分析: ; D( }* H( ^9 u `7 V7 j9 Z
2. 程序源代码: 5 t, Q0 f! m+ ?1 E; [& v4 Y/ I$ Y
#define LAG > 6 n3 l& u2 H3 f7 N
#define SMA <
/ u* \* l9 c Z" @#define EQ == . Z, c+ h/ R, K9 J
#include "stdio.h"
* X2 d2 T& V3 I/ s9 y" C2 mvoid main() $ n0 Y& X, [# j* z
{ int i=10; 2 A! q! {$ R9 j% Y$ d
int j=20; ; _$ G" U9 P. M" M
if(i LAG j)
8 w2 Y: [: ]. y2 }5 ?printf("\40: %d larger than %d \n",i,j);
2 l7 I0 W& s' S1 X, f% U* Telse if(i EQ j)
4 u" Y2 y$ e" T$ O7 eprintf("\40: %d equal to %d \n",i,j);
' ?4 W6 m2 t& E. W- Z( eelse if(i SMA j) # l! d% f# F- B% Y0 i( K
printf("\40:%d smaller than %d \n",i,j); & K5 x. F% l n1 e/ l4 j' d% A
else
3 \% O. o: c K' Y6 U( A7 Q1 \printf("\40: No such value.\n"); 2 c% j) {4 O; E: T' I
} 6 Q6 H4 _- F- J* Z* D/ m X: i
==============================================================
; o6 }8 W' k1 o
6 r9 @' f! Q2 C |