c&&b+c>a&&" />
文档库 最新最全的文档下载
当前位置:文档库 › 选择结构题目

选择结构题目

选择结构题目
选择结构题目

1

单选(1分)

从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。

程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。

1.#include

2.#include

3.int main()

4.{

5.float a, b, c;

6.float s, area;

7.printf("Input a,b,c:");

8.scanf("%f,%f,%f",&a,&b,&c);

9.if (a+b>c && b+c>a && a+c>b)

10.{

11.s = 1/2 * (a + b + c);

12.area = sqrt(s * (s - a) * (s - b) * (s - c));

13.printf("area=%.2f\n", area);

14.}

15.else

16.{

17.printf("It is not a triangle\n");

18.}

19.return 0;

20.}

? A.

第12行:area = sqrt(s * (s - a) * (s - b) * (s - c));

? B.

第11行:s = 1/2 * (a + b + c);

? C.

第8行:scanf("%f,%f,%f",&a,&b,&c);

? D.

第9行:if (a+b>c && b+c>a && a+c>b)

2

单选(1分)

下列复合语句中,不能实现两数交换的是

得分/总分

? A.

1.{

2. b = a * b;

3. a = b / a;

4. b = b / a;

5.}

? B.

1.{

2.t=a;

3.a=b;

4.b=t;

5.}

? C.

1.{

2. a = a + b;

3. b = a – b;

4. a = a – b;

5.}

? D.

1.{

2.a=b;

3.b=a;

4.}

3

单选(1分)

写出下面程序的输出结果

1.#include

2.int main()

3.{

4.int x=1, y=0, a=0, b=0;

5.switch(x)

6.{

7.case 1:

8.switch(y)

9.{

10.case 0: a++;

11.case 1: b++;

12.}

13.case 2: a++;

14.b++;

15.}

16.printf("a=%d, b=%d\n", a, b) ;

17.return 0;

18.}

得分/总分

? A.a=1, b=0

? B.a=2, b=1

? C.a=1, b=1

? D.a=2, b=2

4

单选(1分)

下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。

1.#include

2.int main()

3.{

4.int m;

5.printf("Input m: ");

6.scanf("%d", &m); //输入一个整数

7.if (m > 0) //是否为正数

8.{

9.if (m % 2 == 0) //是正数,且能被2整除,则是正偶数

10.{

11.printf("%d is a positive even\n", m);

12.}

13.else //不能被2整除,则是正奇数

14.{

15.printf("%d is a positive odd\n", m);

16.}

17.}

18.

19.

20._______________ //判断是否为负数

21.

22.{

23._______________

24.

25.{

26.printf("%d is a negative even\n", m); //是负偶数

27.}

28.else

29.{

30.printf("%d is a negative odd\n", m); //是负奇数

31.}

32.}

33.else

34.{

35.printf("%d is zero.It is an even\n", m);

36.}

37.return 0;

38.}

得分/总分

? A.

第19行代码:else if(m < 0)

第22行代码:if (m % 2 != 0)

? B.

第19行代码:if(m < 0)

第22行代码:if (m % 2 != 0)

? C.

第19行代码:if(m < 0)

第22行代码:if (m % 2 == 0)

? D.

第19行代码:else if(m < 0)

第22行代码:if (m % 2 == 0)

5

单选(1分)

编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。

程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。

1.#include

2.#include

3.int main()

4.{

5.int x;

6.double y;

7.printf("Input x: ");

8.scanf("%d", &x); // 输入一个整数

9.if (x > 0)

10.{

11.y = exp(-x); //如果大于0,计算y=exp(-x)的值

12.}

13._____________

14.{

15.y = 1; //x=0,则y=1

16.}

17.else

18.{

19.y = -exp(x); //x<0,则y=-exp(x)

20.}

21.printf("y=%f\n", y);

22.return 0;

23.}

得分/总分

? A.

else if (x = 0)

? B.

if (x == 0)

? C.

else if (x == 0)

? D.

if (x = 0)

选择结构程序设计习题

选择结构程序设计练习 1.从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。[提示]根据字符型数据的ASCII码值是否在‘0’字符与‘9’字符之间进行判断。使用if…else…语句。 精选文档,供参考!

