内容正文:
《编程语言基础——C语言》高等教育出版社(第五版)
第三章 分支结构程序设计 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1.运算符有优先级,在C语言中关于运算符优先级的叙述正确的是( )
A.逻辑运算符高于算术运算符,算术运算符高于关系运算符
B.算术运算符高于关系运算符,关系运算符高于逻辑运算得
C.算术运算符高于逻辑运算符,逻辑运算符高于关系运算符
D.关系运算符高于逻辑运算符,逻辑运算符高于算术运算符
2.如果x大于1并且小于或等于10,则为真,否则为假,正确的表达式是( )
A.1<x<=10 B.x>1||x<=10
C.x>1&&x<=10 D.x>1&&x=<10
3.与表达式"x>10&&x-y!=10"等价的式子是 ( )
A.x>(10&&(x-(y!=10))) B.(x>10)&&((x-y)!=10)
C.x>((10&&x)-(y!=10)) D.((x>10)&&(x-y))!=10
4.以下表达式中满足“当X的值为偶数时值为真”的是( )
(1)! x%2! =0;(2)x%2==0;(3)(x/2*2-x)==0;(4)!(x%2)
A.(1)(2)(3) B.(2)(3)(4) C. (1)(3)(4) D.(1)(2)(4)
5.下列表达式中值为真的是 ( )
A.a=0 B.b=3>4 C.b=3+4==5 D.(float)1/2
6.下列表达式中值为真的是 ( )
A.a=0 B.b=3>4 C.b=3+4==5 D.(float)1/2
7.能表示数学式x<y<z的C语言表达式是 ( )
A.(x<y)&&(y<z) B.(x<y)and(y<z)
C.(x<y<z) D.(x<y)&(y<z)
8.判断 char 型变量ch是否为大写字母的正确表达式是( )
A.’A'<ch<='2' B.(ch>=a)&(ch<='Z’)
C.(ch>='A')&&(ch<='Z') D.(’A'<=ch)AND(('Z'<=ch)
9.已知 int a=l,b=2;执行语句a=a-1&&++b;printf("%d,%d",a,b);后,结果是( )
A.1,2 B.0,2 C.0,3 D.1.3
10.设int x=1,y=2;,则表达式(!x||y)的值是( )
A.0 B.1 C.2 D.-1
11.若变量a是整型,则逻辑表达式(a==1)|(a!=1)的值是( )
A.1 B.0 C.2 D.不确定
12.下列表达式的值为0的是( )
A.2%3 B.5>=10 C.1&&0||-3 D.10/3
13.设a,b和c都是int型变量,且a=7,b=18,c=29,则以下表达式中,值为0的表达式是( )
A.a<=b B.!((a<b)&&! c||1) C.a||b+c&&b-c D.a&&b
14.在C语言中能代表逻辑值"真"的是( )
A. True B.大于0的数 C.非0的整数 D.非0的数
15.已知a=4,b=3,c=2;则表达式a>b>c的值为 ( )
A.2 B.1 C.0 D.无法确定
16.已有定义:int x=3.y=4;则执行语句x=x-1||y++;后,x和y的值是( )
A.1,5 B.2,4 C.2,5 D.1.4
17.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a<b)||(n=c<d)后m 和n的值为( )
A.m=l n=1 B.m= 1 n=2 C.m=2 n=2 D.m=2 n≡1
18.假如有定义int i=0,j=1;则以下使i的运算结果为4的表达式是 ( )
A.(i=3,i+j); B.i=((i<3)*2)+1;
C.i=(i-2&&j==1)+3; D.i=i-2&&j==1+3;
19.下列表达式中,值为0的表达式是 ( )
A.3!=0 B.3!=3>4 C.3>4==0 D.6>5>4
20.设int a=3;则表达式"a<1&&--a>1"的运算结果和a的值分别是 ( )
A.0和2 B.0和 3 C.1和2 D.1和 3
21.若有条件表达式(exp)? a++:b-一,则以下表达式中能完全等价于表达式(exp)的是( )
A.(exp==0) B.(exp==1) C.(exp!=0) D.(exp!1)
22.当A为奇数时表达式的值为真,否则为假,不能满足此要求的表达式是( )
A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2
23.有以下定义:int a;long b;double x,y;,不管a.b.x和y为何值,表达式都正确的选项是( )
A.a%(int)(x-y) B.a=x! =y C.(a * y)%b D.y=x+y=x
24.若以下变量均已正确定义并赋值,则合法的赋值语句是( )
A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+1;
25.若x为int类型,则下面与逻辑表达式!x等价的C语言关系表达式是( )
A.x==1 B.x!=1 C.x==0 D.x! =0
二、简答题(本题共5小题,每题6分,共30分)
26. 以下程序的输出结果是【 】。
#include<stdio.h>
main(){
int n;
scanf("%d",&n);
if(n++<10)
printf("%d
",n);
else printf("%d
",n--);}
27. 以下程序的运行结果是【 】。
# include<stdio.h>
main() {
char c= 'k’;
Int i=1,j=2,k=3;
float x=3e+5,y=0.85;
int rl='a’+5<c,r2=x-5.25<=x+y;
printf("%d,%d",rl,-i-2*j>=k+1);
printf("%d,%d",j>1&&j<5,r2);
printf("%d.%d",i+j+k==-2*j,k==j==i+5);}
28. 以下程序的运行结果是【 】。
#include<stdio.h>
main() {
char c='k';
int i=1,j=2,k=3;
float x =3e+5,y=0.85;
printf("%d,%d",! x*! y,!!! x);
printf("%d,%d",x||i&&j-3,i<j&&.x<y);
printf( "%d,%d",i==5&&c&&(j=8),x+y||i+j+k);}
29. 以下程序的运行结果是【 】。
# include<stdio.h>
main(){
int a,b,c,d;
a=0;b=0;c=1;
d=c++||a++&&b++;
printf("a=%d,b=%d,c=%d,d=%d".a.b.c.d);}
30. 以下程序的运行结果是【 】。
# include<stdio.h>
main( ){
int a=-1,b=4,k;
k=(a++<=0)&&(!(b一-<=0));
printf("%d,%d,%d",k,a,b);}
三、案例分析题(本题共2小题,共20分)
31.编写程序,有一个函数,y= x2 (x<0)
2x-1 (0≤x<10)
√x+5 (x≥10)
编写程序,输入x输出y值。
32.编写程序,输入a,b.c的值,判断其合法性,如输入不合法要提示错误信息,然后计算一元二次方程ax2+bx+c=0的两个根。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
《编程语言基础——C语言》高等教育出版社(第五版)
第三章 分支结构程序设计 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1.运算符有优先级,在C语言中关于运算符优先级的叙述正确的是( )
A.逻辑运算符高于算术运算符,算术运算符高于关系运算符
B.算术运算符高于关系运算符,关系运算符高于逻辑运算得
C.算术运算符高于逻辑运算符,逻辑运算符高于关系运算符
D.关系运算符高于逻辑运算符,逻辑运算符高于算术运算符
答案:B
2.如果x大于1并且小于或等于10,则为真,否则为假,正确的表达式是( )
A.1<x<=10 B.x>1||x<=10
C.x>1&&x<=10 D.x>1&&x=<10
答案:C
3.与表达式"x>10&&x-y!=10"等价的式子是 ( )
A.x>(10&&(x-(y!=10))) B.(x>10)&&((x-y)!=10)
C.x>((10&&x)-(y!=10)) D.((x>10)&&(x-y))!=10
答案:B
4.以下表达式中满足“当X的值为偶数时值为真”的是( )
(1)! x%2! =0;(2)x%2==0;(3)(x/2*2-x)==0;(4)!(x%2)
A.(1)(2)(3) B.(2)(3)(4) C. (1)(3)(4) D.(1)(2)(4)
答案:B
5.下列表达式中值为真的是 ( )
A.a=0 B.b=3>4 C.b=3+4==5 D.(float)1/2
答案:D
6.下列表达式中值为真的是 ( )
A.a=0 B.b=3>4 C.b=3+4==5 D.(float)1/2
答案:C
7.能表示数学式x<y<z的C语言表达式是 ( )
A.(x<y)&&(y<z) B.(x<y)and(y<z)
C.(x<y<z) D.(x<y)&(y<z)
答案: A
8.判断 char 型变量ch是否为大写字母的正确表达式是( )
A.’A'<ch<='2' B.(ch>=a)&(ch<='Z’)
C.(ch>='A')&&(ch<='Z') D.(’A'<=ch)AND(('Z'<=ch)
答案: C
9.已知 int a=l,b=2;执行语句a=a-1&&++b;printf("%d,%d",a,b);后,结果是( )
A.1,2 B.0,2 C.0,3 D.1.3
答案:B
10.设int x=1,y=2;,则表达式(!x||y)的值是( )
A.0 B.1 C.2 D.-1
答案:B
11.若变量a是整型,则逻辑表达式(a==1)|(a!=1)的值是( )
A.1 B.0 C.2 D.不确定
答案:A
12.下列表达式的值为0的是( )
A.2%3 B.5>=10 C.1&&0||-3 D.10/3
答案: B
13.设a,b和c都是int型变量,且a=7,b=18,c=29,则以下表达式中,值为0的表达式是( )
A.a<=b B.!((a<b)&&! c||1) C.a||b+c&&b-c D.a&&b
答案:B
14.在C语言中能代表逻辑值"真"的是( )
A. True B.大于0的数 C.非0的整数 D.非0的数
答案:D
15.已知a=4,b=3,c=2;则表达式a>b>c的值为 ( )
A.2 B.1 C.0 D.无法确定
答案: C
16.已有定义:int x=3.y=4;则执行语句x=x-1||y++;后,x和y的值是( )
A.1,5 B.2,4 C.2,5 D.1.4
答案: D
17.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a<b)||(n=c<d)后m 和n的值为( )
A.m=l n=1 B.m= 1 n=2 C.m=2 n=2 D.m=2 n≡1
答案: B
18.假如有定义int i=0,j=1;则以下使i的运算结果为4的表达式是 ( )
A.(i=3,i+j); B.i=((i<3)*2)+1;
C.i=(i-2&&j==1)+3; D.i=i-2&&j==1+3;
答案: C
19.下列表达式中,值为0的表达式是 ( )
A.3!=0 B.3!=3>4 C.3>4==0 D.6>5>4
答案:D
20.设int a=3;则表达式"a<1&&--a>1"的运算结果和a的值分别是 ( )
A.0和2 B.0和 3 C.1和2 D.1和 3
答案: B
21.若有条件表达式(exp)? a++:b-一,则以下表达式中能完全等价于表达式(exp)的是( )
A.(exp==0) B.(exp==1) C.(exp!=0) D.(exp!1)
答案:C
22.当A为奇数时表达式的值为真,否则为假,不能满足此要求的表达式是( )
A.A%2==1 B.!(A%2==0) C.!(A%2) D.A%2
答案: C
23.有以下定义:int a;long b;double x,y;,不管a.b.x和y为何值,表达式都正确的选项是( )
A.a%(int)(x-y) B.a=x! =y C.(a * y)%b D.y=x+y=x
答案:B
24.若以下变量均已正确定义并赋值,则合法的赋值语句是( )
A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+1;
答案: A
25.若x为int类型,则下面与逻辑表达式!x等价的C语言关系表达式是( )
A.x==1 B.x!=1 C.x==0 D.x! =0
答案: C
二、简答题(本题共5小题,每题6分,共30分)
26. 以下程序的输出结果是【 】。
#include<stdio.h>
main(){
int n;
scanf("%d",&n);
if(n++<10)
printf("%d
",n);
else printf("%d
",n--);}
答案:10
27. 以下程序的运行结果是【 】。
# include<stdio.h>
main() {
char c= 'k’;
Int i=1,j=2,k=3;
float x=3e+5,y=0.85;
int rl='a’+5<c,r2=x-5.25<=x+y;
printf("%d,%d",rl,-i-2*j>=k+1);
printf("%d,%d",j>1&&j<5,r2);
printf("%d.%d",i+j+k==-2*j,k==j==i+5);}
答案:1,01,10,0
28. 以下程序的运行结果是【 】。
#include<stdio.h>
main() {
char c='k';
int i=1,j=2,k=3;
float x =3e+5,y=0.85;
printf("%d,%d",! x*! y,!!! x);
printf("%d,%d",x||i&&j-3,i<j&&.x<y);
printf( "%d,%d",i==5&&c&&(j=8),x+y||i+j+k);}
答案:0,01,00,1
29. 以下程序的运行结果是【 】。
# include<stdio.h>
main(){
int a,b,c,d;
a=0;b=0;c=1;
d=c++||a++&&b++;
printf("a=%d,b=%d,c=%d,d=%d".a.b.c.d);}
答案:a=0,b=0,c=2,d=1
30. 以下程序的运行结果是【 】。
# include<stdio.h>
main( ){
int a=-1,b=4,k;
k=(a++<=0)&&(!(b一-<=0));
printf("%d,%d,%d",k,a,b);}
答案:1,0,3
三、案例分析题(本题共2小题,共20分)
31.编写程序,有一个函数,y= x2 (x<0)
2x-1 (0≤x<10)
√x+5 (x≥10)
编写程序,输入x输出y值。
【参考程序】
#include<stdio.h>
#include<math.h>
main(){
float x,y;
printf("%请输入x的值:");
scanf("%f",&x);
if(x<0)
y=x*x;
else if(x<10)
y=2*x-1;
else
y=sqrt(x+5);
print("%f",y);
}
32.编写程序,输入a,b.c的值,判断其合法性,如输入不合法要提示错误信息,然后计算一元二次方程ax2+bx+c=0的两个根。
【参考程序】
#include<stdio.h>
#include<math.h>
main(){
float a,b,c,x1,x2;
printf("请输入abc的值:");
scanf("%f%f%f",&a,&b,&c);
if(b*b>=4*a*a){
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x1=%f,x2=%f",x1,x2);
}
else
printf("输入非法!");
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$