自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 实例016 百元买百鸡问题

中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡”问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

2025-11-02 23:42:57 186

原创 实例015 婚礼上的谎言

3对情侣参加集体婚礼,3个新郎为A,B,C,三个新娘为X,Y,Z。有人想知道到底是谁和谁结婚,于是就问新人中的三位。得到如下的结果:A说他想和X结婚,X说她的新郎是C,C说他将和Z结婚。这人时候知道他们都在开玩笑,说的全部是假话。那么,究竟谁和谁结婚呢?

2025-10-30 08:39:53 172

原创 实列014 计算某日是该年的第几天

1.题目编写一个计算天数的程序,用户从键盘输入年/月/日,在屏幕中输出此日期是该年的第几天?2.程序代码3.技术要点(1)闰年判断:能将四年一闰,百年一闰,四百年再闰这句话翻译成计算机语言。(2)分别使用数组来存储平年和闰年每月的天数。

2025-10-29 21:41:27 144

原创 实例013 任意次方后的最后三位

1.题目:编程求一个整数任意次方后的最后三位数,即求x^y的最后三位数,x和y的值由键盘输入。(1)考虑计算结果是否越界,采用每次计算都求余的方法。(2)分情况考虑输入,低于三位数要补0输出。

2025-10-28 23:39:42 109

原创 鹏哥C语言_93_指针作业讲解

这道题涉及大小端的问题,其在内存中的存储为44332211,修改为00332211,读取出来为11223300.2.以下系统中,int类型占几个字节,指针占几个字节,操作系统可以使用的最大内存空间是多大:( )A.32位下,4,4,2^32;64位下,8,8,2^64。C.32位下,4,4,2^32;64位下,4,8,2^64。D.32位下,4,4,2^32;64位下,4,4,2^64。B.32位下,4,4,不限制;64位下,4,8,不限制。1.关于指针的概念,错误的是: ( )

2025-08-04 15:56:55 243

原创 鹏哥C语言_86_作业讲解

是位与, &&是逻辑运算符逻辑与, ||是逻辑运算符逻辑或,!位操作符为位非~,位与 &,位或 |,位异或 ^。多组输入,一个整数2-20,表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。获取一个整数的二进制序列中的所有的偶数位和奇数位,分别打印出其二进制序列。输出描述:针对每组输入,输出为一行,一个整数,表示这一年的这个月有多少天。输入描述:多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。C.相邻操作符的优先级相同的情况下,看操作符的结合性决定计算顺序。b=7+8+8=23;

2025-07-30 17:56:04 445

原创 鹏哥C语言_85_结构体下(结构体传参)

传递整个结构体给函数参数,函数就能使用这个结构体里的成员变量,但是函数需要创建一个与该结构体内存相等的参数会很复杂,函数传参的时候是需要压栈的,有时间和空间上的系统开销,会导致程序的性能下降。传递结构体指针是将结构体的地址传给函数,该指针指向的是结构体的起始地址,函数就可以根据地址访问到结构体的每个变量,此时函数对结构体的操作原来的结构体。传递结构体本身是将结构体整体传给函数,会复制一份原来的结构体作为形参工函数石红,但函数内的操作不会影响到原来的结构体。,这样就好理解多了。从这里看出,知识是有迁移的。

2025-07-30 12:00:35 260

原创 鹏哥C语言_83_结构体上

结构是一种集合,而数组是一组相同类型元素的集合;数组要求元素类型相同,而结构体就是为了描述复杂对象而使用不同数据类型而产生的。结构体是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。人:名字+电话+性别+身高。书:书名+作者+定价+书号。

2025-07-30 11:39:12 182

原创 鹏哥C语言_82_指针_指针数组

存放指针的数组就是指针数组。

2025-07-30 08:47:26 171

原创 鹏哥C语言_81_指针和数组

标准规定:允许指向数组元素的指针与指向数组元素最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一元素之前的那个内存位置的指针进行比较。也就是说这两个指针指向的是两个空间,而不是同一块空间。下面采用指针-指针的方法,编制一个类似获取字符串长度的strlen函数,my_strlen()。指针-指针得到是指针之间元素的个数。不是所有的指针都可以相减,指向同一块空间的指针才能相减。p+i就是地址,对应&arr[i],p+1,就是跨过一个数组元素对应的字长。指针变量:是一个变量,存放的地址。

