C语言卷子错题集

a代表整个数组的地址,取地址a指向的是一整个,然后再+1,就是a5【】.如果是&(a+1),就是a1的地址了

7.数组名只有传进函数的时候,才是指针,这道题是求str字符串数组的长度。注意:还有一个\0结束符。

  1. sizeof(数组名):此时数组名代表整个数组,计算的是整个数组所占用的总字节数。
  2. &数组名:此时数组名代表整个数组,取出的是整个数组的内存地址。

8.volatile关键字的作用就是,告诉编译器不要去优化它。register是寄存器。

A选项中,f是紧跟着(void),此时F代表的是一个函数。该函数不接受任何参数,返回值是void*类型,所以F是一个函数,不是函数指针变量。

B选项*f是被括号括起来的,代表F是一个指针,F指向一个函数,同样也是不接受任何参数,返回值是void*类型

C选项同理B选项,只不过该函数接收一个void*类型的参数。

D选项,F是一个指向函数的指针。返回值是void,接收的参数也是void *类型

子网掩码的作用是:屏蔽主机号(也就是全0),获取网络号(全1)。

C类的IP地址3个字节网络号+1个字节主机号

范围是0-255,有254个,0和255是不能用的。但是题目中只有一个IP,要连接到6个子公司,就要分出来3bit当网络号,剩下的5位则是主机号,255.255.255.11100000

11100000转换成10进制就是224.

错误在于,GetMemory函数返回了一个指向栈内存的指针,字符数组p是一个局部的,只在当前函数内部有效。

随着函数运行结束,p就会被销毁。

造成悬空指针,Test函数通过printf(str)访问这块内存时,读取到的可能是垃圾数据。

想要修改,就要使用静态局部变量,用static去修饰,使它的生命周期贯穿整个程序。

这段代码没有错误,GetMemory使用了二级指针,修改了str的指向,给*p开辟了内存空间

回到test函数中,定义一个指针变量str并初始化为NULL,调用GetMemory函数,传参传的是&str,(也就是str的地址),*p实际上就是修改了str的指向,指到那块新分配的空间。

编程题

1.写一个函数,不使用第三个变量的情况下,交换两个变量的值?

void swap(int *a,int *b){

*a = *a + *b;

*b = *a - *b;

*a = *a - *b;

}

推介使用异或运算:

有三个特点

1.任何数异或它自己等于0.(x ^ x = 0),

2.任何数异或0等于它自己。(x ^ 0 = x).

3.异或运算满足交换律和结合律。

void swap(int *a,int *b){

*a = *a ^ *b;//此时a = a ^ b

*b = *a ^ *b;//*b = (a ^b) ^ b,首先 b^b=0,再,a ^ 0 = a,此时*b = a

*a = *a ^ *b;//*b = (a ^ b) ^ a,所以就是,b ^ 0 = b.*a = b.

}

2.判断一个单链表是否是循环链表?

cs 复制代码
int Isloop(node *head){
 if(head == NULL)
     {
       return 0;
     }

 node *quick = head;
 node *last = head;
while(quick != NULL || quick->next != NULL){
   quick = head->next->next;
   last = head->next;
   if(quick == last){
   return 1;
}else{
  return 0;
}
}
}

扩充点:

相关推荐
带多刺的玫瑰4 小时前
Leecode#26刷题之删除有序数组中的重复项
数据结构·算法·leetcode
en.en..5 小时前
C语言核心解析:#define与typedef本质区别
开发语言·c++·算法
2601_966949655 小时前
批量获取多只股票五档盘口的极简方案:QuantDash Python SDK 实战指南
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
点心的游戏开发世界6 小时前
GDScript 入门笔记:目录
开发语言·笔记·游戏引擎·godot
洋不写bug6 小时前
二叉树(二) 常见基础操作解析|结点数、树高、查找结点、判断完全二叉树
java·开发语言·数据结构·完全二叉树·二叉树结点数·树高·查找结点
果果燕6 小时前
实习笔记(六)主机按钮状态上报完整流程
开发语言·c++·php
化雨成烟6 小时前
C++之AVL树
数据结构
平头哥技术团队7 小时前
Day 16 | 用 ul、ol、li 一个标签,把散资料收成有序的技能清单页
开发语言·前端·html·html5
统计学小王子7 小时前
数学建模国赛倒计时 2 天 ——《统计模型精讲(广义线性模型 R 语言实例 + 分析)》
开发语言·数学建模·r语言
此冬歌咏7 小时前
自动化服务器运维监控系统(python+shell)
linux·运维·服务器·开发语言·python·自动化