2.编写一个程序,其功能为:从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y!=z”的信息。[提示] 条件判断表达式x+y==z 3.编写一个程序,其功能为:输入三个整数,输出最大数和最小数。 [提示] 设置最大值变量max和最小值变量min;首先比较a,b的大小,并把大数存入max,小数存入min;然后最大值变量max和最小值变量min 再与c比较,若c大于max,则max取值c,否则保持不变;如果c小于min,则min取值c,否则保持不变。最后输出max和min的值。使用if…else…语句、if语句以及复合语句。 精选文档,供参考!

精选文档,供参考!

4.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为:分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。 精选文档,供参考!

5.分段函数的计算。编写一个程序,计算下列函数: y= x x<1 2x-1 1≤x<10 3x-11 x≥10 [提示]根据输入的x值的取值,计算y的值并输出。使用if…else if语句以及复合语句。 精选文档,供参考!

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

顺序结构选择结构和循环结构的程序设计典型例题分析与解答

顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构 【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支 2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。 【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。 【答案】直到型 3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。 【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。【答案】#include"stdio.h"或#include<stdio.h> 4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( ) ①'A'/②A/③x=A/ ④x=A,y=12/ 12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键 【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符, 在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。【答案】④ 5 设有下列程序段,则执行该程序段后的输出是( ) int i=012; float f=1.234E-2; printf("i=%-5df=%5.3f",i,f); ... ①i=__012f=1.234 ②i=10___f=0.012 ③10___O.012 ④___100.012 注:答案中的_代表一个空格。 【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。只有备选答案②符合题意。【答案】② 6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。 【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。 【答案】File/Save F2 7 下列各种选择结构的问题中,最适合用if-else语句来解决的是( ) ①控制单个操作做或不做的问题 ②控制两个操作中选取一个操作执行的问题 ③控制三个操作中选取一个操作执行的问题 ④控制10个操作中选取一个操作执行的问题 【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。 【答案】② 8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。请填写程序中所缺少的语句。 main() {char ch ; scanf(”%c”,&ch〕; ch=ch- 32+1; ___________________; printf("%c\n",ch); } 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。完成这个任务的语句是一条单分支语句,正是所缺少的语句。 【答案】 if (ch=='Z'+l) h='A'; 9不能正确计算下列分段函数的程序段是_________ |-1 x<0 y=|0 x=0 x>0 ① switch(x< 0)② if(x> 0) {case1:y=-1;break; y=1; case 0:switch(x==0)else {casel:y=0;break;if(x==0) case 0: y= l;y=0 } else } &ny=-l ③ y= l;④ y= l; if(x==0)if(x<0) y=0; y =-l; else else y=- l; if(x== 0) y=0; 【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。 【答案】③ 10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。 【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式 2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); ① 6,10 ②5,8 ③4,6 ④3,4 【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x=1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。 【答案】② 12 执行下列程序段,其中的do-while循环一共执行_次。 static int x; do x+=x*x; while (x); 【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*

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

第四章选择结构程序设计 一、填空 1.在C语言中,表示逻辑“真”值用_________。 2.得到整型变量a的十位数字的表达式为_________。 3.表达式:(6>5>4)+(float)(3/2)的值是_________。 4.表达式:a=3,a-1‖--a,2*a的值是_________。(a是整型变量) 5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。(a是整型变量)6.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以 _________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 7.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。 8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。 二、编程: 1.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 2.输入三个整数x,y,z,请把这三个数由小到大输出。 3.输入某年某月某日,判断这一天是这一年的第几天? 4.本程序演示从键盘输入x的值,计算并打印下列分段函数的值。 y=0(x<60) y=1(60<=x<70) y=2(70<=x<80) y=3(80<=x<90)

c语言选择结构试题带答案

1. 以下非法的赋值语句是 A: n=(i=2,++i); B: j++; C: ++(i+1); D: x=j>0; 2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是A: 6 B: 0 C: 2 D: 1 3. 阅读以下程序: main() { int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else printf(“%d”,x++); } 程序运行后,如果从键盘上输人5,则输出结果是()。 A: 3 B: 4 C: 5 D: 6 4. 有如下程序 main0 { int a=2,b=-1,c=2; if(a main()

a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b); } 输出结果是( )。 A: 2,1 B: 3,2 C: 4,3 D: 2,-1 6.两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A: 7 和5 B: 6 和3 C: 7 和4 D: 6 和4 7. 能表示x 为偶数的表达式是 A: x%2==0 B: x%2==1 C: x%2 D: x%2!=0 8. 下面的程序段中共出现了几处语法错误? int a,b; scanf("%d",a); b=2a; if(b>0) printf("%b",b); A: 1 B: 2 C: 3 D: 4 9. C 语言中,逻辑“真”等价于 A: 大于零的数 B: 大于零的整数 C: 非零的数 D: 非零的整数

