浙商银行2011笔试题+答案解析
1、下列4行代码是否有错误,若有错误请指出,若没有,请确定a的值是多少?
- int main(void)
- {
- int a = 3;
- a += (a++);
- a += (++a);
- (++a) += (a++);
- (a++) += a;
- return 0;
- }
2、下面代码的输出是多少?
- int main(void)
- {
- FILE *fp;
- char str[100];
- fp=fopen("myfile.dat","w");
- fputs("abc",fp);
- fclose(fp);
- fp=fopen("myfile.dat","a+");
- fprintf(fp,"%d",28);
- rewind(fp);
- fscanf(fp,"%s",str);
- puts(str);
- fclose(fp);
- return 0;
- }
3、下面代码的输出是()
- class Myclass
- {
- public:
- Myclass(int n) { number = n;}
- Myclass(Myclass &other)
- {
- number = other.number;
- cout<<"a ";
- }
- private:
- int number;
- };
- Myclass fun(Myclass p)
- {
- Myclass temp(p);
- return temp;
- }
- int main(void)
- {
- Myclass obj1(10),obj2(0);
- Myclass obj3(obj1);
- obj2=fun(obj3);
- return 0;
- }
A、a a a B、a a a a C、a a D、a
4、下面代码的输出是()
- class Myclass
- {
- public:
- Myclass(int n) { number = n;}
- Myclass(Myclass &other)
- {
- number = other.number;
- cout<<"a ";
- }
- private:
- int number;
- };
- Myclass fun(Myclass &p)
- {
- Myclass temp(p);
- return temp;
- }
- int main(void)
- {
- Myclass obj1(10),obj2(0);
- Myclass obj3(obj1);
- obj2=fun(obj3);
- return 0;
- }
A、a a a B、a a a a C、a a D、a
5、下面错误的是()
A、define N 10;
int x[N];
B、int N = 10;
int x[N];
C、int x[0..10];
D、int x[];
简答题:
1、abstract class 和interface的区别?
2、数据库中索引的作用的什么?什么情况下适合建立索引及什么情况下不适合建立索引?
3、黑盒测试和白盒测试的优缺点各是什么?
参考答案(欢迎讨论) 转载请注明来源 http://www.cnblogs.com/jerry19880126/
- 编译错误,第七行后缀++是右值,只能位于等号的右边(左值既可以位于等号的左边,亦可以位于等号的右边)。
- abc28。有几个知识点:fputs是向文件中写入,而puts是向屏幕输出。fopen方式有w、r和a三种,w是覆盖写入(不支持读文件内容),若文件不存在,则新建一个;r是以只读方式打开文件,不能对文件写入,若文件不存在,则出错;a是以追加方式打开文件(不支持读文件内容),不覆盖文件原内容,跟在原内容的后面进行写入,若文件不存在,也会新建一个。本程序有两个fopen,第一个以写方式打开(因为之前不存在文件,所以会直接新建一个文件);第二个fopen是以a+方式打开的,’+’表示在追加写入的基础上,还可以读取文件内容。rewind是重置文件指针,将指针指向文件开头。因此,文件首先有内容abc,然后追加写入后的结果是abc28,重置指针后,读入str里的内容是abc28,puts将之写入到标准输出(显示器)中。
- B。调用了四次拷贝构造函数,第一次是main中的Myclass obj3(obj1),第二次是实参obj3到fun形参p,第三次是fun中的temp,第四次是函数返回时,temp到临时变量(临时变量再到obj2调用的是’=’运算符,不是拷贝构造函数)。
- A。与第3题不同的是fun的形式参数是引用,传入的直接是实参的地址,所以不调用拷贝构造函数了。其他地方是一样的。
- BCD。只有A是对的,宏可以,另外const int N = 10; int x[N];也是可以的。除此以外,都需要动态分配空间。D要有初始化元素时才可以这样写,比如int x[] = {1,2,3},这样编译器就知道[]里应该填3。
简答题:
- 这个是java的题,c++里面没有interface,但有abstract class,当一个类中包含有纯虚函数时,这个类就是abstract class。下面从java语法角度来回答这个问题,可以分成三块还说:从成员变量角度,接口必须定义成public static final,而抽象类无此要求;从构造方法角度,接口不能有任何的构造方法,但抽象类可以有构造方法(但不能用构造方法直接生成抽象类对象,这个构造方法是用于子类调用的);从成员函数(方法)角度,接口中所有方法都是抽象的(没有函数体),若不是所有方法都为抽象,就是抽象类。
- 索引好比目录,用于快速查找。当数据表较大且不经常进行批量更新时,适合建立索引;反之不适合建立索引。
- 从效率、成本、范围覆盖和设计角度来说。黑盒测试效率高,不要求测试人员熟悉编程语言和代码,因而成本也低。黑盒测试的范围覆盖不全面,程序未执行的代码无法发现,测试用例的设计也比较困难。黑盒的优点就是白盒的缺点,而黑盒的缺点就是白盒的优点。