学习c语言两个月编写的第一个判断题答题系统

信念:会成功的!

目录

前言

一、运行效果

二、创作过程

1.先用字符数组存储一次性的题目与答案

2.存完你想存的题目和答案 接下来可以对这个“测试”进行一些说明

3.生成随机数(代表抽取的题目)

4、输出答案并判断正误

5、输出结果

总结


前言

本人学习两个月c语言,自己捣鼓出来的一个答题系统

整个答题系统分为四部分,首先是需要“存”题目和答案,第二步是需要进行抽题目,第三步是需要作答,最后一步是输出结果。

 

一、运行效果

0f743995bc3b4960870053c27f7a1605.png

5a4b3edeb3344bbaa284093d58dd74b5.png

 

二、创作过程

1.先用字符数组存储一次性的题目与答案

代码如下(示例):

定义20道题目

 char tm[200][101]; 

    char daan[200];

    int z=0,z1=0,z2=0;
    strcpy(tm[z++] ,"表达式!10的结果是-10");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"若变量定义为double x;,则x%2是符合C语言语法的表达式。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"'a’和“a”是完全等价的常量");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"c语言中运算符%的优先级高于&&。");
    daan[z1++] = 't';

    strcpy(tm[z++] ,"C语言中3/2的值是1");
    daan[z1++] = 't';

    strcpy(tm[z++] ,"函数pow(x,y)的作用是计算y的x次方");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"判断整型变量a是否是偶数的表达式为a%2=0。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"表达式的值只能是1或者0。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"假设有float f=7;则f%2的值为1");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"空语句不是一条合法的语句,因为它没有作用。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"在逻辑运算符中,逻辑非的优先级别最高。");
    daan[z1++] = 't';

    strcpy(tm[z++] ,"表示变量x的值在1到9之间的逻辑表达式为1<=x<=9。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"switch(x)中的x可以是整型、字符型或者浮点型变量");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"任何表达式语句都是表达式加分号组成的");
    daan[z1++] = 't';

    strcpy(tm[z++] ,"C语言中,当int型与double型数据进行算术运算时,数据类型由double型向int型转换。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"C 语言中的变量名不区分大小写。");
    daan[z1++] = 'f';

    strcpy(tm[z++] ,"赋值号左边必须为变量");
    daan[z1++] = 't';

    strcpy(tm[z++] ,"C 语言是面向过程的程序设计语言。");
    daan[z1++] = 't';

    strcpy(tm[z++] ,"C语言中变量名r和R表示同一个变量。");
    daan[z1++] = 'f';

    strcpy(tm[z++],"c语言中运算符%的优先级高于&&。");
    daan[z1++] = 't';

2.存完你想存的题目和答案 接下来可以对这个“测试”进行一些说明

  printf("请输入你的名字拼音:");
    char name[1001];
    scanf("%s",name);
    getchar();
    printf("欢迎%s来到zyx的智能判断题小测验1.0版\n\n",name);
       Sleep(1000);        //这里我们采用延时,可以让说明更加人性化
    printf("注意:答案只能是t\\T或f\\F\n\n");
        Sleep(1000);
    int i,j;
    int dui = 1;
    printf("下面将会进行二十道判断题\n\n");
       Sleep(1000);
    for( i = 5;i>0;i--){
        printf("倒计时还有:%d s,准备好了吗!\n",i);
               Sleep(1000);
    }
    printf("答题开始,么么哒\n\n");

3.生成随机数(代表抽取的题目)

接下来我们需要随机生成题目,我们则需要产生随机数,产生的随机数代表题目

 srand(time(0));

    int chouti=rand()%20; //声明chouti就是生成的随机数。

我们用一个数组和一个循环 判断是否生成了重复的随机数

int chuxian[20] = {0};

int zyx = 0;

    for(j=0;j<20;j++){
          if(chuxian[chouti]==1){
                    zyx = 1;
                    break;
           }
   }
    chuxian[chouti] = 1;
    if(zyx==1) continue;

 一共有20道 要每次成功抽取了不重复的题目 才算成功抽题

4、输出答案并判断正误

	char c1;
	    do{
			scanf("%c",&c1);	
		  
}while(c1=='\n'||c1==' ');
	
char c = tolower(c1);//这里我们让输入的答案是转换为小写字母,注意头文件#include <ctype.h>
			if(c==daan[chouti]||c==t1[chouti]){
				dui1[chouti] = 1;
				printf("恭喜你 你成功答对了%d道题!\n\n",dui++);
				zhengquelv++;
			}
			else printf("很遗憾 你答错了\n正确的答案应该是%c\n\n",daan[chouti]);

5、输出结果

     printf("同学你答对的题号是:");
        for(int i = 0 ;i<20;i++){
            if(dui1[i]==1) printf(" %d",i+1);
        }
        printf("\n");
        printf("答错的题号是:");
        for(int i = 0 ;i<20;i++){
            if(dui1[i]==0) printf(" %d",i+1);
        }
        printf("\n\n共答对%d道题,",dui-1);
        printf("正确率是%d%%",zhengquelv*5);

 


总结

这是第一次独立完成的大作业,也算是自己认真写的第一个小程序,尚且还有很多不足,希望在大二大三大四能够做出更完美的程序,写出更好的软件,加油!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
编写一个操作系统是一个庞大的工程,需要深入了解计算机系统和操作系统的原理。以下是一个简单的操作系统的基本框架,可以作为参考: 1. 编写引导程序 操作系统的引导程序是放在计算机硬盘的第一个扇区里的,它负责将操作系统的核心代码加载到内存并启动操作系统。引导程序需要使用汇编语言编写,因为此时还没有操作系统提供的C库函数可用。 2. 编写操作系统的核心代码 操作系统的核心代码是放在内存的,它负责管理计算机的硬件资源,提供各种系统调用供应用程序使用。操作系统的核心代码可以使用C语言编写,但是需要使用汇编语言编写一些关键部分的代码,比如断处理程序和启动代码等。 3. 编写设备驱动程序 设备驱动程序是操作系统的一个重要组成部分,它负责管理计算机的各种硬件设备,如硬盘、键盘、显示器等。设备驱动程序需要使用汇编语言编写,因为它需要直接访问硬件设备的I/O端口。 4. 编写用户程序 用户程序是运行在操作系统上的应用程序,它们可以通过系统调用来访问操作系统提供的各种服务。用户程序可以使用C语言编写,但是需要使用操作系统提供的C库函数来访问系统调用。 以上是一个简单的操作系统的基本框架,具体实现需要深入了解计算机系统和操作系统的原理,以及汇编语言和C语言的编程技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值