选择结构程序设计练习题

选择结构程序设计练习题 1.逻辑运算符两侧运算对象的数据类型( ) A.只能是0和1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 2.下列运算符中优先级最高的是( ) A.< B.+ C.&& D.!= 3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( ) A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)

4.表示图中坐标轴上阴影部分的正确表达式是( ) A.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c) C.(x<=a)||(x>=b)&&(x<=c) D.(x<=a)&&(b<=x<=c 5.判断char型量ch是否为大写字母的正确表达式是() A.‘A’<=ch<=‘Z’ B.(ch>=‘A’)&(ch<=‘Z’) C.(ch>=‘A’)&&(ch<=‘Z’) D.(‘A’<=ch)AND(‘Z’>=ch) 6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 () A.‘x’&&‘y’ B.x<=y C.x||y+z&&!y D.!(x

7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是() A.0 B.语法错误 C.1 D.“假” 8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是() A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2 9.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为() A.1 B.2 C.3 D.4 10.下列运算符中优先级最低的是( )优先级最高的是( ) A.? B.&& C.+ D.!=

C语言期中测试题(含答案)

一、填空 1.C语言源程序文件的后缀是 .c 。 2.结构化程序由顺序结构、选择结构、循环结构三种基本结构组成。 3.在C语言中,用关键字 int 定义基本整型变量,一个基本整型变量系统分配 2 字节,用关键字 float定义单精度实型变量,一个单精度实型变量系统分配 4 字节,用关键字 double 定义双精度实型变量,一个双精度实型变量系统分配 8 字节。二、选择 1.以下选项中正确的实型常量是( A ) A.12. B.-20 C. 1,000 D. 4 5 6 2.以下选项中不正确的实型常量是(无正确答案) A. B. C. D. 456e-2 3.以下选项中不合法的用户标示符是( C ) A. _123 B.A12_1 C. A $ D.Dim 4.C语言中运算对象必须是整型的运算符是( A ) A .% B./ C.! D.* 5. 若变量已正确定义并赋值,符合C语言语法的表达式是( B ) A.a=a+7 ; B.a=7+b+c,a++ C. int%4) D.a=a+7=c+b 6.下面合法的赋值语句是( C ) A.a=b=58 B.k=int(a+b) C. a=58,b=58 D.--i 7.若变量已正确定义为int ,要给a,b,c输入数据,正确的输入语句是( D ) A.read(a,b,c) B.scanf(“%d%d%d”,a,b,c) C.scanf(“%D%D%D”,&a,&b,&c) D.scanf(“%d%d%d”,&a,&b,&c) 8.若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句组是( C ) A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t; C.a=t;t=b;b=a D.t=b;b=a;a=t; 9.若有正确定义语句:

C语言选择结构程序设计编程题.doc

实验2 选择结构程序设计 一.实验目的: 1.掌握选择控制语句的使用方法; 2.了解C程序语句的执行过程。 二.实验内容: 1.编写程序:输入一个整数,判断该数的奇偶性。(输出相应的标志even-偶数odd-奇数,请记住这两个单词)。 2.从键盘输入的正整数,判断是否能被5和7同时整除,若是,则输出Yes;否则输出No。 3.输入一个字符,如果是大写字母改变为小写字母;如果是小写字母,则把它变为大写字母;若是其它字符则不变。 4.编写程序,对于给定的一个百分比制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E’(用if…else…与switch 语句两种方法实现)。 5. 企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提成10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万元到40万元之间时,高于20万元的部分,可提5%;40万元到60万元之间时,高于40万元的部分,可提成3%;60万元到100万元之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求发放奖金总数。 6. 输入某年某月某日,判断这一天是这一年的第几天。 7. 输入一个字符,请判断是字母、数字还是特殊字符。 8. 身高预测: 男性成人身高=(父亲身高+母亲身高)*0.54cm 女性成人身高=(父亲身高*0.923+母亲身高)/2cm 如果喜爱体育锻炼,那么身高可增加2%;如果有良好的饮食习惯,可增加身高1.5%。键盘输入性别、父母身高、是否爱好体育锻炼、是否有良好的饮食习惯,利用给定身高预测方法对你的身高进行预测。 9. 要求用switch语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式。 操作数1 运算符op 操作数2 计算表达式的值。指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。 在此基础上,增加如下要求: (1)如果要求程序能进行浮点数运算,程序应该如何修改?如何比较实型变量和常数0是否相等? (2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改? (3)如果要求连续多次算术运算,每次运算结束后,程序都给出提示: Do you want to continue(Y/N y/n)? 如果用户输入Y或y时,程序继续进行其它算术运算,否则程序才退出运行状态。那么程序如何进行修改?

作业2 选择结构作业

顺序结构练习2 1 解 2 输入实数x ,求下面的三角波脉冲函数 F(x) 的值 3 书本P98第3题 4书本P98第4题 ? ????<≤+-<≤-≥<=0.320.300 .165.00 .300.280.145.00.32,0.280 .0)(x x x x x x x F 02=++C Bx Ax

以下题目选做: 5 用IF语句编写下面功能程序: (1) 读入a,b,若a>b,则置X=1.23,否则置X=32.1,打印X值; (2) 读入a,b,c,d,若a+b>c+d,则X=1.1,若a+b=c,则X=0.0,若a+b0,则Z=cosX); 当X>0时,Z=100,打印Z值。 7 读入一个整型变量N的值,用CASE构造编程, 若N=1、2、3、5,则Y=X; N=4、8,则Y=X2; N=6、7,则Y=X3,其它情况则Y=0,打印Y值。 8 输入一个数M,判断能否被7,11,17整除,如能被以上三个数之一整除,则打印出“M能被7(或11,17)整除”,如不能被以上三个数整除,则打印出“M 不能被1,11,17整除” 9 输入四个数A,B,C,D,按照由大到小的顺序把它们打印出来 10 有四个原,圆心分别为(2,2)(-2,2)(2,-2)(-2,-2),圆半径为1,坐标在圆上或者园内的点,相应的H值为10,园外的点,响应的H值为零。输入一个坐标点(X,Y),求相应的H(提示:用逻辑变量)

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max

switch选择结构作业

1、有else if块的选择结构是()C A.基本if选择结构 B.if-else选择结构 C.多重if选择结构 D.switch选择结构 2、下列关于if选择结构和switch选择结构的说法正确的是()BD A.if-else选择结构中else语句是必须有的 B.多重if选择结构中else语句可选 C.嵌套if选择结构中不能包含else语句 D.switch选择结构中default语句可选 3、下列代码运行结果是? 很干燥 public static void main(String[] args) { int shiDu = 45; if (shiDu >= 80) { System.out.println("要下雨了"); } else if (shiDu >= 50) { System.out.println("天很阴"); } else if (shiDu <= 30) { System.out.println("很舒适"); } else if (shiDu >= 0) { System.out.println("很干燥"); } } 4、下面代码运行结果是()学钢琴 public static void main(String[] args) { int day = 3; switch (day) { case 1: case 3: case 5: System.out.println("学钢琴"); break; case 2: System.out.println("学英语"); default: System.out.println("休息哦"); } } 5、下列语句序列执行后,k 的值是( )。54 int x = 6, y = 10, k = 5; switch (x % y) { case 0: k = x * y;

第4章选择结构习题答案

第四章选择结构习题参考答案: 一、选择题 1-10:A CABD CADD A 11-20:C CBDC ACACB 21-30:D CB B D AC A BA 31-40:DCDCB BAACB 41-50:CDDDA A A D DB 二、填空题 (1) 2 (2) 4,5,99 (3) 10 20 0 (4) 2 1 (5) -4 (6) 3 (7) yes (8) 1 (10) 20,0 (11) 585858 (12) 0 三、编程题 1, .#include void main() { int x,y; scanf(“%d”,&x); if(x>-1) {if(x>5) y=2*x+5; else if(x>2) y=x*(x+2); else y=2*x; printf(“y=%d\n”,y); } else printf(“输入值范围错误!”) ; } 2, . #include void main() {float a,b; scanf(“%f”,&a); if(a<2000) b=0; else if(a<4000) b=a*0.03; else if(a<5000) b=a*0.04; else b=a*0.05; printf(“收入所得税为:”,b); } 3,题目:输入某年某月某日,判断这一天是这一年的第几天? 方法一: #include void main() { int year,month,daily,sum;

printf("请输入年月日:/n"); scanf("%d%d%d",&year,&month,&daily); switch(month) { case 1:{sum=daily;break;} case 2:{sum=31+daily;break;} case 3:{sum=31+28+daily;break;} case 4:{sum=31+28+31+daily;break;} case 5:{sum=31+28+31+30+daily;break;} case 6:{sum=31+28+31+30+31+daily;break;} case 7:{sum=31+28+31+30+31+30+daily;break;} case 8:{sum=31+28+31+30+31+30+31+daily;break;} case 9:{sum=31+28+31+30+31+30+31+31+daily;break;} case 10:{sum=31+28+31+30+31+30+31+31+30+daily;break;} case 11:{sum=31+28+31+30+31+30+31+31+30+31+daily;break;} case 12:{sum=31+28+31+30+31+30+31+31+30+31+30+daily;break;} default:{printf("你输入的月份不对,请重新输入。/n");}; } if((year%400==0||(year%4==0 && year%100!=0) ) &&month>=2) printf("你输入的日子是%d年的第%d天。/n",year,sum+1); else printf("你输入的日子是%d年的第%d天。/n",year,sum); } 方法二: #include void main() {int day,month,year,sum,leap; printf("/nplease input year,month,day/n"); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ {case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; /*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!= 0))/*判断是不是闰年*/ leap=1; else leap=0; if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum=sum+1; printf("这一天是这一年的第%d 天.",sum); }

C语言第二次作业(选择结构)

C语言第二次作业 .要求写出: 一、实验目的: 1.了解C语言表示逻辑量的方法。 2.学会正确使用逻辑运算符和逻辑表达式。 3.熟练掌握if语句的使用。 4.熟练掌握多分支选择语句—switch语句。 5.结合程序掌握一些简单的算法。 6.进一步学习调试程序的方法。 二、实验内容:(程序代码及调试结果) 1.某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。判断从键盘输入的年份是否为闰年。 #include int main () { int x; printf("请输入年份:\n"); scanf("%d",&x); if(x%400==0){ printf("该年是闰年"); } else{

if(x%4==0){ printf("该年是闰年"); } else{ printf("该年不是闰年"); } } } 2、某个自动加油站有‘a’,‘b’,‘c’三种汽油品种,单价分别为 6.92, 7.37,7.64(元/公升),也提供了“自己加”或“协助加” 两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量m,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。(请用多分支选择switch语句)。 #include

