1、C程序源代码2题目:#include 的应用练习1.程序分析:2.程序源代码:test.h 文件如下:#define LAG #define SMA #define EQ =主文件如下:#include test.h /*一个新文件50.c,包含test.h*/#include stdio.h#include conio.hvoid main() int i=10; int j=20; if(i LAG j) printf(40: %d larger than %d n,i,j);题目:学习使用按位或 | 。1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=12.程序源代码:#i
2、nclude stdio.hmain()int a,b;a=077;b=a|3;printf(40: The a & b(decimal) is %d n,b);b|=7;printf(40: The a & b(decimal) is %d n,b);=题目:学习使用按位异或 。1.程序分析:00=0; 01=1; 10=1; 11=02.程序源代码:#include stdio.hmain()int a,b;a=077;b=a3;printf(40: The a & b(decimal) is %d n,b);b=7;printf(40: The a & b(decimal) is %d
3、n,b);=题目:取一个整数a从右端开始的47位。程序分析:可以这样考虑: (1)先使a右移4位。(2)设置一个低4位全为1,其余全为0的数。可用(04;c=(04);d=b&c;printf(%on%on,a,d);=题目:学习使用按位取反。1.程序分析:0=1; 1=0;2.程序源代码:#include stdio.hmain()int a,b;a=234;b=a;printf(40: The as 1 complement(decimal) is %d n,b);a=a;printf(40: The as 1 complement(hexidecimal) is %x n,a); =题目
4、:画图,学用circle画圆形。1.程序分析:2.程序源代码:/*circle*/#include graphics.hmain()int driver,mode,i;float j=1,k=1;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(YELLOW);for(i=0;i=25;i+)setcolor(8);circle(310,250,k);k=k+j;j=j+0.3; =题目:画图,学用line画直线。1.程序分析:2.程序源代码:#include graphics.hmain()int driver,mode,i
5、;float x0,y0,y1,x1;float j=12,k;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(GREEN);x0=263;y0=263;y1=275;x1=275;for(i=0;i=18;i+)setcolor(5);line(x0,y0,x0,y1);x0=x0-5;y0=y0-5;x1=x1+5;y1=y1+5;j=j+10;x0=263;y1=275;y0=263;for(i=0;i=20;i+)setcolor(5);line(x0,y0,x0,y1);x0=x0+5;y0=y0+5;y1=y1-
6、5;=题目:画图,学用rectangle画方形。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:#include graphics.hmain()int x0,y0,y1,x1,driver,mode,i;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(YELLOW);x0=263;y0=263;y1=275;x1=275;for(i=0;i=18;i+)setcolor(1);rectangle(x0,y0,x1,y1);x0=x0-5;y0=y0-5;x1=x1+5;y1
7、=y1+5;settextstyle(DEFAULT_FONT,HORIZ_DIR,2);outtextxy(150,40,How beautiful it is!);line(130,60,480,60);setcolor(2);circle(269,269,137);=题目:画图,综合例子。1.程序分析:2.程序源代码:# define PAI 3.1415926# define B 0.809# include graphics.h#include math.hmain()int i,j,k,x0,y0,x,y,driver,mode;float a;driver=CGA;mode=CG
8、AC0;initgraph(&driver,&mode,);setcolor(3);setbkcolor(GREEN);x0=150;y0=100;circle(x0,y0,10);circle(x0,y0,20);circle(x0,y0,50);for(i=0;i16;i+)a=(2*PAI/16)*i;x=ceil(x0+48*cos(a);y=ceil(y0+48*sin(a)*B);setcolor(2); line(x0,y0,x,y);setcolor(3);circle(x0,y0,60);/* Make 0 time normal size letters */settext
9、style(DEFAULT_FONT,HORIZ_DIR,0);outtextxy(10,170,press a key);getch();setfillstyle(HATCH_FILL,YELLOW);floodfill(202,100,WHITE);getch();for(k=0;k=500;k+)setcolor(3);for(i=0;i=16;i+)a=(2*PAI/16)*i+(2*PAI/180)*k;x=ceil(x0+48*cos(a);y=ceil(y0+48+sin(a)*B);setcolor(2); line(x0,y0,x,y);for(j=1;j=50;j+)a=(
10、2*PAI/16)*i+(2*PAI/180)*k-1;x=ceil(x0+48*cos(a);y=ceil(y0+48*sin(a)*B);line(x0,y0,x,y);restorecrtmode();=题目:画图,综合例子。1.程序分析:2.程序源代码:#include graphics.h#define LEFT 0#define TOP 0#define RIGHT 639#define BOTTOM 479#define LINES 400#define MAXCOLOR 15main()int driver,mode,error;int x1,y1;int x2,y2;int
11、dx1,dy1,dx2,dy2,i=1;int count=0;int color=0;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,);x1=x2=y1=y2=10;dx1=dy1=2;dx2=dy2=3;while(!kbhit()line(x1,y1,x2,y2);x1+=dx1;y1+=dy1;x2+=dx2;y2+dy2;if(x1=RIGHT)dx1=-dx1;if(y1=BOTTOM)dy1=-dy1;if(x2=RIGHT)dx2=-dx2;if(y2=BOTTOM)dy2=-dy2;if(+countLINES)setcolor(
12、color);color=(color=MAXCOLOR)?0:+color;closegraph();经典c程序100例=61-70题目:打印出杨辉三角形(要求打印出10行如下图)1.程序分析: 11 11 2 11 3 3 11 4 6 4 11 5 10105 1 2.程序源代码:#include stdio.h#include conio.hmain() int i,j; int a1010; printf(n); for(i=0;i10;i+) ai0=1; aii=1; for(i=2;i10;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=
13、0;i10;i+) for(j=0;j=i;j+) printf(%5d,aij); printf(n); getch(); =题目:学习putpixel画点。1.程序分析:2.程序源代码:#include stdio.h#include conio.h#include graphics.hmain() int i,j,driver=VGA,mode=VGAHI; initgraph(&driver,&mode,); setbkcolor(YELLOW); for(i=50;i=230;i+=20) for(j=50;j=230;j+) putpixel(i,j,1); for(j=50;j=
14、230;j+=20) for(i=50;i=230;i+) putpixel(i,j,1); getch();=题目:画椭圆ellipse1.程序分析:2.程序源代码:#include stdio.h#include graphics.h#include conio.hmain() int x=260,y=160,driver=VGA,mode=VGAHI; int num=20,i; int top,bottom; initgraph(&driver,&mode,); top=y-30; bottom=y-30; for(i=0;inum;i+) ellipse(x,250,0,360,to
15、p,bottom); top-=5; bottom+=5; getch();=题目:利用ellipse and rectangle 画图。1.程序分析:2.程序源代码:#include stdio.h#include graphics.h#include conio.hmain() int driver=VGA,mode=VGAHI; int i,num=15,top=50; int left=20,right=50; initgraph(&driver,&mode,); for(i=0;inum;i+) ellipse(250,250,0,360,right,left); ellipse(2
16、50,250,0,360,20,top); rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2); right+=5; left+=5; top+=10; getch();=题目:一个最优美的图案。1.程序分析:2.程序源代码:#include graphics.h#include math.h#include dos.h#include conio.h#include stdlib.h#include stdio.h#include stdarg.h#define MAXPTS 15#define PI 3.1415926struct PTSint x,y;do
17、uble AspectRatio=0.85;void LineToDemo(void) struct viewporttype vp; struct PTS pointsMAXPTS; int i, j, h, w, xcenter, ycenter; int radius, angle, step; double rads; printf( MoveTo / LineTo Demonstration ); getviewsettings( &vp ); h = vp.bottom - vp.top; w = vp.right - vp.left; xcenter = w / 2; /* De
18、termine the center of circle */ ycenter = h / 2; radius = (h - 30) / (AspectRatio * 2); step = 360 / MAXPTS; /* Determine # of increments */ angle = 0; /* Begin at zero degrees */ for( i=0 ; iMAXPTS ; +i ) /* Determine circle intercepts */ rads = (double)angle * PI / 180.0; /* Convert angle to radia
19、ns */ pointsi.x = xcenter + (int)( cos(rads) * radius ); pointsi.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); angle += step; /* Move to next increment */ circle( xcenter, ycenter, radius ); /* Draw bounding circle */ for( i=0 ; iMAXPTS ; +i ) /* Draw the cords to the circle */ for( j=i ;
20、 jn2) swap(pointer1,pointer2); if(n1n3) swap(pointer1,pointer3); if(n2n3) swap(pointer2,pointer3); printf(the sorted numbers are:%d,%d,%dn,n1,n2,n3); getch();swap(p1,p2)int *p1,*p2; int p; p=*p1; *p1=*p2; *p2=p;=题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。1.程序分析:谭浩强的书中答案有问题。2.程序源代码:#include stdio.h#includ
21、e conio.hmain() int number10; input(number); max_min(number); output(number); getch();input(number)int number10; int i; for(i=0;i9;i+) scanf(%d,&numberi); scanf(%d,&number9);max_min(array)int array10; int *max,*min,k,l; int *p,*arr_end; arr_end=array+10; max=min=array; for(p=array+1;p*max) max=p; el
22、se if(*p*min) min=p; k=*max; l=*min; *p=array0;array0=l;l=*p; *p=array9;array9=k;k=*p; return;output(array)int array10; int *p; for(p=array;parray+9;p+) printf(%d,*p); printf(%dn,array9);=题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数1.程序分析:2.程序源代码:#include stdio.h#include conio.hmain() int number20,n,m,i; printf(the total numbers is:); scanf(%d,&n); printf(back m:); scanf(%d,&m); for(i=0;in-1;i+) scanf(%d,&numberi); scanf(%d,&numbern-1); move(number,n,m); for(i=0;in-1;i+) printf(%d,numberi); printf(%d,numbern-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1