1. 用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 );
    }
}
2. C语言随机产生四则运算,加减乘除最少一次怎么处理
既然是,随机产生四则运算,那么就让计算机产生一个0到3之间的随机整数,然后根据得到的随机整数来确定采用哪种运算,数字零代表加,一代表减,二代表乘法,三代表除法。因为产生的数量有十个,所以一般运算符都是会产生的。为确保万无一失,可以,前面四个分别是加减乘除,后面四个就让它随机产生。
3. c语言四则运算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int n,n1;
char fun(int op){if(op==0)return '+';else if(op==1)return '*';else if(op==2)return '-';else return '/';}
int  Compute( int a, int b, int op )
{
int p;
if(op==0)p=a+b;else if(op==1)p=a*b;else if(op==2)p=a-b;else p=a/b;
if(n==p){n1++;
return 1;}
else
return 0; 
}
void Print(int flag)
{
 if(flag==1)printf("Right!\n");
 else
  printf("Not correct!\n");
}
void main()
{
 srand((unsigned)time(NULL));
 int a,b,op,i=0,num;
 while(true)
 {
  if(i==10)break;
  a=rand()%10+1;
  b=rand()%10+1;
  op=rand()%4;
  if(a%b==0&&a>=b)
  {
   i++;
   printf("%d%c%d=",a,fun(op),b);
   scanf("%d",&n);
   num=Compute(a,b,op);
   Print(num);
  }
 }
 printf("you grade is:%d,you falsed %d!\n",n1*10,10-n1);
}
4. C语言 :编写一个函数,通过计算机随机产生一道四则运算题
// clca4.cpp : 定义控制台应用程序的入口点兆神。
//
#include "stdafx.h"
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
void fun(int n)
{
 int i, x = 0, s = 0, a = 0, b = 0, sum = 0, count = 0;
 srand((unsigned)time(NULL));
 for (i = 0; i<n; i++)
 {
  a = rand() % 10;
  b = rand() % 10;
  x = rand() % 4; //3不对,没有除法
  printf("%d\n", a);
  switch (x)
  {
  case 0:
   printf("+\n");
   s = a + b;
   break;
  case 1:
   printf("-\n");
   s = a - b;
   break;
  case 2:
   printf("*\n");
   s = a*b;
   break;
  case 3:
   printf("/\n");
   s = a / b;
   break;
  default:
   printf("Not correct!\n");
  }
  printf("%d\n", b);
  printf("请输入计算结果:\n");
  scanf_s("%d", &sum); //scanf 没有 \n
  if (sum == s)
  {
   count++;
   printf("Right!\n");
  }
  else
   printf("好冲wrong!\n");
 }
 printf("%d道题目正确\n", count);
}
int _tmain(int argc, _TCHAR* argv[])
{
 int n;
 printf("请输入需要完成的题目数量:"友猜歼);
 scanf_s("%d", &n);
 fun(n);
 return 0;
}
 
