这是源题目:

文字提取:
五、推理题(40分)
1、这道题的答案是()
A、A B、B C、C D、D
2、第5题的答案是()
A、C B、D C、A D、B
3、以下选项中哪一题的答案与其它三项不同()
A、第3题 B、第6题 C、第2题 D、第4题
4、以下选项中哪两题的答案相同()
A、第1、5题 B、第2、7题 C、第1、9题 D、第6、10题
5、以下选项中哪一题的答案与本题相同()
A、第8题 B、第4题 C、第9题 D、第7题
6、以下选项中哪两题的答案与第8题相同()
A、第2、4题 B、第1、6题 C、第3、10题 D、第5、9题
7、在此十道题中,被选择次数最少的选项字母为()
A、C B、B C、A D、D
8、以下选项中哪一题的答案与第1题的答案在字母表中不相邻()
A、第7题 B、第5题 C、第2题 D、第10题
9、已知“第1题与第6题的答案相同”与“第X题与第5题的答案相同”的真假性相反,那么X为()
A、第6题 B、第10题 C、第2题 D、第9题
10、在此十道题中,ABCD四个字母中出现的次数最多者与最少者的差为()
A、3 B、2 C、4 D、1
本试题的答案为:

正确答案是:B,C,A,C,A,C,D,A,B,A
有且只有这一个。

c语言实现的源码在下面,

破解思路:
如果某个答案是正确的,那么每个问题都必须成立。

源码在后面:
核心函数:

/*获取正确的答案
* @param[in]   result   存放结果的数组
* @param[in]   index    题目的个数
*/
int get_result(char *result , int index)
{int i = 0;int ret = S_OK;if(0 == index){result_printf(result);        /*破解过程打印,耗时间,可选择注释*/ret = all_is_right(result);return ret;}result[--index] = 0;for(i=0 ; i < OPTION_NUM ; i++){ret = get_result(result , index);if(S_OK == ret){return ret;}result[index]++;}return ret;
}

所有代码:

