选择结构程序设计题
c语言选择结构程序设计举例
1、输入两个数x,y的值,输出其中的较大者。
2、输入3个数x,y,z的值,输出其中的最大者。
3、求ax2+bx+c=0方程的解的情况。
基本的算法:
①a=0,不是二次方程。
②b2-4ac=0,有两个相等实根。
③b2 -4ac>0,有两个不等实根。
④b2 -4ac<0,有两个共轭复根。
4、输入任意三个数,判断能否构成三角形?若能构成三角形,是等边三角形、等腰三角形还是其他的三角形。
5、输入三角形的三边长,判断能否构成三角形;
若能构成,则计算出三角形的面积,
否则,输出“不能构成三角形”的信息。
6、给出一个不多于4位的正整数,求出它是几位数,逆序打印出各位数字。
7、从键盘输入1个整数,判断它是奇数还是偶数。
C语言-第4章 选择结构程序设计
第4章选择结构程序设计注:选择结构的考点,最重要的有两个,一个是逻辑表达式的值,另一个是分支界限。
弄明白这两个知识点,就能够以不变应万变了。
一、单项选择题1. 在C语言中,能代表逻辑值"真"的是。
A) true B)大于0的数C)非0整数D)非0的数2. 表示关系x<=y<=z的c语言表达式为。
A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)3. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是。
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=04、判断char型变量c1是否为大写字母的表达式为。
A)’A’<=c1<=’Z’ B)(c1>=’A’) & (c1<=’Z’)C)(’A’<=c1)AND (‘Z’>=c1) D)(c1>=’A’)&& (c1<=’’Z’)5. 有定义char c; c=getchar(); 判断字符变量c为大写字母的正确表达式为。
A) ‘A’=<c<=’Z’ B)c>=‘A’&& c<=’Z C)A=<c<=Z D) c>=A && c<=Z6. 设有语句“int a=4;b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是。
A)1B)0 C)-1 D)出错7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是。
选择结构程序设计练习题
选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型( )A.只能是0和1B.只能是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<=c5.判断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<=yC.x||y+z&&!yD.!(x<y)&&!z||1)7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是( )优先级最高的是( )A.?B.&&C.+D.!=11.以下程序的运行结果是( )#include<stdio.h>main(){int a,b,d=241;a=d/100%9; b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为( )int a,b,c;a=b=c=1; ++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1 A.6 B.0 C.1 D.414.以下不正确的if语句形式是()A.if(x>y&&x!=y);B.if(x==y)x+=y;C.if(x!=y)scanf(“%d“,&x) else scanf(“%d”,&y);D.if(x<y){x++;y++;}15.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( )if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:( )A.if(x>0) printf(“%f”,x)else printf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x)C.if(x>0){x=xy; pri ntf(“%f”,x);};else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);17.请阅读以下程序,该程序( )main(){int a=5,b=0,c=0;if(a+b+c) printf(“***\n”); else printf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);} A.4 B.5 C.6 D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是( )if(a<b)if(c<d) x=1;else if(a<c)if(b<d)x=2;else x=3;else x=6;else x=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={ x(x=0)x+1 (x>0)则下面程序段中能正确表示上面关系的是( )A.y=x+1; if(x>=0) if(x==0) y=x; else y=x-1;B.y=x-1 if(x!=0) if(x>0) y=x+1; else y=x;C.if(x<=0) if(x<0) y=x-1; else y=x; else y=x+1;D.y=x; if(x<=0) if(x<0) y=x-1; else y=x+1;21.以下程序的输出结果是( )main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;else if(ok2) a=10;a=-1; printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是( )main(){int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf(“%d\n”,z);}A.3B.2C.1D.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。
选择结构程序设计,循环结构程序设计习题
case 2: case 4;n+ =2;k--;break;
}
printf("%d",n);
}while(k>0 && n<5);
}
程序的运行结果是【】。
5. #include<stdio.h>
main()
{int a,b,d=241;a=d/100%9; b=(-1)&&(-1);
B)if((a>b)||(b>c) k=1;
else k=0;
C)if(a<=b) k=0;
else if(b<=c) k=1;
D)if(a>b) k=1;
else if(b>c) k=1;
else k=0;
6.以下是if语句的基本形式:
if(表达式)
语句
其中“表达式”
A)必须是逻辑表达式
B)必须是关系表达式
A)n=0;while((ch=getchar())!=’\n’)n++;
B) n=0;while(getchar()!=’\n’)n++;
C)for(n=0; getchar()!=’\n’;n++);
D)n=0;for(ch=getchar();ch!=’\n’;n++);
4.有以下程序
# include <stdio.h>
case 2: printf(" $ "); break;
}
default: printf("&");
}
printf("\n");
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所示。
选择结构程序设计练习题
选择结构程序设计练习题选择结构程序设计练习题1.逻辑运算符两侧运算对象的数据类型( )A.只能是0和1B.只能是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<=c5.判断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<=yC.x||y+z&&!yD.!(x<y)&&!z||1)< p="">7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是()A.0B.语法错误C.1D.“假”8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()A.A%2==1B.!(A%2==0)C.!(A%2)D.A%29.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()A.1B.2C.3D.410.下列运算符中优先级最低的是( )优先级最高的是( )A.?B.&&C.+D.!=11.以下程序的运行结果是( )#includemain(){int a,b,d=241;a=d/100%9; b=(-1)&&(-1);printf(“%d,%d”,a,b);}A.6,1B.2,1C.6,0D.2,012.执行以下语句后a的值为( )int a,b,c;a=b=c=1; ++a||++b&&++c;A.错误B.0C.2D.1A.1B.2C.错误D.013.执行以下语句后的值为(),b的值()int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A.5B.0C.2D.1 A.6 B.0 C.1 D.414.以下不正确的if语句形式是()A.if(x>y&&x!=y);B.if(x==y)x+=y;C.if(x!=y)scanf(“%d“,&x) else scanf(“%d”,&y);D.if(x<y){x++;y++;}< p="">15.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( ) if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2016.以下语句语法正确的是:( )A.if(x>0) printf(“%f”,x)else printf(“%f”,-x);B.if(x>0){x=x+y;printf(“%f”,x);}else printf(“%f”,-x)C.if(x>0){x=xy; pri ntf(“%f”,x);};else printf(“%f”,-x);D.if(x>0){x=x+y;printf(“%f”,x)}else printf(“%f”,-x);17.请阅读以下程序,该程序( )main(){int a=5,b=0,c=0;if(a+b+c) printf(“***\n”); else printf(“$$$\n”);}A.有语法错误不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$18.以下程序的运行结果是( )main(){int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);} A.4B.5C.6 D719.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x 的值是( )if(a<b)< p="">if(celse if(a<c)< p="">if(b< p="">else x=3;else x=6;else x=7;A.1B.2C.3D.620.有一函数关系如下:x-1(x<0)y={ x(x=0)x+1 (x>0)则下面程序段中能正确表示上面关系的是( )A.y=x+1; if(x>=0) if(x==0) y=x; else y=x-1;B.y=x-1 if(x!=0) if(x>0) y=x+1; else y=x;C.if(x<=0) if(x<0) y=x-1; else y=x; else y=x+1;D.y=x; if(x<=0) if(x<0) y=x-1; else y=x+1;21.以下程序的输出结果是( )main(){int a=100,x=10,y=20,ok1=5,ok2=0;if(x<y)< p="">if(y!=10)if(!ok1)a=1;else if(ok2) a=10;a=-1; printf(“%d\n”,a);}A.1B.0C.-1D.值不确定22.以下程序的输出结果是( )main(){int x=2,y=-1,z=2;if(x<y)< p="">if(y<0) z=0;else z+=1;printf(“%d\n”,z);}A.3B.2C.1D.023.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。
C语言选择结构程序设计练习题
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)y=4(x>=90)5.在显⽰器上显⽰⼀个菜单程序的模型。
选择结构程序设计习题1-文档资料
阅读下面程序,写出程序的运行结果
1. 以下程序的执行结果是 。 #include <stdio.h> void main( ) { int a,b,c; a=2;b=3;c=1; if (a>b) if (a>c) printf("%d\n",a); else printf("%d\n",b); printf("end\n"); } 程序的运行结果:
习题
一、选择题 1、要判断 char 型变量 m 是否是数字字符,可以使用表达式( ) 。 A.m>=0&&m<=9 B.m>=’0’ && m<=’9’ C.m>=”0” && m<=”9” D.m>=0 and m<=9 2、在 C 语言的 if 语句中,可以作为判断的表达式是( ) 。 A.关系表达式 B.任意表达式 C.逻辑表达式 D.算术表达式 3、为了避免嵌套的 if…else 语句的二义性,c 语言规定 else 总是与( )组成配对关系。 A.缩排位置相同的 if B.在其之前末配对的 if C.在其之前未配对的最近的 if D.同一行上的 if 4、假设有定义 int a=1,b=2,c=3,d=4,m=2,n=2。则执行表达式(m=a>b) && (n=c>d)后,n 的值为 ( ) 。 A.0 B.2 C.3 D.4
case 4: printf("%d\n",k++); break;
default: printf("Full!\n");
}
} (1)A、1 B、2 C、2 3 4 5 (竖排) D、1 2 3 4(竖排)
C语言程序设计(选择结构和循环结构)期末单元测试与答案
一、单选题1、当a=1、b=2、c=3、d=4时,执行下面程序段后,x的值是()。
if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x= 3;else x= 6;else x= 7;A.3B.1C.2D.6正确答案:B2、下列程序的输出结果是( )。
#include<stdio. h>void main(){int a=0,b=1,c=2;if(++a>0||++b>0)++ c;printf(“%d,%d,%d”,a,b,c);}A.1,1,3B.0,1,2C.1,2,2D.1,2,3正确答案:A3、假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=35;if(!a) x=-1;else if(b);if (c) x=3;else x= 4;A.35B.4C.3D.34正确答案:B4、在C语言中,switch选择语句结构为:switch(c){case常量表达式1:语句1;...case常量表达式n-1:语句n-1;default:语句n;}其中括号内表达式c的类型( )。
A.可以为整型或实型B.可以是任意类型C.可以是整型或字符型D.只能为整型正确答案:C5、运行下面程序时,从键盘输人字母A,则输出结果是( )。
#include<stdio.h>void main(){char ch;ch=getchar();switch(ch){case’A’: printf( "AAAA\n");case’B’: printf("BBBB\n");default:printf ("CCCC\n");}}A.AAAABBBBB.AAAACCCCC.AAAABBBBCCCCD.AAAA正确答案:C6、while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为( )的操作,否则,循环将会无限制地进行下去。
选择结构编程题
一、顺序结构1、从键盘上任意输入一个4位数的整数,将每一位上的数字剥离出来,按从低位到高位的顺序依次输出,输出形式如下图所示。
二、选择结构1、从键盘上任意输入两个整数,选择大者输出。
分别用if语句和条件表达式两种方式编程。
输出形式如下图所示。
2、从键盘上任意输入三个整数,输出最大者。
输出形式如下图所示。
3、从键盘上任意输入两个整数a和b,若a小于b,则将两者的值进行交换,然后输出a 和b的值。
输出形式如下图所示。
4、从键盘上任意输入三个整数a、b和c,按降序形式进行交换,既交换后a最大,b次之,c最小,然后输出a、b和c的值。
输出形式如下图所示。
5、编写一程序P114.C实现以下功能*编写一个简单计算器程序,输入格式为:data 1 op data2。
其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。
编程可用素材:printf("Please input data1 op data2: ")...、printf("\nError! chu shu wei 0.\n")...。
程序的运行效果应类似地如图1、图2、图3、图4所示,图1中的3000 + 2000、图2中的3000 % 2000、图3中的3000 % 0和图4中的3000 / 0是从键盘输入的内容。
图1 程序运行效果示例(加法)图2 程序运行效果示例(取余)图3 程序运行效果示例(取余时除数为0)图4 程序运行效果示例(相除时除数为0)6、编写一程序P111.C实现以下功能*x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:),然后计算并在屏幕上输出函数值。
编程可用素材:printf("Please input x: ")...、printf("\nF(...) = ..."...。
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); }程序运行后的输出结果是______。
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)14。
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<c) max=c;printf("\nmax=%d\n",max);}法二:main(){int a,b,c,max;printf(”\ninput the value of a,b,c:”);scanf(”%d%d%d",&a,&b,&c);max=a;if(max〈b) max=b;if(max<c) max=c;printf("\nmax=%d\n”,max);}4.6有一个函数:写一段程序,输入x,输出y的值。
实验4 选择结构程序设计
实验4 选择结构程序设计1.实验目的(1)熟练掌握if语句的三种形式,在实际中能根据具体情况灵活选择某种形式的if语句(2)进一步熟悉关系表达式和逻辑表达式(3)熟练掌握switch语句的功能、格式和执行过程(4)能用switch语句实现简单的选择功能2.实验内容2.1基础知识(1)在横线上填上适当的标点符号。
该程序的功能是输出a、b中的最大值。
#include “stdio.h”void main(){ int a,b,t;scanf("%d %d",&a,&b);if___b>a_______ t=a;a=b;b=t;____ptintf("\nmax=%d",a);}(2)在横线上填上适当的标点符号。
将题(1)改写成if—else的形式:#include “stdio.h”void main(){ int a,b,t;scanf("%d %d",&a,&b);if___a>b_______ptintf("\nmax=%d",a);____ /* 思考:此处的符号是否可以省略?什么情况下不能省略?*/else____ptintf("\nmax=%d",b);____}(3)在横线上填上适当的标点符号。
switch (表达式){ case_____常量表达式1____ 语句1____case_____常量表达式2____ 语句2____……default____ 语句n____ }(4)对于if—else语句,如果分支较多,有时用swtich语句更加合适,swtich语句是多分支选择结构,其执行过程:首先比较___________与___________是否相等,如果相等,则执行case后面的语句,如果都不相等,则执行__________。
2.2阅读程序(1)#include “stdio.h”void main(){ int number;printf(“number=“);scanf(“%d”,&number);if (number%10==0) printf(“%d是10的倍数。
C语言第四章选择结构程序设计作业-雨课堂
单选题 3分
18.若变量已正确定义并赋值,以 下符合C语言语法的表达式是( )
A a:=b+1 B a=b=c+2 C int 18.5%3 D a=a+7=c+b
单选题 3分 19.若有条件表达式 (exp) ?a++:b--,则以下表达式 中能完全等价于表达式(exp) 的是( )
A (exp==0)
单选题 3分
2.下列运算符中优先级最高 的是( )
A< B+
& C& D !=
单选题 3分
3.能正确表示“当x的取值在 [1,10]和[200,210]范围内为真, 否则为假"的表达式是( )
A
(x>=1)&&(x<=10)&&(x >=200)&&(x<=210)
B
(x>=1)||(x<=10)||(x>=2 00)||(x<=210)
单选题 3分
5.下列运算符中优先级最低 的是( )
A ?: &
B& C+ D !=
单选题 3分
6.以下程序的运行结果是( ) #include<stdio.h> main() {int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(“%d,%d”,a,b);}
正常使用主观题需2.0以上版本雨课堂
主观题 10分 24.程序设计题 编一个程序,输入3个整数, 按从大到小的顺序输出。 要求拍照或截图提交(1)算 法(2)编写的程序(3)程序 运行结果答案
正常使用主观题需2.0以上版本雨课堂
C语言程序设计:选择结构程序设计单元测试与答案
一、单选题1、下列运算符优先级最高的是( )。
A.&&B.,C.+D.||正确答案:C2、若给定条件表达式(m)?(a++):(a--),则其中表达式m()。
A.和(m==1)等价B.和(m!=1)等价C.和(m==0)等价D.和(m!=0)等价正确答案:D3、C语言中,switch后的括号内表达式( )。
A.只能是整型和字符型B.只能为整型C.可以是任何类型D.只能为整型,字符型或枚举型正确答案:D4、执行下面程序段后,k的值是:( )。
int k=2;switch(k+1)case 3:k+=1;case 4:k--;break;case 5:k*=3;case 6:++k;}A.28B.10C.27D.2正确答案:D5、若在程序运行时,输入:4 3,则执行下面程序输出的结果是( )。
#include <stdio.h>int main(){int a,b,s;scanf("%d%d",&a,&b);s=a;if(a>b) s=b;s=s*s;printf("%d\n", s);return 0;A.15B.16C.9D.13正确答案:C6、下列表达式中,结果为1的表达式是()。
A. !3!=0B.!2>=3C.!6D. !0==1正确答案:D二、判断题1、所有逻辑运算符的优先级都高于关系运算符。
正确答案:×2、在switch语句中,switch与case后的表达式可以为任意类型。
正确答案:×3、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。
正确答案:√4、并非所有的if语句都有等价的switch语句,switch语句只能用来实现以相等关系作为选择条件的多分支结构。
正确答案:√三、填空题1、已知 a=10,b=15,c=1,d=2,e=0,则表达式c==b>e的值为_____。
选择结构程序设计典型例题
#include <stdio.h> int main() {int year,leap; printf("enter year:"); scanf("%d",&year); if (year%4==0) if(year%100==0) if(year%400==0) leap=1; else leap=0; 采取锯齿形式 else leap=1; else leap=0; if (leap) printf("%d is ",year); else printf("%d is not ",year); printf("a leap year.\n"); return 0; 25 }
21
用变量leap代表是否闰年的信息。若闰 年,令leap=1;非闰年,leap=0。最 后判断leap是否为1(真),若是,则 输出“闰年”信息
22
解法1 #include <stdio.h> void main( ) { int year, leap=0; scanf(“%d”, &year); /* 输入年份值 */ if ((year%4= =0&&year%100!=0)||(year%400= =0)) leap=1; else leap=0; if(leap= =1) printf(“%d is leap ”, year); else printf(“%d is not leap ”, year); }
设每吨每千米货物的基本运费为p,货物重 为w,距离为s,折扣为d 总运费f的计算公式为f=p×w×s×(1-d)
29
折扣的变化规律:
折扣的“变化点”都是250的倍数 在横轴上加一种坐标c,c的值为s/250 c代表250的倍数 当c<1时,表示s<250,无折扣 1≤c<2时,表示250≤s<500,折扣d=2%
顺序结构、选择结构和循环结构的程序设计典型例题分析与解答
顺序结构、选择结构和循环结构的程序设计典型例题分析与解答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=”都是非格式控制符,在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。
C语言 第四章 选择结构程序设计期末测试习题与答案
D.其之前最近的没有else配对的if
参考答案:D
12、在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是( )。
A.if (a)语句1 else语句2
B.if (a!=0)语句1 else语句2
C.if (a==0)语句2 else语句1
D.if (a==0)语句1 else语句2
printf(“a=%d,b=%d\n”,aa=2,b=2
C.a=1,b=0
D.a=1,b=1
参考答案:B
16、假定所有变量均已正确说明,以下程序段运行后的输出结果是( )。
int a=1,b=5,c=3;
if(a>b)
a=b;
b=c;
c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
D.if(a==0) printf("%d\n",x); else printf("%d\n",y);
参考答案:D
2、假定所有变量均已正确说明,下列程序段运行后x的值是( )。
a=b=c=0;x=12; if(!a)x--; else x=5; if(c) x=3; else x=4;
A.3
B.4
C.12
int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n");
A.3
B.5
C.1
D.2
参考答案:A
5、当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是( )。
A.k%2==1
C语言程序设计—选择结构
int main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
return 0;
}
条件表达式“(ch>='A'&&ch<='Z')?(ch+32):ch”的作用是:
else y=0;
if (0) 语句5
//表达式是整数0,条件判断结果为假,不执行语句5,接着执行下一语句
if(x+3.5) 语句6
//表达式是实数表达式,若x+3.5不等于0,则条件判断结果为真,执行语句6
小例子
判别用year表示的某一年是否
闰年,可以用一个逻辑表达式
来表示。闰年的条件是符合下
面二者之一: ①能被4整除,
scanf("%f,%f",&a,&b);
if(a>b)
{
//将a和b的值互换
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
两个变量值的互换
a=b; //把变量b的值赋给变量a,a的值等于b的值
b=a; //再把变量a的值赋给变量b,变量b值没有改变
再执行关系运算“1>c”,得值0,赋给f,所以f的值为0
逻辑运算符和逻辑表达式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择结构程序设计一、实验目的1.熟练掌握关系表达式和逻辑表达式的使用。
2.熟练掌握嵌套的if语句和switch语句实现多分支结构程序设计。
3.掌握选择结构程序设计的方法。
4.继续熟悉跟踪调试程序的方法和过程。
二、实验内容及步骤1.分析程序并上机运行验证结果。
#include<stdio.h>void main(){int a,b,t;printf("请输入a,b的值:");scanf("%d,%d",&a,&b);if(a<b){t=a;a=b;b=t;}printf("%d ,%d \n",a,b);2,3>>3,2 3,2>>3,2}思考:从输入数据和运行结果分析程序的功能。
将“{t=a;a=b;b=t;}”改为“t=a,a=b,b=t;”,程序的功能改变了吗?为什么?一样的将“if(a<b) {t=a;a=b;b=t;} ”中的花括号去掉后,程序的功能改变了吗?为什么?2,3》》3,2 3,2》》2,-8589934602.分析程序功能,上机验证时输入不同的数据。
#include<stdio.h>void main(){int a,b;printf("请输入a,b的值:");scanf("%d,%d",&a,&b);if (b) printf("a/b=%d \n",a/b); //在确保b非零的情况下执行a/b运算else printf("ERROR:Cannot divide by zero!\n");}提示:程序的功能是实现两个整数相除。
程序设计时应避免被零除的错误,所以“if(b)printf("a/b=%d \n",a/b);”就是在确保b非零的情况下执行a/b运算。
if(b)也可以写作if(b!=0)。
3.阅读、分析程序,记录结果,并上机运行验证结果。
#include<stdio.h>void main(){char c;printf("Enter a single character:");c=getchar( );if((c>= 'A'&&c<='Z')|| (c>= 'A'&&c<='Z'))printf("It’s an alphabetic character.\n");else if(c>= '0'&&c<='9')printf("It’s a digit.\n");else printf("It’s a special character.\n");}9 enter It’s a digit. ! It's a special character A It's an alphabetic character 4.分析程序,记录结果,并上机运行验证结果。
#include<stdio.h>void main(){int a=1,b=2,c=3,d=4,m=1,n=1,t;t=((m=a>b)&&(n=c>d));printf("%d , %d ,%d \n",m,n,t);}0,1,05.阅读、分析程序,记录结果,并上机运行验证结果。
#include<stdio.h>void main( ){int a=13,b=21,m=0;switch(a%3){case 0:m++;break;case 1:m++;switch(b%2){default:m++;case 0:m++;break;}}printf("m=%d\n",m);} 36.阅读、分析程序,记录结果,并上机运行验证结果。
#include<stdio.h>void main(){int score;char ch;printf("请输入你的期末考试成绩:");scanf("%d ",&score);ch= score>=60? '\1': '\2';printf("%c",ch);}78-78 enter kulian7.请将下列程序填写完整,并上机运行验证。
(2007年9月)以下程序的功能是:输出a、b、c三个变量中的最小值。
#include<stdio.h>void main(){int a,b,c,t1,t2;scanf("%d%d%d",&a,&b,&c);t1=a<b ? a:b;t2=c<t1? c:t1;printf("%d\n",t2);} 4 5 6enter 48.改正下列程序中的错误,程序功能是判定输入的字符如果是大写字母,则将其改为对应的小写字母,否则输出数据出错提示。
#include <stdio.h>void main( ){char x,y;printf("Please input the upper letter:");scanf("%c",&x);if(x>='A'&&x<='Z')y=x+32;printf("The lower letter is:%c\n",y);elseprintf("The input data is wrong!\n");}改正后#include <stdio.h>void main( ){char x,y;printf("Please input the upper letter:");scanf("%c",&x);if(x>='A'&&x<='Z'){y=x+32;printf("The lower letter is:%c\n",y);}elseprintf("The input data is wrong!\n");}9.下列程序的功能是输出3个整数中的中间数。
找出程序中的错误并按照程序的思路进行修改,使其能运行并输出正确结果。
#include <stdio.h>void main( ){int x,y,z;printf("请输入3个数据:a b c\n");scanf("%d%d%d ",&x,&y, &z);if(x<y<z) printf("middle is %d ",y);else if(y<x<z) printf("middle is %d ",x);else printf("middle is %d ",z);}提示:数学中“x<y<z”表示y介于x和z之间,而在C语言中则不同,“x<y”的结果为0或1,然后将“x<y”的结果与z比较,不能表示y介于x和z之间。
要表示并且关系,应当用逻辑与运算符来实现。
10.计算器程序。
改正下列程序中的错误,输入一个形式如“操作数运算符操作数”的表达式,对两个整数进行四则运算。
#include <stdio.h>void main( ){char sign;int x,y;printf("输入x 运算符y:");scanf("%d%c%d", &x, &sign, &y);if(sign='+')printf("%d + %d = %d\n",x,y,x+y);else if(sign='-')printf("%d -%d = %d\n",x,y,x-y);else if(sign='*')printf("%d * %d = %d\n",x,y,x*y);else if(sign='/')printf("%d / %d = %d\n",x,y,x/y);else printf("运算符输入错误!\n");}思考:如果除数为0,如何完善以上程序。
#include <stdio.h>void main( ){char sign;int x,y;printf("输入x 运算符y:");scanf("%d%c%d", &x, &sign, &y);if(sign=='+')printf("%d + %d = %d\n",x,y,x+y);else if(sign=='-')printf("%d -%d = %d\n",x,y,x-y);else if(sign=='*')printf("%d * %d = %d\n",x,y,x*y);else if(sign=='/')printf("%d / %d = %d\n",x,y,x/y);else printf("运算符输入错误!\n");}11.请用switch结构改写第10题计算器程序,并上机验证。
12.日常生活中经常会面临选择情况,请根据以下餐馆点餐示意图编写程序实现之。
13.有一函数x-1 (x<1)y = 5(x-1) (1<=x<10)7x-10 (x>=10)编程求当分别输入x的值为0.7,5.9,13时,y的值。
#include<stdio.h>void main(){float x,y;printf("请输入x=");scanf("%f",&x);if(x<1)y=x-1;elseif(x<10)y=5*(x-1);elsey=7*x-10;printf("%0.3f",y);}14.假设自动售货机出售4种商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。