當前位置:首頁 » 編程語言 » 小學生測試c語言

小學生測試c語言

發布時間: 2022-05-03 07:22:46

1. 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;
}

2. C語言 編程:給小學生出加法測試

#include <stdio.h>
int main(){
double a,b,c;
scanf("%f%f", &a, &b);
scanf("%f", &c);
if(c<a+b+0.00000001 && c>a+b-0.000000001){
printf("Right!\n"); return 0;
}
printf("No correct!Try again!\n");
scanf("%f", &c);
if(c<a+b+0.00000001 && c>a+b-0.000000001){
printf("Right!\n"); return 0;}
printf("No correct!Try again!\n");
scanf("%f", &c);
if(c<a+b+0.00000001 && c>a+b-0.000000001){
printf("Right!\n"); return 0;}
printf("No correct!Try again!\n");
return 0;
}

3. C語言程序設計:小學生測驗

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

void main()
{
int num=0,err=0; /* 答題數,錯誤數 */

while(1)
{
int a=0,b=0,d=0,c=0,i=0,result;
char sf[2]={'+','-'};
/* 出題 */
while(1)
{
a=rand()%51;
b=rand()%51;
d=rand()%2;
if(d==0)c=a+b;
else c=a-b;
if(c>=0 && c<=50)break;
}
printf("%d %c %d = \n",a,sf[d],b);
/* 回答 */
printf("輸入計算結果:\n");
while(1)
{
scanf("%d",&result);
i++;
if(result==c)
{
printf("回答正確!\n");
break;
}
else if(i<3)
{
printf("錯誤,請重新回答:\n");
}
else
{
err++;
break;
}
}
num++;
if(num==10)break;
}
printf("\n得分:%d 正確率:%d%\n",100-err*10,100-err*10);
getch();
}

4. 跪求用C語言編一個小學生數學測試軟體的程序~!!

#include<stdio.h>
#include<stdlib.h>
void main()
{
void fuhao(int x) ;
int a,b,t,p,score,flag; score=0;
loop :printf("開始進入測試!\n");
for(int i=0;i<10;i++)
{
printf("第%d題:\n",i+1);
a=rand()%10;
b=rand()%10;
if(a<b)
{t=a;a=b;b=t;}
flag=rand()%2;
printf("%d",a);
fuhao(flag);
printf("%d=\n",b);
scanf("%d",&t);
if(flag==0)
{
if(t==a+b)
{printf("真棒了! 答對了!\n");score=score+10;}
if(t!=a+b)printf("答錯了!正確答案是:%d\n",a+b);
}
if(flag==1)
{
if(t==a-b)
{printf("真棒了! 答對了!\n");score=score+10;}

if(t!=a-b)printf("答錯了!正確答案是:%d\n",a-b);

}

}
printf("最後得分:%d\n",score);
printf("是否繼續?1.繼續2.退出\n");
scanf("%d",&t);
if(t==1)goto loop;
else printf("歡迎使用!再見!");
}
void fuhao(int x)
{
if(x==0) printf("+");
if(x==1) printf("-");

}
界面沒有仔細處理,應該還能看的過去吧

5. c語言小學生測試答題部分怎麼寫:電腦隨機出10道題,每題10分,給3次機會,第一次程序結束時顯示學生得分

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a,b,answer,right=0, wrong=0;
int i=1;
srand(time(NULL));
while(i<=10)
{
a=rand()%100+1;
b=rand()%100+1;
printf("%d+%d=",a,b);
scanf("%d",&answer);
if(answer==a+b)
{
printf("正確\n");
++right;
}
else
{
printf("錯誤\n");
++wrong;
}
i++;
if(wrong==3)
break;
}
printf("你答對%d題得到%d分,答錯%d題\n",right,right*10,wrong);
}

6. 利用c語言編寫一個簡單的小學生測驗系統,功能要求如下。

