2013往期回顾: 第一期 第二期 第三期 第四期 第五期 第六期 第七期 第八期 第九期 第十期 第十一期 第十二期

2014往期回顾: 第一期 第二期 第三期 第四期 第五期 第六期 第七期 第八期 第九期 第十期 第十一期

2015往期回顾: 第一期 第二期 第三期 第四期 第五期 第六期 第七期

01

活动简介

/INTRODUCTION

2015 第八期:如何获得完美的类型提升

活动时间:2015年8月1日 - 2015年8月31日

所有问题全部来自于视频,答案显而易见,看过就可轻松的知道正确答案。全部答对者将获得抽奖资格,共计100名获奖者,奖品由Microchip公司提供。

02

活动奖品

/PRIZES

10元京东卡(100名)

03

本期视频

/VIDEO

如何获得完美的类型提升

简 介:在本视频中,我们将了解整型提升的工作原理,通过确定代码中较短的数据类型,按规则逐步进行分析,从而获得完美的类型提升。[点击查看完整视频]



相关知识

2015每月视频有奖问答第七期第七期正确答案:BACCD
2015第七期获奖名单
04

问卷

/QUESTION

2015第八期问题

Q1. 下列哪一种数据类型是C语言的首选数据类型?

  • A. signed
  • B. int
  • C. char
  • D. short

Q2. 若a=0,b=10,当变量a和变量b分别为哪种类型时,if(a-b<20)中a,b不会进行整型提升?

  • A. a变量为signed int;b变量为signed int
  • B. a变量为char;b变量为char
  • C. a变量为char;b变量为signed int
  • D. a变量为unsigned char;b变量为unsigned char

Q3. 定义变量signed char c = 0xff;执行printf("%x",c);定义变量signed char fu = 0x55;用于一个判断语句if(~fu == 0xaa),则执行printf("%x",c);的结果以及判断语句中fu的取反结果分别是:

  • A. ffff,0xffaa
  • B. ff,0xaa
  • C. ffff,0xaa
  • D. ff,0xffaa

Q4. 关于类型提升的应用说明有误的是:

  • A. 会被用于一元运算符(+、-和~)的操作数
  • B. 会被用于移位运算符(<<和>>)的两个操作数
  • C. 不会被用于switch语句中的case值
  • D. 传递给带有省略号(...)的函数的无原型参数也会进行类型提升

Q5. 下面哪一项类型提升规则有错误?

  • A. 根据值的长度,有可能被提升为signed int类型或unsigned int类型
  • B. 在表达式中,会先进行类型提升,然后才在表达式中使用提升后的值进行其余操作
  • C. 使用强制类型转换可以调整编译器选择的类型
  • D. 在默认参数提升时,所有float类型会被提升为int类型