最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

笔试答案及评分标准

来源:动视网 责编:小OO 时间:2025-09-26 10:57:16
文档

笔试答案及评分标准

第一部分Unix/Linux1.(BC)在vi中,那些命令可以保存退出vi(2分)A、q!B、wqC、xD、q2.(A)下面的那写命令可以用来修改文件的权限(2分)A、chmodB、chownC、chgrpD、chkey3.(ACDE)以下那些函数是共享内存的相关函数(2分)A.shmgetB.shmopC.shmdtD.shmatE.shmctl4.(BCE)关于vi的编辑命令,下列说法是正确的(2分)A.i和I可以在光标处插入资料,区别在于插入资料位置分别在光标前和光标后B.a在光标后加入
推荐度:
导读第一部分Unix/Linux1.(BC)在vi中,那些命令可以保存退出vi(2分)A、q!B、wqC、xD、q2.(A)下面的那写命令可以用来修改文件的权限(2分)A、chmodB、chownC、chgrpD、chkey3.(ACDE)以下那些函数是共享内存的相关函数(2分)A.shmgetB.shmopC.shmdtD.shmatE.shmctl4.(BCE)关于vi的编辑命令,下列说法是正确的(2分)A.i和I可以在光标处插入资料,区别在于插入资料位置分别在光标前和光标后B.a在光标后加入
第一部分 Unix/Linux

1.(  BC  )在vi中,那些命令可以保存退出vi(2分)

A、q!    B、wq        C、x    D、q

2.( A )下面的那写命令可以用来修改文件的权限(2分)

A、chmod   B、chown   C、chgrp   D、chkey

3.( ACDE )以下那些函数是共享内存的相关函数(2分)

A.shmget   B. shmop   C. shmdt   D. shmat   E. shmctl

4.(  BCE )关于vi的编辑命令,下列说法是正确的(2分)

A.i和I可以在光标处插入资料,区别在于插入资料位置分别在光标前和光标后

B.a在光标后加入资料,A在行末加入资料

C.o在该行之下新增一行用于输入,O在该行之上新增一行用于输入

D.d删除光标处字符,D删除光标前一个字符

E.x删除光标所在字符,X删除光标所在前一个字符

5.( ABCDE   )可通过如下命令查看系统cpu负载、内存使用、磁盘I/O情况(2分)

A.w   B. sar  C. up   D.vmstat   E.iostat

6.(    B     )FTP、TELNET服务的默认端口分别为(2分)

A.25,108   B.21,23   C.21,25   D.25,23

7.(    D      )下面的命令可以列出当前操作系统所支持的信号(2分)

A.kill -9   B.kill –s   C.kill -16   D.kill –l

8.在vi的非编辑状态,如何实现如下功能,请简单描述。(20分)

(1)光标到某一行                                            :n

(2)光标到该行尾                                            $

(3)光标到该行首                                            ^

(4)到文档最后一行                                        G

(5)把光标所在行及其下一行连接为一行                        J(大写j)

(6)拷贝光标所在行开始的连续10行到文档最后              10yy, G, p

(7)查找文档中光标以后含有MAPS或者maps字符串的地方  :set ic;  /maps

(8)使用vi过程中由于系统管理员发送广播消息,使屏幕换面混乱,请恢复到接收消息前的画面                                                Ctrl + L

(9)显示当前光标所在行                        Ctrl + G 或者 :set nu(num/number)

(10)放弃对文件所作的修改并且退出                            :q!

9.用相应的命令,完成如下功能。(45分)

(1)建立一个组test                            

group add test

(2)建立用户test,属于组test,登陆目录为/export1/home/test,使用ksh。

useradd –d /export1/home/test –m –g test –s /bin/ksh test

(3)设定test用户的密码为test。

passwd test

(4)用test用户登录,在当前目录下创建空文件test。

touch test 或者 vi test(保存退出)