int main() { double x,z,pay; char y,l; printf("请选择汽油品种\n"); scanf(" %c",&y); switch(y) {case 'a': z=6.92;break; case 'b': z=7.37;break; case 'c': z=7.64;break; default: printf("选择错误\n"); } printf("请输入汽油量\n"); scanf("%lf",&x); printf("请选择服务等级\n"); scanf(" %c",&l); switch(l) {case 'f':

第4章 4.1选择结构习题

选择结构习题 一、单项选择题 1.假设Text1文本框中输入了学生的成绩,以A,B,C,D,E字符表示不同的等级,下 列语句中_________可用于判断输入数据是否正确。 A.If “A”<=Text1<=”E” Then MsgBox “输入正确” Else MsgBox “输入错误” B.I f “A”<=Text1 Or Text1<=”E” Then MsgBox “输入正确” Else MsgBox “输入错误” C.I f A<=Text1 And Text1<=E Then MsgBox “输入正确” Else MsgBox “输入错误” D.If “A”<=Text1 And Text1<=”E” Then MsgBox “输入正确” Else MsgBox “输入错误” 2.下面程序段的功能是求两个数中的大数,________是不正确的。 A.Max=IIf(x>y,x,y) B.If x>y Then Max =x Else Max=y C.Max=x; If y>=x then Max =y D.If y>=x Then Max=y;Max=x; 3.对于选择结构语句If x=10 Then y=100,下列说法正确的是_________。 A.x=10 和y=100均为赋值语句 B.x=10 和y=100均为关系表达式 C.x=10 为关系表达式,y=100为赋值语句 D.x=10 为赋值语句,y=100为关系表达式 4.关于结构化程序设计的描述,下述说法中正确的是____________。 A.面向对象、顺序执行 B.面向过程、事件驱动 C.面向过程、顺序驱动 D.面向对象、事件驱动 5.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_click() x=val(InputBox(“Input ”)) Select Case x Case 1,3 Print “分支1” Case Is>4 Print “分支2” Case Else Print “Else分支” End Select End Sub 程序运行后,如果在输入对话框中输入2,则窗体上显示的是__________。 A.分支1 B. 分支2 C. Else 分支 D.程序出错 6. 以下Case语句中错误的是________。 A.Case 0 To 10 B. Case Is>10 C. Case Is>10 and Is<50 D. Case 3,5,Is>10

C语言选择结构考试试题

C 语言选择结构考试试题 一、选择题(每题2分,共30分) 1. 有如下程序: main () { int x=1,a=0,b=0; switch (x ) { case 0: b++; case 1: a++; case 2: a++;b++; } printf ("a=%d,b=%d \n",a,b );} 该程序的输出结果是 A )a=2,b=1 B )a=1,b=1 C )a=1,b=0 D )a=2,b=2 2. 有以下程序 main () { int i=1,j=1,k=2; if ((j++||k++)&&i++)printf ("%d,%d,%d \n",i,j,k );} 执行后输出结果是 A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 3. 有如下程序 main () { float x=2.0,y; if (x<0.0)y=0.0; else if (x<10.0)y=1.0/x; else y=1.0; printf ("%f \n",y );} 该程序的输出结果是 A )0.000000 B )0.250000 C )0.500000 D )1.000000 4. 设int x=1,y=1;表达式(!x||y--)的值是 A )0 B )1 C )2 D )-1 5. 若运行时给变量x 输入12,则以下程序的运行结果是 main (){ int x,y; scanf ("%d",&x ); y=x>12?x+10:x-12; printf ("%d \n",y );} A )0 B )22 C )12 D )10 6. 在C 程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表

