新编C语言程序设计周二强版课后习题练习4答案.docx
- 文档编号:26373178
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:23
- 大小:301.04KB
新编C语言程序设计周二强版课后习题练习4答案.docx
《新编C语言程序设计周二强版课后习题练习4答案.docx》由会员分享,可在线阅读,更多相关《新编C语言程序设计周二强版课后习题练习4答案.docx(23页珍藏版)》请在冰豆网上搜索。
新编C语言程序设计周二强版课后习题练习4答案
练习4
C语言中“真”和“假”的编码有何特点e为整型变量,!
e与e!
=1等价吗与e==0等价吗
答:
C语言中“真”和“假”的编码简单地说,0表示“假”,非0代表“真”。
在逻辑运算时如此,0表示“假”,非0代表“真”。
不过需注意,在表示逻辑运算结果时,“假”为0,“真”为1。
当e为0时,!
e的值为1;e!
=1的值为0;e==0的值为1。
当e为非0时,!
e的值为0;e!
=1的值可能(e不等于0也不等于1时)为0,可能(e等于1时)为1,;e==0的值为0。
反之,e==0的值为0时,e为非0,!
e的值也为0。
e==0的值为1时,e为0,!
e的值也为1。
综上所述:
!
e与e!
=1不等价,与e==0等价。
C语言中逻辑量的编码特点对算术运算和逻辑运算有何影响
答:
由于没有专门的逻辑类型,C语言中的算术运算和逻辑运算可以“混合”,如!
5*3,而类似的表达式往往没有什么实际意义。
给出逻辑或||和逻辑非!
的真值表。
答:
逻辑或||的真值表
a的值
b的值
a||b的值
真(非0)
真(非0)
真
(1)
真(非0)
假(0)
真
(1)
假(0)
真(非0)
真
(1)
假(0)
假(0)
假(0)
逻辑非!
的真值表
a的值
!
a的值
真(非0)
假(0)
假(0)
真
(1)
计算下面各逻辑表达式的值,其中字母均为变量,且a=2,b=3,c=5。
1.a*b>c&&a+b<=c2.a+b>c||a+b 3.'0'&&a (a>c)-1 5.a>b a*c>b||c=a 7.a>0&&(x=b||1)8.! (x=c)||a==b-1 答: 1.a*b>c的值为真,a+b<=c的值为真,故原表达式为真。 2.a+b>c的值为假,a+b 3.'0'的值为真,a 4.'\0'的值为假,! (a>c)-1为假,故原表达式为假。 5.a>b的值为假(0),0 6.! a*c>b为假,c=a的值为真,故原表达式为真。 7.a>0的值为真,(x=b||1)的值为真,故原表达式为真。 8.! (x=c)的值为假,a==b-1的值为真,故原表达式为真。 写出与下面结论等价的C语言表达式。 1.三边长为a,b,c的三角形是直角三角形。 2.a,b,c三个整数中b最大。 3.a,b,c三个整数中,至少有两个是负数。 4.a,b,c三个整数中,只有两个是负数。 5.字符型变量ch为大字字母。 6.x的取值范围在[1,10]或(23,72]。 7.1 9.x取值为函数f(x)= 的定义域。 答: 1.a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a 2.b>a&&b>c 3.a<0&&b<0||a<0&&c<0||b<0&&c<0 4.a<0&&b<0&&c>=0||a<0&&c<0&&b>=0||b<0&&c<0&&a>=0 5.ch>=’A’&&ch<=‘Z’ 6.x>=1&&x<=10||x>23&&x<=72 7.x>1&&x<3||x<0 8.(x>=2||x<=1)&&x! =0 用两条语句x<0&&(x=-x);printf("%f\n",x);可以输出x的绝对值吗如何评价这样的语句 答: 可以,不过可读性太差! 用if结构验证练习三的,题,并为,和的程序中增加输入数据合法性检查的代码。 答: (原答案已经用if结构验证了) if(! (c>='b'&&c<='y')) { printf("输入错误,程序退出! \n"); return; } if(! (fa+fb>fc&&fa+fc>fb&&fc+fb>fa)) { printf("输入错误,三边不能构成一个三角形,程序退出! \n"); return; } 输入一个小写字母,将字母循环后移3个位置后输出。 如'a'变成'd','y'变成'b'。 (用if结构实现而非表达式((ch+3-'a')%26+'a') 答: 画出下面程序的流程图。 程序有几条可执行路径每条可执行路径分别对应什么样的输入数据 #include<> voidmain() { intx,y,z=0; scanf("%d%d",&x,&y); if(x>0) z=x+y; if(y>0) z=x-y; printf("x=%d,y=%d,z=%d\n",x,y,z); } 可见程序有4条可执行路径。 第一条: x>0且y>0时程序的执行路径(如输入数据为2、3时);第二条: x>0且y<=0时程序的执行路径(如输入数据为2、-5时);第三条: x<=0且y>0时程序的执行路径(如输入数据为-2、5时);第四条: x<=0且y<=0时程序的执行路径(如输入数据为-2、-5时)。 用if结构改写例4-10、例4-11和例4-19。 答: 输入整数x和y,若x2+y2大于100,则输出x2+y2百位以上的数字,否则输出两数之和。 答: 有一函数: 编程,输入x时输出y值; 要求: 参照例4-13用两种方法,并画出流程图。 答: 输入一个字符,如果是大写字母,则输出小写;如果是小写字母,则输出大写;其它字符,原样输出。 (分别用if结构和if-else结构实现) 答: if-else结构 if结构 正确的if结构 以下程序用于输出x,y,z中的最大值,请在下划线上填入正确内容。 #include<> voidmain() { intx=12,y=5,z=8; intmax; max=x printf("%d\n",max } 答: y: x z: max 用if结构改写例4-16。 答: 程序实现了下面的函数(x为整型),请在下划线上填入正确的内容。 #include<> voidmain() { intx,i; floaty; scanf("%d",&x); if()i=5; elsei=; switch(i) { case0: y=x; break; case1: case2: y=10; break; case3: case4: y=30-*x; break; case5: y=50; break; default: y=-1; break; } if() printf("y=%\n",y); else printf("输入错误! \n"); } 答: x>=50 i/10 y! =-1 用break语句退出switch结构后,程序将如何执行呢分析下面程序的输出。 #include<> voidmain() { inta=2,b=3; switch(a>0) { case1: switch(b<0) { default: printf("case1: default\n"); case1: printf("case1: case1\n"); break; case2: printf("case1: case2\n"); break; } case2: printf("case2: \n"); default: printf("default! \n"); break; case0: printf("case0: \n"); } printf("a=%d,b=%d\n",a,b); } 答: if-else结构可以用switch结构改写吗 答: 可以,不过if-else结构为什么要改写成switch结构呢 if(表达式) 语句1; else 语句2; 等价的switch结构为: switch(表达式) { case1: 语句1; break; case0: 语句2; break; } 整型变量x与字符型变量y有如下对应关系。 x y x/100 100<x≤200 A 1,2 200<x≤500 B 2,3,4,5 500<x≤1000 C 5,6,7,8,9,10 1000<x D 10,11,12…… 输入x的值时输出相应y的值。 要求程序用switch结构实现。 (提示: 考虑(x-1)/100的值) 答: 分析程序的功能。 #include<> voidmain() { inta,b,c; printf("a=");scanf("%d",&a); printf("b=");scanf("%d",&b); printf("c=");scanf("%d",&c); if(a if(b printf("\n%d,%d,%d\n",a,b,c); else printf("\n%d,%d,%d\n",a,c,b);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编 语言程序设计 周二 课后 习题 练习 答案