#include "stdio.h"
#include "iostream"
#include "windows.h"
#define MAX 1000
char problems[MAX][100];
int answers[MAX];
bool flag[MAX] = {false};
int score;
int n;
void init()
{
score = 0;
FILE *fp = fopen("D:\\題庫.txt","r");//這里修改路徑
fscanf(fp,"%d",&n);
for(int i = 0;i < n;i++)
fscanf(fp,"%s%d",problems[i],&answers[i]);
fclose(fp);
}
void solve(int i,int k)
{
int ans = 0;
printf("第%d題(現在總分是%d分):\n",i,score);
for(int j = 0;j < 3;j++)
{
printf("%s=",problems[k]);
scanf("%d",&ans);
if(ans == answers[k])
{
if(j == 0)
score += 10;
else if(j == 1)
score += 7;
else
score += 5;
if(i != 10)
printf("正確!,下一題......\n");
return;
}
printf("- -,錯誤......\n");
}
}
void start()
{
int count = 0,t;
while(count != 10)
{
t = rand()%n;
if(flag[t])
continue;
flag[t] = true;
solve(count+1,t);
count++;
}
if(score < 60)
printf("TRY AGAIN\n");
else if(score < 70)
printf("PASS\n");
else if(score < 80)
printf("OK\n");
else if(score < 90)
printf("GOOD\n");
else
printf("SMART\n");
}
int main()
{
srand(GetTickCount());
init();
start();
system("pause");
}

題庫.txt
11
1+2 3
1+3 4
1+4 5
1+5 6
7-1 6
7-2 5
7-3 4
11-3 8
11-4 7
11-5 6
11-6 5

7. 用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(); /* 等待用戶輸入回車結束程序運行 */
}


8. c語言小學生測驗

#include
#include
#include
int main(){
srand(time(NULL));
int a,b,c,score[10],trueValue,sum=0;
for(int i=0;i<10;i++){
for(a=rand()%51,b=rand()%51;a+b>50 || a+b50 || a-b<0; a=rand()%51,b=rand()%51){;}
c=rand()%3;
for(int j=0;j<3;j++){
if(c==1){
printf("%d:%d+%d=",i+1,a,b);
trueValue=a+b;
scanf("%d",&score[i]);
if(score[i]!=trueValue){
printf("答案錯誤,請重新輸入.\n");
score[i]=0;
}
else{
if(j==0){
score[i]=10;
}
else if(j==1){
score[i]=7;
}
else{
score[i]=5;
}
break;
}
}
else{
printf("%d:%d-%d=",i+1,a,b);
trueValue=a-b;
scanf("%d",&score[i]);
if(score[i]!=trueValue){
printf("答案錯誤,請重新輸入.\n");
score[i]=0;
}
else{
if(j==0){
score[i]=10;
}
else if(j==1){
score[i]=7;
}
else{
score[i]=5;
}
break;
}

}
}
if(score[i]==0){
printf("正確答案是:%d\n",trueValue);
}
sum=sum+score[i];
}
printf("你的成績是:%d\n",sum);
if(sum>90){
printf("SMART.\n");
}
else if(sum>=80){
printf("GOOD.\n");
}
else if(sum>=70){
printf("OK.\n");
}
else if(sum>=60){
printf("PASS.\n");
}
else{
printf("TRYAGAIN\n");
}
return 0;
}

9. 用C語言製作一個小學算術運算測試

