C语言程序设计报告日程序主要内容任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。
程序如下:#include<time.h>#include<stdlib.h>#include<stdio.h>int Magic(int x);int Answer();main(){int guess,answer,counter=1;do{printf("%d*%d=",Magic(1),Magic(2));answer=Magic(1)*Magic(2);if(Answer()==answer){printf("Right\n");break;}elseprintf("Wrong!,please try again\n");}while(counter>=1);}int Magic(int m)int x,int y;srand(time(NULL));x=rand()%10+1;y=rand()%10+1;if(m==1) return x;if(m==2) return y;}int Answer(){int n;scanf("%d",&n);return n;}任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。
:程序如下:#include<time.h>#include<stdlib.h>#include<stdio.h>int Magic(int x);int Answer();int Exam();main(){int n;n=Exam();if(n==0) printf("Right\n");else if(n==1) printf("Wrong!You have triedthree times!Test over\n ");}int Magic(int m){int x,int y;srand(time(NULL));x=rand()%10+1;y=rand()%10+1;if(m==1) return x;if(m==2) return y;}int Answer(){int n;scanf("%d",&n);return n;}int Exam(){int guess,answer,counter=1;do{printf("%d*%d=",Magic(1),Magic(2));answer=Magic(1)*Magic(2);counter++;if(Answer()==answer)return 0;else if(counter<=3)printf("Wrong! please try again\n");}while(counter<=3); return 1;任务3:在(1)的基础上,连续做10道乘法运算题,不给机会重做,若学生回答正确,提示“RIGHT”,否则提示“WRONG”,并按每题10分输出总分,再输出正确概率。
程序如下:#include<time.h>#include<stdlib.h>#include<stdio.h>int Magic(int x);int Answer();int Exam();main(){printf("rate=%d%%\n",E xam());}int Magic(int m){int x,int y;srand(time(NULL));x=rand()%10+1;y=rand()%10+1;if(m==1) return x;if(m==2) return y;}int Answer(){int n;scanf("%d",&n);return n;}int Exam(){intanswer,counter=1;int i=0;do{printf("%d*%d=",Magi c(1),Magic(2));answer=Magic(1)*Magi c(2);counter++;if(Answer()==answer){printf("Right!\n");i++;}elseprintf("Wrong!\n");}while(counter<=10);i=i*10;return i;}任务4:在(3)的基础上,随机产生10道四则运算题,运算类型为随机的加减乘除任意一种,不给机会重做,若学生回答正确,提示“RIGHT”,否则提示“WRONG”,并按每题10分输出总分,再输出正确概率。
程序如下:#include<time.h>#include<stdlib.h>#include<stdio.h>int Magic(int x);int Answer();int Exam();main(){printf("rate=%d%%\n" ,Exam()*10);}int Magic(int m){int x,int y;srand(time(NULL));x=rand()%10+1;y=rand()%10+1;if(m==1) return x;if(m==2) return y;}int Answer(){int n;scanf("%d",&n);return n;}int Exam(){intcounter=1,answer,i=0;char a;do{srand(time(NULL)); END:a=rand()%100+1;if(a==43){printf("%d%c%d=",Ma gic(1),a,Magic(2)); answer=Magic(1)+Magic( 2);}else if(a==45){printf("%d%c%d=",Ma gic(1),a,Magic(2)); answer=Magic(1)-Magic( 2);}else if(a==42){ printf("%d%c%d=",M agic(1),a,Magic(2)); answer=Magic(1)*Magic( 2);}else if(a==47){ printf("%d%c%d=",M agic(1),a,Magic(2)); answer=Magic(1)/Magic( 2);}else goto END;counter++;if(Answer()==answer) {printf("Right!\n");i++;}elseprintf("Wrong!\n");}while(counter<=10);return i;任务5:在(4)的基础上,在学生完成10道题后,若正确率低于75%,则重新做10道,知道高于75%. 程序如下:#include<ti me.h>#include<s tdlib.h> #include<s tdio.h>intMagic(intx);intAnswer();intMakeop();voidComment(int x);main(){ int rate;LI:rate=Makeop()*10;printf("rate =%d%%\n ",rate);if(rate<75){ printf("Ri ght rate is toolow,Again! \n");goto LI; }}intMagic(int m){int x,int y;srand(ti me(NULL));x=rand() %10+1;y=rand()% 10+1;if(m==1)return x;if(m==2)return y;}intMakeop(){intcounter=1,answer,i=0,a;char op;do{srand(time(NULL));END:a=rand()%4+1;if(a==1){op=43;answer=Magic(1)+Magic(2);}elseif(a==2){ op=45;answer=Magic(1)-Magic(2);}elseif(a==3){ op=42;answer=Magic(1)*Magic(2);}elseif(a==4){ op=47;answer=Magic(1)/Magic(2);}elsegoto END;printf("%d%c%d=",Magic(1),op,Magic(2));counter++;if(Answer()==answer){Commen(1);i++;}elseCommen(2);}while(counter<=1 0);return i; }int Answer() {int n;scanf("% d",&n);return n;}void Comment(i nt x){int x,y;srand(ti me(NULL));x=rand() %4+1;y=rand()% 4+1;if(x==1){switch(x){case 1:printf("Verygood!\n");break;case 2:printf("Excellent!\n");break;case 3:printf("Nicework!\n");break;case 4:printf("Keep up thegoodwork!\n");break;}}else{switch(y){case 1:printf("No.Please tryagain!\n");break;case 2:printf("Wrong. Tryoncemore!\n");break;case 3:printf("Don't giveup!\n");break;case 4:printf("Notcorrect.Keeptrying!\n");break;}}}任务6:在(5)的基础上,随机产生一个1到4之间的随机数,配合使用switch语句,printf()函数调用,来为学生输入的每一个答案输出不同的评价。