为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 达内C++培训第二次月考(附答案)

达内C++培训第二次月考(附答案)

2013-10-24 26页 doc 721KB 110阅读

用户头像

is_882430

暂无简介

举报
达内C++培训第二次月考(附答案)考试场次:2013_09月考_9月2日_C++ 试卷名称:2013年09月_C++_CSD/ESD1306(new) A. Select dept_id,count(dept_id),d.name from s_emp,s_dept d where dept_id=d.id group by dept_id B. Select dept_id,count(dept_id),sum(d.name) from s_emp,s_dept d where dept_id=d.id group by dept_id C. S...
达内C++培训第二次月考(附答案)
考试场次:2013_09月考_9月2日_C++ 试卷名称:2013年09月_C++_CSD/ESD1306(new) A. Select dept_id,count(dept_id),d.name from s_emp,s_dept d where dept_id=d.id group by dept_id B. Select dept_id,count(dept_id),sum(d.name) from s_emp,s_dept d where dept_id=d.id group by dept_id C. Select dept_id,count(dept_id),max(d.name) from s_emp,s_dept d where dept_id=d.id group by dept_id D. Select dept_id,count(dept_id),count(d.name) from s_emp,s_dept d where dept_id=d.id group by dept_id 正确:C 2. 打开共享库文件函数的是? A. dlerror B. dlsym C. dlopen D. dlclose 正确答案:C 3. 下面分组语句正确的是? 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 4. 在建时,经常需要用到约束,请问下面哪个不是常见约束? A. 主键 B. 非空 C. 回滚 D. 外键 正确答案:C 5. 阅读如下代码: int fd = open("a.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666); int flags = fcntl(fd, F_GETFL); printf("flags=%d\n", flags); switch((空白处)){  case O_RDONLY: printf("RDONLY\n");break;  case O_WRONLY: printf("WRONLY\n");break;  case O_RDWR: printf("RDWR\n");break; } 空白处的条件应该是? A. flags & 5 B. flags C. flags & 3 D. flags & 4 正确答案:C 6. 关于排序,下列说法错误的是? A. 排序的关键字是order by B. 升序是默认排序顺序 C. 降序的关键字是desc D. 不能使用多字段排序 正确答案:D 7. 下列建表的SQL语句错误的是? A. Create table test123( Id number,     Dname varchar2(30) ) B. Create table test123( Id number,     Dname varchar2(30),     MyDate date ) C. Create table test123( Id number,     Dname char(30) ) D. Create table test123( Id number,name varchar2(30), ) 正确答案:B 8. 如果想在代码中禁止使用goto,可以采用的是? A. #pragma GCC dependency goto B. #pragma GCC poison goto C. #pragma pack(2) D. #pragma GCC goto 正确答案:B 9. 显示所有的工资级别和级别对应的salary和first_name的SQL语句是? A. Select grade,first_name,salary from s_emp,salgrade where salary(+) between losal and hisal B. Select grade,first_name,salary from s_emp,salgrade where salary between losal and hisal(+) C. Select grade,first_name,salary from s_emp,salgrade where salary between(+) losal and hisal D. Select grade,first_name,salary from s_emp,salgrade where salary(+) between losal and hisal(+) 正确答案: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. 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 13. Plsql中定义变量,哪个是正确的? A. Var_i     int ; B. Number   Var_i; C. Var_i     number; D. var_i     number  not null; 正确答案:C 14. 阅读如下代码: int sockfd = socket(PF_INET, SOCK_DGRAM, 0);  if(sockfd==-1)perror("socket创建失败"),exit(-1);  //2.准备地址  (空白处)  //3.绑定  int res = bind(sockfd,   (struct sockaddr*)&addr, sizeof(addr));  if(res == -1)perror("绑定失败"),exit(-1);  printf("绑写成功\n");  //4.通信  char buf[100] = {};  int len = read(sockfd, buf, sizeof(buf));  if(len<=0) perror("读取失败"),exit(-1);  printf("读到%d字节的数据,内容是:%s\n",len,buf);  //5.关闭      close(sockfd); 空白出应该填上的代码是? A. struct sockaddr_un addr; addr.sin_family = PF_INET; addr.sin_port = htons(8888);  addr.sin_addr.s_addr = inet_addr("192.168.182.225"); B. struct sockaddr_un addr; addr.sin_family = PF_INET; addr.sin_port = htons(8888);  addr.sin_addr.s_addr = "192.168.182.225"; C. struct sockaddr_in addr; addr.sin_family = PF_INET; addr.sin_port = htons(8888);  addr.sin_addr.s_addr = inet_addr("192.168.182.225"); D. struct sockaddr_in addr; addr.sin_family = PF_INET; addr.sin_port = htons(8888);  addr.sin_addr.s_addr = "192.168.182.225"; 正确答案:C 15. 给名字是Smith的员工增加100元的工资的SQL语句是? A. Update s_emp set salary=salary+100 where last_name=’Smith’ B. Update s_emp set salary=salary+100 C. Update s_emp salary=salary+100 where last_name=’Smith’ D. Update s_emp set salary=100 where last_name=’Smith’ 正确答案:A 16. Plsql中定义了一个数字变量 var_sum 对var_sum的操作不正确的是? A. Var_sum:=100; B. Select  salary  into var_sum  from  s_emp where id=1; C. Var_sum:=var_sum+100; D. Var_sum=1000; 正确答案:D 17. 下列关于进程间通信不正确的是? A. 共享内存是进程间通信最快的方式。 B. 在使用msgsnd发送消息时,如果消息队列满,则发送阻塞。 C. 无名管道的适用范围是父子进程。 D. 若此信号量的值为正,则进程可以使用资源。进程将信号量加1表示使用了资源。 正确答案:D 18. 阅读如下代码: void* p = sbrk(0); int r = brk(p+4); brk(p+8);    brk(p+4); 请问目前占用的内存空间字节是? A. 16 B. 8 C. 4 D. 0 正确答案:C 19. 把s_emp月薪超过1000的员工列出来的SQL语句是? A. select last_name,salary  from  s_emp  where salary>1000 B. select name,salary  from  s_emp  where salary>1000 C. select name,salary  from  s_emp  where salary<1000 D. select last_name,salary  from  s_emp  where salary<1000 正确答案:A 20. 下列不是内存区域的是? A. 代码区 B. 堆区 C. 连接区 D. BSS段 正确答案:C 21. 需要向包含date类型字段mydate的表test中插入date类型,但目前需要插入的值为’2008-12-11’,请问哪个SQL语句是最合适的? A. insert into test(mydate) values(to_date(‘2008-12-11’,‘YYYY-MM-DD’)) B. insert into test(mydate) values(to_char(‘2008-12-11’,‘YYYY-MM-DD’)) C. insert into test(mydate) values(to_date(‘2008-11-12’,‘YYYY-MM-DD’)) D. insert into test(mydate) values(sysdate) 正确答案:A 22. 以下不属于Linux阵营的Unix操作系统是? A. Ubuntu B. Android C. AIX D. redhet 正确答案:C 23. 统计每个部门的人数的SQL语句是? A. select dept_id,max(dept_id) from s_emp group by dept_id B. select dept_id,avg(dept_id) from s_emp group by dept_id C. select dept_id,count(dept_id) from s_emp group by dept_id D. select dept_id,sum(dept_id) from s_emp group by dept_id 正确答案:C 24. 阅读如下代码: struct sembuf op; op.sem_num = 0;//对下标为0的信号量操作 (空白处1) op.sem_flg = 0;//无法完成时阻塞,可以是IPC_NOWAIT semop(semid, &op, 1); printf("访问共享资源\n");  sleep(30); printf("完成共享资源的访问\n"); (空白处2)     semop(semid, &op, 1); 空白处1和空白处2应该填上的代码是? A. 不需要填写代码 B. op.sem_op = 1;和op.sem_op = 1; C. op.sem_op = 1;和op.sem_op = -1; D. op.sem_op = -1;和op.sem_op = 1; 正确答案:D 25. 关于信号,以下说法错误的是? A. 信号分为可靠信号和不可靠信号 B. 信号的默认处理 ,80%的情况是退出进程 C. 所有信号都可以忽略 D. 当前用户只能给自己的进程发信号,不能给别的用户的进程发信号 正确答案:C 26. 已知表salgrade字段如下: Hisal - 最高薪水 Losal - 最低薪水 grade - 薪水等级 查询每个员工的 first_name 和salary以及对应的薪水等级的SQL语句是? A. select first_name,salary,grade from s_emp ,salgrade where salary between hisal and losal B. select first_name,salary,grade from s_emp ,salgrade where salary between losal and hisal C. select first_name,salary,grade from s_emp where salary between losal and hisal D. select first_name,salary,grade from s_emp ,salgrade where salary> losal and 要求
如果文件存在就打开,并清除文件原有内容,不存在就创建,同时具备读写权限? A. int fd = open("a.txt", O_RDONLY|O_CREAT|O_TRUNC, 0666); if(fd==-1){    perror("创建文件失败");    exit(-1); } B. int fd = open("a.txt", O_RDWR|O_CREAT|O_EXCL, 0666); if(fd==-1){    perror("创建文件失败");    exit(-1); } C. int fd = open("a.txt", O_RDWR |O_TRUNC, 0666); if(fd==-1){    perror("创建文件失败");    exit(-1); } D. int fd = open("a.txt", O_RDWR|O_CREAT|O_TRUNC, 0666); if(fd==-1){    perror("创建文件失败");    exit(-1); } 正确答案:D 35. 阅读如下代码: int fd[2] = {}; pipe(fd); int pid = fork(); if(pid==0){//子进程  (空白处1)  while(1){   int x;   if(read(fd[0], &x, sizeof(x))<=0)break;   printf("%d ", x);   fflush(0);  }  close(fd[0]);  exit(0); } (空白处2) int i; for(i=0; i<100; i++){ write(fd[1], &i, sizeof(int));  usleep(200000); } close(fd[1]); 空白处1和空白处2应该填上的代码是? A. 什么都不需要填 B. close(fd[1]);和close(fd[0]); C. close(fd[0]);和close(fd[1]); D. close(fd[1]);和close(fd[1]); 正确答案:B 36. 阅读如下代码,完成下面 5 题: #include "stdafx.h" #include "windows.h" #include "stdio.h" void VirtualInfo( ){     CHAR* pszBuffer = (CHAR *)VirtualAlloc( NULL, 1024*1024*1024,         MEM_RESERVE, PAGE_READWRITE );     VirtualFree( pszBuffer, 0, MEM_DECOMMIT ); } void Virtual_Commit( ){     CHAR *pszBuff = (CHAR *)VirtualAlloc( NULL, 4096, MEM_COMMIT,         PAGE_READWRITE );     strcpy( pszBuff, "Hello VirtualCommit" );     printf( "%s\n", pszBuff );     VirtualFree( pszBuff, 0, MEM_RELEASE ); } void Virtual_Reserve( ){     CHAR *pszBuff = (CHAR *)VirtualAlloc( NULL, 4096, MEM_RESERVE,         PAGE_READWRITE );     VirtualAlloc( pszBuff, 1024, MEM_COMMIT, PAGE_READWRITE );     strcpy( pszBuff, "Hello VirtualRelease" );     printf( "%s\n", pszBuff );     VirtualFree( pszBuff, 0, MEM_RELEASE ); } int main(int argc, char* argv[]) {     VirtualInfo( );     Virtual_Commit( );     Virtual_Reserve( );     return 0; } (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. 没有区别 B. MEM_RESERVE只要地址,不要物理内存,而MEM_COMMIT是都占用 C. MEM_RESERVE是释放内存,而MEM_COMMIT是申请内存 D. MEM_RESERVE只要物理内存,不占用地址,而MEM_COMMIT是都占用 正确答案:B (3). VirtualFree( pszBuffer, 0, MEM_DECOMMIT ) 函数如果改为 VirtualFree( pszBuffer, 0, MEM_RELEASE ),有何区别: A. 没有区别 B. MEM_DECOMMIT是再次内存申请,MEM_RELEASE释放内存 C. MEM_DECOMMIT只释放内存,不释放地址,MEM_RELEASE地址和内存都释放 D. MEM_DECOMMIT只释放地址,不释放内存,MEM_RELEASE地址和内存都释放 正确答案:C (4). 函数Virtual_Commit对于内存的使用方式是: A. 内存地址和物理内存一起申请,并同时释放 B. 内存地址和物理内存一起申请,但分别释放 C. 内存地址和物理内存分别申请,但同时释放 D. 内存地址和物理内存分别申请,分别释放 正确答案:A (5). 函数Virtual_ Reserve对于内存的使用方式是: A. 内存地址和物理内存一起申请,并同时释放 B. 内存地址和物理内存一起申请,但分别释放 C. 内存地址和物理内存分别申请,但同时释放 D. 内存地址和物理内存分别申请,分别释放 正确答案:C 37. #include #include #include #include #include #include #include #include void copyFile(const char*from,const char*to){ //判断一下传进来的参数是不是空 (空白5); int ff = open(from,O_RDONLY); if(-1==ff){perror("打开原文件失败\n");return ;} int ft = open(to,O_RDWR|O_CREAT,0666); if(-1==ft){perror("打开目标文件失败\n");return ;} (空白1); close(ff); close(ft); } void backup(const char*from,const char*to){ //判断一下传进来的参数是不是空 (空白5); //打开要被复制的文件夹 DIR *q = opendir(from); if(NULL==q){ perror("打开文件夹失败\n"); return ; } //创建一个文件夹 mkdir(to,0777); struct dirent *p = NULL; struct stat s; char pathFrom[256] = {}; char pathTo[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(s.st_mode)){ //判断一下是不是.c/.h文件 char* pff = pf+strlen(pf)-2;   (空白4); { copyFile(pathFrom,pathTo); }else{ continue ; } } else if(S_ISDIR(s.st_mode)){ (空白2); } } closedir(q); } int main(int argc,char *argv[]){   (空白3); return 0; } (1). 空白1处: A. int len = 0; char buf[1024] = {}; while((len= read(ff,buf,sizeof(buf)))>0){ write(ft,buf,len); } B. char buf[1024] = {}; while(read(ff,buf,sizeof(buf))>0){ write(ft,buf,sizeof(buf)); } C. int len = 0; char buf[1024] = {}; while((len= write(ff,buf,sizeof(buf)))>0){ read(ft,buf,len); } D. char buf[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; }else{ backup(pathFrom,pathTo); } D. if("."==p->d_name||".."==p->d_name){ continue; }else{ 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]; int size=0; pthread_mutex_t lock  = 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); } int main() {  data[size] = "郭镫鸿";  size++;  pthread_t id1, 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);  int i;  for(i=0; i
/
本文档为【达内C++培训第二次月考(附答案)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索