C++语言程序设计课后答案 .docx
《C++语言程序设计课后答案 .docx》由会员分享,可在线阅读,更多相关《C++语言程序设计课后答案 .docx(24页珍藏版)》请在三一办公上搜索。
1、C+语言程序设计课后答案 第 二 章 C+简单程序设计 2-10 执行完下列语句后,a、b、c三个变量的值为多少? a = 30; b = a+; c = +a; a:32 ; b:30 ; c:32; 2-13 写一条for语句,计数条件为n从100到200,步长为2;然后用while和dowhile语句完成同样的循环。 解: for循环: for (int n = 100; n = 200; n += 2); while循环: int x = 100; while (n = 200) n += 2; dowhile循环: int n = 100; do n += 2; while(n =
2、200); 2-17 修改下面这个程序中的错误,改正后它的运行结果是什么? #include void main int i int j; i = 10; /* 给i赋值 j = 20; /* 给j赋值 */ cout i + j = i + j; /* 输出结果 */ return 0; 解: 改正: #include int main int i; int j; i = 10; / 给i赋值 j = 20; /* 给j赋值 */ cout i + j = i + j; /* 输出结果 */ return 0; 程序运行输出: i + j = 30 2-18 编写一个程序,运行时提示输入一个
3、数字,再把这个数字显示出来。 解: 源程序: #include int main int i; cout i; cout 您输入一个数字是 i endl; return 0; 程序运行输出: 2-20 打印ASCII码为32127的字符。 #include int main for (int i = 32; i128; i+) cout (char) i; return 0; 程序运行输出: !#$%G*+,./0123456789:;?ABCDEFGHIJKLMNOP_QRSTUVWXYZabcdefghijklmnopqrstuvwxyzs 2-21 运行下面的程序,观察其输出,与你的设想
4、是否相同? #include int main unsigned int x; unsigned int y = 100; unsigned int z = 50; x= y - z; cout Difference is: x; x = z - y; cout nNow difference is: x endl; return 0; 程序运行输出: Difference is: 50 Now difference is: 4294967246 注意,第二行的输出并非 -50,注意x、y、z的数据类型。 2-22 运行下面的程序,观察其输出,体会i+与+i的差别。 #include int
5、main int myAge = 39; / initialize two integers int yourAge = 39; cout I am: myAge years old.n; cout You are: yourAge years oldn; myAge+; / postfix increment +yourAge; / prefix increment cout One year passes.n; cout I am: myAge years old.n; cout You are: yourAge years oldn; cout Another year passesn;
6、 cout I am: myAge+ years old.n; cout You are: +yourAge years oldn; cout Lets print it again.n; cout I am: myAge years old.n; cout You are: yourAge years oldn; return 0; 解: 程序运行输出: I am 39 years old You are 39 years old One year passes I am 40 years old You are 40 years old Another year passes I am 4
7、0 years old You are 41 years old Lets print it again I am 41 years old You are 41 years old 2-28 编写一个完整的程序,实现功能:向用户提问现在正在下雨吗?,提示用户输入Y或N。若输入为Y,显示现在正在下雨。; 若输入为N,显示现在没有下雨。;否则继续提问现在正在下雨吗? 源程序: #include #include void main char flag; while(1) cout flag; if ( toupper(flag) = Y) cout 现在正在下雨。; break; if ( to
8、upper(flag) = N) cout 现在没有下雨。; break; 程序运行输出: 现在正在下雨吗?(Yes or No):x 现在正在下雨吗?(Yes or No):l 现在正在下雨吗?(Yes or No):q 现在正在下雨吗?(Yes or No):n 现在没有下雨。 或: 现在正在下雨吗?(Yes or No):y 现在正在下雨。 2-29 编写一个完整的程序,运行时向用户提问你考试考了多少分?,接收输入后判断其等级,显示出来。规则如下: 解: #include void main int i,score; cout score; if (score100 | score0)
9、cout 分数值必须在0到100之间!; else i = score/10; switch (i) case 10: case 9: cout 你的成绩为优!; break; case 8: cout 你的成绩为良!; break; case 7: case 6: cout 你的成绩为中!; break; default: cout 你的成绩为差!; 程序运行输出: 你考试考了多少分?(0100):85 你的成绩为良! 2-31 用穷举法找出1100间的质数,显示出来。分别使用while,do-while,for循环语句实现。 解: 源程序: 使用while循环语句: #include #i
10、nclude 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+; 使用dowhile循环语句: #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+; w
11、hile (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是
12、质数. 23是质数. 29是质数. 31是质数. 37是质数. 41是质数. 43是质数. 47是质数. 53是质数. 59是质数. 61是质数. 67是质数. 71是质数. 73是质数. 79是质数. 83是质数. 89是质数. 97是质数. 2-33 定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。 解: 源程序见实验指导部分实验二 2-34 在程序中定义一个整型变量,赋以1100的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while、dowhile语句实现循环。 解: /使
13、用while语句 #include void main int n = 18; int m = 0; while(m != n) cout m; if (n m) cout 你猜的值太小了! endl; else if (n m) cout 你猜的值太大了! endl; else cout 你猜对了! endl; /使用dowhile语句 #include void main int n = 18; int m = 0; do cout m; if (n m) cout 你猜的值太小了! endl; else if (n m) cout 你猜的值太大了! endl; else cout 你猜对
14、了! endl; while(n != m); 程序运行输出: 请猜这个数的值为多少?(0100):50 你猜的值太大了! 请猜这个数的值为多少?(0100):25 你猜的值太大了! 请猜这个数的值为多少?(0100):10 你猜的值太小了! 请猜这个数的值为多少?(0100):15 你猜的值太小了! 请猜这个数的值为多少?(0100):18 你猜对了! 第三章 函数 3-2 观察下面程序的运行输出,与你设想的有何不同?仔细体会引用的用法。 源程序: #include int main int intOne; int &rSomeRef = intOne; intOne = 5; cout i
15、ntOne:tt intOne endl; cout rSomeRef:t rSomeRef endl; int intTwo = 8; rSomeRef = intTwo; / not what you think! cout nintOne:tt intOne endl; cout intTwo:tt intTwo endl; cout rSomeRef:t rSomeRef endl; return 0; 程序运行输出: intOne: 5 rSomeRef: 5 intOne: 8 intTwo: 8 rSomeRef: 8 3-7 编写函数,参数为两个unsigned short i
16、nt型数,返回值为第一个参数除以第二个参数的结果,数据类型为short int;如果第二个参数为0,则返回值为-1。在主程序中实现输入输出。 解: 源程序: #include short int Divider(unsigned short int a, unsigned short int b) if (b = 0) return -1; else return a/b; typedef unsigned short int USHORT; typedef unsigned long int ULONG; int main USHORT one, two; short int answer;
17、 cout one; cout two; answer = Divider(one, two); if (answer -1) cout Answer: answer; else cout Error, cant divide by zero!; return 0; 程序运行输出: Enter two numbers. Number one:8 Number two:2 Answer: 4 3-8 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9; 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。 解: 源程序见实验指导部分实验三 3-10 编写函数
18、求两个整数的最大公约数和最小公倍数。 源程序: #include #include int fn1(int i,int j); /求最大公约数的函数 void main int i,j,x,y; cout i ; cout j ; x = fn1(i,j); y = i * j / x; cout i 和 j 的最大公约数是: x endl; cout i 和 j 的最小公倍数是: y endl; int fn1(int i, int j) int temp; if (i j) temp = i; i = j; j = i; while(j != 0) temp = i % j; i = j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+语言程序设计课后答案 C+ 语言程序设计 课后 答案

链接地址:https://www.31ppt.com/p-3153846.html