新113道C语言题目.docx

上传人:b****8 文档编号:10661596 上传时间:2023-02-22 格式:DOCX 页数:74 大小:39.35KB
下载 相关 举报
新113道C语言题目.docx_第1页
第1页 / 共74页
新113道C语言题目.docx_第2页
第2页 / 共74页
新113道C语言题目.docx_第3页
第3页 / 共74页
新113道C语言题目.docx_第4页
第4页 / 共74页
新113道C语言题目.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

新113道C语言题目.docx

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

新113道C语言题目.docx

新113道C语言题目

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

}

91.编一个子函数GCD,求两个正整数的最大公约数,主程序输入n个自然数,调GCD,求出这n个数的最大公约数。

#include

intGCD(int,int);

voidmain()

{

 inta[100],i,n,k;

 printf("请输入数组元素的个数:

\n");

 scanf("%d",&n);

 printf("请输入%d个正整数:

\n",n);

 for(i=0;i

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

   k=GCD(a[0],a[1]);

 for(i=2;i

  k=GCD(k,a[i]);

 printf("输入的%d个正整数的最大公约数是:

%d\n",n,k);

}

intGCD(intx,inty)

{

 inti,min,p,q,gcd;

 if(x<=y)

  min=x;

 else

  min=y;

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

 {

  p=x%i;

  q=y%i;

  if(p==0&&q==0)

   gcd=i;

 }

 returngcd;

}

68.用for循环语句计算1到20的和,并将结果输出。

#include

voidmain()

{

 inti=1,sum=0;

 for(;i<=20;)

 {

  sum=sum+i;

  i++;

 }

 printf("1到20的和是%d\n",sum);

}

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

 }

}

86.编一个函数实现将一个整型的一维数组中的数逆序存放,不使用辅助数组。

主函数输入一个整型的一维数组,调用上述函数,将该数组逆置,将结果输出。

#include

#defineN10

voidmain()

{

 inta[N],i,temp;

 printf("enterarraya:

\n");

 for(i=0;i

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

 printf("arraya:

\n");

 for(i=0;i

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

 for(i=0;i

 {

  temp=a[i];

  a[i]=a[N-i-1];

  a[N-i-1]=temp;

 }

 printf("\nNow,arraya:

\n");

 for(i=0;i

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

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

}

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");

}

}

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++;

}

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

}

108.编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

#include

intletter,digit,space,others;

voidmain()

{

 voidcount(char[]);

 chartext[80];

 printf("输入字符串:

\n");

 gets(text);

 printf("字符串是:

");

 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++;

  }

69.从键盘输入一行字符,统计出输入的字符个数(注:

不要使用strlun函数编程)。

#include

voidmain()

{  intalphabet=0,i=0;

 charstr[100];

 printf("请输入一个字符串\n");

 gets(str);

 for(i=0;str[i]!

='\0';i++)

  ++alphabet;

 printf("有%d个字母\n",alphabet);

}

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]);

}

42.编程序,输入4个整数,按由小到大的顺序输出。

#include

#defineN4

voidmain()

{

 inta[N],t,i,j;

 printf("输入四个整数:

\n");

 for(i=0;i

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

 printf("\n");

 for(i=0;i

 {

  for(j=0;j

   if(a[j]>a[j+1])

   {

    t=a[j];

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

    a[j+1]=t;

   }

 }

 printf("排序后:

\n");

 for(i=0;i

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

}

93.编一函数使用冒泡法对若干个整数按从小到大的顺序排序,主函数中输入若干个整数到一个一维数组中,调用排序函数,将其排序,最后将原数组和排好序的数组输出。

#include

#defineN10

voidmain()

{

 inta[N],i,j,temp;

 printf("请输入10个整数:

\n");

 for(i=0;i

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

 printf("\n");

 printf("原始数据为:

\n");

 for(i=0;i

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

 for(i=1;i<=N-1;i++)

 {

  for(j=0;j<=N-i-1;j++)

   if(a[j]>a[j+1])

   {

    temp=a[j];

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

    a[j+1]=temp;

   }

 }

 printf("\n排序后的数据为:

\n");

 for(i=0;i

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

 printf("\n");

}

30.编写一个程序,将两个字符串连接起来,不要使用strcat函数。

#include

voidmain()

{

 charstr1[20],str2[20];

 inti=0,j=0;

 printf("请输入字符串1:

\n");

 scanf("%s",str1);

 printf("请输入字符串2:

\n");

 scanf("%s",str2);

 while(str1[i]!

='\0')

  i++;

 while(str2[j]!

='\0')

  str1[i++]=str2[j++];

 str1[i]='\0';

 printf("合并之后的字符串为:

%s\n",str1);

}

99.编写一个函数将给定的两个字符串连接成一个字符串:

 格式为:

strcat(ch1,ch2);

 功能:

将ch2复制到ch1的后面;

 主函数中输入两个字符串,调用该子函数,求出连接之后的字符串,将两个原字符串及连接之后的结果串输出。

#include

#include

voidmain()

{

 charstr1[20],str2[8];

 gets(str1);

 gets(str2);

 strcat(str1,str2);

 printf("%s\n",str1);

}

102.编程计算:

1*2*3+3*4*5+……+99*100*101的值。

#include

voidmain()

{

 inti,j,k,sum=0;

 for(i=1,j=2,k=3;i<100,j<101,k<102;i+=2,j+=2,k+=2)

 sum=sum+i*j*k;

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

}

31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。

不要使用strcpy函数。

#include

#include

voidmain()

{

 chara[40],b[40];

 inti;

 printf("请输入a:

\n");

 scanf("%s",a);

 for(i=0;i<=strlen(a);i++)

  b[i]=a[i];

 printf("b:

%s\n",b);

}

96.编写一个函数将给定字符串复制到另一个字符串中去,主函数中输入一个字符串,调用该子函数,复制出另一字符串,将两个串输出。

#include

#include

voidmain()

{

 voidcopystr(char*,char*,int);

 intm;

 charstr1[20],str2[20];

 printf("\ninputstring:

");

 gets(str1);

 printf("whichcharacterthatbegintocopy?

");

 scanf("%d",&m);

 if(strlen(str1)

  printf("inputerror!

");

 else

 {

  copystr(str1,str2,m);

  printf("result:

%s\n",str2);

 }

}

voidcopystr(char*p1,char*p2,intm)

{

 intn;

 n=0;

 while(n

 {

  n++;

  p1++;

 }

 while(*p1!

='\0')

 {

  *p2=*p1;

  p1++;

  p2++;

 }

 *p2='\0';

}

95.编写一个函数求给定字符串长度,主函数中输入一个字符串,调用该子函数,求出该字符串的长度,输出。

#include

voidmain()

{

 intlength(char*p);

 intlen;

 charstr[20];

 printf("inputstring:

");

 scanf("%s",str);

 len=length(str);

 printf("Thelengthofstringis%d.\n",len);

}

intlength(char*p)

{

 intn;

 n=0;

 while(*p!

='\0')

 {

  n++;

  p++;

 }

 return(n);

}

104.编写一个程序,使输入的一个字符串按反序存放在一字符数组中,然后输出。

要求:

 

(1)在主调函数中输入字符串;

 

(2)写函数完成由主调函数传递来的字符串按反序存放;

 (3)在主调函数中输出结果。

#include

#include

voidmain()

{

 voidinverse(charstr[]);

 charstr[100];

 printf("输入字符串:

\n");

 gets(str);

 inverse(str);

 printf("%s\n",str);

}

  voidinverse(charstr[])

  {chart;

    inti,j;

 for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)

 {t=str[i];

  str[i]=str[j-1];

  str[j-1]=t;

 }

  }

29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。

#include  

#include

#defineN10

voidmain() 

 inti,n;

 charstr1[N],str2[N];

    gets(str1);

 for(n=0;n

 {

  i=2*n;

 str2[n]=str1[i];

 }

    puts(str1);

 puts(str2);

}

32.编写一个程序,找出3个字符串中的最大者,将它输出。

#include

#include

voidmain()

{

 charstring[20];

 charstr[3][20];

 inti;

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

  gets(str[i]);

 if(strcmp(str[0],str[1])>0)

  strcpy(string,str[0]);

 else

  strcpy(string,str[1]);

 if(strcmp(str[2],string)>0)

  strcpy(string,str[2]);

 printf("最大的字符串是:

\n%s\n",string);

}

36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。

#include

#include

voidmain()

{

 floata,b,c,area;

 doubles;

 printf("Pleaseenterthreesidesofatriangle:

\n");

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

 s=(a+b+c)/2.0;

 area=sqrt(s*(s-a)*(s-b)*(s-c));

 if(a+b

  printf("Theycan'tformatriangle.\n");

 else

    printf("Theareaofthetriangleis:

%f\n",area);

}

#include  

#defineN10

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

当前位置:首页 > 自然科学 > 化学

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

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