C 中细节问题的试题

Posted 冰岛彩虹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 中细节问题的试题相关的知识,希望对你有一定的参考价值。

下面函数的功能是什么?仔细分析!

#include<stdio.h>
#include<Windows.h>

//函数的功能 
//  a<0 输出0
// 0<=a<=255 输出  a
// a>255   输出255
unsigned char function(int a)
{
    if(a&(~0xff))
    {
        return (-a)>>31;

    }else
    {

        return a;
    }

}
int main()
{  
    int   n=0;
    n=function(-55); 
    printf("%d\n",n);
    
    system("pause");
    return 0;
}

下面的代码的有结果吗?为什么?

int a=1;
a+=++(a++);
//此时a的值是多少?

解析:编辑错误,数值不能进行自增运算。

 

Question:若一个视频中图像分辨率为1920*1080,每像素采样精度为16-bit,每秒25帧图像,则每秒图像占内存1920*1080*25*16)/8_byte(所有数据连续存放)

 16-bit=2byte    1920*1080表示的是像素点 

图像分辨率之1080P与1080i

int16_t  x=32767; x++;  printf("%d",x);输出的结果是什么?

int16_t  x=32767;   // -32768  why????  
//
//16位int范围-32768~32767
x++; printf("%d",x);

 上面的问题可以和下面的问题同解:

int x=-32769;
printf("%d",x);
//为什么输出的结果是32767?
这是int型数据溢出的问题,16位int范围-32768~32767

所以-32769超出了int范围,-32768多减一个就变成了32767
如何理解多减一个:可以往数的进制上面考虑,不够就往回挪了一个(自己的理解)

以上是关于C 中细节问题的试题的主要内容,如果未能解决你的问题,请参考以下文章

片段(Java) | 机试题+算法思路+考点+代码解析 2023

C语言必会面试题(3耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)(代码片段

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

Android TV - 在细节片段中失去焦点

86/88汇编代码的执行调试

java笔试题专项练习※※