- 博客(24)
- 收藏
- 关注
原创 3.25习题小记
如果没有,此时编译可以通过,但是运行时由于p中为随机值,对其再进行赋值可能破坏内存中某个重要的地址内容,导致程序运行出错。(6)cin是istream流类的对象,流类的>>运算符是提取输入数据的操作,当提取数据时,如果数据有多个空格,则只会提取第一个空格之前的数据,使用getline()函数可以一次提取所有数据。(5)int *p=new int [30],其中p是指向该数组首地址的指针,是一个常量,不能用delete删除。(1)new运算符创建对象数组时不能指定初始值,只能对单个对象进行初始化。
2024-03-25 21:18:55
175
原创 3.21重载函数
在调用函数时,编译器会根据函数调用的实参类型和个数来选择相应的函数进行调用。如果没有找到完全匹配的函数,则编译器会尝试进行隐式类型转换或者参数个数的匹配来寻找最合适的函数进行调用。如果仍然无法找到匹配的函数,则会出现编译错误。(4)使用无参构造函数创建对象(即使对象初始化,即给数据成员赋值)时,在最后应用语句“A a”,而不是用“A a()”,后者表示声命一个函数。需要注意的是,函数重载是在编译时进行决策的,而不是在运行时进行决策的。(3)只要满足参数不同,就可以在一个程序中对同名的函数进行定义。
2024-03-25 20:58:38
136
原创 11.30(做题的小知识点)
(1)main函数带有形参时,在运行相应.exe文件时,将命令行中的字符串赋给形参,也就是说传给形参的值只能从命令行中获得、(7)c语言中要求运算数必须是整型变量或者整型常量的运算符是:①求余运算符%②位运算符。(5)结构化程序设计所规定的三种基本控制结构是顺序,循环,选择。(6)计算机中运算器的作用:完成各种算术运算和逻辑运算。(4)注释部分既不会参加编译,也不会出现在目标程序中。(3)程序中的子模块通常用函数来实现。
2024-03-01 23:57:33
369
原创 2.27(指针变量的类型及含义)
void * p是一个指针变量,基类型为void(空类型),不指向具体的对象。int *p[4];int *[4] 定义指针数组p,它由4个指向整形数据的指针变量组组成。int (*)[4] p为指向包含4个元素的一维数组的指针变量。int (*p)();int (*)() p为指向函数的指针,该函数返回一个整型值。int ** p是一个指针变量,它指向一个指向整型数据的指针变量。int *() p为返回一个指针的函数,该指针指向整型数据。
2024-02-28 22:59:40
364
原创 12.23(做题的小知识点)
(5)若执行fopen函数时发生错误,则函数的返回值是0,fgetc和fputc失败时则返回结束标志EOF(即-1)(4)i++
2023-12-27 21:14:59
502
1
原创 12.13做题的小知识点(指针)
共用体类型的说明和变量的定义方式与结构体类型说明和变量的定义方式相类同。(int a[10]就是说a是一个整型数组,进而int *a[10]就是一个指针数组,因为int *就相当于是一个指针类型)int (*p)()为指针定义,意为定义一个指针p,指向某类型函数。(int (*p)就相当于是函数类型)int *p()为函数定义,意为定义一个返回值为int *的函数;int (*a)[10]为指针定义,意为定义一个,指向有10个int数据的数组的指针。1. int *p() 与int (*p)()
2023-12-21 18:07:01
470
1
原创 11.30(指针注意点)
③在scanf语句中&a[i]可以替换成p+i,因为在最开始已经说明p指向数组a的首元素的地址了,已经知道方向了,就可以按部就班的代替数组a中的元素了。②指针p可以进行加减,相当于数组a的[]中的i进行相应的变化,例子:p=a;,而a不能进行加减,因为a是数组的名字。④在printf语句中可以用*(p+i)代替a[i],原因跟上面的一样。:①其中指针还能写成数组的形式,例子:p[1]=*(p+1)=a[1];(1)指针与数组的转换。
2023-11-30 20:57:53
462
原创 11.25(不同进制之间的转化)
例子:10110(二进制数) →1*2^4+0*2^3+1*2^2+1*2^1+0*2^0=16+0+4+2+0=22(十进制数)例子:12af(十六进制数)→1*16^3+2*16^2+10*16^1+15*16^0=4096+512+160+15=4783。#十六进制是0 1 2 3 4 5 6 7 8 9 a(A) b(B) c(C) d(D) e(E) f(F)例子:202(八进制数)→2*8^2+0*8^1+2*8^0=128+0+2=130(十进制数)分为整数部分的转化和小数部分的转化。
2023-11-25 21:55:54
488
原创 11.23(做题中小知识点)
(1)若调用一个函数,此函数中没有return语句,如果没有声明为void类型,调用函数的时候还是可以得到int类型的返回值。(5)形参与实参都为普通变量时,两者属于不同函数,因此占用存储单元不同,而如果用数组做形参和实参时,他们共占用同一个存储单元。(4)数组名做函数参数,是地址传递,因此形参不需要考lu数组大小。如果主调函数对字符串进行操作,可以不说明数组大小。(2)c语言中允许函数值类型缺少定义,此时该函数值隐含的类型为int类型。(6)如果函数类型与返回值类型不一样,以函数类型为准。
2023-11-23 23:44:05
395
1
原创 11.19作业(小知识点)
(1)在main函数中用其他函数时函数的参数要使用在main函数中定义的变量(即实参),而在其他函数中用的变量则是形参。(3)continue只能用于循环语句,但是如果循环语句中有其他语句,则continue也可以用于其他语句。(2)bool类型需要用#include<stdbool.h>文件夹。
2023-11-19 23:51:12
67
原创 11.15(作业中的小知识点)
(3)一个函数中可以有一个以上的return函数,执行到哪一个rerturn函数,哪一个return函数就起作用。(2)对于不带回值的函数,应当用定义函数为“void”类型(或者空类型),此时在函数中禁止出现rerurn函数。printf("%d",age(n))//age的小括号内可以是任何小于等于n的数。(1)在函数的递归调用当中printf中可以直接用定义的函数进行输出。(4)函数类型决定返回值的类型。
2023-11-15 20:50:17
35
原创 11.8(筛选法求素数)
100以内的素数有: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97。的条件,其实就是为了减少计算机的运算。① 为什么那个循环的判断条件要直接砍半(其实这个说白了也是为了减少计算机的运算,算法的作用就在这里)要求:用筛法求出100以内的素数,输出时每个素数的最小宽度为5。
2023-11-08 23:12:42
36
1
原创 11.2(多余的知识点)
(2)printf输出一个字符串时,遇到\0也会停止,如果输出一个一个字符时,遇到\0不会停止,而是输出一个空格,然后接着输出后面的字符。(1)puts只有遇到\0才会停止。
2023-11-02 22:12:01
42
1
原创 10.30作业(矩阵的加减和乘法)
规定:假设A矩阵有i行j列,B矩阵有j行p列,则C矩阵有i行p列(即A和B两矩阵如果想要进行乘法运算需要使A矩阵的列数和B矩阵的行数相等,而对A矩阵的行数和B矩阵的列数没有要求)比如A矩阵有i行i列,B矩阵有i行i列,则C矩阵也有i行i列,C矩阵的每一行每一列的数据都是A矩阵和B矩阵的每一行每一列数据相加或者相减。规定:只有相同行列数的矩阵才能进行加减的算法。
2023-10-30 23:39:53
97
1
原创 10.27作业(气泡法和选择法)
输入:9 8 6 7 5 4 3 2 1 0 输出: 9 8 7 6 5 4 3 2 1 0。输入:9 8 7 6 5 4 3 2 1 0 输出: 0 1 2 3 4 5 6 7 8 9。第一个循环的个数都是总的数据数减去1,第二个循环都是总的数据减去第一个循环中i的值再减去1。气泡法只能是相邻两个数进行比较,而选择法则是将一个数据与全部剩余数据进行比较。
2023-10-30 00:07:12
90
1
原创 10.28作业(作业中的小知识点)
为数组形式,而数组的名称可以表示其地址,故对字符串输入不需要加地址符。而单独的字符、整型变量等的名称不能直接表示地址,故需要加地址符。(2)return可以使函数强行终止,即在一个main函数过程中如果出现return,则该函数在此处就会停止而不会继续执行下面的函数。
2023-10-29 17:22:38
39
原创 10.24作业(作业中的错题)
最初想法:printf("$$$"),因为想着a=5,而b+c=1,两者不相等,所以是假,则输出else,其实=是赋值符号,==才是运算符号。所以a=b+c的意思是给a赋值1,则该括号内是真,则输出$$$
2023-10-23 17:38:58
44
原创 10.23作业(迭代法,牛顿迭代法,二分法)
从键盘上输入a,b,c,d,计算x,精度输入:2,-4,3,-6 输出:x=2.00为10的-5次方,输出时保留2位小数。用二分法求方程在(-10,10)之间的根:a*x*x*x+b*x*x+c*x+d=0.(1) 若f(c)=0(即|f(c)|
2023-10-23 14:36:29
167
原创 10.21作业(作业中的小知识点)
当break出现后,他所在的整个循环直接结束,接着执行这个循环的下一个语句;而当continue出现后,只是这次的循环结束了,这个循环在其他条件下接着执行。当for循环后没有加大括号时,相当于这个循环中只包含for后面的一个语句。if语句的()中填写的是条件,{}中填写的是执行的语句,不能是判断条件。breaak结束的循环是它上面紧跟的一个循环。
2023-10-23 14:12:51
39
原创 10.20作业(define函数)
(1)c中,除了可以用定义一个标识符来表示一个,还可以用例子://定义常量#define MAX_VALUE 100 //定义整型变量MAX_VALUE值为100#define USER_NAME "huge" //定义字符串变量USER_NAME值为"huge"#define PI 3.1415926 //定义浮点数变量PI值为3.1415926//定义函数(定义函数的种类分为带参数的函数和不带参数的函数)
2023-10-21 00:13:10
58
1
原创 10.19作业(作业中的小知识点)
*先看m是否大于5,然后进行m+1,虽然(m++>5)这个条件不成立,但是m+1这个条件保留,进行下一步运算*/else printf("%d",m++);/*先输出m的值为6,然后将m的值加1,但是不输出*/
2023-10-19 22:58:45
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人