C语言程序设计.docx

上传人:b****7 文档编号:26120081 上传时间:2023-06-17 格式:DOCX 页数:189 大小:84.71KB
下载 相关 举报
C语言程序设计.docx_第1页
第1页 / 共189页
C语言程序设计.docx_第2页
第2页 / 共189页
C语言程序设计.docx_第3页
第3页 / 共189页
C语言程序设计.docx_第4页
第4页 / 共189页
C语言程序设计.docx_第5页
第5页 / 共189页
点击查看更多>>
下载资源
资源描述

C语言程序设计.docx

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

C语言程序设计.docx

C语言程序设计

1.ProblemA:

Helloworld!

Description

Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。

三兄弟放学回家,父母分别跟他们打招呼。

Input

Output

请输出:

HelloDa_min,

HelloEr_min,

HelloXiao_ming!

SampleInput

SampleOutput

HelloDa_min,

HelloEr_min,

HelloXiao_ming!

HINT

请注意换行符

AppendCode

#include

intmain()

{

printf("HelloDa_min,\n");

printf("HelloEr_min,\n");

printf("HelloXiao_ming!

\n");

}

2.ProblemB:

求圆的面积和周长

Description

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

Input

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

Output

输出为两行。

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

SampleInput

3

SampleOutput

Area:

28.260000

Perimeter:

18.840000

HINT

了解浮点类型的输入、输出和算术运算符

AppendCode

法一

#include

intmain()

{

doubler,p,s;

scanf("%lf",&r);

p=2*3.14*r;

s=3.14*r*r;

printf("Area:

%lf\n",s);

printf("Perimeter:

%lf\n",p);

}

法二

#include

#definepi3.14

intmain()

{

doubler;

scanf("%lf",&r);

printf("Area:

%lf\n",pi*r*r);

printf("Perimeter:

%lf\n",2*pi*r);

 

}

3.ProblemC:

平均值

Description

求3个数的平均值。

Input

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

Output

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

SampleInput

123

SampleOutput

2.000

HINT

注意除法运算对整型数据和浮点型数据是不一样的。

AppendCode

#include

intmain()

{

inta,b,c;

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

printf("%.3lf",(a+b+c)/3.0);

}

 

4.ProblemD:

求字符的值

Description

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

Input

输入为3个字符。

Output

输出为3行。

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

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

SampleInput

0A

SampleOutput

048060030

032040020

065101041

HINT

了解字符值的存储和整型的关系。

AppendCode

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

}

5.ProblemA:

最简单的程序

Description

输出一行“Helloworld!

”。

Input

Output

Helloworld!

SampleInput

SampleOutput

Helloworld!

HINT

AppendCode

#include

intmain()

{

printf("Helloworld!

");

}

6.ProblemB:

算术基本运算

Description

计算两整数x和y(0

Input

输入只有一行,格式见sample。

Output

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

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

HINT

注意输入输出格式。

了解C语言整数除法运算符的特点,并且没有求幂的运算符。

AppendCode

#include

//#include

intmain()

{

intx,y;

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

printf("x+y:

%d\n",x+y);

printf("x-y:

%d\n",x-y);

printf("x*y:

%d\n",x*y);

printf("x/yquotient:

%d,remainder:

%d\n",x/y,x%y);

printf("x^2:

%d\n",x*x);

printf("y^3:

%d\n",y*y*y);

}

7.ProblemC:

自增自减运算

Description

C语言中有自增运算++、自减运算--,并且可以前置和后置。

编写一个程序:

对输入的一个整数a,输出a++、a--、++a、--a的值。

Input

一个整数a,a是很小的整数。

Output

输出为5行,第一行为a的值,后面依次为--a、a--、a++、++a的值。

5行输出纵向a要对齐,“:

”对齐,“:

”前后各一个空格,后面的数值不用对齐。

每行行尾都有回车。

SampleInput

0

SampleOutput

a:

0

--a:

-1

a--:

0

a++:

0

++a:

1

HINT

AppendCode

#include

intmain()

{

inta;

scanf("%d",&x);

printf("a:

%d\n",a);

printf("--a:

%d\n",--a);

printf("a--:

%d\n",a--);

printf("a++:

%d\n",a++);

printf("++a:

%d\n",++a);

}

8.ProblemF:

绝对值

Description

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

Input

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

Output

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

SampleInput

-1

1

SampleOutput

1

1

HINT

求绝对值可以用标准库函数来完成,也可以自己判断。

注意浮点数的输出格式。

求绝对值的函数在哪个头文件?

貌似很多人会搞错,包括很多编书的人!

AppendCode

#include

//#include

intmain(){

intn;

floatm;

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

//n=abs(n);

//m=fabs(m);

if(n<0)

{

n=-n;

}

if(m<0)

{

m=-m;

}

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

printf("%g",m);

return0;

}

9.ProblemA:

奇数还是偶数?

Description

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

Input

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

Output

输出为一行。

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

SampleInput

30

SampleOutput

even

HINT

用整数运算可以解决,练习“?

:

”表达式。

AppendCode

法一:

#include

intmain(){

intn;

scanf("%d",&n);

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

{

if(n%2==0)printf("even\n");

elseprintf("odd\n");

}

return0;

}

法二:

#include

intmain()

{

inta;

scanf("%d",&a);

printf(a%2==0?

"even":

"odd");

}

10.ProblemB:

简单的打折计算

Description

商店规定:

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

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

元),精确到分。

Input

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

Output

输出金额,精确到分。

SampleInput

953004

SampleOutput

334.40

HINT

了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。

AppendCode

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

}

11.ProblemC:

判断闰年

Description

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

Input

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

Output

输出为一行。

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

SampleInput

2010

SampleOutput

No

HINT

了解逻辑运算符和关系运算符。

AppendCode

#include

intmain()

{

intx;

scanf("%d",&x);

if(x>0&&x<10000)

{

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

=0)

printf("Yes\n");

elseif(x%400==0)

printf("Yes\n");

else

printf("No\n");

}

else

printf("error");

}

12.ProblemD:

水仙花数

Description

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

如:

13+53+33=153。

Input

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

Output

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

SampleInput

153

SampleOutput

YES

HINT

AppendCode

#include

//#include

intmain(){

intn,a,b,c;

chars[10];

scanf("%s",s);

a=s[0]-48;

b=s[1]-48;

c=s[2]-48;

n=a*100+b*10+c;

if(a*a*a+b*b*b+c*c*c==n)printf("YES\n");

elseprintf("NO\n");

return0;

}

13.ProblemE:

三个数比较大小

Description

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

Input

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

Output

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

SampleInput

151020

SampleOutput

101520

HINT

用if语句判断各种情况可以解决这个问题。

AppendCode

#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(c>=a)

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

else

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

}

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

}

}

 

14.ProblemF:

奇怪的求和之一

Description

给定3个正整数a、b和c,按照如下规则求和:

如果这个数字是偶数,则累加到和中;

如果这个数字是奇数,则将大于该数的最小偶数累加到和中。

Input

三个正整数,均在100以内。

Output

一个和。

SampleInput

235

SampleOutput

12

HINT

如果不会使用分支语句,可使用条件运算符判断到底将哪个数累积到和中。

AppendCode

#include

intmain()

{

inta,b,c;

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

if(a%2!

=0)a++;

if(b%2!

=0)b++;

if(c%2!

=0)c++;

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

}

15.ProblemG:

你过线了吗?

Description

经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗?

Input

输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。

第二行有3个非负整数,分别表示你考的三门课程的成绩。

Output

如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。

SampleInput

708070240

808082

SampleOutput

congratulations

HINT

如果你不会使用分支语句,同样可以使用条件运算符实现该程序。

AppendCode

#include

intmain()

{

inta,b,c,d,e,f,g,h;

scanf("%d%d%d%d\n%d%d%d",&a,&b,&c,&d,&e,&f,&g);

h=e+f+g;

if(e>=a&&f>=b&&g>=c&&h>=d)

printf("congratulations");

else

printf("sorry");

}

 

16.ProblemI:

A+BProblem(II):

Input/OutputPractice

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

HINT

N给出了测试样例数,用for循环处理方便。

AppendCode

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

}

 

17.ProblemH:

A+BProblem

Description

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

Input

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

Output

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

SampleInput

12

1020

SampleOutput

3

30

HINT

OJ系统上测试输入结束符为EOF(EndOfFile),其值为-1。

用scanf()把文件所有内容读完后,会读到EOF,所以可以用来判断输入是否完成,测试时可以用Ctrl+Z产生EOF。

本题解法参看FAQ。

AppendCode

#include

intmain(){

inta,b;

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

=EOF){

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

}

return0;

}

18.ProblemA:

判断是否是元音字母

Description

输入一个英文字母,判断是否是元音字母。

元音字母是:

a,e,i,ou,A,E,I,O,U

Input

输入一个英文字母

Output

是元音字母,输出“yes”,否则输出“no”,行尾没有回车。

SampleInput

A

SampleOutput

yes

HINT

AppendCode

#include

voidmain()

{

charch;

scanf("%c",&ch);

if(ch>='A'&&ch<='Z')

ch=ch+32;

if(ch=='a')

printf("yes");

elseif(ch=='e')

printf("yes");

elseif(ch=='i')

printf("yes");

elseif(ch=='o')

printf("yes");

elseif(ch=='u')

printf("yes");

else

printf("no");

}

19.ProblemB:

按顺序输出三个数

Description

对于输入的3个整数,按照从小到大的顺序输出。

Input

输入3个int类型内的整数,两两之间用一个空格隔开。

Output

按照从小到大的顺序输出上述三个数,两两之间用一个空格隔开。

SampleInput

213

SampleOutput

123

HINT

AppendCode

#include

voidmain()

{

inta,b,c,temp;

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

if(a

{

temp=a;

a=b;

b=temp;

}

if(a

{

temp=a;

a=c;

c=temp;

}

if(b

{

temp=b;

b=c;

c=temp;

}

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

}

20.ProblemE:

判断奇偶数

Description

判断输入整数的奇偶性。

Input

输入为一个整数。

Output

输出只有一行,代表判断结果。

如果输入的整数n是一个偶数,输出:

nisanevennumber.

否则输出:

nisanoddnumber.

见样例。

SampleInput

12

SampleOutput

12isanevennumber.

HINT

AppendCode

#include

intmain()

{

inta;

scanf("%d",&a);

if(a%2==0)

printf("%disanevennumber.",a);

else

printf("%disanoddnumber.",a);

}

21.ProblemA:

判断两个整数的大小关系

Description

输入2个整数a和b,如果a>b,则输出1,否则输出0。

Input

两个整数a和b,均不超过int类型的表示范围。

Output

表示a>b的结果:

如果a>b,则输出1,否则输出0。

SampleInput

34

SampleOutput

0

HINT

AppendCode

#include

intmain()

{

inta,b;

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

if(a>b)

printf("1");

else

printf("0");

return0;

}

22.ProblemD:

成绩的等级

Description

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

90~100:

Excellent

80~89:

Good

70~79:

Average

60~69:

Pass

0~59:

Failing

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

Input

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

Output

输入所对应的成绩等级。

SampleInp

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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