(5)假设test用户主目录下有目录mp3,请在test用户主目录下列出mp3目录下所有文件,按照文件修改时间降序排列,把结果输入到文件test中。

ls –lt mp3 >./test

(6)不使用vi,查看test文件。

cat test 或者 more test

(7)假设test用户主目录下有bin目录,bin目录下有可执行程序dance,请设定环境变量,使得test用户在主目录下也能直接调用dance程序。

PATH=$PATH:$HOME/bin

export PATH

(8)列出test用户主目录以及所有子目录下文件名中含有maps字符串的文件。

find . –name *maps* -print

(9)对test用户主目录下的mp3目录进行打包、压缩。

tar cvf name.tar mp3;compress ma3  或者 tar zcvf name.tar.gz mp3

(10)查询dance程序的进程号(假定为后台运行)。

ps –ef |grep dance

(11)列出test用户所有后台运行的进程。

jobs

(12)中止后台进程号为1的进程运行。

kill -9 %1

(13)列出当前系统上的所有登陆用户。

finger或者who

(14)列出最近100条登录系统的记录。

last –n 100

(15)删除test文件。

rm test

10.把test用户设为超级用户,并且进行设置,使得test用户登录后直接执行/export1/home/test/test.sh程序,退出test.sh后就退出登录状态。(10分)

方法一:更改/etc/passwd文件

方法二:更改用户主目录下的 .profile 文件,增加sh 控制

11.简单描述标准输入、标准输出、标准错误。(6分)

标准输入是程序可以读取其输入的位置。缺省情况下,进程从键盘读取 stdin。

标准输出是程序写入其输出的位置。缺省情况下,进程将 stdout 写到终端屏幕上。

标准错误是程序写入其错误消息的位置。缺省情况下,进程将 stderr 写到终端屏幕上。

12.列出当前系统下各个分区及其空间大小状况;列出/export1/home/test/mp3整个目录总占用了多少空间。(5分)

df –h/-k/-v

du –sk /export1/home/test/mp3

第二部分 数据库

 本部分试题答案略,第1题10分,后面每题5分,总分70分。

1.建一个员工信息表employee,表中id(员工代码)、sex(员工性别)、name(

姓名)、departmentid(部门代码)、address(住址)、birthdate(生日)、postcode(邮编)、salary(薪水)、workdate(入职日期)、remark(备注信息)。其中postcode、remark可以为空,薪水需为number类型,生日、入职日期为date型。以员工代码作为主键。

Create table employee(

PRIMARY KEY(ID)

);

2.插入两条记录,id分别为0023、1023,其余信息自己编造。

INSERT INTO employee VALUES(‘0023’,’0’,’Harris’,’A0000001’,’guangzhou’,’1980-01-01’,’510018’,’5000.00’,’2008-01-01’,’’);

INSERT INTO employee VALUES(‘1023’,’0’,’Harris’,’A0000002’,’guangzhou’,’1980-10-01’,’510018’,’5000.00’,’2008-01-01’,’’);

3.查询员工总数、薪水总额。

SELECT COUNT(*),COUNT(salary) FROM employee

4.查询出各部门的最小年龄、最大年龄。

SELECT MAX(birthdate) AS MIN_AGE,MIN(birthdate) AS MAX_AGE FROM employee GROUP BY departmentid

5.统计每个部门的男女人数,按照部门代码排序。

SELECT count(sex) FROM employee GROUP BY sex

6.创建入职日期(workdate)索引employee_idx。

CREATE INDEX employee_idx ON employee(worddate) 

7.修改id为0023的员工的入职日期为2007-12-31。

UPDATE employee SET workdate = ‘2007-12-31’ where id = ‘0023’

8.删除id为1023的员工信息。

 ‘1023’

9.使前面所做的修改、删除生效(假定数据库设置不是自动生效)。

Commit

10.假定有一表结构和employee完全一样的表employee_bak,把employee表的数据完全导入employee_bak表。

