网站首页  学校简介  PHP培训  就业类培训  短期类培训  设计类培训  会计培训  电脑园地  证书说明  在线留言  上课地址  讨论区


    就业求职课程推荐
PHP开发工程师就业
ASP.net开发工程师
网页设计师就业班
平面设计师就业班
室内设计师就业班
专业排版师就业班

    计算机培训课程
LAMP开发工程师培 ASP开发工程师培训
DIV CSS网站布局培 平面设计师培训
电脑维修工程师培 计算机二级培训
飞腾排版师培训 华光排版师培训
商务办公师培训 室内设计师培训
网页设计师培训 PHP开发工程师培训
计算机一级培训 Linux网络工程培训
     
    您现在的位置: >> 中亚首页 >> 电脑园地 >> C语言经典题目题解之一  
     
 
C语言经典题目题解之一
来源:北京中亚学校  发表时间:2007年6月17日  共有人访问

【程序1】

一、题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?它们都是多少?

二、程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
       掉不满足条件的排列。

三、程序源代码

main()
{ int i,j,k;
printf("n");
 for(i=1;i<5;i++)    /*以下为三重循环*/
   for(j=1;j<5;j++)
     for(k=1;k<5;k++)
      {
      if(i!=k&&i!=j&&j!=k)   /*确保i、j、k三位互不相同*/
      printf(" %d%d%d",i,j,k);
        }
}

 

【程序2】

一、题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高
    于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提
    成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于
    40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于
    100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

二、程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
      
三、程序源代码

main()
 { long int i;
  long  bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
 scanf("%ld",&i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
 if(i<=100000)
   bonus=i*0.1;
    else if(i<=200000)
      bonus=bonus1+(i-100000)*0.075;
        else if(i<=400000)
           bonus=bonus2+(i-200000)*0.05;
           else if(i<=600000)
      bonus=bonus4+(i-400000)*0.03;
          else if(i<=1000000)
             bonus=bonus6+(i-600000)*0.015;
              else
              bonus=bonus10+(i-1000000)*0.01;
 printf("bonus=%ld",bonus);
}


【程序3】

一、题目:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?

二、程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
       的结果满足如下条件,即是结果。

三、程序源代码
#include "math.h"
main()
{long int i,x,y;
  for (i=1;i<100000;i++)
   { x=sqrt(i+100);     /*x为加上100后开方后的结果*/
      y=sqrt(i+268);      /*y为再加上168后开方后的结果*/
      if(x*x==i+100&&y*y==i+268)  /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
   printf("n%ldn",i);

            }
      }


【程序4】

一、题目:输入某年某月某日,判断这一天是这一年的第几天?

二、程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
       情况,闰年且输入月份大于3时需考虑多加一天。

三、程序源代码
main()
{
int day,month,year,sum,leap;
printf("please input year,month,dayn");
scanf("%d%d%d",&year,&month,&day);
switch(month)             /*先计算某月以前月份的总天数*/
{    case 1:sum=0;break;
     case 2:sum=31;break;
     case 3:sum=59;break;
     case 4:sum=90;break;
     case 5:sum=120;break;
     case 6:sum=151;break;
     case 7:sum=181;break;
     case 8:sum=212;break;
     case 9:sum=243;break;
     case 10:sum=273;break;
     case 11:sum=304;break;
     case 12:sum=334;break;
      default:printf("data error");break;
      }
     sum=sum+day;     /*再加上某天的天数*/
    if(year%400==0||(year%4==0&&year%100!=0))  /*判断是不是闰年*/
       leap=1;
       else
       leap=0;
      if(leap==1&&month>2)    /*如果是闰年且月份大于2,总天数应该加一天*/
     sum++;
   printf("It is the %dth day.",sum);
}


【程序5】

一、题目:输入三个整数x,y,z,请把这三个数由小到大输出。

二、程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
       然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

三、程序源代码

main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d %dn",x,y,z);
}

作者:北京中亚学校
标签:C语言
打印】 【关闭
 
     
中国总机电话实名:95001000转北京中亚学校 在线QQ:93946341 中亚电话:010-51692691 010-64178470 中亚邮箱:zhongya@vip.163.com
网络实名:北京PHP培训|北京电脑培训|北京中亚电脑学校|北京计算机学校|北京计算机培训学校|计算机培训
招聘信息 | 人才信息 | 就业指导 | 友情链接 | 证书查询 | 工具下载 | 网站建设
学校地址:北京市东城区东直门外东中街32号楼(东环广场路东侧)
电话:010-51692691 010-64178470 QQ:93946341
北京中亚学校版权©所有  京ICP备05011382号