恒生测试开发笔试 *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; }
#恒生##笔试题目##恒生公司#