《(精品)实验教学课件.ppt》由会员分享,可在线阅读,更多相关《(精品)实验教学课件.ppt(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、哈尔滨工业大学计算机科学与技术学院哈尔滨工业大学计算机科学与技术学院苏小红苏小红2023/1/9C语言大学实用教程课件 制作人苏小红2 主教材:主教材:主教材:主教材:苏小红等,苏小红等,苏小红等,苏小红等,C C C C语言大学实用教程语言大学实用教程语言大学实用教程语言大学实用教程,电子工业出版电子工业出版电子工业出版电子工业出版社,社,社,社,2004200420042004,8,8,8,8 苏小红等,苏小红等,苏小红等,苏小红等,C C C C语言大学实用教程(第语言大学实用教程(第语言大学实用教程(第语言大学实用教程(第2 2 2 2版)版)版)版),电子电子电子电子工业出版社,工业
2、出版社,工业出版社,工业出版社,2002002002007,27,27,27,2 实验教材:实验教材:实验教材:实验教材:苏小红等,苏小红等,苏小红等,苏小红等,C C C C语言大学实用教程习题与实验指导语言大学实用教程习题与实验指导语言大学实用教程习题与实验指导语言大学实用教程习题与实验指导,电子工业出版社,电子工业出版社,电子工业出版社,电子工业出版社,2004200420042004,8,8,8,8 苏小红等,苏小红等,苏小红等,苏小红等,C C C C语言大学实用教程学习指导语言大学实用教程学习指导语言大学实用教程学习指导语言大学实用教程学习指导,电子工电子工电子工电子工业出版社,业
3、出版社,业出版社,业出版社,2002002002007,47,47,47,42023/1/9C语言大学实用教程课件 制作人苏小红3实验内容实验内容实验内容实验内容2023/1/9C语言大学实用教程课件 制作人苏小红4实验实验实验实验1 1:熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 问题问题问题问题1 1:要使下面程序的输出语句在屏幕上显示:要使下面程序的输出语句在屏幕上显示:要使下面程序的输出语句在屏幕上显示:要使下面程序的输出
4、语句在屏幕上显示1,2,341,2,34,则从键盘输入的数据格式应为以下备选答案,则从键盘输入的数据格式应为以下备选答案,则从键盘输入的数据格式应为以下备选答案,则从键盘输入的数据格式应为以下备选答案中的哪一个?中的哪一个?中的哪一个?中的哪一个?#include#include main()main()char a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);A)1 2 34 A)1 2 34 B)1,2
5、,34 B)1,2,34 C)1,2,34 C)1,2,34 D)12 34D)12 342023/1/9C语言大学实用教程课件 制作人苏小红5实验实验实验实验1 1:熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 问题问题问题问题2 2:与上面程序的键盘输入相同的情况下,要:与上面程序的键盘输入相同的情况下,要:与上面程序的键盘输入相同的情况下,要:与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示使上面程序的输出
6、语句在屏幕上显示使上面程序的输出语句在屏幕上显示使上面程序的输出语句在屏幕上显示1 2 341 2 34,则应,则应,则应,则应修改程序中的哪条语句?怎样修改?修改程序中的哪条语句?怎样修改?修改程序中的哪条语句?怎样修改?修改程序中的哪条语句?怎样修改?#include#include main()main()char a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);2023/1/9C语言大学实用教程课件
7、 制作人苏小红6 问题问题问题问题3 3:要使上面程序的键盘输入数据格式为:要使上面程序的键盘输入数据格式为:要使上面程序的键盘输入数据格式为:要使上面程序的键盘输入数据格式为1,2,341,2,34,输出语句在屏幕上显示的结果也为,输出语句在屏幕上显示的结果也为,输出语句在屏幕上显示的结果也为,输出语句在屏幕上显示的结果也为1,2,341,2,34,则应,则应,则应,则应修改程序中的哪条语句?怎样修改?修改程序中的哪条语句?怎样修改?修改程序中的哪条语句?怎样修改?修改程序中的哪条语句?怎样修改?#include#include main()main()char a,b;char a,b;i
8、nt c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);实验实验实验实验1 1:熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 2023/1/9C语言大学实用教程课件 制作人苏小红7 问题问题问题问题4 4:要使上面程序的键盘输入数据格式为:要使上面程序的键盘输入数据格式为:要使上面
9、程序的键盘输入数据格式为:要使上面程序的键盘输入数据格式为1,2,341,2,34,而输出语句在屏幕上显示的结果为,而输出语句在屏幕上显示的结果为,而输出语句在屏幕上显示的结果为,而输出语句在屏幕上显示的结果为 1,2,341,2,34,则应修改程序中的哪条语句?怎,则应修改程序中的哪条语句?怎,则应修改程序中的哪条语句?怎,则应修改程序中的哪条语句?怎样修改?样修改?样修改?样修改?提示:利用转义字符输出字符单引号字符。提示:利用转义字符输出字符单引号字符。提示:利用转义字符输出字符单引号字符。提示:利用转义字符输出字符单引号字符。#include#include main()main()c
10、har a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);实验实验实验实验1 1:熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 2023/1/9C语言大学实用教程课件 制作人苏小红8 问题问题问题问题5 5:要使上面程序的键盘输入无论用下面:要使上
11、面程序的键盘输入无论用下面:要使上面程序的键盘输入无论用下面:要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果哪种格式输入数据,程序在屏幕上的输出结果哪种格式输入数据,程序在屏幕上的输出结果哪种格式输入数据,程序在屏幕上的输出结果都为都为都为都为 1,2,341,2,34,则程序应修改程序中的,则程序应修改程序中的,则程序应修改程序中的,则程序应修改程序中的哪条语句?怎样修改?哪条语句?怎样修改?哪条语句?怎样修改?哪条语句?怎样修改?第一种输入方式:第一种输入方式:第一种输入方式:第一种输入方式:1,2,341,2,34 (以逗号作为分隔符)(以逗号作为分隔符)(以逗
12、号作为分隔符)(以逗号作为分隔符)第二种输入方式:第二种输入方式:第二种输入方式:第二种输入方式:1 2 341 2 34 (以空格作为分隔符)(以空格作为分隔符)(以空格作为分隔符)(以空格作为分隔符)第三种输入方式:第三种输入方式:第三种输入方式:第三种输入方式:1 2 341 2 34 (以(以(以(以TabTab键作为分隔键作为分隔键作为分隔键作为分隔符)符)符)符)第四种输入方式:第四种输入方式:第四种输入方式:第四种输入方式:1 1 2 2 34 34 (以回车符作为分隔符)(以回车符作为分隔符)(以回车符作为分隔符)(以回车符作为分隔符)实验实验实验实验1 1:熟悉上机环境和顺序
13、结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 2023/1/9C语言大学实用教程课件 制作人苏小红9实验实验实验实验1 1:熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程熟悉上机环境和顺序结构编程练习练习练习练习计算定期存款本利之和计算定期存款本利之和计算定期存款本利之和计算定期存款本利之和 设银行定期存款的年利率设银行定期存款的年利率设银行定期存款的年利率设银行定期存款的年利率raterate为为为为2.25%2.2
14、5%,并已,并已,并已,并已知存款期为知存款期为知存款期为知存款期为n n年,存款本金为年,存款本金为年,存款本金为年,存款本金为capitalcapital元,试编元,试编元,试编元,试编程计算程计算程计算程计算n n年后的本利之和年后的本利之和年后的本利之和年后的本利之和depositdeposit。要求定期存款的年利率要求定期存款的年利率要求定期存款的年利率要求定期存款的年利率raterate、存款期、存款期、存款期、存款期n n和存款本和存款本和存款本和存款本金金金金capitalcapital均由键盘输入。均由键盘输入。均由键盘输入。均由键盘输入。2023/1/9C语言大学实用教程课
15、件 制作人苏小红10实验实验实验实验2 2:选择结构编程练习选择结构编程练习选择结构编程练习选择结构编程练习身高预测身高预测身高预测身高预测 每个做父母的都关心自己孩子成人后的身高,据有关每个做父母的都关心自己孩子成人后的身高,据有关每个做父母的都关心自己孩子成人后的身高,据有关每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后生理卫生知识与数理统计分析表明,影响小孩成人后生理卫生知识与数理统计分析表明,影响小孩成人后生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小身高的因素有遗传、饮食习惯与坚持体育锻炼等。
16、小身高的因素有遗传、饮食习惯与坚持体育锻炼等。小身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。孩成人后身高与其父母身高和自身性别密切相关。孩成人后身高与其父母身高和自身性别密切相关。孩成人后身高与其父母身高和自身性别密切相关。设设设设faHeightfaHeight为其父身高,为其父身高,为其父身高,为其父身高,moHeightmoHeight为其母身高,身高为其母身高,身高为其母身高,身高为其母身高,身高预测公式为:预测公式为:预测公式为:预测公式为:男性成人时身高男性成人时身高男性成人时身高男性成人时身高 =(=(faHeightfaHeight
17、+moHeightmoHeight)*0.54(cm)*0.54(cm)女性成人时身高女性成人时身高女性成人时身高女性成人时身高 =(=(faHeightfaHeight*0.923+*0.923+moHeightmoHeight)/2(cm)/2(cm)此外,如果喜爱体育锻炼,那么可增加身高此外,如果喜爱体育锻炼,那么可增加身高此外,如果喜爱体育锻炼,那么可增加身高此外,如果喜爱体育锻炼,那么可增加身高2%2%,如,如,如,如果有良好的卫生饮食习惯,那么可增加身高果有良好的卫生饮食习惯,那么可增加身高果有良好的卫生饮食习惯,那么可增加身高果有良好的卫生饮食习惯,那么可增加身高1.5%1.5%
18、。2023/1/9C语言大学实用教程课件 制作人苏小红11实验实验实验实验2 2:选择结构编程练习选择结构编程练习选择结构编程练习选择结构编程练习身高预测身高预测身高预测身高预测 编程从键盘输入你的性别(用字符型变量编程从键盘输入你的性别(用字符型变量编程从键盘输入你的性别(用字符型变量编程从键盘输入你的性别(用字符型变量sexsex存储,存储,存储,存储,输入字符输入字符输入字符输入字符F F表示女性,输入字符表示女性,输入字符表示女性,输入字符表示女性,输入字符MM表示男性)、父母表示男性)、父母表示男性)、父母表示男性)、父母身高(用实型变量存储,身高(用实型变量存储,身高(用实型变量存
19、储,身高(用实型变量存储,faHeightfaHeight为其父身高,为其父身高,为其父身高,为其父身高,moHeightmoHeight为其母身高)、是否喜爱体育锻炼(用字符为其母身高)、是否喜爱体育锻炼(用字符为其母身高)、是否喜爱体育锻炼(用字符为其母身高)、是否喜爱体育锻炼(用字符型变量型变量型变量型变量sportssports存储,输入字符存储,输入字符存储,输入字符存储,输入字符Y Y表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符N N表示不喜爱)、是否有良好的饮食习惯等条件(用字表示不喜爱)、是否有良好的饮食习惯等条件(用字表示不喜爱)、是否有良好的饮食
20、习惯等条件(用字表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量符型变量符型变量符型变量dietdiet存储,输入字符存储,输入字符存储,输入字符存储,输入字符Y Y表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符N N表示不喜爱),利用给定公式和身高预测方法对你的表示不喜爱),利用给定公式和身高预测方法对你的表示不喜爱),利用给定公式和身高预测方法对你的表示不喜爱),利用给定公式和身高预测方法对你的身高进行预测。身高进行预测。身高进行预测。身高进行预测。2023/1/9C语言大学实用教程课件 制作人苏小红12实验实验实验实验2 2:选择结构编程练习:选择结构编程
21、练习:选择结构编程练习:选择结构编程练习简单的计算器程序简单的计算器程序简单的计算器程序简单的计算器程序 要求用要求用要求用要求用switchswitch语句编程设计一个简单的计算器程序。语句编程设计一个简单的计算器程序。语句编程设计一个简单的计算器程序。语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式:要求根据用户从键盘输入的表达式:要求根据用户从键盘输入的表达式:要求根据用户从键盘输入的表达式:操作数操作数操作数操作数1 1 运算符运算符运算符运算符op op 操作数操作数操作数操作数2 2 计算表达式的值,指定的算术运算符为加(计算表达式的值,指定的算术运算符为加(计算表
22、达式的值,指定的算术运算符为加(计算表达式的值,指定的算术运算符为加(+)、减)、减)、减)、减(-)、乘()、乘()、乘()、乘(*)、除()、除()、除()、除(/)。)。)。)。2023/1/9C语言大学实用教程课件 制作人苏小红13例例例例4.84.8:计算器程序:计算器程序:计算器程序:计算器程序 编程设计一个简单的计算器程序,要求根据用户编程设计一个简单的计算器程序,要求根据用户编程设计一个简单的计算器程序,要求根据用户编程设计一个简单的计算器程序,要求根据用户从键盘输入如下形式的表达式:从键盘输入如下形式的表达式:从键盘输入如下形式的表达式:从键盘输入如下形式的表达式:操作数操作
23、数操作数操作数1 1 运算符运算符运算符运算符op op 操作数操作数操作数操作数2 2 然后,计算并输出表达式的值然后,计算并输出表达式的值然后,计算并输出表达式的值然后,计算并输出表达式的值 指定的运算符为指定的运算符为指定的运算符为指定的运算符为 加(加(加(加(+)减(减(减(减(-)乘(乘(乘(乘(*)除(除(除(除(/)2023/1/9C语言大学实用教程课件 制作人苏小红14mainmain()()intint data1,data2;/*data1,data2;/*定义两个操作符定义两个操作符定义两个操作符定义两个操作符*/charchar op;/*op;/*定义运算符定义运算
24、符定义运算符定义运算符*/printf(Please enter the expression:);printf(Please enter the expression:);scanf(%d%c%d,&data1,&op,&data2);/*scanf(%d%c%d,&data1,&op,&data2);/*输入运算表达式输入运算表达式输入运算表达式输入运算表达式*/switchswitch(op)(op)casecase+:/*+:/*处理加法处理加法处理加法处理加法*/printf(%d+%d=%dn,data1,data2,data1+data2);printf(%d+%d=%dn,da
25、ta1,data2,data1+data2);breakbreak;casecase-:/*-:/*处理减法处理减法处理减法处理减法*/printf(%d-%d=%dn,data1,data2,data1-data2);printf(%d-%d=%dn,data1,data2,data1-data2);breakbreak;casecase*:/*:/*处理乘法处理乘法处理乘法处理乘法*/printf(%d*%d=%dn,data1,data2,data1*data2);printf(%d*%d=%dn,data1,data2,data1*data2);breakbreak;casecase/
26、:/*/:/*处理除法处理除法处理除法处理除法*/ifif(0=data20=data2)printf(Division by zero!n);printf(Division by zero!n);elseelse printf(%d/%d=%dn,data1,data2,data1/data2);printf(%d/%d=%dn,data1,data2,data1/data2);breakbreak;defaultdefault:printf(Unknown operator!n);printf(Unknown operator!n);例例例例4.84.82023/1/9C语言大学实用教程课
27、件 制作人苏小红15实验实验实验实验2 2:选择结构编程练习:选择结构编程练习:选择结构编程练习:选择结构编程练习简单的计算器程序简单的计算器程序简单的计算器程序简单的计算器程序 本实验程序是在本实验程序是在本实验程序是在本实验程序是在例例例例4.84.8基础上,增加如下要求:基础上,增加如下要求:基础上,增加如下要求:基础上,增加如下要求:(1 1)如果要求程序能进行浮点数的算术运算,程序应该如)如果要求程序能进行浮点数的算术运算,程序应该如)如果要求程序能进行浮点数的算术运算,程序应该如)如果要求程序能进行浮点数的算术运算,程序应该如何修改?何修改?何修改?何修改?如何比较实型变量如何比较
28、实型变量如何比较实型变量如何比较实型变量data2data2和常数和常数和常数和常数0 0是否相等?是否相等?是否相等?是否相等?(2 2)如果要求输入的算术表达式中的操作数和运算符之间)如果要求输入的算术表达式中的操作数和运算符之间)如果要求输入的算术表达式中的操作数和运算符之间)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多空白符,那么程序如何修改?可以加入任意多空白符,那么程序如何修改?可以加入任意多空白符,那么程序如何修改?可以加入任意多空白符,那么程序如何修改?(3 3)(选作题)如果要求连续做多次算术运算,每次运算)(选作题)如果要求连续做多次算术运算,每次运算)(选
29、作题)如果要求连续做多次算术运算,每次运算)(选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:结束后,程序都给出提示:结束后,程序都给出提示:结束后,程序都给出提示:Do you want to Do you want to continue(Ycontinue(Y/N or/N or y/ny/n)?)?如果用户输入如果用户输入如果用户输入如果用户输入Y Y或或或或y y时,程序继续进行其它算术运算,否则时,程序继续进行其它算术运算,否则时,程序继续进行其它算术运算,否则时,程序继续进行其它算术运算,否则程序才退出运行状态。那么,程序如何修改?程序才退出运行状态。那么,程
30、序如何修改?程序才退出运行状态。那么,程序如何修改?程序才退出运行状态。那么,程序如何修改?2023/1/9C语言大学实用教程课件 制作人苏小红16 语句语句语句语句 if(0=data2)if(0=data2)的必要性的必要性的必要性的必要性19981998年年年年1111月月月月科学美国人科学美国人科学美国人科学美国人杂志,描述了美国导弹巡杂志,描述了美国导弹巡杂志,描述了美国导弹巡杂志,描述了美国导弹巡洋舰约克敦号上的一起事故,除零错导致军舰推进系统洋舰约克敦号上的一起事故,除零错导致军舰推进系统洋舰约克敦号上的一起事故,除零错导致军舰推进系统洋舰约克敦号上的一起事故,除零错导致军舰推进
31、系统的关闭的关闭的关闭的关闭 如果要求程序能进行浮点数的算术运算,语句如果要求程序能进行浮点数的算术运算,语句如果要求程序能进行浮点数的算术运算,语句如果要求程序能进行浮点数的算术运算,语句 if if(0=data2)(0=data2)还能用于比较实型变量还能用于比较实型变量还能用于比较实型变量还能用于比较实型变量data2data2和和和和常数常数常数常数0 0的大小吗?的大小吗?的大小吗?的大小吗?if(if(fabsfabs(data2)=1e-7)(data2)=1e-7)如果要求输入的算术表达式中的操作数和运算符之如果要求输入的算术表达式中的操作数和运算符之如果要求输入的算术表达式
32、中的操作数和运算符之如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改?间可以加入任意多个空格符,那么程序如何修改?间可以加入任意多个空格符,那么程序如何修改?间可以加入任意多个空格符,那么程序如何修改?scanf(%d%scanf(%d%c c%d,&data1,&op,&data2);%d,&data1,&op,&data2);scanf(%d%scanf(%d%1s1s%d,&data1,&op,&data2);%d,&data1,&op,&data2);实验实验实验实验2 2:选择结构编程练习:选择结构编程练习:选择结构编程练习:选择结构编程练习简单
33、的计算器程序简单的计算器程序简单的计算器程序简单的计算器程序 2023/1/9C语言大学实用教程课件 制作人苏小红17实验实验实验实验3 3:循环结构编程练习:循环结构编程练习:循环结构编程练习:循环结构编程练习猜数游戏猜数游戏猜数游戏猜数游戏 在这个实验中,我们将尝试编写一个猜数游戏程序,在这个实验中,我们将尝试编写一个猜数游戏程序,在这个实验中,我们将尝试编写一个猜数游戏程序,在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果你按下列要求这个程序看上去有些难度,但是如果你按下列要求这个程序看上去有些难度,但是如果你按下列要求这个程序看上去有些难度,但是如果你按下
34、列要求以循序渐进方式进行编程实现,你就会发现其实这以循序渐进方式进行编程实现,你就会发现其实这以循序渐进方式进行编程实现,你就会发现其实这以循序渐进方式进行编程实现,你就会发现其实这个程序是很容易实现的。先编写第一个程序,然后个程序是很容易实现的。先编写第一个程序,然后个程序是很容易实现的。先编写第一个程序,然后个程序是很容易实现的。先编写第一个程序,然后试着在第一个程序的基础上编写第二个程序,试着在第一个程序的基础上编写第二个程序,试着在第一个程序的基础上编写第二个程序,试着在第一个程序的基础上编写第二个程序,。程序程序程序程序1 1:编程先编程先编程先编程先由计算机由计算机由计算机由计算机
35、“想想想想”一个一个一个一个1 1到到到到100100之间的之间的之间的之间的数数数数请人猜,如果人猜对了,则计算机给出提示:请人猜,如果人猜对了,则计算机给出提示:请人猜,如果人猜对了,则计算机给出提示:请人猜,如果人猜对了,则计算机给出提示:“Right!”Right!”,否则提示:否则提示:否则提示:否则提示:“Wrong!”Wrong!”,并告诉人所,并告诉人所,并告诉人所,并告诉人所猜的数是大猜的数是大猜的数是大猜的数是大(Too high)(Too high)还是小还是小还是小还是小(Too low)(Too low),然后结束,然后结束,然后结束,然后结束游戏。要求每次运行程序时
36、机器所游戏。要求每次运行程序时机器所游戏。要求每次运行程序时机器所游戏。要求每次运行程序时机器所“想想想想”的数不能的数不能的数不能的数不能都是一样的。都是一样的。都是一样的。都是一样的。2023/1/9C语言大学实用教程课件 制作人苏小红18猜数游戏用到的库函数猜数游戏用到的库函数猜数游戏用到的库函数猜数游戏用到的库函数 随机函数随机函数随机函数随机函数srandsrand为函数为函数为函数为函数rand()rand()设置随机数种子来实现对函数设置随机数种子来实现对函数设置随机数种子来实现对函数设置随机数种子来实现对函数randrand所产所产所产所产生的伪随机数的生的伪随机数的生的伪随机
37、数的生的伪随机数的“随机化随机化随机化随机化”通过键入随机数种子,产生通过键入随机数种子,产生通过键入随机数种子,产生通过键入随机数种子,产生0,1000,100之间之间之间之间的随机数的随机数的随机数的随机数scanf(%u,&seed);scanf(%u,&seed);srand(seed);srand(seed);magic=rand()%100+1;magic=rand()%100+1;2023/1/9C语言大学实用教程课件 制作人苏小红19#includeinclude#includeinclude main()main()intint magic;magic;intint gues
38、s;guess;intint counter;counter;unsigned intunsigned int seed;seed;printf(Please enter seed:);printf(Please enter seed:);scanf(%u,&seed);scanf(%u,&seed);srand(seed);srand(seed);magic=rand()%100+1;magic=rand()%100+1;counter=0;counter=0;dodo printf(Please guess a magic number:);printf(Please guess a ma
39、gic number:);scanf(%d,&guess);scanf(%d,&guess);counter+;counter+;ifif(guess magic)(guess magic)printf(Wrong!Too high!n);printf(Wrong!Too high!n);else ifelse if(guess magic)(guess magic)printf(Wrong!Too low!n);printf(Wrong!Too low!n);whilewhile(guess!=magic);(guess!=magic);printf(Right!n);printf(Righ
40、t!n);printf(counter=%d n,counter);printf(counter=%d n,counter);2023/1/9C语言大学实用教程课件 制作人苏小红20猜数游戏用到的库函数猜数游戏用到的库函数猜数游戏用到的库函数猜数游戏用到的库函数 使用计算机读取其时钟值并把该值自动设置为随机使用计算机读取其时钟值并把该值自动设置为随机使用计算机读取其时钟值并把该值自动设置为随机使用计算机读取其时钟值并把该值自动设置为随机数种子,产生数种子,产生数种子,产生数种子,产生0,1000,100之间之间之间之间的随机数的随机数的随机数的随机数 函数函数函数函数time()time()返
41、回以秒计算的当前时间值,该值被返回以秒计算的当前时间值,该值被返回以秒计算的当前时间值,该值被返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子转换为无符号整数并用作随机数发生器的种子转换为无符号整数并用作随机数发生器的种子转换为无符号整数并用作随机数发生器的种子#include#include srand(time(NULLsrand(time(NULL););magic=rand()%100+1;magic=rand()%100+1;2023/1/9C语言大学实用教程课件 制作人苏小红21#includeinclude#includeinclude#includein
42、clude main()main()intint magic;magic;intint guess;guess;int counter;int counter;srand(time(NULL);srand(time(NULL);magic=rand()%100+1;magic=rand()%100+1;counter=0;counter=0;dodo printf(Please guess a magic number:);printf(Please guess a magic number:);scanf(%d,&guess);scanf(%d,&guess);counter+;counte
43、r+;ifif(guess magic)(guess magic)printf(Wrong!Too high!n);printf(Wrong!Too high!n);else ifelse if(guess magic)(guess magic)printf(Wrong!Too low!n);printf(Wrong!Too low!n);whilewhile(guess!=magic);(guess!=magic);printf(Right!n);printf(Right!n);printf(counter=%d n,counter);printf(counter=%d n,counter)
44、;2023/1/9C语言大学实用教程课件 制作人苏小红22 程序程序程序程序2 2:编程先由计算机编程先由计算机编程先由计算机编程先由计算机“想想想想”一个一个一个一个1 1到到到到100100之之之之间的数请人猜,间的数请人猜,间的数请人猜,间的数请人猜,如果人猜对了,则结束游戏,如果人猜对了,则结束游戏,如果人猜对了,则结束游戏,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以并在屏幕上输出人猜了多少次才猜对此数,以并在屏幕上输出人猜了多少次才猜对此数,以并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者此来反映猜数者此来反映猜数者此来反映猜数者“猜猜猜猜”的水平的水
45、平的水平的水平,否则计算机给,否则计算机给,否则计算机给,否则计算机给出提示,告诉人所猜的数是太大还是太小,直出提示,告诉人所猜的数是太大还是太小,直出提示,告诉人所猜的数是太大还是太小,直出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。到人猜对为止。到人猜对为止。到人猜对为止。实验实验实验实验3 3:循环结构编程练习:循环结构编程练习:循环结构编程练习:循环结构编程练习猜数游戏猜数游戏猜数游戏猜数游戏 2023/1/9C语言大学实用教程课件 制作人苏小红23 程序程序程序程序3 3:编程先由计算机编程先由计算机编程先由计算机编程先由计算机“想想想想”一个一个一个一个1 1到到到到100
46、100之之之之间的数请人猜,如果人猜对了,则结束游戏,间的数请人猜,如果人猜对了,则结束游戏,间的数请人猜,如果人猜对了,则结束游戏,间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以并在屏幕上输出人猜了多少次才猜对此数,以并在屏幕上输出人猜了多少次才猜对此数,以并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者此来反映猜数者此来反映猜数者此来反映猜数者“猜猜猜猜”的水平,否则计算机给的水平,否则计算机给的水平,否则计算机给的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,出提示,告诉人所猜的数是太大还是太小,出提示,告诉人所猜的数是太大还是太小,出提
47、示,告诉人所猜的数是太大还是太小,最最最最多可以猜多可以猜多可以猜多可以猜1010次,如果猜了次,如果猜了次,如果猜了次,如果猜了1010次仍未猜中的话,次仍未猜中的话,次仍未猜中的话,次仍未猜中的话,则结束游戏。则结束游戏。则结束游戏。则结束游戏。实验实验实验实验3 3:循环结构编程练习:循环结构编程练习:循环结构编程练习:循环结构编程练习猜数游戏猜数游戏猜数游戏猜数游戏 2023/1/9C语言大学实用教程课件 制作人苏小红24#includeinclude#includeinclude#includeinclude main()main()intint magic;magic;intint
48、 guess;guess;intint counter;counter;srand(time(NULL);srand(time(NULL);magic=rand()%100+1;magic=rand()%100+1;counter=0;counter=0;dodo printf(Please guess a magic number:);printf(Please guess a magic number:);scanf(%d,&guess);scanf(%d,&guess);counter+;counter+;ifif(guess magic)(guess magic)printf(Wron
49、g!Too high!n);printf(Wrong!Too high!n);else ifelse if(guess magic)(guess magic)printf(Wrong!Too low!n);printf(Wrong!Too low!n);elseelseprintf(Right!n);printf(Right!n);whilewhile(guess!=magic)(guess!=magic)&(counter 10)&(counter 10););printf(counter=%d n,counter);printf(counter=%d n,counter);2023/1/9
50、C语言大学实用教程课件 制作人苏小红25 程序程序程序程序4 4:编程先由计算机编程先由计算机编程先由计算机编程先由计算机“想想想想”一个一个一个一个1 1到到到到100100之间的数之间的数之间的数之间的数请人猜,如果人猜对了,并在屏幕上输出人猜了多请人猜,如果人猜对了,并在屏幕上输出人猜了多请人猜,如果人猜对了,并在屏幕上输出人猜了多请人猜,如果人猜对了,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者少次才猜对此数,以此来反映猜数者少次才猜对此数,以此来反映猜数者少次才猜对此数,以此来反映猜数者“猜猜猜猜”的水平,的水平,的水平,的水平,且结束游戏,否则计算机给出提示,告诉人所猜的