2025-07-30 07:27:46 208

原创 鹏哥C语言_79_指针_野指针、指针运算

p没有初始化,就意味着没有明确的指向。一个局部变量不初始化的话,存放的就是随机值。这就是非法访问内存,这里的p就是野指针。概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)。下面例子将演示函数调用时的局部变量带来的野指针问题。c)局部变量的销毁或者空间释放会造成野指针。下面这个例子就展示了指针的越界访问。b)指针的越界访问会造成野指针。1)指针 +- 整数。

2025-07-29 11:35:41 239

原创 鹏哥C语言_77_指针和指针类型

对于32位的机器,假设有32根地址线,那么建设每根地址线在寻址的时候产生高低电平(0或1),那么32根地址线产生的地址就会是:00000000 00000000 00000000 00000000 ~11111111 11111111 11111111 11111111,这里有2的32次方个地址。这相当于门牌号码上的位数是一样的,但是进入到该房屋后,它的面积可能是不同的。在32位机器上,地址是32个0或者1组成的二进制序列,那地址就得用4个字节来存储,一个指针变量的大小就应该是4个字节。

2025-07-28 21:45:09 328

原创 鹏哥C语言_76_操作符_作业讲解

变种水仙花数-Lily number:把任意的数字,从中间拆分成两个数字,比如1461可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number.KK参加了语文、数学、外语考试,请帮他判断三科中的最高分,从键盘任意输入三个整数表示的分数,编程判断其中的最高分。输出:针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。输出描述:针对每组输入,输出单独占一行,输出字母的对应形式。输出描述:输出为一行,即三个分数中的最高分。

2025-07-28 20:43:29 268

原创 鹏哥C语言_74_操作符_作业讲解

分析:到达最后一个台阶n的方法有两种:一是迈出一个台阶fib(n-1),二是迈出两个台阶fib(n-2),即到达n阶台阶fib(n)=fib(n-1)+fib(n-2)中方法。描述:有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。输入描述:两行,第一行为n,表示n个成绩,不会大于10000。描述:输入n个成绩,换行输出n个成绩中最高分和最低分数的差。第二行输入N个整数,输入用空格分隔的N个整数。输出:1 2 3 5 9。

2025-07-28 15:37:00 184

原创 鹏哥C语言_72_表达式求值

表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度。如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类型,否则操作就无法进行。如果两者的优先级相同,取决于他们的结合性。如果某个操作数的类型在上面的这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。总结:我们写出的表达式如果不能通过操作符的属性确定唯一的计算路径,那这个表达式就是存在问题的。整型提升是按照变量的数据类型的符号位来提升的。

2025-07-26 17:55:15 421

原创 鹏哥C语言_71_操作符2

两个条件,只要满足其中一个就可以判定为闰年。那么条件1)和条件2)的逻辑关系是逻辑或(||)的关系。在条件1)的内有两个小条件a)能不4整除,b)不能被100整除,a)和b)的逻辑关系是逻辑与(&&)。||左边为真,右边就不计算了。整个表达式的结果是最后一个表达式的结果。()就是函数调用的操作符,其操作数为函数名Add,函数参数a,b。当表达式1为真时,整个表达式的值为exp2,否则,为exp3。1)能被4整除,但不能被100整除的年份;逗号表达式,就是用逗号隔开的多个表达式。2)能被400整除的年份。

2025-07-24 16:43:36 269

原创 鹏哥C语言_70_操作符

下面的例子将展示如何修改a中的某一位,并再次将其修改回来。int *是一种指针类型, *p=28;下面是3的例子,我们看看内存中~a的数值是多少?并不是所有对象,都可以用关系操作符。++和--的前置与后置。

2025-07-23 23:19:54 197

原创 鹏哥C语言_68_位操作符

当a,b,同为比较大的数的时候,a+b的运算可能会造成溢出。这种算法有一定的风险的。请不要把这些位运算符与逻辑运算符(&&、||、!编写代码实现:求一个整数存储在内存中的二进制中1的个数。2)不使用中间变量,实现两个数的交换(使用加减法运算)3)不使用中间变量,实现两个数的交换(使用异或运算)1)使用中间变量来暂时存储一个数,然后再进行交换。(1)一个数与自身的按位异或为0;(2)一个数与0的按位异或为自身,如3^0=3。编写函数,实现两个数的交换。(3)异或服从交换律。

