C语言练习
zhangcod
KEEP CODING!
展开
-
E37.【C语言】动态内存管理练习题
GetMemory函数的p返回后,函数退出,栈空间(本题的hello world)会被销毁,交还操作系统,由操作系统来处理。没有作用,str指向的hello world已经不存在,相当于str为。分别是x86+debug和x64+debug下的运行结果。free后没有为str置为NULL(注:free函数。free函数执行完后,被VS写入dd字符数组。虽然能成功打印,但是有两处不规范的地方。为str置为NULL),导致str为。求下列代码的执行结果。求下列代码的执行结果。求下列代码的执行结果。原创 2024-10-07 10:57:51 · 439 阅读 · 0 评论 -
E36.C语言模拟试卷1第一大题选题解析与提示(未完)
备注:ZIP文件中的参考答案仅仅提供最终结果。原创 2024-10-01 20:39:51 · 1059 阅读 · 0 评论 -
E35.【C语言】判断大/小端序
写一个程序实现大/小端序的判断。原创 2024-09-30 17:34:28 · 427 阅读 · 0 评论 -
E34.【C语言】位段练习题
分析下列代码中位段在内存中的排布(已知测试平台为VS2022)有关位段的知识点见文。原创 2024-09-29 20:54:34 · 383 阅读 · 0 评论 -
E32.【C语言 】练习:蓝桥杯题 懒羊羊字符串
现在,给定几个字符串 s1,s2,...,sn,每个字符串均由三个大写字母组成。请你统计其中有多少个字符串符合“懒羊羊”字符串的定义。第一行输入一个整数 n (1 < n ≤ 200),表示字符串的数量。接下来的 n 行,每行输入一个由三个大写字母组成的字符串,换句话说,“懒羊羊”字符串的形式应为 ABB,其中A和B是不同的字母。符合“懒羊羊”字符串定义的字符串只有 “STT”,因此答案为 1。输出一个整数,表示符合“懒羊羊”字符串定义的字符串总数。存储字符串就是将一个个的字符存储到一个个元素中。原创 2024-09-10 14:49:32 · 886 阅读 · 0 评论 -
E31.【C语言】练习:指针运算习题集(上)
指针运算习题集 Exercise 1~Exercise 5原创 2024-09-04 12:30:16 · 1153 阅读 · 0 评论 -
E30.【C语言】练习:sizeof和strlen的习题集(B)
arr[0]是取首元素的地址,+1第二个元素的地址,因此。p是一个指针变量,也就是求指针变量的存储空间,结果为4/8。&arr是取整个数组的地址,+1跳过整个数组,但仍然是。,结果为7(一个字符占一个字节)arr+0代表首元素的地址,因此。&arr是取整个数组的地址,因此。,又因为char类型,结果为1。arr[1]是第二个元素,因此。,又因为char类型,结果为1。4/8含义:4或8个字节。*arr是首元素,因此。x86环境:4个字节。x64环境:8个字节。原创 2024-08-29 10:56:40 · 474 阅读 · 0 评论 -
E29.【C语言】练习:sizeof和strlen的习题集(A)
细节部分:由strlen的声明和定义知,strlen接收的是const char* str,而arr代表char(*)[6],因此会发生强制类型转换。a+0代表数组的首元素地址+1,+1跳过4个字节,为第2个元素的地址,因此。注意这里的sizeof(a+0);a是数组名,是数组首元素的地址,*a解引用为数组首元素,因此。&a为取a的地址(整个数组的地址),地址+1还是地址,因此。&arr是数组的地址,也是数组开始位置的编号,strlen。arr是首元素的地址,+0还是首元素的地址,strlen。原创 2024-08-29 09:51:51 · 932 阅读 · 0 评论 -
E28.【C语言】练习:字符左旋
实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDA。ABCD左旋两个字符得到CDAB。原创 2024-08-08 17:37:57 · 318 阅读 · 0 评论 -
E27.【C语言】练习:在一个整型数组中,只有一个数字出现一次,其他数组都是成对出现的,请找出那个只出现一次的数字
数组中有:1 2 3 4 5 1 2 3 4,只有5出现一次,其他数字都出现2次,找出5。结合律 ,让相同的数字一起异或(借助循环),最后恒等律:a XOR 0 == a。即:n n-->是相同的;n a-->是不同的(n!发现题中:“成对”,“只出现一次”归零定律:a XOR a == 0。输入 : 9 //数组中元素个数。要让计算机理解“成对”这个概念。但数组是一排数,可以考虑使用。原创 2024-08-06 10:43:20 · 409 阅读 · 0 评论 -
E26.【C语言】练习:打印整数二进制的奇数位和偶数位
获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列。要会打印奇或偶序列,先学会打印二进制序列。下面我的这篇文章的代码稍作修改即可。注意设置循环时数组不能越界。原创 2024-08-04 14:50:43 · 427 阅读 · 0 评论 -
E25.【C语言】练习:修改二进制序列的指定位
1 AND 0==0(从1变0)1 AND 1==1(不变)0 AND 1==0(不变)0 OR 1==1(从0变1),1 OR 0==1(不变),0 OR 0==0(不变)x==0或1,x XOR 1-->NOT x和1 XOR x--> NOT x。x=0或1,x AND 0-->0,0 AND x-->0。x=0或1,x OR 1-->1,1 OR x-->1。最简单的方法是让1左移4位(补0)异或(XOR)(C语言:^)非(NOT)(C语言:~)与(AND)(C语言:&)或(OR)(C语言:|)原创 2024-08-03 10:59:22 · 336 阅读 · 0 评论 -
E24.【C语言】练习:求一个整数存储在内存中的二进制中1的个数(两种方法)
输入n(int型),检查n的最右位,再将n>>=1;=0)直接写成while (n)但对于负数来说,本代码有缺陷:负数在内存中以。需要使用操作符对二进制位一个一个取出-->对于正整数:原码==反码==补码。原创 2024-07-31 16:21:24 · 359 阅读 · 0 评论 -
E23.【C语言】练习:不创建第三个变量实现两个整数的交换
1 XOR 1== 0 (1+1==10不进位,是0)*(下面会用到)结合定律:a XOR b XOR c == a XOR (b XOR c) == (a XOR b) XOR c。*(下面会用到)自反定律:a XOR b XOR a == b。交换定律:a XOR b == b XOR a。解释:a=a XOR b;异或运算==半加运算==不进位运算。归零定律:a XOR a == 0。恒等定律:a XOR 0 == a。原创 2024-07-31 10:41:24 · 452 阅读 · 0 评论 -
E22.【C语言】练习:“详解函数递归”文中青蛙跳台阶的答案
【代码】E22.【C语言】练习:“详解函数递归”文中青蛙跳台阶的答案。原创 2024-07-28 09:45:02 · 239 阅读 · 0 评论 -
E21.【C语言】练习:“详解函数递归”文中的趣味练习的答案
思路+代码原创 2024-07-27 18:58:45 · 335 阅读 · 1 评论 -
E20.【C语言】练习:函数
函数中创建的数组,只能在函数内部使用,函数中返回数组,其实是将数组的地址返回给主调函数,等函数返回后,数组空间还给操作系统了,主调函数得到的地址就是野指针了。(v1, v2)属于第一个实参,逗号表达式,真实的参数时v2;(v3,v4)属于第二个实参,逗号表达式,真实的参数是v4。函数中需要提前结束,但是函数的返回类型是void,不需要返回任何值的时候,就使用return;5.函数调用exec((vl,v2),(v3,v4),v5,v6);函数的实参可能是变量,也可能是常量,也可能是宏,也可能是指针等等。原创 2024-07-26 11:13:00 · 392 阅读 · 0 评论 -
E19.【C语言】练习:数组
第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素。数据范围: 1≤n,m≤1000 , 序列中的值满足 0≤val≤30000。输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。输出:1 2 3 7 8 9 10 17 22 33 44。第二行包含n个整数,用空格分隔。第三行包含m个整数,用空格分隔。原创 2024-07-26 10:55:46 · 322 阅读 · 0 评论 -
E18.【C语言】练习:逗号表达式选择题
分析:(3,4)为逗号表达式,取后者,因此{1,2,(3,4),5}等价为{1,2,4,5},sizeof(arr)求的是整个数组所占空间的大小,即:4*sizeof(int)=4*4=16 选B。下面代码的结果是:( )原创 2024-07-22 23:10:19 · 157 阅读 · 0 评论 -
E17.【C语言】练习:sizeof和strlen的辨析
B,D.acY[]长度未知,'g'后\0的出现是随机的,因此strlen (acX)>或=strlen (acY),B,D不选。分析:A.数组等价的定义:类型一样,表达式相同,显然:字符串以\0结束,而单个字符没有,需要程序向后读取 A不选。sizeof(acX) = 8,sizeof(acY) = 7 选C。C.sizeof这里求的是数组大小,B.数组acX和数组acY的长度相同。A.数组acX和数组acY等价。以下说法正确的是( )原创 2024-07-22 22:48:40 · 315 阅读 · 0 评论 -
E16.【C语言】练习:输入一个正的整数,逆序打印这个整数的每一位
分析:123%10=3-->123/10=12(3被去除了)-->12%10=2-->12/10=1(2被去除了)-->1%10=1(取出最后一位)->1/10=0-->停止循环。输入一个正的整数,逆序打印这个整数的每一位。步骤:1.取出整数的每一位 2.倒序打印。原创 2024-07-20 16:10:44 · 343 阅读 · 0 评论 -
E15.【C语言】练习:逗号表达式和前置后置++
依次从左向右执行,++c:c==7,b==7 c++:b==7,c==8 ++a:a==7,b==7。先++,a是6,赋值给c,c是6 //执行后a==6,b==0,c==6。(基础知识见第15篇:http://t.csdnimg.cn/OWoCO)//执行后 a==8,b==7,c==8。原创 2024-07-20 13:21:29 · 139 阅读 · 0 评论 -
E14.【C语言】练习:有关短路运算
a++:先使用后++ ,a++(见第15篇http://t.csdnimg.cn/OWoCO)即结果是0,0是假,由&&运算法则,++b和d++不会执行。a++先使用后++,先使用a值为0,结果为假,由||的运算法则,继续执行判断,++b,先++,b为3。,后使用,为真,停止执行d++的判断。原创 2024-07-20 13:06:00 · 166 阅读 · 0 评论 -
E13.【C语言】练习:打印1~100内的素数(质数)
1.如果c=a*b;一定有a和b中一个小于等于。代码有进一步优化的地方,可以减少循环次数。2.所有的偶数(除了2)都不是质数。原创 2024-07-11 16:04:15 · 218 阅读 · 0 评论 -
E12.【C语言】练习:求两个数的最大公约数
两种方法求两个数的最大公约数原创 2024-07-11 08:58:27 · 285 阅读 · 0 评论 -
E11.【C语言】练习:将三个数从小到大排序
要使a,b数字交换,引入中间变量tmp。代码简化:创建并调用交换函数。注意:判断的顺序不能错。原创 2024-07-10 17:51:22 · 273 阅读 · 0 评论 -
E10.【C语言】练习:编写一个猜数字游戏
1.框架:循环结构:do while 先循环(游戏进入主界面)后判断(进行或退出)猜错了:程序会告知猜大了或猜小了,继续进行游戏,直到猜对。1.程序生成1-100间的随机数。3.游戏可以一直玩除非退出游戏。原创 2024-07-10 11:15:45 · 453 阅读 · 0 评论 -
E9.【C语言】练习:模拟用户登录界面,最多输入三次密码以及strcmp函数的讲解
2.调用strcmp函数要写#include 注意:1.字符串不能直接用==比较,要调用strcmp。2.密码验证(尝试次数不超过3次)1.输入密码,存储在数组里。原创 2024-07-08 23:01:19 · 301 阅读 · 0 评论 -
E8.【C语言】练习:演示多个字符从两端移动,向中间汇聚
按顺序输出:###########-->H#########d两个数组分别存储Hello World和 ###########,再使用循环,清屏函数,延时函数。原创 2024-07-08 22:14:52 · 278 阅读 · 0 评论 -
E7.【C语言】练习:在一个有序数组中查找具体的某个数字n(二分查找)
示例:输入1 2 3 4 5 6 7 8 9 10,要求查找7所处的位置。即从左向右依次查找(效率低)有序数组:排好顺序的数组。要想多次查找就要采用二分查找。原创 2024-07-08 16:20:26 · 220 阅读 · 0 评论 -
E6.【C语言】练习:计算1!+2!+……+n!
先分别计算每个数的阶乘(第E5篇)再相加。在第E5篇的基础上实现。原创 2024-07-07 16:07:52 · 83 阅读 · 0 评论 -
E5.【C语言】练习:计算n的阶乘
【代码】E5.计算n的阶乘。原创 2024-07-07 15:55:17 · 313 阅读 · 0 评论 -
E4.【C语言】练习:while和getchar的理解
if行判断是否为数字,打印数字,不打印非数字。原创 2024-07-06 13:13:32 · 164 阅读 · 0 评论 -
E3.【C语言】练习:整除问题
输入一个数,若可被5整除,输出YES,否则输出NO。原创 2024-07-03 09:27:24 · 125 阅读 · 0 评论 -
E2.【C语言】练习:static部分
b是static修饰的变量,延长了b的生命周期。c是auto类变量,自动产生,自动销毁。第五次循环 a=2 b=13 c=1。第一次循环 a=2 b=5 c=1。第二次循环 a=2 b=7 c=1。原创 2024-07-03 09:10:48 · 374 阅读 · 0 评论 -
E1.【C语言】练习:用函数求两个整数的较大值
写法 1:if语句 写法2:三目操作符 (见15.【C语言】初识操作符 下)有关创建函数见: 12.【C语言】创建函数。原创 2024-07-02 19:49:56 · 227 阅读 · 0 评论