C语言实验题.docx

上传人:b****6 文档编号:4957873 上传时间:2022-12-12 格式:DOCX 页数:18 大小:30.09KB
下载 相关 举报
C语言实验题.docx_第1页
第1页 / 共18页
C语言实验题.docx_第2页
第2页 / 共18页
C语言实验题.docx_第3页
第3页 / 共18页
C语言实验题.docx_第4页
第4页 / 共18页
C语言实验题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言实验题.docx

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

C语言实验题.docx

C语言实验题

C语言实验题

1.买糖果

题目描述:

小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱?

输入:

输入爸爸给小瑜的钱n元,n为整数。

输出:

小瑜最多能买回的糖块数以及剩下的钱(单位为:

角),用空格分隔。

样例输入2样例输出62

代码:

int main()

{

  int n,a,b;

  scanf("%d",&n);

  a=10*n/3;

  b=10*n%3;

  printf("%d %d",a,b);

  return 0;

  }

温度转换

题目描述:

输入一个华氏温度,输出摄氏温度,其转换公式为:

C=5(F-32)/9

输入:

输入数据只有一个实数,即华氏温度。

输出:

输出数据只有一个,即摄氏温度,保留2位小数。

样例输入:

32.0

样例输出:

0.00

代码:

int main()

{

  float f,c;

  scanf("%f",&f);

  c=5*(f-32)/9;

  printf("%.2f",c);

  return 0;

  }

三角形面积

题目描述:

已知三角形的边长a、b和c,求其面积。

输入:

输入三边a、b、c

输出:

输出面积,保留3位小数。

样例输入:

122.5

样例输出:

0.950

代码:

int main()

{

  float f,c;

  scanf("%f",&f);

  c=5*(f-32)/9;

  printf("%.2f",c);

  return 0;

  }

一元二次方程

题目描述:

解一元二次方程ax2+bx+c=0的解。

输入:

a,b,c的值。

输出:

两个根X1和X2,其中X1>=X2。

结果保留两位小数。

样例输入:

15-2

样例输出:

0.37-5.37

代码:

# include

int main()

{

  float a,b,c,disc,p,q,x1,x2;

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

  disc=b*b-4*a*c;

  p=-b/2*a;

  q=sqrt(disc)/2*a;

  x1=p+q;x2=p-q;

  printf("%.2f %.2f",x1,x2);

  return 0;

  }

圆柱体计算 

题目描述:

已知圆柱体的底面半径r和高h,计算圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积。

输入:

输入数据有一行,包括2个正实数r和h,以空格分隔。

输出:

输出数据一行,包括圆柱体底面周长和面积、圆柱体侧面积以及圆柱体体积,以空格分开,所有数据均保留2位小数。

样例输入:

12

样例输出:

6.283.1412.576.28

提示:

圆周率定义为3.1415926。

代码:

# define pie 3.1415926

int main()

{

  float h,r,l,s1,s2,v;

  scanf("%f %f",&r,&h);

  l=2.0*pie*r;

  s1=pie*r*r;

  s2=l*h;

  v=s1*h;

  printf("%.2f %.2f %.2f %.2f",l, s1,s2,v);

  return 0;

  }

找中间数

题目描述:

输入三个整数,找出其中的中间数。

输入:

输入3个整数。

输出:

输出中间数

样例输入:

123

样例输出:

2

代码:

int main()

{

  int a,b,c,m;

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

  if(a>b)

     {if(b>c) m=b;else {if(a>c) m=c;else m=a;}}

  else

     {if(a>c) m=a;else {if(b>c) m=c;else m=b;}}

  printf("%d",m);

  return 0;

  }

某年某月的天数

题目描述:

输入年和月,判断该月有几天?

输入:

输入年和月,格式为年\月

输出:

输出该月的天数。

样例输入:

2009\1

样例输出:

31

代码:

#include

int main()

{int y,m,length;

scanf("%d\\%d",&y,&m);

 if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)

  length=31;

 else if(m==4||m==6||m==9||m==11)

  length=30;

 else if(m==2)

 {if((y%4==0&&y%100!

=0)||(y%400==0))

  length=29;

   else length=28;

 }

printf("%d",length);

return 0;

整数位

题目描述:

输入一个不多于5位的正整数,要求:

(1)求出它是几位数;

(2)分别输出每一位数字;(3)按逆序输出各位数字。

输入:

输入一个不多于5位的正整数。

输出:

输出数据有3行,第一行为正整数位数,第二行为各位数字,第三行为逆序的各位数字。

样例输入:

123

样例输出:

3

123

321

代码:

# include

int main()

