C语言错题之 7

简介: C语言错题之 7

导言:

今天也是五道选择题,主要是最近事情有点多(了解scanf、git的使用、复习C语言之前的笔记)(这些整理完之后都会发博客的),整理编程题有点费时间,等下下周就有大把的时间了,到时候一定补上编程题。

接下来直接看今天的题吧。

1.

题干:

添加链接描述

答案:

B

知识点:

两个指针变量的值相等有两种情况:

1.两个变量存的地址一样

2.两个变量的值都为NULL,即空指针变量

2.

题干:

点击此处跳转

答案:

B

知识点:

常识介绍

对于结构体来说,编译器按照结构体成员列表的顺序为每个成员分配内存,当存储成员时需要满足正确地边界对齐要求时,成员之间可能出现用于填充地额外内存空间。

32位系统每次分配字节数最多为4个字节,64位系统分配字节数最多为8个字节。

变量大小的对比

char :1个字节 
  char*(即指针变量): 8个字节 
  short int : 2个字节 
  int:  4个字节 
  unsigned int : 4个字节 
  float:  4个字节 
  double:    8个字节 
  long:   8个字节 
  long long:  8个字节 
  unsigned long:  8个字节 

提示:

32位与64位的不同之处是:

指针、long、unsigned long会从4byte变为8byte。

题目解析:

structA

{

unsigned int a;

//对于开始连续的第一个8字节内存,a占4字节

char b[2];

//b[]占12字节,在a后的连续2字节内存放,还剩2个字节,
double c;
//c占8字节,第一个8字节还剩2字节不足以存放c,自动补充该2字节。并同时开辟第二个8字节内存存放c
short d;
//d占2字节,开辟第三个8字节,存放d。剩余的6个字节补齐。故总共开辟了8
3=24字节存放该数据结构

}

3.

题干:

点击此处跳转

答案:

C

知识点:

A:

a 是指针 指向 int 这个int 是静态的 const 修饰的是int

B:

a作为指针变量,存储的是b的地址,所以这是个二级指针,与其余三个选项根本不同。

C:

a 是静态的指针(第二个const 修饰),指向 int ,这个int是静态的(第一个const 修饰)

D:

a 是静态的指针(第二个const 修饰),指向一个静态的变量(第一个const 修饰, 这个变量是int的)

提示:

区分是否相同的小窍门:

const在*的左边是同一类

在右边是同一类

不用看const 和 int的前后关系

4.

题干:

点击此处跳转

答案:

D

知识点:

因为%3d,所以输入中的前3位数123将赋给x,输入中后面的45将赋给y,

因为45后键入了空格使得后面的输入无效,又因y是浮点数,所以y的值应为45.000000。

并且,因为scanf遇到空格就会自动停止输入,所以输入结束。

(此处想说一句,我才知道□表示的是空格,学到了)

挖坑:

我过几天会发一篇C语言杂记,里面有我对与scanf这个函数的学习和思考,大家到时候有兴趣可以看一看

5.

题干:

点击此处跳转

答案:

B

题目解析:

本来我是一个递推一个递推算的,

后来看了看大佬的解释,感觉这个方法很妙,就分享给大家。

自底向上算:

0 --> 1个

1 --> 1个

2 --> 0和1 再加上本身 ---->3个

3 --> 1和2 再加上本身 ---->5个

4 --> 2和3 再加上本身 ---->9个

由此类推…

8 --> 7和6 再加上本身 ---->67个

结语

今天的五道题就到这里了,我们下期见

PS:编程题的整理下下周一定补上


相关文章
|
28天前
|
C语言
【C语言】错题本(3)
【C语言】错题本(3)
12 0
|
7月前
|
存储 编译器 C语言
C语言错题之 10
C语言错题之 10
91 0
|
1月前
|
C语言
C语言:初阶测试错题(查漏补缺)
C语言:初阶测试错题(查漏补缺)
21 0
|
8月前
|
存储 C语言
C语言错题之 8
C语言错题之 8
52 0
|
8月前
|
C语言
C语言错题之 5
C语言错题之 5
38 0
|
5月前
|
C语言
C语言分支语句和循环语句经典题及易错题
C语言分支语句和循环语句经典题及易错题
60 0
|
8月前
|
C语言
C语言错题之 6
C语言错题之 6
39 0
|
8月前
|
存储 C语言
C语言错题4
C语言错题4
55 0
|
8月前
|
存储 C语言
C语言错题 1
C语言错题 1
69 0
|
8月前
|
C语言
C语言错题 2
C语言错题 2
63 0