C语言练习题山东科技大学吐血整理.docx

上传人:b****4 文档编号:12164076 上传时间:2023-04-17 格式:DOCX 页数:60 大小:34.06KB
下载 相关 举报
C语言练习题山东科技大学吐血整理.docx_第1页
第1页 / 共60页
C语言练习题山东科技大学吐血整理.docx_第2页
第2页 / 共60页
C语言练习题山东科技大学吐血整理.docx_第3页
第3页 / 共60页
C语言练习题山东科技大学吐血整理.docx_第4页
第4页 / 共60页
C语言练习题山东科技大学吐血整理.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

C语言练习题山东科技大学吐血整理.docx

《C语言练习题山东科技大学吐血整理.docx》由会员分享,可在线阅读,更多相关《C语言练习题山东科技大学吐血整理.docx(60页珍藏版)》请在冰豆网上搜索。

C语言练习题山东科技大学吐血整理.docx

C语言练习题山东科技大学吐血整理

数学11-1C语言平时训练题

1、算术基本运算

Description

计算两整数x和y(0

Input

输入只有一行。

Output

输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方。

SampleInput

x=11,y=3

SampleOutput

x+y:

14

x-y:

8

x*y:

33

x/yquotient:

3,remainder:

2

x^2:

121

y^3:

27

Answer

#include

intmain()

{

intx,y,a,b,c,d,e,f,g;

0

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

a=x+y;

b=x-y;

c=x*y;

d=x/y;

e=x%y;

f=x*x;

g=y*y*y;

printf("x+y:

%d\n",a);

printf("x-y:

%d\n",b);

printf("x*y:

%d\n",c);

printf("x/yquotient:

%d,remainder:

%d\n",d,e);

printf("x^2:

%d\n",f);

printf("y^3:

%d\n",g);

return0;

}

2、求圆的面积和周长

Description

从键盘输入圆的半径,求圆的面积和周长,圆周率取3.14。

Input

输入一个浮点型数据,有效数字不会超过十进制的6位。

Output

输出为两行。

第一行为圆的面积,第二行为圆的周长,格式见sample。

SampleInput

3

SampleOutput

Area:

28.260000

Perimeter:

18.840000

Answer

#include

#definePI3.14

intmain()

{

floatr,s,c;

scanf("%f",&r);

s=PI*r*r;

c=2*PI*r;

printf("Area:

%f\n",s);

printf("Perimeter:

%f\n",c);

return0;

}

3、平均值

Description

求3个数的平均值。

Input

输入只有一行,为3个较小的整数。

Output

输出为这3个整数的平均值,保留3位小数。

SampleInput

123

SampleOutput

2.000

Answer

#include

intmain()

{

inta,b,c;

floatd;

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

d=(a+b+c)/3.0;

printf("%.3f\n",d);

return0;

}

4、货币兑换

Description

给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。

要计算的外币有三种:

美元、欧元、日元。

Input

输入有三行。

第一行依次为美元、欧元、日元外币汇率,用空格分开。

汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。

汇率浮动范围为(0,10000)。

第二行为外币金额x,第三行为人民币金额y。

x,y均为整数,且0

Output

输出为两行。

第一行为金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。

第二行为金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。

所有金额精确到小数点后两位。

SampleInput

668.5200908.06857.9852

1500

1500

SampleOutput

10027.8013621.03119.78

224.38165.1918784.75

Answer

#include

intmain()

{

doublex,y,a,b,c,d,e,f,g,h,i;

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

scanf("%lf",&x);

scanf("%lf",&y);

d=x/100*a;

e=x/100*b;

f=x/100*c;

g=y/a*100;

h=y/b*100;

i=y/c*100;

printf("%.2lf%.2lf%.2lf\n",d,e,f);

printf("%.2lf%.2lf%.2lf\n",g,h,i);

return0;

}

5、求字符的值

Description

从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。

Input

输入为3个字符。

Output

输出为3行。

每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。

每个输出的值占3个字符,不足3个字符前面补0。

SampleInput

0A

SampleOutput

048060030

032040020

065101041

Answer

#include

intmain()

{

chara,b,c;

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

printf("%.3d%.3o%.3x\n",a,a,a);

printf("%.3d%.3o%.3x\n",b,b,b);

printf("%.3d%.3o%.3x\n",c,c,c);

return0;

}

6、奇数还是偶数?

Description

输入一个整数,判读它是奇数还是偶数。

Input

输入只有一行,为一个100以内的正整数。

Output

输出为一行。

若输入为偶数则输出“even”,奇数输出“odd”。

SampleInput

30

SampleOutput

even

Answer

#include

intmain()

{

inta;

scanf("%d",&a);

if(a>=0&&a<=100)

{

if(a%2==0)

printf("even\n");

else

printf("odd\n");

}

else

printf("error");

return0;

}

7、绝对值

Description

求整型数据和浮点型数据的绝对值。

Input

输入两个数,第一个是整数,第二个是浮点数。

Output

输出为两行,第一行为整数的绝对值,第二行为浮点数的绝对值,注意浮点数的绝对值不输出无意义的0。

SampleInput

-1

1

SampleOutput

1

1

Answer

#include

#include

#include

intmain()

{

inta,c;

doubleb,d;

scanf("%d\n%lf",&a,&b);

c=abs(a);

d=fabs(b);

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

return0;

}

8、简单的打折计算

Description

商店规定:

消费满n元,可以打八八折。

设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:

元),精确到分。

Input

输入只有一行,三个整数m、n和x,且0

Output

输出金额,精确到分。

SampleInput

953004

SampleOutput

334.40

Answer

#include

intmain()

{

intm,x,n,a;

floatb;

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

0

x

m

a=m*x;

if(a>n)

b=0.88*a;

else

b=a;

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

return0;

}

9、判断闰年

Description

输入一个正整数的年份,判断是否为闰年。

Input

输入只有一行,为一个10000以内的正整数。

Output

输出为一行。

若输入为闰年偶数则输出“Yes”,否则输出“No”。

SampleInput

2010

SampleOutput

No

答案

#include

intmain()

{

inta;

scanf("%d",&a);

if(a>0&&a<10000)

{

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

=0)

printf("Yes\n");

elseif(a%400==0)

printf("Yes\n");

else

printf("No\n");

}

else

printf("error");

return0;

}

10、水仙花数

Description

如果一个三位十进制数等于其各位数字的立方和,则称这个数为水仙花数。

如:

13+53+33=153。

Input

一个整数x,100<=x<=999。

Output

x是水仙花数,则输出“YES”,否则为“NO”。

SampleInput

153

SampleOutput

YES

Answer

#include

intmain()

{

inta,b,c,d,e;

scanf("%d",&a);

b=a/100;

c=(a-b*100)/10;

d=(a-b*100-c*10);

e=b*b*b+c*c*c+d*d*d;

if(a==e)

printf("YES\n");

else

printf("NO\n");

return0;

}

11、三个数比较大小

Description

从键盘上输入0~100之间的三个数,按从小到大的顺序输出。

Input

输入只有一行,为三个整数。

Output

按从小到大输出这三个数。

SampleInput

151020

SampleOutput

101520

Answer

#include

intmain()

{

inta,b,c;

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

if(a>=b)

{

if(b>=c)

printf("%d%d%d\n",c,b,a);

elseif(a>c)

printf("%d%d%d\n",b,c,a);

else

printf("%d%d%d\n",b,a,c);

}

else

{

if(a>=c)

printf("%d%d%d\n",c,a,b);

elseif(b>=c)

printf("%d%d%d\n",a,c,b);

else

printf("%d%d%d\n",a,b,c);

}

return0;

}

12、输出整数的最低两位

Description

把一个整数的最低两位打印出来,不输出整数的符号。

Input

输入为一个整数n,不会超出int类型的数据范围。

Output

输出n的最低两位数字。

但是,输入的数字本身不足两位时,不应当补0。

如,输入为“1”,则输出为“1”。

SampleInput

-102

SampleOutput

02

Answer

#include

intmain()

{

inta,b,c;

scanf("%d",&a);

if(a>=100)

{

b=a-a/100*100;

printf("%.2d\n",b);

}

elseif(a>=0)

{

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

}

elseif(a>=-99)

{

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

}

else

{

c=-a;

b=c-c/100*100;

printf("%.2d\n",b);

}

return0;

}

13、判断奇偶数(填空)

Description

编写一个程序,判断读取的正整数的奇偶性,部分程序已经给出,请填上空白语句,并提交填充后的完整程序。

程序(含答案):

#include

intmain()

{

intnum;

scanf("%d",&num);

if(num%2==0)

printf("%disanevennumber.",num);//num是一个偶数

else

printf("%disanoddnumber.",num);//num是一个奇数

return0;

}

14、求分段函数的值(填空)

Description

设有分段函数如下:

给出N>0个x的值,求对应的y值并输出。

部分程序已经给出,请填充其中的空白语句,并提交填充后的完整程序。

程序(含答案):

#include

#include

intmain()

{

doublex,y;

inti,N;

scanf("%d",&N);

for(i=0;i

{

scanf("%lf",&x);

if(x<0)

y=-x;

elseif(x<1)

y=sin(2*x);

elseif(x<5)

y=sqrt(x*x*x+x);

else

y=2*x+10;

if(i==0)

printf("case1:

y=%.6g.",y);

else

printf("\ncase%d:

y=%.6g.",i+1,y);

}

return0;

}

15、输出是m的倍数或n的倍数、但不是m和n的公倍数的数

Description

输出1~k之间是m的倍数或n的倍数、但不是m和n的公倍数的数,其中1<=m,n

Input

输入三个整数,依次为k、m、n。

Output

从小到大输出符合题意的所有整数,两数之间用一个空格分开。

SampleInput

1523

SampleOutput

23489101415

Answer

#include

intmain()

{

intk,m,n,a,i=1;

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

if(m

a=m;

else

a=n;

printf("%d",a);

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

{

if((i%m==0&&i%n!

=0)||(i%n==0&&i%m!

=0))

printf("%d",i);

}

return0;

}

16、A+BProblemT

Description

计算a+b,0<=a,b<1000。

Input

输入有多对整数a和b组成,每对a和b占一行,a,b用空格分开。

Output

每行输出一个a+b的值,顺序与输入对应。

SampleInput

12

1020

SampleOutput

3

30

Answer

#include

intmain()

{

inta,b;

while(scanf("%d%d",&a,&b)!

=EOF)

{

printf("%d\n",a+b);

}

return0;

}

17、A+BProblem(II):

Input/OutputPratice

Description

计算a+b,0<=a,b<1000。

Input

输入的第一行是一个整数N,后面有N对整数a和b,每对a和b占一行,a,b用空格分开。

Output

每行输出一个a+b的和,顺序与输入对应。

SampleInput

2

12

1020

SampleOutput

3

30

Answer

#include

intmain()

{

inta[1000],b[1000],N,i;

scanf("%d",&N);

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

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

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

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

return0;

}

18、成绩的等级

Description

把百分制的考试成绩转换成五级制的成绩:

90~100:

Excellent

80~89:

Good

70~79:

Average

60~69:

Pass

0~59:

Failing

不在0~100之间的输入是非法数据,输出“Error”。

Input

输入多行,每行一个整数。

Output

输入所对应的成绩等级。

SampleInput

-1

81

92

35

68

72

100

SampleOutput

Error

Good

Excellent

Failing

Pass

Average

Excellent

Answer

#include

intmain()

{

intscore;

while(scanf("%d",&score)!

=EOF)

{

if(score<0||score>100)

printf("Error\n");

else

{

switch(score/10)

{

case0:

case1:

case2:

case3:

case4:

case5:

printf("Failing\n");break;

case6:

printf("Pass\n");break;

case7:

printf("Average\n");break;

case8:

printf("Good\n");break;

case9:

case10:

printf("Excellent\n");break;

}

}

}

return0;

}

19、n个数的最大值和最小值

Description

找出n个数中最大的数和最小的数,并将它们的值输出出来。

Input

输入为n+1个整数,都在int类型范围内。

这些数可能用若干空格或者换行符分隔开。

输入的第1个数为n,表示后续有n个数输入。

从输入的第2个数开始,求出直到第n+1个数中最大的数和最小的数。

Output

输出为两行,格式见sample。

SampleInput

301-1

SampleOutput

Themaximumnumberis1.

Theminimumnumberis-1.

Answer

#include

intmain()

{

intn,i,max,min;

scanf("%d",&n);

inta[n];

for(i=0;i

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

max=a[0];

min=a[0];

for(i=0;i

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

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

printf("Theminimumnumberis%d.",min);

return0;

}

20、字符加密

Description

Tom和Jack是密码学爱好者,他们在聊天时经常使用一些暗语。

他们使用的一种最简单的暗语是:

将要说的每句话里面的英文字母变成这个字母之后的某个字母。

现在要求你写一个程序,将一个字母变成它之后的某个字母。

Input

输入有2个:

一个大写字母c和一个正整数d(0

其中c是要进行变换的字母,d表示要将c变成其后面第d个字母。

Output

输出字母c之后的第d个字母。

大小写与c一致。

如果c之后的某个字母已经超出'Z',则再从字母'A'开始计数。

如:

c='A',d=3,则输出应为:

D。

若:

c='Y',d=3,则输出应为:

B。

SampleInput

A3

SampleOutput

D

Answer

#include

voidmain()

{

intd,x;

charc;

scanf("%c",&c);

scanf("%d",&d);

x=c+d;

c=c+d;

x<=90?

printf("%c",c):

printf("%c",x-26);

}

21、求100以内的素数

Description

素数是只能被1和自身整除的正整数,根据数学定义1不是素数。

素数也叫质数。

Input

输入为两个整数m和n,满足0<=m<=n<=100。

Output

从大到小输出m~n之间的所有素数,一个素数一行。

如果m~n之间没有素数,则不输出任何数。

输出的所有数在两行“=====”之间。

SampleInput

212

SampleOutput

=====

11

7

5

3

2

=====

Answer

#include

#include

intmain()

{

intm,n,i,j,k,t;

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

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

for(i=n;i>=m;i--)

{t=0;

for(j=2;j<=sqrt(i);j++)//12

if(i%j==0)

t=1;

if(t==0&&i>1)

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

}

printf("=====");

retu

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

当前位置:首页 > 人文社科 > 设计艺术

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

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