EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】# H3 }5 r% R7 d
题目:求一个3*3矩阵对角线元素之和
3 j1 r$ G8 P' s1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。% t- N4 z0 H' {. p
2.程序源代码:
6 m$ r; A# B' R; B/ E( |main()
! b' w) I( S6 E4 Q) U; X+ o{, P1 M2 T/ F' O$ {
float a[3][3],sum=0;
6 G1 F9 E- {0 s! bint i,j;- _ `1 s c& d( o' q1 {2 E
printf("please input rectangle element:\n");& F* v) \5 D/ \7 u
for(i=0;i<3;i++)0 Y+ u% K; z1 q# ?, O
for(j=0;j<3;j++)! C3 D8 v0 _+ g% }
scanf("%f",&a[j]); U7 k9 a% S# C1 i# Q! | r2 X
for(i=0;i<3;i++): V( }( |0 M3 b- J( Y' p
sum=sum+a;
+ Y- z( Y( L: m9 g0 y4 Lprintf("duijiaoxian he is %6.2f",sum);2 Q* q' l% M! J6 w5 n/ O
}) i( r* A8 ?+ B+ x: x2 @
==============================================================
6 ~* v j! z, g/ H# c* N【程序39】$ s1 i; M0 [; c, T9 C% g: k: V% D
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。; D4 e. I; m7 L
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后, n9 {: e6 w5 w9 F7 B2 Q
此元素之后的数,依次后移一个位置。
0 l" u+ F8 V( a) [2.程序源代码:+ k5 d- L- M) m' h5 X, u: V
main()
% T% `0 x2 }. o{
0 P- | [9 _; w" Sint a[11]={1,4,6,9,13,16,19,28,40,100};
8 v5 ^0 i# r9 P. gint temp1,temp2,number,end,i,j;
. r4 L" ^4 S) q* @" _5 o/ m- P1 ?+ Rprintf("original array is:\n");( P8 n$ S' K3 l% j3 V9 D
for(i=0;i<10;i++), a4 J# O( `5 D( y: Z X0 l
printf("%5d",a);! F; j- j: H5 }& b8 N) ?! o
printf("\n");
- ]2 E6 G; a) q1 N8 h, Mprintf("insert a new number:");
. e$ |$ E1 u' Q: B$ C" A% tscanf("%d",&number);# ? e; v* h% X) \8 l
end=a[9];
3 X2 B) a {. m, T$ Pif(number>end)
: b# F3 H/ r( Z* m. Z5 F a[10]=number;9 r+ i3 E+ M! k/ |) z% n
else
% ^+ C/ c! ? a {for(i=0;i<10;i++), i; |0 R& ]. a5 s
{ if(a>number)# u7 c, t o& W$ E
{temp1=a;# G8 a" f1 O9 e; I3 f5 e+ V
a=number;
3 d6 d2 R, ^. R- ]; ^9 c for(j=i+1;j<11;j++)
6 |/ o8 @+ s) f, K {temp2=a[j];
1 V& Y9 D( C! ~8 ` a[j]=temp1;
( v$ B' N8 |" w- L/ B& [ temp1=temp2;
9 v) |) f8 v8 D }0 I1 A, N9 z, a* R$ s; I3 R
break;. g* k: l# z7 w; G; b; g
}7 z) }" t; ~. d7 u0 v, X
}$ @) E2 B: z5 `' X& ?! i& c
}
! E7 K+ b# A- q2 ~for(i=0;i<11;i++)# f/ x9 b `- w
printf("%6d",a);
$ q+ ?! B1 M% O3 a}
) n: v% a s$ [* ?" }- Z5 B* j==============================================================
z" ~! p+ p0 T3 n; B0 r, g【程序40】
6 o8 l& Y* J9 F" m$ S: b2 L题目:将一个数组逆序输出。6 E6 M6 N4 D0 A
1.程序分析:用第一个与最后一个交换。
$ ]: w. A {+ u. f0 D6 F7 @3 [$ [. X) b2.程序源代码:' M) y9 x. K, G) D
#define N 59 G) j8 x* C. ?$ a% y) o. f
main()
. f g3 t; P b' ?7 \: E% ~- \' W7 {1 h{ int a[N]={9,6,5,4,1},i,temp;
' Q/ X! l* F8 t7 d7 X# [+ j printf("\n original array:\n");4 u! C9 g4 Y1 g1 W8 ]! R4 k
for(i=0;i printf("%4d",a);
0 i& s' }! s1 r6 Q/ {6 }4 K for(i=0;i {temp=a; e6 n3 U& y! I i- M# I5 a5 ?
a=a[N-i-1];
, v) q5 f$ B$ r) [ M: z a[N-i-1]=temp;' i( o9 `9 v; L
}% p; q w! S" K: U4 u. h, E5 K7 e1 ^
printf("\n sorted array:\n");* e% @# T1 B" w9 A. F$ U
for(i=0;i printf("%4d",a);
2 n5 b, Y( T* o! d9 F1 o} 【程序41信盈达 嵌入式企鹅一一起呜呜吧久零纪要 】 ' I; S/ Z/ J7 b9 M k3 t) o2 \4 J
题目:学习static 定义静态变量的用法 * Q# v* _6 `7 p% a: \' y0 D7 e
1. 程序分析:
) `6 ?+ a+ @9 M( r9 ]! h: }2. 程序源代码:
/ a) P: X/ d. w#include "stdio.h" 9 g7 a% G: ]" Q
va RFunc()
& N! a: h8 l8 R) l7 s{
- m3 g' K: V2 Z J- @3 Q( k* dint var=0; & y& \4 \9 t. h+ D
static int static_var=0;
( U1 F- N3 r5 t4 T) l7 |0 o9 yprintf("\40:var equal %d \n",var);
* }8 K! e% ~: ?printf("\40:static var equal %d \n",static_var);
+ f2 f7 y* i/ z2 _printf("\n"); ) H3 A9 [8 K! c2 V% i) I* A( x; |! k' R
var++; : E1 L; \8 O9 l: p" D; I R
static_var++;
+ r2 s) j& B8 P. J9 H& S} ) E; a% a- {( n f5 B3 A6 w
void main()
1 W+ `& v/ j: W. A{int i; + T& i/ C8 B" P3 M( {' g
for(i=0;i<3;i++) $ U$ _8 S% ?; X+ ^. k
varfunc(); , W8 N# k! Z% {
}
& c2 y( r# g( y$ G! ]( G% k" s8 `============================================================== ) a; w$ y% o' C) i5 y) q, }# C4 L8 r
【程序42 】
" ]( ]+ t( y2 f4 L P题目:学习使用auto 定义变量的用法 $ x0 j; v. l4 r) L
1. 程序分析:
* @8 K- `1 }( f- ]2. 程序源代码:
_# `0 W0 c! d, c' C( K#include "stdio.h" ' _7 g' T8 i' K* _# P* k |
main() # q& l/ F. W0 g- D7 R
{int i,num;
2 A+ ?) e- W* M* G1 d' anum=2;
+ }# p/ ~, @3 Nfor (i=0;i<3;i++)
# [+ ^: | n1 [; m{ printf("\40: The num equal %d \n",num);
+ m2 [! K9 Z9 b/ Z% Z7 nnum++;
# b& u! K7 D- o) Y7 q{ / P& U+ g$ @7 {6 d6 `& H' B
auto int num=1;
0 ]* p7 w# V' V7 t% o/ \printf("\40: The internal block num equal %d \n",num);
1 ]( K7 f+ _( K; K8 Y: \# wnum++; * L% {& |( i. a& Q! _' h) S& \
}
# F3 F. P, C9 k: B}
0 s$ ^! f' ~# M* _5 y& f& r}
7 Y1 g! S# }7 Y! O: i: c============================================================== 4 M" X2 E. m: B; l: H
【程序43 】
1 ?/ B/ U& U, n, `* W- X4 m* y& n题目:学习使用static 的另一用法。 , X$ q3 a9 K7 N
1. 程序分析: b0 w3 T/ }# v( m) }/ L$ f! M4 e/ d
2. 程序源代码:
6 ]7 _1 U8 t+ U8 i#include "stdio.h"
/ M8 U/ c% o; P8 J5 Bmain()
' F5 c: @2 I" f! k- D/ U; t; a _5 q% m9 t{ . f/ s3 f( l3 U C' _: p. I
int i,num;
+ r/ c. @$ i: }7 A3 W. y# }num=2; - ~$ B) v" k* \6 h# R; y# c
for(i=0;i<3;i++)
0 e& s( s% r3 J$ m, E9 h1 a{
0 E5 _2 v; L8 J6 D. L9 rprintf("\40: The num equal %d \n",num);
& e8 w: O% K; b3 }: p9 B5 \% ]; h* N0 i+ knum++;
2 s! R. S# L3 W0 J{
% ~' u4 M: E# j. R3 u8 }static int num=1; 6 ~( e+ a" r6 o% N
printf("\40:The internal block num equal %d\n",num); ! F/ r( u* U1 d* B2 D( S+ i+ i
num++; + H# c ^) Y0 ~; @! v3 [
}
6 S# q6 I4 X) h$ g}
9 B7 r5 B8 ? i' I0 T e, b}
9 W6 l5 i! i l' d============================================================== ! m+ v8 N% v5 _1 `4 k
【程序44 】
- k' ]5 p! [, J题目:学习使用external 的用法。
$ x5 R, k; a& i- y) i1. 程序分析: k3 r% p3 `: }
2. 程序源代码: ! E! K+ p: [4 j
#include "stdio.h"
0 f q1 I* K( d* m" sint a,b,c; * X" X9 ~0 s5 f4 ^
void add()
# A3 P- W( P/ U: A ^{ int a; + u# c( w7 H& |/ x
a=3;
1 C, K9 s1 c$ v5 T' P9 V# \c=a+b;
, I* S' F4 E; ^1 d6 w4 d} ! U; _5 G* e, O3 U% W
void main()
4 Q- E' O0 _- e# A& @9 f- Y( `# N{ a=b=4;
. V& |% v0 R' Y h. P" Badd(); 8 r/ h# e3 q- I/ ?) n* Q
printf("The value of c is equal to %d\n",c);
- U7 u4 ~6 o5 c& g, `* k, C} ! n2 l" I0 _. \3 S- ~- Z/ y# y
============================================================== - Q* I% \$ b, @7 g
【程序45 】 $ A2 U5 M: i+ x) W
题目:学习使用register 定义变量的方法。
0 k6 M! ^7 @4 z2 Q( x4 ]1. 程序分析: 0 z4 M- v" n7 E
2. 程序源代码: 4 n3 [" _, @* `! u( s. q5 ]
void main() 7 v9 W7 a" d8 h& D: [# @
{ 7 J, k+ j F8 G W- d
register int i;
3 j" W e3 d/ L" l) r" U- Yint tmp=0; 5 f2 U2 \& @2 v* q% d/ M
for(i=1;i<=100;i++)
* u& X" L# j2 `+ i3 g& R) itmp+=i; ( r! f7 y% \7 w5 b
printf("The sum is %d\n",tmp);
" j# D( o7 s) M} 7 ~/ K" p" \9 k8 U
==============================================================
# j% g/ j2 H, Z3 I' m6 q2 I$ z6 M【程序46 】
/ j) p: S$ m8 e: `0 E+ O题目:宏#define 命令练习(1) 3 G+ r$ Z0 o7 a+ T% R5 O5 w
1. 程序分析:
4 i% T- R9 R Z$ V @; A2. 程序源代码: ( Z, |5 t3 `! b
#include "stdio.h"
$ c6 U+ j" f; y5 P/ d#define TRUE 1 0 B8 M, c/ b& N2 w
#define FALSE 0
. j0 M/ {& L, f: x#define SQ(x) (x)*(x)
( u1 ~' Y3 }4 J. o8 evoid main()
" i6 _3 H' `$ v{ & Q" D7 h, e; L4 O8 e: K4 J
int num; ' D& {: d$ H Z1 x9 q1 Q- A5 A
int again=1; ( o8 b( [$ I$ Q: J
printf("\40: Program will stop if input value less than 50.\n"); $ S/ L& Y# ^2 J- l5 G0 t
while(again)
4 m4 u) M% R# q{
1 E' B0 Q" p9 [3 W" w! {printf("\40  lease input number==>"); 6 J3 i5 Q$ q# z8 p0 D
scanf("%d",&num);
" v7 m, X; R0 y! wprintf("\40:The square for this number is %d \n",SQ(num));
0 T: v% t# I* V3 q9 n* E* _! Q. oif(num>=50) : c$ y3 S- W" a7 A a
again=TRUE; 6 q- ?; M/ }6 s. ?$ |9 S' D; h! T' v
else 2 ?7 s6 a% ]* d- U$ q& R
again=FALSE; 5 w" s9 w( r( }5 D0 B
}
Y5 y. _- W# M, G, g} 7 l9 d5 {, ~& {& e1 j2 X
==============================================================
2 O* u. Q; _6 i【程序47 】 6 K$ z+ T- S) e% v a* D' t7 ^
题目:宏#define 命令练习(2)
0 B+ B! ?) u) i) E5 G: V1. 程序分析:
6 G" Q E- c2 h j9 n* T0 ~2. 程序源代码:
3 D4 J9 [! j+ K% H! Q/ k7 `#include "stdio.h"
0 L. K( J( `& O) s#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
+ O" V: q# X# W) B ^5 s- Y" uint t;\ " z; f& a- C7 S, B$ [' D
t=a;\ ' }& f" ]% g: z* y
a=b;\
) I3 ]6 Q& O3 u" ?$ O* yb=t;\
6 r0 D- s7 }, `- l' p* O}
1 q( h. h8 m. M" s. t5 Z! nvoid main(void) + _# n1 Q+ ~4 X1 w: p
{ , r% ], ] z' H; `* {4 O6 Y1 p0 Y% b
int x=10;
5 Y& }' L5 u ?6 u- o* jint y=20; 3 o! v* H% v' M o
printf("x=%d; y=%d\n",x,y); ! M5 t- _1 b: D e4 r! L+ K" [
exchange(x,y); / t& J4 b) I/ U
printf("x=%d; y=%d\n",x,y);
$ a4 S. [/ R6 D* N. V3 t! V}
& X& c# ?) v3 d* \9 L. R1 \' V7 C============================================================== 9 n- y8 _: |0 H9 S8 E' h
【程序48 】
7 q, [2 h* x9 I题目:宏#define 命令练习(3)
F; }- E! l8 g2 V1. 程序分析: & Y v* T T7 W) d
2. 程序源代码:
9 a* y- E: @/ f" b8 N8 w1 B! W#define LAG >
# K0 \- y$ }( G2 z6 Q, k6 U#define SMA < 5 K4 X$ h- u! p% ?
#define EQ ==
% a3 o3 g2 P" ]+ O, }+ @( }#include "stdio.h"
0 O/ c% I8 {4 j; A' C. e1 lvoid main()
: W- |% L& K2 D- |5 d" c6 M3 T{ int i=10;
: u% b3 T0 T3 C" ]int j=20; 7 o* z' H1 r9 G, s, [. j, ~
if(i LAG j) 5 `8 q& j+ g2 f. r+ P# L; h
printf("\40: %d larger than %d \n",i,j);
0 j5 a( ^6 s$ Nelse if(i EQ j)
, i0 ?) M! K! P4 oprintf("\40: %d equal to %d \n",i,j);
1 t( K9 L- m7 F' pelse if(i SMA j)
1 O; f1 ?5 w0 p4 \1 z0 ^printf("\40:%d smaller than %d \n",i,j); z) v$ ^4 A. }% N
else
! N% W: I, t- V7 O* L+ m( kprintf("\40: No such value.\n"); / I h" T5 q" B
}
( B0 ?, p- s' d============================================================== ; U9 e( @, M( L2 I! Y: |# b1 h' B
5 j: X8 s2 q y! F9 p$ i |