第4周编程题在线测试
爱国主义文章-清明节的来历和习俗
1
分数比较(4分)
题目内容:
利用人工方式比较分数大小的最
常见的方法是:对分数进行通分后比较分子的大小。请编程
模拟手工比较两个分数的大小。首先输入两个
分数分子分母的值,例如,比
较分数大小后输出相应的提示信息。例如,第一个分数1113小于第二个
分数1719,则输
出。
程序的运行结果示例1:
Input ab,
cd:1113,1719↙
1113<1719
程序的运行结果示例2:
Input ab, cd:1719,2327↙
1719>2327
程序的运行结果示例3:
Input ab, cd:34,1824↙
34=1824
输入提示信息:(注意:逗号后面有一个空格)
输入格式:
输出格式:
比较的结果是大于:
比较的结果是小于:
比较的结果是相等:
#include
int main()
{
int a,b,c,d;
printf(
scanf(
if(a*d>b*c){
printf(
}
else if(a*d printf(
}
else
printf(
return 0;
}
2
存款利率计算器v2.0(4分)
题目内容:
设capital是最初的存款总额(即本金),rate是整存整取的存款年利率,n
是储蓄的
年份,deposit是第n年年底账号里的存款总额。已知如下两种本利之和的计算方式:
按复利方式计息的本利之和计算公式为:
按普通计息方式计算本利之和的公式为:
deposit = capital * (1 + rate * n)
编程从键
盘输入存钱的本金、存款期限以及年利率,然后再输入按何种方式计息,最
后再计算并输出到期时能从银
行得到的本利之和,要求结果保留到小数点后4位。
提示:使用数学函数需要加入头文件
程序的运行结果示例1:
Input rate, year,
capital:0.0225,2,10000↙
Compound interest
(YN)?Y
deposit = 10455.0625
程序的运行结果示例2:
Input rate, year,
capital:0.0225,2,10000↙
Compound interest
(YN)?n
deposit = 10450.0000
输入提示信息:
输入提示信息:
本金、存款期限以及年利率的输入格式:
是否选择复利计算的输入格式:
%c(注意:%c的前面有一个空格。输入的字符大小写
皆可,即Y或y,N或n皆可)
输出格式:
#include
#include
int main()
{
double
a,c;int b;char d;
printf(
scanf(
printf(
scanf(
if(d ==
'y' || d == 'Y')
printf(
else
if(d=='n'||d=='N')
{
printf(
}
else
printf(
return 0;
}
3
存款利率计算器v3.0(9分)
题目内容:
设capital是最初的存款总额(即本金),rate是整存整取的存款年利率,n
是储蓄的年
份,deposit是第n年年底账号里的存款总额。已知如下两种本利之和的计算方式:
按复利方式计息的本利之和计算公式为:
按普通计息方式计算本利之和的公式为:
deposit = capital * (1 + rate * n)
已知银行整存整取不同期限存款的年息利率分别为:
存期1年,利率为 0.0225
存期2年,利率为 0.0243
存期3年,利率为 0.0270
存期5年,利率为 0.0288
存期8年,利率为 0.0300
若输入其他年份,则输出
编程从键盘输入存钱的本金和存款期限,然后再输入按何种
方式计息,最后再计算并输出到
期时能从银行得到的本利之和,要求结果保留到小数点后4位。
程序的运行结果示例1:
Input capital,
year:10000,2↙
Compound interest (YN)?Y↙
rate = 0.0243, deposit = 10491.9049
程序的运行结果示例2:
Input capital, year:10000,2↙
Compound interest (YN)?n↙
rate =
0.0243, deposit = 10486.0000
程序的运行结果示例3:
Input capital, year:1000,4↙
Compound
interest (YN)?y↙
Error year!
输入提示信息:
输入提示信息:
存期输入错误的提示信息:
本金及存款期限的输入格式:
是否选择复利计算的输入格式:
%c(注意:%c的前面有一个空格。输入的字符大小写
皆可,即Y或y,N或n皆可)
输出格式:
#include
#include
int main()
{
int year;
double
rate, deposit, capital;
char x;
printf(
scanf(
printf(
getchar();
x=getchar();
switch(year)
{
case 1:
rate = 0.0225;
break;
case 2:
rate =
0.0243;
break;
case 3:
rate = 0.0270;
break;
case 5:
rate = 0.0288;
break;
case 8:
rate = 0.0300;
break;
default:
{
printf(
return 0;
}
}
switch(x)
{
case'y':
deposit = capital *
pow((1 + rate), year);
break;
case'Y':
deposit = capital * pow((1 + rate), year);
break;
case'N':
deposit = capital * (1 + rate
* year);
break;
case'n':
deposit = capital *
(1 + rate * year);
break;
}
printf(
return 0;
}4
博弈论之Best
Response(6分)
题目内容:
在博弈论中,有一种决策称为Best Respo
nse,通俗的意思就是选择一种策略使得团体利益
最大化。C语言学习成绩的评定方式分为两种,一种
是自由刷题模式(compete),没有固
定标准,刷题越多者排名越靠前,其期末分数越高;另一种
是规定每个人必须做够多少道题
(standard),达到要求就能取得相应分数。
假设一个班级中的学生分为A、B两类,A类同学学习热情很高,乐于做题,采用compete
模
式可以获得成就感并且在期末拿到高分,compete模式可以让他们有10分的收益;采用
stan
dard模式他们也可以在期末拿到高分,但不能满足他们的求知欲,standard模式可以
让他们
有8分的收益。B类同学仅仅希望期末拿高分,如果采用compete模式,他们竞争不
过A类同学,
期末成绩不理想,因此compete模式能给他们6分的收益;如果采用standard
模式,他们
可以完成规定任务并拿到高分,因此standard模式可以让他们有10分的收益。
编
程输入A类和B类同学分别占班级总人数的百分比,分别计算并输出采用compete和
standa
rd两种刷题模式下的全班总收益,并输出这个班级在这场博弈中的Best
Response
是哪种模式。
注: 程序中使用的数据类型为float
程序运行结果示例1:
Input percent of A and B:0.2
0.8↙
compete = 6.8000
standard = 9.6000
The Best Response is standard!
程序运行结果示例2:
Input percent of A and B:0.8 0.2↙
compete
= 9.2000
standard = 8.4000
The Best
Response is compete!
程序运行结果示例3:
Input percent of A and B:0.5 0.5↙
compete
= 8.0000
standard = 9.0000
The Best
Response is standard!
输入提示信息:
输入格式:
输出格
式:
输出提示信息:
输出提示信息:
#include
main()
{
float
a,b,compete,standard;
printf(
scanf(
compete=a*10+b*6;
standard=a*8+b*10;
printf(
if(compete>= standard)
{
printf(
}
else
printf(
}