1-10C语言10-15数量关系16-20判断关系Web前置课笔记
- 字符串“BeiJing”存储在计算机中,需要的字节数是( )
正确答案: C 你的答案: D (错误)
A.7
B.14
C.8
D.16
解析:一个字母占用一个字姐,字符串后还有一个\0也占用一个字节
- 已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是()。
if(x>y)
z=x;x=y;y=z;
正确答案: B 你的答案: A (错误)
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20
解析:语句z=x;是否执行与if后面的条件是否为真有关,条件为真该语句执行,
为假则不执行。而语句x=y;y=z;则与if后面的条件无关,总要执行。因x=10,y=20
所以x>y为假,则语句z=x;不执行,即z的值不变(30),语句x=y;y=z;执行后,x的
值为y的值(20),y的值为z的值(30).故正确答案是B
- 语句for( ;1;)是什么意思?
正确答案: A 你的答案: C (错误)
A.死循环
B.编译错误
C.执行1次
D.执行2次
解析:这是一个死循环,for中两个分好中间为判断条件,为真则执行。这里为1,相当于true,也就是死循环。等价于for(;;)也等价于while(1)
- 如下语句通过算术运算和逻辑运算之后i和 j的结果是( )
int i=0;
int j=0;
if((++i>0)||(++j>0))
{
//打印出i和j的值。
}
正确答案: D 你的答案: B (错误)
A.i=0;j=0
B.i=1;j=1
C.i=0;j=1
D.i=1;j=0
解析:&& 和 || 为短路与 短路或
&&若前面的表达式为false,整个逻辑表达式为false,所以后面的表达式无论true和false都无法影响整个表达式的逻辑结果,所以为了提高代码执行速率,这里后面的表达式就不会执行。
同理,若前面表达式为true,则后面的表达式无需计算。
& 和 | 为不短路与 不短路或
无论什么情况,前面的和后面的都要执行。
- 以下程序的输出结果是( )。
#include
main()
{ int
i=0,a=0;
while(i<20)
{ for(;; )
{
if((i%10)==0) break;
else i–;
}
i+=11; a+=i;
}
printf("%d\n",a);
}
正确答案: B 你的答案: D (错误)
A.21
B.32
C.33
D.11
解析:第一次:i=0, i=i+11=11,a=i+a=11 第二次:i=10, i=i+11=21,a=i+a=11+21=32
- C++是否支持嵌套函数定义,如下代码所示?
fun1() { fun2() { fun3() { } } }
正确答案: B 你的答案: A (错误)
A.允许
B.不允许
解析:C++中函数可以嵌套调用,但是不可以嵌套定义。
- 以下程序运行后的输出结果是( )
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b<a)&&(m=a) ;
printf("%d,%d\n",k,m);
return 0;
}
正确答案: A 你的答案: B (错误)
A.0,0
B.0,1
C.1,0
D.1,1
解析:& &逻辑与运算,先执行n=b<a,得n=0,赋值表达式的返回值为赋值符号右边的值,即0,逻辑与运算结束,不执行m=a。m未被赋值,仍为0。
- 以下正确的说法是( )。
正确答案: C 你的答案: D (错误)
A.用户调用标准库函数前,必须重新定义
B.若已包含标准库头文件及相关命名空间,用户也可以重新定义标准库函数,但是该函数将失去原有含义
C.T若已包含标准库头文件及相关命名空间,则系统不允许用户重新定义标准库函数
D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中
解析:若已包含标准库头文件及相关命名空间,则系统不允许用户重新定义标准库函数
已经被封装
A:用户调用标准库函数,必须利用#include来对其进行声明。
B、C:标准库函数可以被重载而不能重新定义,重载后函数具有不同的形参,但是原有的定义并不失效。
D:当用户调用标准库函数前,必须使用#include预编译命令将函数所在文件包括到用户源当中。
- 变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()
正确答案: C 你的答案: D (错误)
A.1
B.-(262+261+2^60+1)
C.2^62+2 ^61+2 ^60+1
D.259+(255+254+…+22+21+20)
解析:0Xf000000000000000补码为1111000000000000000000000000000000000000000000000000000000000000
0x7FFFFFFFFFFFFFFF补码为0111111111111111111111111111111111111111111111111111111111111111
a-b=a+(-b)=
1111000000000000000000000000000000000000000000000000000000000000+
1000000000000000000000000000000000000000000000000000000000000001=
10111000000000000000000000000000000000000000000000000000000000001(高位溢出舍去)
则结果为
0111000000000000000000000000000000000000000000000000000000000001=
262+261+2^60+1
答案为C
- 设有一个判断语句
if(!(ch>=‘0’&&ch<=‘9’))printf(“This is not a digit!\n”);
else printf(“This is a digit!\n”);
为实现判定—条件覆盖,需要设计的测试用例个数至少应为
正确答案: C 你的答案: B (错误)
A.1
B.2
C.3
D.4
解析:判定-条件覆盖:设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。
测试用例要满足如下条件:1.所有条件可能至少执行一次取值;2.所有判断的可能结果至少执行一次。
- 3 , 8 , 11 , 9 , 10 , ( )
正确答案: A 你的答案: D (错误)
A.10
B.18
C.16
D.14
解析:前两项的首位数相加等于第三项,3+8=11,8+1=9,1+9=10,所以下一个为9+1=10
- 4 ,5 ,( ) ,40 ,104
正确答案: D 你的答案: D (正确)
7
9
11
13
解析:
4 + 1^3 = 5
5 + 2^3 = 13
13 + 3^3 = 40
40 + 4^3 = 104
- 2 ,2 ,8 ,38 ,( )
正确答案: D 你的答案: C (错误)
A.76
B.81
C.144
D.182 <