北京理工大学c语言编程Word格式.docx
《北京理工大学c语言编程Word格式.docx》由会员分享,可在线阅读,更多相关《北京理工大学c语言编程Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
,&
a,&
b,&
c);
if(a+b>
c&
&
a+c>
b&
b+c>
a)
if(a==b&
a==c)
printf("
equilateraltriangle.\n"
);
elseif(a==b||b==c||a==c)
isocelestriangle.\n"
else
triangle.\n"
non-triangle.\n"
getch();
}
2-1.整型数的表示范围
编写一个循环程序,输入N值,输出N的阶乘。
关于循环程序怎么编写,可以参考教材第六章P123的内容。
注意整型数的表示范围,如果当输入的N比较大时,例如N等于20时,输出怎么是负数了?
自己想明白吧!
1.5↵
1.120↵
测试用例4
1.12↵
1.479001600↵
1.20↵
1.N
is
too
big!
↵
1.#include<
2.main()
3.{
4.
int
i,n;
5.
long
m;
6.
scanf("
%d"
n);
7.
i=1;
8.
m=1;
9.
do{m=m*i;
10.
i=i+1;
11.
}while(i<
=n);
12.
if(m>
=0)
13.
printf("
%ld\n"
m);
14.
else
15.
N
\n"
16.}
2-2.求正弦函数值
已知求正弦sin(x)的近似值的多项式公式为:
sin(x)=x-x3/3!
+x5/5!
-x7/7!
+……+(-1)nx2n+1/(2n+1)!
+…
编写程序,要求输入x(单位是弧度)和ε,按上述公式计算sin(x)的近似值,要求计算的误差小于给定的ε。
此题当然要用到循环语句,到第六章去找个猫来照着画吧,循环的终止条件就是本次计算出来的正弦函数值和上次计算的值的差小于给定的ε。
求两个值的差时,要求出其绝对值,使用库函数fabs(),头文件在math.h里。
给定的误差值ε越小,计算的精度越高,但是要注意喽,给的精度太高,你的程序会成为死循环。
如果出现死循环的情况,可以用<
Ctrl>
+<
Break>
键退出程序。
1.0
0.000001↵
1.0.000000↵
1.1.57079
1.1.000000↵
开启时间
2011年02月28日星期一08:
00
折扣时间
2011年03月25日星期五22:
关闭时间
2011年03月30日星期三22:
#include<
math.h>
main()
{inti;
doublex,e,a,b,sin;
i=3;
%lf%lf"
x,&
e);
a=x;
sin=x;
do{a=a*x*x/i/(i-1);
a=-a;
i=i+2;
sin+=a;
b=fabs(a);
}while(b>
=e);
%f\n"
sin);
}
2-3.判断输入的字符的类型
我们将字符分为五类:
大写字母、小写字母、数字、控制字符、其他字符。
编写程序,从键盘输入一个字符,输出字符所属的类型:
大写字母时输出capitalletters,小写字母时输出smallletters,数字是输出figures,控制字符时输出controlcharacters,其他字符时输出others。
1.A↵
1.capital
letters↵
{
charx;
%c"
x);
if(x>
='
A'
x<
Z'
)
capitalletters\n"
else
a'
z'
smallletters\n"
0'
9'
figures\n"
others\n"
3-1.字符加密输出
从键盘上输入一个字符,进行加密以后再输出在屏幕上。
加密规律是:
输入小写英文字母时,输入a输出Z、输入b输出Y、输入c输出X、...、输入z输出A。
输入大写英文字母时,将该字母ASCII码值再加上该值的1/2后输出所对应的字符,例如数字A的ASCII码值是65,加上其值的1/2后是98(小数四舍五入),则输出字符‘b’。
输入数字时,将该数字原ASCII码值再加上该值十进制的十位上的数后输出,例如数字9的ASCII码值是57,加上十位上的数5后是62,则输出字符‘>
’。
输入其他字符时原样输出。
整数之间运算的结果要取整,例如5/2的结果是2,而5.0/2.0对小数四舍五入的结果就是3.0了。
所以输入大写英文字母时的输出要仔细考虑。
1.g↵
1.T↵
2011年03月7日星期一01:
20
2011年03月27日星期日01:
2011年04月3日星期日01:
3-2.求和
输入整数m和正整数n,按下列公式计算s:
s=m-(m+1)+m+2-(m+3)+……+(-1)n(m+n)。
m和n
s
1.1
90↵
1.s=46↵
2011年03月7日星期一08:
2011年03月27日星期日22:
2011年04月3日星期日22:
允许迟交:
否
3-3.计算时钟的夹角
背景:
钟面上的时针和分针之间的夹角总是在0度~359度之间。
举例来说,在十二点的时候两针之间的夹角为0度,而在六点的时候夹角为180度,在三点的时候为90度。
本题要解决的是计算12:
00到11:
59之间任意一个时间的夹角。
每组测试数据包含两个数字:
第一个数字代表小时(大于0小于等于12),第二个数字代表分(在区间[0,59]上)。
对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。
输出格式如下所示。
1230
At12:
30theangleis165.0degrees.
以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。
1.12
0↵
1.At
12:
00
the
angle
0.0
degrees.↵
7秒
3↵
3:
03
73.5
测试用例3
30↵
30
165.0
2.main()
3.{
4.float
a,b,c,d,i;
5.scanf("
%f
%f"
b);
6.c=30*a+0.5*b;
7.d=6*b;
8.i=fabs(c-d);
9.if(i>
180)
i=360.0-i;
10.printf("
At
%1.0f:
%02.0f
%2.1f
degrees.\n"
a,b,i);
11.getch();
12.}#include<
13.main()
14.{
a,b;
16.
float
c,d,e;
17.
%d
18.
d=6*b;
19.
c=30*a+0.5*b;
20.
if(c>
=360)
21.
{c=c-360;
}
22.
23.
{c=c;
24.
e=d-c;
25.
e=fabs(e);
26.
"
27.
a);
28.
:
29.
if(b<
=9)
30.
{printf("
0"
31.
b);
32.
33.
%-2d"
34.
35.
%.1f"
e);
36.
37.}
3-4.求亲密数
若正整数A的全部约数(包括1,不包括A本身)之和等于B;
且整数B的全部约数(包括1,不包括B本身)之和等于A,则A、B为亲密数。
编程,输入正整数A,输出亲密数A,B(A<
=B),若不存在亲密数,则输出Nooutput。
例如:
220和284就是一对亲密数。
220的约数是:
1、2、4、5、10、11、20、22、44、55、110,约数之和是284;
284的约数是:
1、2、4、71、142,约数之和是220。
1.220↵
1.220-284↵
1.#include
stdio.h"
2.main()
3.{int
a,b=0,c=0,i,j=0;
4.scanf("
a);
5.for(i=1;
i<
=a/2;
i++)
6.if(a%i==0)
b+=i;
7.if(a<
=b)
8.for(i=1;
=b/2;
9.if(b%i==0)
c+=i;
10.if(c==a)
%d-%d\n"
a,b);
j=1;
}
11.if(j==0)
No
output\n"
12.}
4-1.打印实心正方形
上次你已经打印了一行*号,这次在屏幕上输出一个由星号组成的n行n列的正方形。
程序输入n值,输出如下例(n=4)所示的高和上底均为n的正方形:
****
****
高n
n行n列的正方形
1.4↵
1.****↵
2.****↵
3.****↵
4.****↵
1.#include"
3.{
n,i=1,j=1;
while(j<
=n)
{
while(i<
*"
i++;
}printf("
j++;
4-2.学习成绩归类
学生的学习成绩是百分制,成绩的归类标准是:
90<
=成绩<
=100
为"
super"
;
80<
90
good"
70<
80
ok"
60<
70
pass"
成绩<
60
nogood"
。
编写程序。
输入若干个成绩,输出成绩和相应的等级。
输入成绩为负时,程序结束,输入成绩大于100分,显示“inputerror”。
1.82
42
96
73
-1↵
↵
2.42
no
3.96
4.73
5.80
a=0;
while(a>
{scanf("
if(a>
100)
\"
input
error\"
=90&
a<
=100)
super\"
=80&
90)
good\"
=70&
80)
ok\"
=60&
70)
pass\"
=0&
60)
18.
19.XX文库-让每个人平等地提升自我
return
0;
20.}
4-3.输出星期几的英文表示
XX文库-让每个人平等地提升自我成绩:
输入用数字(1--7)表示的星期几,输出星期几的英文表示,输入的数字有误,输出单词"
Error(回车)"
1.3↵
1.Wednesday↵
无限制
a;
switch(a)
case
7:
Sunday\n"
break;
6:
Saturday\n"
5:
Friday\n"
4:
Thursday\n"
Wednesday\n"
2:
Tuesday\n"
1:
Monday\n"
default:
Error\n"
15.}
4-4.求最大数和最小数的算数运算结果
输入若干个整数,及其要进行的算术运算(+|-|*|/)符号,输出最大整数与最小整数进行给定的算术运算的结果。
输入的整数范围是(0~65535),输入等号作为输入的结束,输出格式见例题。
整数序列及其运算序号
最大数与最小数的算术运算式
1.15,1,11,2,0,3,+,=↵
1.15+0=15↵
1.1,5,2,0,/,=↵
1.Error!
char
ch,i,j='
\\'
;
max=0,min=65535,n=0;
while((ch=getchar())!
)
{
if('
<
=ch&
ch<
n=n*10+ch-48;
if(ch=='
'
j!
'
max=n>
max?
n:
max;
min=n<
min?
min;
n=0;
+'
||ch=='
-'
*'
/'
{i=ch;
j='
switch(i)
%d+%d=%d\n"
max,min,max+min);
%d-%d=%d\n"
max,min,max-min);
%d*%d=%d\n"
max,min,max*min);
if(min!
=0)printf("
%d/%d=%d\n"
max,min,max/min);
Error!
28.}
(4-5.黑色星期五
在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。
所以,不管哪个月的13日又恰逢星期五就叫“黑色星期五”。
输入某年年号和该年的元旦是星期几(1-7),输出该年所有的“黑色星期五”的日期(年/月/日)。
4位年号和该年元旦是星期几
所有的“黑色星期五”的日期(年/月/日)