计算机二级

3773考试网计算机等级考试计算机二级正文

2011年计算机二级考试C语言经典程序设计100例(3)

来源:fjzsksw.com 2010-10-27 15:37:43

 

 

计算机二级]2011年计算机二级考试C语言经典程序设计100例(2) 10-27
[计算机二级]2011年计算机二级考试C语言经典程序设计100例(1)

 

 【程序11】
  题目:古典问题:有一对兔子,从出生后第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; /*前两个月加起来赋值给第三个月*/
  }
  }
  -----------------------------------------------------------------------------
  【程序12】
  题目:判断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);
  }
  -----------------------------------------------------------------------------
  【程序13】
  题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
  本身。例如: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;/*分解出百位*/
  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");
  }
  -----------------------------------------------------------------------------
  【程序14】
  题目:将一个正整数分解质因数。例如:输入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);
  n=n/i;
  }
  else
  break;
  }
  }
  printf("%d",n);}
  -----------------------------------------------------------------------------
  【程序15】
  题目:利用条件运算符的嵌套来完成此题:学习成绩>=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);
  }

 

 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1