牛客网习题总结 一
解题思路:
转移字符分三种,一般转义字符,八进制转移字符和十六进制转移字符
一般转义字符,如‘\b’,由两个字符表示,其实代表一个字符,这个代表退格字符
八进制转义字符,如‘\007’,三位数字是八进制的,ASCII码为7的表示响铃
十六进制,如'\xfe',同样后面数字是所表示意思的Ascii码的十六进制表示,注意一定要有x,大小写都行
解题思路
对于本题,不用纠结于起始位置到底在哪里,题目已经告诉我们了A[1][1]的地址,只需要求题目要求的元素与A[1][1]之间有多少个元素就阔以了。 A[5][5]与A[1][1]之间有4*12+4=52个元素,而A[1][1]地址为420,那么A[5][5]的地址就为420+52=472
解题思路:
在一个长度为n的顺序表中删除第i个元素时,i的后面还有n-i个元素,删除i之后将i后面的所有元素都要向前移动一个位置
1 2 3 4 5 6 7 8 将5移除 后面 8-3位数字向前移动
解题思路:
A是a[i][j]的地址
D是A再取*则是a[i][j]的值
C正确,a[i]为第i行第0个元素的值,加j后为a[i][j]地址,再取*就是a[i][j]
B正确,a[0][0]取地址是数组第一个元素的地址,加上10*i为第i行第0个元素的地址,在加j是a[i][j]地址,再取*是a[i][j]的值
解题思路:
a[i][j] 位于第 i+1 行, 所以用 i*n 来计算第 i+1 行上面元素的个数,然后再加 j 个列元素。 最后拿整个元素的个数乘以每个元素的大小, 再加初始地址,就是 a[i][j] 的地址。
解题思路:
2、3、5的最小公倍数是30。[ 1, 30]内符合条件的数有22个。如果能看出[ 31, 60]内也有22个符合条件的数,那问题就容易解决了。也就是说,这些数具有周期性,且周期为30.
第1500个数是:1500/22=68 1500%68=4。也就是说:第1500个数相当于经过了68个周期,然后再取下一个周期内的第4个数。一个周期内的前4个数:2,3,4,5。
故,结果为68*30=2040+5=2045
解题思路:
一 . cin>>
该操作符是根据后面变量的类型读取数据。
输入结束条件 :遇到Enter、Space、Tab键。
对结束符的处理 :丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab)
遇到空格便会结束
解题思路:
注意题目意思,是用于执行,而不是这种数据结构本身需要递归。递归的展开和回归就是栈的特点,即先进后处,最里层的递归后返回。
解题思路:
注意 是对数组中元素的引用 a为数组名 也代表数组首元素的地址值 *p=a则p也指向数组a的第一个元素地址,则*(p+2)指向数组a中第三个元素