第四章选择结构程序设计习题解答

合集下载

《C语言程序设计》课后习题答案解析[第四版]谭浩强

《C语言程序设计》课后习题答案解析[第四版]谭浩强

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n"); printf(" Very Good!\n\n");printf ("**************************\n"); return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。

C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。

这些函数的说明都包括在stdio.h文件中。

②main是主函数的名称。

实验4 选择结构程序设计答案

实验4  选择结构程序设计答案
default:
printf("Input Operator error!\n");
}
}
(3)下列程序的功能为:猜价格,用户输入自己估计的价格,程序判断其正确性。补充完善程序,以实现其功能。程序以文件名sy4_6.c保存。
#include "stdio.h"
main()
{float a,b;
printf("请主持人输入时尚手机的实际价格\n");
}
}
字符是数字输出字符串若该字符是大写字母输出字符串若该字符是小写字母输出字符串若该字符是其他字符输出字符串
实验
一、实验目的
1.掌握关系运算符和关系表达式的使用方法。
2.掌握逻辑运算符和逻辑表达式的使用方法。
3.掌握if语句、switch语句、条件运算符(?:)的使用方法。
4.掌握选择结构程序的设计技巧。
#include <stdio.h>
main()
{char ch,c1,c2;
printf("Enter a character:");
ch=getchar();
if((ch>='a')||(ch<='z'))// if((ch>='a')&&(ch<='z'))
ch-=32;
c1=ch-1;
c2=ch+1;
#include <stdio.h>
main()
{char c;
scanf(_____"%c", &c_____);
if(c>='0' &&c<='9')

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。

#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。

第四章选择结构程序设计(A级)

第四章选择结构程序设计(A级)

第四章选择结构程序设计(A级)填空题:1、表达式not true or true and false的值为false。

2、表达式ord(false)+5的值为5。

3、表达式pred(succ(true))的值为true。

4、表达式5 div 2<(5-2)的值为true。

5、"若A-B不小于C,则将B增加1,否则将B减少1“用Pascal 语言可表示为if A-B>=C then B:=B+1 else B:=B-1;。

6、"闰年指年号能被4整除,但不能被100整除,或者年号能被400整除的年"写成Pascal语言表达式为(year mod 4=0) and (year mod 100<>0) or (year mod 400=0)。

7、inc(ord(true))的结果是2。

8、表达式(2<=1) or not(2<10) and (10>4)的结果是false。

9、命题"m,n都是偶数或都是奇数"可表示为(m mod 2=0) and (n mod 2=0) or (m mod 2=1) and (n mod 2=1)。

10、dec(inc(ord(true)))的结果是1。

单项选择题:1、下面的表达式中,布尔值为true的是4+5 mod 2>4。

(4+5) mod 2>4'0'>'a'0>a2、下列选项中,不是布尔表达式的是5 div 3。

not b(x>0) or (y>0)9+4>5+33、下面哪一个是布尔变量的标识符?boolean。

trueintegerreal4、下面条件语句的格式书写不正确的是if 条件then 语句1; else 语句2。

if 条件then 语句1if 条件then 语句1 else 语句25、对于复合语句描述不正确的是begin后面没有符号,中间的语句末尾加";",最后一个语句与end之间必须加";"。

VB程序设计 习题及答案第4章 选择结构程序设计

VB程序设计 习题及答案第4章 选择结构程序设计

第4章选择结构程序设计4.1 写出数学式|x|<2.5×10-2对应的Visual Basic表达式。

【答案】x<2.5e-2 and x>-2.5e-24.2 逻辑运算符And、Or和Not的优先级最高的是哪一个。

【答案】Not4.3 已知 W=10 X=9 Y=8 Z=7 ,求下列表达式的结果。

(1) W>X And Y<=Z OR X>Y(2) X>Z Or W=Y AND Y<X(3) Not (W>Y And X=Z)(4) Not (Y<>X Or W*3>Z)【答案】(1) True(2) True(3) True(4) False4.4 写出下列十进制整数逻辑运算的结果:(1) X = 23 And 14(2) X = 23 Or 14(3) X = -1 And 19(4) X = -1 Or 10(5) X = Not -1【答案】(1) 6(2) 31(3) 19(4) -1(5) 04.5 已知变量X和Y的值分别为5、6,编写程序,交换变量X和Y的值。

【参考答案】程序代码设计Private Sub Form_Click()x = 5: y = 6t = x: x = y: y = tForm1.Print "x="; x, "y="; yEnd SubPrivate Sub Form_Load()Form1.AutoRedraw = TrueForm1.Print "x = 5", "y = 6"Form1.Print "单击窗体交换x,y的值"图4-1 程序运行结果End Sub程序运行结果如图4-1所示:4.6 从键盘输入一个学生的三科成绩,计算总分,并找出最高分。

【参考答案】(1)用户界面设计(2)控件属性设置(略)(3)程序代码设计Private Sub Command1_Click()g1 = Val(Text1.Text)g2 = Val(Text2.Text)g3 = Val(Text3.Text)Var = (g1 + g2 + g3) / 3g = g1If g < g2 Then g = g2If g < g3 Then g = g3Text4.Text = VarText5.Text = gEnd Sub图4-2 程序运行结果程序运行结果如图4-2所示。

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。

其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。

在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。

C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。

如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。

⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。

常见的关系运算符包括:<、<=、>、>=、==、!=等种类。

其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。

⽽前4种⾼于后2种。

例如, >优先于==。

⽽>与<优先级相同。

并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。

逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。

表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。

⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。

常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。

C语言习题四选择结构程序设计

C语言习题四选择结构程序设计

习题四选择结构程序设计1. 设变量x和y均已正确定义并赋值。

以下if语句中,在编译时将产生错误信息的是______。

A、if(x++);B、if(x>y && y!=0);C、if(x>0) x--D、if(y<0) {;}else y++; else x++;解析:本题考查的是if语句。

if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。

选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。

故本题答案选C。

2. 有以下程序main(){ int i;for(i=1;i<=40;i++){ if(i++%5==0)if(++i%8==0) printf ("%d",i);}printf("\n"); }执行后的输出结果是______。

A、5B、24C、32D、40解析:本题考查的是if语句的应用。

在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。

故本题答案选C。

3. 在嵌套使用if语句时,C语言规定else总是______。

A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对解析:本题考查的是if语句的使用规则。

在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。

故本题答案为C。

4. 有以下程序main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k); }程序运行后的输出结果是______。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
leap=1; else
leap=0; switch(month) { case 1: printf("This month has 31 days\n"); break; case 2:
{ if(leap==1) printf("This month has 29 days\n"); else printf("This month has 28 days\n"); break;
case 3:
deault:
7、解
#include "stdio.h" void main() {
char c1,c2; scanf("%c%c",&c1,&c2); if((c1-c2)%2==0)
printf("%c,%c",c1+1,c2+1); else
printf("%c,%c",c1-1,c2-1);
} case 3: printf("This month has 31 days\n");break; case 4: printf("This month has 30 days\n");break; case 5: printf("This month has 31 days\n");break; case 6: printf("This month has 30 days\n");break; case 7: printf("This month has 31 days\n");break; case 8: printf("This month has 31 days\n");break; case 9: printf("This month has 30 days\n");break; case 10: printf("This month has 31 days\n");break; case 11: printf("This month has 30 days\n");break; case 12: printf("This month has 31 days\n");break; default: printf(“Month is error data!"); } }
}
9、解:
#include "stdio.h" void main() {
float x, y; scanf("%f%f",&x,&y); if((x-2)*(x-2)+(y-2)*(y-2)>1)
printf("点A在圆外\n"); else if((x-2)*(x-2)+(y-2)*(y-2)==1)
printf("点A在圆上\n"); else
printf("点A在圆内\n"); }
10 解:
开始
输入年、月
判断是否为闰年 用一整型变量标识,1表示是,0表示否
Month==1、 3、 5、 N
N
7、8、10、12?
Month==2
N
Y
闰年
Y
Month== 4、6、9、11?
N Month==其它值
第四章 选择结构程序设计习题 解答
选择结构程序设计
根据某个变量或表达式的值作出选择, 决定执行哪些语句而不执行哪些语句。这样 的程序结构称为选择结构或分支结构。 实现选择结构的语句有:
分支语句(if语句)和 多分支语句(switch语句)
if-else 择条件语句
选择结构的一种最常用形式: if (表达式) 语句1;
else 语句2;
语句3 执行过程:
当括号内表达式成立时,即表达式的值是非0时, 执行语句1,然后语句3; 当表达式不成立时,值等于0时,执行语句2,然 后语句3,上面else部分也可以没有。
if多分支选择语句

