日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

嵌入式linux面试题解析(四)——逻辑推理一

發布時間:2025/3/8 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式linux面试题解析(四)——逻辑推理一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

嵌入式linux面試題解析(四)——邏輯推理一

1、誰是罪犯問題

????一位法官在審理一起盜竊案時,對涉及到的四名嫌疑犯A、B、C、D進行了審問。四人分別供述如下:

????A:“罪犯在B、C、D三人之中。”

????B:“我沒有作案,是C偷的。”

????C:“在A和D中間有一個是罪犯。”

????D:“B說的是事實”

????經過充分的調查,證實四人中只有兩人說了真話,并且罪犯只有一個。請確定真正的罪犯。

解答:

?

#include?<stdio.h>int?main(int?argc,?char?*argv[]){//假設A是罪犯unsigned?int?killer?=?'A';int?flags?=?0;//A、B、C、D說真話的值為1,說假話為0,四個人所說真假的和//假設A、B、C、D都是罪犯,遍歷四種可能for(killer?=?'A';?killer?<=?'D';?killer++){flags?=?(killer?==?'B'?||?killer?==?'C'?||?killer?==?'D');flags?+=?(killer?==?'C');flags?+=?(killer?==?'A'?||?killer?==?'D');flags?+=?(killer?==?'C');if(flags?==?2)//A、B、C、D中有兩個人說的是真話{printf("killer?is?%c\n",?killer);}}return?0;}

輸出結果:

killer is D

2、小狗、小兔、小貓、小猴和小鹿參加百米賽跑,比賽結束后,

????小猴說:“我比小貓跑得快。”

????小狗說:“小鹿在我的前面沖過了終點線。”

????小兔說:“我的名次排在小猴的前面,小狗的后面。”

????請根據他們的回答排出名次。

解答:

#include?<stdio.h>int?main(int?argc,?char?**argv) {//小狗、小兔、小貓、小猴、小鹿分別定義為a,b,c,d,eunsigned?int?a,?b,?c,?d,?e;for(a?=?1;?a?<=?5;?a++){for(b?=?1;?b?<=?5;?b++){if(a?==?b)continue;for(c?=?1;?c?<=?5;?c++){if(a?==?c?||?b?==?c)continue;for(d?=?1;?d?<=?5;?d++){if(a?==?d?||?b?==?d?||?c?==?d)continue;e?=?15?-a?-b?-c?-d;if((d?<?c)?&&?(e?<?a)?&&?(b?<?d)?&&?(b?>?a)){printf("小狗?:%d\n",?a);printf("小兔?:%d\n",?b);printf("小貓?:%d\n",?c);printf("小猴?:%d\n",?d);printf("小鹿?:%d\n",?e);}}}}}return?0; }

輸出結果:

小狗 :2

小兔 :3

小貓 :5

小猴 :4

小鹿 :1

3、甲、乙、丙、丁四人參加一次數學競賽。賽后,他們四人預測名次的談話如下:

?甲說:“丙得第一,我第三名”;

????乙說:“我第一名,丁第四名”;

????丙說:“丁第二名,我第三名”;

????丁沒說話。

????當最后結果公布時發現,甲乙丙都只說對了一半,請給出正確的四人名次。

解答:

#include?<stdio.h>int?main(int?argc,?char?**argv) {//甲乙丙丁分別為a,b,c,dunsigned?int?a,b,c,d;//a為1-4時for(a?=?0;?a?<=?4;?a++){for(b?=?0;?b?<=?4;?b++){for(c?=?0;?c?<=?4;?c++){for(d?=?0;?d?<=?4;?d++){if(a?+?b?+?c?+?d?==?10){//a,b,c,d的值不能相同if(a?==?b?||?a?==?c?||?a?==?d?||?b?==?c?||?b?==?d?||?c?==?d)continue;if(((c?==?1)+(a?==?3)?==?1)?&&?((b?==?1)+(d?==?4)?==?1)?&&?((d?==?2)+(c?==?3)?==?1)){printf("a?is?%d\n",?a);printf("b?is?%d\n",?b);printf("c?is?%d\n",?c);printf("d?is?%d\n",?d);}}}}}}return?0; }

輸出結果:

a is 3

b is 1

c is 4

d is 2

邏輯推理題的解題思路一般采用多重循環,窮舉所有的可能情況,將給出的條件轉換為C語言中的邏輯判斷表達式,打印出符合條件的選項。


轉載于:https://blog.51cto.com/9291927/1830485

總結

以上是生活随笔為你收集整理的嵌入式linux面试题解析(四)——逻辑推理一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。