查找两个字符串a,b中的最长公共子串,两种排序方法,求最小公倍数

这篇博客探讨了编程题目,包括查找字符串的最长公共子串、字符串排序方法的验证以及求解两个数的最小公倍数的多种算法。问答部分涉及字符计数、程序错误分析和构造函数调用次数等。
摘要由CSDN通过智能技术生成

问答题

问答题1:以下程序统计给定输入中每个大写字母的出现次数

void AlphabetCounting(char a[], int n) {
   
	int count[26] = {
   }, i, kind = 0;
	for (i = 0; i < n; ++i){
   
		// pass 1
	}
	for (i = 0; i < 26; ++i) {
   
		if (++kind > 1) putchar(';');
		printf("%c=%d",'Z'-i,count[i]);
	}
}

提示:第一个循环是一个计数,但是数组只能容纳26大小的字符,对于A-Z的ASCII码值过大,所以需要 Z-a[i] 进行计算.

答案:pass1 为: ++count['Z'-a[i]];

问答题2:请找出下面程序中有哪些错误?

int main(){
   
	int i=10;
	int j=1;
	const int *p1;//(1)
	int const *p2=&i; //(2)
	p2=&j;//(3)
	int *const p3=&i;//(4)
	*p3=20;//(5)
	*p2=30;//(6)
	p3=&j;//(7)
	return 0;
}

提示:const int * p1 = &i; 表示 p1 指向了 i 的地址,它的地址值不可改变,和 int const * p1 = &i 的意思一样,而 int * const p1 = &i;的意思是指针 p1 的指向不可改变.

答案:(6),(7)

问答题3:假定有类AB,有相应的构造函数定义,能正确执行
AB a(4),b(5),c[3],*p[2]={&a,&b};语句,请问执行完此语句后共调用该类的构造函数次数为?

提示:a,b 为有参构造,c为三次的无参数构造,对于指针数组只是进行定义指向一个地址而已,并没有 new 出来一个对象,所以不进行内存的分配,因此没有发生构造.

问答题4:有如下程序,执行后输出的结果是?

#include <iostream.h>
class cla{
   
public:
	cla(){
   n++;}
	~cla(){
   n--;}
	static int get_n(){
   
		return n;
	}
private:
	static int n;
};
int cla::n= 0;
int main(){
   
	cla *p =new cla;
	delete p;
	cout<<"n="<<cla::get_n()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿的温柔香

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

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

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

打赏作者

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

抵扣说明:

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

余额充值