达内3g培训

更新时间:2023-01-04 09:31:00 阅读: 评论:0


2023年1月4日发(作者:英美概况)

考试场次:2013_09月考_9月2日_C++试卷名称:2013年09月

_C++_CSD/ESD1306(new)

1.统计每个部门的人数并要求显示部门名称的SQL语句是?

dept_id,count(dept_id),oms_emp,s_deptdwhere

dept_id=pbydept_id

dept_id,count(dept_id),sum()froms_emp,s_deptd

wheredept_id=pbydept_id

dept_id,count(dept_id),max()froms_emp,s_deptd

wheredept_id=pbydept_id

dept_id,count(dept_id),count()froms_emp,s_deptd

wheredept_id=pbydept_id

正确答案:C

2.打开共享库文件函数的是?

r

e

正确答案:C

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

name,dept_idfroms_deptd,s_empewheredept_id=idgroup

bydept_id;

,dept_idfroms_deptd,s_empe

wheredept_id=pbydept_id;

,dept_idfroms_deptd,s_empe

wheredept_id=pbydept_id;

max(name),dept_idfroms_deptd,s_empewhere

dept_id=pbydept_id;

正确答案:D

4.在建表时,经常需要用到约束,请问下面哪个不是常见约束?

A.主键

B.非空

C.回滚

D.外键

正确答案:C

5.阅读如下代码:

intfd=open("",O_WRONLY|O_CREAT|O_TRUNC,0666);

intflags=fcntl(fd,F_GETFL);

printf("flags=%dn",flags);

switch((空白处)){

caO_RDONLY:printf("RDONLYn");break;

caO_WRONLY:printf("WRONLYn");break;

caO_RDWR:printf("RDWRn");break;

}

空白处的条件应该是?

&5

&3

&4

正确答案:C

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

A.排序的关键字是orderby

B.升序是默认排序顺序

C.降序的关键字是desc

D.不能使用多字段排序

正确答案:D

7.下列建表的SQL语句错误的是?

tabletest123(

Idnumber,

Dnamevarchar2(30)

)

tabletest123(

Idnumber,

Dnamevarchar2(30),

MyDatedate

)

tabletest123(

Idnumber,

Dnamechar(30)

)

tabletest123(

Idnumber,namevarchar2(30),

)

正确答案:B

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

A.#pragmaGCCdependencygoto

B.#pragmaGCCpoisongoto

C.#pragmapack(2)

D.#pragmaGCCgoto

正确答案:B

9.显示所有的工资级别和级别对应的salary和first_name的SQL语句是?

grade,first_name,salaryfroms_emp,salgradewhere

salary(+)betweenlosalandhisal

grade,first_name,salaryfroms_emp,salgradewheresalary

betweenlosalandhisal(+)

grade,first_name,salaryfroms_emp,salgradewheresalary

between(+)losalandhisal

grade,first_name,salaryfroms_emp,salgradewhere

salary(+)betweenlosalandhisal(+)

正确答案:A

10.

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

A.

栈区

B.

代码区

C.

BSS段

D.

堆区

正确答案:B

11.

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

A.打包静态库用的是ar命令。

B.打包共享库用的是gcc-share

C.静态库和共享库都必须配置环境变量才能使用

D..a文件是静态库,而.so文件是共享库

正确答案:C

12.把工资大于1000的first_name,salary显示出来,按工资排序,工资相同

按first_name降序的SQL语句是?

A.

lectfirst_name,salaryfroms_emporderbysalary,first_name

B.

lectfirst_name,salaryfroms_emporderbysalary,first_nameasc

C.

lectfirst_name,salaryfroms_emporderbysalary

desc,first_name

first_name,salaryfroms_emporderby

salary,first_namedesc

正确答案:D

中定义变量,哪个是正确的?

_iint;

Var_i;

_inumber;

_inumbernotnull;

正确答案:C

14.阅读如下代码:

intsockfd=socket(PF_INET,SOCK_DGRAM,0);

if(sockfd==-1)perror("socket创建失败"),exit(-1);

//2.准备地址

(空白处)

//3.绑定

intres=bind(sockfd,

(structsockaddr*)&addr,sizeof(addr));

if(res==-1)perror("绑定失败"),exit(-1);

printf("绑写成功n");

//4.通信

charbuf[100]={};

intlen=read(sockfd,buf,sizeof(buf));

if(len<=0)perror("读取失败"),exit(-1);

printf("读到%d字节的数据,内容是:%sn",len,buf);

//5.关闭

clo(sockfd);

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

