【程序38】
- Y; W' R) d C9 L" @6 Z( q题目:求一个3*3矩阵对角线元素之和 : K6 `0 n, P4 h6 ?: c
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
: L0 u. Z) C6 `0 o9 M5 o9 S2.程序源代码:% r& G; C: N/ `- N7 ?; ^9 S
main()5 K3 a H3 s/ [
{
0 ~8 m5 n' n# qfloat a[3][3],sum=0;$ H3 U3 F( y+ g* R
int i,j;
9 }" E* ]1 E/ B0 U: |printf("please input rectangle element:\n");9 X* \' c4 m( b
for(i=0;i<3;i++)& U# q' \! Y ?. C- w
for(j=0;j<3;j++); V0 Q4 X* ^% B O" h
scanf("%f",&a[j]);' S* I# J& R! z9 k! ?
for(i=0;i<3;i++)
' E3 J$ H$ @5 t" h sum=sum+a;, s; y2 [3 f3 |- y
printf("duijiaoxian he is %6.2f",sum);
# a; g0 Q8 y5 h4 g0 g8 ?}
; U; M3 W# B8 g* d1 P$ O& v2 R9 ^9 j==============================================================
' Q* a6 A+ |. B2 s) j" R' b【程序39】' w- n M2 U( {5 t+ e
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- J; h9 W3 H- p- K* u1 _$ p' M$ Z1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后$ P4 C- {& v& I+ ]( a! c
此元素之后的数,依次后移一个位置。 * q) Y& E' A( P! }
2.程序源代码:& D7 w* a) A7 }+ Y' P
main()/ r8 R' q% R P2 ~2 |% }% l$ s
{
$ l, u$ g" w( h2 d1 A( pint a[11]={1,4,6,9,13,16,19,28,40,100};. j G+ c8 O: X( O
int temp1,temp2,number,end,i,j;
0 I3 x, H. s: H5 f- d1 M/ o$ [! K" C( [printf("original array is:\n");
6 q- L2 p" Z3 a4 dfor(i=0;i<10;i++)
: I9 x6 F/ }4 L0 a/ h- r printf("%5d",a);
$ N$ h9 {( P% B& ^) Pprintf("\n");
7 S' E) W5 X8 qprintf("insert a new number:");% C4 _4 t. i7 v- n# C" B3 Q6 S
scanf("%d",&number);
& W5 x( L$ }* I. I9 ]$ h, B% oend=a[9];- o0 l; n& j4 P
if(number>end)+ K% R, s/ L ^% ]/ ?7 ^# E
a[10]=number;5 v: t% ^. z( |) x& A7 S
else. M! I6 q/ ~; {
{for(i=0;i<10;i++)0 _0 C* R; s/ q& C
{ if(a>number)
$ I' x% t( F8 ] O& d {temp1=a;* S! A% m4 |6 _" _- D* c
a=number;: G# c4 l! ]* H4 T# i+ B' o5 B
for(j=i+1;j<11;j++)
8 k4 W- ?0 V! j3 V& v# M" w {temp2=a[j];
2 r0 D, g4 l" ^ W: C/ ^ a[j]=temp1;% @" E8 N/ ~( c1 S/ H, o6 u c
temp1=temp2;3 ]* ?; [* Y; H( F0 j- s: _
}
$ E2 |( s+ ^2 p& N break;6 Q- Q" `& L; r0 A2 g& j
}
6 k7 y* i9 ^/ t* V3 `4 z& ^ }
- t7 F4 h* R0 G# N9 f}
7 E6 C; w4 X2 z2 {for(i=0;i<11;i++), O" D S2 L3 }" r
printf("%6d",a);
* J( p. i1 M3 W. ]$ X+ Z}2 V; l! J( x& O" |! f8 P* V
==============================================================, w J6 N" Y& U" \& z
【程序40】/ c* d1 Y0 c }7 C
题目:将一个数组逆序输出。: Y+ W9 z* f. [7 K6 d! M
1.程序分析:用第一个与最后一个交换。5 x. \" N$ K3 B2 _* o
2.程序源代码:0 e9 N( a" p* y- n# d% {
#define N 58 b( ^2 y; W9 D- ?
main()
) N5 p* f5 ]0 B1 l+ r! n{ int a[N]={9,6,5,4,1},i,temp;
+ E2 }% r# ~* v) v2 O; e printf("\n original array:\n");% F3 H% @' K) Y+ D; k J' |
for(i=0;i printf("%4d",a);
2 P: v. e; U; ?6 Y$ y for(i=0;i {temp=a;
! W4 F; H+ C F) b# b9 n9 m8 ^ a=a[N-i-1];' d5 y% m0 s0 E: r
a[N-i-1]=temp;
) I* n& O! S- R. b. x, s }8 ~7 P3 z! N1 ^: A
printf("\n sorted array:\n");
/ E: }# a. A; ?7 O' ofor(i=0;i printf("%4d",a);
% t: ~4 ]; S! \2 H} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】 & U; A" R% ~1 L2 J( [
题目:学习static 定义静态变量的用法
6 i$ V) Z+ T4 [+ I1 A1. 程序分析:
I3 z3 t1 h0 i! @, l2. 程序源代码:
! d7 u# K% O! k5 }9 |#include "stdio.h" ; `! a$ R1 o- ]8 {
varfunc()
" W: g1 J6 _* o" h% I/ i7 r{
8 \* s7 O8 i Rint var=0; ) ~" a4 [& C5 v4 Y% K. N+ v# n6 H
static int static_var=0; 3 j' a1 z0 s" i. S0 N% u1 n# d3 [! n
printf("\40:var equal %d \n",var);
: ~' Z2 N) h7 N4 qprintf("\40:static var equal %d \n",static_var);
* e: S! N. u: X! Vprintf("\n"); 5 e+ M) z) P; i4 z# A7 t
var++; ' u; ]! X* _! h9 u$ R
static_var++; 1 b; W' h$ E. S6 L1 a) ]
} / X' R; e3 Z) H" K2 I9 P- C9 V
void main() 3 r% Q* d1 O- Q0 T) c
{int i; , @+ n& f7 Q$ y# S2 f( D" J
for(i=0;i<3;i++) / q" d) f8 J, G5 C" O5 i
varfunc(); . S" v1 u/ b; p* @/ i
}
% Z9 i" t i: H8 Q' p8 o+ A============================================================== 3 `' N9 i( K! l- P) W( f$ O# s
【程序42 】
) G* Y4 P" C, \2 l, i! O4 k题目:学习使用auto 定义变量的用法
: d& P" e2 e3 ^& N7 ^& x' R5 P: h- @1. 程序分析: : Q0 \* D+ d: {' k( o h
2. 程序源代码:
+ f/ g% \0 K( K- W8 i#include "stdio.h"
5 P' p \: q8 I+ u. v. o2 Zmain()
6 L4 M; A# b; ^! j{int i,num; ( M3 R, W# n7 x. t/ b5 p5 a5 k! m9 s$ ~
num=2;
6 B* q- l0 i" u* R/ W b( cfor (i=0;i<3;i++)
; z% U& r0 N* R( z/ \9 U{ printf("\40: The num equal %d \n",num);
: P8 n! p6 f9 y! G+ Lnum++;
~5 N" C8 A- a& h{ ; S8 L Q' r/ v
auto int num=1; * p, A$ H' o* E' S3 h: P& ]
printf("\40: The internal block num equal %d \n",num);
3 {5 x h% N$ H0 V- G2 g7 K& Nnum++;
( H& D! B& @/ h: V9 D: @}
. U! z9 k1 R8 H4 [1 Q: t3 k}
2 D' _1 o& l3 ~: N% A! \( o, H, `+ I} # x$ I1 U1 P" B' i' M+ R+ v; u
============================================================== 4 P( _' W/ P4 _: [( Z, t
【程序43 】 - B9 ^" R: f4 u9 I8 L4 _
题目:学习使用static 的另一用法。
, _. a8 U/ A8 X: g. y4 X1. 程序分析: w2 M% W" E* A! o, e; y7 w. l! m
2. 程序源代码: , C$ K9 Z7 T0 @2 t( j2 e
#include "stdio.h"
0 i5 z A! z5 t% @) @main() 3 t% |$ U* E& B4 [( G- L
{
' P! s# b( v: W5 K+ G; v& o, C% l! _int i,num; 5 ~" Q6 P' X) N& }, @
num=2; 7 f& `. n/ F* N: @5 j1 Z- i$ E6 e
for(i=0;i<3;i++)
* q1 \# |) h! r6 ?8 u7 X( P% K2 h _{
" u( [8 `, _* W8 Lprintf("\40: The num equal %d \n",num); + \/ \1 O4 L6 Y7 c$ P9 F
num++;
, O0 @* h% A; j: l7 A* K{ $ Y; x+ U0 J8 H1 o
static int num=1;
$ v. ^7 W D3 l& t% \printf("\40:The internal block num equal %d\n",num); # S* R$ i) f( F$ t$ d- K
num++;
$ m* i6 B* n3 S$ I# |' N} & ^3 i9 L- G( E$ k1 M
} : j6 J/ Q' W8 N" C3 \- \8 A0 }
}
9 ^$ D9 G/ c% A" `; V5 O; e6 O! f& X, m==============================================================
" A2 p- ?/ T; k【程序44 】 9 c& x' l7 m+ c/ `# r6 O) S
题目:学习使用external 的用法。 7 D* ~" c1 G) R( e
1. 程序分析: / D4 Y5 w* f) l1 a
2. 程序源代码: 3 K3 c) b. d( T# z5 c- I/ a$ u
#include "stdio.h" 4 S' Y, T" H1 o% P P' p! o
int a,b,c; 3 H1 n; R2 E+ ~0 E
void add()
" @! K& [1 q8 _2 m$ D{ int a; ! {# O5 R( T ]/ d _
a=3; 1 a# r$ b, i% w% S8 r) k5 s% j4 I
c=a+b; ; Y1 z5 z! B! K! }
}
! Q4 R# [. S& w5 J8 ^3 f" Ovoid main() ( e+ k' \4 n( v; O& \1 |! {
{ a=b=4; / {& q0 q* A y4 g9 d7 K
add(); # P- ^1 z3 _! }) e' i; T! {8 }& o
printf("The value of c is equal to %d\n",c); % F5 @& S0 K1 i# I t
} % Y! ] h/ q8 l1 _! c
============================================================== 0 V. [: y" I; M, W& A
【程序45 】 6 \: h ^0 Z1 w% _5 J* L9 O
题目:学习使用register 定义变量的方法。
' H8 D3 y) p: i" D7 L2 _1. 程序分析:
6 ~2 P3 p, Y/ {; T/ L k, H4 q, e2. 程序源代码: ! e( c5 V, N+ C% |7 n7 j p# {3 c
void main()
+ n& |1 {9 d8 Z# [{ 2 B5 J4 V) w3 X: m P( K7 i
register int i; % |' T# o5 H. h5 E* A4 h" Z
int tmp=0;
5 e% f) Q3 Y& g5 N5 x+ V& Mfor(i=1;i<=100;i++)
: U9 o# _5 e% j( ktmp+=i; 1 }8 F3 V/ E2 X/ i/ W- d3 t0 M
printf("The sum is %d\n",tmp); y2 q; R) m9 p9 X. C
}
+ C3 O, [$ F3 f' {. Z# o9 ^9 r8 L============================================================== % k% ]7 C4 P: [9 f; e
【程序46 】
. P) d/ e7 ?4 o2 O题目:宏#define 命令练习(1) r+ u) p j% v9 \
1. 程序分析:
" |, p" b3 x2 w/ A" U2. 程序源代码: 7 R0 |" ~2 a5 ^) q/ Y3 ?$ |8 Q$ K/ F0 \* w
#include "stdio.h" 6 F2 D# Q. G* g$ C8 G. z/ f' W H
#define TRUE 1
3 }8 k1 y! t- {1 k#define FALSE 0
n) g) ^/ Z- b2 H: x+ |#define SQ(x) (x)*(x) ; r- ?9 P B2 Z2 [( t
void main() 1 C) c! k+ F! w. n: t# `
{
( A- |; u1 J5 B4 jint num; ( F5 }. ? O$ H$ y0 a
int again=1;
' i* L5 p: l+ J9 {) vprintf("\40: Program will stop if input value less than 50.\n"); 8 |8 l. e3 V- U# z" k% k2 Q' Y2 v. N
while(again) $ X- G( S( u- H; F
{ 8 r) U) \* B4 D
printf("\40  lease input number==>");
) ~" j' x; `3 n, o4 ~1 @! oscanf("%d",&num); " `/ n7 z9 L V$ j
printf("\40:The square for this number is %d \n",SQ(num));
5 h, G6 V$ h1 ]if(num>=50) / b1 \. O1 r: T' R
again=TRUE; 5 V" [: R) l0 H; k& X( ^
else $ K8 z+ _; A' a4 @/ ^0 Q1 k
again=FALSE; ) f9 Q8 r& D5 x: g" ^0 i
} 5 \2 @& { g7 _4 I, j) e
} ; M C1 `9 h! s+ @( N0 b
============================================================== + ~2 ]0 Y* N" l% {* b
【程序47 】 4 S7 ~, L5 ?' O, A* B
题目:宏#define 命令练习(2) 7 k; z, ~3 [, Y6 b4 F: `1 l
1. 程序分析: ) ]' f* D: `: u* T% c# C. H& h; c8 T
2. 程序源代码: 7 X6 k* o' G" Z8 [4 E% \' A _
#include "stdio.h" ! _& W) H' w) V6 e: h
#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
" X- O4 ?$ W2 {" T- hint t;\
" w7 `0 G/ V0 y+ ht=a;\ & ?; J9 W- z: f1 C6 ^% _
a=b;\ - K; [5 M/ k& u
b=t;\ m* H; b. ]0 I9 `- B$ U
} 6 p- j8 B6 _" n$ [6 B: V
void main(void)
+ Z; q, [, T& b, V( a' ~) y{
~4 ]5 N4 }( Vint x=10;
4 f7 l$ b6 T8 S/ z0 e8 W$ Yint y=20;
) v ?$ l' R& N* A. cprintf("x=%d; y=%d\n",x,y); 9 J1 w1 R9 x- q& z7 ^% {
exchange(x,y);
6 g6 w0 t7 o U" c" l/ W$ F8 xprintf("x=%d; y=%d\n",x,y); ) X# c3 w- S. a$ p( M" i9 h
} 8 R$ H1 ?5 Y- v
==============================================================
; S+ `1 \% ?: L/ u' E+ G【程序48 】 " s. Z! a! \1 B% ]9 ~+ \. T
题目:宏#define 命令练习(3)
5 g q) R/ V: Z$ h9 c1. 程序分析:
/ K6 i9 `0 G) r% C2. 程序源代码: 8 ?( {" G' ]" |$ W; T
#define LAG > ! ^3 Z( v% X3 A6 d; S
#define SMA < * V5 h! F7 E" j* o2 b
#define EQ == 8 u8 a8 A8 d7 x/ y! j; [
#include "stdio.h"
" r7 W9 q9 R- t' J* _, lvoid main()
9 Z$ Y- Y' O' r, E7 C5 Z8 C) X' h8 @{ int i=10; - u- @7 Y; w& ^0 q$ M
int j=20; % D* j6 @2 [/ C. I6 I2 y
if(i LAG j)
0 L Z+ `, P$ N6 j8 iprintf("\40: %d larger than %d \n",i,j); ; m6 C5 h& s5 C; n1 u' [& B* O5 w
else if(i EQ j)
; _) e( r( q) u4 G: A0 }printf("\40: %d equal to %d \n",i,j);
7 `3 ^/ M2 g9 Q' k* Eelse if(i SMA j) : l( m2 d6 K* L
printf("\40:%d smaller than %d \n",i,j);
, B6 Q, F0 R) w! ^1 ~else 9 h$ Z2 V/ ?2 B2 i/ E
printf("\40: No such value.\n"); 4 r, ]4 ?4 w, t
} - {) L! ]4 x" t( h
============================================================== 6 V4 j) } f/ F. f8 W( v; x
: l: t* I& z0 h! B' \5 V
|