/***    COPYRIGHT NOTICE*    Copyright (c) 2020-03, YINWUHUI*    All rights reserved.** @file jianjiandandanyidaoti.c** 由给定个数的题目答案之间的关系,获取正确的答案**    版本      作者        日期            修订说明**   1.00       SZ.ywh      2020-03-28      最初版本*   *    */
#include<stdio.h>#define QUESTION_NUM 10
#define OPTION_NUM 4
#define S_OK 0
#define ERROR -1int get_result(char *result , int index);
int all_is_right(char *result);
int max_min_num(char *result,char *abcd);
int diff_int_max_min(char* num_list, int num);
char char_least_selected(char * abcd,int num);
int char_border_other(char first, char second);
int second_is_right(char *result);
int thirdly_is_right(char *result);
int fourth_is_right(char *result);
int fifth_is_right(char *result);
int sixth_is_right(char *result);
int seventh_is_right(char *result);
int eighth_is_right(char *result);
int ninth_is_right(char *result);
int tenth_is_right(char *result);
void result_printf(char *result);char ABCD[OPTION_NUM] = {'A','B','C','D'};int main(void)
{int ret = S_OK;   char result[QUESTION_NUM] = {0};   /*初始值为全A*/ret = get_result(result ,QUESTION_NUM);if(S_OK != ret){printf("Nothing is difficult if you set your mind to it.\n");}else{printf("congratulations!!!\n");result_printf(result);}return ;
}/*打印结果*/
void result_printf(char *result)
{printf("The answer is : %c,%c,%c,%c,%c,%c,%c,%c,%c,%c\n",ABCD[result[0]],ABCD[result[1]],ABCD[result[2]],ABCD[result[3]],ABCD[result[4]],ABCD[result[5]],ABCD[result[6]],ABCD[result[7]],ABCD[result[8]],ABCD[result[9]]);
}/*获取正确的答案
* @param[in]   result   存放结果的数组
* @param[in]   index    题目的个数
*/
int get_result(char *result , int index)
{int i = 0;int ret = S_OK;if(0 == index){result_printf(result);        /*破解过程打印,耗时间,可选择注释*/ret = all_is_right(result);return ret;}result[--index] = 0;for(i=0 ; i < OPTION_NUM ; i++){ret = get_result(result , index);if(S_OK == ret){return ret;}result[index]++;}return ret;
}/*判断两个字符是否相邻*/
int char_border_other(char first, char second)
{if(first > second){if((first - second) <= 1){return 1;}return S_OK;}else{if((second - first) <= 1){return 1;}return S_OK;}
}/*选择次数最少的字符*/
char char_least_selected(char * abcd,int num)
{int i = 0;int mini = 0;for(i=0 ; i< num ; i++){if(abcd[mini] >= abcd[i]){mini = i;}}return ABCD[mini];
}/*最多的与最少的差值*/
int diff_int_max_min(char* abcd, int num)
{int i = 0;int max = 0;int min = 0;for(i=0 ; i< num ; i++){if(abcd[min] >= abcd[i]){min = i;}if(abcd[max] <= abcd[i]){max = i;}}return abcd[max] - abcd[min];
}/*统计每个字符的个数*/
int max_min_num(char *result,char *abcd)
{int i = 0;for(i=0 ; i < QUESTION_NUM ; i++){switch(ABCD[result[i]]){case 'A':abcd[0]++;break;case 'B':abcd[1]++;break;case 'C':abcd[2]++;break;case 'D':abcd[3]++;break;default: return ERROR;}}return S_OK;
}/*所有的选项的条件都成立*/
int all_is_right(char *result)
{int ret = S_OK;ret = second_is_right(result);if(S_OK != ret){return ret;}ret = thirdly_is_right(result);if(S_OK != ret){return ret;}ret = fourth_is_right(result);if(S_OK != ret){return ret;}ret = fifth_is_right(result);if(S_OK != ret){return ret;}ret = sixth_is_right(result);if(S_OK != ret){return ret;}ret = seventh_is_right(result);if(S_OK != ret){return ret;}ret = eighth_is_right(result);if(S_OK != ret){return ret;}ret = ninth_is_right(result);if(S_OK != ret){return ret;}ret = tenth_is_right(result);if(S_OK != ret){return ret;}return ret;
}/*第二题正确*/
int second_is_right(char* result)
{switch (ABCD[result[1]]){case 'A':{if('C' == ABCD[result[4]]){return S_OK;}break;}case 'B':{if('D' == ABCD[result[4]]){return S_OK;}break;}case 'C':{if('A' == ABCD[result[4]]){return S_OK;}break;}case 'D':{if('B' == ABCD[result[4]]){return S_OK;}break;}default:break;}return ERROR;
}/*第三题正确*/
int thirdly_is_right(char* result)
{switch (ABCD[result[2]]){case 'A':{if((result[2] != result[5]) && (result[5] == result[1])&& (result[1] == result[3])){return S_OK;}break;}case 'B':{if((result[2] == result[1]) && (result[5] != result[2])&& (result[2] == result[3])){return S_OK;}break;}case 'C':{if((result[2] == result[5]) && (result[5] != result[1])&& (result[5] == result[3])){return S_OK;}break;}case 'D':{if((result[2] == result[5]) && (result[5] == result[1])&& (result[1] != result[3])){return S_OK;}break;}default:break;}return ERROR;
}/*第四题正确*/
int fourth_is_right(char* result)
{switch (ABCD[result[3]]){case 'A':{if(result[0] == result[4]){return S_OK;}break;}case 'B':{if(result[1] == result[6]){return S_OK;}break;}case 'C':{if(result[0] == result[8]){return S_OK;}break;}case 'D':{if(result[5] == result[9]){return S_OK;}break;}default:break;}return ERROR;
}/*第五题正确*/
int fifth_is_right(char* result)
{switch(ABCD[result[4]]){case 'A':{if(result[4] != result[7]){return ERROR;}break;}case 'B':{if(result[4] != result[3]){return ERROR;}break;}case 'C':{if(result[4] != result[8]){return ERROR;}break;}case 'D':{if(result[4] != result[6]){return ERROR;}break;}default:break;}return S_OK;
}
/*第六题正确*/
int sixth_is_right(char* result)
{switch (ABCD[result[5]]){case 'A':{if((result[1] == result[3]) && (result[3] == result[7])){return S_OK;}break;}case 'B':{if((result[0] == result[5]) && (result[5] == result[7])){return S_OK;}break;}case 'C':{if((result[2] == result[9]) && (result[9] == result[7])){return S_OK;}break;}case 'D':{if((result[4] == result[8]) && (result[8] == result[7])){return S_OK;}break;}default:break;}return ERROR;
}
/*第七题目正确*/
int seventh_is_right(char* result)
{char abcd[4] = {0};max_min_num(result,abcd);int char_least = char_least_selected(abcd, OPTION_NUM);switch (ABCD[result[6]]){case 'A':{if('C' == char_least){return S_OK;}break;}case 'B':{if('B' == char_least){return S_OK;}break;}case 'C':{if('A' == char_least){return S_OK;}break;}case 'D':{if('D' == char_least){return S_OK;}break;}default:break;}return ERROR;
}
/*第八题目正确*/
int eighth_is_right(char* result)
{switch(ABCD[result[7]]){case 'A':{if(0 == char_border_other(result[0],result[6])){return S_OK;}break;}case 'B':{if(0 == char_border_other(result[0],result[4])){return S_OK;}break;}case 'C':{if(0 == char_border_other(result[0],result[1])){return S_OK;}break;}case 'D':{if(0 == char_border_other(result[0],result[9])){return S_OK;}break;}default:break;}return ERROR;
}
/*第九题正确*/
int ninth_is_right(char* result)
{switch (ABCD[result[8]]){case 'A':{if(((result[0] == result[5]) && (result[5] != result[4]))||((result[0] != result[5]) && (result[5] == result[4]))){return S_OK;}break;}case 'B':{if(((result[0] == result[5]) && (result[9] != result[4]))||((result[0] != result[5]) && (result[9] == result[4]))){return S_OK;}break;}case 'C':{if(((result[0] == result[5]) && (result[1] != result[4]))||((result[0] != result[5]) && (result[1] == result[4]))){return S_OK;}break;}case 'D':{if(((result[0] == result[5]) && (result[8] != result[4]))||((result[0] != result[5]) && (result[8] == result[4]))){return S_OK;}break;}default:break;}return ERROR;
}
/*第十题正确*/
int tenth_is_right(char* result)
{char abcd[OPTION_NUM] = {0};max_min_num(result,abcd);switch(ABCD[result[9]]){case 'A':{if(3 == diff_int_max_min(abcd,OPTION_NUM)){return S_OK;}break;}case 'B':{if(2 == diff_int_max_min(abcd,OPTION_NUM)){return S_OK;}break;}case 'C':{if(4 == diff_int_max_min(abcd,OPTION_NUM)){return S_OK;}break;}case 'D':{if(1 == diff_int_max_min(abcd,OPTION_NUM)){return S_OK;}break;}default:break;}return ERROR;
}

