導航:首頁 > 小學學科 > c小學數學測試

c小學數學測試

發布時間:2021-03-06 12:50:07

① 求一個C語言程序:小學數學測試,要求如下:

/*******************************************************************************
(1)可選擇題型:+ , - , * , / ;
(2)可選擇每次答題的個數;
(3)隨機生成兩個數進行運算;
(4)每次在輸入答案後應判斷對錯,若答案錯誤,應給出正確答案;
(5)最後給出做對題目的總個數

File :cai.c
*******************************************************************************/
#include <stdio.h>
#include <time.h>

void main()
{
char op;/*運演算法則*/
int total;/*總題數*/
int count=0;/*答對題數*/
long a,b,c,d;
int i=0;

do
{
system("cls");
printf("請選擇:\n");
printf(" (+)加法練習\n");
printf(" (-)減法練習\n");
printf(" (*)乘法練習\n");
printf(" (/)除法練習\n");
op = getch();
}while(op!='+'&&op!='-'&&op!='*'&&op!='/');

printf("請選擇(默認20題):\n");
printf(" 1. 10題\n");
printf(" 2. 20題\n");
printf(" 3. 40題\n");
printf(" 4.100題\n");
total = getch();

printf("\n沉著冷靜,認真仔細,加油!\n");
printf("................................................\n");

switch(total)
{
case '1':total= 10;break;
case '2':total= 20;break;
case '3':total= 50;break;
case '4':total=100;break;
default :total= 20;break;
}
srand(time(NULL));
for(i=0;i<total;i++)
{
a = rand()%1000;
b = rand()%1000;
printf("\n%2d. ", i+1);/*題號*/
switch(op)
{
case '+':
printf("%ld+%ld=",a,b);
scanf("%ld",&c);
if(c==a+b)
{
printf("回答正確!\n");
count++;
}
else
{
printf("回答錯誤!%ld + %ld=%ld\n",a,b,a+b);
}
break;
case '-':
if(a<b)
{
a=a+b;
b=a-b;
a=a-b;
}

printf("%ld-%ld=",a,b);
scanf("%ld",&c);
if(c==a-b)
{
printf("回答正確!\n");
count++;
}
else
{
printf("回答錯誤!%ld - %ld=%ld\n",a,b,a-b);
}
break;
case '*':
printf("%ld*%ld=",a,b);
scanf("%ld",&c);
if(c==a*b)
{
printf("回答正確!\n");
count++;
}
else
{
printf("回答錯誤!%ld * %ld=%ld\n",a,b,a*b);
}
break;
case '/':/*都能除盡*/
c=a*b;
printf("%ld/%ld=",c,a);
scanf("%ld",&d);
if(d==b)
{
printf("回答正確!\n");
count++;
}
else
{
printf("回答錯誤!%ld / %ld = %ld\n",c,a,b);
}
break;
}
}
printf("................................................\n");
printf("下面公布成績:\n\n");
printf("總題數:%d\t答對數:%d\n", total, count);
if(count/(float)total>=0.9) printf("<> 優 <>\n");
else if(count/(float)total>=0.8) printf("<> 良 <>\n");
else if(count/(float)total>=0.6) printf(" 及格\n");
else if(count/(float)total>=0.1) printf(" 不及格\n");
else printf("跟你沒話說\n");

getch();
}

② c語言課程設計小學數學測試系統

您好,我看到您的問題很久沒有人來回答,但是問題過期無人回答會被扣分回的並且你的懸賞答分也會被沒收!所以我給你提幾條建議:

一,你可以選擇在正確的分類下去提問,這樣知道你問題答案的人才會多一些,回答的人也會多些。

二,您可以到與您問題相關專業網站論壇里去看看,那裡聚集了許多專業人才,一定可以為你解決問題的。

三,你可以向你的網上好友問友打聽,他們會更加真誠熱心為你尋找答案的,甚至可以到相關網站直接搜索.

四,網上很多專業論壇以及知識平台,上面也有很多資料,我遇到專業性的問題總是上論壇求解決辦法的

③ C語言程序設計課程小學數學測試系統

怎麼回答

④ 求一個C語言編寫的小學數學測試系統,要求有加法,減法,乘法,除法,四則混合運算,試卷共六個部分。

#include<stdio.h>
#include<string.h>
typedef struct MyComplex
{
double real;
double img;
}mc;

mc Plus(mc a,mc b)
{
mc result;
result.real = a.real + b.real;
result.img = a.img + b.img;
return result;
}