INSERT INTO  employee_ bak 

SELECT * 

FROM employee

11.假设还有一表duty,其记录为员工的级别level,也是以员工id为主键。根据表employee、duty查询出级别在10级以上的所有员工详细信息。

SELECT * FROM employee a, duty b 

WHERE a.id = b.id and b.level > 10

12.不区分部门查询出入职日期最早的10位员工信息。

DB2 数据库表示

SELECT * FROM employee 

ORDER BY workdate ASC 

FETCH FIRST 10 ROWS ONLY

SQL SERVER表示

SELECT top 10 * FROM employee ORDER BY workdate ASC

13.删除索引employee_idx。

DROP INDEX employee_idx

第三部分 Java

本部分试题和第四部分的C/C++任选一部分作答。

一、选择题(30分)

1.( C )关于运算符>>和>>>描述正确的是

A.>>执行移动 执行翻转

C. >>执行有符号左移,>>>执行无符号左移 D.>>执行无符号左移,>>>执行有符号左移

2.( CD )选出Java语言中的关键词

A.NULL  B.sizeof  C.implements  D.extends

3.(BCD )现有下述代码,选择出能够打印出”Test2”的数字

 switch(x){

case 1:

System.out.println("Test1");

case 2:

case 3:

System.out.println("Test2");

break;

}

System.out.println("Test3");

}

A.0  B.1   C.2   D.3   E.4

4.( B  )字符(char)的整型表示范围为

A.0—32767 —6—2—32767

5.(A D E )选择Java语言中的基本数据类型(多选)

A.byte   B.Integer   C.String   D.char   E.long

6.( C D )从下列选项中选择正确的Java表达式(多选)

A.int k=new String(“aa”)

B.String str=String(“bb”)

C.char c=74; 

D.long j=8888;

7.( A D )Java网络程序设计中,下列正确的描述是(多选)

A.  Java网络编程API建立在Socket基础之上

B.  Java网络接口只支持TCP以及其上层协议

C.  Java网络接口只支持UDP以及其上层协议

D.  Java网络接口支持IP以上的所有高层协议

8.( A C )关于线程设计,下列描述正确的是(多选)

 线程对象必须实现Runnable接口

 启动一个线程直接调用线程对象的run()方法

 提供对多线程同步提供语言级的支持 

9.(  A  )Java I/O程序设计中,下列描述正确的是

 用于写操作

 用于写操作

 库不支持对文件可读可写API

10.( A B )下列描述中,那些符合Java语言的特征(多选)

 支持跨平台(Windows,Linux,Unix等)

 自动垃圾回收),提高了代码安全性

 支持类C的指针运算操作

 不支持与其它语言书写的程序进行通讯

11.(  B )下述代码的执行结果为

 public class foo {

static String s;

public static void main (String[]args) {

 system.out.printIn (“s=” + s);

 }

}

A.代码能够编译,打印出“s=”

B.代码能够编译,打印出“s=null”

C.代码不能够编译,因为String s 没有初始化

D.代码能够编译,但是当调用toString()时抛出NullPointerException 异常

12.( B  )下述代码的执行结果是

class Super {

public int getLength() {return 4;}

public class Sub extends Super {

public long getLength() {return 5;}