sockaddr_unaddr;

_family=PF_INET;

_port=htons(8888);

_addr.s_addr=inet_addr("192.168.182.225");

sockaddr_unaddr;

_family=PF_INET;

_port=htons(8888);

_addr.s_addr="192.168.182.225";

sockaddr_inaddr;

_family=PF_INET;

_port=htons(8888);

_addr.s_addr=inet_addr("192.168.182.225");

sockaddr_inaddr;

_family=PF_INET;

_port=htons(8888);

_addr.s_addr="192.168.182.225";

正确答案:C

15.给名字是Smith的员工增加100元的工资的SQL语句是?

s_emptsalary=salary+100wherelast_name=’Smith’

s_emptsalary=salary+100

s_empsalary=salary+100wherelast_name=’Smith’

s_emptsalary=100wherelast_name=’Smith’

正确答案:A

中定义了一个数字变量var_sum对var_sum的操作不正确的是?

_sum:=100;

salaryintovar_sumfroms_empwhereid=1;

_sum:=var_sum+100;

_sum=1000;

正确答案:D

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

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

B.在使用msgsnd发送消息时,如果消息队列满,则发送阻塞。

C.无名管道的适用范围是父子进程。

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

用了资源。

正确答案:D

18.

阅读如下代码:

void*p=sbrk(0);

intr=brk(p+4);

brk(p+8);

brk(p+4);

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

A.16

B.8

C.4

D.0

正确答案:C

19.把s_emp月薪超过1000的员工列出来的SQL语句是?

A.

lectlast_name,salaryfroms_empwheresalary>1000

B.

lectname,salaryfroms_empwheresalary>1000

C.

lectname,salaryfroms_empwheresalary<1000

last_name,salaryfroms_empwheresalary<1000

正确答案:A

20.下列不是内存区域的是?

A.代码区

B.堆区

C.连接区

正确答案:C

21.需要向包含date类型字段mydate的表test中插入date类型,但目前需

要插入的值为’2008-12-11’,请问哪个SQL语句是最合适的?

intotest(mydate)values(to_date(‘2008-12-

11’,‘YYYY-MM-DD’))

intotest(mydate)values(to_char(‘2008-12-

11’,‘YYYY-MM-DD’))

intotest(mydate)values(to_date(‘2008-11-

12’,‘YYYY-MM-DD’))

intotest(mydate)values(sysdate)

正确答案:A

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

d

正确答案:C

23.统计每个部门的人数的SQL语句是?

dept_id,max(dept_id)froms_empgroupbydept_id

dept_id,avg(dept_id)froms_empgroupbydept_id

dept_id,count(dept_id)froms_empgroupbydept_id

dept_id,sum(dept_id)froms_empgroupbydept_id

正确答案:C

24.

阅读如下代码:

structmbufop;

_num=0;//对下标为0的信号量操作

(空白处1)

_flg=0;//无法完成时阻塞,可以是IPC_NOWAIT

mop(mid,&op,1);

printf("访问共享资源n");

sleep(30);

printf("完成共享资源的访问n");

(空白处2)

mop(mid,&op,1);

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

A.不需要填写代码

_op=1;和_op=1;

_op=1;和_op=-1;

_op=-1;和_op=1;

正确答案:D

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

A.信号分为可靠信号和不可靠信号

B.信号的默认处理,80%的情况是退出进程

C.所有信号都可以忽略

D.当前用户只能给自己的进程发信号,不能给别的用户的进程发信号

正确答案:C

26.已知表salgrade字段如下:

Hisal-最高薪水

Losal-最低薪水

grade-薪水等级

查询每个员工的first_name和salary以及对应的薪水等级的SQL语句是?

first_name,salary,gradefroms_emp,salgradewheresalary

betweenhisalandlosal

first_name,salary,gradefroms_emp,salgradewheresalary

betweenlosalandhisal

first_name,salary,gradefroms_empwheresalarybetween

losalandhisal

first_name,salary,gradefroms_emp,salgradewheresalary>

losaland

正确答案:B

27.把s_emp中的月薪在900和1500之间的人列出来的SQL语句是?

A.

lectfirst_name,salaryfroms_empwhere1500

B.

lectfirst_name,salaryfroms_empwheresalaryin(900,1500)

C.

lectfirst_name,salaryfroms_empwhere

salarybetween900and1500

first_name,salaryfromempwhere

salarybetween900and1500

正确答案:C

28.

intfd=open("",O_RDWR|O_CREAT|O_TRUNC,0666);

请问是采用何种方式打开的?

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

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

