欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言课后习题解析及答案.docx

    • 资源ID:1884649       资源大小:49.91KB        全文页数:98页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课后习题解析及答案.docx

    1、C语言课后习题解析及答案第二章 数据类型 课后习题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

    2、请确定下列常量的数据类型:(a) x char(b) -39 int(c) 39.99 double(d) -39.0 double3 下列哪些是合法的变量定义? (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_i

    3、n_yearsint 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 a

    4、verage_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

    5、 = 1; 合法7. 写一个C程序,给第4题中的变量各赋一个值,然后以每行一个变量的形式显示这些变量的值。 #include int main(void) 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; di

    6、stance = 2431.5f; average = 83.5f; account_type = c; gross_pay = 9313.5; printf(%dn%dn%.1fn%.1fn%.1fn%.1fn%cn%.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 main(void) printf(*n

    7、); printf(* Hello World *n); printf(*n); return 0;9 写一个C程序在不同的行分别显示你的姓名和家庭住址。 #include int main(void) printf(张三n); printf(黑龙江省哈尔滨市南岗区n); return 0;10ASCII码用于表示计算机内存中的字母、数字和其它符号。使用附录C中的ASCII码表查找下面每个字符的ASCII编码:A B Y Z a b y z 0 1 , (空格)字符 十进制ASCII码 十六进制ASCII码A 65 41B 66 42Y 89 59Z 90 5aa 97 61b 98 62y

    8、121 79z 122 7a0 48 301 49 31, 44 2c空格 32 2011在程序P2C中,将第14行的%d改为%c,第16行的%c改为%d。编译并运行修改后的程序。你能解释运行结果吗?(提示:请参看附录C的ASCII码表)第三章 简单算术运算符与表达式 课后习题1 将下列数学方程转化为合法的C语句:(a) (b)(c)(d)(e) (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;

    9、2 有如下变量定义: int a = 1, b = 10, c = 5 ; int d ; 下面每条语句执行后d的值为?(a) d = b / c + 1 ; d=3(b) d = b % 3 ; d=1(c) d = b - 3 * c / 5 ; d=7(d) d = b * 10 + c - a * 5 ; d=100(e) d = ( a + b - 1 ) / c ; d=2(f) d = ( ( -a % c ) + b ) * c ; d=45(g) d = -a ; d=03 变量定义如第2题,请改正下列C语句中的错误:(a) d = 2(b + c) ; d = 2 * (b

    10、 + 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) 将nu

    11、m1减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+ ; a=13 b=0 c=3 d=内存单元的随机值(b) b- ; a=12 b=-1 c=3 d=内存单元的随机值(c) d = +c ; a=12 b=0 c=4 d=4(d) d = c- ; a=12 b=0 c=2 d=3(e) d = a+ - 2 ; a=13

    12、 b=0 c=3 d=10(f) d = a+ + b+ - c- ; a=13 b=1 c=2 d=96 有如下定义: int a = 1, b = 2, c = 3 ;下列每条语句执行后a、b、c的值各是什么?(a) a += b ; a=3 b=2 c=3(b) a /= 3 ; a=0 b=2 c=3(c) a *= c ; a=3 b=2 c=3(d) a %= 2 ; a=1 b=2 c=3(e) a += b+1 ; a=4 b=2 c=3(f) a += +b ; a=4 b=3 c=37 有如下定义: char ch_val ; int int_val ; short sho

    13、rt_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

    14、) int_val * float_val ; double(b) float_val + int_val / 100 ; double(c) ch_val + short_val + int_val ; int(d) (double)int_val + double_val + float_val ; double(e) (int)float_val * float_val / int_val ; double(f) int_val + 3.0 ; double9 有如下变量定义: int a = 5, b = 4 ; float c = 3.0, d ; 下列每小题中的d的值为?(a) d

    15、 = a / b ; d=1.0(b) d = (float)a / b ; d=1.25(c) d = c / b ; d=0.75(d) d = (int)c / b ; d=0.0(e) d = a / 2 ; d=2.0(f) d = a / 2.0 ; d=2.5(g) d = (float)a / 2 ; d=2.5(h) d = (int)c % 2 ; d=1.010写一个程序计算长为11.5厘米,宽为2.5厘米,高为10厘米的盒子的体积和表面积。 #include int main(void) double length, width, height; double area

    16、, 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 main(void) printf(1+2+3+4+5=%d, 1+2+3+4+5); return 0;

    17、(b) 计算并显示单精度浮点数1,1.1,1.2,2.0的平均值。#include int main(void) printf(average=%.2f, (1.0+1.1+1.2+1.3+1.4+1.5+1.6+1.7+1.8+1.9+2.0) / 11); return 0;第四章 键盘输入与屏幕输出 课后习题1 找出下面程序的错误。 #include int main() int num; printf( Please type a number followed by Enter ) ; scanf( %f, num ) ; 改为:scanf(%d, &num); printf( Th

    18、e number you typed was: %d, num ) ; return 0 ; 2 为下面的每小题写一个简单的scanf语句以接收对应的键盘输入:(a) int first ; scanf(%d, &first);(b) int second, third, fourth ; scanf(%d%d%d, &second, &third, &fourth);(c) float principal, rate, time ;scanf(%f%f%f, &principal, &rate, &time);(d) char keyval1, keyval2 ;scanf(%c%c, &k

    19、eyval1, &keyval2);(e) char c ;int i ; float f ; double d ;scanf(%c%d%f%lf, &c, &i, &f, &d);3 写一个程序,输入四个整数数字,然后以输入时相反的顺序输出它们。 #include int main(void) int num1, num2, num3, num4; printf(Please input four numbers: ); scanf(%d, &num1); scanf(%d, &num2); scanf(%d, &num3); scanf(%d, &num4); printf(The num

    20、bers 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.25printf(v1 = %.0f v2 = %.1f v3 = %.2f, v1, v2, v3);5 假设人的心率为每分钟75下,写一个程序,询问用户的年龄(以年为单位),然后计算并输出该用户到目前为止

    21、的生命中已有的心跳总数。 #include int main(void) int age, heart_beats; printf(Please input your age: ); scanf(%d, &age); heart_beats = age * 365 * 24 * 60 * 75; printf(The heart beats in your life: %d, heart_beats); return 0;6 写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息: 请输入华氏温度(度): 然后输入一个十进制数并回车,然后程序以合适的消息形式输出转换后的摄氏

    22、温度。程序使用如下的公式完成转换:摄氏温度 = 5.0 *(华氏温度 32.0) / 9.0#include int main(void) double fahr, cels; printf(Please input fahr: ); scanf(%lf, &fahr); cels = 5.0 * (fahr - 32.0) / 9.0; printf(The cels is: %.2f, cels); return 0;7 更改第6题中的程序,将输入的摄氏温度转换为对应的华氏温度。 #include int main(void) double fahr, cels; printf(Pleas

    23、e input cels: ); scanf(%lf, &cels); fahr = 9.0 * cels / 5.0 + 32.0; printf(The fahr is: %.2f, fahr); return 0;8 写一个程序从键盘输入三个单精度浮点数,然后计算:(a) 它们的和。(b) 它们的平均值。显示结果保留到小数点后三位。#include int main(void) float f1, f2, f3, sum, average; printf(请输入三个单精度数:); scanf(%f%f%f, &f1, &f2, &f3); sum = f1 + f2 + f3; aver

    24、age = sum / 3; printf(三个数的和为%.3f,均值为%.3f, sum, average); return 0;9 写一个程序从键盘输入两个整数,然后显示第1个整数占第二个整数的百分比,保留到小数点后1位。例如输入5和40,程序输出结果如下: 5 is 12.5 percent of 40 #include int main(void) int num1, num2; printf(请输入两个整数:); scanf(%d%d, &num1, &num2); printf(%d is %.1f percent of %d, num1, (num1 * 100.0 / num2

    25、), num2); return 0;10写一个程序从键盘输入两个整数,然后显示输出第1个数除以第2个数的结果。例如,输入123和12,程序的输出结果格式如下: 10 余数 = 3- 12 )123 提示:使用求余运算符获得余数,使用整数除法获得商。 #include int main(void) int num1, num2, remainder, quotient; printf(请输入两个整数:); scanf(%d%d, &num1, &num2); remainder = num1 % num2; quotient = num1 / num2; printf(%13d Remaind

    26、er = %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 ( marr

    27、iage_status = E ) printf( separated ) ; else if ( marriage_status = D ) printf( divorced ) ; else printf( error:invalid 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(error:invalid 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


    注意事项

    本文(C语言课后习题解析及答案.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开