1. 题目描述
做一个小学生考试系统,功能如下:
(1) 利用随机函数出10道加法题;
(2) 小学生用户答题,给出每道题的答案;
(3) 对小学生的答题进行评判
(4) 计算小学生的答题正确率
编译的程序:
#include <stdio.h> //标准输入输出函数
#include <stdlib.h>
#include <time.h>
int main () //主函数
{
int sum=0;//答对的数目
int i;
int a,b,f,e;//a,b为运算时的两个数
int c;//c=0为加,c=1为减,c=2为乘,c=3为除
srand(time(0));//产生随机数 随机种子
printf("---------------------------------------------------------------\n");
printf(" 小学生算术考试系统 \n");
printf("---------------------------------------------------------------\n");
for(i=0; i<10; i++)
{
printf("这是第%d道题: ",i+1);
c=rand()%4;//表示产生0-3间的随机数,分别代表着加减乘除
do
{
a=rand()%100+1;//100以内的随机数
b=rand()%100+1;
if(a<b&&(c==1||c==3))//交换a,b的位置,保证减法大于零,除法大于一
{
f=a;
a=b;
b=f;
}
if(c==3)
a=(a/b)*b;//调整被除数,保证能够整除 (a/b)取整数部分再乘以b变为b的倍数
}
while((a+b)>=100||a*b>=100); //确保加法和乘法的结果在100以内
switch(c)
{
case 0://加法
f=a+b;
printf("%d+%d=",a,b);
break;
case 1://减法
f=a-b;
printf("%d-%d=",a,b);
break;
case 2://乘法
f=a*b;
printf("%d*%d=",a,b);
break;
case 3://除法
f=a/b;
printf("%d/%d=",a,b);
break;
}
scanf("%d",&e);
if(f==e)
{
if(i%2==0)
{
printf("回答正确,棒棒哒!\n");
}
else if(i%2==1)
{
printf("又答对了,你真棒!\n");
}
sum++;
}
else
{
if(i%2==0)
{
printf("回答错误,继续加油!\n");
printf("正确答案为%d\n",f);
}
else if(i%2==1)
{
printf("答错了,不要灰心,你是最棒的!\n");
printf("正确答案为%d\n",f);
}
}
}
printf("共回答正确%d道题",sum);
return 0;
}
运行结果:
知识点总结:#include 是c语言预处理命令,<>内的文件称为头文件,预处理命令#include将标准输入输出头文件中stdio.h包含在程序中。