c语言习题解.docx

上传人:b****4 文档编号:24671715 上传时间:2023-05-30 格式:DOCX 页数:17 大小:18.08KB
下载 相关 举报
c语言习题解.docx_第1页
第1页 / 共17页
c语言习题解.docx_第2页
第2页 / 共17页
c语言习题解.docx_第3页
第3页 / 共17页
c语言习题解.docx_第4页
第4页 / 共17页
c语言习题解.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c语言习题解.docx

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

c语言习题解.docx

c语言习题解

编写一个程序,输出当年当月的月历。

#include

main()

{intyear,month,leap=0,days,mfirst=0,one,i;

 scanf("%d%d%d",&year,&month,&one);

 if(year%4==0&&year%100!

=0||year%400==0) leap=1;

 for(i=1;i<=month;i++)

   {

       switch(i){

           case1:

           case3:

           case5:

           case7:

           case8:

           case10:

           case12:

days=31;break;

           case2:

               if(leap==1) days=29;

               else days=28;

               break;

           case4:

           case6:

           case9:

           case11:

days=30;break;

       }

       mfirst+=days;

   }

   mfirst-=days;  

 

   mfirst=mfirst+one;

   mfirst=mfirst%7;

   printf("days=%d\n",days);

   printf("Sun\tMon\tTue\tWed\tThu\tFri\tSat\n");

   for(i=1;i<=mfirst;i++)

   {

     printf("\t");

   }

   for(i=1;i<=days;i++)

   {if(mfirst%7==0)printf("\n");

     printf("%d\t",i);

     mfirst++;

    }

    getch();

 }

P596输入100个数,统计其中偶数的平均值

#include

main()