以上程序在VS2013 win32控制台测试过。。。。。。
5. c语言中三个整数随机的四则运算
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10 /洞仿高/随机出10道题目
int main()
{
 	int num1, num2, num3, count=0, result,resultTrue,flag;//result:用户输入结果 resultTrue:正确结大氏果 flag:0 先计算左边 1先计算右边
 	char op1, op2;
 	
 	srand(time(NULL));    //启动随机数生成器
	do {
		count++;
		
	   	num1 = rand() % 10+1;
		num2 = rand() % 10+1;
		num3 = rand() % 10+1;
		switch (num1 % 4)
		{
            case 0:
				op1 = '+';
				break;
            case 1:
				op1 = '-';
				break;
	        case 2:
				op1 = '*';
				break;
            case 3:
				op1 = '/';
				break;
            default:
				break;
		}
		switch (num2 % 4)
		{
			case 0:
				op2 = '+';
				flag = 0;
				break;
			case 1:
				op2 = '-';
				flag = 0;
				break;
			case 2:
				op2 = '*';
				if((op1=='*')||(op1=='/')) flag = 0;
				else flag = 1;
				break;
			case 3:
				op2 = '/';
				if((op1=='*')||(op1=='/')) flag = 0;
				else flag = 1;
				break;
			default:
				break;
		}
		printf("%d %c %d %c %d = ",num1,op1,num2,op2,num3);
		if(flag==0)
		{
			resultTrue = 0;
			switch (op1)
			{
				case '+':
					resultTrue = num1+num2;
					break;
				case '-':
					resultTrue = num1-num2;
					break;
				case '*':
					resultTrue = num1*num2;
					break;
				case '/':
					resultTrue = num1/num2;
					break;
				default:
					break;
			}
			switch (op2)
			{
				case '+':
					resultTrue += num3;
					break;
				case '-':
					resultTrue -= num3;
					break;
				case '*':
					resultTrue *= num3;
					break;
				case '/':
					resultTrue /= num3;
					break;
				default:
					break;
			}
		}
		else
		{
			resultTrue = 0;
			switch (op2)
			{
				case '+'纳尺:
					resultTrue = num2+num3;
					break;
				case '-':
					resultTrue = num2-num3;
					break;
				case '*':
					resultTrue = num2*num3;
					break;
				case '/':
					resultTrue = num2/num3;
					break;
				default:
					break;
			}
			switch (op1)
			{
				case '+':
					resultTrue = num1 + resultTrue;
					break;
				case '-':
					resultTrue = num1 - resultTrue;
					break;
				case '*':
					resultTrue = num1 * resultTrue;
					break;
				case '/':
					resultTrue = num1 / resultTrue;
					break;
				default:
					break;
			}
		}
		scanf("%d",&result);
		if (result == resultTrue)
			printf("结果正确!\n");
		else
			printf("结果错误!\n");
	} while(count<=N);
	return 0;
}
6. 用c语言作 通过计算机随机产生10道四则运算题
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <time.h>
int main()
{
    int a = 0;
    int b = 0;
    int mode = 0;//0:加  1:减   2:乘 3:除 
    int c = 0;
    int result = 0;
    int score = 0;
    int i = 0; 
    srand((unsigned)time( NULL ) ); //初始化随机数发生器,使得每次运行生成的随机数不同
    for(i=0;i<10;i++) //做十题
    {  
        a = rand() % 10; //生成一个0~9之间的随机数
        b = rand() % 10;  //生成一个0~9之间的随机数
        mode = rand() % 4; //生成一个0~3之间的随机数,代表运算符
        printf("%d", a);   //打印算式
        switch(mode) //确定运算符
        {  
        case 0:   
            printf("+ ");   
            result= a + b;   //选择了+运算的正确答案
            break;  
        case 1:    
            printf("- ");   
            result= a - b;   //选择了-运算的正确答案
            break;  
        case 2:   
            printf("* ");   
            result= a * b;   //选择了*运算的正确答案
            break;  
        case 3:   
            printf("/ ");   
            result= a / b;   //选择了/运算的正确答案
            break;  
        default:  
            printf("somethingis wrong!\n");   
            break; 
        } 
        printf("%d = ", b); 
        scanf("%d", &c); //输入答案
        if(c == result) //与正确答案一致
        {  
            score+= 10;  //加分
            printf("Right\n\n"); 
        } 
        else 
        {  
            printf("Wrong\n\n"); //错开
        }
    }
    printf("Yourscore is: %d\n\n\n", score);//显示十道题的得分
    return1;
}
7. C语言中随机产生四则运算符号
char op[4]={'+','-','×','÷'};
char theop;
int rand;
//*******随机数孝行闷你会吧,在此处加入产生一个随机数的代码,带咐最好很大,赋值给rand,然后巧弯:
theop=op[rand%4];  //theop就是你要的随机运算符。
8. 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;
}
9. 用C语言做一个四则运算
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
int moshi;
int count;
void plus(int first,int second)
{
 int result;
    printf("%d + %d =",first,second);
 scanf("%d",&result);
 if(result == first+second)
 {
  printf("Right!\n");
 }
 else
 {
  printf("wrong!\nThe correct answer is:%d\n",first+second);
 }
}
void minus(int first,int second)
{
 int result;
    printf("%d - %d =",first,second);
 scanf("%d",&result);
 if(result == first-second)
 {
  printf("Right!\n");
 }
 else
 {
  printf("wrong!\nThe correct answer is:%d\n",first+second);
 }}
