提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、设计简易的答题系统
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结:应用随机数,getchar以及if else

前言

需要随机出题,题目出现顺序要不一致
产生随机数 1~20
C语言随机数的生成【详解】_星空之路Star的博客-CSDN博客_c语言随机数

及时反馈正确情况,记录同学的准确率

自定义特性
(1) 大小写答案不区分
(2) 答错之后,说明正确答案是什么
(3)一开始什么都不输入,就只输出回车或者空格,也判断为正确


提示:以下是本篇文章正文内容,下面案例可供参考

一、随机数步骤

srand((unsigned int)time(NULL));//设置随机数步骤
for(i=1;i<=20;i++)
{d:d[i]=rand()%20+1;//设置20个随机数for(j=0;j<i;j++){if(d[i]==d[j]){goto d;//保证随机数不重复}}
}

二、完整代码

代码如下(示例):

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
int main()
{char q[21][1000];//用来存放题目char a[21];//用来存放正确答案char b[21][1000];//用来存放用户输入的答案printf("第三大题:选择题(每题5分,一共20题,请将正确的选项填入括号中)\n");strcpy(q[1],"scanf 函数输入整数时可使用( )格式限定符\nA.%c\tB.%d\tC.%e\tD.%s\n");//输入好题目和选项存入每道题目中a[1]='B';//将每道题的答案配对好strcpy(q[2],"已知程序要使用函数printf,则程序必须包含头文件( )\nA.math.h\tB.stdlib.h\tC.stdio.h\tD.ctpe.h\n");a[2]='C';strcpy(q[3],"若有定义:int a=5,b=2,c=1;则表达式a-b<c||b==c的值是()\nA.0\tB.1\tC.2\tD.-1\n");a[3]='A';strcpy(q[4],"C语言中while和do-while循环的主要区别是( )\nA.do-while的循环体至少无条件执行一次\tB.while的循环控制条件比do-while的循环控制条件严格\tC.do-while允许从外部转到循环体内\tD.do-while的循环体不能是复合语句\n");a[4]='A';strcpy(q[5],"C语言对if嵌套语句的规定:else总是与( )配对\nA.第一个if\tB.之前最近的且不带else的if\tC.缩进位置相同的if\tD.之前最近的if\n");a[5]='B';strcpy(q[6],"如果int a=3,b=4;则条件表达式a<b? a:b的值是( )\nA.3\tB.4\tC.0\tD.1\n");a[6]='A';strcpy(q[7],"结构化程序设计的3种结构是( )\nA.顺序结构,选择结构,循环结构\tB.分支结构,数组结构,循环结构\tC.顺序结构,分支结构,跳转结构\tD.分支结构,选择结构,循环结构\n");a[7]='A';strcpy(q[8],"假设有定义:float x=16/5/2.0, y=16/5.0/2; 则 x 和 y 的值分别为( )\nA.1.5 1.6\tB.1.6 1.6\tC.1.5 1.5\tD.1.6 1.5\n");a[8]='A';strcpy(q[9],"判断实数 x 属于闭区间 [ a, b ] 的表达式为 ( )\nA.x <= [a, b]\tB.a <= x <= b\tC.a <= x && x <= b\tD.a ≤ x && x ≤ b\n");a[9]='C';strcpy(q[10],"表达式3.6-5/2+1.2+5%2的值是( )\nA.4.3\tB.4.8\tC.3.3\tD.3.8\n");a[10]='D';strcpy(q[11],"假设所有变量已正确定义,以下for语句不能编译的是( )\nA.for(i=0; i<10, j<10; i++)\tB.for(i=0; j=0; i<10; i++ )\tC.for(i=0; i<10; i--)\tD.for(i=0; j<10; j++)\n");a[11]='B';strcpy(q[12],"以下与k=n++等价的表达式是( )\nA.k=++n\tB.n=n+1,k=n\tC.k=n,n=n+1\tD.k+=n\n");a[12]='C';strcpy(q[13],"语句while(!E)中的表达式!E等价于( )\nA.E==0\tB.E!=1\tC.E!=0\tD.E==1\n");a[13]='A';strcpy(q[14],"C 语言程序中可以对程序进行注释,注释部分必须用的符号是( )\nA.‘{’和‘}’\tB.‘[’和‘]’\tC.‘/*’和‘*/’\tD.‘*/’和‘/*’\n");a[14]='C';strcpy(q[15],"当调用函数时,实参是一个数组名,则向函数传送的是( )\nA.数组的长度\tB.数组的首地址\tC.数组每一个元素的地址\tD.数组每个元素中的值\n");a[15]='B';strcpy(q[16],"设有数组定义:char array [ ]={“China”};则数组 array所占的空间为( )\nA.4个字节\tB.5个字节\tC.6个字节\tD.7个字节\n");a[16]='C';strcpy(q[17],"以下选项中合法的用户标识符是( )\nA.long\tB._2Test\tC.3Dmax\tD.A.dat\n");a[17]='B';strcpy(q[18],"即使两个指针变量的类型相同,它们也不能( )\nA.相减\tB.相加\tC.比较\tD.指向同一地址\n");a[18]='B';strcpy(q[19],"continue语句用于( )\nA.退出循环程序\tB.退出本次循环\tC.空操作\tD.根据if语句的判断进行选择\n");a[19]='B';strcpy(q[20],"设ch是char型变量,其值为G,且有表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch,表达式的值是\nA.A\tB.a\tC.G\tD.g\n");a[20]='D';srand((unsigned int)time(NULL));//设置随机数步骤int i,j,c=0,flag=0,sum=0;int d[21]={0};for(i=1;i<=20;i++){d:d[i]=rand()%20+1;//设置20个随机数for(j=0;j<i;j++){if(d[i]==d[j]){goto d;//保证随机数不重复}}printf("第%d题:%s请输入你的选项:()(按回车进入下一题)\n",i,q[d[i]]);//随机输出每道题scanf("%s",b[i]);//用户输入答案int len=strlen(b[i]);for(j=0;j<len;j++){if(b[i][j]!=' '){c=1;break;//保证输入空格不跳题}}getchar();//防止按完回车程序退出if(c==1){if(b[i][j]==a[d[i]]||b[i][j]==a[d[i]]+32)//大小写都算正确{printf("恭喜你回答正确,进入下一道题!\n");flag++;sum=sum+5;//每回答正确一次加5分}elseprintf("很抱歉,回答错误,正确答案是%c。进入下一道题!\n",a[d[i]]);//及时反馈正确答案printf("你当前回答正确了%d道题,当前得分为:%d\n\n",flag,sum);//反映总共答对的题目数量if(i==20)printf("恭喜你回答完了所有问题,你的最终得分为:%d\n你的正确率为:%.2f%%\n",sum,sum/100.0*100);//当所有题目抽完了反映用户的正确率}}printf("其中你答对了第\n");for(i=1;i<=20;i++){if(b[i][j]==a[d[i]]||b[i][j]==a[d[i]]+32)printf("%d题\n",i);//告诉用户他答对了哪些题目}return 0;
}