2025-06-20 21:57:27 236

原创 鹏哥C语言_64_作业讲解_数组

A选项中是不完全初始化,数值型数组的不完全初始化会将其他的初始化为该数值类型的0,字符型数值不完全初始化会将其他的初始化为‘\0’。而strlen()是一个库函数,是专门求字符串长度的函数,从参数给定的地址向后一直找\0,统计\0之前出现的字符的个数。定义了一维int型数组a[10],则数组a[]的下标为0~9,a[10]是越界访问。9.编程题:将数组A中的内容和数组B中的内容进行交换。2.定义了一维int型数组a[10]后,下面错误的引用是:( )C.数组acX的长度大于数组acY的长度。

2025-06-17 23:31:04 898

原创 鹏哥C语言_62_作业讲解_递归

解析:当一个函数调用自己时,如果编程中,没有设定可以终止递归的条件检测,它会无限制地进行递归调用,所以需要谨慎处理。每次调用都会在栈区创建变量,如果递归的层次太深,会造成栈的溢出。编写一个函数reverse_string(char *string)(递归实现),其功能是将参数字符串中的字符反向排列,不是逆序打印,要求不能使用C函数库中的字符串操作函数。(1)使用临时变量交换对应位置的字符,这里使用的是sizeof操作符。4.用递归和非递归分别实现求n的阶乘(不考虑溢出的问题)

2025-06-12 22:53:59 323

原创 鹏哥C语言_59_三子棋

使用game()函数,替代printf(“三子棋\n”);game函数中先写出InitBoard初始化棋盘函数和Display显示键盘函数。通过这个三子棋的程序,我感觉到程序是一棵小树,是一点一点根据需求长出来,长出树干,树干上长出树枝,树枝上长出树叶。规划好三子棋游戏的整体结构,这样的程序写起来和看起来才能结构清晰,便于使用函数的方式来组织程序代码。测试完上面的程序,接着要做的事情是下棋、显示棋盘和判断输赢。

2025-06-07 17:16:37 123

原创 鹏哥C语言_57_数组_数组名

由于计算机的硬件指令很大程度上要依赖于地址,所有指针使得程序员能够以类似于计算机底层的表达方式来表达自己的意愿。使用指针能够高高效地工作,特别是指针能够很有效地处理数组。1.sizeof(数组名):这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。运算符sizeof给出其后的对象或类型的大小(以字节为单位)。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。通过这个示例,我更加深刻地理解了C语言中的数组与数组名。数组名同时也是该数组首元素的地址。

2025-06-06 11:12:58 245

原创 鹏哥C语言_55_数组_冒泡排序

分析错误原因:出现在sz的计算上。数组名的本质上是首元素的地址。这里使用的自定义函数bubble_sort(arr),看似传递了数组,但其实传递的是数组首元素的地址。这里应该使用指针的。也可以换一种思路,增加bubble_sort函数的自变量,bubble_sort(int arr[],int sz)。结合一个简单的示例,来理解冒泡排序算法。得到的结果却是错误的。

2025-06-06 09:24:37 171

原创 鹏哥C语言_51_函数作业讲解_打印乘法口诀表

我们先来仔细观察一下九九乘法口诀表,分析并发现一些规律,这将对编程非常有帮助。我们发现有不太整齐的地方,这需要去调整一下打印的格式。

2025-06-05 22:24:11 212

原创 鹏哥C语言_51_函数作业讲解_求最大值

下面的程序,需要输入10个整数,然后再求最大值。题目内容:求10个整数中最大值。下面的程序先准备好了10个整数。​​​​​​题目名称:求最大值。

2025-06-05 21:40:06 133

原创 鹏哥C语言_49_函数作业讲解_求最大公约数

注意的是,这里并不需要确定a,b两个数哪个比较大。假设a=15,b=25;因为15÷25=0......15,这样辗转一次后,a=25,b=15。变量m的改变是m--,这样的求解方式属于暴力求解,效率不高。我们可以使用辗转相除法以提高效率。

2025-06-03 23:35:27 152

原创 鹏哥C语言_46_函数递归_求字符串的长度

