牛客网错题知识点整理C/C++(三)

牛客网错题知识点整理C/C++(三)

一. 知识点以及错题

1. 进程申请不到CPU时,其状态将变为阻塞状态,这样的说法准确吗?

进程若已获得除CPU以外的所有运行所需资源,此时申请CPU的得不到满足,应该依然处于就绪状态。正在运行的进程,因为某种原因而暂停,此时处于阻塞状态(也称等待状态、挂起状态)

2. const int &test,这样的写法对不对,为什么?

这样的写法是错误的,因为引用在使用的时候必须要初始化,但是指针不需要;

3.设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是什么?

这道题的错误之处在于未将3写成00000011,然后在取反;

4. 关于C语言,下列指针变量的定义和解释,均正确的是();

在这里插入图片描述

A选项中,[]的优先级高于*,所以可以写成这样int* p[10],可以理解为是一个数组,它的数据类型是指向int的指针变量,所以是一个指针数组;
B选项的写法是错的
C选项必须要给定一个数组元素的个数的值,int (*p)[n];就是正确的;
D选项中,应该同上用行指针指向一个二维数组, 而非一个int型的二级指针;

5.在文件的索引节点中存放直接索引指针10 个,一级和二级索引指针各 1 个。磁盘块大小为 1KB,每个索引指针占 4 个字节。若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为 1234和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是()。

在这里插入图片描述
解析:
根据索引的知识可知
(1)直接索引:101KB = 10KB;
(2)一级索引:1KB/4B = 256;256
1KB = 256KB
(3)二级索引:2562561KB = 64MB;
因为1234<10kb,所以,直接索引访问一次;
10+256 <307400 < 64MB,所以二级索引,在访问一次,共三次;

6.下列for语句执行的次数为?

int i, j;
for (i = 0, j = 5;i = j; ){ 
	cout<<i<<j<< endl; 
	i++; 
	j--; 
}

这里的条件中是i = j, 不是i==j,所以当i大于0时条件成立,故执行的次数为5次;

7.函数指针与指针函数的区别?

函数指针:指向函数的指针;
指针函数:是返回值为指针的函数

8. 网络利用率是全网络的信道利用率的多少?

利用率,首先应该分清楚研究的是哪一个利用率,是单一信道的利用率还是整个网络的所有信道利用率:信道利用率是指某一信道在时间单位内有无数据通过的百分比,数值在0-1之间,而整个网络的利用率则是全网络的信道的通道利用率的加权平均值;

9. 逻辑文件有两种形式,流式文件和记录式文件,源程序属于记录式文件,学生选课文件属于流式文件;

这样的分类是错误的;反过来了;
记录式文件是一组有序记录的集合,可分为记录式文件和不定长记录文件;
记录式的有结构文件可以把文件中的记录按不同的方式排列;
流式文件时有序字符的集合,流式文件无结构,所以用户可以方便的进行操作;

10.在一个IP数据包到达目的地之前,可能发生很多情况,这个过程可能会发生什么情况?

可能会成为碎片,但是不会重组;

参考大佬解析:
在这里插入图片描述

11.下列C代码中,不属于未定义的是?

在这里插入图片描述

A选项中,编译器无法选择自增和赋值的顺序,所以属于未定义;
B选项中,“hello”属于字符串长点,对字符串常量进行修改,所以会出现段错误,也属于未定义
C选项中,只是通过指针找到第二个字符并将它赋值给一个字符变量,并没有改变这个字符串常量,所以不属于未定义行为;

12.下列代码的输出结果是什么?

int i = -1;
unsigned j = 1;
if (j > i)
    printf(" (j>i)成立\n");
else
    printf(" (j>i)不成立\n");

if (i < j)
    printf(" (i<j)成立\n");
else
    printf(" (i<j)不成立\n");

如果在C语言中遇到unsigned和int,系统会自动将int自动转化成unsigned int;
-1转成无符号,会变成255,左移i>j;

13. 下列关于线程、进程、协程的说法正确的是?

在这里插入图片描述

A选项中,线程是运算调度的最小单位
C选项中,线程的堆是共享的,但是每个线程有自己独立的栈空间;

摘自网络—
在这里插入图片描述

14.内存管理中的 LRU 方法是用来管理什么的?

虚拟内存的分配和物理内存的释放;

15.单处理系统中,进程P1,P2,P3处于就绪队列,进程P4,P6处于等待队列,P5正占用处理器运行,以下关于进程调度时机分析正确的是( )

在这里插入图片描述

进程调度时机:当前运行进程主动放弃处理机和当前运行进程被动放弃处理机。
主动放弃处理机:
(1)进程正常终止 运行态->终止态
(2)运行过程中发生异常而终止 运行态->终止态
(3)进程主动请求阻塞 如等待I/O 运行态->阻塞态
被动放弃处理机:
(1)分给进程的时间片用完 运行态->就绪态
(2)有更紧急的事需要处理 如I/O中断 运行态->就绪态
(3)有更高优先级的进程进入就绪队列 运行态->就绪态

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值