当前位置:首页 » 编程语言 » 小学数学随机出题c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

小学数学随机出题c语言

发布时间: 2023-03-31 21:43:24

c语言中怎么产生随机加减乘除运算

晚上要是有时间就给你作出来

⑵ 利用C语言随机产生20道口算题

解题思路:

1、编写测试题,且为30道,就要用到循环函数,因此想到用for()函数。

2、随机产生两个数,就想到用rand()函数。

代码如下:#include<iostream.h>

#include<stdlib.h>

#include<time.h>枯念

int main()

{

int x,y,z,t;

srand(time(NULL));

cout<<"小学二年级四则运算测试题"<<endl;

for(int i=0;i<30;i++)

{

x=rand()%100;

y=rand()%100;

没键困 z=rand()%4;

switch(z)

{

case 0:

cout<<x<<"+"<<y<<"="<<endl;

break;

case 1:

if(x<y)

{

t=x;

x=y;

y=t;

}

cout<<x<<"-"<<y<<"="<<endl;

break;

case 2:

cout<<x<<"*"<<y<<"="<<endl;

break;

case 3:

if(y!=0)

{

cout<<x<<"/"<<y<<"="<<endl;

}

else

{

亮巧 i=i-1;

}

break;

default:

cout<<"超出测试范围"<<endl;

break;

}

}

cout<<"恭喜你已经完成了30道数学测试题"<<endl;

return 0;

}

⑶ C语言如何实现从指定题库里抽取题目,实现随机出题

比如现在有100道题,要抽10道题。

  1. 先建立一个试题索引数组,idxarr = {0,1,2,...,99}

  2. 然后用随机数生成函数rand(),生成一个0到99的随机数,把索引数组里面该索引的值与数组中最后一个值调换,比如生成随机数为2,则修改索引数组为idxarr={0,1,99,3,4,...,98,2}

  3. 然后再生成一个0到98的随机数,把索引数组里面该索引的值与数组中倒数第二个值调换,比如这次生成的随机数是4,则修改索引数组为idxarr={0,1,99,3,98,5,...,97,4,2}

  4. 以此类推...执行10次,最后索引数组里面最后十个里面的值,就是抽出的试题索引号

    有啥不明白的,可以再问我

⑷ 求:随机出10道10以内小学加减法的c语言编程 每道题10分最后输出得多少分

用rand()产生随机数,rand()会产生从0到一个很大的数,我记不清了,反正很大。如果想出现100以内的,就用rand()%100。你可以定义三个int型整数,两个表示加或者减的对象,另一个标示加或者减,因为只要出现两码握种情况之一衡春,所以可以用rand()%2,这样只会有0,1两种情况来标示加或者减。下面的就很容易了
int a,b,i,c;
for(i = 0;i < 10;i++)
{
a = rand()%100;
b = rand()%100;
c = rand()%2;
if(c == 0)//标示加法
{
printf("%d + %d = %d\咐模耐n",a,b,a+b);
}
else
{
printf("%d - %d = %d\n",a,b,a-b);
}
}
大致就这样,希望给你点帮助

⑸ 用C语言编程随机产生一道包含加减乘除的数学题

//小学生四则运算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//产生 [a,b] 区间的随机数
#define RANDOM(a,b) (rand()%((b+1)-(a)) + (a))

//产生 1-20 的整数,如要改变算术范围,则修改这个宏的参数即可
#define GEN_VALUE() RANDOM(1, 20)

void main()
{
int v1, v2, t, r, a;
char op, ops[] = { '+', '-', '*', '/' };

srand( (unsigned)time(NULL) ); //用当前时间初始化随机数种子

printf( "请答题 Ctrl+C 结束...\n" );
while(1)
{
v1 = GEN_VALUE(); //随机生成第1个算数
v2 = GEN_VALUE(); //随机生成第2个算数
op = ops[ RANDOM(0,3) ]; //随机决定是哪个运算符

//保证第1个算数大于第2个算数,如不需要,则把这个判断删除即可
if( v1<v2 )
{
t = v1;
v1 = v2;
v2 = t;
}

//如果运算符为除法,且v1不能被v2整除则重新生成题目
if( op=='/' && v1%v2!=0 )
continue;

//计算正确的结果
switch(op)
{
case '+': a=(float)v1+(float)v2; break;
case '-': a=(float)v1-(float)v2; break;
case '*': a=(float)v1*(float)v2; break;
case '/': a=(float)v1/(float)v2; break;
}

//输出算式
printf( "%d%c%d=", v1, op, v2 );

//等待输入结果
scanf( "%d", &r );

if( r == a )
printf( " 答对喽!\n\n" );
else
printf( " 答错喽!正确答案是:%d\n\n", a );
}
}

⑹ c语言编程 小学数学出题器

这题目最好是用C++去做帆祥,用面向对象可以加一些按钮,搜轿谨对话框,列表框,编辑框等来实世基现,应该是比较好整的!

⑺ 小学数学出题系统C++代码

一. 设计任务 小学数学出题系统概述: 为小学生教学服务,能够根据小学生的需要随机抽出两位数的数学运算题,锋销可根据需要进行加减乘除运算。由学生在电脑上答题,并对其判断正误和记分。另外可以根据需要随机抽出四则运算的混合运算题同样应对其判断正误和记分。 基本要求: 抽题选择功能 两位数四则运算的出题功能 四则混合运算的抽题功能 答案判断正误功能 分数累积功能 出题存储功能等

二.系统分析介绍以及有关变量、结构体的说明

(1)系统操作说明 1.主界面设计,选择目录中的各种功能。 2. 系统随机出题,显示算式,含加,减,乘,除四则运算以及敬梁混合四则运算。 3.完成题目后返回主菜单,查询成绩,以及回顾存储过的试题。 4.测试时,系统自动出题,每题10分,统计得分。显示各题的对错信息。

