**恒生测试开发笔试** *2020.3.20**

恒生测试开发笔试 2020.3.20*

第一部分c语言选择

比较有印象的是常量指针,指针常量

1、常量指针:本质上是一个指针,常量表示指针指向的内容,说明该指针指向一个“常量”。在常量指针中,指针指向的内容是不可改变的,指针看起来好像指向了一个常量。

const int *p,int const *p;
int a=10,b=20;
const int *p=&a;
p=&b;//指针可以指向其他地址,但是内容不可以改变。

2、指针常量:指针类型的常量(int *const p)

本身是一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。

int a=10,b=20;
int * const p=&a;
*p=30;//p指向的地址是一定的,但其内容可以修改。

还有数据库的视图

视图是虚拟的表,只包含使用时动态检索数据的查询。
视图的限制:(1)、视图不能索引,也不能有关联的触发器或默认值,
		  (2)、ORDER BY可以用在视图中,但如果从该视图检索数据的select语句中也含有                   ORDER BY,那么该视图中的ORDER BY将被覆盖。

3、为score表建立Sno、Cno的唯一索引。

建立索引是加快查询速度的有效手段。
create unique index SCno on Score(Sno,Cno)

第二部分、编程题

1、海滩上有一堆桃子,5只猴子来分。第一只猴子把这堆桃子平均分 为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把 多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的。试问,海滩上原来有最少有多少个桃子?

分析:第二到五只猴子看到猴子的数量一定是4的倍数,

#include<iostream>
using namespace std;
int main()
{
    int x=0, i = 0, j = 1;//i执行次数 j=1最后猴子拿到的桃子数, x 每次均分后,第一只猴子拿了之后剩下的总数
    while (i < 5) {
        x = 4 * j;
        for (i = 0; i < 5; i++)
        {
            if (x % 4 != 0) //检查看到的桃子是否是4的倍数
            { 
                break;
            }
            x = (x / 4) * 5 + 1;
        }
        j++;
    }
    cout << x << endl;
    return 0;
}

2、求1000以内所有的完数。

完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。

#include<iostream>
using namespace std;
bool isperfectNum(int n)
{
	int sum = 0;
	for (int i = 1; i < n; i++)
	{
		if (n % i == 0)
		{
			sum += i;
		}
	}
	return sum == n;
}
int main()
{
	for (int n = 1; n < 1000; n++)
	{
		if (isperfectNum(n))
		{
			cout << n << endl;
		}
	}
	return 0;
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值