C语言暴力破解偶然在论坛上看到的一个推理题相关推荐

  1. 【非常励志】论坛上看到的一个程序员的简历,高中学历三年java开发18K

  2. 借助7Z.exe 实现RAR压缩包密码暴力破解 C语言实现

    吐槽几句 rar压缩包暴力破解这种软件 , 原理上挺简单的其实 , 就是不断的用字符去碰 , 指不定啥时候能碰上 , 爆破破解不就是这么回事嘛 , 之前下载个学习资料 , 说好的童叟无欺, 结果却给我 ...

  3. 暴力破解攻击工具汇总——字典很关键,肉鸡也关键

    lasercrack是一款爆力破解工具,ruby写的,现如今市面上常见的暴力工具如hydra,medusa都有着不错的破解效率. 破解RDP的软件也有很多,比如ncrack和Fast RDP Brut ...

  4. linux暴力破解工具

    对于 Linux 操作系统来说,一般通过 VNC.Teamviewer 和 SSH 等工具来进行远程管理,SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Wor ...

  5. Linux SSH密码暴力破解技术及攻防实战

    对于Linux操作系统来说,一般通过VNC.Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(Network Working Group ...

  6. 手把手教你用Python进行SSH暴力破解

    暴力破解属于密码破解的一种,也是最常见的破解方法之一,通过不断的尝试来达到破解的目的,所以暴力破解的本质就是一种枚举. 现在也有很多流行的破解软件,不过个人觉得装上kail其实也就啥都有了,但是今天我 ...

  7. Pikachu靶场暴力破解关卡3

    这是暴力破解关卡的第三关on client 正常做题思路 首先输入username,按提交看页面的显示 提示请输入验证码 接着输入password继续点击登录 又是请输入验证码 接着输入错误的验证码看 ...

  8. 在linux系统下暴力破解WiFi密码

    结论:可以破开自己的,破不开别人家的.在此献上思路,仅供学习交流. 网络上的教程说的都太学术化了,其实暴力破解,就是拿wifi字典去一个一个试,如果邻居家的密码,正好在你的字典库里,那你就能成功找到, ...

  9. DVWA 之暴力破解攻击(Brute Force)

    暴力破解(Brute Force)的意思是攻击者借助计算机的高速计算不停枚举所有可能的用户名和密码,直到尝试出正确的组合,成功登录系统.理论上,只要字典足够大,破解总是会成功的.阻止暴力破解的最有效方 ...

最新文章

  1. 根据信号灯状态解决网络故障
  2. Android 架构 -- Room
  3. python的底层是c_python基本数据类型底层实现
  4. linux 虚拟机新增磁盘,linux(虚拟机)下新增磁盘配置
  5. Redis实现分布式锁释放锁
  6. zabbix' failed: [1044] Access denied for user 'zab
  7. Flask爱家租房--celery(发送验证短信)
  8. 重装vcenter后恢复原来制作的模板!
  9. 近期将要学习的内容(flag)
  10. jenkins邮件配置(系统邮件和插件)
  11. JAVASCRIPT实现XML分页
  12. 关于浏览器存储问题理解
  13. PROC文件及文件夹创建
  14. MOOC北京理工《C语言程序设计(上)》第4周第2题:确定母亲节
  15. 加拿大 oracle audio,来自加拿大的“简单”与“纯粹”——Verity Audio Otello座地式扬声器...
  16. Oracle ASM理论及实践介绍
  17. 【C】 小球自由下落
  18. 如何使用 K8s 实现跨集群管理,这篇文章告诉你了!赶紧收藏
  19. PhoenixFD 液体
  20. cip查询(中国新闻出版信息网cip查询)

热门文章

  1. kafka系列之Coordinator(14)
  2. mysql8.0.19中在navicat客户端中int、bigint等类型设置长度保存后为0
  3. 解决 unity 按住鼠标右键 WS不能前进后退(我被自己蠢哭了)
  4. 向mysql表中插入/更新数据时自动添加创建时间/更新时间
  5. 高考数学90分能学好计算机,我平时数学考试总考60多分,离高考还有一个月,我希望能通过努力考到90分,诸位有何好的方法...
  6. 【转知乎】异地恋如何维持之电子本科生
  7. 计算机在现代工作中的应用,浅论计算机在现代管理中应用
  8. 空中网4k/5k月薪挑选大四实习生的线程题
  9. 2017-2018-1 20162316刘诚昊 实验一 线性结构
  10. 一辈子很长,要和有趣的人在一起