2 (2)有关变量、结构体的说明 a>该系统主要由够银稿游造函数体、结构体等来并在main函数中引用这些函数和结构体以及打开或关闭文件来完成出题得分等功能。根据菜单分别选择四则运算或者四则混合运算进行测试,进入出题阶段,利用出题函数chuti()和chuti1()随机产生四则运算和混合运算题目.完成题目后选择返回进行评分和回顾试题系统查看。 b>模块划分及功能 1.选择界面:在进入该系统后,须选择所需体型或其他。 2.测试界面:在选择了类别后,系统进入出题界面,使用者开始做练习。 3. 查分界面:完成题目后,回主菜单选择输出成绩。 4. 回顾试题界面:在主菜单中选择“查看所做题目”

⑻ 用C语言写一个 小学生口算出题系统

一、设计的流程:

1. 主界面设计,选择练习或测试,按ESC结束程序。
2. 题型选择界面设计,选择加、减、乘、除或混合运算,按ESC返回主界面。
3. 系统随机出题,运算数及结果均在100以内,乘、除法应能整除,显示算式。
4. 练习时,系统随机出题,键入结果,正确和错误均有提示,出错时允许再输入,最多三次机会,若还不正确,给出答案。继续出题,按ESC,显示总题数,正确数和正确率。
5. 测试时,系统自动出10道题,每题只给一次机会,每题10分,统计得分。结束后,给出总分,显示各题的对错信息,错误的给出答案。中间按ESC键结束。显示已作题的对错信息,错误的给出答案,不显示得分,按任意键返回题型选择界面。
相关知识:按键操作、数组、指针、结构体等

二、例程:

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
voidmain()
{
inta[10],b[10],d[10],c[10],num=0,result,add=0;
floatval;
charfa[5]={'+','-','*','/'};

/*出10道题*/
while(1)
{
srand((unsigned)time(NULL));
d[num]=abs(rand())%4;/*保证出题算法的随机性*/
while(1)/*保证出题成功*/
{
c[num]=-1;
a[num]=abs(rand())%100;
b[num]=abs(rand())%100;
if(d[num]==0)c[num]=a[num]+b[num];
elseif(d[num]==1)c[num]=a[num]-b[num];
elseif(d[num]==2)c[num]=a[num]*b[num];
elseif(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num];
elseval=-1;
}
if(d[num]<=2)
{
if(c[num]>=0&&c[num]<=100)break;
}
else
{
if(a[num]==int(val)*b[num]&&val>=0)
{c[num]=val;break;}
}
}
num++;
if(num==10)break;
}
/*回答*/
num=0;
while(1)
{
printf("%d%c%d=",a[num],fa[d[num]],b[num]);
scanf("%d",&result);
if(result==c[num])
{
printf("回答正确! ");
add+=10;
}
else
printf("错误,正确答案:%d ",c[num]);
num++;
if(num==10)break;
}
printf(" 得分:%d ",add);
getch();
}

⑼ c语言 设计小学生四则运算测试程序,要求随机产生10题四则运算题,答完后给出得分

/*
* sizeyunsuan.c
*
* Created on: 2011-6-17
* Author: zhanglujin
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int yunsuan(int M)
{
int m=1,n=0,a,b,daan;
while(1) //这里得解决/的情况,因为这里保证是整数,所以肢和一些条件要满足正慎才能除,若不成立,改为+得了。
{
srand(time(0));
a=rand()%M;
b=rand()%M;
switch(1+rand()%4)
{
case 1:
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
case 2:
{
if(a>=b)
{
printf("<%d>",m);
printf("%4d-%4d=",a,b);
scanf("%d",&daan);
if(daan==(a-b))
n++;
else
printf("Fault!\n");
m++;
break;

}
else
{
printf("<%d>",m);
printf("%4d-%4d=",b,a);
scanf("%d",&daan);
if(daan==(b-a))
n++;
else
printf("Fault!\n");
m++;
break;

}
}
case 3:
{
printf("<%d>"举饥敬,m);
printf("%4d*%4d=",a,b);
scanf("%d",&daan);
if(daan==(a*b))
n++;
else
printf("Fault!\n");
m++;
break;
}
default:
{
if((b!=0)&&(a>=b)&&((a%b)==0))
{
printf("<%d>",m);
printf("%4d/%4d=",a,b);
scanf("%d",&daan);
if(daan==(a/b))
n++;
else
printf("Fault!\n");
m++;
break;
}
else if((a!=0) && (b>=a) && ((b%a)==0))
{
printf("<%d>",m);
printf("%4d/%4d=",b,a);
scanf("%d",&daan);
if(daan==(b/a))
n++;
else
printf("Fault!\n");
m++;
break;
}
else //若除不成立,改为+操作,防止循环多次。
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
}
}
if(m == 11)
break;
}
return n;
}

int main()
{
int M,p;
float right;
char o;
while(1)
{
//redo:
printf(" 欢迎进入四则运算训练营\n\n1.10以内的四则运算\n2.20以内的四则运算\n0.退出\n\n");
printf("请选择功能号(1/2/0):");
scanf("%d",&p);
getchar();
if(p==1)
M=10;
if(p==2)
M=20;
if(p==0)
exit(0);
printf("您选择的是%d以内的四则运算\n",M);
int temp = yunsuan(M);
right= temp/10.0;
printf("正确率:%.2f%%",right*100);
printf(" score=%d",temp*10);
getchar(); //吸收前面的回车键。
printf("继续吗?(y/n)");
scanf("%c",&o);
if(o == 'y' || o == 'Y') //这里的继续存在问题啊,怎么弄??
{
system("pause");
//goto redo;
}
else
{
break;
}
}
getchar();
return 0;
}