第三章 选择结构程序设计:择结构程序设计顺序结构程序设计按照自上而下的流程的顺序执行,但是在实际生活中,仅顺序结构是无法满足用户要求的,并不是所有的程序都是自上而下的顺序执行,而是根据条件有选择的执行。这就是我们将要学习的选择结构程序设计。3.1关系运算符和关系表达式:在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。C语言关系运算符有六个,优先级别有三个,结合性均为左结合。[单选题]若要求表示a不等于0的关系,错误的表达式是( )选项:[a!=0, a<>0, a<0| |a>0, a]
3.2逻辑运算符和逻辑表达式:逻辑运算符有三个:逻辑与、逻辑或、逻辑非。在此要注意他们的预算条件和运算结果的表示方法,以及短路特性。
3.3if语句:if语句是指C语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。难点在于if和else的匹配问题,以及多个if语句和else if的区别。
3.4if语句的嵌套:采用嵌套结构实质上是为了进行多分支选择,实际上有三种选择,即:A>B、A
3.5条件运算符:条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值运算符。因此max=(a>b)?a:b;可改为max=a>b?a:b;条件运算符是一对运算符,不能分开单独使用。条件运算符的结合方向是自右向左。如:a>b?a:c>d?c:d应理解为a>b?a:(c>d?c:d)
3.6多分支选择语句:switch为典型的多分支选择语句,就是一个判别条件,根据判别条件有多种不同的做法。重点在于掌握break的使用方法。
[单选题]设a,b,w为整型变量,ch为字符型变量,用if语句改写以下的程序段:
switch(ch)
{ case'+':w=a+b;break;
case'-':w=a-b;break;
case'*':w=a*b;break;
case'/':w=a/b;break;}
在下列写法中,错误的是( )选项:[if(ch= ='+') w=a+b;
else if(ch= ='-') w=a-b;
if(ch= ='*') w=a*b;
else w=a/b; , if(ch= ='*') w=a*b;
else if(ch= ='/') w=a/b;
if(ch= ='+') w=a+b;
else if(ch= ='-') w=a-b;, if(ch= ='+') w=a+b;
if(ch= ='-') w=a-b;
if(ch= ='*') w=a*b;
if(ch= ='/') w=a/b;
, if(ch= ='+') w=a+b;
elseif(ch= ='-') w=a-b;
if(ch= ='*') w=a*b;
else if(ch= ='/') w=a/b;]
[单选题]有以下程序:
#include<stdio.h>
main()
{int x,y; printf("Enter an integer(x):");
scarf("%d",&x);
if(x++<0) y=-1;
else if(x==0) y=0;else y=1; printf("%d",y);}
现从键盘上输入-1,则程序的输出是( )。选项:[1, 0
, -1, 不确定的值]
[单选题]若执行下面的程序时从键盘上输入10,则输出是( )
main()
{int a;scanf("%d",&a);if(a++>10)
printf("%dn",++a);
else printf("%dn",a--); }选项:[11
, 9, 10, 12
]
[单选题]已知a,b,c,w时int型变量,a,b均以赋值,且满足a<b,先有以下程序段:
scanf (“%d”,&c);
w=a;
if (w<=b) w=b;
if (w<=c) printf (“%d”,w);
else w=c;
为把c的值放入w中,则执行此程序段时,从键盘输入的c的值不应取的范围是( )。选项:[b>c, c>=b, c>a且c<b, c>a或c<b]
[单选题]以下程序的输出结果是( ) #include<stdio.h>
main()
{ int a=0,b=l,c=0,x=0,y=0;
if(x<=y)
if(y=l0)
if(!b) a=1;
else if(c) a=10;
a=-1;
printf("%d",a);}选项:[-1, 不确定的值, 1, 10]
[单选题]已知a,b,c的值分别是1,2,3,则执行下列语句后a,b,c的值分别是( )
if (a++<b ){c=a; a=b; b=c; }
else a=b=c=0;选项:[1,2,1
, 0,0,0
, 1,2,3
, 2,2,2]
[单选题]若i是int型变量,且有下面的程序片段
i=0;
if(i<=0) printf("####")
else printf("****");
上面程序片段的输出结果是( )选项:[有语法错误,无输出结果, ####****, ****, ####
]
[单选题]以下if语句中格式正确的是( )选项:[if(a>b) {b++;printf ("%d",b);}
else {a++;printf("%d",a);}, if(a>b) b++ else a++;, if(a>b) {b++;printf("%d",b)}
else{a++;printf("%d",a);}, if(a>b)b++;printf("%d",b);
else printf("%d",a);]
[单选题]下面程序的输出结果是( )。
#include<stdio.h>
main()
{int i=2,p;p=f(i,i+1);
printf("%d",p); }
int f(a,b)
int a,b;
{int c; c=a;
if(a>b) c=1;
else
if(a==b)c=0; else c=-1;
return(c); }选项:[-1, 2, 1, 0]
[单选题]有以下程序:
#include<stdio.h> .
main()
{int al=0,a2=0,a3=0;
char ch;
while((ch=getchar())!='n')
switch(ch)
{case 'A':a1++;
case 'B':a2++;
default:a3++; }
printf("%d,%d,%d",a1,a2,a3);}
现从键盘上输入AAAAABBBC<回车>,则程序执行后的输出结果是( )选项:[5,8,9, 5,3,9, 5,8,1, 5,3,1]
[单选题]C语言中,逻辑真表示为( )。选项:[1, TRUE, 'y'或'Y', 非零值]
[单选题]程序的三种基本结构是( )。选项:[顺序结构,选择结构,递归结构, 顺序结构,循环结构,选择结构, 选择结构,循环结构,递归结构, 顺序结构,循环结构,递归结构]
[单选题]请读程序:
#include<stdio.h>
main()
{int x=l,y=0,a=0,b=0;
switch(x)
{case l:
switch(y)
{case 0: a++; break;
case 1:b++;break;}
case 2:
a++;b++; break;}
printf("a=%d, b=%dn",a,b);}上面程序的输出结果是( )选项:[a=l,b=l, a=l,b=0, a=2,b=l, a=2,b=2]
温馨提示支付 ¥1.00 元后可查看付费内容,请先翻页预览!