Oracle试题(含答案)

更新时间:2024-06-20 06:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

_C++_CSD/ESD1405

1. 把工资大于1000的first_name,salary 显示出来,按工资排序,工资相同按first_name降序的SQL语句是?

A.

select first_name,salary from s_emp order by salary,first_name

B.

select first_name,salary from s_emp order by salary,first_name asc

C.

select first_name,salary from s_emp order by salary desc,first_name

D. select first_name,salary from s_emp order by salary,first_name desc 正确答案:D

2. 已知数据库中有员工表s_emp和部门表s_dept,具体字段如下: 员工表字段介绍:

ID 员工编号 LAST_NAME 员工姓 FIRST_NAME 员工名 USERID 用户编号 START_DATE 入职日期 COMMENTS 员工备注信息 MANAGER_ID 员工的领导ID TITLE 员工的职位 DEPT_ID 部门的编号 SALARY 员工的月薪 COMMISSION_PCT 提成 部门表的字段介绍:

ID 部门编号 NAME 部门名 REGION_ID 地区编号

注:以下所有数据库相关题目,均使用这两个表

把s_emp表中的每个人的全名和工资列出来的SQL语句是?

A.

select first_name|last_name ,salary from s_emp

B.

select first_name||last_name ,salary from s_emp

C.

select first_name|last_name ,salary from emp

D. select first_name||last_name ,salary from emp 正确答案:B

3. 如果想在代码中禁止使用goto,可以采用的是?

A. #pragma GCC dependency goto B. #pragma GCC poison goto C. #pragma pack(2) D. #pragma GCC goto 正确答案:B

4.

阅读如下代码: void* p = sbrk(0); int r = brk(p+4); brk(p+8); brk(p+4);

请问目前占用的内存空间字节是?

A. 16 B. 8 C. 4 D. 0 正确答案:C

5. 查找和Smith一个title的所有员工的名字的SQL语句是?

A. SELECT last_name from s_emp where title=(select title from s_emp where last_name=’Smith’)

B. SELECT last_name from s_emp where title=(select title from s_emp where last_name=”Smith”)

C. SELECT last_name from s_emp where title=(select last_name,title from s_emp where last_name=’Smith’)

D. SELECT last_name from s_emp where title=(select title from s_emp last_name=’Smith’) 正确答案:A

6. 下列函数中不能处理错误的是?

A. exit B. printf C. perror D. strerror 正确答案:A

7. 关于信号,以下说法错误的是?

A. 信号分为可靠信号和不可靠信号 B. 信号的默认处理 ,80%的情况是退出进程 C. 所有信号都可以忽略

D. 当前用户只能给自己的进程发信号,不能给别的用户的进程发信号 正确答案:C

8. 下列关于进程描述符说法错误的是?

A. getpid 获取进程ID。 B. getppid 获取父进程ID。 C. getuid 获取有效用户ID。

D. getgid 获取实际组ID。 正确答案:C

9. 下面不能在oracle中使用的数据类型是?

A. Number B. Varchar2 C. Int D. Date 正确答案:C

10.

阅读如下代码: int i1 = 20;

static int i2 = 40; void fa(){

static int i3 = 80;

const int i4 = 90; }

哪个变量不在全局区?

A. i1

B. i2 C. i3 D. i4 正确答案:D

11. 对一个算法的评价,不包括下列( )方面的内容。

A. 健壮性和可读性 B. 并行性 C. 正确性

D. 时空复杂度 正确答案:B

12.

下列内存区域中,一般不用来存放变量的是:

A.

栈区

B.

代码区

C.

BSS段

D.

堆区

正确答案:B

13. 关于错误处理的说法以下错误的是?

A. strerror函数可以获得一个errno的具体描述 B. printf可以打印错误信息

C. 在多线程编程时,很多函数返回的error

D. 在unix/Linux中,所有的错误处理都可以使用perror函数 正确答案:D

14. 下列关于文件描述符错误的是?

A. 值为一个非负数 B. 用于表示一个打开文件

C. 在内核空间被引用,并且由系统调用(open)所创建 D. read,write使用文件描述符 正确答案:A

15.

假设进行了如下的内存分配:

void* p = malloc(10);

那么,以下使用此内存区域的代码片段正确的是:

A.

int* pi = (int*) p; pi[0] = 100; pi[1] = 200; pi[2] = 300;

B.

double* pd = (double*)p; pd[0] = 3.14; pd[1] = 2.13;

C. strcpy(p, “abcdefghijklmn”); D. strcpy((char*)p, “abcdef”) ; 正确答案:D

16. 下列关于进程间通信不正确的是?

