就业数据资源平台
当前位置:首页 > C语言程序设计
2013年计算机二级考试C语言程序设计实战题3

题目1:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
  2.程序源代码:
  main()
  {
  long f1,f2;
  int i;
  f1=f2=1;
  for(i=1;i<=20;i++)
  { printf("%12ld %12ld",f1,f2);
  if(i%2==0) printf("n");/*控制输出,每行四个*/
  f1=f1+f2; /*前两个月加起来赋值给第三个月*/
  f2=f1+f2; /*前两个月加起来赋值给第三个月*/
  }
  }
题目2:判断101-200之间有多少个素数,并输出所有素数。
  1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
  2.程序源代码:
  #include "math.h"
  main()
  {
  int m,i,k,h=0,leap=1;
  printf("n");
  for(m=101;m<=200;m++)
  { k=sqrt(m+1);
  for(i=2;i<=k;i++)
  if(m%i==0)
  {leap=0;break;}
  if(leap) {printf("%-4d",m);h++;
  if(h%10==0)
  printf("n");
  }
  leap=1;
  }
  printf("nThe total is %d",h);
  }


题目3:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。


  1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。


  2.程序源代码:


  main()
  {
  int i,j,k,n;
  printf("'water flower'number is:");
  for(n=100;n<1000;n++)
  {
  i=n/100;/*分解出百位*/转自:考试网 - [Examw.Com]
  j=n/10%10;/*分解出十位*/
  k=n%10;/*分解出个位*/
  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
  {
  printf("%-5d",n);
  }
  }
  printf("\n");
  }


题目4:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。


  程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:


  (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。


  (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。


  (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。


  2.程序源代码:


  /* zheng int is divided yinshu*/
  main()
  {
  int n,i;
  printf("\nplease input a number:\n");
  scanf("%d",&n);
  printf("%d=",n);
  for(i=2;i<=n;i++)
  {
  while(n!=i)
  {
  if(n%i==0)
  { printf("%d*",i);www.ExamW.CoM
  n=n/i;
  }
  else
  break;
  }
  }
  printf("%d",n);}


题目5:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。


  1.程序分析:(a>b)?a:b这是条件运算符的基本例子。


  2.程序源代码:


  main()
  {
  int score;
  char grade;
  printf("please input a score\n");
  scanf("%d",&score);
  grade=score>=90?'A':(score>=60?'B':'C');
  printf("%d belongs to %c",score,grade);
  }

就业数据资源平台