计算机国二C错题集(五)
1.进程在运行状态结束要调用进程撤销语句
2 malloc分配内存的语法
3.指针数组(数组元素数据类型都是地址)
这个程序定义一个指针数组*strp【4】他有四个元素是一维数组 第一个元素是二维数组str的第0行首元素地址也就是字符串“aa十个\0”的首元素地址 A str【0】表示字符串“aa十个/0”首地址 可以利用首地址来索引一个字符串 字符串名实际上就是数组名是首地址✓ B strp这是一个指针数组的数组名 我们知道数组名就是数组首元素的地址 strp数组首元素是字符a的地址 所以strp表示字符a地址的地址是无法索引字符串的 C,选项和A同理 都相当于*(strp+3)是字符串首元素地址(✓) D *strp这个语句等价于str【0】也是对的(✓) 4.利用else之和最近的if匹配这一性质解决复杂题目
5二级指针与数组的经典题
指针p方向改动 但是k任然指向p 所以p带着k一起动了 6.用了指针但是任然没有改动实参例子 (p改形参指针方向 *p改函数外实际参数)
先是函数调用 型参指针s指向 字符数组“PR...”首元素 然后strcpy 用另一个字符串给数组a赋值 再把形参指针s指向数组a (如果用*s就能改动实参但是没用) 所以实际参数p不变 答案选D 7.不能对数组名赋值数组名是常指针 只能定义时候初始化
8.static全局变量保持变量的值在函数第一次执行后可以保留留作第二次初始值
9,改错题 字符串阿克斯码的冒泡排序
首先54321用冒泡排序外循环要循环四轮 第一轮把5排到最右边 第二轮4 前四个排完了1就不用了 第二个错要把小于号改大于因为 前面比后面大是不正常的要改 10,
第一个地方填空 int k(用来计数) 第二个地方i<3 第三个地方是a【0】【i】=a【k】【i】 我们先来解释这个形式参数(*a)【】它为啥是对的 这里(*a)【】 我们知道*a好比a【0】 和*a等价的形参是a【】这是一个行指针 a【0】表示a的第一行 所以这里(*a)就代表a的第一行a【0】首元素的地址(可以用字符串来理解) **a代表二维数组a的首元素
c=j find=0 i++ 十一,switch case default语句易错点
A 是对的 有人说default语句一般放在最后 其实放在前面也一样的放在哪都可以都是在与所有case不匹配后再执行的 B错了 错在case 常量 中间要有空格 C错了 case 后面必须是常量(已经赋值的变量也不行)a是变量这是不行的 D错了a*b没有括号括起来 十二,阿克斯码比较分析
比阿克斯码值大小 越后面字母越大 大就交换 十三,两个连续的双引号是字符串常量 连续的单引号不行是空的 双引号自动带/0
十四,除了0以外其他数组bool值都是真都是1包括负数(逻辑与两个条件第一个条件为假就不会执行第二个条件)
本题第一次 -2 1都是真所以真 执行完循环后a为-1 b为1 第二次-1 2都是真执行完后a为0 第三次a为0已经条件为假不执行后面的 但是a还会自+ 所以答案2