收藏 分销(赏)

c语言编程题及答案4.doc

上传人:二*** 文档编号:4497860 上传时间:2024-09-25 格式:DOC 页数:11 大小:40KB 下载积分:5 金币
下载 相关 举报
c语言编程题及答案4.doc_第1页
第1页 / 共11页
本文档共11页,全文阅读请下载到手机保存,查看更方便
资源描述
C语言编程题与答案(三) 1. 给小学生出加法考试题 编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。 程序1通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。 程序2通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止。 程序3通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! You have tried three times! Test over!”,程序结束。 程序4连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。 程序5通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。 [思考题]如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?请读者修改程序,并上机测试程序运行结果。 2.掷骰子游戏 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。 [思考题] 将游戏规则改为:计算机想一个数作为一个骰子掷出的点数(在用户输入数据之前不显示该点数),用户从键盘输入一个数作为另一个骰子掷出的点数,再计算两点数之和。其余规则一样,然后请读者重新编写该程序。 答案: 1.1。。 #include <stdio.h> /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案一样时,返回1,否则返回0 */ int Add(int a, int b) { int answer; printf("%d+%d=", a, b); scanf("%d", &answer); if (a+b == answer) return 1; else return 0; } /* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无 */ void Print(int flag) { if (flag) printf("Right!\n"); else printf("Not correct!\n"); } main() { int a, b, answer; printf("Input a,b:"); scanf("%d,%d", &a, &b); answer = Add(a, b); Print(answer); } 1.2。。。 #include <stdio.h> /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案一样时,返回1,否则返回0 */ int Add(int a, int b) { int answer; printf("%d+%d=", a, b); scanf("%d", &answer); if (a+b == answer) return 1; else return 0; } /* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无 */ void Print(int flag) { if (flag) printf("Rright!\n"); else printf("Not correct. Try again!\n"); } main() { int a, b, answer; printf("Input a,b:"); scanf("%d,%d", &a, &b); do { answer = Add(a, b); Print(answer); }while (answer == 0); } 1.3。。。 #include <stdio.h> /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案一样时,返回1,否则返回0 */ int Add(int a, int b) { int answer; printf("%d+%d=", a, b); scanf("%d", &answer); if (a+b == answer) return 1; else return 0; } /* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 整型变量chance,表示同一道题已经做了几次还没有做对 函数返回值:无 */ void Print(int flag, int chance) { if (flag) printf("Right!\n"); else if (chance < 3) printf("Not correct. Try again!\n"); else printf("Not correct. You have tried three times!\nTest over!\n"); } main() { int a, b, answer, chance; printf("Input a,b:"); scanf("%d,%d", &a, &b); chance = 0; do { answer = Add(a, b); chance++; Print(answer, chance); }while ((answer == 0) && (chance < 3)); } 1.4。。。 #include <stdio.h> #include <stdlib.h> #include <time.h> /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案一样时,返回1,否则返回0 */ int Add(int a, int b) { int answer; printf("%d+%d=", a, b); scanf("%d", &answer); if (a+b == answer) return 1; else return 0; } /* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无 */ void Print(int flag) { if (flag) printf("Rright!\n"); else printf("Not correct!\n"); } main() { int a, b, answer, error, score, i; srand(time(NULL)); error = 0; score = 0; for (i=0; i<10; i++) { a = rand()%10 + 1; b = rand()%10 + 1; answer = Add(a, b); Print(answer); if (answer == 1) score = score + 10; else error++; } printf("score = %d, error numbers = %d\n", score, error); } 1.5。。。 #include <stdio.h> #include <stdlib.h> #include <time.h> /* 函数功能:对两整型数进行加、减、乘、除四则运算 如果用户输入的答案与结果一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表参加四则运算的两个操作数 整型变量op,代表运算类型, 当op值为1,2,3,4时,分别执行加、减、乘、整除运算 函数返回值:当用户输入的答案与结果一样时,返回1,否则返回0 */ int pute(int a, int b, int op) { int answer, result; switch (op) { case 1: printf("%d + %d=", a, b); result = a + b; break; case 2: printf("%d - %d=", a, b); result = a - b; break; case 3: printf("%d * %d=", a, b); result = a * b; break; case 4: if (b != 0) { printf("%d / %d=", a, b); result = a / b; /*注意这里是整数除法运算,结果为整型*/ } else { printf("Division by zero!\n"); } break; default: printf("Unknown operator!\n"); break; } scanf("%d", &answer); if (result == answer) return 1; else return 0; } /* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无 */ void Print(int flag) { if (flag) printf("Rright!\n"); else printf("Not correct!\n"); } main() { int a, b, answer, error, score, i, op; srand(time(NULL)); error = 0; score = 0; for (i=0; i<10; i++) { a = rand()%10 + 1; b = rand()%10 + 1; op = rand()%4 + 1; answer = pute(a, b, op); Print(answer); if (answer == 1) score = score + 10; else error++; } printf("score = %d, error numbers = %d\n", score, error); } 2. 。。。 #include <stdio.h> #include <stdlib.h> #include <time.h> int rollDice(void); main() { enum Status {CONTINUE, WON, LOST}; int sum, myPoint, count = 0; enum Status gameStatus; srand(time(NULL)); sum = rollDice(); switch (sum) { case 7: case 11: gameStatus = WON; break; case 2: case 3: case 12: gameStatus = LOST; break; default: gameStatus = CONTINUE; myPoint = sum; printf("Point is %d\n", myPoint); break; } while (gameStatus == CONTINUE) { sum = rollDice(); count ++; if (sum == myPoint) { gameStatus = WON; } else if (count == 7) { gameStatus = LOST; } } if (gameStatus == WON) { printf("Player wins\n"); } else { printf("Player loses\n"); } } int rollDice(void) { int die1, die2, workSum; die1 = 1 + rand()%6; die2 = 1 + rand()%6; workSum = die1 + die2; printf("Player rolled %d + %d = %d\n", die1, die2, workSum); return workSum; } 9 / 11
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服