c语言程序设计双语版答案,C程序设计(双语版)习题答案.doc

dc9044ec604898353f6b3e18c2172abd.gifC程序设计(双语版)习题答案.doc

第二章 数据类型 课后习题 1 下列哪些是合法的变量名如果合法,你认为它是一个好的助记符(能提醒你它的用途)吗 a stock_code 合法、好的助记符 b money 非法, 为非法字符 c Jan_Sales 合法、好的助记符 d X-RAY 非法, 为非法字符 e int 非法, int为关键字 f xyz 合法、不是好的助记符 g 1a 非法,变量名必须以字母或下划线打头 h invoice_total合法、好 的助记符 i johns_exam_mark非法, 为非法字符 j default 非法, default为关键字 2 请确定下列常量的数据类型 a x char b -39 int c 39.99 double d -39.0 double 3 下列哪些是合法的变量定义 a integer account_code ; 非法,无 integer类型 b float balance ; 合法 c decimal total ; 非法,无 decimal类型 d int age ; 合法 e double int ; 非法, int为关键字,不能作为变量名 f char c ; 合法 4 写出下列各小题中的变量定义 a 整型变量 number_of_transactions和 age_in_years int number_of_transactions, age_in_years; b 单精度浮点型变量 total_pay,tax_payment,distance和 average float total_pay, tax_payment, distance, average; c 字符型变量 account_type char account_type; d 双精度浮点型变量 gross_pay double gross_pay; 5. 为下列各小题写出最合适的变量定义 a 班级中的学生人数 int number_of_students; b 平均价格 float average_price; c 自 1900年 1月 1日以 来的天数 int days_since_1900; d 利率百分比 float interest_rate; e 本页中最常出现的字符 char most_common_char; f 中国的人口总数(在 2010年 11 月大约为 1,339,724,852) int population_of_china; 6. 假定有如下定义 int i ; char c ; 下面哪些是合法的 C语句 c A ; 合法 i “1“ ; 非法,字符串不能赋值给 整型 i 1 ; 合法 c “A“ ; 非法, ”A”为字符串,存储为 A和 0两个字符 c 1; 合法 7. 写一个 C程序,给第 4题中的变量各赋一个值,然后以每行一个变量的形式显示这些变量的值。 include int mainvoid int number_of_transactions, age_in_years; float total_pay, tax_payment, distance, average; char account_type; double gross_pay; number_of_transactions 211; age_in_years 66; total_pay 3128.0f; tax_payment 214.5f; distance 2431.5f; average 83.5f; account_type c; gross_pay 9313.5; printf“dndn.1fn.1fn.1fn.1fncn.1f“, number_of_transactions, age_in_years, total_pay, tax_payment, distance, average, account_type, gross_pay; return 0; 8 写一个 C程序显示如下信息 *************** * Hello World * *************** include int mainvoid printf“***************n“; printf“* Hello World *n“; printf“***************n“; return 0; 9 写一个 C程序在不同的行分别显示你的姓名和 家庭住址。 include int mainvoid printf“张三 n“; printf“黑龙江省哈尔滨市南岗区 n“; return 0; 10 ASCII 码用于表示计算机内存中的字母、数字和其它符号。使用附录 C 中的 ASCII 码表查找下面每个字符的 ASCII编码 A B Y Z a b y z 0 1 , 空格 字符 十进制 ASCII码 十六进制 ASCII码 A 65 41 B 66 42 Y 89 59 Z 90 5a a 97 61 b 98 62 y 121 79 z 122 7a 0 48 30 1 49 31 , 44 2c 空格 32 20 11在程序 P2C中,将第 14行的 d改为 c,第 16行的 c改为 d。编译并运行修改后的程序。你能解释运行结果吗(提示请参看附录 C的 ASCII码表) 第三章 简单算术运算符与表达式 课后习题 1 将下列数学方程转化为合法的 C语句 a2121 xx yym b cmxy c edcba d 9 325 FC e 221 atuts a m y1 y2 / x1 x2; b y m * x c; c a b / c d / e; d C 5 * F 32 / 9.0; e s u * t a * t * t / 2.0; 2 有如下变量定义 int a 1, b 10, c 5 ; int d ; 下面每条语句执行后 d的值为 a d b / c 1 ; d3 b d b 3 ; d1 c d b - 3 * c / 5 ; d7 d d b * 10 c - a * 5 ; d100 e d a b - 1 / c ; d2 f d -a c b * c ; d45 g d --a ; d0 3 变量定义如第 2题,请改正下列 C语句中的错误 a d 2b c ; d 2 * b c b d 5b 9c ; d 5 * b 9 * c; c d b - 3 X 19 ; d b 3 * 19; d d b.c 10 ; d b * c 10; e d a b / c ; 无错误 4 为下列任务写出合适的 C语句 a 将 num1加 1,并将结果放回到 num1中 num1 num1 1;或 num1; b 将 num1加 2,并将结果放回到 num2中 num2 num1 2; c 将 num2加 2,并将结果放回到 num2中 num2 num2 2;或 num2 2; d 将 num1减 1,并将结果放回到 num1中 num1 num1 1;或 num1--; e 将 num2减 2,并将结果放回到 num2中 num2 num2 2;或 num2 - 2; 5 有如下定义 int a 12, b 0, c 3 ; int d ; 下列每条语句执行后 a、 b、 c和 d的值各是什么 a a ; a13 b0 c3 d内存单元的随机值 b b-- ; a12 b-1 c3 d内存单元的随机值 c d c ; a12 b0 c4 d4 d d c-- ; a12 b0 c2 d3 e d a - 2 ; a13 b0 c3 d10 f d a b - c-- ; a13 b1 c2 d9 6 有如下定义 int a 1, b 2, c 3 ; 下列每条语句执行后 a、 b、 c的值各是什么 a a b ; a3 b2 c3 b a / 3 ; a0 b2 c3 c a * c ; a3 b2 c3 d a 2 ; a1 b2 c3 e a b1 ; a4 b2 c3 f a b ; a4 b3 c3 7 有如下定义 char ch_val ; int int_val ; short short_val ; float float_val ; double double_val ; unsigned int unsigned_int_val ; 下面哪些可能因为赋值类型自动转换而损失数据 a short_val int_val ; 可能损失精度 b int_val ch_val ; 不能损失精度 c double_val float_val ; 不能损失精度 d int_val float_val ; 可能损失精度 e int_val unsigned_int_val ; 可能损失精度 8 和第 7题的变量定义一样,下列各表达式的数据类型各是什么 a int_val * float_val ; double b float_val int_val / 100 ; double c ch_val short_val int_val ; int d doubleint_val double_val float_val ; double e intfloat_val * float_val / int_val ; double f int_val 3.0 ; double 9 有如下变量定义 int a 5, b 4 ; float c 3.0, d ; 下列每小题中的 d的值为 a d a / b ; d1.0 b d floata / b ; d1.25 c d c / b ; d0.75 d d intc / b ; d0.0 e d a / 2 ; d2.0 f d a / 2.0 ; d2.5 g d floata / 2 ; d2.5 h d intc 2 ; d1.0 10写一个程序计算长为 11.5厘米,宽为 2.5厘米,高为 10厘米的盒 子的体积和表面积。 include int mainvoid double length, width, height; double area, volume; length 11.5; width 2.5; height 10.0; area 2 * length * width length * height width * height; volume length * width * height; printf“area.2f,volume.2f“, area, volume; return 0; 11写一个程序完成如下功能 a 计算并显示 1到 5的和。 include int mainvoid printf“12345d“, 12345; return 0; b 计算并显示单精度浮点数 1, 1.1, 1.2, , 2.0的平均值。 include int mainvoid printf“average.2f“, 1.01.11.21.31.41.51.61.71.81.92.0 / 11; return 0; 第四章 键盘输入与屏幕输出 课后习题 1 找出下面程序的错误。 include int main int num; printf “Please type a number followed by Enter“ ; scanf “f“, num ; 改为 scanf“d“, printf “The number you typed was d“, num ; return 0 ; 2 为下面的每小题写一个简单的 scanf语句以接收对应的键盘输入 a int first ; scanf“d“, b int second, third, fourth ; scanf“ddd“, c float principal, rate, time ; scanf“fff“, d char keyval1, keyval2 ; scanf“cc“, e char c ; int i ; float f ; double d ; scanf“cdflf“, 3 写一个程 序,输入四个整数数字,然后以输入时相反的顺序输出它们。 include int mainvoid int num1, num2, num3, num4; printf“Please four numbers “; scanf“d“, scanf“d“, scanf“d“, scanf“d“, printf“The numbers in reverse are “; printf“d “, num4; printf“d “, num3; printf“d “, num2; printf“d “, num1; return 0; 4 假设 v1, v2和 v3 是其值分别为 5.0, -4.5和 11.25的单精度浮点型变量,写一个 printf语句显示如下的消息 v1 5 v2 -4.5 v3 11.25 printf“v1 .0f v2 .1f v3 .2f“, v1, v2, v3; 5 假设人的心率为每分钟 75下,写一个程序,询问用户的年龄(以年为单位),然后计算并输出该用户到目前为止的生命中已有的心跳总数。 include int mainvoid int age, heart_beats; printf“Please your age “; scanf“d“, heart_beats age * 365 * 24 * 60 * 75; printf“The heart beats in your life d“, heart_beats; return 0; 6 写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息 请输入华氏温度(度) 然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的摄氏温度。 程序使用如下的公式完成转换摄氏温度 5.0 *(华氏温度 32.0) / 9.0 include int mainvoid double fahr, cels; printf“Please fahr “; scanf“lf“, cels 5.0 * fahr - 32.0 / 9.0; printf“The cels is .2f“, cels; return 0; 7 更改第 6题中的程序,将输入的摄氏温度转换为对应的华氏温度。 include int mainvoid double fahr, cels; printf“Please cels “; scanf“lf“, fahr 9.0 * cels / 5.0 32.0; printf“The fahr is .2f“, fahr; return 0; 8 写一个程序从键盘输入三个单精度浮点数,然后计算 a 它们的和。 b 它们的平均值。 显示结果保留到小数点后三位。 include int mainvoid float f1, f2, f3, sum, average; printf“请输入三个单精度数 “; scanf“fff“, sum f1 f2 f3; average sum / 3; printf“三个数的和为 .3f,均值为 .3f“, sum, average; return 0; 9 写一个程序从键盘输入两个整数,然后显示第 1个整数占第二个整数的百分比,保留到小数点后 1位。例如输入 5和 40,程序输出结果如下 5 is 12.5 percent of 40 include int mainvoid int num1, num2; printf“请输入两个整数 “; scanf“dd“, printf“d is .1f percent of d“, num1, num1 * 100.0 / num2, num2; return 0; 10写一个程序从键盘输入两个整数,然后显示输出第 1个数除以第 2个数的结果。例如,输入 123和 12,程序的输出结果格式如下 10 余数 3 ---- 12 123 提示使用求余运算符获得余数,使用整数除法获得商。 include int mainvoid int num1, num2, remainder, quotient; printf“请输入两个整数 “; scanf“dd“, remainder num1 num2; quotient num1 / num2; printf“13d Remainder dn“, quotient, remainder; printf“ ------n“; printf“5d 5d“, num2, num1; return 0; 第五章 控制语句 If和 Switch 课后习题 1 使用 switch语句重写下面的 if-else语句 if marriage_status S printf “single“ ; else if marriage_status M printf “married“ ; else if marriage_status W printf “widowed“ ; else if marriage_status E printf “separated“ ; else if marriage_status D printf “divorced“ ; else printf “errorinvalid code“ ; switch marriage_status case S printf“single“; break; case M printf“married“; break; case W printf“widowed“; break; case E printf“separated“; break; case D printf“divorced“; break; default printf“errorinvalid code“; 2 下面的代码片段根据三个整数 n1, n2和 n3的值显示适当的消息 if n1 n2 if n1 n3 printf “n1, n2 and n3 have the same valuen“ ; else printf “n1 and n2 have the same valuen“ ; else if n1 n3 printf “n1 and n3 have the same valuen“ ; else if n2 n3 printf “n2 and n3 have the same value“ ; else printf “n1, n2 and n3 have different values“; 为了测试代码中的不同分支,你需要构造五个测试数据集,每个分支一个测试数据集。请给出 n1, n2和 n3的五个测试数据集。 n1 1 n2 1 n3 1 n1 1 n2 1 n3 2 n1 1 n2 2 n3 1 n1 1 n2 2 n3 2 n1 1 n2 2 n3 3 3 写一个程序,读入两个整数,判断第一个数是否能被第二个数整除。(提示使用求余运算符 ) include int mainvoid int num1, num2; printf“请输入两个整数 “; scanf“dd“, if num1 num2 0 printf“d能被 d整除。 “, num1, num2; else printf“d不能被 d整除。 “, num1, num2; return 0; 4 输入两个整数,并用条件运算符来找出较小的一个。 include int mainvoid int num1, num2; printf“请输入两个整数 “; scanf“dd“, printf“d和 d中较小的数为 d“, num1, num2, num1 int mainvoid double a, b, c; printf“输入三角形的三条边 a,b,c“; scanf“lflflf“, if a b c else printf“不能构成三角形 n“; return 0; 6 写一个程序从键盘输入单个十进制数字,然后将它的值显示为英文单词。例如输入 5,输出为“ five”。 include int mainvoid int num; printf“Please a single numeral “; scanf“d“, switch num case 0 printf“zeron“; break; case 1 printf“onen“; break; case 2 printf“twon“; break; case 3 printf“threen“; break; case 4 printf“fourn“; break; case 5 printf“fiven“; break; case 6 printf“sixn“; break; case 7 printf“sevenn“; break; case 8 printf“eightn“; break; case 9 printf“ninen“; break; default printf“Invalid - please a single numeral.n“; return 0; 7 写一个程序从键盘输入 1到 7中的某个数字,其中 1代表星期天, 2代表星期一, 3代表星期二等。根据用户输入的数字显示相应的星期几。如果用户输入的数字超出了 1 到 7的范围,显示输出一个错误提示信息。 include int mainvoid int num; printf“Please a single numeral1-7 “; scanf“d“, switch num case 1 printf“Sundayn“; break; case 2 printf“Mondayn“; break; case 3 printf“Tuesdayn“; break; case 4 printf“Wednesdayn“; break; case 5 printf“Thursdayn“; break; case 6 printf“Fridayn“; break; case 7 printf“Saturdayn“; break; default printf“Invalid - please a single numeral1-7.n“; return 0; 8 增加自加运算符( I或 i)和自减运算符( D或 d)到 P5F中的简单计算器程序中。 9 写一个程序输入爱尔兰的当前时间,并显示其对应的华盛顿时间(减 5个小时),莫斯科时间(加 3个小时),北京时间(加 7个小时)。输入的时间采用 24小时制,如 22 35(晚上 10 35)。 include int mainvoid int hour, minute; printf“请输入爱尔兰当地时间( 24小时制,如 22 35) “; scanf“dd“, printf“对应的华盛顿时间为 ddn“, hour - 5 24 24, minute; printf“对应的莫斯科时间为 ddn“, hour 3 24, minute; printf“对应的北京时间为 ddn“, hour 7 24, minute; return 0; 10写一个程序根据从键盘输入的里氏强度显示地震的后果。根据里氏强度地震的后果如下 里氏强度 后果 小于 4 很小 4.0到 4.9 窗户晃动 5.0到 5.9 墙倒塌;不结实的建筑物被破坏 6.0到 6.9 烟囱倒塌;普通建筑物被破坏 7.0到 7.9 地下管线破裂;结实的建筑物也被破坏 超过 7.9 地面波浪状起伏;大多数建筑物损毁 include int mainvoid double magnitude; printf“请输入地震的里氏强度 “; scanf“lf“, if magnitude 0 ; i / 2, j printf “d dn“, i, j ; return 0 ; 10 1 5 2 2 3 1 4 2 修改程序 P6A,计算输入的所有的数的平均值。 3 用 for循环重写如下代码 int total 0 ; int i 0 ; while i int main int num ; printf “Please enter a number “ ; scanf “d“, do printf “d“, num 10 ; num / 10 ; while num 0 ; return 0 ; 4321 5 写一个程序,计算并显示班级的平均成绩。教师依次输入班级每个学生的百分制成绩,输入负数表示输入结束。 include int mainvoid double sum, score; int nstudents; sum 0.0; nstudents 0; while 1 printf“请输入学生成绩(输入负值则表示结束输入) “; scanf“lf“, if score 0.0 sum sum score; nstudents; else break; if nstudents 0 printf“班级平均成绩为 .2fn“, sum / nstudents; return 0; 6 写一个程序计算 1到 99范围内所有奇数的和。 include int mainvoid int sum, i; for i 1, sum 0; i int mainvoid int hour, minute, interval; interval 1; //interval 15; for hour 0; hour int mainvoid int level, i, j, k; printf“请输入树的层数 “; scanf“d“, for i 1; i int mainvoid int num15, i; for i 0; i int mainvoid int n15, n25, i; printf“请输入第一个数 组 n“; for i 0; i define N 24 int mainvoid int time_entered, total_num_customers 0; int num_customersN; int max_customers, min_customers, max, min; // Enter number of customers for each hour. for time_entered 0; time_entered max_customers max_customers num_customerstime_entered; max time_entered; if num_customerstime_entered int mainvoid float fixed 11.31, 12.12, 13.67, 11.91, 12.30, 11.8, 11.00, 12.00 ; float variable 1.12, 1.13, 3.14, 1.35, 2.20, 1.28, 1.00, 2.10 ; int i, n; printf“请输入产品号( 1-8) “; scanf“d“, printf“请输入该种产品的生产数量 “; scanf“d“, printf“生产编号为 d,数量为 d 的产品的总成本为 .2fn“, i, n, fixedi - 1 n * variablei - 1; return 0; 8 使用双重 for循环设置 9乘 9的二维整型数组的对角线元素为 1,非对角线元素为全 0。 include int mainvoid int a99; int i, j; printf“题目要求的对角线矩阵为 n“; for i 0; i int mainvoid double a45; int i, j, row, col; printf“请输入一个 4乘 5的矩阵 n“; for i 0; i int mainvoid int unsorted10, sorted10; int i, j, min, pmin; printf“请输入十个整数 n“; for i 0; i include define N 10 int mainvoid int aNN; int n, i, j, sum, oldsum; printf“请输入矩阵的阶数(

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值