mc Sub(mc a,mc b)
{
mc result;
result.real = a.real - b.real;
result.img = a.img - b.img;
return result;
}

mc Multi(mc a,mc b)
{
mc result;
result.real = a.real * b.real - a.img * b.img;
result.img = a.img * b.real + b.img * a.real;
return result;
}

void Show(mc a)
{
if(a.real == 0 && a.img == 0)
printf("0.000\n");
else if(a.real == 0)
printf("%.4fi\n",a.img);
else if(a.img == 0)
printf("%.4f\n",a.real);
else
{
if(a.img < 0)
printf("%.4f%.4fi\n",a.real,a.img);
else
printf("%.4f+%.4fi\n",a.real,a.img);
}
}

int main()
{
mc a,b;
printf("輸入第一個復數 a:\n");
scanf("%lf%lf",&a.real,&a.img);
printf("輸入第二個復數 b:\n");
getchar();
scanf("%lf%lf",&b.real,&b.img);
printf("a b的和: ");
Show(Plus(a,b));
printf("a b的差: ");
Show(Sub(a,b));
printf("a b的積: ");
Show(Multi(a,b));
return 0;
}
按照a+bi這樣的格式輸入就可以了

⑤ C語言小學數學測驗程序設計

沒有無緣無故的給予,至少給些財富啊!
程序核心很簡單,基本上編程人沒有不會的
給孩子用至少界面要漂亮點的,就是時間問題啊。

⑥ 用c語言編寫 小學數學考試題

#include "stdafx.h"
#include <stdlib.h>
#include <memory.h>
#include <assert.h>
#include <time.h>

typedef struct Equ // 一個表達式結構體.
{
int x;
int y;
char sig;
}EQU;

const unsigned int NUM = 5; // 生成試題量
EQU equ[NUM]; // 表達式數組
float UserAnswer[NUM]; // 用戶給的答案
float RightAnswer[NUM]; // 正確答案
bool UserScore[NUM]; // 用戶每次正誤
char SIG[4] = {'+', '-', '*', '/'};

void GenerateQuestion(unsigned int num = NUM); // 生成試題
void CalculateRightAnswer(unsigned int num= NUM); // 計算正確答案
void Ask(unsigned int num = NUM); // 測試
void AskAnswer(unsigned int i); // 測試第i道題
void DisplayResult(unsigned int num = NUM); // 顯示測試結果
void DisplayResultAnswer(unsigned int i); // 顯示第i道題
int main(int argc, char* argv[])
{
GenerateQuestion();
CalculateRightAnswer();
Ask();
DisplayResult();

return 0;
}

void DisplayResult(unsigned int num /* = NUM */)
{
assert(num<=NUM);

printf("\n\nThis Test Result:\n");
unsigned int i=0;
for (i=0; i<num; ++i)
{
DisplayResultAnswer(i);
}

int score = 0;
for(i=0; i<num; ++i)
{
if (UserScore[i])
{
++score;
}
}
printf("本次測試總分: %d\n\n", score*10);
}

void DisplayResultAnswer(unsigned int i)
{
assert(i<NUM);

printf("第%d題: %d %c %d = ?", i, equ[i].x, equ[i].sig, equ[i].y);
printf(" Your Ans: %f, Right Ans: %f", UserAnswer[i], RightAnswer[i]);
UserScore[i] ? printf(" Get 10 score.\n") : printf(" Miss 10 score.\n");
}

void Ask(unsigned int num)
{
assert(num<=NUM);

unsigned int i=0;
for (i=0; i<num; ++i)
{
AskAnswer(i);
printf("\n");
}
}

void AskAnswer(unsigned int i)
{
assert(i<NUM);

printf("第%d題: %d %c %d = ? ", i, equ[i].x, equ[i].sig, equ[i].y);
scanf("%f",&UserAnswer[i]);

if (UserAnswer[i] == RightAnswer[i])
{
UserScore[i] = true;
printf("good, you get ten score, come on!\n");
}
else
{
UserScore[i] = false;
printf("sorry, you make a mistake, be careful!\n");
}
}

void GenerateQuestion(unsigned int num)
{
assert(num <= NUM);
srand( (unsigned)time( NULL ) );

unsigned short i=0;
for (i=0; i<num; ++i)
{
equ[i].x = 1+rand()%100; // 1 ~ 100
equ[i].y = 1+rand()%100; // 1 ~ 100
equ[i].sig = SIG[rand()%4]; // 0 ~ 4
}
}

