1 / 4
文档名称:

C语言逻辑推理例题(附答案)(DOC).doc

格式:doc   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言逻辑推理例题(附答案)(DOC).doc

上传人:今晚不太方便 2015/10/13 文件大小:0 KB

下载得到文件列表

C语言逻辑推理例题(附答案)(DOC).doc

文档介绍

文档介绍:C语言逻辑推理例题(多重循环)
例1明明找不到铅笔盒了,妈妈对他说:“我把铅笔盒放到三个抽屉中的一个抽屉里了,每个抽屉上都写了一句话。不过,其中只有一句话是真的。”明明看到的三句话是:
左边抽屉:“铅笔盒不在这里”;
中间抽屉:“铅笔盒不在这里”;
右边抽屉:“铅笔盒在左边的抽屉”;
例2甲、乙、丙、丁四人参加一次数学竞赛。赛后,他们四人预测名次的谈话如下:
甲说:“丙得第一,我第三名”;
乙说:“我第一名,丁第四名”
丙说:“丁第二名,我第三名”
丁没说话。
当最后结果公布时发现,甲乙丙都只说对了一半,请给出正确的四人名次。
例3一位法官在审理一起盗窃案时,对涉及到的四名嫌疑犯A、B、C、D进行了审问。四人分别供述如下:
A:“罪犯在B、C、D三人之中。”
B:“我没有作案,是C偷的。”
C:“在A和D中间有一个是罪犯。”
D:“B说的是事实”
经过充分的调查,证实四人中只有两人说了真话,并且罪犯只有一个。请确定真正的罪犯。
参考答案:(1)
#include<>
#include<>
main()
{
short a,b,c,d,l1,l2,l3,l4;
for(a=0;a<=1;a++)
for(b=0;b<=1;b++)
for(c=0;c<=1;c++)
for(d=0;d<=1;d++)
{ l1=(b+c+d==1);
l2=(!b&&c);
l3=(a+d==1);
l4=l2;
if(l1+l2+l3+l4==2&&a+b+c+d==1)
printf("%d,%d,%d,%d\n",a,b,c,d);
}
system(“pause”);
}
参考答案:(2)
#include<>
#include<>
main()
{
short a,b,c,d,j,t;
for(j=0;j<=15;j++)
{ a=(j&8)>>3;b=(j&4)>>2;c=(j&2)>>1;d=j&1;
t=(b+c+d==1)+(!b&&c)+(a+d==1)+(!b&&c);
if(t==2&&a+b+c+d==1)
printf("%d,%d,%d,%d\n",a,b,c,d);
}
system("pause");
}<br****题
1、 小狗、小兔、小猫、小猴和小鹿参加百米赛跑,比赛结束后,
小猴说:“我比小猫跑得快。”
小狗说:“小鹿在我的前面冲过了终点线。”
小兔说:“我的名次排在小猴的前面,小狗的后面。”
请根据他们的回答排出名次。
参考答案:
#include&lt;&gt;
#include&lt;&gt;
main()
{
short a,b,c,d,e,l1,l2,l3; /*a,b,c,d,e分别代表小狗,小兔,小猫,小猴,小鹿*/
for(a=1;a&lt;=5;a++)
for(b=1;b&lt;=5;b++)
{if(a==b) continue;
for(c=1;c&lt;=5;c++)
{if(a==c||b==c) continue;
for(d=1;d&lt;=5;d++)
{ if(a