A. 共享内存是进程间通信最快的方式。

B. 在使用msgsnd发送消息时,如果消息队列满,则发送阻塞。 C. 无名管道的适用范围是父子进程。

D. 若此信号量的值为正,则进程可以使用资源。进程将信号量加1表示使用了资源。 正确答案:D

17. ( )不是队列的基本运算。

A. 在队列第i个元素之后插入一个元素 B. 从队头删除一个元素 C. 判断一个队列是否为空 D. 读取队头元素的值 正确答案:A

18. 显示s_emp表的first_name和first_name的后三个字母的SQL语句是?

A.

select first_name,substr(first_name,3,3) from s_emp

B.

select first_name,substring(first_name,3,3) from s_emp

C.

select first_name,substring(first_name,-3,3) from s_emp

D. select first_name,substr(first_name,-3,3) from s_emp 正确答案:D

19.

int fd = open(\ 请问是采用何种方式打开的a.txt?

A. 创建新文件,并且权限是666

B. 采用可读可写方式,如文件存在截断后打开,不存在新建权限为666的新文件 C. 可写方式,文件权限改为666

D. 只读方式,如文件存在截断后打开,不存在新建权限为666的新文件 正确答案:B

20. 以下不属于Linux阵营的Unix操作系统是?

A. Ubuntu B. Android C. AIX D. redhet 正确答案:C

21. 分配5个int的内存空间,并且全部清0的正确代码是?

A.

int* p = malloc(4); memset(p,0,4);

B.

int* p = malloc(4); memset(p,0,20);

C.

int* p = malloc(20); memset(p,0,20);

D.

int* p = malloc(20); memset(p,0,4); 正确答案:C

22.

查看如下代码:

time_t tt = time(0);

struct tm *time = localtime(&tt); printf(\(空白处) );

上述代码是显示当前日期的,在空白处需要填入一行代码是?

A. time.tm_year+1900,time.tm_mon+1,time.tm_mday B. time.tm_year,time.tm_mon,time.tm_mday C. time->tm_year,time->tm_mon,time->tm_mday D. time->tm_year+1900,time->tm_mon+1,time->tm_mday 正确答案:D

23. 关于排序,下列说法错误的是?

A. 排序的关键字是order by B. 升序是默认排序顺序 C. 降序的关键字是desc

D. 不能使用多字段排序 正确答案:D

24.

阅读如下代码:

DIR* dir = opendir(\);

if(dir==NULL)perror(\打开目录失败\),exit(-1); struct dirent* ent = readdir(dir); while(ent){

printf(\ %s\\n\, ent->d_type, ent->d_name); ent = readdir(dir); }

该代码实现的功能是?

A.

读取根目录的内容

B.

读取/root目录下所有内容

C.

读取根目录的所有子目录,不包含文件

D.

读取/root目录的所有子目录,不包含文件

正确答案:B

25. 处理共享库文件错误的函数是?

A. dlerror B. dlsym C. dlopen D. perror 正确答案:A

26. 如果想在代码中禁止使用const,可以采用的是?

A. #pragma GCC dependency const B. #pragma GCC poison const C. #pragma pack(2) D. #pragma GCC goto 正确答案:B

27.

int *i1 = malloc(20); char *s1 = malloc(20);

printf(\ 请问打印结果应该是:

A. 20,20 B. 1,1 C. 1,4 D. 4,4 正确答案:C

28.

关于动态库和静态库,下列说法错误的是?

A. 打包静态库用的是ar命令。 B. 打包共享库用的是gcc -share

C. 静态库和共享库都必须配置环境变量才能使用 D. .a文件是静态库, 而.so文件是共享库 正确答案:C

29. 阅读如下代码: int fd = open(\if(fd==-1)perror(\

struct flock rlock;

rlock.l_type = F_RDLCK; rlock.l_whence = SEEK_SET; rlock.l_start = 10; rlock.l_len = 20; rlock.l_pid = -1;

int res = fcntl(fd, F_SETLK, &rlock);

if(res==-1)perror(\printf(\lseek(fd, 10, SEEK_SET);

printf(\sleep(30);

printf(\//释放锁 (空白处)

if(res==-1)perror(\else printf(\sleep(30);

printf(\

printf(\进程ID:%d\\n\close(fd);

空白处的解锁代码是?

A. rlock.l_type = F_UNLCK; res = fcntl(fd, F_SETLK, &rlock);

B. res = fcntl(fd, F_SETUNLK, &rlock); C. rlock.l_type = F_UNLCK; D. rlock.l_type = F_UNLCK; res = fcntl(fd, F_SETUNLK, &rlock); 正确答案:A

30. 单向链表,在指针p所指向的结点后面插入指针q所指向的结点,则应执行().

A. p=q; p->next=q; B. p->next=q; q->next=p; C. p->next=q->next; p=q; D. q->next=p->next; p->next=q;

正确答案:D

31.

阅读如下代码:

void fa(int signo){

printf(\你发信号%d, 想杀我?没可能\\n\ (空白处)//恢复指定信号的默认行为 }

int main() {

signal(SIGINT, fa);//注册一个信号处理函数 if(signal(SIGQUIT, fa)==SIG_ERR){ perror(\注册信号出错\ return -1; }

while(1); }

空白处应该填上的代码是?

A. signal(2, SIG_IGN); B. signal(2, SIG_DFL); C. signal(3, SIG_IGN); D. signal(3, SIG_DFL); 正确答案:B

32. 下面分组语句正确的是?

A. Select name,dept_id from s_dept d,s_emp e where dept_id=id group by dept_id; B. Select e.name,dept_id from s_dept d,s_emp e where dept_id=d.id group by dept_id; C. Select e.name,dept_id from s_dept d,s_emp e where dept_id=d.id group by dept_id; D. Select max(name),dept_id from s_dept d,s_emp e where dept_id=d.id group by dept_id; 正确答案:D

33.

以下代码是单向线性链表类的实现:

class List { public:

List (void) : m_head (NULL), m_tail (NULL) {} ~List (void) {…}

void append (int data) {

Node* node = new Node (data); if (m_tail)

m_tail -> m_next = node; else

m_head = node; m_tail = node; }

void reverse (void) { (空白处) }

private:

class Node { public:

Node (int data = 0, Node* next = NULL) : m_data (data), m_next (next) {} int m_data; Node* m_next; };

Node* m_head; Node* m_tail; };

其中reverse()成员函数,用于将整个链表逆转。空白处可以填入的代码是?

A. Node* node = m_head; m_head = m_tail; m_tail = node;

B.

if (m_head != m_tail) {

Node* p1 = m_tail = m_head, *p2 = p1 -> m_next, *p3 = p2 -> m_next; for (p1 -> m_next = NULL; p3; p3 = p3 -> m_next) { p2 -> m_next = p1; p1 = p2; p2 = p3; }

(m_head = p2) -> m_next = p1; }

C.

if (m_head != m_tail) {

Node* p1 = m_head, *p2 = p1 -> m_next, *p3 = p2 -> m_next; for (p1 -> m_next = NULL; p3; p3 = p3 -> m_next) { p2 -> m_next = p1; p1 = p2; p2 = p3; }

p2 -> m_next = p1; }

D.

if (m_head != m_tail) {

Node* p1 = m_tail = m_head, *p2 = p1 -> m_next, *p3 = p2 -> m_next; for (p1 -> m_next = NULL; p3; p3 = p3 -> m_next) { p2 -> m_next = p1; p1 = p2; p2 = p3; }

(m_head = p3) -> m_next = p2; }

正确答案:C

34. 统计一下那些部门的人数超过一个人的SQL语句是?

A. select dept_id,count(dept_id) from s_emp group by dept_id where count(dept_id)>1 B. select dept_id,count(dept_id) from s_emp group by dept_id where dept_id >1 C. select dept_id,count(dept_id) from s_emp group by dept_id having dept_id>1 D. select dept_id,count(dept_id) from s_emp group by dept_id having count(dept_id)>1 正确答案:D

35.

以下代码意在借助于栈的数据结构,实现一个将任意十进制整数以任意进制的格式打印输出的函数printb():

class Stack { public:

Stack (void) : m_top (0) {}

bool push (char ch) {

if (m_top >= sizeof (m_chs) / sizeof (m_chs[0])) return false;

m_chs[m_top++] = ch; return true; }

bool pop (char& ch) { if (m_top <= 0) return false;

ch = m_chs[--m_top]; return true; }

private:

char m_chs[128]; size_t m_top; };

void printb (unsigned int dec, int base) { Stack stack; do {

(空白处)

} while (dec /= base);

for (char ch; stack.pop (ch); cout << ch); cout << endl; }

其中空白处可以填入的代码是?

A. stack.push (dec % base); B. stack.push (dec % base + '0'); C. stack.push (dec % base – 10 + 'A');

D. int mod = dec % base; stack.push (mod < 10 ? mod + '0' : mod - 10 + 'A'); 正确答案:D

36.

阅读如下代码,并完成下面5题。 #include #include #include #include #include #include

本文来源:https://www.bwwdw.com/article/ed13.html

Top