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