 public static void main (String[]args) {

 Super sooper = new Super ();

 Super  sub = new Sub();

 System.out.printIn(sooper.getLength()+ “,” + sub.getLength() };

 }

 }

A. 4, 4 B. 4, 5 C. 5, 4 D. 5, 5 E. 代码不能被编译

13.(  B )下述程序的执行结果为

int index = 1;

String [] test = new String[3];

String foo = test[index]; 

A.  foo 的值为 “”

B.  foo 的值为 null

C.  抛出一个异常

D.  程序不能够被编译

14.( A B D )关于Java语言,下列描述正确的是(多选)

A.  switch 不能够作用在String类型上

B.  List, Set, Map都继承自Collection接口

C.  Java语言支持goto语句

D.  GC是垃圾收集器,程序员不用担心内存管理

15.( A B C )关于异常(Exception),下列描述正确的是(多选)

A.  异常的基类为Exception,所有异常都必须直接或者间接继承它

B.  异常可以用try{ . . .}catch(Exception e){ . . .}来捕获并进行处理

C.  如果某异常继承RuntimeException,则该异常可以不被声明

D.  异常可以随便处理,而不是抛给外层的程序进行处理

二、是非题(判断写法是否正确,如果错误,请指名具体错误)(15分)

1.aa.java:

public abstract class aa {}

bb.java:

     public class bb{

     public static void main(String[] args) {

        aa obj= new aa();

        System.out.println(“hello”);

     }

}

aa类是abstract类故不可以实例化。

2.public class Something {

    public int addOne(final int x) {

        return ++x;

    }

 }

int x被修饰成final,意味着x不能在addOne method中被修改。

3.aa.java:

    public final class aa {}

bb.java

    public class bb extends aa {

aa类是final类故不可以继承。

三、问答题(15分)

1.简述int和integer的区别。

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。

2.数组的length和String的length有什么区别?

数组的length是属性,String的length是方法。

3.写出以下程序的输出。

public class test {

    public static void main(String[] args) {

        System.out.println(test.doSomething());

    }

    public static String doSomething()

