第15届蓝桥杯青少组STEMA考试C++中高级真题含解析附验题OJ链接(2023年10月)

才疏学浅,加偶尔手残敲错代码,如果文章有错误的地方请您不吝赐教,微信 makytony  我。

验题OJ链接,点导航栏 训练 蓝桥杯STEMA 分类 学生账号 xmvip 密码 888666​icon-default.png?t=O83Ahttp://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表示一个指向指针的指针,而&aa的地址,应该赋值给指向整型的指针。

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))

  1. (a = 5)首先被执行,赋值操作使得a的值变为5,赋值表达式的结果为赋值的值,即5,非零值被视为真。
  2. 由于(a = 5)的结果为真,根据逻辑或||的短路特性,(b = 1)不会被执行。
  3. 因此,a的值变为5,b的值保持不变,即0。

所以,执行表达式((a = 5) || (b = 1))之后,ab的值分别是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星卯教育tony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值