使用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("错了");
}

简单答题系统(判断题)相关推荐

  1. 一个简单答题系统的设计与实现(二)

    在一个简单答题系统的设计与实现(一)博文中列出了需求分析,与详细设计,现在按照之前的详细设计开始一步一步实现. 文件设计(数据层设计) 该系统由于需求场景限制,在数据层利用文件和文件的读写实现查询.具 ...

  2. 一个简单答题系统的设计与实现(一)

    开发背景 在2018年底,博主朋友找到博主想让我帮他开发一个软件,因为他要考他所在单位的某项认证考试,看书低效,不如结合使用用软件答题刷题有效果.就此我准备给他开发一个简单的答题系统,他给出如下需求. ...

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

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

  4. 一个简单答题系统的设计与实现(四)

    这篇描述生成试卷和练习模式.错题本的功能的思路与实现. 生成试卷 在平常生活中,考试和平常练习是不同的两种状态,在考试时,试卷有分配好的题型和题数,在本系统中,将其定义为常量: Constant系统常 ...

  5. 【判断题】【简答题】【数据库原理】

    文章目录 一.判断题 二.简答题 一.判断题 1.数据的安全性主要防范的对象是合法用户. 正确答案:错 2.数据库恢复是利用冗余数据来重建数据库. 正确答案:对 3.定义外键级级联是为了保证相关表之间 ...

  6. Android 实现答题、做题功能包含(多选、单选、材料、填空 、判断 、问答 )以及题卡交卷查看解析功能

    序 此博客文章为了还之前的技术债 ,去年 8 月份已经写了一篇答题功能的博客 ,由于种种原因那篇文章写的比较简单 ,也没有能直接用的 Demo .然后有好多朋友私信我说 demo 有问题 ,给那些陌生 ...

  7. 在线考试答题系统的五大功能,你知道多少?

    在线考试答题系统 -五大功能,你知道多少?- 在线考试答题系统优势: 在线考试答题系统具有高度的可扩展性,高效灵活.功能强大.考试用户随时随地就可通过网络登录在线考试答题系统,参加在线报名.在线练习. ...

  8. 用C语音编写一个简单的判断题答题系统

    问题描述 用c语言编写一个程序,但用户输入参数的时候,显示相应的信息,例如:输入t.f或T.F的时候,系统应该判对还是判错呢.若输入t   t或者tf的时候,系统又应该判对还是判错呢.若输入回车或空格 ...

  9. C语言编写简单的答题系统(填空题)

    这是本人发布的第一个博客,如有不足请见谅并指出谢谢. 填空题答题系统要求: (1):随机出题(使用随机数,假定二十题,不重复) (2):显示题号 (3):反馈正误,如错误则给出正确答案 (4):英文大 ...

最新文章

  1. Hive学习笔记 —— Hive的管理
  2. mysql8只从配置_mysql8的配置优化
  3. 弘成科技 java单例模式
  4. VSS源代码管理应该怎么样对bin目录及项目中用到的第三方组件进行管理?
  5. c# 单元测试工程如何取得当前项目路径
  6. 或许是因为本科不是学cs的HTML5原因
  7. Ayla 物联网平台全面支持主流智能语音系统
  8. Xamarin iOS教程之视图显示图像
  9. 线段树(单点更新) HDOJ 4288 Coder
  10. 智能家居系统c语言源代码,智能家居软件设计(附源程序).doc
  11. ofo显示服务器故障,ofo服务器超时
  12. 8 EDA技术实用教程【组合电路的Verilog的设计】
  13. mysql数据表删了怎么恢复_mysql数据库数据删除怎么恢复
  14. Oracle汉字排序nls_sort
  15. C++ sting字符串函数详解
  16. UE4 Shader 着色器概述
  17. 【循环自相关和循环谱系列6】信号的循环平稳性(循环自相关函数)基本原理及推导
  18. The request client is not a secure context and the resource is in more-private address space `privat
  19. 3.sparksql:函数使用:实现累加和累乘
  20. windowsxp计划任务设置方法(附常见错误解决)

热门文章

  1. nrf52840开发笔记(一)------开发环境搭建
  2. 什么是MySQL| 什么是数据库 | 数据库详解
  3. Mysql主主同步(主从同步)
  4. 软件测试app访问相机,PlayMemories Mobile应用实测,让相机成为你手机的外置摄像头...
  5. 双塔模型DSSM及各种变体塔
  6. html、css 实现一个漂亮的表格
  7. 计算机快捷键m是什么,电脑常用快捷键有哪些
  8. 华为交换机S5700故障系统文件丢失处理
  9. 【ceph相关】ceph常见问题处理
  10. Java类包的定义(package)