问题标题: 酷町堂:编程游戏(题目)

0
0
已解决
王文博
王文博
缔造者之神
缔造者之神

这个游戏是依靠答题赢得分数。

具体见Description()函数。

代码如下:(还没有摘录完全)

/*
    特别感谢: 黄中阳(按照首字母顺序排列) 
    此外,题目出自
    https://newcourse.codingtang.com/#/course/test?id=5&lesson_id=24&type=1 

*/
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
#pragma GCC optimize(2)//高级火车头,开启加速模式 
#include <bits/stdc++.h>//万能头文件(考试别用!) 
#include <windows.h>//Sleep() 
using namespace std;
int score=0;//用来存储分数数量。 
int xh2=1;//现在做的题目的序号 
int ls1,ls2;//用来存储连胜次数。 
void JG();
void Description();
bool correct(char a1,char b1,char c1);
struct ABCDEFGTM1
{
    string a,b,c,d,e;//a为选项a,b为选项b,c为选项c,d为选项d,e为题目本身。 
    char f,g,h;//f为小写的正确答案,g为大写的正确答案,h为你选的答案。 
}ab1[101];//结构体 
/*
    注意事项: 
    1.题目中的第1个字符为“(”,第2个字符为数字,第3个字符为数字或“)”,第4个字符为“:”或“)”,第5个字符为题目的第一个字符或“:”。
    2.选项第1个字符为“A”或“B”或“C”或“D”,第2个字符为“:”。
    3.可以输入“A”或“B”或“C”或“D”或“E”或“a”或“b”或“c”或“d”或“e”。大写字母或者小写字母都是可以的。“e”和“E”的意思是以上四个答案都是不正确的。 
    4.请不要输入出这10个字母以外的东西,否则有可能会发生错误。
    5.当题目中出现\,""等无法直接输出的东西,我们会用其它方法正确输出。除""外(""会变为“”,请不要惊讶)
    6.题目结尾都有问号,并且问号是英文版的。 
    7.如果答案是两行,则会在换行的中间加上(换行),并不是答案为(换行)。 
    8.如果有格式错误,请尽快告诉我,因为很有可能会发生错误。 
*/ 
void Description()//游戏的描述(或许不是游戏,但是我就叫它游戏,好不?) 
{
    cout<<"这里是编程题目测试,出自于酷町堂的课前测与课后测的某些题目!"<<endl;
    Sleep(1000);
    cout<<"这里有许多选择题,供你们来检验自己过去学习的的旧知识,不过如果你是新生,你或许能预习新知识。"<<endl;
    Sleep(500);
    cout<<"接下来进入正题了!"<<endl;
    system("cls");
    cout<<"题目有简单到困难,准备好了吗?开始挑战吧!";
    system("cls"); 
}
void JG()//金光初始标志,谢谢黄中阳同学! 
{
    cout<<"金金金金金金金金金金金金金金金金金金金金金金金金光光光光光光光光光光光光光光光光光光光光光光光光\n";
    cout<<"金金金金金金金金金金   金金金金金金金金金金金光光光光光光光光光光光   光光光光光光光光光光\n";
    cout<<"金金金金金金金金金金   金金金金金金金金金金金光光光光光光光光光光光   光光光光光光光光光光\n";
    cout<<"金金金金金金金金金    金金金金金金金金金金金光光光光光光  光光光  光光光   光光光光光\n";
    cout<<"金金金金金金金金      金金金金金金金金金金光光光光光光   光光  光光   光光光光光光\n";
    cout<<"金金金金金金金金   金金  金金金金金金金金金光光光光光光光   光  光光   光光光光光光\n";
    cout<<"金金金金金金金   金金金   金金金金金金金金光光光光光光光   光  光   光光光光光光光\n";
    cout<<"金金金金金金   金金金金金    金金金金金金光光光光光光光光光光光  光  光光光  光光光\n";
    cout<<"金金金金金   金金金金金金金金    金金金金光光                    光光\n";
    cout<<"金金金金                   金光光光光光光光光   光光  光光光光光光光光光\n";
    cout<<"金金   金金金金金   金金金金金金  金金金光光光光光光光光   光光  光光光光光光光光光\n";
    cout<<"金  金金金金金金金   金金金金金金金金金金金光光光光光光光光   光光  光光光光光光光光光\n";
    cout<<"金金金金金金金金金金   金金金金金金金金金金金光光光光光光光光  光光光  光光光光光光光光光\n";
    cout<<"金金金                 金金金金光光光光光光光   光光光  光光光光光  光光\n";
    cout<<"金金金金金金金金金金   金金  金金金金金金金光光光光光光光   光光光  光光光光光  光光\n";
    cout<<"金金金金金   金金   金金    金金金金金光光光光光光光  光光光光  光光光光   光光\n";
    cout<<"金金金金金金   金   金   金金金金金金金光光光光光光   光光光光  光光光光   光光\n";
    cout<<"金金金金金金金      金   金金金金金金金光光光光光   光光光光光  光光光光    光\n";
    cout<<"金金金金金金金      金  金金金  金金金光光光   光光光光光光光         光光\n";
    cout<<"金                     金金光    光光光光光光光光光光光光光光光光光光光\n";
    cout<<"金金金金金金金金金金金金金金金金金金金金金金金金光光光光光光光光光光光光光光光光光光光光光光光光\n";
    Sleep(5000);
    system("cls");
}
bool correct(char a1,char b1,char c1)
{
    if(a1==b1||a1==c1)
    {
        score+=(5+ls1);
        return 1;
    }
    ls1=0;
    score-=3;
    return 0;
}
void rw()
{
    JG();
    ab1[1].e="(1):下面函数框架的头文件哪个是正确的?";
    ab1[1].a="A:#inclode<iostream>";
    ab1[1].b="B:%include(iostream)";
    ab1[1].c="C:#include<iostream>";
    ab1[1].d="D:#include(iostream)";
    ab1[1].f='c';
    ab1[1].g='C';
    ab1[2].e="(2):下面哪个标准命名空间是正确的?";
    ab1[2].a="A:using namespace";
    ab1[2].b="B:using name std";
    ab1[2].c="C:using name std;";
    ab1[2].d="D:using namespace std;";
    ab1[2].f='d';
    ab1[2].g='D';
    ab1[3].e="(3):cout<<“3+2+1”;的运行结果是什么?";
    ab1[3].a="A:3+2+1";
    ab1[3].b="B:3=3+1";
    ab1[3].c="C:6";
    ab1[3].d="D:3";
    ab1[3].f='a';
    ab1[3].g='A';
    ab1[4].e="(4):cout<<1<<” ”<<2<<endl<<3;的运行结果是什么?";
    ab1[4].a="A:1 2 3";
    ab1[4].b="B:1 2(换行)3";
    ab1[4].c="C:123";
    ab1[4].d="D:1(换行)2(换行)3";
    ab1[4].f='b';
    ab1[4].g='B'; 
    ab1[5].e="(5):在做题和使用DEV C++时,以下正确的是?";
    ab1[5].a="A:代码写完后直接粘贴到题目中提交";
    ab1[5].b="B:代码写完后只需要编译通过即可,无需验证答案";
    ab1[5].c="C:直接在网站中写代码,写完直接提交";
    ab1[5].d="D:做题的时候需要在DEV C++中先编译运行,确认运行结果正确后再到题目中提交";
    ab1[5].f='d';
    ab1[5].g='D';
    ab1[6].e="(6):以下关于常用快捷键错误的是哪个?";
    ab1[6].a="A:复制–Ctrl+C";
    ab1[6].b="B:粘贴–Ctrl+V";
    ab1[6].c="C:全选–Ctrl+A";
    ab1[6].d="D:复制–Shift+C";
    ab1[6].f='d';
    ab1[6].g='D';
    ab1[7].e="(7):以下输出哪个是编译后不会报错的?";
    ab1[7].a="A:cout<<“1”";
    ab1[7].b="B:cout<<“2”;";
    ab1[7].c="C:cout<<ABCDEFG";
    ab1[7].d="D:cin>>a;";
    ab1[7].f='b';
    ab1[7].g='B';
    ab1[8].e="(8):以此格式:1+2=3(换行)想要输出:3456*12+3421=…(换行)应该怎么写?";
    ab1[8].a="cout<<“3456*12+3421=”;";
    ab1[8].b="3456*12+3421=";
    ab1[8].c="cout<<“3456*12+3421=”<<3456*12+3421;";
    ab1[8].d="cout<<“3456*12+3421=”<<3456*12+3421=;";
    ab1[8].f='c';
    ab1[8].g='C';
    ab1[9].e="(9):只输出3456*12+3421的结果应该怎么写?";
    ab1[9].a="A:cout<<3456*12+3421;";
    ab1[9].b="B:cout<<“3456*12+3421”;";
    ab1[9].c="C:cout<<“3456*12+3421=”<<3456*12+3421;";
    ab1[9].d="D:cout<<“3456*12+3421=”;";
    ab1[9].f='a';
    ab1[9].g='A';
    ab1[10].e="(10):只输出“3456*12+3421”这个计算表达式应该怎么写?";
    ab1[10].a="A:cout<<3456*12+3421;";
    ab1[10].b="B:cout<<“3456*12+3421”;";
    ab1[10].c="C:cout<<“3456*12+3421=”<<3456*12+3421;";
    ab1[10].d="cout<<'3456*12+3421';";
    ab1[10].f='b';
    ab1[10].g='B';
    while(1)
    {
        cout<<ab1[xh2].e<<endl;
        cout<<ab1[xh2].a<<endl;
        cout<<ab1[xh2].b<<endl;
        cout<<ab1[xh2].c<<endl;
        cout<<ab1[xh2].d<<endl;
        cin>>ab1[xh2].h;
        if(correct(ab1[xh2].h,ab1[xh2].f,ab1[xh2].g))
        {
            ls1++;
            ls2=max(ls1,ls2); 
            cout<<"太棒了!得分加"<<5+ls1<<"分!!"<<endl;
            cout<<"这是你的得分:"<<score<<endl;
            cout<<"这是你目前连胜次数:"<<ls1<<endl;
            cout<<"这是你的最高连胜次数:"<<ls2<<endl;
            system("pause");
        } 
        else
        {
            ls1=0;
            ls2=max(ls1,ls2);
            cout<<"回答错误,继续加油!"<<endl;
            cout<<"这是你的得分:"<<score<<endl;
            cout<<"这是你目前连胜次数:"<<ls1<<endl;
            cout<<"这是你的最高连胜次数:"<<ls2<<endl;
            system("pause");
        }
        if(xh2>=10) break;
        xh2++;
    }
}
int main()
{
    rw();
}

来做一下so easy的题目吧!


2
2
我要回答