C语言程序设计报告日期:2222年11月2日程序主要内容任务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 tried three 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",Exam()); }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 answer,counter=1;int i=0;do{printf("%d*%d=",Magic(1),Magic(2) );answer=Magic(1)*Magic(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(){int counter=1,answer,i=0;char a;do{srand(time(NULL));END:a=rand()%100+1;if(a==43){printf("%d%c%d=",Magic(1),a,Magic(2));answer=Magic(1)+Magic(2);}else if(a==45){printf("%d%c%d=",Magic(1),a,Magic(2));answer=Magic(1)-Magic(2);}else if(a==42){ printf("%d%c%d=",Magic(1),a,Magic(2));answer=Magic(1)*Magic(2);}else if(a==47){ printf("%d%c%d=",Magic(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<time.h>#include<stdlib.h>#include<stdio.h>int Magic(int x);int Answer();int Makeop();void Comment(int x); main(){ int rate;LI:rate=Makeop()*1 0;printf("rate=%d%%\n",ra te);if(rate<75){ printf("Right rate is too low,Again!\n");goto LI; }}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 Makeop() {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);}else if(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);}else gotoEND;printf("%d%c%d=",Magic(1),op,Magic(2));counter++;if(Answer()==answer){Commen(1);i++;}elseCommen(2);}while(counter<=10);return i;}int Answer(){int n;scanf("%d",&n);return n;}void Comment(int x){int x,y;srand(time(NULL));x=rand()%4+1;y=rand()%4+1;if(x==1){switch(x){case1:printf("Very good!\n");break;case2:printf("Excellent!\n");break;case3:printf("Nicework!\n");break;case 4:printf("Keep up the good work!\n");break;}}else{switch(y){case 1:printf("No. Please tryagain!\n");break;case 2:printf("Wrong. Tryonce more!\n");break;case 3:printf("Don't giveup!\n");break;case 4:printf("Not correct.Keep trying!\n");break;}}}任务6:在(5)的基础上,随机产生一个1到4之间的随机数,配合使用switch语句,printf()函数调用,来为学生输入的每一个答案输出不同的评价。