简单答题系统(判断题)
使用C语言编写一个答题系统、
一、判断题数据:20道题
(1)题干
(2)正确答案(T/t F/f ,True , False)
二、需要随机出题,题目出现顺序要不一致
C语言需要学会如何随机抽取
(1)产生随机数 1~20
(2)解决运气不好的问题1-18 极少出现19 20
三、及时反馈正确情况,记录同学的准确率
四、自定义特性
(1) 大小写答案不区分
(2) 答错之后,要告诉我正确答案是什么
(3) 自己再增加一些人性化的功能
(比如:一开始什么都不输入,就只输出回车或者空格,就判断为错误不太好
思考:_5 5 5_是否算同一个答案? _A A A_是否算同一个答案?)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<ctype.h>
int cuo[20]; //用于统计错题题目
int z; //用于统计正确题数
struct tida
{
char ti[10000];
char daan;
};
int main()
{
struct tida str[21]={{0},{"函数体是由声明部分和执行部分两部分组成。",'T'},
{"C语言的基本单位是函数。",'T'},
{"C语言总是从main函数开始",'T'},
{"指针变量中保存的不一定是一个地址。",'F'},
{"变量定义:int *p, q; 中,p和q都是指针。",'F'},
{"数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。",'T'},
{"在定义数组之后,根据数组中元素的类型及个数,在内存中分配一段连续存储单元用于存放数组中的各个元素。",'T'},
{"数组的长度可以是变量。",'T'},
{"c语言的数组下标从0开始。",'T'},
{"专门存放地址的变量,称为指针变量。",'T'},
{"switch语句中default语句是必须的。",'F'},
{"C语言程序不区分大小写。",'F'},
{"使用switch语句做分支判断的时候,只能判断常量表达式。",'F'},
{"C语言的标识符由字母、数字和其他任意字符组成。",'F'},
{"C语言中不能用printf函数输出字符。",'F'},
{"关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。",'F'},
{"执行语句int *p; 后,指针变量p只能指向int类型的变量。",'T'},
{"数组的基地址是在内存中存储数组的起始位置,数组名本身就是一个地址即指针值。",'T'},
{"对于定义int a[10],*p=a; 语句p=a+1;和a=a+1;都是合法的。",'F'},
{"指针变量中保存的肯定是一个地址。",'T'}
}; //题库
printf("判断题,共20题。\n");
printf("请输入你的答案:T/t or F/f\n\n");
int n[20],i,j,f;
for(i=1;i<=20;i++)
{
n[i] = rand()%20+1;
for(j=0;j<i;j++)
{
if(n[i]==n[j])
{
i--;
break;
}
}
}//随机出题且避免重复
char s;
char c[50];for(i=1;i<=20;i++){
printf("%d、",i);
int o=n[i];
printf("%s\n",str[o].ti);
printf("请输入你的答案:");
for(j=0;j<100;j++){
scanf("%c",&c[j]);
if(c[j]=='t'||c[j]=='T'||c[j]=='f'||c[j]=='F')
break;
}//保证输入了答案。
for(j=0;j<strlen(c);j++){
if(isspace(c[j]))
continue;
else s=c[j];
}//将检测出的空格或换行删去
if(s==str[o].daan||s==str[o].daan+32)
{
printf("恭喜你,回答正确");
z++;
}
else
{
printf("很遗憾,答错了,再接再厉!\n");
printf("正确答案是%c",str[o].daan);
cuo[f]=o;
f++;
}
printf("\n\n");
}
printf("你答对了%d题 ",z);
double ave= z/20.0; //计算准确率
printf("你的正确率是:%.0f%%。",ave*100);
if(ave>0.8)printf("你真棒!");
else printf("不要灰心啊,继续加油哦!!!\n");
printf("其中你的");
for(i=0;i<f;i++)
{
printf("第%d题",cuo[i]);
if(i<f-1)printf("、");
}
printf("错了");
}
简单答题系统(判断题)相关推荐
- 一个简单答题系统的设计与实现(二)
在一个简单答题系统的设计与实现(一)博文中列出了需求分析,与详细设计,现在按照之前的详细设计开始一步一步实现. 文件设计(数据层设计) 该系统由于需求场景限制,在数据层利用文件和文件的读写实现查询.具 ...
- 一个简单答题系统的设计与实现(一)
开发背景 在2018年底,博主朋友找到博主想让我帮他开发一个软件,因为他要考他所在单位的某项认证考试,看书低效,不如结合使用用软件答题刷题有效果.就此我准备给他开发一个简单的答题系统,他给出如下需求. ...
- 【无标题】C语言编写一个简单答题系统
这是蒟蒻写的第一个博客,将就看看吧! 首先,我写的是一个填空题答题系统,填空题数目为20. 其次,需要随机出题,题目出现顺序要不一致. (1) 产生随机数 1~20 (2) 解决运气不好的问题1-1 ...
- 一个简单答题系统的设计与实现(四)
这篇描述生成试卷和练习模式.错题本的功能的思路与实现. 生成试卷 在平常生活中,考试和平常练习是不同的两种状态,在考试时,试卷有分配好的题型和题数,在本系统中,将其定义为常量: Constant系统常 ...
- 【判断题】【简答题】【数据库原理】
文章目录 一.判断题 二.简答题 一.判断题 1.数据的安全性主要防范的对象是合法用户. 正确答案:错 2.数据库恢复是利用冗余数据来重建数据库. 正确答案:对 3.定义外键级级联是为了保证相关表之间 ...
- Android 实现答题、做题功能包含(多选、单选、材料、填空 、判断 、问答 )以及题卡交卷查看解析功能
序 此博客文章为了还之前的技术债 ,去年 8 月份已经写了一篇答题功能的博客 ,由于种种原因那篇文章写的比较简单 ,也没有能直接用的 Demo .然后有好多朋友私信我说 demo 有问题 ,给那些陌生 ...
- 在线考试答题系统的五大功能,你知道多少?
在线考试答题系统 -五大功能,你知道多少?- 在线考试答题系统优势: 在线考试答题系统具有高度的可扩展性,高效灵活.功能强大.考试用户随时随地就可通过网络登录在线考试答题系统,参加在线报名.在线练习. ...
- 用C语音编写一个简单的判断题答题系统
问题描述 用c语言编写一个程序,但用户输入参数的时候,显示相应的信息,例如:输入t.f或T.F的时候,系统应该判对还是判错呢.若输入t t或者tf的时候,系统又应该判对还是判错呢.若输入回车或空格 ...
- C语言编写简单的答题系统(填空题)
这是本人发布的第一个博客,如有不足请见谅并指出谢谢. 填空题答题系统要求: (1):随机出题(使用随机数,假定二十题,不重复) (2):显示题号 (3):反馈正误,如错误则给出正确答案 (4):英文大 ...
最新文章
- Hive学习笔记 —— Hive的管理
- mysql8只从配置_mysql8的配置优化
- 弘成科技 java单例模式
- VSS源代码管理应该怎么样对bin目录及项目中用到的第三方组件进行管理?
- c# 单元测试工程如何取得当前项目路径
- 或许是因为本科不是学cs的HTML5原因
- Ayla 物联网平台全面支持主流智能语音系统
- Xamarin iOS教程之视图显示图像
- 线段树(单点更新) HDOJ 4288 Coder
- 智能家居系统c语言源代码,智能家居软件设计(附源程序).doc
- ofo显示服务器故障,ofo服务器超时
- 8 EDA技术实用教程【组合电路的Verilog的设计】
- mysql数据表删了怎么恢复_mysql数据库数据删除怎么恢复
- Oracle汉字排序nls_sort
- C++ sting字符串函数详解
- UE4 Shader 着色器概述
- 【循环自相关和循环谱系列6】信号的循环平稳性(循环自相关函数)基本原理及推导
- The request client is not a secure context and the resource is in more-private address space `privat
- 3.sparksql:函数使用:实现累加和累乘
- windowsxp计划任务设置方法(附常见错误解决)