总结:以上就是今天要讲的内容,本文仅仅简单介绍了C语言的使用制作简易的答题系统。

用C语言设计一个简易的选择题答题系统相关推荐

  1. C语言编写一个简单的选择题答题系统

    上个星期,我们老师给我们布置了一道非常变态的作业题.开始一看只有一道题,欣喜若狂, 以为老师终于大发慈悲了一回,结果点开一看,长这样... 顿时就傻了眼,对于一个刚接触C语言一两个月的小白来说,不能说 ...

  2. php简单选择题,念做个简易php选择题答题系统

    想做个简易php选择题答题系统 想做个简易的答题系统,遇到点困难,就是提交不了,请大家帮帮忙,谢谢~! 问答 1.6匹马拉着一架大车跑了6公里,6匹马一共跑了多少公里? A.6  &nbsp ...

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

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

  4. win7系统如何用c语言设计一个生日礼物,我的作业系统是win7旗舰版32位的,想学习c语言程式设计,有谁能推荐一个好的软体。要求能在我的作业系统上相容...

    我的作业系统是win7旗舰版32位的,想学习c语言程式设计,有谁能推荐一个好的软体.要求能在我的作业系统上相容以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发 ...

  5. 如何设计一个简易的工单系统

    需求背景 先来看看业务整体结构图 由于当前所在公司是做保险相关业务的,需要对接很多公司,下单的过程中,必须将数据成功传输到保险公司并得到返回才算成功,在这个交互的过程中,很容易因为保险公司系统处于升级 ...

  6. c语言课程设计报告-计算器的实现,C语言课程设计--一个简易计算器的设计与实现.doc...

    C语言课程设计--一个简易计算器的设计与实现 扬 州 大 学 ------------------1 程序设计内容:------------------1 课程设计所补充的内容:补充的函数或算法--- ...

  7. 设计一个简易的引导任务框架(2) | 4.23粉丝赠书

    今天是4.23世界读书日,公众号向支持的小伙伴们送出下面3本技术图书(三选一)! 参与方式: 本文点赞留言,必须超过20字,以及你想要的图书名字参与活动 积赞最多的前3名读者,将会获得赠书,三选一 活 ...

  8. 十位数连加 c语言,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....

    用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除. 用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除. 人气:435 ℃时间:2020-04-10 06:55:13 优质解答 ...

  9. Android studio设计一个简易微信界面

    一.设计要求及实现构想 1.设计一个简易微信界面框架,包含至少4个tab页面(我设计的4个分别为message.contact.find.config),要求能实现四个页面之间的点击切换. 2.首先分 ...

