用c代码实现英语单词测试,电脑提示单词中文,让测试者键入英文,每道测试题给予三次测试机会,失败则进入下一题,直至全部题目答完为止,最后统计正确的题数。

源代码:

#include <stdio.h>
#include <string.h>
void menu()
{
    printf("********************************\n");
    printf("*******     1.开始测试   *******\n");
    printf("*******     2.结束测试   *******\n");
    printf("********************************\n");
}
void test()
{
    char arr1[] = "chinese";
    char arr2[] = "maths";
    char arr3[] = "english";
    int i, j, k, l=0;
    char arr4[10];
    for (i = 1; i <= 3; i++)
    {
        switch (i)
        {
        case 1:
            for (j = 1; j <= 3; j++)
            {
                printf("测试单词①:中文\n");
                printf("请输入中文的英语单词:");
                scanf_s(" %s", arr4, 10);
                if (strcmp(arr1,arr4)==0)
                {
                    printf("恭喜你,写对了,现在开始下一题的测试!\n");
                    l = l + 1;
                    break;
                }
                else
                {
                    printf("很抱歉,你写错了,你还有%d的重新输入机会!\n", 3 - j);
                    continue;
                }

            }
            if (j <= 3)
            {
                printf("第一道题答对,现在开始下一题的测试!\n");
            }
            else
            {
                printf("很抱歉,你第一道测试题出错,现在开始下一题的测试!");
            }
            break;
        case 2:
            for (j = 1; j <= 3; j++)
            {
                printf("测试单词②:数学\n");
                printf("请输入数学的英文单词:");
                scanf_s(" %s", arr4, 9);
                if (strcmp(arr2,arr4)==0)
                {
                    printf("恭喜你,写对了,现在开始下一题的测试!\n");
                    l = l + 1;
                    break;
                }
                else
                {
                    printf("很抱歉,你写错了,你还有%d的重新输入机会!\n", 3 - j);
                    continue;
                }

            }
            if (j <= 3)
            {
                printf("第二道题答对,现在开始下一题的测试!\n");
            }
            else
            {
                printf("很抱歉,你第二道测试题出错,现在开始下一题的测试!");
            }
            break;
        case 3:
            for (j = 1; j <= 3; j++)
            {
                printf("测试单词③:英语\n");
                printf("请输入英语的英文单词:");
                scanf_s(" %s", arr4, 9);
                if (strcmp(arr3,arr4)==0)
                {
                    printf("恭喜你,写对了,测试完毕!\n");
                    l = l + 1;
                    break;
                }
                else
                {
                    printf("很抱歉,你写错了,你还有%d的重新输入机会!\n", 3 - j);
                    continue;
                }

            }
            if (j <= 3)
            {
                printf("恭喜你,第三道题写对了!\n");
            }
            else
            {
                printf("很抱歉,你第三道测试题出错!\n");
            }
            break;


        }
    }
    if(l>1)
    {
        printf("你此次的测试中共答对了%d道题目!", l);
    }
    else
    {
        printf("同学,你没有好好复习,三道题目全错!");
    }


}
int main()
{
    int a;
    do {
        menu();
        printf("请输入你的选项:\n");
        scanf_s("%d", &a, 1);
        switch (a)
        {
        case 1:
            test();
            break;
        case 2:
            break;
        default:
            break;
        }
    } while (a != 2);
    
    printf("结束测试!\n");


}
//代码中的重要函数是strcmp关键词,用法是if(strcmp(arr1,arr2)==0),通过按顺序比较两个数组的ascall判断两者是否相等,如果相等,则结果等于0,如果结果大于0,则第一个字符串大于第二个字符串,如果结果小于0,则第二个字符串大于第一个字符串。
//第二个重点则在于数组的定义,arr1[10];这点可以通过观察代码初始位置关于数组的定义理解,切记多多理解!

如果想多添加几个测试题目,再添加代码即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值