在线考试
答题剩余时间0小时51分18秒
考生须知
1.本次考试结束后,剩余补考次数:2次
2.考试时间为60分钟,超时系统自动交卷
3.本次考试满分100分(5*20道),60分通过考试
(单选题)关于recv函数的介绍错误的为()
- A.recv函数是数据接收函数
- B.flags设置为MSG_DONTWAIT表示函数是阻塞方式接受数据
- C.函数有阻塞和不阻塞之分
- D.函数成功返回实际接收到的字节数,失败返回-1
(单选题)共享内存的基本特点描述错误的为()
- A.两个或者多个进程共享的内存会映射在堆区和栈区之间
- B.多个进程通过共享内存通信时会把数据直接反映到同一块物理内存
- C.共享内存提供了足够的同步机制
- D.共享内存的进程间通信是速度最快的进程间通信方式
(单选题)关于信号量的描述错误的为()
- A.信号量的本质就是一个由系统内核维护的全局计数器,
- B.信号量初值即资源总数
- C.已获得资源的线程在其不需要继续使用资源时,会释放手中的资源,令信号量计数器的值回升。
- D.信号量使用完毕后系统会自动销毁信号量并释放资源
(多选题)线程都共享进程的哪些内容()
- A.栈区
- B.代码区
- C.文件描述符
- D.数据区
(单选题)pthread_join函数的描述错误的为()
- A.线程过程函数中返回的指针如果指向动态分配的内存,则程序会自动释放内存
- B.等待线程终止并与之汇合,同时回收该线程的相关资源
- C.成功返回0,失败返回错误码
- D.若retval参数非NULL,则pthread_join函数将线程过程函数所返回的指针,拷贝到该参数所指向的内存中
(单选题)void* shmat(int shmid,const void* shmaddr,int shmflg); 函数描述错误的为()
- A.函数用于卸载共享内存
- B.成功返回共享内存起始地址,失败返回-1
- C.内存地址一般置为NULL,由系统自动分配
- D.shmflg可以取0或者SHM_RDONLY或者SHM_RND
(单选题)Linux系统中消息队列的限制正确的为()
- A.可发送消息字节数max:16384
- B.队列数据长度之和max:8192
- C.系统中消息队列数max:16
- D.系统中消息数总和max:262145
(单选题)消息队列对比其他IPC机制的优势错误的为()
- A.流量控制
- B.面向记录
- C.状态过滤
- D.天然同步
(单选题)int semget(key_t key,int nsems,int semflg); 函数描述错误的为()
- A.函数用于创建新的或获取已有的信号量集
- B.成功返回信号量集标识符,失败返回-1
- C.nsems是存储信号量个数
- D.semflg只能取0或者IPC_CREAT
(单选题)下列代码中,哪段代码是实现TCP协议Server端等待客户端连接功能的()
- A.int sockfd = socket(PF_INET, SOCK_STREAM, 0); if(sockfd==-1)perror("创建socket失败"),exit(-1); struct sockaddr_in addr; addr.sin_family = PF_INET; addr.sin_port = htons(PORT); inet_aton("192.168.182.225", &addr.sin_addr);
- B.int sockfd = socket(PF_INET, SOCK_STREAM, 0); if(sockfd==-1)perror("创建socket失败"),exit(-1); struct sockaddr_in addr; addr.sin_family = PF_INET; addr.sin_port = htons(PORT); inet_aton("192.168.182.225", &addr.sin_addr);
- C.struct sockaddr_in fromaddr; socklen_t len=sizeof(fromaddr); int fd = accept(sockfd,(SA*)&fromaddr, &len); if(fd==-1)perror("失败"),exit(-1);
- D.char buf[100] = {}; if(read(fd, buf, sizeof(buf))<=0) perror("失败"); write(fd, "欢迎您", 14);
(单选题)无名管道的描述错误的为()
- A.无名管道是一个与文件系统无关的内核对象,主要用于父子进程之间通信
- B.pipe成功返回1,失败返回-1
- C.pipe函数会输出两个文件描述符,一个用于读取数据,一个用于写入数据
- D.无名管道需要用专门的系统调用函数创建
(单选题)阅读如下代码: 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";
(单选题)阅读如下代码: void* task(void* p){ int* pi = (int*)p; printf("*pi=%d\n", *pi); *pi = 200; } int main() { pthread_t id1; int x = 100; if(pthread_create(&id1, 0, task, &x)){ printf("create thread error...\n"); return -1; } printf("x=%d\n", x); return 0; } 打印出数字为:()
- A.*pi=100 x=100
- B.*pi=200 x=100
- C.*pi=200 x=200
- D.*pi=100 x=200
(单选题)关于互斥的描述错误的为()
- A.互斥通过函数pthread_mutex_init初始化互斥体
- B.互斥使用完毕需要手动使用pthread_mutex_destroy销毁
- C.互斥的使用,不能解决并发冲突的问题
- D.Pthread_mutex_lock函数是对特定的互斥体加锁
(单选题)阅读如下代码: 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;
(单选题)关于消息队列的特点描述错误的为()
- A.消息队列是一个由系统内核负责存储和管理,并通过消息队列标识符引用的消息链表
- B.msgrcv函数是从消息队列中提取信息,提取的顺序都是按照先进先出的顺序
- C.可以通过msgget函数创建一个新的消息队列或获取已有的消息队列
- D.可以通过msgsnd函数向消息队列的尾端追加信息,所追加的信息除了包含消息数据以外,还包含了消息类型和数据长度(以字节为单位)
(单选题)下列关于进程间通信不正确的是()
- A.共享内存是进程间通信最快的方式
- B.在使用msgsnd发送消息时,如果消息队列满,则发送阻塞。
- C.无名管道的适用范围是父子进程。
- D.若此信号量的值为正,则进程可以使用资源。进程将信号量加1表示使用了资源。
(单选题)函数sem_getvalue描述错误的为()
- A.函数的声明在pthread.h中,因此失败不是返回-1而是错误码
- B.获取信号量计数器的当前值
- C.成功返回0,失败返回-1
- D.计数器的当前值通过第二个参数带出来
(单选题)关于listen函数的介绍错误的为()
- A.函数失败返回0,成功返回1
- B.在指定套接字上启动对连接请求的侦听
- C.监听同一时间客户端的最大连接数
- D.可以将socket函数的套接字从主动变为被动
(单选题)关于单播模式描述错误的为()
- A.每个数据报发往单个目的主机,目的地址指明单个接收者
- B.服务器可以及时响应客户机的请求
- C.服务器不可以针对不同客户的不同请求提供个性化的服务,只能统一化服务
- D.网络中传输的信息量与请求该信息的用户量成正比
Copyright(C) 达内时代科技集团有限公司 2011-2013 tarena.com.cn 返回顶部