编程题实例
编程题记录和讲解
_Zedd
先开始,再完善
展开
-
【C】关于动态内存的试题及解析
在学习了关于动态开辟内存的相关知识后,下面是一些涉及到动态开辟内存程序的试题及解析(试题部分来自《高质量的C/C++编程》、笔试题)。原创 2023-10-26 21:43:19 · 246 阅读 · 9 评论 -
【C】想练习C语言?通讯录的实现了解一下
改进:将删除功能中的查询联系人部分封装为函数,后续功能需要查询就可以字节调用这个函数,提高代码复用性。(注:这个函数不需要在头文件声明,因为该函数只需要在内部使用)对于排序功能,排序方式有很多种,比如按姓名排序,按年龄排序等等,可以跟据需求来设计,这里就不一一实现了。当通讯录需要存放100个人的信息时,我们可以以数组形式存放这些结构体。我们打印菜单,同时通过do..while()循环,完成功能的选择。写出主函数,我们需要在test()中完成我们的整个测试,好了,测试成功,我们继续添加功能。原创 2023-10-24 20:47:06 · 313 阅读 · 0 评论 -
程序题:指针和数组题解析3
数组中的大括号{...}表示数组中的每行,小括号(...)表示逗号表达式,小括号(x,y)从左到右计算取最右边的y。原创 2023-10-19 21:19:25 · 49 阅读 · 4 评论 -
程序题:指针和数组题解析2
指针强制转化为int型后加1,相当于地址数值字面加1,如:0x0012ff40--->0x0012ff41 ,加解引用*后为 0x0012ff41 所对应地址位置存储的数据,以十六进制形式打印一个整型(4个字节)打印字符串通常到\0结束,如从"ENTER"中的第四个字符E开始打印到结尾字符R结束。原创 2023-10-19 11:57:32 · 50 阅读 · 5 评论 -
程序题:指针和数组题解析
1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。p本身就是地址,&p是地址的地址,strlen(&p)读到\0结束,为随机值。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。//求字符串长度的,统计的是在字符串中\0之前的字符的个数。sizeof(a[0]+1)和sizeof(a+1)的理解。//strlen是库函数 strlen(地址)sizeof是在程序最开始的编译步骤中发挥作用的。数组名是数组首元素的地址。原创 2023-10-17 17:38:54 · 51 阅读 · 1 评论 -
程序题:多维数组地址问题
aa的类型是int (*)[2][5],加一操作会导致跳转一个int [2][5]的长度,直接跑到刚好越界的位置。减一以后回到最后一个位置1处。*(aa + 1)相当于aa[1],也就是第二行的首地址,自然是5的位置。减一以后由于多维数组空间的连续性,会回到上一行末尾的6处。下面程序的结果是:( )原创 2023-10-15 19:41:14 · 74 阅读 · 2 评论 -
编程题:字符串逆序输出
需要注意的是,在输入字符串的时候 scanf 函数是无法接收空字符串的,也就是说 scanf 函数只能接收第一个空格前的字符,所以我们要使用 gets 函数来接收带空格的字符串。如:输入“ I am a student ”,输出“ tneduts a ma I ”。可以使用对称反转的方式达到将字符串 str 逆序的效果。还有就是字符串初始化的空间要尽可能的大,防止数组越界。将一个字符串 str 的内容颠倒过来,并输出。保证字符串长度不超过100。原创 2023-10-12 09:20:11 · 382 阅读 · 0 评论 -
编程题:判断字符串旋转结果是否为另一字符串
题目内容:写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = AABCD和s2 = BCDAA,返回1给定s1 = abcd和s2 = ACBD,返回0。AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC(相当于左旋四个字符)原创 2023-10-11 20:23:43 · 75 阅读 · 0 评论 -
编程题:字符串左旋
是一个宏,用于在运行时进行条件测试。如果条件为真,则什么也不会发生,程序会继续执行。如果条件为假,则程序会显示一个错误消息并终止。这里的assert(str)由于检测str不为空指针。当k值过大时,在得出len值后,可以将 k 除以 len 的余数重新赋值给 k,减少重复运算。实现一个函数,可以左旋字符串中的k个字符。abcdef左旋一个字符得到bcdefa。abcdef左旋两个字符得到cdefab。原创 2023-10-11 18:25:44 · 43 阅读 · 0 评论 -
编程题:查找某个数在矩阵中是否存在(杨氏矩阵)
有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。当函数需要返回多个值时,我们可以将地址传进函数,出函数时通过地址再将值返回。要求:时间复杂度小于O(N);加工一下,将程序封装成函数。原创 2023-10-11 15:27:36 · 52 阅读 · 0 评论