若x
为浮点型,则表达式x=10/4
为( )。
A.2.5
B.2.0
C.2
D.3
10 / 4 是整数之间的运算,表达式的结果是2,把 2 赋值给 x 就是 2.0。
如果参与计算的两个数有任意一个是float,则结果就是float:
x = 10.0 / 4;
x = 10 / 4.0;
x = 10 * 1.0/4.0;
2-2
下列选项中用于判断ch
是否是字符的表达式是( )。
A.( 'a' <= ch <= 'z' ) || ( 'A' <= ch <= 'Z' )
B.( 'a' <= ch <= 'z' ) && ( 'A' <= ch <= 'Z' )
C.( ch >= 'a' && ch <= 'z' ) && ( ch >= 'A' && ch <= 'Z' )
D.( ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z' )
char用于C或C++中定义字符型变量,取值是字符常量,只占一个字节。系统在表示一个char型变量时,是将变量的ASCII码存入内存。取值范围为 -128 ~ +127。所以可以直接用大写字母对应的ASCII码进行判断。即判断char型变量ch是否为大写字母的c语言表达式是ch>='A' && ch<='Z' 。
||或
&&与
2-3
计算变量x(x大于1)整数部分位数的表达式,可以写作( )。
A.(int)log10(x)
B.log10(x)
C.log10(x)+1
D.(int)log10(x)+1
log10(x)的值的整数部分比x的整数部分的位数少1,这是常用对数的性质
??
2-4
若变量已正确定义,表达式 (j=3, j++) 的值是____。
A.3
B.4
C.5
D.6
逗号表达式的值取最后一个表达式的值,也就是j++的值,
由于++是后缀,所以先取j的值3作为整个逗号表达式的值,所以这个式子的值是3,
在这个逗号表达式计算结束后,j的值才加1,因而j的值是4,但已经不会影响逗号表达式的值了。
2-5
假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是 ( )。
A.ch = ch-'a'-'A'
B.ch = ch-32
C.toupper(ch)
D.ch += 'a'-'A'
①32是大小写字母在ascii码表上的位置差,小写比大写高32,ch=ch+32
②('A-'a')是ASC码表上大写与小写字母间的差值
ch-('A'-'a'):大写转小写。
2-6
假定x和y为 double型,则表达式x=2,y=x+3/2的值是( )。
A.3.500000
B.3
C.3.000000
D.2.000000
因为在表达式中3/2=1,又因为y=x+3/2=x+1=3.000000。因为运算符的优先级原因和运算的类型转换等因素的影响(/比+优先),才导致结果为3.000000
运算:3为整型,2为整型,所以3/2为整型。当执行y=x+3/2时,x为double,把x+1转为double型的运算,所以得出最后结果为3.000000。
2-7
能正确表示a和b同时为正或同时为负的逻辑表达式是______。
A.(a>=0||b>=0)&&(a<0|| b<0)
B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0)
D.a*b>0
0是非正非负数
2-8
以下字符串可以作为标识符的是()。
A._
B.123
C.C++
D.int
标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线。例如,正确的标识符:abc,a1,prog_to。
不能把C语言关键字作为用户标识符,例如if,for,while等。
标识符对大小写敏感,即严格区分大小写。一般对变量名用小写,符号常量命名用大写。
标识符命名应做到“见名知意”,例如,长度(length),求和、总计(sum),圆周率(pi)……
2-9
下列运算符中,优先级最低的是____。
A.*
B.!=
C.+
D.=
2-10
若x、i、j和k都是int型变量,则执行下面表达式后x的值为
x = (i = 4, j = 16, k = 32)
A.4
B.16
C.32
D.52
本题考查逗号表达式的运用。
x=(i=4,j=16,k=32)中的i=4,j=16,k=32构成一个逗号表达式,整个表达式的值取最后一项的值,即32,所以x的值为32。
扩展逗号表达式的知识:
c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。
2-11
假设所有变量均为整型,则表达式(a = 2, b = 5, b++, a+b)的值是( )
A.7
B.8
C.6
D.2
c里面用逗号表示每个来运算,上式是运算完了再引用b的值,当然是2+6了。
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。
2-12
下面四个选项中,均是不合法的用户标识符的选项是( )
A 、 P_0 、 do
B.float 、1a0 、 _A
C.b-a 、 goto 、 int
D._123 、 temp 、 INT
2-13
C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母、数字和下划线中任一种字符
2-14
下面四个选项中,均是合法整形常量的选项是( )
A.160 、 -0xffff 、 011
B.-0xcdf 、 01a 、 0xe
C.-01 、 986,012 、 0668
D.-0x48a 、 2e5 、 0x
2e5是科学计数法。表示2*10^5值。
0x后面没有数字,所以非法。
2-15
下面四个选项中,均是合法浮点数的选项是( )
A.+1e+1 、 5e-9.4 、 03e2
B.-.60 、 12e-4 、 -8e5
C.123e 、 1.2e-.4 、 +2e-1
D.-e3 、 . 8e-4 、 5.e-0
浮点数表示中,e前面必须有数字,整数或小数均可;
e后面必须接整数,正数或负数均可;
小数点前面只有零时,可以简写(如0.5可写成.5)
2-16
下面正确的字符常量是( )
A."c"
B.'\'’
C.'W'
D.""
2-17
下面四个选项中,均是正确的八进制数或十六进制数的选项是( )
A.-10 、0x8g 、 -011
B.0abc 、-017 、 0xc
C.0010 、 -0x11 、 0xf1
D.0a12 、 -0x123 、 -0xa
2-18
According to the declaration: char c1=92,c2=92;
the value of expression _____ is 0.
根据声明:字符 c1=92,c2=92;表达式 _____ 的值为 0。
A.c1^c2
B.c1&c2
C.~c2
D.c1|c2
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
2-19
int a=2,b=4,c=5; The result of expression: c/a+b%c
整数 a=2,b=4,c=5;表达式的结果:c/a+b%c
A.6
B.6.5
C.3.5
D.2
4%5=4
2-20
下列符号中可以用作 C++标识符的是
A._radius
B.foo~bar
C.else
D.3room
2-21
下列()是正确的语句。
A.;
B.a=17
C.x+y
D.cout<<"\n"
??
2-22
按照标识符的要求,( )不能组成标识符。
A.连接符
B.下划线
C.大小写字母
D.数字字符
2-23
表达式__不能用于判断“x和y不同时为零”。
A.x!=0 || y!=0
B.x || y
C.!(x==0 || y==0)
D.!(x==0 && y==0)
??
2-24
已知字母A
的ASCII码为十进制数65,且ch
为字符型变量,则执行语句ch='A'+'6'-'3';
后,ch
中的值为__。
A.D
B.68
C.C
D.不确定
2-25
假设有变量定义如下 int a, k;
则以下哪条语句不能确保将变量k
变为0:
A.k = a + ~a + 1;
B.k ^= k;
C.k = k >> (sizeof(int) * 8 - 1);
D.k = k & ~k;
- A 一个数和它的按位取反相加结果肯定是全1,也就是-1,-1+1=0
- B 一个数异或它自己得0
- C 右移不能确定是带符号的还是无符号的
-
D 一个数和它的按位取反做按位与结果肯定是全0
2-2
下列关于单目运算符++、--的叙述正确的是____。
A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
++(或--)的运算结果是使运算对象增1(或减1);运算对象可以是整型变量、实型变量,也可以是字符型变量,但不能是常量或表达式。++(或--)的结合方向是“自右向左”。
2-27
设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( )。
A.b=1.0/a;
B.b=(float) (1/a);
C.b=1/(float)a;
D.b=1/(a*1.0);
B:b=0.0
由于小括号优先级很高,先执行1/a,得0,再转换成float型
如果是(float)1/a,就可以得到0.5,这里会先把1转成浮点型,然后浮点型和整型运算,会自动把整型转换成浮点型。
强制类型转换会转换最近的一个值
2-28
若变量已经被正确定义,为表示“变量x和y都能被3整除”,应使用的C语言表达式是( )。
A.(x%3 != 0) || (y%3 != 0)
B.(x%3 != 0) && (y%3 != 0)
C.(x%3 == 0) || (y%3 == 0)
D.(x%3 == 0) && (y%3 == 0)