{

   inti,j,sum=0,count=0;

   for(i=1;i<=100;i++)

   {

       scanf("%d",&j);

       if(j%2==0)

       {  

           sum=sum+j;     

           count++;       

       }

    }

   printf("偶数的平均值是:

%f",sum*1.0/count);

   getch();

}

 

 

输入一个正整数,输出这个整数的所有因子

#include

 

intmain(void)

{

   inta,i; 

   printf("请输入一个正整数:

");

   scanf("%d",&a);

   if(a<=0)

   {

      printf("输入的数不是正数");

      return1;

   }

   printf("%d的因子有:

\n",a);

   for(i=1;i<=a;i++)

   {

      if(a%i==0)

      {

          printf("%d",i);

      }

   }

   return0;

}

 

输入一行英文句子,输出到屏幕上,

并将每个单词的首字符改写成大写字母

#include

voidmain()

{

 intword=0;

 charc;

 

 while((c=getchar())!

='\n')

   if(c==''){word=0;putchar(c); }

   elseif(word==0)

    {word=1;

      if(c>='a'&&c<='z') putchar(c-32);

      elseputchar(c);

    }

   elseputchar(c);

 }

 

输出100以内的所有素数,每行输出5个

#include"stdio.h"

main()

{

   intm,i,count=0;

   for(m=2;m<=100;m++)

   {for(i=2;i<=m-1;i++)

       if(m%i==0)break;

     if(i==m)

     {

        printf("%5d",m);

        count++;

        if(count%5==0)printf("\n");

      }

 

   }

 }

 输入4个整数,输出最大最小值

#include

 

intmain(void)

{

   intmax=-32768,min=32767;

   inti,j;

   printf("请输入4个整数:

");

   for(i=1;i<=4;i++)

   {

      scanf("%d",&j); 

      if(j>max) max=j;

      if(j

   }

   printf("\n最大值是:

%d,最小值是:

%d",max,min);

   

   return0;

}

 

水仙花数

解一:

#include"stdio.h"

main()

{

 intb,s,g,n;

 for(b=1;b<=9;b++)

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

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

     {n=100*b+10*s+g;

       if(n==b*b*b+s*s*s+g*g*g)printf("%d,",n);

     }

}

解二:

#include"stdio.h"

main()

{

 intb,s,g,n;

 for(n=100;n<=999;n++)

 {b=n/100;

   s=n%100/10;

   g=n%10;

   if(n==b*b*b+s*s*s+g*g*g)printf("%d,",n);

 }

}

输出1*2*3+2*3*4+....+99*100*101

#include

 intmain(void)

{

   longi,j,sum=0;  

   for(i=1;i<100;i++)

   {

       j=i*(i+1)*(i+2);

       sum+=j;

    }

   printf("%ld",sum);

   getch();

   return0;

}

 

三色球红3白3黑6取8

#include

main()

{inti,j,k;

 printf("red white black\n");

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

    for(j=0;j<=3;j++)

    {k=8-i-j;

      if(k>=0&&k<=6)printf("%d    %d     %d\n",i,j,k);

    }

 }

 

计算1-1/2+1/3-…+1/99-1/100+…

直至最后项的绝对值小于10-4为止。

#include

#include

main()

{floaty=0,temp,s=1;

 inti=1;

 do{temp=s/i;

     y=y+temp;

     i++;

     s=-s;

   }while(fabs(temp)>=1e-4);

 printf("1-1/2+...+1/99-1/100=%f\n",y);

 }

 

求解100的所有质因子

解一:

#include

main()

{intm,i,n,k;

 scanf("%d",&m);         /*m被求质因子的数*/

 k=m/2;                  /*质因子在2到k之间*/

 for(i=2;i<=k;i++)       /*在2到k之间求质因子*/

  if(m%i==0)             /*判断i如果是因子*/

   {for(n=2;n

      if(i%n==0)break;

     if(n==i)           /*i是质因子*/

      printf("%d ",i);

    }

}

  

P1215.查找一个整数key

#include

#include

main()

{intnum[100],i,key,found=0;

 randomize();

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

    num[i]=random(100);

 printf("inputlookfornumber:

");

 scanf("%d",&key);

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

  if(num[i]==key)

   {printf("num[%d]=%d, ",i,num[i]);

     found=1;

   }

 if(found==0)printf("notfound\n");

 getch();

}

 

软件下载次数排序

#include

#include

main()

{intnum[101],count[101],i,j,k,temp;

 randomize();

 for(i=1;i<101;i++)

    num[i]=i;

 for(i=1;i<101;i++)

    count[i]=random(100);

 for(i=1;i<100;i++)

 {k=i;

   for(j=i+1;j<101;j++)

     if(count[k]

   if(k!

=i)

   {temp=count[i];count[i]=count[k];count[k]=temp;

     temp=num[i];num[i]=num[k];num[k]=temp;

   }

 }

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

   printf("bian_hao:

%d,ci_shu:

%d,",num[i],count[i]);

 printf("\n0_count:

");

 for(i=1;i<101;i++)

   if(count[i]==0)printf("%d,",num[i]);

 getch();

}

 

统计单词数目

#include

voidmain()

{charstring[81];

 inti,num=0,word=0;

 charc;

 gets(string);

 for(i=0;(c=string[i])!

=‘\0’;i++)

   if(c==‘’)word=0;

   elseif(word==0)

    {word=1;

      num++;

     }

 printf(“Thereare%dwords.\n”,num);

}

 

排序:

输入n个值,选择排序,挑选出前m个数值,立即结束。

#include

#definenum100

main()

{inta[num],i,j,k,n,m,temp;

 printf("n=?

(n<100),m=?

(m

 scanf("%d%d",&n,&m);

 for(i=0;i

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

 for(i=0;i

 {k=i;

   for(j=i+1;j

     if(a[j]

   temp=a[i];

   a[i]=a[k];

   a[k]=temp;

  }

 for(i=0;i

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

getch();

}

 输出年、月、日。

#include

#include

main()

{chardate[11];

 charmm[3];

 intmonth,day,year;

 printf("inputdate(mm/dd/yyyy)?

");

 gets(date);

 month=(date[0]-'0')*10+date[1]-'0';

 day=(date[3]-'0')*10+date[4]-'0';

 year=(date[6]-'0')*1000+(date[7]-'0')*100+(date[8]-'0')*10+date[9]-'0';

 switch(month)

 {case1:

strcpy(mm,"Jan");break;

   case2:

strcpy(mm,"Feb");break;

   case3:

strcpy(mm,"Mar");break;

   case4:

strcpy(mm,"Apr");break;

   case5:

strcpy(mm,"May");break;

   case6:

strcpy(mm,"Jun");break;

   case7:

strcpy(mm,"Jul");break;

   case8:

strcpy(mm,"Aug");break;

   case9:

strcpy(mm,"Sep");break;

   case10:

strcpy(mm,"Oct");break;

   case11:

strcpy(mm,"Nov");break;

   case12:

strcpy(mm,"Dec");break;

  }

  printf("%s,%d,%d\n",mm,day,year);

  getch();

 }

 

输出1000以内的所有素数

解:

#include

intisPrime(intx)

{

 inti;

 for(i=2;i

 {

    if(x%i==0)break;

 }

 if(i==x)

   return1;      

 else

   return0;

}

main()

{

 inty,line=0;       

 for(y=1;y<=1000;y++)

 {

   if(isPrime(y))

   {

      printf("%5d",y);

      line++; 

     if(line%8==0)printf("\n");

   }

 }

}

或:

intisPrime(intx)

{

 inti;

 for(i=2;i

    if(x%i==0)return0;

 }

 return1;      

}

 

 将给定字符串中的所有字母改成小写字母。

#include

#include

voidfunc(charstr[])

{

 inti;

 for(i=0;str[i]!

='\0';i++)

 {

    if(str[i]>='A'&&str[i]<='Z')

      str[i]=str[i]+32;

 }

}

main()

{

 char str[100];

 printf("pleaseinputastring:

");

 gets(str);

 func(str);

 printf("%s",str); 

}

 

 求1*2+2*3+3*4+……+n*(n+1)

解:

#include

longfunc(intx)

{

 longinti,sum=0;

 for(i=1;i<=x;i++)

 {

   sum+=i*(i+1);

 }

 returnsum;

}

main()

{

 intn;

 printf("\npleaseinputn=");

 scanf("%d",&n);

 printf("\nTheresultis:

%ld",func(n));

}

 

三角函数

解:

#include

#include

main()

{

 intn;

 doublex,y;

 printf("\n========MENU========");

 printf("\nsin................1");

 printf("\ncos................2");

 printf("\npow................3");

 printf("\nsqrt...............4");

 printf("\nexit...............5");

 printf("\nSelect:

");

 scanf("%d",&n);

 switch(n)

 {case1:

printf("inputdoublex:

");

           scanf("%lf",&x);

           y=sin(x);break;

   case2:

printf("inputdoublex:

");

           scanf("%lf",&x);

           y=cos(x);break;

   case3:

printf("inputdoublex y:

");

           scanf("%lf%lf",&x,&y);

           y=pow(x,y);break;

   case4:

printf("inputdoublex:

");

           scanf("%lf",&x);

           y=sqrt(x);break;

   case5:

exit();

   default:

printf("Error!

");

 }

 printf("y=%lf",y);

 }

  

100名职工输出低于300

#include

#defineNUM5

structWorkerInfo{

   charNumber[10];

   charname[10];

   floatwage;

};

voidmain()

{

   structWorkerInfowi[NUM];

   inti;

   floatsum=0;

   for(i=0;i

   {

       printf("Pleaseinputthe%dwoker'sinformation:

",i+1);

       scanf("%s",wi[i].Number); /*Number为数组名,不加&*/

       scanf("%s",wi[i].name);

       scanf("%f",&wi[i].wage);

 

       sum+=wi[i].wage;

   }

   printf("\nTheaveragewageis:

%f\n",sum/NUM);

   printf("Number   name     wage\n");

   for(i=0;i

   {

       if(wi[i].wage<300.00)

           printf("%s,%s,%6f\n",wi[i].Number,wi[i].name,wi[i].wage);

   }  

}

 

 

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

当前位置:首页 > 医药卫生 > 基础医学

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

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