{

  long int num;

  int place,indiv,ten,hundred,thousand,ten_thousand;

  scanf("%ld",&num);

  if(num>9999) place=5;

  else if(num>999) place=4;

  else if(num>99) place=3;

  else if(num>9) place=2;

  else place=1;

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

  ten_thousand=num/10000;

  thousand=(num-ten_thousand*10000)/1000;

  hundred=(num-thousand*1000-ten_thousand*10000)/100;

  ten=(num-hundred*100-thousand*1000-ten_thousand*10000)/10;

  indiv=(num-ten*10-hundred*100-thousand*1000-ten_thousand*10000);

  switch(place)

{case 5:

 printf("%d %d %d %d %d\n",ten_thousand,thousand,hundred,ten,indiv);

     printf("%d %d %d %d %d\n",indiv,ten,hundred,thousand,ten_thousand);

     break;

 case 4:

 printf("%d %d %d %d\n",thousand,hundred,ten,indiv);

     printf("%d %d %d %d\n",indiv,ten,hundred,thousand);

     break;

 case 3:

 printf("%d %d %d\n",hundred,ten,indiv);

     printf("%d %d %d\n",indiv,ten,hundred);

     break;

 case 2:

 printf("%d %d\n",ten,indiv);

     printf("%d %d\n",indiv,ten);

     break;

 case 1:

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

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

     break;}

 return 0;

  }

两个数比较

题目描述:

求2个数中较大者。

输入:

第一行为测试的数据组数N,接下来的N行分别是两个待比较的整数

输出:

输出N行,每一行的值为每组数中较大的整数

样例输入:

2

12

1510

样例输出:

2

15

代码:

#include

intmain()

{intn,a,b,max;

scanf("%d",&n);

do

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

 max=(a>b)?

a:

b;

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

 }while(--n);

return0;

 }

保留字母

题目描述:

编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

输入:

一个字符串,长度不超过80个字符。

输出:

删掉非英文字母后的字符串。

样例输入:

abc123+xyz.5

样例输出:

abcxyz

代码:

#include

int main()

