|
【程序51】
8 j7 c3 N) t& K: k# L& a题目:学习使用按位与 & 。
' C* h# q0 f3 ^" w+ e8 A1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 x% h& a4 I: @
2.程序源代码:, q/ A: U- ^8 Z9 w: }: ~- c; k5 T
#include "stdio.h"
8 B& U' Z7 z) U: zmain()& C" q: s9 t; G$ E8 l. y
{" L; u- o$ ]: S" D% m8 w
int a,b;
j1 }& |: n, Z. `8 na=077;( W4 n/ w/ S/ {( O. u: c5 g$ |/ Z
b=a&3;
& ~4 ~- I. V( t8 c( uprintf("\40: The a & b(decimal) is %d \n",b);: F5 n1 X% j4 H7 m7 y
b&=7;
5 r8 d% S5 L$ ~ D/ p' aprintf("\40: The a & b(decimal) is %d \n",b);
" d7 G! k/ @# U$ C' a+ E. ]}/ z' [: C+ P. Y
==============================================================4 k* q; [. w5 q: T7 m2 A, @8 R
【程序52】
( Q- k* `0 ~& l8 ]' Q9 A题目:学习使用按位或 | 。
& r% ~4 L: g( P3 |# D" G1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
. n+ O2 ~9 X0 r9 f; a2.程序源代码:4 y+ h" D5 b- N& g, |: F' \
#include "stdio.h"
: g4 w, }( p) I% ?main()
; i3 L! }1 Z' s; A! d{0 p1 r6 i! }7 h4 Y
int a,b;5 K0 V% r; l9 X
a=077;- K5 [# K% }3 L* B/ O( n( A6 n; d
b=a|3;/ E* J. u" L% u
printf("\40: The a & b(decimal) is %d \n",b);
% G7 M' Z* [* F" X* eb|=7;
8 X s0 e1 W: j' a5 e% mprintf("\40: The a & b(decimal) is %d \n",b);
+ J1 ]" f4 X$ B: _& P# Z& N5 e}$ u. _& B1 h; T; e
==============================================================7 ~9 D: T5 k4 Q. C, z/ Y
【程序53】
8 R: a6 G+ @( J题目:学习使用按位异或 ^ 。 ; g0 e8 e* n/ V/ D& y9 [
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0) v* R" i0 N, m
2.程序源代码:: l( \) i; N' L
#include "stdio.h"
! M! l; P! d: C! C! Nmain()' r+ k( r' ^5 n( g
{" b' U, J7 r' v1 z6 v8 x4 D
int a,b;5 B3 l6 j4 |1 l" ?8 e i, x/ l% U
a=077;9 Y8 N1 G1 V$ e
b=a^3;
- C2 v+ n3 I* w( i+ Mprintf("\40: The a & b(decimal) is %d \n",b);
9 A: y& y% Q9 A. w, ~( Cb^=7;; p- l- L$ ?0 U# j
printf("\40: The a & b(decimal) is %d \n",b);, X1 ~1 N0 n l( e0 f
}- l X$ Y% U, a8 i g' n8 y( x# @
==============================================================
: T" O9 Q: P6 r【程序54】
3 P* h! \' ]) E: ^5 Q1 O) p0 }题目:取一个整数a从右端开始的4~7位。
c3 v" B* g2 ^- y* n程序分析:可以这样考虑:
- P8 y7 G" C4 D! }9 F(1)先使a右移4位。
6 ~7 ~/ p8 r% v3 l; X& ~! w(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4): T% h! G6 ^4 ^3 O) b B& K
(3)将上面二者进行&运算。
3 Y& q, m& x! p* v( N+ X. a$ x# B2.程序源代码:; M) _5 ~: I& `% S: b; ^" G. P$ g
main(), \# M& G$ b- ]; b+ N4 f
{% d; R& Q& P: I* P* n
unsigned a,b,c,d;
! Y6 c' u2 B- a1 E0 \scanf("%o",&a);% ~9 a( h6 O/ c- \( S7 E
b=a>>4;
8 X5 {" T- [, F* U8 K8 i/ \c=~(~0<<4);
) o$ R2 j* J8 O. z/ Od=b&c;
3 S: q% y- {6 F* _' @printf("%o\n%o\n",a,d);
2 Z. a# w7 ~1 L2 a* \: x' o}7 u' B9 A: |. z7 \9 `
==============================================================/ O* }+ p% B% ~0 e
【程序55】/ \: M& b: O9 `; H W1 E3 K! E
题目:学习使用按位取反~。 $ |2 M, S/ N( Z% Q: H7 J O
1.程序分析:~0=1; ~1=0;
) g$ w* Y/ E+ _$ n+ d2.程序源代码:
1 Q" A: k% L* I/ O8 [. i8 {#include "stdio.h"- }. |1 x! s) G! I
main()6 C" Y' u+ P& F5 F9 ^+ I0 u1 x/ b/ ~
{
J6 E. _/ M1 p) E3 {: Oint a,b;7 F0 z5 T( Q; z0 [, v1 t) O- _5 ]
a=234;# n2 I9 J, {2 K& N) y* X/ |
b=~a;
& G, U, N1 d9 Wprintf("\40: The a's 1 complement(decimal) is %d \n",b);, h8 [* l1 W# X* n' }
a=~a;, l. @( ^* \. I& L2 q, U& E2 R
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
+ ]. A" ~3 N1 S" A, u}
, \4 O% G! ^- ?==============================================================
% X' N2 H, ^$ A0 L* c u. {0 m9 j) j【程序56】1 w$ y* j/ n+ t1 q
题目:画图,学用circle画圆形。 . z: w$ @/ J- [1 r3 P7 u- P
1.程序分析:5 R# w" w; _, @7 z( N
2.程序源代码:! E C3 A0 }7 f1 u! h K; k
/*circle*/
* T$ @" o) O; ~7 r# h) A#include "graphics.h"% C- _, h% x9 x+ w- s3 O, d
main()
. y* B; {6 f: l# O4 `' W# H+ ^{int driver,mode,i;
2 y8 Z' l( ]* ^+ I- h4 zfloat j=1,k=1;
3 z) S$ j+ r! k* e( @3 mdriver=VGA;mode=VGAHI;; G. o9 D, y; H' p3 r" E% a0 w
initgraph(&driver,&mode,"");: Q; J( H+ C8 s1 T, G0 [
setbkcolor(YELLOW);
4 b6 j( X" }9 [- m5 jfor(i=0;i<=25;i++)" H) B. [- j% U+ M( O$ e
{
: {9 B# o7 c3 b5 n, Q% r# h' v+ j7 ^setcolor(8);; F, s/ s2 {, K+ B
circle(310,250,k);, \) n: U1 a$ U% d$ p
k=k+j;: D. Q2 b$ v1 D6 e
j=j+0.3;
* E4 _" e5 ^7 x; a2 c# N h, l& d}& D' a7 d7 J' i/ C2 `8 f. g, q
}
+ V; P, O1 p: ^, U; D( \% |2 L }==============================================================* X% _ k7 V" B1 e. U/ D j
【程序57】
2 L: P5 m: X( a. l& h2 b题目:画图,学用line画直线。* K, O) e7 T. v6 E5 {$ h! ]4 o
1.程序分析: 0 V6 ?( A: `2 i( i5 E% l6 r w2 [
2.程序源代码:$ W" l3 u. j5 i
#include "graphics.h", i) A: z- t0 q1 z2 O j1 m# I& G; d
main()# Q$ B L, ^$ c
{int driver,mode,i;% C& @: P1 h- w. e
float x0,y0,y1,x1;
& B8 R; N7 T# Dfloat j=12,k;
& N h9 q8 ]) V ?2 m' Gdriver=VGA;mode=VGAHI;
2 S/ u2 N' b5 r+ w+ t- m6 winitgraph(&driver,&mode,"");
, n! k B/ x2 B; W. q3 M, _setbkcolor(GREEN);( e% D6 c" j5 ~9 u6 U+ l
x0=263;y0=263;y1=275;x1=275;
4 ~8 H" J2 K) n2 g9 c4 H* Kfor(i=0;i<=18;i++)( F$ b' C, X% B3 @
{5 F+ Z2 D |7 {8 x6 @- S( j! E
setcolor(5);! _2 y! V) q5 V( `2 _
line(x0,y0,x0,y1);* Z/ k6 l- Y' ^# Y8 \
x0=x0-5;) k' v6 t: J8 `; P1 v
y0=y0-5;
0 o& n* G2 j6 [; Yx1=x1+5;
. ], V* {: _- V9 |y1=y1+5;+ j4 W" N: g9 ] C3 m
j=j+10;
0 T4 G" U. p8 j2 P2 \- I n' p* \}1 j/ g$ I3 m X6 K) ^9 R" E$ l
x0=263;y1=275;y0=263;7 k9 i* f. {5 E( n3 w
for(i=0;i<=20;i++)1 M. ]! F# P D) T1 q7 |7 ]
{0 F4 I0 g4 l# E; B6 p
setcolor(5);
6 J) Y# o; W1 a* i/ e2 pline(x0,y0,x0,y1);2 l* A, a! ]7 X K3 {( ^3 e; e) [
x0=x0+5;
; \- K* Y1 n* J* cy0=y0+5;
1 n5 F: b2 ~! p; G" o7 S# y0 My1=y1-5;
# M/ }$ L! Z& f9 h2 \3 C. \) F}/ Y) f9 k# p$ X" y% H/ L0 |9 U
}
9 C }% c! G7 q$ x1 R. K==============================================================
2 Z) m- G5 l+ V% Z【程序58】 K$ k2 X# E4 b
题目:画图,学用rectangle画方形。 + d! R2 K E9 J# Y2 q. N( Q8 p
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
5 \; w+ b# p A1 m' _& i2.程序源代码:
$ X) Y& W2 L, y3 V#include "graphics.h"
8 l& h6 H& J3 U& pmain()
7 S5 u9 C# {9 N. }) u{int x0,y0,y1,x1,driver,mode,i;
1 Z- D" A- }; n2 B k. z" `driver=VGA;mode=VGAHI;* M% r! u- g D. l% u% w& y
initgraph(&driver,&mode,"");/ l$ v& ]/ {6 ?* c. i6 d4 V
setbkcolor(YELLOW);
. h$ i$ s% e$ F6 i! C; Ex0=263;y0=263;y1=275;x1=275;+ U5 v1 R1 {* H9 T1 f- \5 ^2 v
for(i=0;i<=18;i++)
# |7 s7 Q: g% ^; d" f t7 r{
; f9 X& L$ M7 A7 C/ Jsetcolor(1);* B6 g. g- o. `+ g1 ]% }7 ^1 X
rectangle(x0,y0,x1,y1);8 Q+ [7 H. w7 K7 U: a2 m4 M* H
x0=x0-5;
, p [. a6 y$ u+ O D4 Z; ^6 F: by0=y0-5;3 L+ F% a/ n1 D. {7 d) ?1 {: @
x1=x1+5;+ l! F" d8 \# Q) N2 B2 @* ^+ R
y1=y1+5;0 }+ M. K3 X' S7 E* u2 D
}- |$ u6 }7 E; q
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
, `0 e _# `6 I8 Douttextxy(150,40,"How beautiful it is!");' R. {' V, y0 `; V. A; x4 V: v
line(130,60,480,60);
, v5 R* V1 M4 u0 | y9 Zsetcolor(2);1 c. S: ]9 c" @: k& P/ ~! |/ h
circle(269,269,137);; N0 K1 ]& ^' e6 E; G% R: S
}$ e4 `, D; F8 U9 T% L& s i& Q
==============================================================* H! }/ }8 H5 V% M7 G$ k& ]" `
【程序59】- u: `. @7 ^, S3 R3 R; T
题目:画图,综合例子。# w* @( W7 ]6 m2 |2 X# b
1.程序分析:
# s" S4 T& e% Y8 }! e: Z2.程序源代码:
3 v; l6 e2 [% i2 F- q0 F# define PAI 3.1415926. c5 t: W! y$ V; P) T- g
# define B 0.809
0 E$ h! g( w% z) ?& l( K/ v/ C8 @( {# include "graphics.h"
. Z6 E8 w1 n' _+ V$ O#include "math.h"6 N. S* _; n1 O/ W* g, E. t( _1 t
main()" ?% T; \2 @: l& a6 q- W% G
{: g4 j; F3 g( g
int i,j,k,x0,y0,x,y,driver,mode;
8 O) M# \8 A; M5 e* dfloat a;5 V# e* J! o+ z& L* |
driver=CGA;mode=CGAC0;# Q" Y+ x& p+ E/ A9 K
initgraph(&driver,&mode,"");7 t& C% f9 V3 w/ l1 [! Y( ]
setcolor(3);' h2 M+ b' `1 a+ J R; w! r9 a
setbkcolor(GREEN);
3 F3 ]- U1 x& ]* ^) V }x0=150;y0=100;6 T: X4 i& u& D9 p/ }
circle(x0,y0,10);3 v' R4 I# C0 ~* g2 R; x
circle(x0,y0,20);! A0 v, c: Y" [3 P% |' f
circle(x0,y0,50);" B$ R' A. a% r ? H! i7 `6 R" V
for(i=0;i<16;i++). F5 H) m0 {6 [& C* F7 h
{
5 m0 i% c" Y2 L/ G a=(2*PAI/16)*i;
3 }& B/ v/ u B p" p% p x=ceil(x0+48*cos(a));7 i0 v0 \7 y. k6 x9 U* p
y=ceil(y0+48*sin(a)*B);' L4 ~7 _! t9 e9 s. h
setcolor(2); line(x0,y0,x,y);}4 d& o1 w! |2 Z, }6 P4 r
setcolor(3);circle(x0,y0,60);8 u/ f6 g( j# i8 M8 [3 D
/* Make 0 time normal size letters */
$ Y5 x2 J {' Z: C/ Qsettextstyle(DEFAULT_FONT,HORIZ_DIR,0);" E+ {7 w! d8 f: C v+ i: x
outtextxy(10,170,"press a key");5 u1 B" E) S6 D9 Y/ Q) d: ~
getch();
+ i5 Z+ V6 }# M y: z+ F' hsetfillstyle(HATCH_FILL,YELLOW);( q1 f$ a. B' f" x- }
floodfill(202,100,WHITE);
" d* F7 {/ s& N( B' bgetch();
3 v) a/ r+ D5 h/ z4 e/ Jfor(k=0;k<=500;k++)8 }( U, @4 S. W+ j. u0 i0 A4 b
{
' v; |9 D/ r6 {* N! X) l setcolor(3);
0 r* t, w) m/ b7 z3 L- f# ?2 f for(i=0;i<=16;i++)
+ f' K3 S# R2 z2 K8 K {
# b5 H' p/ z/ I; v a=(2*PAI/16)*i+(2*PAI/180)*k;
' ^/ B( o4 g7 }5 g' s x=ceil(x0+48*cos(a));/ v% N( B( Z6 b$ i% \
y=ceil(y0+48+sin(a)*B);% t2 q9 [+ n$ X0 x
setcolor(2); line(x0,y0,x,y);5 k2 ?3 |* G7 {* M9 s) h
}. }. w: C( p5 _4 p. i7 [6 R
for(j=1;j<=50;j++)
3 J* L! c6 T7 X2 w {9 Q6 I7 M9 g7 p+ C% L7 k3 T8 n0 q+ B
a=(2*PAI/16)*i+(2*PAI/180)*k-1;
1 q4 t" `; L. x1 {" j( } x=ceil(x0+48*cos(a));: S- U/ U/ k' }& }5 |5 s
y=ceil(y0+48*sin(a)*B);
# N4 q1 `. E3 V& g% W! @3 |% R% O! r line(x0,y0,x,y);
N( h* u; K4 a$ K( \& M: O4 N }
0 ?" L/ h+ E3 j, I4 B4 ~1 u+ K, Z" p: l s}
/ G7 n' V" h: s5 G; N. G1 Zrestorecrtmode();
d" L/ x; R o7 d, h}
8 ^+ J; {5 q- W4 ^==============================================================* I0 l8 P( [$ S/ F; @9 }# b
【程序60】
# E* Y, S6 G, ~# f# S( J1 S题目:画图,综合例子。 * Q" H ? B& r9 U7 X" H9 K
1.程序分析:+ k: Y) q& t! O' N
2.程序源代码:
! M1 @2 f+ o) {" L+ W' S#include "graphics.h"
1 l6 h8 `1 `, R' E0 u#define LEFT 0
+ _& [2 ^. ?# Q#define TOP 0% ?) a7 E/ x6 r( i/ H* {7 v: b
#define RIGHT 639) f4 ^/ O. R8 R7 d- [+ K: `5 q, o
#define BOTTOM 479! y3 S, w, V) D: B
#define LINES 400
0 @! Y: \! T" o1 \+ p#define MAXCOLOR 15
; o" p" U' N! {1 Zmain(). e D! p5 @6 X8 z" Y* o9 C$ C
{* ?$ H* k: T$ B3 b( C
int driver,mode,error;; {& D& c* O) x1 i9 _3 W4 n
int x1,y1;
* z) v5 ^3 e8 V* f4 Qint x2,y2;
8 M6 N- k. G2 V) tint dx1,dy1,dx2,dy2,i=1;
; v3 m" b- t3 g' r6 V, k4 }+ hint count=0;9 h" J% T! X2 z/ ^ A6 m
int color=0;
l: v( ^$ b9 H+ Z" [" z% g5 \/ o% odriver=VGA;
' l6 j% L% a6 w2 emode=VGAHI;
7 j m K5 O1 p& G8 Zinitgraph(&driver,&mode,"");
7 E K, Y; o7 w" [x1=x2=y1=y2=10;
5 X( r- ] L$ u0 _! O+ }0 f/ {dx1=dy1=2;
- H: E8 }: R* t7 _dx2=dy2=3;
b0 ]$ z8 C& l4 S ewhile(!kbhit())
- o1 L4 k5 \7 Q$ w{. E ]( A; {) A1 S/ j' d6 S, M
line(x1,y1,x2,y2);
6 ]8 C0 g, P6 \4 y* _% i" M. h x1+=dx1;y1+=dy1;% z7 p* I" i& _3 |0 I) L* H, ]( f
x2+=dx2;y2+dy2;
# u6 i/ g9 n1 k+ a8 J1 t if(x1<=LEFT||x1>=RIGHT)
2 w" Z9 L6 f, j8 U' k! [+ r% s dx1=-dx1;" a! n( z6 |+ S" S; i( x' y( o1 |/ g! o
if(y1<=TOP||y1>=BOTTOM), q* U3 C. k$ K7 U4 C- C$ e7 o
dy1=-dy1;
; f0 y& O! `% I7 Y if(x2<=LEFT||x2>=RIGHT)& L# }* A) g3 i2 C7 v1 N
dx2=-dx2;
1 A2 C! L, D h& H4 O if(y2<=TOP||y2>=BOTTOM)
2 l- G. V9 d5 n0 J! ]% y0 L dy2=-dy2;
( r2 W* |+ K9 e# b6 ^) l if(++count>LINES)
( U) P& M, X" @" \ {
) z* E! f, r4 u6 l4 T setcolor(color);
0 Y+ u$ w, Z% Z color=(color>=MAXCOLOR)?0:++color;6 P1 M, ^0 R0 U: |" r1 G
}* s! P$ G% k+ B; l W! [- g1 t
}
1 m5 M! ?% `" i0 e9 Tclosegraph();
; j5 h/ n3 ], B7 h2 U" `; f6 R N} |