    {

        try {

            System.out.println("aa");

            return "dd" ;

        } catch (Exception e) {

            System.out.println("bb");

        }

        finally

        {

            System.out.println("cc");

        }

        return "ff" ;

    }

}

aa

cc

dd

四、编程题(请在背面作答或者另附纸作答)

1.写一个线程,每隔10秒钟标准输出到屏幕上一个”hello world” , 打印10次以后退出。(10分)

public class ThreadTest implements Runnable {

 

 

 

 

  

 

  

 

 

 

  

  

   

  

   

  

 

}

2.写一个接口,包含  public String doTest(Object obj)  这个方法,然后再写一个类并实现这个接口。(10分)

public interface MyInterface {

}

public class Myimpl implements MyInterface {

 

  

 

  

 

}

五、附加题(请在背面作答或者另附纸作答)

1.写一个Singleton出来,保证这个类只有一个实例。(10分)

public class SingletonTest {

 

  

   

    

   

  

 

 

 

}

2.1~100共一百个自然数,放入一个99个元素的数组a[99],要求写出一个尽量简单的方案,找出没有被放入数组的这个数。(10分)

 

 

  

   

  

  

 

 

  

   

  

 

 

第四部分 C/C++

本部分试题和第三部分任选一部分作答。

一、填写BOOL , float, 指针变量 与“零值”比较的 if 语句。

“零值”可以是0, 0.0 , FALSE 或者“空指针”。例如 int 变量 n 与“零值”

比较的 if 语句为:if ( n == 0 ) 或者 if ( n != 0 )

以此类推。

请写出 BOOL flag 与“零值”比较的 if 语句:

if(flag == FALSE) 

if(flag != FALSE) 

请写出 float x 与“零值”比较的 if 语句:

if(x==0.00)

if(x!=0.00)

最准确,任何编译器都没歧义的表达

if(x==(float)0.00)

if(x!=(float)0.00)

请写出 char *p 与“零值”比较的 if 语句:

ANSI C编译器

if(p == NULL)

if(p != NULL)

C 编译器

if(p==(void *)0)

if(p!=(void *)0)

二、以下为32 位C程序,请计算sizeof 的值。

char str[] = “Hello” ;

char *p = str ;

int n = 10;

请计算

sizeof (str ) = 6

sizeof ( p ) = 4

sizeof ( n ) = 4

void Func ( char str[100])

{

请计算

sizeof( str ) = 4

}

void *p = malloc( 100 );

请计算

sizeof ( p ) = 4

三、简答题

1、头文件中的 ifndef/define/endif 干什么用?

预编译时防止头文件被重复包含,而产生“重复定义”等预编译错误

2、#include 和 #include “filename.h” 有什么区别?

#include  在全部包含路径中搜索。

#include “filename.h” 在 C 文件当前目录搜索。

注:GNU C 两者没有太大区别。都是从全部包含路径中搜索。

3、const 有什么用途?(请至少说明两种)

1. 修饰变量,防止变量被修改

2. 修饰函数指针参数,防止指针被修改

3. C++修饰函数本身,函数不能修改类成员。

4、在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?

C++对函数名、变量名会加入protocol编码(即:根据参数类型、参数个数加一些修饰,如 void MyFunc(int a) 成为 __GCRT_MyFuncqqvya@4) 加上了 extern “C” 声明,表示让编译器去掉C++ protocol编码功能。这样才能正确调用C写的API。

5、请简述以下两个for 循环的优缺点:

// 第一个                            // 第二个              

for (i=0; i{                                   {                      

if (condition) for (i=0; i        DoSomething();                      DoSomething();         

    else                            }                      

        DoOtherthing();             else                   

}                                   {                      

                                     for (i=0; i                                            DoOtherthing();    

                                    }  

                                    

优点:                              优点:                    

在循环中condition发生变化,会调用    逻辑严谨,没有实时运行的歧义

不同的方法。冗余代码少。

缺点:                              缺点:                 

For中加if效率低,condition会产生    冗余代码多。

歧义效果

四、思考题

1.void GetMemory(char *p)   

{                                       {                                   

    

}  

{                                       void Test(void)                     

   

   

    

   

}                                       }                               

请问运行Test 函数会有什么样的结果? 请问运行Test 函数会有什么样的结果? 

答: 答:

1段错误(Segmentation fault)                任意值,取的是临时栈地址

2内存溢出

{  

   

}  

v  

   

 2(  

    

   

请问运行Test 函数会有什么样的结果? 请问运行Test 函数会有什么样的结果?

答: 答:

1. 正常输出 hello                            1.在单进程测试程序中 输出 world

2. 内存泄漏                                2.在多线程中输出任意值

五.编程题(请在背面作答或者另附纸作答,后2题为可选)

1.对n个数进行排序,要求输出排序前后的结果。

2.编写strcpy 函数。

已知strcpy 函数的原型是

char *strcpy(char *strDest, const char *strSrc);

其中strDest 是目的字符串,strSrc 是源字符串。

(1)不调用C++/C 的字符串库函数,请编写函数 strcpy

char *strcpy(char *strDest, const char *strSrc)

{

while ( *strDest++ = *strSrc++);

}

(2)strcpy 能把strSrc 的内容复制到strDest,为什么还要char * 类型的返回值?

用作函数嵌套调用 如 trim(strcpy(dest,src));

3.1~100共一百个自然数,放入一个99个元素的数组a[99],要求写出一个尽量简单的方案,找出没有被放入数组的这个数。

int s ;

int r ;

s = 0 ;

r = 0 ;

for (int i = 0 ; i < 99 ; i++)

{

    s = s + a[i];

}

r = 5050 - s; 

文档

笔试答案及评分标准

第一部分Unix/Linux1.(BC)在vi中,那些命令可以保存退出vi(2分)A、q!B、wqC、xD、q2.(A)下面的那写命令可以用来修改文件的权限(2分)A、chmodB、chownC、chgrpD、chkey3.(ACDE)以下那些函数是共享内存的相关函数(2分)A.shmgetB.shmopC.shmdtD.shmatE.shmctl4.(BCE)关于vi的编辑命令,下列说法是正确的(2分)A.i和I可以在光标处插入资料,区别在于插入资料位置分别在光标前和光标后B.a在光标后加入
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top