void CalculateRightAnswer(unsigned int num)
{
assert(num <= NUM);
unsigned short i=0;
for (i=0; i<num; ++i)
{
switch (equ[i].sig)
{
case '+':
RightAnswer[i] = float(equ[i].x + equ[i].y);
break;
case '-':
RightAnswer[i] = float(equ[i].x - equ[i].y);
break;
case '*':
RightAnswer[i] = float(equ[i].x * equ[i].y);
break;
case '/': // 因為全部是1~100,所以y!=0
RightAnswer[i] = float(equ[i].x / equ[i].y);
break;
}
}
}

⑦ 用C語言編寫「小學數學考試」

保留歷史記錄這個,還是挺復雜的。。。。。
你要這個幹啥

⑧ c 語言程序設計!! 小學生數學測試軟體系統設計

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

void menu();
void add();
void sub();
void mul();
void div1();

void main()
{
int a;
while(1)
{
menu();
printf("請選擇相應的選項:");
scanf("%d",&a);
switch(a)
{
case 1:
add();
break;
case 2:
sub();
break;
case 3:
mul();
break;
case 4:
div1();
break;
case 5:
exit(0);
break;
default:
break;
}
}

}

void menu()
{
printf("***********************************************\n");
printf("*☆☆☆☆☆☆☆小學數學測試軟體☆☆☆☆☆☆☆☆☆☆ *\n");
printf("***********************************************\n");
printf("*---------請選擇您要進行的操作----------------*\n");
printf("*---- ●1. 加法測試 ----*\n");
printf("*---- ●2. 減法測試 ----*\n");
printf("*---- ●3. 乘法測試 ----*\n");
printf("*---- ●4. 除法測試 ----*\n");
printf("*---- ●5. 退出系統 ----*\n");
printf("***********************************************\n");
}

void add()
{
int a,b,c,d,re=0,sum=0;
system("cls");
while(1)
{
a=rand()%100;
b=rand()%100;
printf("%d+%d=",a,b);
scanf("%d",&c);
if(c==(a+b))
{
re++;
sum++;
printf("回答對了!還要繼續答題嗎?\n 選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",re,sum);
}
else
{
re++;
printf("回答錯了.正確答案為%d.還要繼續答題嗎?\n選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",a/b,re,sum);
}
scanf("%d",&d);
if(d==2)
break;
else
system("cls");

}
system("cls");

}

void sub()
{
int a,b,c,d,re=0,sum=0;
system("cls");
while(1)
{
a=rand()%100;
b=rand()%100;
while((a-b)<0)
{
a=rand()%100;
b=rand()%100;
}
printf("%d-%d=",a,b);
scanf("%d",&c);
if(c==(a-b))
{
re++;
sum++;
printf("回答對了!還要繼續答題嗎?\n 選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",re,sum);
}
else
{
re++;
printf("回答錯了.正確答案為%d.還要繼續答題嗎?\n選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",a/b,re,sum);
}
scanf("%d",&d);
if(d==2)
break;
else
system("cls");

}
system("cls");
}

void mul()
{ int a,b,c,d,re=0,sum=0;
system("cls");
while(1)
{
a=rand()%20;
b=rand()%20;
printf("%d*%d=",a,b);
scanf("%d",&c);
if(c==(a*b))
{
re++;
sum++;
printf("回答對了!還要繼續答題嗎?\n 選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",re,sum);
}
else
{
re++;
printf("回答錯了.正確答案為%d.還要繼續答題嗎?\n選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",a/b,re,sum);
}
scanf("%d",&d);
if(d==2)
break;
else
system("cls");

}
system("cls");

}

void div1()
{
int a,b,c,d,sum=0,re=0;
system("cls");
while(1)
{
a=rand()%100;
b=rand()%100;
if(b==0)
b=rand()%100;
while((a%b)!=0)
{
a=rand()%100;
b=rand()%100;
if(b==0)
b=rand()%100;
}
printf("%d / %d=",a,b);
scanf("%d",&c);
if(c==(a/b))
{
sum++;
re++;
printf("回答對了!還要繼續答題嗎?\n 選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",re,sum);
}
else
{
re++;
printf("回答錯了.正確答案為%d.還要繼續答題嗎?\n選擇的題目數:%d,答對的題目數字:%d\n1.繼續 2.退出",a/b,re,sum);
}
scanf("%d",&d);
if(d==2)
break;
else
system("cls");

}
system("cls");
}

⑨ 用C語言編寫一個簡單的"小學數學測試系統"

