1、C语言编程题与答案(三)1. 给小学生出加法考试题编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。程序1通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,程序结束。程序2通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止。程序3通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correc
2、t! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct! You have tried three times! Test over!”,程序结束。程序4连续做10道题,通过计算机随机产生两个110之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。程序5通过计算机随机产生10道四则运算题,两个操作数为110之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,
3、否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。思考题如果要求将整数之间的四则运算题改为实数之间的四则运算题,那么程序该如何修改呢?请读者修改程序,并上机测试程序运行结果。2掷骰子游戏编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时
4、算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。思考题 将游戏规则改为:计算机想一个数作为一个骰子掷出的点数(在用户输入数据之前不显示该点数),用户从键盘输入一个数作为另一个骰子掷出的点数,再计算两点数之和。其余规则一样,然后请读者重新编写该程序。答案:1.1。#include /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案一样时,返回1,否则返回0*/int Add(int a, int b)int answer;printf(%d+%d=, a, b);sc
5、anf(%d, &answer);if (a+b = answer)return 1;elsereturn 0;/* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无*/void Print(int flag)if (flag)printf(Right!n); elseprintf(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 /* 函数功能:计算两
6、整型数之和,如果与用户输入的答案一样,则返回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;elsereturn 0;/* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无*/void Print(int flag)if (flag)printf(Rright!n);e
7、lseprintf(Not correct. Try again!n);main()int a, b, answer;printf(Input a,b:);scanf(%d,%d, &a, &b);doanswer = Add(a, b);Print(answer);while (answer = 0);1.3。#include /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当a加b的结果与用户输入的答案一样时,返回1,否则返回0*/int Add(int a, int b)int answer;p
8、rintf(%d+%d=, a, b);scanf(%d, &answer);if (a+b = answer)return 1;elsereturn 0;/* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 整型变量chance,表示同一道题已经做了几次还没有做对 函数返回值:无*/void Print(int flag, int chance)if (flag)printf(Right!n);else if (chance 3)printf(Not correct. Try again!n);elseprintf(Not correct. You have
9、tried three times!nTest over!n);main()int a, b, answer, chance;printf(Input a,b:);scanf(%d,%d, &a, &b);chance = 0;doanswer = Add(a, b);chance+;Print(answer, chance);while (answer = 0) & (chance 3);1.4。#include #include #include /* 函数功能:计算两整型数之和,如果与用户输入的答案一样,则返回1,否则返回0 函数参数:整型变量a和b,分别代表被加数和加数 函数返回值:当
10、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;elsereturn 0;/* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无*/void Print(int flag)if (flag)printf(Rright!n);elseprintf(Not correct!n);main()int a, b, answer, error, score
11、, i;srand(time(NULL);error = 0;score = 0;for (i=0; i10; i+)a = rand()%10 + 1;b = rand()%10 + 1;answer = Add(a, b);Print(answer);if (answer = 1)score = score + 10;elseerror+;printf(score = %d, error numbers = %dn, score, error);1.5。#include #include #include /* 函数功能:对两整型数进行加、减、乘、除四则运算 如果用户输入的答案与结果一样,
12、则返回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=,
13、 a, b);result = a * b;break;case 4:if (b != 0)printf(%d / %d=, a, b);result = a / b;/*注意这里是整数除法运算,结果为整型*/elseprintf(Division by zero!n);break;default:printf(Unknown operator!n);break;scanf(%d, &answer);if (result = answer)return 1;elsereturn 0;/* 函数功能:打印结果正确与否的信息 函数参数:整型变量flag,标志结果正确与否 函数返回值:无*/void
14、 Print(int flag)if (flag)printf(Rright!n);elseprintf(Not correct!n);main()int a, b, answer, error, score, i, op;srand(time(NULL);error = 0;score = 0;for (i=0; i10; 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;elseerr
15、or+;printf(score = %d, error numbers = %dn, score, error);2. 。#include #include #include 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
16、12:gameStatus = LOST;break;default:gameStatus = CONTINUE;myPoint = sum;printf(Point is %dn, myPoint);break;while (gameStatus = CONTINUE)sum = rollDice();count +;if (sum = myPoint)gameStatus = WON;else if (count = 7) gameStatus = LOST; if (gameStatus = WON)printf(Player winsn);elseprintf(Player losesn);int rollDice(void)int die1, die2, workSum;die1 = 1 + rand()%6;die2 = 1 + rand()%6;workSum = die1 + die2;printf(Player rolled %d + %d = %dn, die1, die2, workSum);return workSum;9 / 11
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100