-
C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口 printf()是格式输出函数,输出语句或者输出变量. return是函数的返回值,根据函数类型的不同,返回的值也是不同的。查看全部
-
在for循环中,表达式1是一个或多个赋值语句,它用来控制变量的初始值;表达式2是一个关系表达式,它决定什么时候退出循环;表达式3是循环变量的步进值,定义控制循环变量每循环一次后按什么方式变化。这三部分之间用分号(;)分开。 使用for语句应该注意: 1、for循环中的“表达式1、2、3”均可可以缺省,但分号(;)不能缺省。 2、省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。 3、省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。 4、省略“表达式3(循环变量增量)”,不做其他处理,循环一直执行(死循环)。 5、表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。 6、表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。 7、表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。 8、各表达式中的变量一定要在for循环之前定义。查看全部
-
【C——2.4.2】 ——关于int4字节的取值范围由来-2^31~2^31-1问题 1.【32位】一个字节占8位所以4字节总共是占32位然后去掉第一位也即符号位1负0正也就剩下31位 2.【最大值2^31-1】为什么不是2^31 (1)假设只有三位其中首位为符号位的话最大值的情况不就是011吗?也即表示3. 3 = 2^3-1-1. (2)32位的时候同理01111111 11111111 11111111 11111111 //而这个数表示的值就是2^31-1. 2^31-1 = 2^32-1-1. 3.【最小值-2^31】为什么不是-2^31-1 (1)因为数据是由二进制补码存储的: 1)当原码为正数的时候正数的原码反码补码都相同,即00011的反码也为00011补码也为00011. 2)当原码为负数的时候反码即按位取反比如10011为原码,10011可表示-3,那么符号位不变,其余位按位取反即反码11100.那么10011的补码便是11101. (2)所以可知int所取的最小值原码为11111111 11111111 11111111 11111111. 它的反码为10000000 00000000 00000000 00000000. 在原码中表示-0. 它的补码为10000000 00000000 00000000 00000001. 在原码中表示-1. 依次可以类推-2-3-4......-2^31 【推到-2^31】 其原码为10000000 00000000 00000000 00000001 其反码为11111111 11111111 11111111 11111110 其补码为11111111 11111111 11111111 11111111 从上可知最小值只能表示到-2^31而无法表示到更小的一位-2^31-1 4.【综上所诉int(4字节)范围是-2^31~2^31-1】 自己对于这个问题也纠结了很久得出的结论若有不足之处敬请批评指正谢谢查看全部
-
静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。查看全部
-
循环结构之for循环(一) for(表达式1;表达式2;表达式3) { 执行代码块; } 第一步:执行表达式1,对循环变量做初始化; 第二步:判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环; 第三步:执行表达式3; 第四步:执行for循环中执行代码块后执行第二步; 第五步:循环结束,程序继续向下执行。查看全部
-
递归函数必须有结束条件查看全部
-
解析 自定义的函数中可以有多个return语句,但是只能返回一个值查看全部
-
在知道循环凑数的情况下更使用for循环,在不知道循环次数的情况下适合使用while或者do-while循环。 如果有可能一次都不循环应考虑使用while循环,如果至少循环一次应该考虑使用do-while循环查看全部
-
flag=-flag在循环中让符号出现正负改变。查看全部
-
梦无忧霖 自增与自减运算符 自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“--”,其功能是使变量值自减1 ++a --a 先运算 再取值 a++ a-- 先取值,在运算 注意: 无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a--还是--a都等同于a=a-1,在表达式执行完毕后a的值都自减少1查看全部
-
除法运算中注意: 如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000。 取余运算中注意: 该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1。 注:C语言中没有乘方这个运算,也不能用×,÷等算术符号。查看全部
-
那么C语言中又有哪些运算符呢? 如下所示: ※ 算术运算符 ※ 赋值运算符 ※ 关系运算符 ※ 逻辑运算符 ※ 三目运算符查看全部
-
1、数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x/2转换成int型之后再与y相加了。 2、转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。 3、强制转换后的运算结果不遵循四舍五入原则查看全部
-
自动字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换查看全部
-
水仙花数的代码 #include <stdio.h> int main() { //定义三位数num,个位数sd,十位数td,百位数hd int num, sd, td, hd; //循环所有三位数 for( num=100 ; num<1000 ;num++ ) { //获取三位数字num百位上的数字 hd =num/100; //获取三位数字num十位上的数字 td =num/10%10; //获取三位数字num个位上的数字 sd =num%10; //水仙花数的条件是什么? if(num==hd*hd*hd+td*td*td+sd*sd*sd) { printf("水仙花数字:%d\n", num); } } return 0; }查看全部
举报
0/150
提交
取消