新文件

C.可写方式,文件权限改为666

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

正确答案:B

29.

阅读如下代码:

key_tkey=ftok(".",200);

if(key==-1)perror("key生成失败"),exit(-1);

intshmid=(空白处);

if(shmid==-1)

perror("创建共享存储段失败"),exit(-1);

printf("创建共享存储段成功n");

void*p=shmat(shmid,0,0);

if(p==(void*)-1)

perror("挂接内存段失败"),exit(-1);

printf("已挂接到共享存储段n");

int*pi=p;

*pi=12345678;

if(shmdt(p)==-1)perror("脱接失败"),exit(-1);

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

(key,4,0666|IPC_CREAT|IPC_EXCL)

(key,3,0666|IPC_CREAT|IPC_EXCL)

(shmid,IPC_SET,4)

(shmid,IPC_SET,0666|IPC_CREAT|IPC_EXCL)

正确答案:A

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

last_namefroms_empwheretitle=(lecttitlefroms_emp

wherelast_name=’Smith’)

last_namefroms_empwheretitle=(lecttitlefroms_emp

wherelast_name=”Smith”)

last_namefroms_empwheretitle=(lectlast_name,title

froms_empwherelast_name=’Smith’)

last_namefroms_empwheretitle=(lecttitlefroms_emp

last_name=’Smith’)

正确答案:A

31.

阅读如下代码:

void*task(void*p){

int*pi=(int*)p;

printf("*pi=%dn",*pi);

*pi=200;

}

intmain()

{

pthread_tid1;

intx=100;

if(pthread_create(&id1,0,task,&x)){

printf("createthreaderror...n");

return-1;

}

printf("x=%dn",x);

return0;

}

打印出数字为?

A.*pi=100x=100

B.*pi=200x=100

C.*pi=200x=200

D.*pi=100x=200

正确答案:D

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

获取进程ID。

d获取父进程ID。

获取有效用户ID。

获取实际组ID。

正确答案:C

33.阅读如下代码:

pid_tpid=fork();

if(pid==0){//子进程

printf("子进程开始运行,即将进入睡眠n");

sleep(3);

printf("子进程运行结束n");

exit(100);//不能超过255

}

//父进程

printf("父进程运行,子进程的PID=%dn",pid);

printf("父进程等待子进程结束...n");

intresult;

pid_tres=wait(&result);

printf("等到结束的子进程是%dn",res);

printf("result=%dn",result);

if((空白处1)){

printf("子进程是正常结束的n");

//取返回值

printf("子进程返回值:%dn",

(空白处2));

}

空白处1和空白处2分别应该填入的代码是?

T(result)和WEXITSTATUS(result)

TATUS(result)和WIFEXIT(result)

TATUS(result)和WIFEXITED(result)

TED(result)和WEXITSTATUS(result)

正确答案:D

34.

下列哪段代码能正确的打开文件,要求如果文件存在就打开,并清除文件原有内容,不存在就创建,同时

具备读写权限?

A.

intfd=open("",O_RDONLY|O_CREAT|O_TRUNC,0666);

if(fd==-1){

perror("创建文件失败");

exit(-1);

}

B.

intfd=open("",O_RDWR|O_CREAT|O_EXCL,0666);

if(fd==-1){

perror("创建文件失败");

exit(-1);

}

C.

intfd=open("",O_RDWR|O_TRUNC,0666);

if(fd==-1){

perror("创建文件失败");

exit(-1);

}

D.

intfd=open("",O_RDWR|O_CREAT|O_TRUNC,0666);

if(fd==-1){

perror("创建文件失败");

exit(-1);

}

正确答案:D

35.阅读如下代码:

intfd[2]={};

pipe(fd);

intpid=fork();

if(pid==0){//子进程

(空白处1)

while(1){

intx;

if(read(fd[0],&x,sizeof(x))<=0)break;

printf("%d",x);

fflush(0);

}

clo(fd[0]);

exit(0);

}

(空白处2)

inti;

for(i=0;i<100;i++){

write(fd[1],&i,sizeof(int));

usleep(200000);

}

clo(fd[1]);

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

A.什么都不需要填

(fd[1]);和clo(fd[0]);

(fd[0]);和clo(fd[1]);

(fd[1]);和clo(fd[1]);

正确答案:B

36.阅读如下代码,完成下面5题:

#include"stdafx.h"

#include"windows.h"

#include"stdio.h"

voidVirtualInfo(){

CHAR*pszBuffer=(CHAR*)VirtualAlloc(NULL,1024*1024*1024,

MEM_RESERVE,PAGE_READWRITE);

VirtualFree(pszBuffer,0,MEM_DECOMMIT);

}

