二级C语言上机练习.docx

上传人:b****5 文档编号:3371011 上传时间:2022-11-22 格式:DOCX 页数:58 大小:36.44KB
下载 相关 举报
二级C语言上机练习.docx_第1页
第1页 / 共58页
二级C语言上机练习.docx_第2页
第2页 / 共58页
二级C语言上机练习.docx_第3页
第3页 / 共58页
二级C语言上机练习.docx_第4页
第4页 / 共58页
二级C语言上机练习.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

二级C语言上机练习.docx

《二级C语言上机练习.docx》由会员分享,可在线阅读,更多相关《二级C语言上机练习.docx(58页珍藏版)》请在冰豆网上搜索。

二级C语言上机练习.docx

二级C语言上机练习

1、求1*2*3*……….*10。

(循环)

答案

voidmain()

{

inti=0,j=1;

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

{

j*=i;

}

printf("%d",j);

return0;

}

2、求1+2+3+……….+100。

(循环)

答案

#include

voidmain()

{

 inti,sum=0;

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

 sum=sum+i;

 printf("%d",sum);

}

 3、 输入三个数字,输出他们的最大值。

(if)

答案

#include

voidmain()

{inta,b,c,d;

scanf("%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("max=%d",d);

getch();/*暂停看运行结果*/

}

intmax(intx,inty,intz)

{intu;

if(x>=y&&x>=z)

u=x;

elseif(y>=x&&y>=z)

u=y;

else

u=z;

return(u);

4.用起泡法对十个数据排序(数组实现)

答案

#include

main()

{ inti,j,t;

  staticinta[10]={5,7,4,2,3,6,1,0,9,8};

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

  {  for(i=0;i<9-j;i++)

      { if(a[i]>a[i+1])

         {t=a[i];a[i]=a[i+1];a[i+1]=t;

         }

      }

  }

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

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

}

5、输入十个数字,逆序输出。

(数组实现)

答案

#include

main()

{inta[10],i=0;

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

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

printf("\n");

for(i=9;i>=0;i--)

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

}

6输入两个数,交换他们的值并输出。

(元素交换)

答案

#include

intmain()

{

   intm,n,temp;

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

 if(m

 {

 temp=m;

 m=n;

 n=temp;

 }

 printf("%d",m);

   return0;

}

7.输出9*9乘法表。

(双层循环)

答案

#include

voidmain()

{

inti=1;

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

{

 intj=1;

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

 {

  printf("%d*%d=%d",i,j,i*j);

 }

 printf("\n");

}

}

8.输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其余字符不变。

输出转变后的这行字符。

答案

#include"stdio.h"

voidmain()

{

   chara[n];

   inti;

   scanf("%s",a);

   printf("大写为:

");

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

   {

      if(a[i]<='z'&&a[i]>='a')

      a[i]=a[i]-32;

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

   }

   printf("\n小写为:

");

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

   {

    a[i]=a[i]+32;

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

   }

}

9、 编写一个简单计算器程序,要求能够完成两个数的+,-,*,/四种运算。

输出运算式及运算结果。

(switch)

6.2

#include"stdio.h"

main()

{charc;inti=0,j=0,k=0,l=0;

while((c=getchar())!

=’\n’)

{if(c>=65&&c<=90||c>=97&&c<=122)i++;

elseif(c>=48&&c<=57)j++;

elseif(c==32)k++;

elsel++;}

printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);

}

6.6

#include"math.h"

main()

{intx=100,a,b,c;

while(x>=100&&x<1000){a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;

if(x==(pow(a,3)+pow(b,3)+pow(c,3)))printf("%5d",x);x++;}

}

6.7

main()

{intm,i,j,s;

for(m=6;m<10000;m++)

{s=1;

for(i=2;i

if(m%i==0)s=s+i;

if(m-s==0)

{printf("%5ditsfastorsare1",m);for(j=2;j

printf("%d",j);printf("\n");}

}

}

main()

{intm,i,j,s;

for(m=6;m<1000;m++)

{s=m-1;

for(i=2;i

if(m%i==0)s=s-i;

if(s==0)

{printf("%5ditsfastorsare1",m);for(j=2;j

printf("%d",j);printf("\n");}

}

}

6.8

main()

{inti=1,n;doublet,x=1,y=2,s,sum=0;

scanf("%ld",&n);

while(i<=n){s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;}

printf("%f\n",sum);

}

11,P128 例6.10(译码)

#include

voidmain()

{

charc;

while((c=getchar())!

='\n')

{

c=c+4;

if(c>'Z'+4||c>'z')

c=c-26;

}

printf("%c",c);

}

printf("\n");

}

12,P111 5.5 5.6(switch)

5.5

#include

main()

{intx,y;

printf("输入x:

");

scanf("%d",&x);

if(x<1)                       

{y=x;

printf("x=%3d,y=x=%d\n",x,y);

}

elseif(x<10)               

{y=2*x-1;

printf("x=%3d,y=2*x-1=%d\n",x,y);

}

else                   

{y=3*x-11;

printf("x=%3d,y=3*x-11=%d\n",x,y);

}

}

5.6

#include

main()

{floatscore;

chargrade;

case2:

printf("请输入学生成绩:

");

scanf("%f",&score);

while(score>100||(score<0)

{printf("\n输入有误,请重新输入:

");

scanf("%f",&score);

}

switch((int)(score/10))

{case10:

case9:

grade=’A’;break;

case8:

grade=’B’;break;

case7:

grade=’C’;break;

case6:

grade=’D’;break;

case5:

case4:

case3:

case1:

case0:

grade=’E’;

}

printf("成绩是%5.1f,相应的等级是%c。

\n",score,grade);

}

 

13,P108 例5.5(一元二次方程求根) 例5.6(求闰年)

5.5

#include

voidmain()

{

intyear,leap;

scanf("%d",&year);

if(year%4==0)

{

if(year%100==0)

{

if(year%400==0)

leap=1;

else

leap=0;

}

else

leap=1;

}

else

leap=0;

if(leap)

printf("%dis",year);

else

printf("%disnot",year);

printf("aleapyear.\n")

}

5.6

14,P31  例2.17  例2.18

2.17

输出50个学生中成绩高于80分者的学号和成绩

2.18

输出2000——2500年每一年是否闰年

#include

   voidmain()

   {

       intyear;

       year=2000;

     go:

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

=0))||(year%400==0))

          printf("%disrunnian",year);

       if(year<=2500)

          year=year++;

         if(year>2500)

          gotoend;       

     gotogo;

       end:

  getch();

      }

113道C语言题目,超经典的~~~

1.输入两个正整数,m和n,求其最大公约数和最小公倍数。

#include

voidmain()

{

 inthcf(int,int);     /*函数声明*/

 intlcd(int,int,int); /*函数声明*/

 intu,v,h,l;

 printf("Pleaseinputtwonumbers:

\n");

 scanf("%d,%d",&u,&v);

 h=hcf(u,v);

 printf("H.C.F=%d\n",h);

 l=lcd(u,v,h);

 printf("L.C.D=%d\n",l);

}

inthcf(intu,intv)

{

 intt,r;

 if(v>u)

 {t=u;u=v;v=t;}

 while((r=u%v)!

=0)

 {u=v;v=r;}

 return(v);

}

intlcd(intu,intv,inth)

{

 return(u*v/h);

}

2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。

#include

intletter,digit,space,others;

voidmain()

{

 voidcount(char[]);

 chartext[80];

 printf("Pleaseinputstring:

\n");

 gets(text);

 printf("string:

\n");

 puts(text);

 letter=0;

 digit=0;

 space=0;

 others=0;

 count(text);

 printf("letter:

%d,digit:

%d,space:

%d,others:

%d\n",letter,digit,space,others);

}

voidcount(charstr[])

{

 inti;

 for(i=0;str[i]!

='\0';i++)

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

   letter++;

  elseif(str[i]>='0'&&str[i]<='9')

   digit++;

  elseif(str[i]==32)

   space++;

  else

   others++;

}

3.输入一个正整数求出它是几位数;输出原数和位数。

#include

intdigit;

voidmain()

{

 voidcount(char[]);

 chartext[80];

 printf("Pleaseinputnumbers:

\n");

 gets(text);

 printf("Numbers:

\n");

 puts(text);

 digit=0;

 count(text);

 printf("digit:

%d\n",digit);

}

voidcount(charstr[])

{

 inti;

 for(i=0;str[i]!

='\0';i++)

  if(str[i]>='0'&&str[i]<='9')

   digit++;

}

4.输入一个正整数,输出原数并逆序打印出各位数字。

#include

voidinvertLongInt(long);

voidmain()

{

 unsignedlongiNumber;

 printf("Pleaseinputanumber:

\n");

 scanf("%ld",&iNumber);

 printf("Theinputnumberis:

%ld\n",iNumber);

 printf("Theinversenumberis:

");

 invertLongInt(iNumber);

}

voidinvertLongInt(longx)

{

 if(x>=0&&x<=9)

  printf("%d\n",x);

 else

 {

  printf("%d",x%10);

  invertLongInt(x/10);

 }

}

5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。

6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。

将结果输出。

7.求1!

+2!

+3!

+……+20!

,将结果输出。

#include

voidmain()

{

 floats=0,t=1;

 intn;

 for(n=1;n<=20;n++)

 {

  t=t*n;

  s=s+t;

 }

 printf("1!

+2!

+3!

+……+20!

=%e\n",s);

}

8.打印以下图案:

      *

                     ***

                    *****

                   *******

#include

voidmain()

{

 inti,j;

 printf("Thepictureis:

\n");

 staticcharpicture[4][7]={{'','','','*'},

 {'','','*','*','*'},{'','*','*','*','*','*'},{'*','*','*','*','*','*','*'}};

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

 {

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

    printf("%c",picture[i][j]);

  printf("\n");

 }

}

9.打印以下图案:

   

*

**

***

****

#include

voidmain()

{

 inti,j;

 printf("Thepictureis:

\n");

   charpicture[4][4]={{'*'},

 {'*','*'},{'*','*','*'},{'*','*','*','*'}};

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

 {

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

    printf("%c",picture[i][j]);

  printf("\n");

 }

}

10.求下列试子的值:

1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。

#include

voidmain()

{

 floatsum=1.0,t,s=1;

 inti;

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

 {

  t=s/i;

  sum=sum+t;

  s=-s;

 }

 printf("1-1/2+1/3-1/4+……+1/99-1/100=%5.4f\n",sum);

}

11.打印出100~999之间的所有水仙花数。

#include

voidmain()

{

 inti,j,k,n;

 printf("100~999之间的所有水仙花数are:

\n");

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

 {

  i=n/100;

  j=n/10-i*10;

  k=n%10;

  if(n==i*i*i+j*j*j+k*k*k)

   printf("%d ",n);

 }

 printf("\n");

}

12.求Sn=a+aa+aaa+…+aa…a之值,n,a由键盘输入。

#include

voidmain()

{

 inta,n,i=1,sn=0,tn=0;

 printf("a,n=:

");

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

 while(i<=n)

 {

  tn=tn+a;

  sn=sn+tn;

  a=a*10;

  ++i;

 }

 printf("a+aa+aaa+…+aa…a=%d\n",sn);

}

13.打印以下图案:

 *******

  *******

   *******

    *******

 #include

voidmain()

{

 chara[7]={'*','*','*','*','*','*','*'};

 inti,j,k;

 charspace='';

 printf("Thepictureis:

");

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

 {

  printf("\n");

  printf("   ");

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

   printf("%c",space);

  for(k=0;k<7;k++)

   printf("%c",a[k]);

 }

 printf("\n");

}

14.打印以下图案:

     1

    121

   12321

  1234321

15.打印以下图案:

  1234321

   12321

    121

     1

16.编写一个统计学生成绩程序,完成以下功能:

输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。

#include

#defineN4

structstudent

{

 charnum[3];

 charname[4];

 floatscore[2];

 floatavr;

}

stu[N];

voidmain()

{

 inti,j;

 floatsum,average;

 for(i=0;i

 {

  printf("inputscoresofstudent%d:

\n",i+1);

  printf("name:

");

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

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

  {

   printf("score%d:

",j+1);

   scanf("%f",&stu[i].score[j]);

  }

 }

 average=0;             /*计算*/

 for(i=0;i

 {

  sum=0;

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

   sum+=stu[i].score[j];

  stu[i].avr=sum/2;

  average+=stu[i].avr;

 }

 average/=N;

 printf("  Name   score1  score2  average\n");

 for(i=0;i

 {

  printf("%5s%10s",stu[i].num,stu[i].name);

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

   printf("%9.2f",stu[i].score[j]);

  printf("  %8.2f\n",stu[i].avr);

 }

 printf("average=%5.2f\n",average);

}

17.打印以下图案:

   *****

    *****

     *****

      *****

       *****

#include

voidmain()

{

 chara[5]={'*','*','*','*','*'};

 inti,j,k;

 charspace='';

 printf("Thepictureis:

");

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

 {

  printf("\n");

  printf("   ");

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

   printf("%c",space);

  for(k=0;k<5;k++)

   printf("%c",a[k]);

 }

 printf("\n");

}

18.给出年、月、日,计算该日是该年的第几天。

#include

voidmain

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

当前位置:首页 > PPT模板 > 艺术创意

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

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