全国计算机等考二级C语言:程序设计实战(11)

日期:12-29| http://www.59wj.com |C模拟题|人气:369

全国计算机等考二级C语言:程序设计实战(11)

  经典c程序100例==61--70

  【程序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()

  {int i,j;

  int a[10][10];

  printf("\n");

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

  {a[i][0]=1;

  a[i][i]=1;}

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

  for(j=1;j

  a[i][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[i][j]);

  printf("\n");

  }

  }

www.59wj.com

  【程序62】

  题目:学习putpixel画点。

  1.程序分析:

  2.程序源代码:

  #include "stdio.h"

  #include "graphics.h"

  main()

  {

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

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

  putpixel(i,j,1);

  }

www.59wj.com

  【程序63】

  题目:画椭圆ellipse

  1.程序分析:

  2.程序源代码:

  #include "stdio.h"

  #include "graphics.h"

  #include "conio.h"

  main()

  {

  int x=360,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;i

  {

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

  top-=5;

  bottom+=5;

  }

  getch();

  }
www.59wj.com

  【程序64】

  题目:利用ellipse and rectangle 画图。

  1.程序分析:

  2.程序源代码:

  #include "stdio.h"

  #include "graphics.h"

  #include "conio.h"

  main()

  {

  int driver=VGA,mode=VGAHI;

  int i,num=15,top=50;

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

  }
www.59wj.com

  【程序65】

  题目:一个最优美的图案。

  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.1415926

  struct PTS {

  int x,y;

  };

  double AspectRatio=0.85;

  void LineToDemo(void)

  {

  struct viewporttype vp;

  struct PTS points[MAXPTS];

  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; /* Determine 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 ; i

  rads = (double)angle * PI / 180.0; /* Convert angle to radians */

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

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

  angle += step; /* Move to next increment */

  }

www.59wj.com

  circle( xcenter, ycenter, radius ); /* Draw bounding circle */

  for( i=0 ; i

  for( j=i ; j

  moveto(points[i].x, points[i].y); /* Move to beginning of cord */

  lineto(points[j].x, points[j].y); /* Draw the cord */

  } } }

  main()

  {int driver,mode;

  driver=CGA;mode=CGAC0;

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

  setcolor(3);

  setbkcolor(GREEN);

  LineToDemo();}

  www.59wj.com

  【程序66】

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

  1.程序分析:利用指针方法。

  2.程序源代码:

  /*pointer*/

  main()

  {

  int n1,n2,n3;

  int *pointer1,*pointer2,*pointer3;

  printf("please input 3 number: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("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);

  }

  swap(p1,p2)

  int *p1,*p2;

  {int p;

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

  }
www.59wj.com

  【程序67】

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

  1.程序分析:谭浩强的书中答案有问题。

  2.程序源代码:

  main()

  {

  int number[10];

  input(number);

  max_min(number);

  output(number);

  }

  input(number)

  int number[10];

  {int i;

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

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

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

  }

  max_min(array)

  int array[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;

  else if(*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)

  int array[10];

  { int *p;

  for(p=array;p

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

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

  }
www.59wj.com

  【程序68】

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

  1.程序分析:

  2.程序源代码:

  main()

  {

  int number[20],n,m,i;

  printf("the total numbers is:");

  scanf("%d",&n);

  printf("back m:");

  scanf("%d",&m);

  for(i=0;i

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

  scanf("%d",&number[n-1]);

  move(number,n,m);

  for(i=0;i

  printf("%d,",number[i]);

  printf("%d",number[n-1]);

  }

  move(array,n,m)

  int n,m,array[20];

  {

  int *p,array_end;

  array_end=*(array+n-1);

  for(p=array+n-1;p>array;p--)

  *p=*(p-1);

  *array=array_end;

  m--;

  if(m>0) move(array,n,m);

  }
www.59wj.com

  【程序69】

  题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出

  圈子,问最后留下的是原来第几号的那位。

  1. 程序分析:

  2.程序源代码:

  #define nmax 50

  main()

  {

  int i,k,m,n,num[nmax],*p;

  printf("please input the total of numbers:");

  scanf("%d",&n);

  p=num;

  for(i=0;i

  *(p+i)=i+1;

  i=0;

  k=0;

  m=0;

  while(m

  {

  if(*(p+i)!=0) k++;

  if(k==3)

  { *(p+i)=0;

  k=0;

  m++;

  }

  i++;

  if(i==n) i=0;

  }

  while(*p==0) p++;

  printf("%d is left\n",*p);

  }
如果觉得《全国计算机等考二级C语言:程序设计实战(11)》C模拟题,jsj不错,可以推荐给好友哦。

本文Tags: 计算机等级考试 - 模拟试题 - 计算机二级模拟试题 - C模拟题,jsj,
在百度中搜索相关文章:全国计算机等考二级C语言:程序设计实战(11)
在谷歌中搜索相关文章:全国计算机等考二级C语言:程序设计实战(11)
在soso中搜索相关文章:全国计算机等考二级C语言:程序设计实战(11)
在搜狗中搜索相关文章:全国计算机等考二级C语言:程序设计实战(11)
相关分类导航|
热门推荐|