最新文章

  1. HDU 1856 More is better【并查集】
  2. 累计占比_全国ETC用户累计突破1亿!广东占比超过1/10
  3. Stream流综合练习
  4. MATLAB2017深度学习工具箱总结
  5. 高级GIS-1.提取纯净像元
  6. Dynamic 365 中创建编码规则
  7. Power BI 简介
  8. java根据权重随机抽奖
  9. 谷歌浏览器本地HTML文件无法打开
  10. CentOs虚拟机硬盘扩容
  11. Git:SSL错误导致失败的解决办法
  12. Zego SDK深度适配安卓机型,实现超低延迟耳返
  13. Unable to negotiate with xxxx port 22
  14. UE4纯蓝图添加C++遇到的一个坑
  15. Java —— 打印杨辉三角形
  16. CheckStyle 编写自己的代码检查插件
  17. IOS 地球坐标-火星坐标-百度坐标 转换
  18. Javascript开发人员的图形和检测循环指南
  19. (郁闷p2pover中)整理记录一
  20. 阿拉伯数字转大写 一二三 (100以内)

热门文章

  1. android rom打包解包工具,Android ROM包定制(解包,增删模块,打包)
  2. 德普测试仪EOL软件,电池充放电测试系统 EOL
  3. 医学图像处理——DeepDrr工具CT生成DRR
  4. apple pay充游戏后退款_2019,7月苹果王者荣耀退款
  5. 服务器系统适合家庭电脑用吗,服务器可以用作家用电脑吗?两者有何区别?不怕噪音和耗电就可以...
  6. 学会生命倒计时法,就是精彩生活的开始
  7. 电路城(www.cirmall.com)— Altium常用库文件(元件库+封装库+常用元器件3D模型)
  8. 计算机科学 投稿 邮箱,《计算机时代》期刊投稿【编辑部_邮箱_地址_怎么样_版面费_代发表】...
  9. 实现一个文字识别(图片转文字)工具
  10. PS CS4 序列号永久使用