voidVirtual_Commit(){

CHAR*pszBuff=(CHAR*)VirtualAlloc(NULL,4096,MEM_COMMIT,

PAGE_READWRITE);

strcpy(pszBuff,"HelloVirtualCommit");

printf("%sn",pszBuff);

VirtualFree(pszBuff,0,MEM_RELEASE);

}

voidVirtual_Rerve(){

CHAR*pszBuff=(CHAR*)VirtualAlloc(NULL,4096,MEM_RESERVE,

PAGE_READWRITE);

VirtualAlloc(pszBuff,1024,MEM_COMMIT,PAGE_READWRITE);

strcpy(pszBuff,"HelloVirtualRelea");

printf("%sn",pszBuff);

VirtualFree(pszBuff,0,MEM_RELEASE);

}

intmain(intargc,char*argv[])

{

VirtualInfo();

Virtual_Commit();

Virtual_Rerve();

return0;

}

(1).关于这段代码完成的功能最准确的描述是?

A.这段代码是关于虚拟内存管理的

B.这段代码是关于堆内存管理的

C.这段代码是关于栈内存管理的

D.这段代码是关于内存映射文件的

正确答案:A

(2).

CHAR*pszBuffer=

(CHAR*)VirtualAlloc(NULL,1024*1024*1024,MEM_RESERVE,

PAGE_READWRITE)赋值函数如果改为VirtualAlloc(NULL,

1024*1024*1024,MEM_COMMIT,PAGE_READWRITE),有何区别:

A.没有区别

_RESERVE只要地址,不要物理内存,而MEM_COMMIT是都占用

_RESERVE是释放内存,而MEM_COMMIT是申请内存

_RESERVE只要物理内存,不占用地址,而MEM_COMMIT是都占用

正确答案:B

(3).VirtualFree(pszBuffer,0,MEM_DECOMMIT)函数如果改为

VirtualFree(pszBuffer,0,MEM_RELEASE),有何区别:

A.没有区别

_DECOMMIT是再次内存申请,MEM_RELEASE释放内存

_DECOMMIT只释放内存,不释放地址,MEM_RELEASE地址和内存都释放

_DECOMMIT只释放地址,不释放内存,MEM_RELEASE地址和内存都释放

正确答案:C

(4).函数Virtual_Commit对于内存的使用方式是:

A.内存地址和物理内存一起申请,并同时释放

B.内存地址和物理内存一起申请,但分别释放

C.内存地址和物理内存分别申请,但同时释放

D.内存地址和物理内存分别申请,分别释放

正确答案:A

(5).函数Virtual_Rerve对于内存的使用方式是:

A.内存地址和物理内存一起申请,并同时释放

B.内存地址和物理内存一起申请,但分别释放

C.内存地址和物理内存分别申请,但同时释放

D.内存地址和物理内存分别申请,分别释放

正确答案:C

37.

#include

#include

#include

#include

#include

#include

#include

#include

voidcopyFile(constchar*from,constchar*to){

//判断一下传进来的参数是不是空

(空白5);

intff=open(from,O_RDONLY);

if(-1==ff){perror("打开原文件失败n");return;}

intft=open(to,O_RDWR|O_CREAT,0666);

if(-1==ft){perror("打开目标文件失败n");return;}

(空白1);

clo(ff);

clo(ft);

}

voidbackup(constchar*from,constchar*to){

//判断一下传进来的参数是不是空

(空白5);

//打开要被复制的文件夹

DIR*q=opendir(from);

if(NULL==q){

perror("打开文件夹失败n");

return;

}

//创建一个文件夹

mkdir(to,0777);

structdirent*p=NULL;

structstats;

charpathFrom[256]={};

charpathTo[256]={};

strcat(strcpy(pathFrom,from),"/");

strcat(strcpy(pathTo,to),"/");

char*pf=pathFrom+strlen(pathFrom);

char*pt=pathTo+strlen(pathTo);

while(NULL!=(p=readdir(q))){

strcpy(pf,p->d_name);

strcpy(pt,p->d_name);

lstat(pathFrom,&s);

if(S_ISREG(_mode)){

//判断一下是不是.c/.h文件

char*pff=pf+strlen(pf)-2;

(空白4);

{

copyFile(pathFrom,pathTo);

}el{

continue;

}

}

elif(S_ISDIR(_mode)){

(空白2);

}

}

clodir(q);

}

