一、单向选择题 1、给定3个int类型的正整数x,y,z,对如下4组表达式判断正确的选项() A. int a1=x+y-z; int b1=x*y/z; B. int a2=x-z+y; int b2=x/z*y; C. int c1=x<>z; int d1=x&y|z; D. int c2=x>>z< A. 一定等于a2 B. 一定定于b2 C. 一定等于c2 D. 一定等于d2 解析:A 一开始觉得A肯定不对,因为会溢出,但不知道其实正如微机原理课上原的,溢出会有标识位,连加减的时候会考虑到这个标识位的作用,这样A就对了。 2、程序的完整编译过程分为是:预处理,编译,汇编等,如下关于编译阶段的编译优化的说法中不正确的是() A. 死代码删除指的是编译过程直接抛弃掉被注释的代码; B. 函数内联可以避免函数调用中压栈和退栈的开销 C. For循环的循环控制变量通常很适合调度到寄存器访问 D. 强度削弱是指执行时间较短的指令等价的替代执行时间较长的指令 解析:A 在大多数的机器上,调用函数都要做很多工作:调用前保存寄存器,并在返回时恢复;复制实参;程序还必须转向一个新位置执行。内联函数避免函数调用的开销。所谓死代码就是其计算结果永远不会被使用的语句。所谓强度削弱,就是用一种(或一串)执行时间较短的操作去等价地代替一个操作。例如,乘以2的n次方运算可以用左移来替换(例如,X*8可替换为X<<3),因为在多数机器上,左移运算的速度比乘法运算的速度快。
3、如下关于进程的面熟不正确的是() A. 进程在退出时会自动关闭自己打开的所有文件 B. 进程在退出时会自动关闭自己打开的网络链接 C. 进程在退出时会自动销毁自己创建的所有线程 D. 进程在退出时会自动销毁自己打开的共享内存 解析:D 共享内存销毁了,会对其他正在使用这段内存的进程造成破坏。 4、计算表达式x6+4x4+2x3+x+1最少需要做()次乘法 A)3 B)4 C)5 D)6 解析:A 原式=x^2 * (x^4 + 4 * x^2 + 2*x) + x + 1,x^2用一次乘法,x^4看成是(x^2)^2,这样用掉第二次乘法,外面的x^2 * () 是第三次乘法,所有常系数乘法都展开成连加。 5、在如下8*6的矩阵中,请计算从A移动到B一共有多少种走法?要求每次只能向上挥着向右移动一格,并且不能经过P;
A)492 B)494 C)496 D)498 解析:A 走到B共需要12步,其中7步必须向右,5步必须向上,但次序可以不同,因此是C(7,12),要求P不能走,那么走到P的可能次数是C(3,6),从P走到B的可能次数是C(4,6),因此结果是C(7,12) – C(3,6)*C(4,6)=492。 6、SQL语言中删除一个表的指令是() A. DROP TABLE B. DELETE TABLE C. DESTROY TABLE D. REMOVE TABLE 解析:A
7、某产品团队由美术组、产品组、client程序组和server程序组4个小组构成,每次构建一套完整的版本时,需要各个组发布如下资源。美术组想客户端提供图像资源(需要10分钟),产品组向client组合server提供文字内容资源(同时进行,10分钟),server和client源代码放置在不同工作站上,其完整编译时间均为10分钟切编译过程不依赖于任何资源,client程序(不包含任何资源)在编译完毕后还需要完成对程序的统一加密过程(10分钟)。可以请问,从要完成一次版本构建(client与server的版本代码与资源齐备),至少需要多少时间() A)60分钟 B)40分钟 C)30分钟 D)20分钟 解析:D 除了加密以外,剩下的事情在第一个10分钟内可以并发完成。 8)如下关于编译链接的说法错误的是() A. 编译优化会使得编译速度变慢 B. 预编译头文件可以优化程序的性能 C. 静态链接会使得可执行文件偏大 D. 动态链接库会使进程启动速度偏慢 解析:D 静态链接:如果函数库的一份拷贝是可执行文件的物理组成部分 动态链接:如果可执行文件只是包含了文件名,让载入器在运行时能够导入程序所需要的函数库 静态链接的模块被链接编辑并载入以运行; 动态链接可执行文件比功能相同的静态链接可执行文件的体积小;