113道C语言题目超经典的.docx

上传人:b****5 文档编号:8196063 上传时间:2023-01-29 格式:DOCX 页数:48 大小:32.80KB
下载 相关 举报
113道C语言题目超经典的.docx_第1页
第1页 / 共48页
113道C语言题目超经典的.docx_第2页
第2页 / 共48页
113道C语言题目超经典的.docx_第3页
第3页 / 共48页
113道C语言题目超经典的.docx_第4页
第4页 / 共48页
113道C语言题目超经典的.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

113道C语言题目超经典的.docx

《113道C语言题目超经典的.docx》由会员分享,可在线阅读,更多相关《113道C语言题目超经典的.docx(48页珍藏版)》请在冰豆网上搜索。

113道C语言题目超经典的.docx

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()

{

 intsum_day(int,int);

 intleap(intyear);

 intyear,month,day,days;

 printf("inputdate(year,month,day):

");

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

 printf("%d/%d/%d",year,month,day);

 days=sum_day(month,day);

 if(leap(year)&&month>=3)

  days=days+1;

 printf("isthe%dthdayinthisyear.\n",days);

}

intsum_day(intmonth,intday)

{

 intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

 inti;

 for(i=1;i

  day+=day_tab[i];

 return(day);

}

intleap(intyear)

{

 intleap;

 leap=year%4==0&&year%100!

=0||year%400==0;

 return(leap);

}

19.求一个3*3的整型矩阵对角线元素之和。

将原矩阵和求出的和输出。

#include

voidmain()

{

floata[3][3],sum=0;

inti,j;

printf("请输入元素:

\n");

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

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

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

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

sum=sum+a[i][i];

printf("对角线之和是:

%6.2f\n",sum);

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

{

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

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

 printf("\n");

}

}

20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。

#include

voidmain() 

 inta[4][3],s[4],i,j,k; 

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

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

   scanf("%d",*(a+i)+j);

  

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

  {

   k=0;

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

    k+=a[i][j];

   printf("第%d行的平均值是%d",i+1,k);

   printf("\n");

  }

}

21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。

#include

voidmain() 

 inta[4][3],s[4],i,j,k; 

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

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

   scanf("%d",*(a+i)+j);

  

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

  {

   k=0;

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

    k+=a[i][j];

   printf("第%d行的平均值是%d",i+1,k);

   printf("\n");

  }

}

22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。

#include

voidmain() 

 inta[3][5],s[3],i,j,k; 

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

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

 scanf("%d",*(a+i)+j); 

 

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

 {*(s+i)=*(*(a+j)); 

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

 if(*(s+i)<*(*(a+i)+j)) 

 *(s+i)=*(*(a+i)+j); 

 } 

 

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

 {

 printf("Line=%dMax=%d",j,s[j]); 

 printf("\n"); 

 } 

}

23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。

#include

voidmain() 

 inta[4][3],s[4],i,j,k; 

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

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

 scanf("%d",*(a+i)+j); 

 

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

 {*(s+i)=*(*(a+i)); 

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

 if(*(s+i)<*(*(a+i)+j)) 

 *(s+i)=*(*(a+i)+j); 

 } 

 

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

 {

 printf("Row=%dMax=%d",i,s[i]); 

 printf("\n"); 

 } 

}

24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。

#include  

#defineN10

#defineM10

voidmain() 

 inta[M][N],i,j,k[M],max,m,n; 

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

   for(i=0;i

  for(j=0;j

   scanf("%d",*(a+i)+j);

  for(i=0;i

  {

   for(j=0;j

   {

    if(a[i][j]<=a[i][j+1])

     max=a[i][j+1];

    else

     max=a[i][j];

   }

   k[i]=max;

  }

  for(i=0;i

  {

   if(k[i]<=k[i+1])

    max=k[i+1];

   else

    max=k[i];

  }

  printf("%d",max);

}

25.判断一个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果输出。

#include  

#defineN10

voidmain() 

 inta[N][N],i,j,k,n;

   scanf("%d",&n);

   for(i=0;i

  for(j=0;j

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

  for(i=0;i

  {

   for(j=i+1;j

   {

    if(a[i][j]==a[j][i])

     k=1;

    else

     k=0;

   }

  }

  if(k=0)

   printf("bushi");

  else

   printf("shi\n");

  for(i=0;i

   for(j=0;j

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

}

26.有一篇文章,有三行文字,每行有80个字符。

要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。

#include

voidmain()

{

 inti,j,big=0,sma=0,num=0,spa=0,oth=0;

 chartext[3][80];

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

 {

  printf("请输入行%d:

\n",i+1);

  gets(text[i]);

  for(j=0;j<80&&text[i][j]!

='\0';j++)

  {

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

    big++;

   elseif(text[i][j]>='a'&&text[i][j]<='z')

    sma++;

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

    num++;

   elseif(text[i][j]=='')

    spa++;

   else

    oth++;

  }

 }

 printf("大写字母:

%d\n",big);

 printf("小写字母:

%d\n",sma);

 printf("数字:

%d\n",num);

 printf("空格:

%d\n",spa);

 printf("其它:

%d\n",oth);

}

27.将20个整数放到一维数组中,输出该数组的最大值和最小值。

#include

voidmain()

{

 inti,j,min,max,a[21];

 printf("请输入数据:

\n");

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

 {

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

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

 }

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

 {

  min=i;

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

   if(a[min]>a[j]);

   a[min]=a[j];

 }

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

 {

  max=i;

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

   if(a[max]

   a[max]=a[j];

 }

 printf("最大数为:

%d\n",a[max]);

 printf("最小数为:

%d\n",a[min]);

}

28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。

#include

voidmain()

{

 inti,j,min,max,a[16],m,n;

 printf("请输入数据:

\n");

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

 {

  p

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

当前位置:首页 > 工程科技 > 兵器核科学

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

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