C语言经典例题100例2.docx

上传人:b****5 文档编号:6198960 上传时间:2023-01-04 格式:DOCX 页数:17 大小:20.06KB
下载 相关 举报
C语言经典例题100例2.docx_第1页
第1页 / 共17页
C语言经典例题100例2.docx_第2页
第2页 / 共17页
C语言经典例题100例2.docx_第3页
第3页 / 共17页
C语言经典例题100例2.docx_第4页
第4页 / 共17页
C语言经典例题100例2.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言经典例题100例2.docx

《C语言经典例题100例2.docx》由会员分享,可在线阅读,更多相关《C语言经典例题100例2.docx(17页珍藏版)》请在冰豆网上搜索。

C语言经典例题100例2.docx

C语言经典例题100例2

C语言经典例题100例

(2)

2007年06月30日09:

27A.M.

【程序50】

题目:

#include的应用练习   

1.程序分析:

2.程序源代码:

test.h文件如下:

#defineLAG>

#defineSMA<

#defineEQ==

#include"test.h"/*一个新文件50.c,包含test.h*/

#include"stdio.h"

voidmain()

{inti=10;

intj=20;

if(iLAGj)

printf("\40:

%dlargerthan%d\n",i,j);

elseif(iEQj)

printf("\40:

%dequalto%d\n",i,j);

elseif(iSMAj)

printf("\40:

%dsmallerthan%d\n",i,j);

else

printf("\40:

Nosuchvalue.\n");

}

【程序51】

题目:

学习使用按位与&。

   

1.程序分析:

0&0=0;0&1=0;1&0=0;1&1=1

2.程序源代码:

#include"stdio.h"

main()

{

inta,b;

a=077;

b=a&3;

printf("\40:

Thea&b(decimal)is%d\n",b);

b&=7;

printf("\40:

Thea&b(decimal)is%d\n",b);

}

==============================================================

【程序52】

题目:

学习使用按位或|。

1.程序分析:

0|0=0;0|1=1;1|0=1;1|1=1            

2.程序源代码:

#include"stdio.h"

main()

{

inta,b;

a=077;

b=a|3;

printf("\40:

Thea&b(decimal)is%d\n",b);

b|=7;

printf("\40:

Thea&b(decimal)is%d\n",b);

}

==============================================================

【程序53】

题目:

学习使用按位异或^。

   

1.程序分析:

0^0=0;0^1=1;1^0=1;1^1=0

2.程序源代码:

#include"stdio.h"

main()

{

inta,b;

a=077;

b=a^3;

printf("\40:

Thea&b(decimal)is%d\n",b);

b^=7;

printf("\40:

Thea&b(decimal)is%d\n",b);

}

==============================================================

【程序54】

题目:

取一个整数a从右端开始的4~7位。

程序分析:

可以这样考虑:

(1)先使a右移4位。

(2)设置一个低4位全为1,其余全为0的数。

可用~(~0<<4)

(3)将上面二者进行&运算。

2.程序源代码:

main()

{

unsigneda,b,c,d;

scanf("%o",&a);

b=a>>4;

c=~(~0<<4);

d=b&c;

printf("%o\n%o\n",a,d);

}

==============================================================

【程序55】

题目:

学习使用按位取反~。

   

1.程序分析:

~0=1;~1=0;

2.程序源代码:

#include"stdio.h"

main()

{

inta,b;

a=234;

b=~a;

printf("\40:

Thea''s1complement(decimal)is%d\n",b);

a=~a;

printf("\40:

Thea''s1complement(hexidecimal)is%x\n",a);

}

==============================================================

【程序56】

题目:

画图,学用circle画圆形。

   

1.程序分析:

2.程序源代码:

/*circle*/

#include"graphics.h"

main()

{intdriver,mode,i;

floatj=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;

}

}

==============================================================

【程序57】

题目:

画图,学用line画直线。

1.程序分析:

           

2.程序源代码:

#include"graphics.h"

main()

{intdriver,mode,i;

floatx0,y0,y1,x1;

floatj=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-5;

}

}

==============================================================

【程序58】

题目:

画图,学用rectangle画方形。

   

1.程序分析:

利用for循环控制100-999个数,每个数分解出个位,十位,百位。

2.程序源代码:

#include"graphics.h"

main()

{intx0,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=y1+5;

}

settextstyle(DEFAULT_FONT,HORIZ_DIR,2);

outtextxy(150,40,"Howbeautifulitis!

");

line(130,60,480,60);

setcolor

(2);

circle(269,269,137);

}

==============================================================

【程序59】

题目:

画图,综合例子。

1.程序分析:

2.程序源代码:

#definePAI3.1415926

#defineB0.809

#include"graphics.h"

#include"math.h"

main()

{

inti,j,k,x0,y0,x,y,driver,mode;

floata;

driver=CGA;mode=CGAC0;

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;i<16;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);

/*Make0timenormalsizeletters*/

settextstyle(DEFAULT_FONT,HORIZ_DIR,0);

outtextxy(10,170,"pressakey");

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=(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();

}

==============================================================

【程序60】

题目:

画图,综合例子。

   

1.程序分析:

2.程序源代码:

#include"graphics.h"

#defineLEFT0

#defineTOP0

#defineRIGHT639

#defineBOTTOM479

#defineLINES400

#defineMAXCOLOR15

main()

{

intdriver,mode,error;

intx1,y1;

intx2,y2;

intdx1,dy1,dx2,dy2,i=1;

intcount=0;

intcolor=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<=LEFT||x1>=RIGHT)

 dx1=-dx1;

 if(y1<=TOP||y1>=BOTTOM)

  dy1=-dy1;

 if(x2<=LEFT||x2>=RIGHT)

  dx2=-dx2;

 if(y2<=TOP||y2>=BOTTOM)

  dy2=-dy2;

 if(++count>LINES)

 {

  setcolor(color);

  color=(color>=MAXCOLOR)?

0:

++color;

 }

}

closegraph();

}

【程序61】

题目:

打印出杨辉三角形(要求打印出10行如下图)   

1.程序分析:

     1

      1 1

      1 2 1

      1 3 3 1

      1 4 6 4 1

      1 5 10 10 5 1 

2.程序源代码:

main()

{inti,j;

inta[10][10];

printf("\n");

for(i=0;i<10;i++)

 {a[0]=1;

 a=1;}

for(i=2;i<10;i++)

 for(j=1;j

 a[j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++)

 {for(j=0;j<=i;j++)

 printf("%5d",a[j]);

 printf("\n");

 }

}

==============================================================

【程序62】

题目:

学习putpixel画点。

1.程序分析:

            

2.程序源代码:

#include"stdio.h"

#include"graphics.h"

main()

{

inti,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<=230;j+=20)

 for(i=50;i<=230;i++)

 putpixel(i,j,1);

}

==============================================================

【程序63】

题目:

画椭圆ellipse   

1.程序分析:

2.程序源代码:

#include"stdio.h"

#include"graphics.h"

#include"conio.h"

main()

{

intx=360,y=160,driver=VGA,mode=VGAHI;

intnum=20,i;

inttop,bottom;

initgraph(&driver,&mode,"");

top=y-30;

bottom=y-30;

for(i=0;i

{

ellipse(250,250,0,360,top,bottom);

top-=5;

bottom+=5;

}

getch();

}

==============================================================

【程序64】

题目:

利用ellipseandrectangle画图。

1.程序分析:

2.程序源代码:

#include"stdio.h"

#include"graphics.h"

#include"conio.h"

main()

{

intdriver=VGA,mode=VGAHI;

inti,num=15,top=50;

intleft=20,right=50;

initgraph(&driver,&mode,"");

for(i=0;i

{

ellipse(250,250,0,360,right,left);

ellipse(250,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();

}

==============================================================

【程序65】

题目:

一个最优美的图案。

   

1.程序分析:

2.程序源代码:

#include"graphics.h"

#include"math.h"

#include"dos.h"

#include"conio.h"

#include"stdlib.h"

#include"stdio.h"

#include"stdarg.h"

#defineMAXPTS15

#definePI3.1415926

structPTS{

intx,y;

};

doubleAspectRatio=0.85;

voidLineToDemo(void)

{

structviewporttypevp;

structPTSpoints[MAXPTS];

inti,j,h,w,xcenter,ycenter;

intradius,angle,step;

doublerads;

printf("MoveTo/LineToDemonstration");

getviewsettings(&vp);

h=vp.bottom-vp.top;

w=vp.right-vp.left;

xcenter=w/2;/*Determinethecenterofcircle*/

ycenter=h/2;

radius=(h-30)/(AspectRatio*2);

step=360/MAXPTS;/*Determine#ofincrements*/

angle=0;/*Beginatzerodegrees*/

for(i=0;i

rads=(double)angle*PI/180.0;/*Convertangletoradians*/

points.x=xcenter+(int)(cos(rads)*radius);

points.y=ycenter-(int)(sin(rads)*radius*AspectRatio);

angle+=step;/*Movetonextincrement*/

}

circle(xcenter,ycenter,radius);/*Drawboundingcircle*/

for(i=0;i

for(j=i;j

moveto(points.x,points.y);/*Movetobeginningofcord*/

lineto(points[j].x,points[j].y);/*Drawthecord*/

}}}

main()

{intdriver,mode;

driver=CGA;mode=CGAC0;

initgraph(&driver,&mode,"");

setcolor(3);

setbkcolor(GREEN);

LineToDemo();}

==============================================================

【程序66】

题目:

输入3个数a,b,c,按大小顺序输出。

   

1.程序分析:

利用指针方法。

2.程序源代码:

/*pointer*/

main()

{

intn1,n2,n3;

int*pointer1,*pointer2,*pointer3;

printf("pleaseinput3number:

n1,n2,n3:

");

scanf("%d,%d,%d",&n1,&n2,&n3);

pointer1=&n1;

pointer2=&n2;

pointer3=&n3;

if(n1>n2)swap(pointer1,pointer2);

if(n1>n3)swap(pointer1,pointer3);

if(n2>n3)swap(pointer2,pointer3);

printf("thesortednumbersare:

%d,%d,%d\n",n1,n2,n3);

}

swap(p1,p2)

int*p1,*p2;

{intp;

p=*p1;*p1=*p2;*p2=p;

}

==============================================================

【程序67】

题目:

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

1.程序分析:

谭浩强的书中答案有问题。

      

2.程序源代码:

main()

{

intnumber[10];

input(number);

max_min(number);

output(number);

}

input(number)

intnumber[10];

{inti;

for(i=0;i<9;i++)

 scanf("%d,",&number);

 scanf("%d",&number[9]);

}

max_min(array)

intarray[10];

{int*max,*min,k,l;

int*p,*arr_end;

arr_end=array+10;

max=min=array;

for(p=array+1;p

 if(*p>*max)max=p;

 elseif(*p<*min)min=p;

 k=*max;

 l=*min;

 *p=array[0];array[0]=l;l=*p;

 *p=array[9];array[9]=k;k=*p;

 return;

}

output(array)

intarray[10];

{int*p;

for(p=array;p

 printf("%d,",*p);

printf("%d\n",array[9]);

}

==============================================================

【程序68】

题目:

有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

1.程序分析:

2.程序源代码:

main()

{

intnumber[20],n,m,i;

printf("thetotalnumbersis:

");

scanf(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1