括号匹配、Fibonacci数列

这篇博客包含多个编程相关的问题,包括括号匹配的判断和Fibonacci数列的转化步骤。问答部分涉及了C++语言的基础知识,如指针操作、数组、函数参数传递和类的继承权限。编程题部分则要求解决Fibonacci数列的转化问题以及检查字符串是否为合法括号序列,提供了多种解题思路。
摘要由CSDN通过智能技术生成

问答题

问答题1:以下代码的实现有错误,下面哪句话的表述是正确的?

// 函数作用:将整型数组 p 中 n 个数据增大?
void increment_ints(int p[], int n){
   
	assert(p != NULL);
	assert(n >= 0); 
	while (n--){
   
		*p++;
		p++;
	}
}

(A) *p++ 使得 p 在解引用之前增大,应该改为 (*p)++

(B) 数组的值是一个不能改变的值,所以p不能直接被修改。应该使用一个和p相关联的指针来完成这个操作

(C) while循环的条件必须是一个布尔类型的表达式,表达式应该为n!=0

(D) p不应该定义为变长的数组,参数中不应该包含参数n

提示a:*p++ 的优先级是,先计算++,然后再解引用,所以正确的方式应该是先解引用,再++

提示bcd:一般传入参数的都是地址,数组的名也就相当于首地址,p可以被修改,因为参数存储在栈区,while 循环条件不一定必须是布尔类型,数组的长度一般也都是通过另一个参数传入进来的,不然函数无法知道数组的长度,因为第一个只是一个指针而已.

答案:A

问答题2:如下函数的f(1)的值为?

int f(int n) {
   
	static int i = 1;
	if (n >= 5) {
   
		return n;
	}
	n = n + i;
	i++;
	return f(n);
}

提示:局部静态变量存储在静态区,只会被初始化一次,整个生命周期它都存在.

答案:7

问答题3:下列代码输出啥?

#include <iostream>
using namespace std;
class A{
   
public:
	void print(){
   
		cout << "A:print()";
	}
};
class B: private A{
   
public:
	void print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿的温柔香

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

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

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

打赏作者

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

抵扣说明:

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

余额充值