2021年09月06日 计算机_编程基础2

考点1:左移运算符

代码int i=3;i<<=4;i的值等于多少?()

  • A 40
  • B 110000(二进制)
  • C 12
  • D -48

解析

显示答案/隐藏答案正确答案: B

<<是左移运算符的意思,左移运算符是用来将一个数的各二进制位全部左移若干位。
这里可以理解为把3化为2进制,然后统一左移4位。

比如3的二进制 0000 0011 左移4位 0011 0000 = 48

考点2:循环条件

下面的程序中, int32_t表示一个有符号的 32 位整数,程序的入口是 main 函数,问最终 res 的结果是多少?

1
2
3
4
5
6
7
8
9
10
int32_t f(int32_t a,int32_t b){
while(a+b>0){
a=a+1;
b=b-1;
}
return a+b;
}
int32_t main(){
int32_t res=f(1,0);
}
  • A –(2^31+2^30+…+2^2+2^1+2^0)
  • B 0
  • C -1
  • D 程序会死循环

解析

显示答案/隐藏答案正确答案: D

考点3:C语言指针 内存图

下列代码段将打印出 ().

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main (void)
{
int a=2,*p1,**p2;
p2=&p1;
p1=&a;
a++;
printf("%d,%d,%d\n",a,*p1,**p2);
return 0;
}
  • A 3,2,3
  • B 2,2,2
  • C 3,3,3
  • D 3,3,2

解析

显示答案/隐藏答案正确答案: C

首先经过a++,a变成了3;
p1是指向a的地址的,因此*p1就是a的值,即为3;
p2是指向p1的地址的,因此*p2就是p1的值,即a的地址,那么**p2就是a的值,也就是3

考点4:自增运算

i=2,(i++)/3的结果是()

  • A 0
  • B 2
  • C 0.67
  • D 1

解析

显示答案/隐藏答案正确答案: A

后++,先取值,再加一

因为i++操作是在i/3完成之后,再对i进行加1操作的,所以结果是2/3,又因为2个int型相除,所以结果是0;

验证

1
2
3
int i = 2, b = (i++) / 3;
System.out.println(i);
System.out.println(b);

运行结果:

1
2
3
0

考点5:重载要求:参数列表不同

下面哪个方法是 public void example(){...} 的重载方法? ( )

  • A public void Example( int m){...}
  • B public int example(){...}
  • C public void example2(){...}
  • D public int example ( int m, float f){...}

解析

显示答案/隐藏答案正确答案: D

两同一不同

  • 在同一个类中
  • 方法名相同
  • 参数列表不同
    • 参数类型不同
    • 参数位置不同
    • 参数个数不同

考点6:二进制的表示范围

中国人口数量在10亿~20亿,如果用二进制记录人口数量,则至少需要_____位的长度。

  • A 30
  • B 31
  • C 33
  • D 63
  • E 64
  • F 65

解析

显示答案/隐藏答案正确答案: B

$2^{32}=42 9496 7295$约等于42亿
$2^{31}=21 4748 3647$约等于21亿

10个亿就是1 000 000 000
20个亿就是2 000 000 000
要求:「如果用二进制记录人口数量,则至少需要_____位的长度」
给出的四个选项中
A.$2^{30}=10 7374 1824$ 满足了10个亿但是显然不满足20亿
B.$2^{31}=21 4748 3648$ 满足20个亿完全符合题意。所以选B

C.D.E.F嫌大

考点7:计算机的存储系统一般指

计算机的存储系统一般指( )

  • A ROM
  • B 内存(主存)
  • C RAM
  • D 外存(辅存)
  • E 控制器

解析

显示答案/隐藏答案正确答案: BD

内存:包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。
外存:磁盘、光盘、固态存储器等等。