void multiply(int first,int second)
{
 int result;      //运算结果
    printf("%d * %d =",first,second);
 scanf("%d",&result);
 if(result == first*second)
 {
  printf("Right!\n");
 }
 else
 {
  printf("wrong!\nThe correct answer is:%d\n",first*second);
 }
}
void divide(int first,int second)
{
 float result;      //运算结果
 float temp;
 second = rand()%100;
    printf("%d / %d =",first,second);
 if(second==0)
 {
  printf("Error!\n");
  return;
 }
 scanf("%f",&result);
 temp=result*100 - ((float)first/(float)second)*100;
 if(abs(temp)<0.01)
 {
  printf("Right!\n");
 }
 else
 {
  printf("wrong!\nThe correct answer is:%f\n",(float)first/(float)second);
 }
}
int  main()
{
 printf("小提示:\n每种模式默认运行5次就得重新选择,中途退出直接按Ctrl+c!\n");
p:  printf("请选择模式:\n\n");
 printf("----------1:练习模式\n");
    printf("----------2:计算模式\n");
 count=0;
 scanf("%d",&moshi);
 switch(moshi)
 {
 case 1: 
  {   int n;
   int first,second;//保存两个运算的数字
   while(true)
   {
     n=first%4;    //除以4取余数,随机确定调用函数
     srand(time(NULL));
     first = rand()%100;
        second = rand()%100;
     if(count==5)
      goto p;
       switch(n)
     {
    
    case 0:
     {
      plus(first,second); 
      count++;
      break;
     }
    case 1:
     {
      minus(first,second);
      count++;
      break;
     }
    case 2:
     {
      multiply(first,second);
      count++;
      break;
     }
    case 3:
     {
      divide(first,second); 
      count++;
      break;
     }
    default:
     {
      count++;
      break;
     }
    }//switch
   }//while
  }//case1
 case 2:
  {
   int first,second;
         char c,c1;  //保存运算符
         while(true)
   { 
    scanf("%d%c%d%c",&first,&c,&second,&c1);
    if(count==5)
      goto p;
    switch(c)
    {
    case '+':
     {
      printf("%d+%d=%d\n",first,second,first+second);
      count++;
      break;
     }
    case '-':
     {
      printf("%d-%d=%d\n",first,second,first-second);
      count++;
      break;
     }
    case '*':
     {
      printf("%d*%d=%d\n",first,second,first*second);
      count++;
      break;
     }
    case '/':
     {
      printf("%d/%d=%f\n",first,second,(float)first/(float)second);
      count++;
      break;
     }
    default:
     {
      count++;
      break;
     }
    }//switch
   }//while
  }//case2
 default:
  {
   break;
  }
 }
    return 0;
}
10. 用简单的c语言编写四则运算题
这个很简单啊。
假设你已经输入写好了,然后制定的运算种类存在int op里面,int x表示数的位数
那么
if (x==1) {a=rand()%9+1;b=rand()%9+1;} else {a=rand()%90+10;b=rand()%90+10;} 随机生成两个数
然后if (op==0) c=a+b;if (op==1) c=a-b;if (op==2) c=a*b;if (op==3) c=a/b;电脑计算出答案
然后你把a,b运算符号都输出,然后读入用户的答案,判断是否和c一致就可以了。
比如输入到d。假设规定用户输入-1表示结束。
那么就if (d==-1) break。整个过程写在一个循环里面就行了。
if (c==d) ct1++; else ct2++; 记录对错次数
最后输出一下ct1和ct2就可以了。
最后大致写下总的。
ct1=ct2=0;
while(1)
{
input();//你自己完成输入。
if(x==1){a=rand()%9+1;b=rand()%9+1;}else{a=rand()%90+10;b=rand()%90+10;}
if(op==0)c=a+b;if(op==1)c=a-b;if(op==2)c=a*b;if(op==3)c=a/b;
output(a,b,op);//你自己完成以下输出a,b和计算符号。以及提示语之类的
readfromuser(d);//你自己看看怎么从用户这边读入,并且判断是否是退出之类的。
if(isexit(d))break;//如果你自己判断出来用户要退出就退出。
if(c==d)ct1++;ct2++;
}
outputscore(ct1,ct2);//输出一下分数。
输入输出函数我就不具体写了,你可能想完成的更美工一点之类的,但是大致流程就这样子。
