上个星期,我们老师给我们布置了一道非常变态的作业题。开始一看只有一道题,欣喜若狂,

以为老师终于大发慈悲了一回,结果点开一看,长这样。。。

顿时就傻了眼,对于一个刚接触C语言一两个月的小白来说,不能说不会做,只能说看不懂[哭笑][哭笑]。

但是经过几天的艰苦打拼,最终还是完成了老师交给我们的任务。接下来,就为大家分享一些我写代码时遇到的困难,和解决的方案。

首先我抽到的组是第三组,也就是说要去完成一个20道选择题的答题系统。

困难一

如何保证20道题随机出现?并且20道题里面没有重复的题?

方案一

保证20道题随机出现,我去网上搜寻了一些相关资料,发现rand函数是个不错的选择,(关于rand函数的用法,请观看此文:C语言随机数的生成【详解】_星空之路Star的博客-CSDN博客_c语言随机数)

然后就是如何保证抽到的20个随机数里没有相同的数字。

对此我的做法是

 int b[20]=0;for (int i = 0;; i++){int a = 1 + rand() % 20; for(int j=0;j<=19;j++){if(b[j]==0)break;}if(j==20)break;if(b[a-1]!=0continue;if(b[a-1]==0)b[a-1]=1;}

直至20道题全部抽完为止

困难二

怎样将抽到的随机数去对应相应的题号,从而呈现相应的题目?

方案二

对此我用到了函数指针数组来解决此次难题

  void (*p[20])() = { t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20 }

当产生了一个随机数后,再

p[a - 1]();

去对应相应的题目

前提是每道题目都要用函数的形式表达出来[苦笑][苦笑]

 void t1()
{char a[10];char b='C';int c=0;printf("考察内容:c语言局部变量和全局变量\n");yanshi(2000);    // 前面定义了延时函数,来达到延时的效果printf("变量存储类别寄存器变量使用(  )关键字\n");printf("A.auto  B.extern  C.register   D.static\n");printf("你的答案是:");gets(a);for(int i=0;i<=strlen(a);i++){if(a[i]!=b&&a[i]!=b+32&&a[i]!=' '){c=1;break;}}if(c==1) printf("答案错误 正确答案是:%c\n",b);else {sum++;printf("恭喜你,回答正确\n");}
} 

困难三

如何让输出时的字体变色?

方案三

使输出字体变色我用到的是system函数

具体用法如

system("color 2"); 

记得加上头文件 Windows.h

详细用法见此文章

(8条消息) C语言中如何使用system函数_路遥芝麻的博客-CSDN博客_c语言system函数用法

困难四

如何让程序延迟执行?

方案四

对此,我用到的是sleep函数

具体用法如

sleep(1000);   //程序延时一秒执行

同样也是记得加上头文件 Windows.h

详细用法见此文章

(8条消息) Sleep()函数的使用方法详解_无赖H4的博客-CSDN博客_sleep函数

以上就是我写代码是遇到的比较棘手的问题,希望能给你带来帮助。

也欢迎各位大佬点评和给出观点,进步是不断在不完善中逐渐完善的!受教了。谢谢!!!

C语言编写一个简单的选择题答题系统相关推荐

  1. 用C语言编写一个“简单”的程序答题系统

    上个星期我们老师给我们布置一道他认为很简单的题,其实就想考考我们,要我们写一个简单的答题系统.开始一看只有一道题我直呼:"仰天大笑出门去,我辈岂是蓬蒿人" 以为老师放我一马,结果点 ...

  2. 用C语言设计一个简易的选择题答题系统

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.设计简易的答题系统 二.使用步骤 1.引入库 2.读入数据 总结:应用随机数,getchar以及if else 前 ...

  3. c语言编写一个简单的答题系统

    利用c语言编写一个简单的答题系统. 思路是先设计好题目和答案,再输入自己的答案,利用输入的答案与正确答案对比,从而得出你回答的对错. (一)捆绑题目和答案 我们可以利用结构体对一个题目捆绑上一个答案. ...

  4. C语言编写一个简单的扫雷

    C语言编写一个简单的扫雷 # include <stdio.h> # include <stdlib.h> # include <math.h> # include ...

  5. 用 C 语言编写一个简单的垃圾回收器

    人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法.我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难 ...

  6. python语言的记事本在哪_用python语言编写一个简单记事本

    看了一点python的基础教程,忍不住手就痒了,找来一个题目练一下喽. 题目:编写一个功能简单的记事本. 编写记事本就要用到GUI的功能,最常用的当然是wxpython,那么我们就用这个来写一个记事本 ...

  7. 【无标题】C语言编写一个简单答题系统

    这是蒟蒻写的第一个博客,将就看看吧! 首先,我写的是一个填空题答题系统,填空题数目为20. 其次,需要随机出题,题目出现顺序要不一致. (1) 产生随机数 1~20 (2)  解决运气不好的问题1-1 ...

  8. 用GO语言编写一个简单的区块链

    区块链的大致概念. 按照个人理解来说,区块,就是保存一个一个数据的模块,然后区块链,是每个区块相连的链表那种,同时区块链实现之所以公平,是采用加密,且不可倒置等的机制,也就是,数据只要成功加载到区块链 ...

  9. c语言整点报时,C语言编写一个简单整点报时工具源代码

    (1)用数字逻辑集成块实现: (2)时间以24小时为一个周期,显示时.分.秒: (3)计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时: (4)为了保证计时的稳定及准确须由晶体振荡器提供表针时间 ...

最新文章

  1. hdu 1251 统计难题
  2. view,control,service,dao,model层的关系
  3. iOS crash 崩溃问题的追踪方法
  4. Everest 0.6 添加开机自启动程序
  5. tornado学习笔记day08-tornado中的异步
  6. c语言练习的软件,我想学C语言,在自己的电脑上练习,要安装什么软件呢?
  7. Canvas简单动画和像素处理
  8. html5画布页面,HTML5 界面元素 Canvas 参考手册
  9. 转(ASP.NET页面缓存)
  10. Dart 基礎 - 3
  11. java近义词,同义词查询_java 同义词查询怎么做?
  12. 本地快速搭建FTP服务器
  13. 网络上的计算机无权限访问权限,权限,教您怎么解决无internet访问权限
  14. Kotlin学习系列之:协程的取消和超时
  15. 获取计算机管理员,获取administrator权限的方法步骤-电脑自学网
  16. 树莓派上云-天工物接入
  17. 你还在靠“喂喂喂”来测语音通话质量吗,看完这篇文章你就能掌握正确姿势。
  18. 关于睡眠,你需要了解的3件事
  19. pr预设的卷及内核锐化是什么_PR内置特效合集
  20. 高薪前端都应该具备的开发好习惯

热门文章

  1. MediaPlayer简单使用
  2. 2021美赛MCM\ICM E题
  3. maya表情blendshape_maya在表情制作中Blendshape的使用技巧
  4. 科研丨Overleaf打开LaTeX编译报错:PDF渲染错误【已解决】
  5. 正则表达式匹配字符串中以数字结尾的字符
  6. NIO 选择 Onsemi 的 SiC 牵引功率模块
  7. graphpad两组t检验_SPSS如何比较样本两组样本的组内和组间差异(含GraphPad Prism绘图)...
  8. Python 三维绘图
  9. 复盘2020年全球科技行业:5G建设加速、半导体行业洗牌、云计算爆发 | TMT观察...
  10. 2020上海国际电力电工展——安科瑞参展产品提前剧透