才疏学浅,加偶尔手残敲错代码,如果文章有错误的地方请您不吝赐教,微信 makytony 我。
验题OJ链接,点导航栏 训练 蓝桥杯STEMA 分类 学生账号 xmvip 密码 888666http://212.129.250.124:88/
第一部分 选择题
1、十进制数189转换成二进制是 ( )
A、10111101
B、11010011
C、11110000
D、11001100
【答案】A
【解析】十进制数189转换成二进制的过程如下:
- 189除以2,商94余1
- 94除以2,商47余0
- 47除以2,商23余1
- 23除以2,商11余1
- 11除以2,商5余1
- 5除以2,商2余1
- 2除以2,商1余0
- 1除以2,商0余1
将余数从下到上排列得到二进制数:10111101
。
2、定义一个整型变量int a,使用指针存储a的地址,下列选项正确的是()
A、int &p = &a
B、int **p = &a
C、int *p = a
D、int *p = &a
【答案】D
【解析】
要使用指针存储一个整型变量a
的地址,正确的方法是声明一个指向整型的指针,并将它指向变量a
的地址。这是通过使用取地址运算符&
来获取a
的地址,然后将这个地址赋给指针。
选项分析如下:
A. int &p = &a
:这是错误的,因为&p
是尝试声明一个引用,不是指针,并且类型不匹配。
B. int **p = &a
:这是错误的,因为**p
表示一个指向指针的指针,而&a
是a
的地址,应该赋值给指向整型的指针。
C. int *p = a
:这是错误的,因为p
是一个指向整型的指针,而a
是一个整型变量。这里缺少了取地址运算符&
,所以不能直接将a
赋给p
。
D. int *p = &a
:这是正确的,p
是一个指向整型的指针,&a
是取变量a
的地址,所以这个语句将a
的地址赋值给指针p
。
因此,正确答案是D、int *p = &a。
3、定义一个字符串数组: char a[1024] =“Welcome to China!":要计算上述字符串的长度,应该使用下列哪个函数()
A、 strcat()
B、 stremp()
C、 strlen()
D、 size()
【答案】C
【解析】计算字符串的长度,应该使用 strlen()
函数。这个函数会返回字符串的长度,不包括终止字符\0
。
4、己定义变量int a = 10, b = 0:
执行表达式((a = 5) || (b = 1)之后,a和b的值分别是( )
A、10 0
B、5 1
C、5 0
D、10 1
【答案】C
【解析】逻辑或运算符||
具有短路特性,即如果第一个操作数的值为真,则不再计算第二个操作数的值。对于表达式((a = 5) || (b = 1))
:
(a = 5)
首先被执行,赋值操作使得a
的值变为5,赋值表达式的结果为赋值的值,即5,非零值被视为真。- 由于
(a = 5)
的结果为真,根据逻辑或||
的短路特性,(b = 1)
不会被执行。 - 因此,
a
的值变为5,b
的值保持不变,即0。
所以,执行表达式((a = 5) || (b = 1))
之后,a
和b
的值分别是5和0。
5、运行下面程序,输出的结果是()
int func(int x, int y)
{
if(x ==1 && y == 1)return 1;
if(x < 0)return y;
if(y < 0)return x;
return (func(x,y-2) + func(x-2,y));
}
int ma