能根據輸入題數出題
什麼意思
有個題庫?
界面要求:美觀簡潔
什麼標准
作者滿意就可?
實現起來應該不難
晚上9點以後我可以幫你做
好辦
我幫你寫吧
能否多給點分呢
(*^__^*)
嘻嘻……
晚上10點前給你答案
花了一個中午給你編的,還增加了計算分數功能
界面沒有做
需要的話再聯系
#include
#include
#include
int
getanum(int
num)
{
int
a;
srand(num*num+time(0));
a=(rand()+num)%10;//產生10以內的隨機數
return
a;
}
void
main()
{
int
i,num,a,b,c,op,error;
error
=
0;//錯誤數置零
num
=
100;//使得下面的while循環成立即可
while(!(num>0&&num<10))//只接受10以內的題目數
{
printf("please
input
the
sum
of
exam
:");
scanf("%d",&num);
}
for(i=0;i
10)//超過10重新來
{
i--;
break;
}
else
{
printf("%d
:
%d
+
%d
=
",i+1,a,b);//出題
scanf("%d",&c);//取輸入的結果
if(c
!=
a+b)//答案錯誤
{
printf("error!\n");
error++;
}
else//正確答案鼓勵一下
{
printf("good!\n");
}
}
break;
case
1://-
if(b>a)//保證a>b
使得不出現負數
{
a=a+b;
b=a-b;
a=a-b;
}
printf("%d
:
%d
-
%d
=
",i+1,a,b);//出題
scanf("%d",&c);//取結果
if(c
!=
a-b)
{
printf("error!\n");
error++;//錯誤自加
}
else
{
printf("good!\n");
}
break;
default:
break;
}
}
printf("%d
errors!\n",error);//輸出錯誤數
printf("your
mark
is
%d
.\n",(num-error)*100/num);//所得分數
}

10. 急求:用C語言編寫小學生數學測試軟體

//vc 6.0調試通過
#include<stdio.h>
#include<stdlib.h>
#include <time.h>

int add(int x,int y)
{return x+y;}

int sub(int x,int y)
{return x-y;}

int mul(int x,int y)
{return x*y;}

void fun(char f)
{
int n,x,y,z,t,result,sum=0;
srand((unsigned)time(NULL));
printf("請選擇答題的個數:\n");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
x=rand()%10;
y=rand()%10;
if(x<y && f=='-')
{t=x;x=y;y=t;}
if(f=='*')
{while(!x){x=rand()%10;}
while(!y){y=rand()%10;}}
printf("%d %c %d =",x,f,y);
scanf("%d",&z);
switch(f)
{
case '+':
result=add(x,y);break;
case '-':
result=sub(x,y);break;
case '*':
result=mul(x,y);break;
}
if(result==z)
{printf("正確!\n");sum++;}
else
printf("錯誤!應該是%d\n",result);
}
printf("\n正確率為%f%%\n/////////////////////////////////\n\n",100.0*sum/n);
fflush(stdin);
}

void main()
{
printf("/////////////////////////////////\n");
printf(" 小學生數學測試軟體\n");
printf("//////////////////////////////////\n\n");
char ch;
while(1)
{
printf("請選擇題型--加(+),減(-),乘(*),退出(0): ");
ch=getchar();
if(ch=='+'||ch=='-'||ch=='*')
fun(ch);
else if(ch=='0')
exit(0);
else
printf("錯誤!\n");
}
}

熱點內容
微信qq音樂緩存 發布:2025-05-14 16:16:16 瀏覽:468
c語言回收內存 發布:2025-05-14 16:16:08 瀏覽:143
2021國產安卓頂級旗艦買哪個 發布:2025-05-14 16:15:36 瀏覽:300
linux自學視頻 發布:2025-05-14 16:14:49 瀏覽:255
我的世界伺服器崩了重啟 發布:2025-05-14 16:09:37 瀏覽:44
android深拷貝 發布:2025-05-14 16:09:35 瀏覽:153
cf電腦版轉伺服器神器還在嗎 發布:2025-05-14 16:09:02 瀏覽:211
百度文庫伺服器如何搭建 發布:2025-05-14 16:09:00 瀏覽:248
安卓微信刪除的好友怎麼找回 發布:2025-05-14 16:08:56 瀏覽:706
iphone的訪問限制密碼忘記了怎麼辦 發布:2025-05-14 16:08:56 瀏覽:184