哈工大C语言实验题.docx
- 文档编号:27309113
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:45
- 大小:25.52KB
哈工大C语言实验题.docx
《哈工大C语言实验题.docx》由会员分享,可在线阅读,更多相关《哈工大C语言实验题.docx(45页珍藏版)》请在冰豆网上搜索。
哈工大C语言实验题
窗体顶端
Q308.(10分)第5章实验2:
体型判断。
医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。
体指数计算公式是:
t=w/(h*h)
其中:
t是体指数;w是体重,其单位为千克;h是身高,其单位为米。
根据给定的体指数t计算公式,可判断你的体重属于何种类型:
当t<18时,为低体重;
当18≤t<25时,为正常体重;
当25≤t<27时,为超重体重;
当t≥27时,为肥胖。
****输入提示信息格式:
"Pleaseenterh,w:
\n"
****输入数据格式要求:
"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入)
****输出数据格式要求:
当t<18时,输出:
"Lowerweight!
\n"
当18≤t<25时,输出:
"Standardweight!
\n"
当25≤t<27时,输出:
"Higherweight!
\n"
当t≥27时,输出:
"Toofat!
\n"
窗体底端
#include
#include
main()
{
floatt,w,h;
printf("Pleaseenterh,w:
\n");
scanf("%f,%f",&h,&w);
t=w/(h*h);
if(t<18)
printf("Lowerweight!
\n");
elseif(t>=18&&t<25)
printf("Standardweight!
\n");
elseif(t>=25&&t<27)
printf("Higherweight!
\n");
else
printf("Toofat!
\n");
return0;
}
窗体顶端
窗体顶端
Q586.(
窗体底端
10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?
(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)。
**输入格式要求:
"%d,%d"提示信息:
"Pleaseenteryear,month:
"
**输出格式要求:
"%disleapyear\n""%disnotleapyear\n""Theseasonisspring/summer/autumn/winter""Thenumberofdaysofthismonthis%d\n"
程序运行示例如下:
实例1:
Pleaseenteryear,month:
2012,11
2012isleapyear
Theseasonisautumn
Thenumberofdaysofthismonthis30
实例2:
Pleaseenteryear,month:
2013,12
2013isnotleapyear
Theseasoniswinter
Thenumberofdaysofthismonthis31
窗体底端
#include
#include
main()
{
intyear=0,leap=0,mon=0,day=0;
printf("Pleaseenteryear,month:
");
scanf("%d,%d",&year,&mon);
if((year%100!
=0&&year%4==0)||(year%100==0&&year%400==0)){
printf("%disleapyear\n",year);
leap=1;
}
else
printf("%disnotleapyear\n",year);
switch(mon)
{
case 1:
case 2:
case12:
printf("Theseasoniswinter\n");
break;
case 3:
case 4:
case 5:
printf("Theseasonisspring\n");
break;
case 6:
case 7:
case 8:
printf("Theseasonissummer\n");
break;
case 9:
case10:
case11:
printf("Theseasonisautumn\n");
break;
}
switch(mon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case10:
case12:
day=31;
break;
case 4:
case 6:
case 9:
case11:
day=30;
break;
case 2:
if(leap==1)
day=29;
else
day=28;
}
printf("Thenumberofdaysofthismonthis%d\n",day);
}
窗体顶端
Q3161.(10分)请用elseif多分支条件判断语句编程设计一个简单的计算器程序。
要求:
(1)请用户按以下形式从键盘输入表达式:
操作数①运算符op操作数②
(2)然后计算表达式的值
**输入提示信息**:
无
**输入数据格式**:
"%f%c%f"
**输出数据格式**:
"%.2f%c%.2f=%.2f\n"
若若输入的运算符是除法运算符/,当除数为0时,输出数据格式为:
"datis0!
Error!
\n"
若输入的运算符不是加(+)、减(-)、乘(*)、除(/),则输出数据格式为:
"Error!
\n"
[友情提示]:
①用户输入的运算符为算术运算符:
加(+)、减(-)、乘(*)、除(/)。
用字符变量op表示;
②操作数①和操作数②为浮点型数据,分别用浮点型变量dat1、dat2表示。
③程序运行结果如下所示:
1+2↙
1.00+2.00=3.00
#include
#include
main()
{
floata=0,b=0;
charop;
scanf("%f%c%f",&a,&op,&b);
if(op=='+')
printf("%.2f%c%.2f=%.2f\n",a,op,b,a+b);
elseif(op=='-')
printf("%.2f%c%.2f=%.2f\n",a,op,b,a-b);
elseif(op=='*')
printf("%.2f%c%.2f=%.2f\n",a,op,b,a*b);
elseif(op=='/'){
if(b!
=0)
printf("%.2f%c%.2f=%.2f\n",a,op,b,a/b);
else
printf("datis0!
Error!
\n");
}
else
printf("Error!
\n");
}
窗体底端
窗体顶端
Q3185.(10分)实验二(2016春刘秉权C语言课):
根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。
转换规则为(要求用switch语句实现):
当score大于等于90且小于等于100时,grade=A;
当score大于等于80且小于90时,grade=B;
当score大于等于70且小于80时,grade=C;
当score大于等于60且小于70时,grade=D;
当score大于等于0且小于60时,grade=E。
格式要求:
输入提示:
"Pleaseenterscore:
"
输出形式形如:
"100--A"、"75--C"、"0--E"
当输入分数不正确时,输出:
"Inputerror!
"
#include
main()
{
ints,m;
printf("Pleaseenterscore:
");
scanf("%d",&s);
m=s<0||s>100?
-1:
s/10;
switch(m)
{
case10:
case 9:
printf("%d--A\n",s);
break;
case 8:
printf("%d--B\n",s);
break;
case 7:
printf("%d--C\n",s);
break;
case 6:
printf("%d--D\n",s);
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
printf("%d--E\n",s);
break;
default:
printf("Inputerror!
");
}
}
窗体底端
窗体顶端
Q221.(10分)编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。
要求考虑闰年以及输入月份不在合法范围内的情况。
已知闰年的2月有29天,平年的2月有28天。
**输入格式要求:
"%d,%d"提示信息:
"Inputyear,month:
"
**输出格式要求:
"31days\n""29days\n""28days\n""Inputerror!
\n"
程序运行示例如下:
Inputyear,month:
2004,2
29days
#include
main()
{
inta,b;
printf("Inputyear,month:
");
scanf("%4d,%2d",&a,&b);
switch(b)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case10:
case12:
printf("31days\n");
break;
case 4:
case 6:
case 9:
case11:
printf("30days\n");
break;
case 2:
if((a%4==0&&a%100!
=0)||a%400==0)
printf("29days\n");
else
printf("28days\n");
break;
default:
printf("Inputerror!
\n");
}
return0;
}
窗体底端
窗体顶端
Q210.(10分)第7章实验任务1:
所谓素数是指这个数只能被1和自身整除。
要求在主函数输入一个数,
调用函数Fun()判断该数是否是素数。
打印信息在主函数中进行。
例如:
从键盘输入5,5是素数则打印如下信息:
"5isaprimenumber".
又如:
从键盘输入4,4不是素数则打印如下信息:
"4isnotaprimenumber"
负数、0和1均不是素数。
对输入的数据要考虑数据的合法性,不满足条件的数
要重新输入直到满足条件为止。
不能使用全局变量,不按给定的函数原型编写程序
不给分。
Fun()函数原型如下:
intFun(intm);
**输入数据提示信息:
"Pleaseinputanumber:
\n"
注:
该提示信息请放在循环体外
**输入数据格式为:
"%d"
**输出格式要求:
若是素数输出数据格式为:
"%disaprimenumber\n"
若不是素数输出数据格式为:
"%disnotaprimenumber\n"
#include
#include
intFun(intm);
main()
{
inta;
printf("Pleaseinputanumber:
\n");
while(scanf("%d",&a))
{
if(a<=0||a==1)
continue;
elseif(a>0&&a!
=1&&Fun(a)==1)
printf("%disaprimenumber\n",a);
else
printf("%disnotaprimenumber\n",a);
break;
}
return0;
}
intFun(intm)
{
inti,result;
result=1;
if(m!
=2)
{
for(i=2;i { if(m%i==0) { result=0; break; } } } returnresult; } 窗体底端 窗体顶端 Q3185.(10分)实验二(2016春刘秉权C语言课): 根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。 转换规则为(要求用switch语句实现): 当score大于等于90且小于等于100时,grade=A; 当score大于等于80且小于90时,grade=B; 当score大于等于70且小于80时,grade=C; 当score大于等于60且小于70时,grade=D; 当score大于等于0且小于60时,grade=E。 格式要求: 输入提示: "Pleaseenterscore: " 输出形式形如: "100--A"、"75--C"、"0--E" 当输入分数不正确时,输出: "Inputerror! " #include main() { ints,m; printf("Pleaseenterscore: "); scanf("%d",&s); m=s<0||s>100? -1: s/10; switch(m) { case10: case 9: printf("%d--A\n",s); break; case 8: printf("%d--B\n",s); break; case 7: printf("%d--C\n",s); break; case 6: printf("%d--D\n",s); break; case 5: case 4: case 3: case 2: case 1: case 0: printf("%d--E\n",s); break; default: printf("Inputerror! "); } } 窗体底端 窗体顶端 Q1709.(10分)第6章实验1: 国王的许诺 相传国际象棋是古印度舍罕王的宰相达依尔发明的。 舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。 这位聪明的宰相指着8×8共64格的象棋盘说: 陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。 舍罕王让人扛来一袋麦子,他要兑现他的许诺。 请问: 国王能兑现他的许诺吗? 试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42e8粒)? 注: (1)不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。 (2)用标准C语言编程,所有变量必须在第一条可执行语句前定义。 (3)输入输出格式要和以下给定格式完全一致。 **输入格式: 无 **输出格式: "sum=%e\n" "volum=%e\n" %e表示double类型 #include #include main() { inti; doubles,v; s=0; for(i=0;i<=63;i++) s=s+pow(2,i); v=s/1.42e8; printf("sum=%e\n",s); printf("volum=%e\n",v); return0; } 窗体底端 窗体顶端 Q1719.(10分)第7章实验任务3 从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和 输入提示信息: "Inputn: " 输入格式: "%d" 输出格式: "sum=%d\n" #include #include intFun(intm); main() { intn,i,s; s=0; printf("Inputn: "); scanf("%d",&n); for(i=2;i<=n;i++) { if(Fun(i)==1) s=s+i; } printf("sum=%d\n",s); return0; } intFun(intm) { inti,result; result=1; if(m! =2) { for(i=2;i { if(m%i==0) { result=0; break; } } } returnresult; } 窗体底端 窗体顶端 Q1720.(10分)第7章实验任务6 从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"Itisaprimenumber"。 例如,用户输入90时,程序输出90=2*3*3*5;用户输入17时,程序输出"Itisaprimenumber"。 输入提示信息: "Inputm: " 输入格式: "%d" 输出格式: 是素数时输出"Itisaprimenumber\n" 否则输出用"%d=","%d*" 运行示例1: Inputm: 90↙ 90=2*3*3*5 运行示例2: Inputm: 13↙ Itisaprimenumber #include intFun(intm); intIsPerfect(intm); main() { intm,i,p; printf("Inputm: "); scanf("%d",&m); p=m;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 语言 实验