表达式1

表达式2

语句1
语句2
先判断表达式1的值
非0就执行下面的语句
为0就执行下一个判断
}
开始 输入两字符
判断两字符之差 是否为偶数
Y 输出它们 的后继
N
输出它们 的前驱
结束
8、解
#include "stdio.h" void main() {
int a, b; scanf("%d%d",&a,&b); if(a%b==0)
printf("a/b=%d\n",a/b); else
printf("a/b=%d,%d\n",a/b,a%b);
Y
Y
输出31天
输出29天
输出28天
输出30天
输出数据错误
结束
#include "stdio.h" void main() {
int year, month,leap; scanf("%d%d",&year,&month); /*判断是否为闰年*/ if(year%400==0||(year%100!=0&&year%4==0))

一直这样做下去
直到得出最后结果

表达式3

语句3
语句4
if (表达式1) 语句1;
else if (表达式2) 语句2;
else if (表达式3) 语句3;
………… else 语句4;
语句5;
开关语句--sw 同 ⑶ 所 的⑵试句匹支b⑷前情一 一 的reccdccc枚以,s由现每执序配结cdc况后独个个语waaaaaaaeeksssssf举它每若于象一行列,构ssf下次立i表开句—eaeeeeteae语cuu每类们个只时(个i则。131,序分12达关——h34开Cll句:::::t后ts::s:个型 的语执,常执语:常发支式独语—w始wp—括{ir{}c, 值句行先量i行言量生时可立句非tc}c… cd执tcic… cdac—acnaa号aeaahse序每 必语求,d系h改出s每能就分独sst… fs行ess… fe独feeae内eea语((列个 须句表若f统变现u个产像支立(“u每表a表立l常%表常常句l常ut常常常互可系达与不频时tc生多结分个达l达分:a量:td达量量后量量量量不以列式常后s允率,的路构支”语式e式支语1式,语的2m1语2m是的相的量I面许不较不开结,句),c:cc)结d::句:的句常a:aa句零类同值I的:1,影高同关构或序sss则相构语)系语语语值eee系量语语和;个型,,语编响的结一去几列匹在213。句列句句句b只列只句句d:::或和否然句译运放果样执个r,配语e系m系系系e能m起系系f若表则后序出行在值,a行分a若句,+列+列k列列u是语列列1干达会自列错结前,程。支1;l没则系;1t21m整句2m语个式出;上—)果面;选序有b从列。b;形标b句r语的 现r而—,。可择常e其Ire、a号后ea的句类 互下非但根其k量ak后字的k加;出;。型 相依独在据中与;的符作现应 矛次立一之语型用的相 盾测分般,
相关文档
最新文档