C语言钻石段位测试题答案

C语言测试题答案

C语言钻石段位测试题见此链接:https://blog.csdn.net/qq_23274715/article/details/106302027

  1. 常数123ul,123.45l中的ull代表什么含义?(2分)
    1. 答案:这属于数值后缀的知识点。具体请参看数值常量后缀相关介绍
  2. C语言中,数值16用十六进制表示为0x10,哪用二进制如何表示?(2分)
    1. 答案:0b10000.具体请参看数值常量后缀相关介绍
  3. 举例谈谈#define Mul(x,y) x*y这个带参宏的缺点?(2分)
    1. 答案:如果使用Mul(3+5,6).得到的结果则为3 + 5*6 = 33.和我们的预期不一致。所以定义带参宏时多用要用()。如应该使用#define Mul(x,y) (x)*(y)
  4. 谈谈#undef预处理命令的应用。(2分)
    1. 答案:取消之前定义的宏。可以用这个预处理命令来修改宏的值。具体请参看预处理指令使用
  5. 谈谈#if,#ifdef,#ifndef的使用区别。(2分)
    1. 答案:这是预处理命令的应用。具体请参看预处理指令使用
  6. 如果编译时,不满足某些条件,用户如何向编译器抛出警告或者错误。(2分)
    1. 答案:使用预处理命令#error,#warning。具体请参看预处理指令使用
  7. 谈谈函数指针的用途?(5分)
    1. 答案:常用于函数回调等。具体请参看弱函数与回调函数在模块化编程中的使用
  8. 谈谈弱函数的用途?(5分)
    1. 答案:具体请参看弱函数与回调函数在模块化编程中的使用
  9. volatile关键字的行为发生在哪个阶段?(编译还是运行?).(5分)
    1. 答案:编译阶段。体现在汇编代码中。具体请参看volatile关键字的使用你真的了解吗?
  10. 从函数、变量、作用范围角度谈谈static,extern.(5分)
    1. 答案:具体请参看
      1. 全局变量的存储类型
      2. 内部函数和外部函数
  11. 什么是可重入函数,什么是不可重入函数?(5分)
    1. 答案:具体请参看可重入函数和不可重入函数
  12. 编写一个判断处理器为大端还是小端的函数(大端返回1,小端返回0)。(3分)
    1. 大小端的介绍和判断函数。见处理器的大小端模式
  13. 编写一个给二维数组uint8_t data[4][8]分配内存的函数。(5分)
    1. 函数见此链接。给二维数组分配空间
  14. 编写一个变参函数,实现类似printf()功能。(5分)
    1. 答案:首先需要知道什么是变参函数。具体请参看C语言的变参函数
  15. 编写一个变参调试宏debug()。可以完成下面的打印控制。(5分)
    1. 这涉及到了变参宏相关的知识点。具体请参看c语言中的变参宏
    #define debug(MY_DEBUG_ENABLE,...) do{ \if(MY_DEBUG_ENABLE > 0){ \printf(__VA_ARGS__); \} \
    }while(0)
  16. 下面的这段程序,打印结果是什么?(5分)
    1. 答案:a>b.具体请参看c语言中数据类型的自动转换原则
  17. 32bit小端处理器上,下面的两个结构体各占多大内存,请画出内存分布图。(5分)
    1. 答案:具体请参看C语言字节对齐介绍
  18. 下面两个函数中使用const有何好处。(5分)
    1. 答案:具体请参看const关键字的用法
  19. 下面程序函数WaitThread()中的循环能跳出吗?为什么?(5分)
    1. 答案:如果使用优化编译。跳不出。具体请参看volatile关键字的使用你真的了解吗?
  20. 下面程序中***p5中的内容是什么?(5分)
    1. 这是一个对指针理解深度的考察题。具体请参看
      1. 指针剖析(上)
      2. 指针剖析(下)
  21. 分析下面程序的打印结果。(5分)
    1. 答案输出如下。详细使用请参考C语言中字符串拼接之#,##的妙用:

      guoweilkd,“guoweilkd”,12
      guoweilkd123

  22. 在下面程序中使用sprintf()函数将一个浮点数转换为字符串.其中浮点数的小数位由输入参数决定。(5分)
    1. 答案:sprintf()具体的格式化字符串可以参看printf函数使用大全.
    char *GetfloatStr(char *pBuff,float value,int nbit){sprintf(pBuff,"%.*f",nbit,value);return pBuff;
    }
  23. 下面程序的__attribute__属性有什么作用。(5分)
    1. 答案:这是一个有关编译、链接的问题。具体请参看c编程----段定义的使用

关于技术交流

此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。二维码


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部