C语言程序设计讲义.docx
《C语言程序设计讲义.docx》由会员分享,可在线阅读,更多相关《C语言程序设计讲义.docx(154页珍藏版)》请在冰豆网上搜索。
1.ProblemA:
Helloworld!
Description
Xiao_ming
有两个哥哥,大哥叫Da_min,二哥叫Er_min。
三兄弟放学回家,父母分别跟他们打招呼。
Input
无
Output
请输出:
HelloDa_min,HelloEr_min,
HelloXiao_ming!
SampleInputSampleOutput
HelloDa_min,
HelloEr_min,HelloXiao_ming!
HINT
请注意换行符
AppendCode
#includeintmain()
{
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.14intmain()
{
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
#includeintmain()
{
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
#includeintmain()
{
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!
SampleInputSampleOutput
Hello
world!
HINT
AppendCode
#includeintmain()
{
printf("Helloworld!
");
}
6.ProblemB:
算术基本运算
Description
计算两整数x和y(0Input
输入只有一行,格式见sample。
Output
输出为多行,按顺序每行输出x,y的和、差、积、商、余数、x的平方和y的三次方,格式见sample
SampleInput
x
=
11,
y
=
3
SampleOutput
x+y:
14x-y:
8x*y:
33
remainder:
:
3,
x/yquotient 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:
自增自减运算
C
语言中有自增运算++、自减运算--,并且可以前置和后置。
编写一个程序:
对输入的一个整数
a,输出
a++、a--、++a、--a
Input
一个整数a,a是很小的整数。
Output
输出为5行,第一行为a的值,后面依次为--a、a--、a++、++a
Description
的值。
的值。
5行输出纵向a要对齐,“:
”对齐,“:
”前后各一个空格,后面的数值不用对齐。
每行行尾都有回车。
SampleInput
0
SampleOutput
a 0
--a :
-1
a-- 0
a++:
0
++a 1
HINT
AppendCode
#includeintmain()
{
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
//#includeintmain(){
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
法一:
#includeintmain(){
intn;scanf("%d",&n);if(n>=0&&n<=100)
{
if(n%2==0)printf("even\n");elseprintf("odd\n");
}
return0;
}
法二:
#includeintmain()
{
inta;scanf("%d",&a);
printf(a%2==0?
"even":
"odd");
}
10.ProblemB:
简单的打折计算
Description
商店规定:
消费满n元,可以打八八折。
设某件商品标价m元,输入购买的件数x,计算出需要支付的金额(单位:
元),精确到分。
Input
输入只有一行,三个整数m、n和x,且0Output
输出金额,精确到分。
334.40
95
300
4
SampleInputSampleOutput
HINT
了解浮点型的输出控制,注意整型和浮点型混合运算过程中的数据类型转换。
AppendCode
#includeintmain()
{
intm,x,n,a;floatb;
scanf("%d%d%d",&m,&n,&x);0xif(a>n)
b=0.88*a;
else
b=a;
printf("%.2f\n",b);
}
11.ProblemC:
判断闰年
Description
输入一个正整数的年份,判断是否为闰年。
Input
输入只有一行,为一个10000以内的正整数。
Output
输出为一行。
若输入为闰年偶数则输出“Yes”,否则输出“No”。
Sample