c语言程序设计课后习题答案(编辑修改稿)内容摘要:

:a 数据已经增加 . Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d 数据已经删除 . Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s 数据已经排序 . Menu: A(dd) D(elete) S(ort) Q(uit), Select one:q ( 2)实现一个简单的菜单程序,运行时显示 Menu: A(dd) D(elete) S(ort) Q(uit), Select one: 提示用户输入, A表示增加, D表示删除, S表示排序, Q表示退出,输入为 A、 D、 S时 分别提示 数据已经增加、删除、排序。 输入为 Q时程序结束。 要求使用 Switch语句。 解: 源程序: include include { char choice。 while(1) { cout Menu: A(dd) D(elete) S(ort) Q(uit), Select one:。 cin choice。 switch(toupper(choice)) { case 39。 A39。 : cout 数据已经增加 . endl。 break。 case 39。 D39。 : cout 数据已经删除 . endl。 break。 case 39。 S39。 : cout 数据已经排序 . endl。 break。 case 39。 Q39。 : exit(0)。 break。 default:。 } } } 程序运行输出: Menu: A(dd) D(elete) S(ort) Q(uit), Select one:a 数据已经增加 . Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d 数据已经删除 . Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s 数据已经排序 . Menu: A(dd) D(elete) S(ort) Q(uit), Select one:q 231用穷举法找出 1~100间的质数,显示出来。 分别使用 while, dowhile, for 循环语句实 现。 解: 源程序: 使用 while循环语句: include void main() { int i,j,k,flag。 i = 2。 while(i = 100) { flag = 1。 k = sqrt(i)。 j = 2。 while (j = k) { if(i%j == 0) { flag = 0。 break。 } j++。 } if (flag) cout i 是质数 . endl。 i++。 } } 使用 do…while 循环语句: include include void main() { int i,j,k,flag。 i = 2。 do{ flag = 1。 k = sqrt(i)。 j = 2。 do{ if(i%j == 0) { flag = 0。 break。 } j++。 }while (j = k)。 if (flag) cout i 是质数 . endl。 i++。 }while(i = 100)。 } 使用 for 循环语句: include include void main() { int i,j,k,flag。 for(i = 2。 i = 100。 i++) { flag = 1。 k = sqrt(i)。 for (j = 2。 j = k。 j++) { if(i%j == 0) { flag = 0。 break。 } } if (flag) cout i 是质数 . endl。 } } 程序运行输出: 2是质数 . 3是质数 . 5是质数 . 7是质数 . 11 是质数 . 13是质数 . 17是质数 . 19是质数 . 23是质数 . 29是质数 . 31是质数 . 232比较 Break语句与 Continue语句的不同用法。 解: Break使程序从循环体和 switch语句内跳出,继续执行逻辑上的下一条语句,不能用在别处 ; continue语句结束本次循环,接着开始判断决定是否继续执行下一次循环; 233定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输 入年、月、日、小时、分、秒的值,然后完整地显示出来。 解: 源程序见 实验指导 部分实验二 234在程序中定义一个整型变量,赋以 1~100的值,要求用户猜这个数,比较两个数的大 小,把结果提示给用户,直到猜对为止。 分别使用 while、 do…while 语句实现循环。 解: //使用 while语句 include void main() { int n = 18。 int m = 0。 { cout 请猜这个数的值为多少。 (0~~100):。 cin m。 if (n m) cout 你猜的值太小了。 endl。 else if (n m) cout 你猜的值太大了。 endl。 else cout 你猜对了。 endl。 } } //使用 do…while 语句 include void main() { int n = 18。 int m = 0。 do{ cout 请猜这个数的值为多少。 (0~~100):。 cin m。 if (n m) cout 你猜的值太小了。 endl。 else if (n m) cout 你猜的值太大了。 endl。 else cout 你猜对了。 endl。 }while(n != m)。 } 程序运行输出 : 请猜这个数的值为多少。 (0~~100):50 你猜的值太大了。 请猜这个数的值为多少。 (0~~100):25 你猜的值太大了。 请猜这个数的值为多少。 (0~~100):10 你猜的值太小了。 请猜这个数的值为多少。 (0~~100):15 你猜的值太小了。 请猜这个数的值为多少。 (0~~100):18 你猜对了。 型 weekday,包括 Sunday到 Saturday七个元素在程序中定义 weekday类型 的变量,对其赋值,定义整型变量,看看能否对其赋 weekday类型的 值。 解: include enum weekday { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }。 void main() { int i。 weekday d = Thursday。 cout d = d endl。 i = d。 cout i = i endl。 d = (weekday)6。 cout d = d endl。 d = weekday( 4 )。 cout d = d endl。 } 程序运行输出: d = 4 i = 4 d = 6 d = 4 第三章函数 31 C++中的函数是什么。 什么叫主调函数,什么叫被调函数,二者之间有什么关系。 如何 解: 一个较为复杂的系统往往需要划分为若干子系统,高级语言中的子程序就是用来实现这种模 块划分的。 C和 C++语言中的子程序就体现为函 数。 调用其它函数的函数被称为主调函数, 被其它函数调用的函数称为被调函数。 一个函数很可能既调用别的函数又被另外的函数调 用,这样它可能在某一个调用与被调用关系中充当主调函数,而在另一个调用与被调用关系 中充当被调函数。 调用函数之前先要声明函数原型。 按如下形式声明: 类型标识符被调函数名 (含类型说明的形参表 )。 声明了函数原型之后,便可以按如下形式调用子函数: 函数名(实参列表) 32 观察下面程序的运行输出,与你设想的有何不同。 仔细体会引用的用法。 源程序: include int main() { int intOne。 int amp。 rSomeRef = intOne。 intOne = 5。 cout intOne:\t\t intOne endl。 cout rSomeRef:\t rSomeRef endl。 int intTwo = 8。 rSomeRef = intTwo。 // not what you think! cout \nintOne:\t\t intOne endl。 cout intTwo:\t\t intTwo endl。 cout rSomeRef:\t rSomeRef endl。 return 0。 } 程序运行输出: intOne: 5 rSomeRef: 5 intOne: 8 intTwo: 8 rSomeRef: 8 解: 值调用是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将实参 的值传递给形参)。 这一过程是参数值 的单向传递过程,一旦形参获得了值便与实参脱离关 系,此后无论形参发生了怎样的改变,都不会影响到实参。 引用调用将引用作为形参,在执行主调函数中的调用语句时,系统自动用实参来初始化形参。 这样形参就成为实参的一个别名,对形参的任何操作也就直接作用于实参。 34 什么叫内联函数 ?它有哪些特点。 解: 定义时使用关键字 inline的函数叫做内联函数; 编译器在编译时在调用处用函数体进行替换 ,节省了参数传递、控制转移等开销; 内联函数体内不能有循环语句和 switch语句; 内联函数的定义必须出现 在内联函数第一次被调用之前; 对内联函数不能进行异常接口声明; 35 函数原型中的参数名与函数定义中的参数名以及函数调用中的参数名必须一致吗。 解: 不必一致,所有的参数是根据位置和类型而不是名字来区分的。 36 重载函数时通过什么来区分。 解: 重载的函数的函数名是相同的,但它们的参数的个数和数据类型不同,编译器根据实参和形 参的类型及个数的最佳匹配,自动确定调用哪一个函数。 37 编写函数,参数为两个 unsigned short int型数,返回值为第一个参数除以第二个参 数的 结果,数据类型为 short int;如果第二个参数为 0,则返回值为 1。 在主程序中实现输入输 出。 解: 源程序: include { if (b == 0) return 1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。