{
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
31.若已知num、sum均为int型变量,且num=sum=7;则计算表达式sum=num++,sum++后,sum的值为( B )。
A. 7 B. 8 C. 9 D. 10 32.若有int x=11,则表达式(x++*1/3)的结果为( B )。 A. 5 B. 3 C. 4 D. 6 33.若有定义语句:int x=3;则以下表达式中,值为5的是( A )。
A. ++x,x+1 B. x+=2,--x C. x+=2,x+1 D. x++,x++ 34.若已知m,n,x,y为int型变量,则执行以下语句后,变量y的值为( D )。
m=10;n=5;
x=(--m==n++)?--m:++n; y=n;
A. 5 B. 10 C. 6 D. 7 35.执行以下程序段后,变量a,b,c的值分别为(B )。
int x=10,y=9; int a,b,c;
a=(--x==y++)?--x:++y; b=x++; c=y;
A. a=9,b=9,c=9 B. a=8,b=8,c=10 C. a=9,b=10,c=9 D. a=1,b=11,c=10 36.以下程序的输出结果是( C )。 #include
int w=3,z=7,x=10;
printf(“%d\\n”,x>10?x+100:x-10); printf(“%d\\n”, w++||z++); printf(“%d\\n”,!w>z); printf(“%d\\n”,w&&z); }
A. 0 B. 1 C. 0 D. 0
1 1 1 1 1 1 0 0 1 1 1 0 37.以下关于运算符优先顺序的描述中正确的是( C )。 A. 关系运算符<算术运算符<赋值运算符<逻辑与运算符 B. 逻辑与运算符<关系运算符<算术运算符<赋值运算符 C. 赋值运算符<逻辑与运算符<关系运算符<算术运算符 D. 算术运算符<关系运算符<赋值运算符<逻辑与运算符 38.下列运算符中,优先级最高的是( D )。
A. < B. % C. && D. ++
39.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( C )。 A. ‘x’&&’y’ B. x<=y<=z C. y+z&&y-z&&(x+1)%2 D. !x||x 40.以下不能将变量c中的大写字母转换为对应小写字母的语句是( D )。 A. c+=32 B. c=c-‘A’+’a’ C. c=c-65+97 D. c=c-32 二、填空题 1.若s是int型变量,且有s=6,则表达式s%2+(s+1)%2的值为 1 。 2.若a是int型变量,则计算表达式a=25/3%3后,a的值为 2 。 3. 若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为 5.5 。 4.若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为 3.5 。 5.若有定义:int x=3,y=2; float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为 1 。 6.当a=3,b=2,c=1时,表达式f=a>b>c的值为 0 。 7.当a=5,b=4,c=2时,表达式a>b&&!c的值为 0 。 8.C 语言提供的三种逻辑运算符是 && 、 || 、 ! 。 9.若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值为 0 。 10.若a=1,b=4,c=3,则表达式!(a 或-1≤x≤0”的 C 语言表达式是 x>=0&&x<=1||x>=-1&&x<=0 。 14.若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后,y的值为 -16 。 15.若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后,a的值为 -60 。 16. 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 26 。 17.若x和n均为int型变量,且有x=n=5,则计算表达式x+=n++后,x的值为 10 ,n的值为 6 。 18.若n、i均为int型变量,则表达式n=i=2,++i,i++的值为 3 。 19.若有定义:int x=1,y=0;则表达式x<(y+x)?’B’:’C’>y++?’A’:’Z’的值为 A 。 20.若有定义:int x=0,y=1;则表达式x++*x--!=’y’?8-4:y的值为 4 。 三、思考/编程题 1.设有定义:int a=3,b=4;float x=2.5,y=3.5;分析下面算术表达式的值 (1)x+a%2*(int)(x+y)%2/4 (2)(float)(a+b)/2+(int)y%(int)x 2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”“假”? 2.如果一个表达式的值为“真”,则以1表示,如果值为“假”,则以0表示;当判断一个量的逻辑值时,系统将0判断为“假”,将非0判断为“真”。 3.设有定义:int a=3,b=4,c=5,试分析下列表达式的值: (1) a+b>c&&b==c 0 (2) a||b+c&&b-c 1 (3)!(a>b)&&!c||1 1 (4)!(x=a)&&(y=b)&& 0 (5)!(a+b)+c-1&&b+c/2 1 4.设有定义:int a=15,n=7;试分析下列表达式执行后a的值为多少? (1) a+=a (2) a-=5 (3) a*=5-2 (4) a%=(n%3) (5) a/=(a+a) (6) a+=a-=a*a (7) a+=a-=a*=a 4.(1) 30; (2) 10;(3)45;(4)0;(5)0;(6)-420;(7)0 5.设有定义:int a,b;试分析下面表达式执行后变量a、b和表达式的值各是多少? a=3,b=a+2,a++,(b++)+1 .a=4,b=6,表达式的值为6; 6.试分析下面程序的运行结果。 #include { int i=10,j=10; int m,n; m=++i; n=j--; printf(“%d,%d,%d,%d\\n”,i,j,m,n); 6.11,9,11,10 7.试分析下面程序的运行结果。 #include int a,b,c; a=b=1; c=a++-1; printf(“%d,%d\\n”,a,c); c+=-a+++(++b||++c); printf(“%d,%d\\n”,a,c); } 2,0 3,-1 8.若程序运行时从键盘输入3 4 5,试分析下面程序的运行结果: #include int x,y,z,max; scanf(“%d%d%d”,&x,&y,&z); max=x>y&&x>z?x:y>x&&y>z?y:z; printf(“%d\\n”,max); } 5 9.编写程序,从键盘输入整型变量x的值,判断并输出x是奇数还是偶数。 9.#include printf(\请输入x的值:\scanf(\ x%2?printf(\奇数\\n\偶数\\n\} 10.编写程序,从键盘输入一个大写字母赋给字符型变量ch,并将其转换成对应小写字母后输出。] 10.#include \void main() {char ch; printf(\请输入一个大写字母:\scanf(“%c”,&ch); ch=ch+32; printf(\} 习题四 一、选择题 1.C语言程序的三种基本结构是( A )。 A.顺序结构、选择结构、循环结构 B.递归结构、循环结构、转移结构 C.嵌套结构、递归结构、顺序结构 D.循环结构、转移结构、顺序结构 2.以下能正确定义且赋初值的语句是( B )。 A.int n1=n2=10; B.char c=32; C.float f=f+1.1; D.double x=12.3E2.5 3.以下能正确定义整型变量a,b和c并为其赋初值5的语句是(A )。 A. int a=b=c=5; B. int a,b,c=5; C. a=5,b=5,c=5; D. a=b=c=5; 4.在下列选项中,不正确的赋值语句是(D )。 A.++t; B.n1=(n2=(n3=0)); C.k=i==j; D.a=b+c=1 5.有以下程序: main() { int a=0,b=0; a=10; b=20; printf(\ }
相关推荐: