EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】1 q# Y; f- u5 n. H2 w. h
题目:求一个3*3矩阵对角线元素之和
. @- A! V3 ]7 |7 b1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
8 u9 m7 e1 O9 z8 c2.程序源代码:
5 {5 v; i- b* e6 u7 H$ e1 O+ Vmain()
& H2 K( b9 U: k0 P{9 ?4 j" o4 H9 y7 C
float a[3][3],sum=0;
4 D! i5 Y" Y- D* Z/ G9 Eint i,j;
0 E* I( h) L& x9 r% Pprintf("please input rectangle element:\n");' V: q R6 P3 ?% _3 b. i
for(i=0;i<3;i++)4 Z" |& V6 D9 x3 U4 R
for(j=0;j<3;j++)
* _) I/ Q" N0 H. { scanf("%f",&a[j]);1 n# e3 `! e4 q5 i: u9 R3 }
for(i=0;i<3;i++)
& R* x9 W5 S% j2 q7 d; W: G) c sum=sum+a;
$ ?8 f0 B2 D2 N% kprintf("duijiaoxian he is %6.2f",sum);' x* S" r ?7 _# v
}
; J& y* q- O _6 {==============================================================" j7 v4 B0 N! X
【程序39】4 y: Z9 h0 l- n" {
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
/ Z& b5 F& ~ T8 z4 c1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
& T4 J" Y) T' x: H% a$ Y- K7 O" b1 i7 { 此元素之后的数,依次后移一个位置。
, _ j: l, T6 h: y* r7 d2.程序源代码:
1 C+ j( p+ K8 C" ^) h% \main(), v# B+ z/ X& h4 F9 y% t0 D
{! D- H& j0 C" c6 c) h3 g
int a[11]={1,4,6,9,13,16,19,28,40,100};
, g3 l- x: r9 i# F) Sint temp1,temp2,number,end,i,j; I0 n2 [# X7 u4 n; o
printf("original array is:\n");7 X+ @& Q# t6 J3 u3 f0 P
for(i=0;i<10;i++)
. a+ F$ I1 {7 g3 _ printf("%5d",a);
& x! E/ w; T: w" k& Oprintf("\n");1 Z( s h Y, k
printf("insert a new number:");
1 `* f$ G2 B- d6 u- `0 xscanf("%d",&number);3 \8 Y! j+ m7 l- y- T/ ]8 c
end=a[9];- M) q+ x9 i D
if(number>end)
% I- l- N0 v: F! [) @+ M5 ?# r, U; W7 I$ E a[10]=number;
& H" ~; G8 ~: ?4 relse9 |: d6 ^3 [# E1 ]$ ?/ N3 @) c
{for(i=0;i<10;i++)" d( \! Q! ]4 E1 x
{ if(a>number), e+ a0 [$ a: A
{temp1=a;
* Y: h, {; a& L7 E1 p! u) H/ F a=number;5 v5 T( q2 f) U9 k6 `
for(j=i+1;j<11;j++)
$ b8 F. f# ^4 Z$ I {temp2=a[j];
! _+ ^, P2 B/ a a[j]=temp1;
/ L5 I R9 K% L. ? temp1=temp2;
' A4 j! s, t3 ^1 |* T( E) v }
+ v' p6 \: ^/ f break;3 T& h3 J5 D; H- O4 U9 b
}
4 q5 u+ d8 Z9 Y' F+ t }
# P& K5 u2 V- o! L}
g0 a3 ]3 I2 d( t% x! L% bfor(i=0;i<11;i++)
. n% n }' p* A# W printf("%6d",a);
( c) e0 d+ _; g/ R) _- j- | L, V7 N}* t. v/ }0 _: V* V# q8 U5 I
==============================================================7 [- s6 e/ O+ _$ U- p
【程序40】
# R: q) ]0 T4 N8 U5 M( ?题目:将一个数组逆序输出。
8 y' A) C6 X% b3 G- W4 Q1.程序分析:用第一个与最后一个交换。2 c2 v2 O3 z" C9 ]. j
2.程序源代码:
1 m: s3 a! _! w4 K#define N 5/ q0 Q8 q0 N+ z5 l! W" ?% J
main()( g; A/ L% x/ }8 i; D
{ int a[N]={9,6,5,4,1},i,temp;
, ]( u6 D7 h3 i% z8 n7 x7 X+ u printf("\n original array:\n");) c3 ? C+ k- K R) _' r: O
for(i=0;i printf("%4d",a);
8 I u9 E* p0 s for(i=0;i {temp=a;
; k9 d. n Q5 E3 U7 m a=a[N-i-1];2 {5 C6 t0 E8 b' Q- P
a[N-i-1]=temp;& H2 Q7 _5 C' W; E$ x
}
. W- ` Z3 c& c# N. P1 R9 l1 `printf("\n sorted array:\n");: y3 o' s( Y8 |/ T5 T
for(i=0;i printf("%4d",a);
@9 Z5 j$ H4 \: n} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】 ; K' U8 d) I# J# I3 m
题目:学习static 定义静态变量的用法 2 K/ U5 t1 p! p% i9 u1 b0 l' a7 ^
1. 程序分析:
. J2 K2 x+ M4 c2. 程序源代码:
6 k8 w' \: |# |2 _5 ?8 T#include "stdio.h" 0 D& ]9 w. \+ a4 d+ [! [
varfunc() ! m& g4 r! w! q7 Y) H1 q/ Q
{
7 G6 J2 ^' {( Y& ?4 C: vint var=0; ( L$ s( b) I" M1 K3 s1 K" |* B
static int static_var=0;
0 M* i5 j& Q2 e4 a% i4 f( v5 aprintf("\40:var equal %d \n",var);
Y& y. y2 n! J& q$ [" z# j$ I- nprintf("\40:static var equal %d \n",static_var);
* A C! m, R$ A1 {5 zprintf("\n");
, Z5 M: D9 y: D2 S& F+ R+ K% H* }var++; 0 C |6 x* g' F H
static_var++;
* \) T- s1 q; x+ J$ B}
; a5 y; V% G" F2 n7 B5 E! J0 Ivoid main() 4 V o* }( L3 F5 z! @
{int i;
+ }( q$ v0 k& D% }5 ffor(i=0;i<3;i++) + y5 `/ k9 c" m1 j) n& m( X
varfunc(); 8 f0 n; b. _0 r* ?
}
- N/ w! |& o( M& B1 b==============================================================
. J4 ^3 g% X3 S. Z& ?【程序42 】 6 A- ^" W8 H& t, b h( {# b
题目:学习使用auto 定义变量的用法 + L9 l$ L% e3 F7 p$ _1 L# Y
1. 程序分析:
/ u# r4 }8 F) m2. 程序源代码:
, A4 a4 F, [- m [) a6 S#include "stdio.h"
# ]. T4 D5 P" l/ Y- Omain()
9 Q9 H3 z0 Y4 ]8 @' o# J8 [/ j2 z{int i,num;
" ~$ \+ B3 P* Q% p: h( Cnum=2; ( N& @% l' p. p3 T( @
for (i=0;i<3;i++) " c8 h9 p. S' e4 M4 ~1 b
{ printf("\40: The num equal %d \n",num);
& @# p4 ]; i" X+ Dnum++; 7 f: z, j1 r. P* D0 Y- x( w
{ 3 U J% B& m8 C5 W
auto int num=1; $ s9 f% U3 A3 v
printf("\40: The internal block num equal %d \n",num);
$ K3 Z" s) o' xnum++; - s) \* x; j3 W1 ^' j1 `5 _
}
7 r/ @- n7 s" o& Y% B2 n0 P$ [} - I" Q8 Z$ L; Q9 v
}
3 `: m9 j" @! J' a: x. _+ @$ `9 Q============================================================== " z- [: r, ~5 S7 o
【程序43 】 7 a! l# I. K$ T7 O: g- g, D; \
题目:学习使用static 的另一用法。 3 w" j* m& }$ \' m
1. 程序分析: / B: V0 b: d: n; d- N. t' x
2. 程序源代码: # S. ]& M. b0 U: H& f( R5 Y
#include "stdio.h" ) T2 ?2 d, z7 h) C, E' w) t9 u
main() 0 O2 p$ k* r" c6 t. I( \
{ ( y. y' O$ z, v
int i,num; 0 S$ y4 z( \8 d
num=2; 4 t( r0 J% t' F h8 k
for(i=0;i<3;i++)
+ r6 ^& r0 d& O. L# e{
; |, _6 z1 a' x( |printf("\40: The num equal %d \n",num); - s+ k8 O; M) x! ^, \0 H! q$ q |1 M: ]
num++;
" O. I2 `) u7 a: B{ 3 j- Q* Z( D4 ?& a1 C: ^. m( {
static int num=1; 1 u7 ^$ Y/ U1 n6 }) w
printf("\40:The internal block num equal %d\n",num);
1 k3 c# A. l4 o9 Z; J5 p0 hnum++; 7 D1 @& J" F4 S* M. `
} . c! p, i( c' c6 W! B X
}
7 e4 i! n& {" Q# e0 t1 { R} / y( w3 J' _0 w# |
============================================================== % w+ c% ~ P/ Q" x" C! K
【程序44 】
& Y( L! X% I% o! S; f& c; A7 Q题目:学习使用external 的用法。 ' c6 x2 |! S1 Y
1. 程序分析: ) {$ A3 c5 _0 R3 d1 C2 [& b g) V
2. 程序源代码: 9 ?9 l% _$ q4 K- X3 z
#include "stdio.h"
M& ?7 m" J6 J; Mint a,b,c; ' L$ U; Z' ]& H
void add() # G8 \+ k# B4 k3 b2 i; f) q3 z+ a
{ int a; 7 j9 p( m. D/ B' \$ \, c: T
a=3; 0 G2 A; c2 e, Q
c=a+b;
z- E: M6 k: y+ \0 b} , Y: I" ^* C* i5 |( y7 A0 {
void main()
7 C! l2 y- N% Z9 g2 d2 K{ a=b=4; 1 q7 c+ R: |. h3 v! b, l$ f3 g
add(); ' a A+ W( n$ |! I0 j1 ~2 D: W) H
printf("The value of c is equal to %d\n",c); / h) \3 {5 D+ Y7 J2 f4 ~: V2 s
} % k5 c) ^# r% V* `! U
==============================================================
/ y" @2 A1 \7 g6 P# Q- j【程序45 】 : _& M6 L6 d6 n+ o
题目:学习使用register 定义变量的方法。 ! `/ i9 Q+ k2 j
1. 程序分析:
( r# {' Z" Z' T8 Q, z2. 程序源代码: / `% ~3 ^% f9 y- p6 I
void main() 1 F+ z9 H$ o5 z" b, n7 g f
{ & `- d- b0 n5 r4 @5 {
register int i;
- A' O) }+ J. I: z$ B# q& O4 lint tmp=0; 6 w* E" B6 R, [+ G
for(i=1;i<=100;i++)
. H/ J& u, \) i1 b0 j$ Ftmp+=i;
4 ~0 z7 C" P2 P6 }# Gprintf("The sum is %d\n",tmp); $ T8 a j8 d7 D/ |3 m
} 6 p6 r8 Z5 X# j- B8 K" _
============================================================== $ s# v5 y; e# j9 C7 k# Y3 y4 {) C0 D
【程序46 】 # e! R1 \$ ^; E9 @! h+ i/ J
题目:宏#define 命令练习(1) . l6 k+ U# }/ U6 a2 w' @0 v: _
1. 程序分析: * @" M9 G# d- x. O, }6 k
2. 程序源代码: / M' f, R B% u$ f7 U
#include "stdio.h"
1 r) ?1 @4 O# c: A$ ~, J#define TRUE 1 ) D0 i2 a. R* i- _8 b5 @* [( W
#define FALSE 0
' t; g( c- o8 S: c$ Y/ R#define SQ(x) (x)*(x) + q) v/ d- K" l- O+ T
void main()
- P' d9 K. B6 c% Z{
y7 r t8 I( a5 Wint num; 1 x7 d' m: g# l+ X6 a9 a& L% [3 ]
int again=1;
: V% X/ v' f7 p0 L* nprintf("\40: Program will stop if input value less than 50.\n"); 0 P; y' C1 |. z# L% K. {
while(again) $ ~% f# D6 |* f, `
{
/ o% W. O+ p6 I8 X& O9 Wprintf("\40  lease input number==>"); & S" b6 q+ f; ?' y' ^8 E
scanf("%d",&num);
( `* Y' l) D' U T8 N+ Fprintf("\40:The square for this number is %d \n",SQ(num)); ! _, B- b( e. s: \- D
if(num>=50) ; P! a9 U" e* S' l& B& ` @
again=TRUE; 0 _4 k4 ]1 h, ~
else
3 Y- x' a4 o3 ^+ F' ~, X" }again=FALSE;
, \ `. r9 [8 B0 ~( x0 w" x( B$ J2 c}
" h5 C* R& @" I- J; V}
' I4 W# q+ O: k, e7 Z, }==============================================================
1 P0 W* O4 {/ ^$ v" `& B3 D【程序47 】 : v( ]6 w; m- {3 D, _
题目:宏#define 命令练习(2) * l/ C' M- q2 y7 D
1. 程序分析:
% s2 N, B9 C; e0 y2. 程序源代码:
2 e% c( I5 Z( U#include "stdio.h" 9 k: b X! M* p) i* \' _8 Y/ B% }# A
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
$ N* h6 u4 x- u' }) e! m, [int t;\ ( p' _ ]( ]2 O2 H. @0 q2 Z
t=a;\
: u; D2 x2 X, T7 x3 C4 ^a=b;\ & E& X. V- n% ^) k' X" }( L
b=t;\ . F1 ~- B: x0 Z; B$ i4 y4 m
} + @+ o$ @4 K1 r y
void main(void) & P8 L' P; s9 a0 H% G9 ~7 @
{ ) X6 `' U: Y: ~: q7 ~/ O
int x=10;
3 J: d5 u5 `1 R) r) d0 wint y=20; ; @6 E9 j' l+ x( b$ B) v9 @; o. e
printf("x=%d; y=%d\n",x,y); ! G5 A; ^. m. x. ?- W+ {- f6 [
exchange(x,y); $ Z _$ [, H' H* }( S$ s2 t. Z" b
printf("x=%d; y=%d\n",x,y);
# S$ A) z! M1 O+ }9 _; R. Z5 p} 4 P7 r z9 H2 a- y6 l- D: k
============================================================== * n( O& m* ^7 L, e
【程序48 】
* }3 i% |/ n5 T8 C9 ~1 z题目:宏#define 命令练习(3)
! B; ]8 d; {& t' m; J" h1. 程序分析:
# v) L. q6 G& e: l) a2. 程序源代码:
( P. d" w, Q, g: {2 H#define LAG > 3 Q. K3 z2 U; V0 |9 n' u: K
#define SMA <
% x6 G- T5 V* t: @#define EQ ==
: }7 x0 H* Z1 P! X! K! A) w' d% n; J#include "stdio.h"
% p5 Q, |0 y; m5 e; @7 p7 Nvoid main()
5 L& O/ g5 `3 j6 ?& O- p{ int i=10; 5 ~2 N) l! u# B/ v7 F0 ^) ^
int j=20; 8 _& G8 {; U. n% I
if(i LAG j) 1 F% Y3 e7 R' p0 J: I. a
printf("\40: %d larger than %d \n",i,j); 4 t( j0 s; R4 I: J% M% w
else if(i EQ j)
3 U( S! M! ?" ?' K& s- C9 sprintf("\40: %d equal to %d \n",i,j);
9 p1 g! @0 t4 |' t1 {+ X' R" yelse if(i SMA j) & R' N$ L2 d @- j" G9 q4 q4 i
printf("\40:%d smaller than %d \n",i,j);
7 u: h7 W* s# eelse
0 c2 \' w! Q# ^4 Oprintf("\40: No such value.\n"); % h! R; w" W! R E! t i2 L
} 6 _& t5 x# S1 t; M% ?. b
============================================================== - q! G' F+ |. [, c
1 k: s* j* w/ v% o* ?4 `3 K |