![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言例题
文章平均质量分 92
MrGaomq
一个正在学编程的小白,不定时分享学习笔记
展开
-
C语言指针基础题(三)
🐒🐒🐒🥸🥸🥸🐿️🐿️🐿️🐣🐓🏀以下是后面例题所涉及到的文章,如果有不会的可以点击了解。原创 2023-12-22 17:24:58 · 1887 阅读 · 37 评论 -
结构体基础例题
🐒🐒🐒🥸🥸🥸🐿️🐿️🐿️🐣🐓🏀以下是后面例题所涉及到的文章,如果有不会的可以点击查看。原创 2023-12-19 11:37:51 · 1753 阅读 · 52 评论 -
C语言指针基础题(二)
写一个函数打印arr数组的内容,不使用数组下标,使用指针。arr是一个整形一维数组这道题的核心就在于数组名是数组首元素地址,也就是*(arr+1)=arr[1]方法一方法二例题二写一个函数,可以逆序一个字符串的内容方法一这个方法其实就是找到字符串中左右字符的地址,通过解引用实现交换注意:如果是在线OJ时,必须要考虑循环输入,因为每个算法可能有多组测试用例进行验证,参考以下main函数写法方法二关于memset的实现在之前C语言内存函数有写过用C语言在屏幕上输出以下图案:这是一个对称图形,其中原创 2023-12-13 20:40:11 · 1638 阅读 · 39 评论 -
C语言指针基础题(一)
以下系统中,int类型占几个字节,指针占几个字节,操作系统可以使用的最大内存空间是多大:( )A.32位下:4,4,2^32 64位下:8,8,2^64B.32位下:4,4,不限制 64位下:4,8,不限制C.32位下:4,4,2^32 64位下:4,8,2^64D.32位下:4,4,2^32 64位下:4,4,2^6432位系统下:int占4个字节,指针表示地址空间个数,总共有2^32个,故占4个字节64位系统下:int占4个字节,指针表示地址空间个数,总共有2^64个,故占8个字节注原创 2023-12-10 17:54:45 · 1203 阅读 · 33 评论 -
C语言算术转换例题
事实上也确实是如此,原创 2023-11-24 11:28:27 · 1832 阅读 · 74 评论 -
C语言操作符例题
下面代码的结果是:( )A.a = 8 b = 23 c = 8B.a = 9 b = 23 c = 8C.a = 9 b = 25 c = 8D.a = 9 b = 24 c = 8答案 Bc=++a是先执行++a,也就是a=a+1=6(注意这里是永久改变a的值),然后再执行c=a=6b=++c,c++,++a,a++这里要注意对于b我们是只算b=++c,所以先执行c=c+1=7b=c=7,然后再执行后面的c++,++a,a++(后面还是会执行的,只不过和b就没关系了),最终c=8.a=8b原创 2023-11-22 22:44:47 · 998 阅读 · 63 评论 -
C语言数组和指针笔试题(五)(一定要看)
解析a[5]是一个整形类型的数组,&a是取的整个数组的地址,因此&a+1就是跳过整个数组,(int*)是强制类型转换,是将&a+1强制转换成int类型的指针(&a+1也可以写成int(*)[5])*(a+1)中的a是数组首元素的地址,a+1=&a[1],解引用结果就是a[1]=2ptr-1这里就要好好说一下了,我们用一个图来表示如图因为&a+1是跳过整个数组,因此ptr的地址在a[4]之后,与a[4]相差4个字节,而ptr-1是跳过1个元素,也就是往前跳过4个字节,因此ptr-1的地址其实就是&a[4原创 2023-10-03 16:44:41 · 289 阅读 · 50 评论 -
C语言数组和指针笔试题(三)(一定要看)
例题1这里的arr是代表的整个字符串,由于字符串中的字符分别是’a’ ‘b’ ‘c’ ‘d’ ‘e’ ‘f’ ‘\0’,而strlen计算几个是除掉\0,因此结果为6arr+0=&arr[0],&arr[0]是第一个字符a的地址,因此strlen会从第一个字符a开始寻找\0,所以结果是6,因为数组的储存地址是连续的,所以先取寻找数组中的\0在哪,如果数组中没有\0,就会越界查找,知道找到\0*arr是对arr首元素地址进行解引用是字符a,并没有\0,所以会报错这里其实和例题3是一样的,arr[1]原创 2023-09-23 20:39:51 · 798 阅读 · 59 评论 -
C语言数组和指针笔试题(四)(一定要看)
在做之前我们再来复习一下数组名的意义这里的a是整个数组的地址,所以sizeof会计算整个数组的内存大小,因此结果就是(3*4)(数组的元素)*4(整形类型的大小)=48这里的a[0][0]是指的数组首元素,因为是特别指定的一个元素,所以只需要计算整个元素的内存大小即可,因此a[0][0]是一个整形类型的元素,结果就是4a[0]是表示的第一行的数组元素,为了方便理解,我们暂时将数组中的元素改变一下,调试结果如图显然这里的a[0]是指的数组第一行,而不是第一列,第一行元素有4个,因此结果应该是4(第一原创 2023-09-24 13:07:14 · 884 阅读 · 57 评论 -
C语言数组和指针笔试题(二)(一定要看)
对于strlen而言必须要遇到\0才能停止,所以如果我们找不到\0(arr[]={‘a’,‘b’},strlen(arr[0]))像这样的就是找不到,因为已经确定strlen括号里是一个数组的元素,因为是字符a,并不是\0,所以会找不到但是如果strlen括号里的是一个地址,strlen会往这个地址后面找,直到找到\0为止。原创 2023-09-13 21:20:43 · 508 阅读 · 25 评论 -
C语言数组和指针笔试题(一)(一定要看)
arr+0在之前说过,这里的arr不是整个数组的地址,是首元素的地址,因此arr+0=arr[0],既然是地址那么结果就是4或者8。这里的**&a是整个数组的地址**,* 对整个数组解引用,因此sizeof( *&a)就是计算的整个数组的大小,所以结果就是16。arr[0]+1跳过一个元素,所以就是arr[1],但是还是地址,所以仍然是4或者8。因此**&a是整个数组的地址,既然是地址那么结果还是4或者8个字节**,虽然二者地址是一样的,但是本质是有区别的,因此。这里求的是第二个字符b,所以结果是1。原创 2023-09-13 13:03:44 · 492 阅读 · 31 评论 -
C语言好题解析(四)
在prt循环后i=8,跳出prt后,主函数循环中i=8是满足i原创 2023-08-22 17:28:41 · 586 阅读 · 51 评论 -
C语言例题讲解(if语句,循环语句,函数)
遇到加减法交替出现的时候我们可以判断奇偶数来确定符号(如果用头文件的话可以用次方来表示这种规律)如果算式中的通项存在一个数字是变量,并且是以等差的方式增加的话我们可以用循环来表示变量,即i+d(d为公差)要注意每次计算时会不会丢失数据就比如上面代码中的1/i,会丢失小数点后的数据二分查找用在查找大型数据中效果非常显著,但前提是要有从大到小或者从小到大的规律排序才行计算数组的大小是我们日常写代码时经常用到的一种方式,因此需要熟练运用。原创 2023-08-15 15:25:13 · 429 阅读 · 19 评论 -
C语言好题解析(三)
(3)const修饰的是a,也就说明a所代表的数值无法改变,但a的地址是可以改变。,因此经过前面的分析,strlen(s)=1+6+1+3+1=12。【分析】我们需要了解const的含义,只要了解了含义就可以做这道题。const是修饰他后面的变量使它的地址或者数值无法改变。对后面的\123456\t来说,\123表示一个字符(a所表示的地址无法改变,但是a的值是可以改变的。(2)中const修饰的仍是*a(和int无关)),而456则表示3个字符,\t表示一个字符。【分析】这道题是递归类型的题 ,原创 2023-08-19 14:56:12 · 1564 阅读 · 25 评论 -
C语言好题解析(二)
【代码】原创 2023-08-17 13:48:26 · 1102 阅读 · 43 评论 -
C语言好题解析(一)
1:由于每个月的天数都不一定相同,如果我们不用数组的话是非常难搞定这问题的(我去试了),因此我们需要定义一个数组,以每个月的天数为元素,按顺序输入进数组,又因为闰年的二月和非闰年的二月天数不同,因此我们要定义两个数组分别代表闰年和非闰年。【分析】 首先我们可以看到x和y有两个不同的值,为x=5和3,y=7和8,其中x=5和y=7的范围比x=3和y=8的范围更大(即作用域更大),而。【分析】\8表示8进制的8,而8进制的数字表示为0~7,因此\8表示错误。我们可以看出结果并没有变,所以&可加可不加。原创 2023-08-16 13:39:49 · 1781 阅读 · 25 评论