【程序38】2 B8 V$ O3 r* A. {: c* _* g
题目:求一个3*3矩阵对角线元素之和
' l1 f& ~. @3 M1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。$ L) f9 h* U: H" L! c
2.程序源代码:! z/ s: t6 l' L& N- J
main()
) H' r$ v, T6 N" }$ R2 u" J{
3 _4 t# }9 G7 |2 H- n% r" xfloat a[3][3],sum=0;! k3 R( ^8 c# Y5 l
int i,j;. \3 q) k0 t; ~" |8 N G
printf("please input rectangle element:\n");
# K9 L/ r5 Q: kfor(i=0;i<3;i++)
" L+ z! a& Y8 ? for(j=0;j<3;j++)
; @* S6 A2 z+ U4 t" x- Z+ \ scanf("%f",&a[j]);
2 `- l4 f) G; _+ B! p; `+ n, ]& qfor(i=0;i<3;i++)
8 P, x$ K, G6 n2 ?* ~) |9 }+ J sum=sum+a;# f: l: S/ ^5 ]; W- k* _3 z
printf("duijiaoxian he is %6.2f",sum);
/ p" ? T [$ Y( d, l9 S$ m}6 g* O3 ]( ] \: i1 O- c
==============================================================
( { C7 E0 l. J; m$ z% n2 [【程序39】
0 }+ I, }& m- E3 o4 e3 U题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
( z" s3 p6 P) d8 V5 e& G5 S' |1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后! c. W* c* X+ u9 \$ e
此元素之后的数,依次后移一个位置。 4 j7 |/ x$ `& n2 V
2.程序源代码:" K* e" A, {$ @ _# j" w: d
main()5 H2 u# t3 l9 l* d2 u1 x: A
{/ y# o0 j, d; x( Z, Q2 x
int a[11]={1,4,6,9,13,16,19,28,40,100};
3 V9 _7 n. L! \; j% \- X& }/ gint temp1,temp2,number,end,i,j;/ I' n0 \' W0 X
printf("original array is:\n");
9 ~) ^, v" H; Y* {# v0 G/ ] L- Ufor(i=0;i<10;i++)4 P& L ~% s' E6 a8 u2 C) ~
printf("%5d",a);
# ]" O6 a3 r( R" g- ]* Xprintf("\n");4 \0 k. |" I( ? m6 ] j3 q+ j
printf("insert a new number:");9 y# s5 O- h6 e+ G, Q4 F
scanf("%d",&number);3 g' x; g0 i: f: ?, z) | O
end=a[9];
; |; N; Q$ _$ Vif(number>end)
6 `" y: J0 Z$ c; o+ O; ^2 L; H a[10]=number;9 b+ E; z' V! Z
else/ k/ A* M; w/ r7 }) s" G7 i% O
{for(i=0;i<10;i++)/ b/ V$ f1 s: B8 O+ a# [% ]0 t
{ if(a>number)
; k N' [2 |3 }) N2 \. b R {temp1=a;
+ c; }( B& e% {$ l" y6 } a=number;
9 i, g' e+ {* ~& G, E8 v for(j=i+1;j<11;j++)& Z9 _8 x4 T$ p( w
{temp2=a[j];% q% m0 Y# G( {0 }8 L8 d2 a
a[j]=temp1;
& Q B ?; a+ h! W2 C temp1=temp2;
4 w# a; b# y+ t }$ ^- n- J, R8 p+ |0 C W* }
break;! V3 q8 C* t! y
}
3 i# F8 E, d# r) a0 G- q1 @* ? }' o0 f- }3 b& T$ E
}. o$ V9 j3 _6 P; i. S1 M
for(i=0;i<11;i++); s$ Y* p* Q3 d3 u+ B
printf("%6d",a);; K3 K0 A' R! D2 b& f6 a9 U
}+ V1 B% ]% Q# t( T
==============================================================
* L; c$ A$ I) x7 Q【程序40】
* W9 j$ P. G# }题目:将一个数组逆序输出。
2 l+ y2 r. H5 E; [! ]1.程序分析:用第一个与最后一个交换。6 I) i. b/ k" O2 Z) Q# F$ F# G6 @
2.程序源代码:" B, t% R/ X2 B) L% M
#define N 5
5 g0 ]5 `" @5 }main()# @0 w c7 l8 ?; O0 N* I
{ int a[N]={9,6,5,4,1},i,temp;* t+ B% M. D% _0 p; o/ ?
printf("\n original array:\n");" J% C M8 D# m' B3 l; z0 _% |
for(i=0;i printf("%4d",a);5 E0 l! |" U% r& D
for(i=0;i {temp=a;
( G( L) g9 S- U" z1 _9 \. { a=a[N-i-1];- y# |% {+ p- J, V" o5 s
a[N-i-1]=temp;
' |- X. H% l5 ~# D. ]$ c }
' a: ?7 w m; G1 Eprintf("\n sorted array:\n");
2 s9 O4 g9 ]; F% M& K% c; M: ~. Ufor(i=0;i printf("%4d",a);! j( g5 X1 K9 L3 o* c5 C
} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】
0 C1 K1 r0 Q! ~4 x题目:学习static 定义静态变量的用法 ! h6 x" U* c4 J! O
1. 程序分析: K2 z5 a8 E' `( t
2. 程序源代码: . l$ Y1 ~" y H7 p3 B$ w# a0 ^
#include "stdio.h"
" n- s8 ~3 s1 Kvarfunc() , S4 S1 B2 a" M# ?* p( t/ `" S
{
3 P0 F, Z& H) pint var=0; 8 P8 L( n4 q, g" p6 _ M
static int static_var=0;
j7 g) c2 s, q$ I: Uprintf("\40:var equal %d \n",var); ! R/ A2 J) y6 A. {$ L* n( L
printf("\40:static var equal %d \n",static_var); . j% P x! @( v9 N- d ]: J
printf("\n");
3 h" U; W3 ~: g# evar++; , w# E& R5 H. ?$ N; a
static_var++; 6 u% R( {3 G5 f) s* \
}
2 ~- x0 T1 \) t) n: y$ M1 z% ?void main()
$ W# p$ j6 m$ ?3 S5 T' ~1 W- p{int i; 6 g; a$ R: C7 L1 e9 q
for(i=0;i<3;i++) * P0 I3 u9 F L6 S/ V
varfunc();
9 m. c7 j* @. N# n}
/ c# A- T9 O, B" f( j# C==============================================================
) B! k v. v0 Q9 j【程序42 】 7 G# M% M8 S/ ?' e! _+ |" N% J
题目:学习使用auto 定义变量的用法
( n) S* ]' V6 \$ n1 Y- p, X! ~1. 程序分析: ! i3 Q4 ^8 l: i6 K( X$ n; I8 @6 S
2. 程序源代码:
) {. e- G% k) D5 y#include "stdio.h" 0 c! H! E7 F& K1 S$ T
main()
z5 N& J- }6 k: l% B1 e6 |: |* r8 g{int i,num;
9 J6 h( I: S' N- [" Z* [# T; ~, a/ x8 l: Tnum=2;
$ X5 q7 k- T: x2 Mfor (i=0;i<3;i++) ' W. a# b0 F8 w7 }
{ printf("\40: The num equal %d \n",num); 6 |- H9 P/ Y- D/ c
num++; & ^' v& x2 u# }/ r
{
" C- T/ o; z; K2 e. R; [auto int num=1; # c3 `( N5 l, d0 W9 j4 x
printf("\40: The internal block num equal %d \n",num); * n4 e0 `& ?) \4 ?* [( O
num++; ; ^/ t6 _; n! w4 `8 n5 T W( r
} , a. Y2 f: w$ i7 I* s( @
} 1 a$ z( D% z) e- L) Q
} , n& O3 B @, X- ^) t" C0 Q
==============================================================
) k t- B- H! ^" S# A【程序43 】
% D5 u* `, E6 n" _3 }. D7 z/ a; _题目:学习使用static 的另一用法。
3 n! D$ g3 B8 y' r4 j- Y+ o1. 程序分析: , x! Y- F; C, K+ n0 A3 t# y; P
2. 程序源代码:
# d- O6 F) Q" o( v7 y#include "stdio.h"
- @/ l) I: a2 C, ?; S$ E4 P, rmain()
x5 P1 E3 K o7 @1 k{
% K& G, a% b2 c( U% v' Pint i,num; + t! E9 U$ u) B% ?8 `
num=2;
6 V" U0 b, a# yfor(i=0;i<3;i++) % P4 l) T6 X8 k. c
{ % u0 ?& Y3 G% i1 j5 x; ]
printf("\40: The num equal %d \n",num);
$ G3 V( Y$ h( S' c+ T1 `num++; # T! g6 u; p% S; h! B; Y) z
{ 8 j2 h2 J0 u5 p9 t5 _$ W3 s. Y! `
static int num=1;
2 G4 M. C( ?$ O# nprintf("\40:The internal block num equal %d\n",num);
+ }0 l5 o: \9 r2 j6 ?/ s3 N3 |( Gnum++; + P& j- x7 ]% g
} 2 E2 P! B! l( c* U, ~) l# d# m
}
) ]$ B: B! r4 Z- o9 I0 l}
% |. z$ o$ y5 x# ]5 a& \============================================================== : e/ V9 e2 l" Q u! E
【程序44 】
9 i, s/ ?) T |7 Z题目:学习使用external 的用法。 ! g0 t# c# ]' F$ e
1. 程序分析:
6 |& g Z% m _' s- s( {2. 程序源代码: 5 s& T7 L6 N p0 |: }
#include "stdio.h"
/ J c/ ?- s' @" _' [1 r# }+ Y7 hint a,b,c; % b) q5 x( h E8 E4 u. ^' J+ ^
void add()
2 J5 v4 ]8 a) H" r# Q4 N{ int a; * D$ o) h8 T% g0 s1 d/ j
a=3;
" g& F& L: [; Q1 yc=a+b; * A* M! {) L1 @( c N$ o8 `, v, r' \
} - C8 t3 ^5 i5 w; J8 H+ @; X
void main()
! F3 b; U0 i, p( }{ a=b=4;
?5 z' X( L& T; y6 jadd();
3 n7 p- F7 ~. a; C8 Vprintf("The value of c is equal to %d\n",c);
& V: j j3 v p6 a* ~}
+ L3 r4 a( D1 i! q============================================================== 7 N+ W* i% s; o/ s0 F
【程序45 】
) S# `' z+ z6 ^/ S题目:学习使用register 定义变量的方法。
f4 s s: y6 }, f4 n1. 程序分析:
1 p2 B7 |9 b* k2. 程序源代码: 4 l' x" T% J7 n
void main() , P; B7 I. d- ] X! B7 D
{ 1 n f! }' l n! b
register int i;
+ K$ @* S0 P G a2 [) nint tmp=0;
% P7 L3 T' @7 c( p) x; D. Rfor(i=1;i<=100;i++) " U7 [: Y3 }% Q% ]# e6 J7 J
tmp+=i;
" G9 p- s# ^# I" Bprintf("The sum is %d\n",tmp); 1 A+ d/ S- q- [* o0 L
}
4 J/ X+ P' \# k0 T( L7 d# u==============================================================
0 K7 n" f6 N# ?) G) u【程序46 】
8 S, j% X% y& K" B# u7 [9 ?9 }: [题目:宏#define 命令练习(1)
8 v3 r/ X; @: R; f! ^! F7 k/ \1. 程序分析: 7 D) N( k# k' r8 v% X2 y# Z
2. 程序源代码: 8 y: U7 P1 Y) l& _$ c' p
#include "stdio.h" 1 U7 n& p2 u% F8 s/ F; A" }3 w) X
#define TRUE 1
$ I/ R+ C# h7 M+ w" R' L7 c- a3 {3 ?#define FALSE 0
3 n; z% I' `# R0 n#define SQ(x) (x)*(x) 6 K9 d# Y) ^4 J: O" I! G
void main()
3 {" W: s0 x7 f D! ^2 q{
% C. p$ \( u0 ~, iint num; 0 _+ [- V7 y. L! i
int again=1;
- G% m6 ]# G* F4 Q) }3 eprintf("\40: Program will stop if input value less than 50.\n"); 9 e$ A9 s- f3 o" g6 e) y$ h. e
while(again)
, l; l5 ?. s* _' z{
6 n( j5 [6 j; X# {5 w: D6 [ \printf("\40  lease input number==>"); $ U8 ?- a+ f& o9 E$ u
scanf("%d",&num);
o4 ?: v- R) @' ]- o! I! I- Iprintf("\40:The square for this number is %d \n",SQ(num));
7 {* K: ?0 I6 b0 ?8 n$ q1 Nif(num>=50)
- {: q# u+ ]& F {& j4 R. Cagain=TRUE; . U( h3 Z! h4 Z. S
else " [ b' u8 c9 ]& r0 E
again=FALSE; 1 y+ s) o/ @; L/ b; N7 q% ^
} 9 l0 {6 x+ a8 h& t& a) \- l
} 4 e1 `2 ^% E5 Z
==============================================================
. p' {9 y' S2 s4 V7 }8 A' O2 W【程序47 】 7 ?8 O# x, l' D9 d, H& s; j
题目:宏#define 命令练习(2) 4 P2 h5 t& G* T8 x+ L! ~+ E
1. 程序分析:
% N, D1 p% j1 e2 x, @8 R2. 程序源代码:
! o& e; z* s3 |3 d& Q! H% t( ~#include "stdio.h" ( U: @* _" B( r# B( O2 ^
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
* b, v% O2 B0 @' mint t;\ * v$ }" f( @ y7 U- s& {; X0 A
t=a;\
% ?. ^+ p. b; z+ La=b;\ ; g7 n# r4 e: B2 z9 n+ C5 H, i
b=t;\ 6 k' h# }/ d: \3 |5 \7 a
}
) P! {# W9 N: z, C- F4 ], dvoid main(void) , G2 H' D/ R' l- t" U M
{ 5 g, ~2 L( `$ p% u5 f- r
int x=10;
9 C( S" C0 ~3 s% r$ Gint y=20;
6 x$ x+ H/ W- W8 U" D) T! Z nprintf("x=%d; y=%d\n",x,y);
* @5 v6 p6 q# |exchange(x,y); 9 p) p* A1 ]3 P9 C2 P
printf("x=%d; y=%d\n",x,y);
1 ?1 T* x: r3 J2 ~1 m}
8 W1 K- n/ [. {* g* G, h* {5 [9 J============================================================== * o0 \, w. |- |) x
【程序48 】
7 A2 L9 r3 x" `: A3 p8 f+ S题目:宏#define 命令练习(3) 9 _/ O3 }, q" a9 u6 D: d
1. 程序分析:
- ?- l, |, n y4 a2. 程序源代码: ) ` S5 P* V; I0 {
#define LAG >
2 a$ _2 f8 T; k! t#define SMA < ) R2 F& f! B. s. ~ t
#define EQ == 9 ~; p3 d/ v: f% i5 w5 I" K& u5 O- [7 o
#include "stdio.h" ! b* J9 L0 B+ B5 D( @
void main()
1 P2 V. Z0 U- r# k! q3 n5 E" v{ int i=10; 1 {% v* o5 U* d1 s4 m' @0 x; y
int j=20; & ~" s+ m# d# G d* d
if(i LAG j) # w9 y3 \" F& }3 l
printf("\40: %d larger than %d \n",i,j); - f& ^* k& a5 R
else if(i EQ j) 5 T* O7 c- m3 d+ b6 F u; C( c- r+ w
printf("\40: %d equal to %d \n",i,j); 8 T8 B( J1 ?* j) }" }
else if(i SMA j)
: B/ F# R6 i I4 z- Bprintf("\40:%d smaller than %d \n",i,j); 6 d; n3 r: A h4 {9 c
else
3 o; I* ^. W8 m) Hprintf("\40: No such value.\n"); # N+ d" ^( l6 U+ | l" U% p7 F: S
}
' o: C6 Q' U. Y6 V$ X' `% @. g==============================================================
- `* e( x8 C: u 9 }" W$ c9 E P: T3 m l
|