复盘考核几个题所涉及的知识点

我的自省:本次考核我认为考点很基础,是我们在学习时本应注意到的知识点,但是真拿出来考很多都是熟悉的陌生人,但!也确实反映出来在学习c语言的过程中一昧的追求更“高级”的知识是错误的。九层之台,起于累土,在本次考核中我吸取到了教训,今后定会夯实基础,不让问题留到“明天”再解决。同样,再以后的学习生活中也要“间隔复习”,让遗忘点降到最低,自省完毕。

1.在双向链表指针p的指针前插入一个指针q的结点,操作是___________.
在这里插入图片描述

2.转义字符的使用:

\a:响铃。
\b:退格,将当前位置移到前一列。
\\:代表一个反斜线字符。
\f:换页。
\t:Tab,默认向右缩进四位。
\v:垂直制表。
\n:换行(常用)

3.int main()
{
int arr[5]={1,2,3,4,5};
int ptr=(int)(&arr+1);
printf("%d %d",(a+1),(ptr-1));//运行结果:2 5
return 0;
}
解题思路:这里的*(a+1)相当于a[1],(&arr)取到的是整个数组的地址,而(&arr+1)则是让ptr指向数组地址的下一个地址,*(ptr-1)则是让指针向前指向一个,也就是数组中的最后一个元素。

4.int main()
{
int a[3][2] = { (0, 1 ), ( 2, 3 ), (4, 5 ) };
int *p;
p = a[0];
printf("%d\n", p[0]);
return 0;
}
解题思路:运用逗号表达式中,(0,1)相当于1,(2,3)是3,(4,5)是5。
1 3//第一行有两列,为p[0],p[1].
5//p[2]
所以p[0]里存的是1,p[1]中存的是3,p=a[1],则p[0]=5。

5.简述结构体和共用体的区别:
结构体用于存放不同数据类型的变量且各个成员会占用不同的内存互相之间没有影响;
共用体是不同数据类型的变量共享一个内存且修改一个成员会影响其余所有成员;
结构体占用的内存大于等于所有成员占用的内存的总和。
共用体占用的内存等于最长的成员占用的内存。

6.下述三个定义有什么区别?
char * const p;
char const * p;
const char *p;

char * const p:常量指针,p的值不可以修改.
char const * p:指向常量的指针,指向的常量值不可以改.
const char *p等同于char const 

在这里插入图片描述

解题思路:A选项为输入字符串,因为字符串在内存中已有地址,所以并不需要取地址符操作;
B,D选项为输入字符,需要取地址符;
C选项为输入整数,需要取地址符;

在这里插入图片描述

解题思路:%3d表示的是取出输入数据的前3位,%2d表示的是取出第四位与第五位,
如果输入的数没有达到要求的,则输出其之后的最大位数。
此时输入位数少于五位,则输出如上。

8.螺旋矩阵。
在这里插入图片描述
代码如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值