实验6 函数与编译预处理(参考答案) 下载本文

编程实例6-8:multifac.c参考答案

[实验任务四]:

程序1参考答案:

#include

/* 函数功能: 计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0 函数参数: 整型变量a和b,分别代表被加数和加数

函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */

int Add(int a, int b) {

int answer;

printf(\ scanf(\ if (a+b == answer) return 1; else

return 0; }

/* 函数功能: 打印结果正确与否的信息。

函数参数: 整型变量flag,标志结果正确与否 函数返回值:无 */

void Print(int flag) {

if (flag)

printf(\ else

printf(\

第 6 页 共 12 页

}

main() /*主函数*/ {

int a, b, answer;

printf(\ scanf(\ answer = Add(a, b); Print(answer); }

程序两次测试的运行结果分别如下:

①Input a,b:1,2↙ 1+2=3↙ Right!

②Input a,b:1,2↙ 1+2=4↙

Not correct!

程序2参考答案:

#include

/* 函数功能: 计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0 函数参数: 整型变量a和b,分别代表被加数和加数

函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */

int Add(int a, int b) {

int answer;

printf(\ scanf(\ if (a+b == answer) return 1; else

return 0; }

/* 函数功能: 打印结果正确与否的信息。

函数参数: 整型变量flag,标志结果正确与否 函数返回值:无 */

void Print(int flag) {

if (flag)

printf(\ else

printf(\}

main() /*主函数*/ {

int a, b, answer;

printf(\ scanf(\ do {

第 7 页 共 12 页

answer = Add(a, b); Print(answer);

}while (answer == 0); }

程序运行结果如下:

Input a,b:1,2↙ 1+2=4↙

Not correct. Try again! 1+2=5↙

Not correct. Try again! 1+2=3↙

Rright! 程序3参考答案:

#include

/* 函数功能: 计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0 函数参数: 整型变量a和b,分别代表被加数和加数

函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */

int Add(int a, int b) {

int answer;

printf(\ scanf(\ if (a+b == answer) return 1; else

return 0; }

/* 函数功能: 打印结果正确与否的信息。

函数参数: 整型变量flag,标志结果正确与否

整型变量chance,表示同一道题已经做了几次还没有作对 函数返回值:无 */

void Print(int flag, int chance) {

if (flag)

printf(\ else if (chance < 3)

printf(\ else

printf(\correct. You have tried three times!\\nTest over!\\n\}

main() /*主函数*/ {

int a, b, answer, chance;

printf(\ scanf(\ chance = 0; do {

answer = Add(a, b); chance++;

第 8 页 共 12 页

Print(answer, chance); }while ((answer == 0) && (chance < 3)); }

程序两次测试的运行结果分别如下:

①Input a,b:1,2↙ 1+2=4↙

Not correct. Try again! 1+2=5↙

Not correct. Try again! 1+2=2↙

Not correct. You have tried three times! Test over! ②Input a,b:1,2↙ 1+2=4↙

Not correct. Try again! 1+2=3↙

Right! 程序4参考答案:

#include #include #include

/* 函数功能: 计算两整型数之和,如果与用户输入的答案相同,则返回1,否则返回0 函数参数: 整型变量a和b,分别代表被加数和加数

函数返回值:当a加b的结果与用户输入的答案相同时,返回1,否则返回0 */

int Add(int a, int b) {

int answer;

printf(\ scanf(\ if (a+b == answer) return 1; else

return 0; }

/* 函数功能: 打印结果正确与否的信息。

函数参数: 整型变量flag,标志结果正确与否 函数返回值:无 */

void Print(int flag) {

if (flag)

printf(\ else

printf(\ }

main()/*主函数*/ {

int a, b, answer, error, score, i;

srand(time(NULL));

第 9 页 共 12 页

}

error = 0; score = 0;

for (i=0; i<10; i++) {

a = rand() + 1; b = rand() + 1; answer = Add(a, b); Print(answer); if (answer == 1)

score = score + 10; else

error++; }

printf(\

程序运行结果如下:

10+1=11↙ Rright! 5+9=14↙ Rright! 4+6=10↙ Rright! 7+2=9↙ Rright! 3+10=13↙ Rright! 1+1=2↙ Rright! 5+2=7↙ Rright! 3+7=10↙ Rright! 4+7=10↙ Not correct! 5+6=11↙ Rright!

score = 90, error numbers = 1 程序5参考答案:

#include #include #include

/* 函数功能:对两整型数进行加减乘除四则运算,

如果用户输入的答案与结果相同,则返回1,否则0

函数参数: 整型变量a和b,分别代表参加四则运算的两个操作数 整型变量op,代表运算类型,

当op值为1、2、3、4时,分别执行加、减、乘、整除运算 函数返回值:当用户输入的答案与结果相同时,返回1,否则返回0 */

int Compute(int a, int b, int op) {

第 10 页 共 12 页