选择结构练习题

选择结构练习题 一、选择题 1.下列错误的语句是() A.if(a>b) printf(“%d”,a); B.i f(&&); a=m C.i f(1)a=m;else a=n; D.if(a>0);{else a=n;} 2. #include main() { int x,y; scanf(“%d”.&x); y=0; if (x>=0) {if (x>0) y=1;} else y=-1; printf (“%d”,y); } 当从键盘输入32时,程序输出结果为() A.0 B. -1 C. 1 D. 不确定值 2.以下程序的输出结果是() #include main() { int a=2,b=-1,c=2; if (a>b) if (b<0 ) c=0; else c+=1; printf(“%d\n”,c); } A.0 B. 1 C.2 D.3 4. 以下程序的输出结果是() #include main() { int k=2; switch (k) {case 1:printf(“%d\n”,k++);break; case 2:printf(“%d”,k++); case 3:printf(“%d\n”,k++);break; case 4:printf(“%d\n”,k++); default :printf(“Full!\n”);} } A.1 3 B.2 3 C.2 2 D 3 2 5.下列程序的运行结果是()

main() { int a=2,c=5; printf(“a=%d,b=%d\n”,a,c); } A. a=%2,b=%5 B. a=2,b=5 C.a=c,b=d D a=%d,b=%d 6.语句pritnf(“a\bre\’hi\’y\\\bou\n”);的输出结果是() A. a\bre\\’hi\’y\\bou B.a\bre\’hi\’y\bou C.re’hi’you D. abre’hi’y\bou 7.如下程序的输出结果是() #include main() {int a=12,b=5,c=-3; if(a>b) if(b<0) c=0; else c++; printf(“%d\n”,c); } A.0 B. 1 C. -2 D.-3 8.从键盘输入5,下列程序运行结果是() #include main() {int x; scanf(“%d”,&x); if(x--<5) printf(“%d”,x); else print(“%d”,x++); } A. 3 B.4 C. 5 D.6 9. 如下程序的输出结果是() #include main() { int a=15,b=21,m=0; switch(a%3) {case 0: m++;break; case 1: m++; switch(b%2) {default: m++; case 0: m++; break; } } printf(“%d\n”,m); } 10.下面的程序() #include main() {int x=3,y=0,z=0;

相关文档