c语言编程题及答案Word格式.docx
《c语言编程题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《c语言编程题及答案Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
【思考题】如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?
请读者修改程序,并上机测试程序运行结果。
2.掷骰子游戏
编写程序模拟掷骰子游戏。
已知掷骰子游戏的游戏规则为:
每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。
如果第一次投的点数和为7或11,则游戏者获胜;
如果第一次投的点数和为2、3或12,则游戏者输;
如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。
如果投掷7次仍未赚到该点数,则游戏者输。
【思考题】将游戏规则改为:
计算机想一个数作为一个骰子掷出的点数(在用户输入数据之前不显示该点数),用户从键盘输入一个数作为另一个骰子掷出的点数,再计算两点数之和。
其余规则相同,然后请读者重新编写该程序。
答案:
1.1。
。
#include<
stdio.h>
/*函数功能:
计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0
函数参数:
整型变量a和b,分别代表被加数和加数
函数返回值:
当a加b的结果与用户输入的答案相同时,返回1,否则返回0
*/
intAdd(inta,intb)
{
intanswer;
printf("
%d+%d="
a,b);
scanf("
%d"
&
answer);
if(a+b==answer)
return1;
else
return0;
}
打印结果正确与否的信息
整型变量flag,标志结果正确与否
无
voidPrint(intflag)
if(flag)
printf("
Right!
\n"
);
else
Notcorrect!
main()
inta,b,answer;
Inputa,b:
"
%d,%d"
a,&
b);
answer=Add(a,b);
Print(answer);
1.2。
intanswer;
Rright!
Notcorrect.Tryagain!
do
{
answer=Add(a,b);
Print(answer);
}while(answer==0);
1.3。
整型变量chance,表示同一道题已经做了几次还没有做对
voidPrint(intflag,intchance)
elseif(chance<
3)
Notcorrect.Youhavetriedthreetimes!
\nTestover!
inta,b,answer,chance;
chance=0;
chance++;
Print(answer,chance);
}while((answer==0)&
&
(chance<
3));
1.4。
stdlib.h>
time.h>
inta,b,answer,error,score,i;
srand(time(NULL));
error=0;
score=0;
for(i=0;
i<
10;
i++)
a=rand()%10+1;
b=rand()%10+1;
if(answer==1)
score=score+10;
error++;
}
score=%d,errornumbers=%d\n"
score,error);
1.5。
对两整型数进行加、减、乘、除四则运算
如果用户输入的答案与结果相同,则返回1,否则返回0
函数参数:
整型变量a和b,分别代表参加四则运算的两个操作数
整型变量op,代表运算类型,
当op值为1,2,3,4时,分别执行加、减、乘、整除运算
函数返回值:
当用户输入的答案与结果相同时,返回1,否则返回0
intpute(inta,intb,intop)
intanswer,result;
switch(op)
case1:
printf("
%d+%d="
result=a+b;
break;
case2:
%d-%d="
result=a-b;
case3:
%d*%d="
result=a*b;
case4:
if(b!
=0)
{
printf("
%d/%d="
result=a/b;
/*注意这里是整数除法运算,结果为整型*/
}
else
Divisionbyzero!
default:
Unknownoperator!
if(result==answer)
inta,b,answer,error,score,i,op;
op=rand()%4+1;
answer=pute(a,b,op);
2.。
introllDice(void);
enumStatus{CONTINUE,WON,LOST};
intsum,myPoint,count=0;
enumStatusgameStatus;
sum=rollDice();
switch(sum)
case7:
case11:
gameStatus=WON;
case12:
gameStatus=LOST;
gameStatus=CONTINUE;
myPoint=sum;
Pointis%d\n"
myPoint);
while(gameStatus==CONTINUE)
sum=rollDice();
count++;
if(sum==myPoint)
{
gameStatus=WON;
}
elseif(count==7)
gameStatus=LOST;
if(gameStatus==WON)
Playerwins\n"
Playerloses\n"
introllDice(void)
intdie1,die2,workSum;
die1=1+rand()%6;
die2=1+rand()%6;
workSum=die1+die2;
Playerrolled%d+%d=%d\n"
die1,die2,workSum);
returnworkSum;