include <stdio.h> /* 調用庫函數 */
#include <stdlib.h> /* 調用庫函數 */
int Tha; /* 變數 表示第一個運算數 */
int Thb; /* 第二個運算數 */
int Tresult; /* 正確答案 */
int Qcount; /* 題目的個數 */
int Upnum; /* 升級的分數 */
int Tscore; /* 當前得分 */
char op; /* 運算符號 */

TestTen() /* 出第一個級別題的函數 */
{
int Userda; /* 用戶給出的答案 */
int temp; /* 臨時變數,用於交換兩個變數得值 */

op=random(4)+1; /* 產生一個1-4之間的隨機數,用於表示+ ,- , * , / */

switch(op) /* 判斷運算符是什麼 */
{
case 1: /* 加 的情況 */
{ Tha=random(10); /* 產生一個0-9之間的隨機數 放在第一個運算數 Tha中 */
Thb=random(10); /* 產生一個0-9之間的隨機數 放在第二個運算數 Thb中 */
Tresult=Tha+Thb;break; /* 計算出正確答案 放在 Tresult中 */
}
case 2: /* 減 的情況 */
{ Tha=random(10);
Thb=random(10);
if(Tha<Thb) /* 減不能的負 所以第一個運算數要比第二個大,如果小,則交換兩變數的值 */
{temp=Tha;Tha=Thb;Thb=temp;} /* 交換 */
Tresult=Tha-Thb;break; /* 計算出正確答案 放在 Tresult中 */
}
case 3: /* 乘 的情況 */
{ Tha=random(10);
Thb=random(10);
Tresult=Tha*Thb;break;
}
case 4: /* 除 的情況 */
{do /* 循環 保證可以除盡 */
{ do /* 循環保證 除數不為 0 */
{Tha=random(10);
Thb=random(10);

if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}

}while(Thb==0) ; /* 當除數0 的時候繼續產生新的隨機數 */
}while((Tha%Thb)!=0); /* 當不能整除的時候繼續產生新的隨機數 */
Tresult=Tha/Thb;
break;
}
}

switch(op) /* 根據 op的值決定輸出 問題 */
{
case 1: {printf("\n%d + %d = ",Tha,Thb);break;}
case 2: {printf("\n%d - %d = ",Tha,Thb);break;}
case 3: {printf("\n%d X %d = ",Tha,Thb);break;}
case 4: {printf("\n%d / %d = ",Tha,Thb);}
}

scanf("%d",&Userda); /* 用戶輸入答案 */

while(Userda!=Tresult) /* 判斷答案是否正確 */
{ if(Tscore>=10) /* 不正確減分 */
Tscore=Tscore-10;
printf("\nWrong! Now Your Score: %d",Tscore); /* 輸出錯誤信息和 當前分數 */
/*if(Tscore<Upnum)
return; */
printf("\n Input The Answer Again: "); /* 提示重新輸入 */
scanf("%d",&Userda); /* 用戶輸入答案 */
}

Tscore=Tscore+10; /* 答對了 加分 */
printf("\n Right! Now Your Score: %d",Tscore); /* */
}

TestHun() /*出第二個級別題的函數*/
{
int Userda;
int temp;

op=random(4)+1;

switch (op)
{
case 1:
{ Tha=random(90)+10; /* 產生 10-99 之間的隨機數,即兩位數 */
Thb=random(90)+10;
Tresult=Tha+Thb;break;
}
case 2:
{ Tha=random(90)+10;
Thb=random(90)+10;
if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}
Tresult=Tha-Thb;break;
}
case 3:
{ Tha=random(90)+10;
Thb=random(90)+10;
Tresult=Tha*Thb;break;
}
case 4:
{do
{ do
{Tha=random(90)+10;
Thb=random(90)+10;

if(Tha<Thb)
{temp=Tha;Tha=Thb;Thb=temp;}

}while (Thb==0) ;
}while ((Tha%Thb)!=0);
Tresult=Tha/Thb;
break;
}
}

switch(op)
{
case 1: {printf("\n%d + %d = ",Tha,Thb);break;}
case 2: {printf("\n%d - %d = ",Tha,Thb);break;}
case 3: {printf("\n%d X %d = ",Tha,Thb);break;}
case 4: {printf("\n%d / %d = ",Tha,Thb);}
}

scanf("%d",&Userda);

