以下是我对这次考核的总结,希望能从中找到薄弱点,填充自己的知识盲区。
一.选择题
D选项中的std和name都代表两个数组,进行取地址,name存在于std[i]中,std中没有name,正确格式应该为scanf("%s",&std[i].name)
'\‘相当于转义字符‘’
'\b’退格
'\a’响铃
'\c’不存在这个字符
|如果实参是简单变量,它就是单向值传递。
这里的简单变量应该是指内置类型,内置类型数据在传入函数时,使用值传递方式的效率要高于引用传递和指针传递,因此编译器会采用效率最高的方式来实现参数传递,所以选B(当然也允许用户更改),事实上包括STL中的迭代器和函数对象也都是默认采用值传递的方式来实现的。 | |
---|---|
二.填空题
在断开原始连接之前,我们应该先要将即将断开部分的前后连接保存下来,也就是链表插入的第一步,将q的前驱指向原始链表的中的P。然后,将q的前驱指向P的前驱节点,这样就保证了链表的前后部分不丢失。然后是第三步,将P结点的前驱节点的下一个指向q,将p的前驱节点指向q。 | |
---|---|
A中解引用应该是一个整体,正确写法应该是(*(x+ii))+[j]
D越界访问,应该只到ii,而不是ii+j
*(a+1)表示为找到首地址的下一个地址进行解引用也就是2
*(ptr-1)表示首先指向a数组的下一个空间,将a数组中的元素转化为int类型,再指向那个空间的前一个,也就是a数组的最后一个元素,再进行解引用,得到5
此处考察逗号运算符的知识点,逗号运算符的优先级是最低的,括号中的两个数,从左往右依次赋值,右边的值会把左边的覆盖,相当于a数组中只有三个元素1,3,5
p[0]取的相当是a[0]即为1
总结:这次考核过后我发现自己有很多的知识点不清晰,还有混淆的情况出现,这也充分说明了前期的学习不扎实,没有注重基础,也希望能够通过之后的努力让自己把薄弱的和不会的方面补上去,注重基础,这次也认真总结了自己的不足,在细小的方面自己不太注重,今后对于知识点应该认真复习,及时查漏补缺。希望在下次的考核中能考出更好的成绩,有所进步。