{char a[80];

 int i;

 scanf("%s",a);

 for(i=0;i

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

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

  return 0;

}

矩阵转置

题目描述:

输入N*N的矩阵,输出它的转置矩阵。

输入:

第一行为整数N(1≤N≤100)。

接着是一个N*N的矩阵。

输出:

转置矩阵。

样例输入:

2

12

12

样例输出:

11

22

代码:

#include

int main()

{int a[100][100];

int b[100][100],i,j,n;

scanf("%d", &n);

for(i=0;i

{for(j=0;j

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

b[j][i]=a[i][j];}

}

for(i=0;i

{for(j=0;j

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

printf("\n");}

return 0;

}  

素数

题目描述:

输出100->200之间的素数的个数,以及所有的素数。

输入:

输出:

100->200之间的素数的个数,以及所有的素数。

样例输入:

样例输出:

21

101103...197199

代码:

#include

int main()

{

 int m,k,i,j,a[100],n=0;

 j=0;

 for(m=101;m<=200;m=m+2)

 {

  k=sqrt(m);

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

  if(m%i==0)

  break;

  if(i>=k+1)

  {a[j]=m;

  n=n+1;j++;}

  }

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

  for(j=0;j

  {

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

  return 0;

  }

矩阵下三角元素之和   

题目描述:

输入一个正整数n(1<=n<=10),再输入n*n的矩阵,要求求该矩阵的下三角元素之和。

输入:

输入包括n+1行

第一行为整数:

n

接下来的n行为矩阵数据

输出:

矩阵的下三角元素之和

样例输入:

5

12345

23456

34567

45678

56789

样例输出:

75

代码:

#include

int main()

{int a[10][10];

int i,j,n,s=0;

scanf("%d",&n);

for(i=0;i

  {for(j=0;j

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

for(i=0;i

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

   s=s+a[i][j];}printf("%d",s);return 0;

单词统计

题目描述:

从键盘输入一行字符,统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。

输入:

输入只有一行句子。

仅有空格和英文字母构成。

输出:

单词的个数。

样例输入:

stablemarriageproblemConsistsofMatchingmembers

样例输出:

7

代码:

#include

int main()

{

  char string[81];

  int i,num=0,word=0;

  char c;

  gets(string);

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

='\0';i++)

    if(c==' ')word=0;

    else if(word==0)

      {

word=1;

num++;

      }

   printf(" %d",num);

return 0;

}

 

水仙花数

题目描述:

“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:

153=1^3+5^3+3^3。

现在要求输出所有在m和n范围内的水仙花数。

输入:

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

输出:

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;

如果给定的范围内不存在水仙花数,则输出no;

每个测试实例的输出占一行。

样例输入:

100120

300380

样例输出:

no

370371

代码:

#include

int main ()

{  int m,n,a,b,c,d,t;

    while(scanf("%d %d",&m,&n)!

=EOF)

    {

       t=0;

        for(d=m;d<=n;d++)

    {

        a=d/100;

        b=d/10%10;

        c=d%10;

    if(d==a*a*a+b*b*b+c*c*c)

    {

        printf("%d ",d);

        t=1;

    }

    }

    if(t==1)printf("\n");

    if(t==0)printf("no\n");

    }

    return 0;}

最小公倍数和最大公约数

题目描述:

从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。

输入:

输入包括一行。

两个以空格分开的正整数。

输出:

两个整数的最小公倍数和最大公约数。

样例输入:

68

样例输出:

242

代码:

#include

int main()

{int hcf(int u,int v);

 int lcd(int u,int v,int h);

 int u,v,h,l;

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

 h=hcf(u,v);

 l=lcd(u,v,h);

 printf("%d %d",l,h);

 return 0;

 }

int hcf(int u,int v)

{int t,r;

if(v>u)

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

while ((r=u%v)!

=0)

 {u=v;v=r;}

return (v);}

int lcd(int u,int v,int h)

{return(u*v/h);}

 

求一个3*3矩阵对角线元素之和

题目描述:

给定一个3*3的矩阵,请你求出对角线元素之和。

输入:

按照行优先顺序输入一个3*3矩阵,每个矩阵元素均为整数。

输出:

对角线元素之和。

样例输入:

123

123

123

样例输出:

6

代码:

# include

int main()

{ int sum(int b[3][3]);

  int a[3][3],s;

  int i,j;

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

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

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

   s=sum(a);

   printf("%d",s);

   return 0;}

 int sum(int b[3][3])

 {int i,c=0;

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

 c=c+b[i][i];

 return (c);}

计算表达式

题目描述:

计算下列表达式值:

输入:

输入x和n的值,其中x为非负实数,n为正整数。

输出:

输出f(x,n),保留2位小数。

样例输入:

32

样例输出:

2.00

代码:

# include

#include

float s(float x,int n)

{ float f;

  if(n==1) f=sqrt(1+x);

  else

  f=sqrt(n+s(x,n-1));

  return (f);}

int main()

{float s(float x,int n);

 float x,f;

     int n;

  scanf("%f %d",&x,&n);

  f=s(x,n);

  printf("%.2f",f);

  return 0;}

多项式求和

题目描述:

多项式的描述如下:

1-1/2+1/3-1/4+1/5-1/6+...

现在请你求出该多项式的前n项的和。

输入:

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。

输出:

对于每个测试实例n,要求输出多项式前n项的和。

每个测试实例的输出占一行,结果保留2位小数。

样例输入:

2

12

样例输出:

1.00

0.50

代码:

int main()

{int i,n,f,b=1;

float m,s,t;

int a[100];

scanf("%d",&n);

for(i=0;i

{

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

f=a[i];m=1;t=1;s=0;b=1;

 while(f>0)

  {s=s+t;

  m=m+1;

  b=-b;

  t=b/m;

  f--;}

 printf("%.2f\n",s);}

return 0;

 }

母牛的故事

题目描述:

有一头母牛,它每年年初生一头小母牛。

每头小母牛从第四个年头开始,每年年初也生一头小母牛。

请编程实现在第n年的时候,共有多少头母牛?

输入:

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0

n=0表示输入数据的结束,不做处理。

输出:

对于每个测试实例,输出在第n年的时候母牛的数量。

每个输出占一行。

样例输入:

2

4

5

0

样例输出:

2

4

6

 

代码:

#include 

int main()

{

long int n,i,a[55];

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

{if(i<=4&&i>=1)a[i]=i;

else if(4

a[i]=a[i-1]+a[i-3];

}

while(scanf("%d",&n),n)

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

return 0;} 

简单编码 

题目描述:

将一串文本译成密码,密码的规律是:

将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:

0——>9,1——>8,2——>7,3——>6,4——>5,5——>4,6——>3,7——>2,8——>1,9——>0

然后将所有字符的顺序颠倒。

输入:

输入一串文本,最大字符个数不超过100。

输出:

输出编码后的结果。

样例输入:

china

样例输出:

ANIHC

代码:

#include

int main()

{char c[101];int i,j;

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

='\n';i++)

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

c[i]-=32;

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

c[i]+=32;

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

c[i]=105-c[i];

}

for(j=i-1;j>=0;j--)

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

return 0;

三个数排序

题目描述:

输入三个整数x,y,z,请把这三个数由小到大输出。

输入:

输入数据包含3个整数x,y,z,分别用逗号隔开。

输出:

输出由小到大排序后的结果,用空格隔开。

样例输入:

213

样例输出:

123

代码:

# include

int main()

{

void swap(int *p1,int *p2);

int x,y,z;

int *p1,*p2,*p3;

scanf("%d,%d,%d",&x,&y,&z);

p1=&x;p2=&y;p3=&z;

if(x>y) swap(p1,p2);

if(x>z) swap(p1,p3);

if(y>z) swap(p2,p3);

printf("%d %d %d",x,y,z);

return 0;

}

void swap(int *p1,int *p2)

{

int p;

p=*p1;*p1=*p2;* p2=p;

}

字符串排序  

题目描述:

输入3个字符串,按字典序从小到大进行排序。

输入:

输入数据有一行,分别为3个字符串,用空格分隔。

输出:

输出排序后的三个字符串,用空格分隔。

样例输入:

abcdcdefbcde

样例输出:

abcdbcdecdef

代码:

int main()

{void swap(char *p1,char *p2);

char n1[20],n2[20],n3[20];

scanf("%s %s %s",n1,n2,n3);

if(strcmp(n1,n2)>0)swap(n1,n2);

if(strcmp(n1,n3)>0)swap(n1,n3);

if(strcmp(n2,n3)>0)swap(n2,n3);

printf("%s %s %s",n1,n2,n3);

return 0;

}

void swap(char *p1,char *p2)

{char p[20];

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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