while(Userda!=Tresult)
{ if(Tscore>=10)
Tscore=Tscore-10;
printf("\nWrong! Now Your Score: %d",Tscore);
if(Tscore<Upnum) /* 如果分數小於設定的分數則直接推出函數 */
return;
printf("\n Input The Answer Again: ");
scanf("%d",&Userda);
}

Tscore=Tscore+10;
printf("\n Right! Now Your Score: %d",Tscore);

}

main()
{
int Leiji=0; /* 變數 , 存儲 累計答題數目 */
randomize(); /* 保證每次運行程序 產生的隨機數序列不相同的語句 */
clrscr(); /* 清屏 : 清除屏幕上上次運行的內容,重新開始運行程序 */
clrscr();
printf("\nTEST START:-------------------------------------");
printf("\n Please Input Question Count: "); /* 提示信息 :輸入問題個數 */
scanf("%d",&Qcount); /* 用戶輸入問題個數 */

do
{printf("\n Please Input UpLevel Score(Times of 10 (Sheng ji de fen shu;)) : ");
/* 提示信息 :輸入升級分數(10的倍數 ) */
scanf("%d",&Upnum); /* 用戶輸入升級分數 */
if(Upnum<10) /* 如果用戶輸入的升級分數<10 */
printf("\n Must > = 10 ! ");
else if(Upnum%10!=0) /* 如果用戶輸入的升級分數不是10的倍數 :即 整除10 不等於0 */
printf("\n Must Some Times of 10!(10 de bei shu!)"); /* */
else break;
}while(1); /* 不滿足條件永遠循環 */

printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------"); printf("\nTest Start:");
printf("\n--------------------------------------------------------");
printf("\n----------------------------------");
printf("\n Lever 1 Start :");

Begin1:

printf("\n----------------------");
printf("\n Question: %d",Leiji+1); /* 輸出 題號 */
TestTen();
Leiji++;

if(Leiji==Qcount) /* 如果做題個數 和 事先設定好的問題個數相同 則結束答題! */
{ printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------\n");
printf("\n Test Over!!!\n");
printf("\n--------------------------------------------------------");
printf("\n Your Final Score: %d",Tscore);
if(Tscore>=Upnum)
printf("\n Your Final Level: LEVEL 2");
else
printf("\n Your Final Level: LEVEL 1");
goto LastLine;
}
if(Tscore<Upnum) /* 分數 小於 升級分數 */
goto Begin1; /* 轉向到 Begin1 繼續作題 */
printf("\n Up To Advance Level!\n Lever2 Start :---------"); /* 達到升級分數 升級到 Level2 */

Begin2:

printf("\n----------------------");
printf("\n Question: %d",Leiji+1);

TestHun();
Leiji++;

if(Leiji==Qcount)
{ printf("\n--------------------------------------------------------");
printf("\n--------------------------------------------------------\n");
printf("\n Test Over!!!\n");
printf("\n--------------------------------------------------------");
printf("\n Your Final Score: %d",Tscore);
if(Tscore>=Upnum)
printf("\n Your Final Level: LEVEL 2");
else
printf("\n Your Final Level: LEVEL 1");
goto LastLine;
}

if(Tscore<Upnum)
{printf("\nDown To Normal Level! Lever1 : -------"); /* 從Level2答題過程中分數小於升級分數 降級到Level 1 繼續答題 */
goto Begin1;}
else
goto Begin2;

LastLine:
printf("\n------------------------------------------------") ;
getchar();getchar(); /* 等待用戶輸入回車結束程序運行 */
}


閱讀全文

與c小學數學測試相關的資料

熱點內容
小學讀書計劃表格模板 瀏覽:342
小學語文四年級感嘆句 瀏覽:243
天通苑中山實驗小學 瀏覽:596
小學三年級語文補習班內容 瀏覽:921
吉安師范附屬小學作文 瀏覽:396
小學教師備課網站 瀏覽:1
私立美男學院 瀏覽:383
小學六年級上冊語文第六單元試卷涼州島 瀏覽:915
小學1年級手gong大全 瀏覽:459
小學生手抄報的圖片大全圖片大全 瀏覽:68
小學健康知識講座 瀏覽:120
小學畢業季適合發老師的句子 瀏覽:451
汕尾鳳山中心小學校長 瀏覽:606
小學生畢業匯演舞蹈 瀏覽:702
小學生抗擊疫情的表演 瀏覽:107
私立華聯大學本科 瀏覽:61
小學三年級作文我想謝謝你400 瀏覽:855
中小學生睡眠問題 瀏覽:174
小學生公共生活守規則教案 瀏覽:313
淮河私立學校 瀏覽:99