intmain(intargc,char*argv[]){

(空白3);

return0;

}

(1).空白1处:

A.

intlen=0;

charbuf[1024]={};

while((len=read(ff,buf,sizeof(buf)))>0){

write(ft,buf,len);

}

B.

charbuf[1024]={};

while(read(ff,buf,sizeof(buf))>0){

write(ft,buf,sizeof(buf));

}

C.

intlen=0;

charbuf[1024]={};

while((len=write(ff,buf,sizeof(buf)))>0){

read(ft,buf,len);

}

D.

charbuf[1024]={};

while(write(ff,buf,sizeof(buf))>0){

read(ft,buf,len);

}

正确答案:A

(2).空白2处:

A.

backup(pathFrom,pathTo);

B.

if(0==strcmp(".",p->d_name)||0==strcmp("..",p->d_name)){

backup(pathFrom,pathTo);

}

C.

if(0==strcmp(".",p->d_name)||0==strcmp("..",p->d_name)){

continue;

}el{

backup(pathFrom,pathTo);

}

D.

if("."==p->d_name||".."==p->d_name){

continue;

}el{

backup(pathFrom,pathTo);

}

正确答案:C

(3).空白3处:

A.

backup(argv[0],argv[1]);

B.

backup(argv[1],argv[2]);

C.

backup(argv[2],argv[3]);

D.

backup();

正确答案:B

(4).空白4处:

A.

if(0==strcmp(".c",pff))

B.

if(0==strcmp(".h",pff))

C.

if(0==strcmp(".c",pff)&&0==strcmp(".h",pff))

D.

if(0==strcmp(".c",pff)||0==strcmp(".h",pff))

正确答案:D

(5).空白5处:

A.

if(NULL==from||'0'==from[0]||NULL==to||0==strlen(to)){

return;

}

B.

if((NULL==from||'0'==from[0])&&(NULL==to||0==strlen(to))){

return;

}

C.

if('0'==from[0]||NULL==from||0==strlen(to)||NULL==to){

return;

}

D.

if((NULL==from||'0'==from[0])&&(NULL==to||0==strlen(to))){

return;

}

正确答案:A

38.

阅读如下代码,完成下面5题:

#include

#include

char*data[5];

intsize=0;

pthread_mutex_tlock

=PTHREAD_MUTEX_INITIALIZER;

void*task1(void*p){

pthread_mutex_lock(&lock);

data[size]="杨键";

sleep(1);

size++;

pthread_mutex_unlock(&lock);

}

void*task2(void*p){

pthread_mutex_lock(&lock);

data[size]="闵卫";

sleep(1);

size++;

pthread_mutex_unlock(&lock);

}

intmain()

{

data[size]="郭镫鸿";

size++;

pthread_tid1,id2;

pthread_create(&id1,0,task1,0);

pthread_create(&id2,0,task2,0);

pthread_join(id1,0);

pthread_join(id2,0);

pthread_mutex_destroy(&lock);

inti;

for(i=0;i

printf("%s",data[i]);

}

printf("n");

}

(1).关于这段代码完成的功能最准确的描述是?

A.多进程中的进程间通信

B.多线程的交互

C.多线程中使用信号量

D.多线程中使用互斥锁保护临界资源

正确答案:D

(2).pthread_mutex_tlock=PTHREAD_MUTEX_INITIALIZER;如果不对

lock进行赋值,那么需要用一个函数进行初始化,该函数是:

d_mutex_create

d_mutex_init

d_mutex_lock

d_mutex_add

正确答案:B

(3).pthread_mutex_lock(&lock);是对代码进行加锁,如果不加锁会有什么问

题:

A.没有问题

元素个数会出现问题

数组中的数据会出现问题,有可能丢失数据

D.数据郭镫鸿会出现问题

正确答案:C

(4).pthread_mutex_unlock(&lock);是对代码进行解锁,如果不解锁会有什么

问题:

A.没有问题

B.代码的执行效率会降低,只有一个线程完全结束了另外一个线程才能继

续运行

C.多线程的执行会变成串行,主线程会优先执行完毕

D.多线程出现死锁现象,有一个线程会无法执行锁定代码

正确答案:D

(5).pthread_join(id1,0);代码实现的功能是:

A.让主线程等待线程1的结束后才能继续运行

B.让所有线程等待线程1的结束后才能运行

C.让主线程等待线程1零秒后继续运行

D.让所有线程等待线程1零秒后继续运行

正确答案:A

本文发布于:2023-01-04 09:31:00,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/89983.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:语言与文化
标签:达内3g培训
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图