编写的自定义函数要求不使用临时变量,这样我们该如何处理呢?可以使用递归的方法。自己写一个函数,实现求字符串的长度的功能。

2025-06-02 17:11:35 218

原创 鹏哥C语言_46_函数递归_逆序输出一个多位数

思考了一下,问题是出在了递归函数的编写上。递归函数在返回的时候,首先打印了1,然后是2,3,4。所以这里我们要修改递归,让其首先打印4。给出一个多位数如1234,希望能用递归的方法输出:4 3 2 1。注意这里使用了else语句来打印最高位数字。

2025-06-02 16:45:53 203

原创 鹏哥C语言_41_函数_二分法查找

将先前的二分法查找做成函数的形式,这样可以在其他的程序中方便地使用它。确定二分法查找函数的函数名及参数,binary_search(),参数为有序数组arr[],要查找的数字k,数组的元素个数sz。

2025-05-29 23:44:58 206

原创 鹏哥C语言_41_函数_练习2

编写函数的一个原则是:高内聚、低耦合。写的时候,我才渐渐理解了这个原则。函数功能尽量做到单一化。我们将判断某年是不是闰年的代码编写为一个函数,这样方便我们使用。1.能被4整除,并且不能被100整除的是闰年。2.打印1000~2000年之间的闰年。2.能被400整除的是闰年。

2025-05-29 23:03:56 128

原创 鹏哥C语言_40_函数_练习1

我们写一段程序,能检出100~200内的素数及其数量。按照一般的素数理论,可使用变量i存储被除数,i从100到200;当发现i能被j整除后,该数则不为素数,就使用break跳出内层循环。函数是用于完成特定任务的程序代码的自包含单元。第一,省去重复代码的编写。第二,函数使得程序更加模块化,从而有利于程序的约定、修改和完善。我们注意到,除数j的范围可以在2~sqrt(i)之间,同时被除数从101开始,每次增加2,这样可以减少更多的运算。我们把判断一个数是否为素数写成一个函数,函数名为is_prime()。

2025-05-29 22:17:18 479

原创 鹏哥C语言_40_函数_传值与传址

这上面的代码中,调用了get_max(x,y)这个函数。我们要理解形式参数formal parameter和实际参数actual parameter的概念,明白参数是如何传递的。从分析可以看出,形参x,y的值在调用过程中是发生了变化,但实参a,b并没有发生变化。下面的例子是改变调用函数中的变量,我们尝试交换变量a,b的值,看看下面的两种方法哪种能做到?从这两个函数调用过程的对比中,我们能理解传值和传址的区别,同时也对指针有了初步的了解。令人惊讶的是数值并没有发生交换,这是什么原因呢?

2025-05-26 22:57:21 182

原创 鹏哥C语言_39_分支和循环语句_猜数字游戏

先测试一下显示菜单是否可实现,程序员通常写一部分代码然后测试一下。这里写显示菜单就是在搭建程序的框架,在纸上画出程序的流程。inpiut是一个非常重要的变量,在多分支switch,和do...while()中都使用到了它。接下来,要把case 1:中的printf("猜数字\n");替换为game();通过这两天的学习,我认识到代码还是要勤加练习,要高屋建瓴地建立架构。

2025-05-24 23:04:10 184

原创 鹏哥C语言_37_分支和循环语句_作业

这段代码中,我认识了strlen(),Sleep(),system("cls")等具有重要函数,也熟悉了它们的头文件,感叹C语言的确很厉害,可以做很多事情。我一定要认真学好C语言。if,while,for看似很简单,但是也可以慢慢写出稍微复杂点的语句。经过学习和练习,可以写出更加复杂的语句,完成一定的项目。5.编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次输入错误则退出登录)4.编写代码,演示多个字符从两端移动,向中间汇聚。

2025-05-23 23:06:31 146

原创 鹏哥C语言_36_分支和循环语句_作业_1

鹏哥C语言_36_分支和循环语句_作业_1主要是有关循环,分支等相关的作业。

2025-05-21 23:29:59 195

原创 鹏哥C语言_31_分支和循环语句_作业

B站鹏哥C语言的作业【31】,主要用到输入输出函数printf()和scanf(),数组,循环,选择等简单的知识。

2025-05-20 18:50:20 531 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除