200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 用C语言设计一个简易的选择题答题系统

用C语言设计一个简易的选择题答题系统

时间:2022-09-15 23:27:27

相关推荐

用C语言设计一个简易的选择题答题系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言一、设计简易的答题系统二、使用步骤 1.引入库2.读入数据总结:应用随机数,getchar以及if else

前言

需要随机出题,题目出现顺序要不一致

产生随机数 1~20

C语言随机数的生成【详解】_星空之路Star的博客-CSDN博客_c语言随机数

及时反馈正确情况,记录同学的准确率

自定义特性

(1) 大小写答案不区分

(2) 答错之后,说明正确答案是什么

(3)一开始什么都不输入,就只输出回车或者空格,也判断为正确

提示:以下是本篇文章正文内容,下面案例可供参考

一、随机数步骤

srand((unsigned int)time(NULL));//设置随机数步骤

for(i=1;i<=20;i++){d:d[i]=rand()%20+1;//设置20个随机数for(j=0;j<i;j++){if(d[i]==d[j]){goto d;//保证随机数不重复}}}

二、完整代码

代码如下(示例):

#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>int main(){char q[21][1000];//用来存放题目char a[21];//用来存放正确答案char b[21][1000];//用来存放用户输入的答案printf("第三大题:选择题(每题5分,一共20题,请将正确的选项填入括号中)\n");strcpy(q[1],"scanf 函数输入整数时可使用( )格式限定符\nA.%c\tB.%d\tC.%e\tD.%s\n");//输入好题目和选项存入每道题目中a[1]='B';//将每道题的答案配对好strcpy(q[2],"已知程序要使用函数printf,则程序必须包含头文件( )\nA.math.h\tB.stdlib.h\tC.stdio.h\tD.ctpe.h\n");a[2]='C';strcpy(q[3],"若有定义:int a=5,b=2,c=1;则表达式a-b<c||b==c的值是()\nA.0\tB.1\tC.2\tD.-1\n");a[3]='A';strcpy(q[4],"C语言中while和do-while循环的主要区别是( )\nA.do-while的循环体至少无条件执行一次\tB.while的循环控制条件比do-while的循环控制条件严格\tC.do-while允许从外部转到循环体内\tD.do-while的循环体不能是复合语句\n");a[4]='A';strcpy(q[5],"C语言对if嵌套语句的规定:else总是与( )配对\nA.第一个if\tB.之前最近的且不带else的if\tC.缩进位置相同的if\tD.之前最近的if\n");a[5]='B';strcpy(q[6],"如果int a=3,b=4;则条件表达式a<b? a:b的值是( )\nA.3\tB.4\tC.0\tD.1\n");a[6]='A';strcpy(q[7],"结构化程序设计的3种结构是( )\nA.顺序结构,选择结构,循环结构\tB.分支结构,数组结构,循环结构\tC.顺序结构,分支结构,跳转结构\tD.分支结构,选择结构,循环结构\n");a[7]='A';strcpy(q[8],"假设有定义:float x=16/5/2.0, y=16/5.0/2; 则 x 和 y 的值分别为( )\nA.1.5 1.6\tB.1.6 1.6\tC.1.5 1.5\tD.1.6 1.5\n");a[8]='A';strcpy(q[9],"判断实数 x 属于闭区间 [ a, b ] 的表达式为 ( )\nA.x <= [a, b]\tB.a <= x <= b\tC.a <= x && x <= b\tD.a ≤ x && x ≤ b\n");a[9]='C';strcpy(q[10],"表达式3.6-5/2+1.2+5%2的值是( )\nA.4.3\tB.4.8\tC.3.3\tD.3.8\n");a[10]='D';strcpy(q[11],"假设所有变量已正确定义,以下for语句不能编译的是( )\nA.for(i=0; i<10, j<10; i++)\tB.for(i=0; j=0; i<10; i++ )\tC.for(i=0; i<10; i--)\tD.for(i=0; j<10; j++)\n");a[11]='B';strcpy(q[12],"以下与k=n++等价的表达式是( )\nA.k=++n\tB.n=n+1,k=n\tC.k=n,n=n+1\tD.k+=n\n");a[12]='C';strcpy(q[13],"语句while(!E)中的表达式!E等价于( )\nA.E==0\tB.E!=1\tC.E!=0\tD.E==1\n");a[13]='A';strcpy(q[14],"C 语言程序中可以对程序进行注释,注释部分必须用的符号是( )\nA.‘{’和‘}’\tB.‘[’和‘]’\tC.‘/*’和‘*/’\tD.‘*/’和‘/*’\n");a[14]='C';strcpy(q[15],"当调用函数时,实参是一个数组名,则向函数传送的是( )\nA.数组的长度\tB.数组的首地址\tC.数组每一个元素的地址\tD.数组每个元素中的值\n");a[15]='B';strcpy(q[16],"设有数组定义:char array [ ]={“China”};则数组 array所占的空间为( )\nA.4个字节\tB.5个字节\tC.6个字节\tD.7个字节\n");a[16]='C';strcpy(q[17],"以下选项中合法的用户标识符是( )\nA.long\tB._2Test\tC.3Dmax\tD.A.dat\n");a[17]='B';strcpy(q[18],"即使两个指针变量的类型相同,它们也不能( )\nA.相减\tB.相加\tC.比较\tD.指向同一地址\n");a[18]='B';strcpy(q[19],"continue语句用于( )\nA.退出循环程序\tB.退出本次循环\tC.空操作\tD.根据if语句的判断进行选择\n");a[19]='B';strcpy(q[20],"设ch是char型变量,其值为G,且有表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch,表达式的值是\nA.A\tB.a\tC.G\tD.g\n");a[20]='D';srand((unsigned int)time(NULL));//设置随机数步骤int i,j,c=0,flag=0,sum=0;int d[21]={0};for(i=1;i<=20;i++){d:d[i]=rand()%20+1;//设置20个随机数for(j=0;j<i;j++){if(d[i]==d[j]){goto d;//保证随机数不重复}}printf("第%d题:%s请输入你的选项:()(按回车进入下一题)\n",i,q[d[i]]);//随机输出每道题scanf("%s",b[i]);//用户输入答案int len=strlen(b[i]);for(j=0;j<len;j++){if(b[i][j]!=' '){c=1;break;//保证输入空格不跳题}}getchar();//防止按完回车程序退出if(c==1){if(b[i][j]==a[d[i]]||b[i][j]==a[d[i]]+32)//大小写都算正确{printf("恭喜你回答正确,进入下一道题!\n");flag++;sum=sum+5;//每回答正确一次加5分}elseprintf("很抱歉,回答错误,正确答案是%c。进入下一道题!\n",a[d[i]]);//及时反馈正确答案printf("你当前回答正确了%d道题,当前得分为:%d\n\n",flag,sum);//反映总共答对的题目数量if(i==20)printf("恭喜你回答完了所有问题,你的最终得分为:%d\n你的正确率为:%.2f%%\n",sum,sum/100.0*100);//当所有题目抽完了反映用户的正确率}}printf("其中你答对了第\n");for(i=1;i<=20;i++){if(b[i][j]==a[d[i]]||b[i][j]==a[d[i]]+32)printf("%d题\n",i);//告诉用户他答对了哪些题目}return 0;}

总结:以上就是今天要讲的内容,本文仅仅简单介绍了C语言的使用制作简易的答题系统。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。