c语言-经典例题

C语言-经典例题

一、单项选择题

1、

alt text

-- A

2、

alt text

-- C                 y<=5  --是关系运算符的优先级大于&&         -- 是逻辑运算符

3、

alt text

-- B         - D选项:c是float类型,所以c/2是1.5

4、

alt text

-- C 从后往前执行(先算=后面的)

5、

alt text

-- B                 %不能用来执行小数

6、

alt text

-- D                 ftell是指查看光标位置

8、

alt text

-- A                 全局变量是具有初始值的

10、

alt text

-- C

11、

alt text

-- C

12、

alt text

alt text

-- B          如果选项里有68对应的字符D,就选字符D而不选68,因为c2是字符型

13、

alt text

-- A

14、

alt text

-- C                 &&运算符,前面为假的话后面就不会进入运算

15、

alt text

-- B                 p本来是个指针(也就是地址),*p是解地址,所以 * p为空间

16、

alt text

-- C

  • &a+1表示偏移一整个数组的地址,原本位置在数组的首地址,偏移后在数组后面一个地址(意思就是在第二个数组的首地址),但是强转成(int *),这里记住 * 前面是什么类型,偏移就是按哪个类型。这里是int * ,下次偏移就是4字节, * (ptr-1)先后偏移四个字节也就是5,再解地址将5输出。

17、

alt text

-- B

18、

alt text

-- C

19、

alt text

-- B

20、

alt text

-- A                 带#的

二、填空题

1、

alt text

--         =-127                 环形存储

alt text

 2、

alt text

-- 3

3、 !!!

alt text

alt text

-- 8,8,8

  • 8 数组作为形参传过来的是首地址,sizeof(str)说明是地址的长度,固定是8

  • 8,指针的大小,就是地址的大小(与开辟空间大小无关)

  • 8 这是指针数组(数组里面存的是是指针,也就是地址)

4、

alt text

-- sizeof(table)/sizeof(table[0]);

5、

alt text

-- 0x1000030,0x1000002

  • 指针偏移是偏移的是类型的空间大小,类型就看*前面是什么类型。这里是char类型,所以偏移2字节

7、

alt text

  • a^=1<<7 / a&=~(1<<7) (按位)

  • a|=(1<<7)

alt text

8、

alt text

  • while:先判断后执行,循环操作可能一次都不会执行
  • do...while:先执行后判断,循环操作至少被执行一次

9、

alt text

  • 10,13,16,19,

-- stack 修饰的变量只会执行一次

11、

alt text

  • #define MAX(a,b) (a)>(b)?(a):(b)
    -- 加括号的原因是怕执行的时候有其他运算

12、

alt text

  • 8,4

三、问答题

1、

alt text

  • <> -- 优先从系统目录中查找头文件         "" -- 优先从项目目录中查找头文件

2、

alt text

  • static -- 修饰局部变量,提高其生命周期,但不延长作用域。修饰定义的全局变量或函数,表示该全局变量或函数私有化,不外借

  • extern -- 修饰声明的全局变量或函数,表示该全局变量或函数采用外部资源的内容

  • const -- 修饰变量,表示该变量的值不能改变,即为常量空间

3、

alt text

  • 栈区、堆区、常量区,代码区,全局区(静态区)

4、

alt text

  • 可以重名,有区别

  • (1)全局变量定义在{}外,局部变量定义在{}内

  • (2)全局变量具有初始值,局部变量没有初始值,默认是随机数

  • (3)全局变量的生命周期和作用域在整个程序中使用,局部变量仅作用在{}内活动。

  • (4)若全局变量和局部变量同名,采用就近原则,使用局部变量

5、

alt text

  • 防止重复编译!!!

6、

alt text

  • g:int (* a)(int) // 函数指针 如果*在外面的话是返回值是指针的函数,就不是函数指针了,

  • h: int (*a[10])(int) // 函数指针数组 ,数组的元素是函数的指针

7、

alt text

  • 栈是以一个数据存储结构,可以是线性存储,也可以是链式存储,用来保存数据的一种结构。

  • 栈的特点:先进后出

  • 堆的特点:先进先出

8、

alt text

  • (1)-- const修饰p,表示指针的值不能改变,但是地址所指向的空间的值可以改变

  • (2)-- const修饰*p,表示指针的值可以改变,但是地址所指向的空间的值不可以改变

  • (3)-- const修饰*p,表示指针的值可以改变,但是地址所指向的空间的值不可以改变

四、

1、

alt text

  • 共用体是共用同一个内存,只用对一个变量赋值,小端模式是从低地址开始存储的,大端模式是从高地址。

alt text

  • 目前大多数单片机用的是大端存储,而大部分电脑端和单片机端是小端存储,不一样的存储模式,所以要判断一下。
  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值