EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】
7 N) c" i t# r) w0 k题目:求一个3*3矩阵对角线元素之和 ! P. p: U, T) V- m
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。. v* T* G0 c& [' _
2.程序源代码:1 z/ C, u, U" z1 Z) s1 M& y
main()
6 d8 u: F8 l8 a{) w s3 b& h; y. }3 l
float a[3][3],sum=0;
' W5 m$ W6 z. t# ^0 v9 Dint i,j;
9 P8 h3 ]4 E" Z' xprintf("please input rectangle element:\n");2 R1 o4 g6 d3 N* V* J
for(i=0;i<3;i++)% B% `4 h( }# f( d# S* o
for(j=0;j<3;j++)
5 d; X- W5 a# k- r. X' E2 y scanf("%f",&a[j]);' I2 i% B" M/ r9 g# ?1 t
for(i=0;i<3;i++)8 l1 N4 \5 j" V+ L/ V* i4 M
sum=sum+a;
+ f$ N8 q$ B& _1 O& P( `) X, Rprintf("duijiaoxian he is %6.2f",sum);/ c9 X( Z7 w& |4 {' n9 [
}
7 |( v9 K& r0 n" p& x% w! `- Y==============================================================6 J( w, {. i) V2 o
【程序39】
) z) h8 x- F+ K( z+ K: r题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
g# x* n0 T: _ k& n1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后7 V1 l1 W+ Z: ?6 |4 c6 ]0 ?1 J
此元素之后的数,依次后移一个位置。 ! r3 v1 J0 b W i, T4 p8 z( k
2.程序源代码:
1 n7 |1 H6 e& umain()
7 r: `# S. C$ n. i/ n{
6 h3 Z2 q2 q0 G, r# I0 V8 g: tint a[11]={1,4,6,9,13,16,19,28,40,100};
7 v8 M! X5 H \, oint temp1,temp2,number,end,i,j;: }5 O( j! C7 m4 u' V- l# w; e
printf("original array is:\n");
3 B5 m& V) h8 Q+ H% P( v, a+ k( Nfor(i=0;i<10;i++)! n9 t6 C! X% ], f4 `8 p5 b) W' Y
printf("%5d",a);8 ^- y+ `9 e7 {- q# }* F
printf("\n"); h/ m& e$ N+ a6 G3 F) O( C3 b( e
printf("insert a new number:");& n% E$ e2 i$ `) I: N
scanf("%d",&number);# C( B$ x# ]6 y. C
end=a[9];8 G" `: B; M* K2 y9 G K
if(number>end)8 t1 X/ r( O: d- x
a[10]=number;- r# C0 D/ i q. X+ }
else
1 b- _# i4 Y, [4 R E- K {for(i=0;i<10;i++); w- \5 C i' t. r
{ if(a>number)
* D, G9 w- |9 T {temp1=a;
* @: w% _: Z f' d( e8 B( P a=number;6 |0 h t5 S0 f) L
for(j=i+1;j<11;j++)3 H2 Z0 m" D+ ^; `
{temp2=a[j];3 [: H& I) P! u' Z# N. C+ n, @/ N: G
a[j]=temp1;
3 ]( D2 W% Q0 A" C, R- K' R temp1=temp2;
$ D1 N& O3 ~& S1 e% S$ l9 s }" E5 _: m( Q% j$ u2 ^
break;
% B9 P% I; x4 a }
" K4 J3 y% o6 R" _3 m- H }" ~% R$ a9 z2 r+ t
}
# ^& t( O' Z- B9 Zfor(i=0;i<11;i++)! ^* g$ b0 J% r! b
printf("%6d",a);, a+ p9 h" y6 y5 ~# c' d
}
/ R6 M5 V1 @% n; K==============================================================) j# Q" F( \0 |6 k I6 r" d
【程序40】9 S5 @$ Q8 x k* |, ?1 }
题目:将一个数组逆序输出。* O0 b9 B' |$ B; ], G6 V
1.程序分析:用第一个与最后一个交换。
0 r1 y: G: u! W3 Q3 a+ z; I& J2.程序源代码:+ Q X, c* j. A+ G; `
#define N 5
! H0 H1 x/ G7 Q/ n$ nmain()
! q: [/ @) h2 e$ i- y7 a5 s2 h{ int a[N]={9,6,5,4,1},i,temp;
8 x' U5 C& q3 R" M printf("\n original array:\n");
& S- F8 [' M+ f a2 k$ Z for(i=0;i printf("%4d",a);
; R5 M# ~. P `7 U for(i=0;i {temp=a;/ c0 O7 K9 _& y" U, q
a=a[N-i-1];- e' I/ b, o }- d- C K' Q. w
a[N-i-1]=temp;# I+ c6 G' N9 E5 U, K7 g" l _1 k( ~
}
; ?7 A% b" U8 _5 H4 pprintf("\n sorted array:\n");
- ?" F. N$ Q# G* t* Vfor(i=0;i printf("%4d",a);" V9 A! a0 ~% i# j \
} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】
! O2 ]; ~! r# s( K& D题目:学习static 定义静态变量的用法
4 _; X. b4 b9 L, w* \5 w% E) O9 O& P1. 程序分析:
2 N! E3 U F6 @+ ?% s2. 程序源代码: & P3 g& \% a) J
#include "stdio.h" ; n1 B; d/ i* l" _
varfunc() 7 N8 W) Q8 }1 B2 r% V% b
{
7 U# E/ }/ Y* _- d% Gint var=0;
9 y5 Z* Z/ D9 Y) Estatic int static_var=0;
, y. ]" g2 k5 r6 C6 {5 e c/ {) @" aprintf("\40:var equal %d \n",var);
: f; G4 n$ Y5 }! \6 [printf("\40:static var equal %d \n",static_var); 5 w: i. U! r; u7 p% P, V
printf("\n");
3 {; ?: z" n! bvar++; . b e5 U# H" `
static_var++;
" x; N0 w" @1 A. v% B1 J% U. p} & ~: }1 t c: ] A6 y# b0 L) R9 g
void main()
) {, Y, s* i9 A: j1 l, v9 ^2 m{int i;
$ n) M: \( R/ C: nfor(i=0;i<3;i++)
% O6 {' ?; e7 y1 bvarfunc();
+ c. ^4 `& O& l8 |} 0 m6 Z' T0 a4 j$ L1 ]9 ]" m# H
============================================================== : R0 z- M1 Q9 M1 k; {" ]7 d& F' U" `
【程序42 】 3 ?, }" C- o; o
题目:学习使用auto 定义变量的用法
6 b* q7 z; w" ~: H1. 程序分析:
; E: Z q# h; j% B2. 程序源代码:
" l. g5 ^2 c: F#include "stdio.h"
) a( m: j: N4 x/ k D* Imain() / n3 ^: }, t1 [, l( O) V) n
{int i,num;
- j# n. |0 S* G5 Vnum=2;
0 ^* v$ _( t$ ^8 I/ |4 J5 T6 i3 `for (i=0;i<3;i++)
& f9 T8 v1 ]! g% b$ O n# z+ v3 O{ printf("\40: The num equal %d \n",num); ! I! e0 ` Y* W7 o5 z5 n' `, L
num++;
2 Q! w5 Y7 C2 d: [+ w$ y4 R) d{ ' e0 L+ Z% X/ q# \/ x/ G$ y
auto int num=1;
I- }# i- T; r/ F/ l/ n; G! lprintf("\40: The internal block num equal %d \n",num); 0 h0 f+ s0 ^0 [
num++;
$ C, H0 o* F8 ]1 a7 _& _4 ]}
3 i R* M; u T I% ?} 1 M1 H% W) O! h0 ?5 n
}
% T, I. u0 P1 u9 ^/ b============================================================== + @4 J M: E& X4 {* H0 e3 G
【程序43 】
6 ~1 P& d# y" B0 T, x; |# ^5 X题目:学习使用static 的另一用法。 9 z( q5 @+ m9 }2 H) p4 X$ Z
1. 程序分析: ; x; [; K6 M) N# y" J1 [& H
2. 程序源代码:
. K5 P& {1 x7 m6 q#include "stdio.h"
( \! e/ W1 V* J' N0 O0 ~# D9 @main()
2 j: I8 Z; c( P! W{
4 }1 H, A1 P: }& T2 Bint i,num;
3 {% P4 S5 i: H% C. P& ]6 Inum=2;
: E! u! y0 P5 }for(i=0;i<3;i++)
" C5 S% A8 `9 x8 g. V) E, s{ ' O! B6 O8 l# W7 f3 l" n
printf("\40: The num equal %d \n",num);
# W9 p+ e& R8 {num++; 4 t2 O7 C1 c* g
{
; I& w: D2 z# @5 c) Vstatic int num=1;
6 [! @: b8 e8 m. o Uprintf("\40:The internal block num equal %d\n",num); 4 T0 ^' F- c# t8 e+ {" P# ~
num++; , e; m" w F, j2 P" H P
} ' v9 a8 \5 X1 c: y7 s% t4 p
} 5 M$ Z+ ]) i1 q0 w& ?
} 0 h0 g. b. ^* m Z
============================================================== ' ?6 O& U8 {! x% n
【程序44 】 / f7 \1 J7 U2 n% q' v% i: L
题目:学习使用external 的用法。 0 o# c3 [! j% {- U2 G
1. 程序分析:
$ n0 r& J% V* _3 h2. 程序源代码:
, o4 j3 u( t3 I8 V' J6 T#include "stdio.h" 5 |, X, x6 J! u" D3 m( A
int a,b,c;
K. A/ s' J* P2 K9 Y( h3 @void add() . _+ J j( ~4 y: [" y
{ int a;
* g2 U' z& E! J0 w% U! a! a( s, Ca=3;
) T9 t7 d* k8 ], g$ M. Wc=a+b; " o3 ~/ I3 D/ t6 A" C- e
}
6 I+ [! t+ Y9 f1 y5 M* D" S' h5 a8 Tvoid main()
0 X3 O; O3 u- ]8 Q" C{ a=b=4; ; x; u7 _& _( y+ o0 d1 _ D* e, S
add(); . V7 b" e7 P/ k4 b) j
printf("The value of c is equal to %d\n",c);
+ Q% F6 }1 T* J: o7 u}
0 m8 u% G" j# ]+ C4 O/ }8 b& R==============================================================
. D" }' R0 |4 o! n3 d$ A5 E【程序45 】
) i( V/ e( V4 m* l; R# h% v题目:学习使用register 定义变量的方法。
! d* T5 l' F$ M0 i6 @1. 程序分析:
% L, I' R6 O) K2. 程序源代码: + H4 G7 q( o7 w" f1 l
void main() G# d# Y6 Z' w0 W9 U( O
{
# O* z* F. E1 b9 H. nregister int i;
# T s+ P$ X; s9 I# Y; k4 j- @int tmp=0; 4 o; C# Y( ^7 [' {( q+ O
for(i=1;i<=100;i++) + Y- y6 A$ _* v. K
tmp+=i; ! _' Q3 O' J% n# x6 ?
printf("The sum is %d\n",tmp); : F( c3 l% A f3 i' C
} . X8 Q } }3 ~8 w* y0 Y5 E
============================================================== . C, h& x' I/ ~) E9 P1 ^7 G0 h
【程序46 】
: Y, i) ?7 e9 T: a p; ]& Y3 U题目:宏#define 命令练习(1) 7 K8 Y7 Z. ^7 Q& X; R3 ^8 w
1. 程序分析: + s4 v% u8 d, r! c9 f# n
2. 程序源代码: 8 U5 a) Q; w; K
#include "stdio.h"
9 E9 A; [& c- f$ A$ b#define TRUE 1
2 _5 m! _) y: [9 v#define FALSE 0 - z/ b& o$ [9 r3 `, i }# v
#define SQ(x) (x)*(x)
. B! }+ ~2 D0 I0 V, Ovoid main() $ y2 Y+ a4 [' M1 h# _8 s
{ S1 `! C; M1 K7 r r
int num; , [/ d$ X4 c7 P+ ?9 o0 S& t
int again=1;
- j' I' b1 L- o# Sprintf("\40: Program will stop if input value less than 50.\n"); 9 f2 d/ v5 ]- u; Y2 U0 s
while(again)
; h) e I+ {$ d) p4 G{
, E5 _) V/ ?* D9 x+ n6 c& Eprintf("\40 lease input number==>");
, N* V2 e% C% t Kscanf("%d",&num); t& u8 b/ N E) W6 |; T
printf("\40:The square for this number is %d \n",SQ(num)); % R* P9 l* Q N' Y
if(num>=50) 1 b; N3 t. f3 B8 \0 n% ^. U
again=TRUE;
U* D$ o* z! I$ v1 ?2 l' b T* Relse
! O! B7 e6 j( ]again=FALSE; " \) A! G- ^; ]$ F
} & {, K8 Y8 S3 ]1 G2 Z( `* J9 ]
}
! [# i1 h4 V( H+ p& F+ v============================================================== + Z. {0 S, ^+ B0 ?; z
【程序47 】
# y8 w: L% \0 Q6 f) e) I题目:宏#define 命令练习(2) . Q* `% j$ p. }1 K* |% k( |. W: K
1. 程序分析:
$ R5 b' C4 z3 V$ s7 t: }2. 程序源代码:
% G4 _! y9 f7 N; _; D% d#include "stdio.h"
+ G N$ c- M" c- V; s7 _* ~2 @#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
" K( I( t$ ^* E& U. o4 rint t;\
C2 _4 Y) Y4 b. t' k' }t=a;\
! W6 \' K+ F' c1 V/ La=b;\ ! x5 t3 T, ?; f/ Z4 m$ ~7 O7 y
b=t;\
5 G) j" v' g3 d* T1 j" a* W}
c5 E" H8 W* A2 H$ xvoid main(void) , e( ~6 U( ]( ]4 [6 t. |6 @
{ $ F3 J. a x+ C; p: q. C" H5 F
int x=10; ! I. ^/ n& E( z) B
int y=20; . s9 b5 {5 x- N
printf("x=%d; y=%d\n",x,y); + W/ H$ `" {: z3 V
exchange(x,y);
9 J/ R( w2 p, }printf("x=%d; y=%d\n",x,y);
9 M! J0 r. J( _& n H}
" }) Y7 E8 s- ^/ O0 T) v==============================================================
) l# U: V: B. y' o$ {【程序48 】
" ^) n5 m0 _) z m$ |9 H6 ]4 g题目:宏#define 命令练习(3)
/ G, K8 J% g% D+ ]; X1. 程序分析: 9 L0 H+ ?/ u* K5 p
2. 程序源代码:
7 u/ A' z% y1 Y+ T#define LAG > : W/ u, f& E7 |
#define SMA < 6 s) ~- k' C- [/ W7 y" p7 N1 z
#define EQ ==
4 ~8 T- o0 J; J. l& C, v#include "stdio.h"
0 B0 v# y) l' Z0 x& ?1 Y+ kvoid main()
! z9 M" V! h8 i9 J5 j{ int i=10; , K0 M& h S: m" f/ e* d
int j=20;
! o( @9 w8 y, T8 B( |! H. Q$ \( iif(i LAG j) , ?; D8 |$ [$ V9 o4 F6 e/ j {3 c
printf("\40: %d larger than %d \n",i,j);
, c$ O" f4 |* R. d ?) I% U0 u8 Gelse if(i EQ j) " \' Y# b& J: x4 U
printf("\40: %d equal to %d \n",i,j);
/ Y! y0 P; T2 gelse if(i SMA j) , G! `' ]5 L, T' j
printf("\40:%d smaller than %d \n",i,j);
: \5 e7 N, p0 I8 zelse $ h7 r1 t& y" i0 L E' Q
printf("\40: No such value.\n");
$ U5 d1 n# T, O3 Y+ a# ` x p}
* z6 p: \3 e# ~5 X==============================================================
, C" C9 u2 N: D O( |% w9 c( V* [( m- ~ ]0 X5 M" ~, ` {6 g5 Q& d
|