转自http://blog.csdn.net/wendy260310/article/details/21332219,感谢原作者,让我们有一个学习的机会。
答案仅供参考,有错误欢迎指正。
1.求1111+2*1111+....+1111*1111对7求余的结果。
556*1111*1111对7求余,每个分别对7求余最后算的结果是5.
2.绕Y轴旋转的旋转矩阵。
3.f(0)=0,f(1)=1,f(n)=(f(n-1)+f(n-2))mod 5求f(2013);
周期为20,答案是3
4.二分查找的时间复杂度,堆排序的空间复杂度。
课本
5.快排的时间复杂度。
课本
6.下面代码的输出结果:
- #include <iostream>
- #define f(a) (a)*(a)
- using namespace std;
- int main()
- {
- int a=5,b,c;
- b=f(a++);
- c=f(++a);
- if(!a&&c++)
- b++;
- else
- c++;
- cout<<b<<'\t'<<c<<endl;
- }
GCC和VS的结果不同,本来刚开始这么写的,但是后来还是写的GCC上的结果。
VS:25,82.GCC30,82
7.关于断言:
下面是一个断言的声明:
- #define asert(e) if(!e) assert_error(_ERROR_LINE),
这样声明有什么问题?改成下面这样呢?
- #define asert(e) {if(!e)assert_error(ERROR_LINE);}
该怎么改才是对的。
8.下面程序输出是什么?
- #include <iostream>
- using namespace std;
- class Base
- {
- public:
- ~Base()
- {
- cout<<"~Base"<<endl;
- }
- };
- class Dri:public Base
- {
- public:
- ~Dri()
- {
- cout<<"~Dri"<<endl;
- }
- };
- int main()
- {
- Base *b=new Dri();
- delete b;
- return 0;
- }
9.在一个低地址的系统中,下面代码输出的结果是:
- #include <stdio.h>
- struct data
- {
- int a;
- short s;
- };
- int main()
- {
- struct data dd;
- dd.s=0x0102;
- char *p=ⅆ
- printf("%d,%d",sizeof(dd),(int)(*(p+4)));
- }
p=&dd不知道怎么回事显示有点问题。
8,2
10.下面调用多少次fork(),打印几个'-'
- #include <stdio.h>
- #include <unistd.h>
- int main()
- {
- int i;
- for(i=0;i<2;++i)
- {
- fork();
- printf("-");
- }
- return 0;
- }
3,8
11.下面代码有什么用?
./a.out >outfile 2>&1
将标准输出和标准出错重定向到outfile
12.一分钟的音乐,采用14400的采样率,双声道,16比特,问大概多大。
前面这些题是试卷的第I部分,上面说第一部分不过直接就pass
下面是编程方面的题目
1.两个题可以选一个,a.写一个strcmp函数b.约瑟夫环的问题。
2.纸牌游戏,随便抽五张牌,A代表1,2-10还是2-10,J,Q,K表示11,12,13 王可以当任何一张。判断5张牌是不是顺子。
3.程序改错
- class obj
- {
- public:
- obj()
- {
- m=0;
- data=new int[100];
- }
- obj(const &t)
- {
- m=t.m;
- }
- int squ(volatile int *p)
- {
- return *p**p;
- }
- ~obj()
- {
- if(data)
- delete[] data;
- }
- void add() const
- {
- m++;
- }
- private:
- int m;
- int *data;
- };
- int main()
- {
- obj o1;
- obj o2=o1;
- return 0;
- }