c语言中ox6d代表啥,c语言基础知识复习

《c语言基础知识复习》由会员分享,可在线阅读,更多相关《c语言基础知识复习(34页珍藏版)》请在人人文库网上搜索。

1、1. int n二10?, an;这种写法为什么不对是变量!不能作为下标使用!因为在编译的时候,数组需要一个指定的大 小。n必须是常数,在编译的时候编译器并不知道n到底是多少,运行时候 才知道,所以编译不通过。2. 在C语言中,一个字母字符占一个字节。所以表面上看是占了 1个字 节。然而c语言中规定,字符串结束后必须跟一个结束字符0,因此 总共应该是占了2个字节3. 依次类推“abc”就是占4个字节例子:c语言中sfds的字节数是多少为什么6个(前提是一个字符占一个字节)是1个,第一个是,故两个作为一个“”sfds是4个另外双引号内的字符串,默认有个”0“作为结尾,虽然没有写出来所以一共占1+。

2、4+1=6个字节4. 若有定义:inta34二1,2, 0, 4,6, 8, 10;则初始化后, a得到的初值是_0_a1得到的初值是_6。1, 2对应第0行1是0行0列0 01,2是0行1列0 10对应第1行0是1行0列104, 6, 8,10对应第 2 行,4 是 2 行 0 列2 0, 6 是 2 行 1 列2 1,8 是 2 行 2 列2 2, 10 是 2 行 3 列2 34. a2表示a左移两位,数值上相当于a的乘以4 ,在把他的值赋给b an 数值上相当于a的乘以an数值上相当于a的除以5. 数据转换类型:隐式类型转换,低级向高级转换Int a; float b; double 。

3、ca+b+c 先将变量a和变量b都转换为double,然后计算,得到结果double强制类型转换:(double) a 将a转换为double型(int) (x+y) 将x+y的值转换为整型(int)a+y将x转换为整型,然后与y相加6. 在c语言中逗号运算符的优先级最低。0a=10%3, b=5;printf( a%d, %d” , a, b);a=%l, b=%5注意:%输出8. 十进制与二进制转换2292141217023121111101(二进制)il10110101X2+0X 2+1X 2+1X 2+0 X 2+1 X 2+0 X 2 =64+16+8+2=909. 八进制与二进制转。

4、换不足时补二进制数0 1 0第一步110 取3合1第二步 按权展 开求和226第三步得到八进Mft八进制数为226I 六进制数为69221fc-:0 1:;001八进制数0八遇M分别转成二遇制不足补0 1 0000 1 0Ti o得到最终二进制数10 110从最后一个余数读到第一个116116W十进制转十六进帕从最后一个余数读到第一个 6 2 2:十进制转八进制10. 闰年普通年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰 年,1999年不是闰年);世纪年:能被400整除的为世纪闰年。(如2000年是闰年,1900年不是闰年);11. int a, b, c; a=b=。

5、c=l; +a | | +b&+c;求 a, b, c 的值在c语言中,&的优先级比| |高,所以当这两个一起出现的时候,是先算&再 算|,当然,丨|在c语言也有个陷阱.就是当:的前半部分为真的时候,就不执 行后半部,只有前半部分为假的时候才执行后半部分.本题中:a二b二c二1;于 是a, b, c的值都是1, +a+b&+c;中,&的优先级高,所以先算+b&+c, 再跟+a做| |运算.于是+玄是|的前半部分.而+&的值此时是22的值就是 2,即为真.于是就不做后半部分的运算.也就没有+b&+c的运算.于是b, c 的值还是都为1.这下明名为什么是a二2 b二1 c二1,而不是a, b, c。

6、都为2的原 因了吧12. 已知 int x=10, y=20, z=30;if (xy)z=x;x=y;y=zprintf ( %d%d%d , x, y, z);20, 30, 30注意辻后没括号只能控制一条语句即z二x不执行,13. 三目运算int a1, b二2, c3, d=4, e二5;k=abc: ded: e;求k的数值时多少 答案为514. 下面程序段的运行结果是_Bfor (x=10;x3;x-) if(x%3) x-;X ; X ;printf (%d ”, x);A) 6 3 B) 7 4 C) 6 2 D) 7 3 序号是for循环的第儿次:1. now x=10辻(x。

7、%3)x;出运行结果#include int mainOfloat x,y,scanfC%f*,&x);switch(int)x/10)case 0: y=l 0, pnntf(*y=%fV ,y),break,case 1: y=2*x+l, pnntfCyAn1* ,y),break,case 2: y=3*x*x+2, pinntfCy=%fn1 ,y),break, defaultpimtfCNo definition n), retuiTi 0,输入:15.3V回车Y=总体上必须清楚的:1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。2)读程序都要从main()入口,然。

8、后从最上面顺序往下读(碰到循环做循 环,碰到选择做选择),有且只有一个main函数。3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就 是他的地址.4)bit是位是指为0或者1。byte是指字节,一个字节二八个位.第一章C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。3、一个C语言程序有且只有一个main函数,是程序运行的起点。第二节、熟悉vc卄1、VC是软件,用来运行写的C语言程序。2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c?. obj?. exe)这个过程中。

9、注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。关键字:不可以作为用户标识符号。main define scanf printf都 不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个 字母大写了,所以不是关键字。预定义标识符:背诵define scanf printf include。记住预定义标 识符可以做为用户标识符。用户标识符:基本上每年都考,详细请见书。

10、上习题。第四节:进制的转换十进制转换成二进制、八进制、十六进制。二进制、八进制、十六进制转换成十进制。第五节:整数与实数1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的 进制都要转换成二进制来进行处理。(考过两次)a、C语言中的八进制规定要以0开头。018的数值是非法的,八进 制是没有8的,逢8进1。b、C语言中的十六进制规定要以Ox开头。2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。在C语言中可写成1.在C语言中可以写成.1。3)实型数据的合法形式:a、就是合法的,且数据是XlOob、口诀:e前e后必有数,e后必为整数。请结合书上的例子。4)整型一般是4个字。

11、节,字符型是1个字节,双精度一般是8个字节:long int x;表TKx是长整型。unsigned int x;表示x是无符号整型。第六、七节:算术表达式和赋值表达式核心:表达式一定有数值!1、算术表达式:%一定要注意:“/”两边都是整型的话,结果就是一个整型。3/2的结 果就是1.“/”如果有一边是小数,那么结果就是小数。3/的 结果就是“”符号请一定要注意是余数,最容易算成了除号。)% 符号两边要求是整数。不是整数就错了。2、赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量 不可以赋值。1、int x=y=10:错啦,定义时,不可以连续赋值。2、int x, y;x=。

12、y=10; 对滴,定义完成后,可以连续赋值。3、赋值的左边只能是一个变量。4、int x二;对滴,x就是75、float y=7;对滴,x 就是3、复合的赋值表达式:int a二2;a*二2+3;运行完成后,a的值是10。一定要注意,首先要在2+3的上面打上括号。变成(2+3)再运算。4、自加表达式:自加、自减表达式:假设a=5, +a (是为6),a+ (为5);运行的机理:+a是先把变量的数值加上1,然后把得到的数值放到变量 a中,然后再用这个+a表达式的数值为6,而a+是先用该表达式的数值为5, 然后再把a的数值加上1为6,再放到变量a中。进行了+a和a+后在下面的程序中再用到a的话都 。

13、是变量a中的6 To口诀:+在前先加后用,+在后先用后加。5、逗号表达式:优先级别最低。表达式的数值逗号最卷边的那个表达式的数值。(2, 3, 4)的表达式的数值就是4。z二(2, 3, 4)(整个是赋值表达式)这个时候z的值为4。(有点难度哦!)z二2, 3, 4 (整个是逗号表达式)这个时候z的值为2。补充:1、空语句不可以随意执行,会导致逻辑错误。2、注释是最近儿年的重点,注释不是C语言,不占运行时间,没有分号。 不可以嵌套!3、强制类型转换:一定是(int) a不是int (a),注意类型上一定有括号的。注意(int) (a+b)和(int) a+b的区别。前是把a+b转型,后是 把a。

14、转型再加b。4、三种取整丢小数的情况:printf ( %d , a);得到的输出结果:652 、 (int)a;3 、 1/2;3/2;第八节、字符1) 字符数据的合法形式:T是字符占一个字节,1是字符串占两个字节(含有一个结束符 号)。0的ASCII数值表示为48, a的ASCII数值是97, A的ASCII 数值是65。一般表示单个字符错误的形式:651字符是可以进行算术运算的,记住:0 -0=48大写字母和小写字母转换的方法:A +32二a相互之间一般是相 差32。2) 转义字符:转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。一般转义字符:背诵0、n、V、”、Wo八进制转。

15、义字符:141是合法的,前导的0是不能写的。十六进制转义字符:x6d才是合法的,前导的0不能写,并且x 是小写。3、字符型和整数是近亲:两个具有很大的相似之处char a = 65 ;printf ( “c” , a);得到的输出结果:A第九章、位运算1)位运算的考查:会有一到二题 题目。总的处理方法:儿乎所有的位运算的题目都要按这个流程来处理(先把 十进制变成二进制再变成十进制)。例 1: char a = 6, b;b = a2;这种题目的计算是先要把a的十进制6化成二进 制,再做位运算。例2:定要记住,异或的位运算符号”八”。0异或1得到1。0异或0得到0。两个女 的生不出来。记忆方法:。

16、一男(1) 一女(0)才可以生个小孩(1)。例3:在没有舍去数据的时候,左移一位表示乘以2; 右移一位表示除以2o第一节:数据输出(一)(二)1、使用printf和scanf函数时,要在最前面加上include 2、printf可以只有一个参数,也可以有两个参数。(选择题考过一次)3、printf (“第一部分”,第二部分);把第二部分的变量、表达式、常量以第一部分的形式展现出来!4、printf (“a二d, b=%d”,12, 34) 重点!一定要记住是将12和34以第一部分的形式现在在终端也就是黑色的屏幕上。核心为:一模一样c在黑色屏幕上面显示为a二12, 234printf (“a=%。

17、d, n b二%d”,12, 34)那么输出的结果就是:a二 12,b 二 345、int x-017;一定要弄清楚为什么是这个结果!过程很重要x=017; 12a10f5. 3f3 lfl 不可以足变量。case 2:.e) switch是必考题型,请大家一定要完成书上的课后的switch的习题。循环1)三种循环结构:a) for ( ); while () ; do- while()三种。b) for循环当中必须是两个分号,千万不要忘记。c) 写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循 环。d) do-while()循环的最后一个while():的分号一定不能够丢。(当心。

18、上机 改错),dowhile循环是至少执彳亍一次循环。2) break 和 continue 的差别记忆方法:break:是打破的意思,(破了整个循环)所以看见break就退出真个一层 循环。continue:是继续的意思,(继续循环运算),但是要结束本次循环,就 是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行 新一轮的循环。3) 嵌套循环就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计 算,一般记住两层是处理二维数组的。4) while (c=getchar() != n )和wh订e (c=getchar () ! = , n)的差别先看a = 3 !=。

19、 2和(a=3)! =2的区别:(!二号的级别高于二号所以第一个先计算3! =2)第一个a的数值是 得到的1;第二个a的数值是3。注意点:括号在这里的重要性。5) 每行输出五个的写法:for (i=0; i fabs () pow() sin() 其中 pow(a, b)是重点。22是由pow (2, 3)表示的o第六章指针变量的本质是用来放地址,而一般的变量是放数值的。1、int *p中 *戸和戸的差别:简单说*p是数值,p是地址!p可以当做变量來用;*的作用是取后面地址P里面的数值P是当作地址来使用。可以用在scanf函数中:scanf (“d”,p);fun (int *a , int 。

20、*b)这里是函数声明的写法,注意数组就是指针int *fun (int a , int b)这种写法也是正确的int *fun (int b , int c)这种写法也是正确的,参数的名称可以随便写int *fun (int * , int *)这种与法也是正确的,参数的名称可以不写2、*p+和(*p) +的之间的差别:*p+是 地址会变化。口诀:取当前值,然后再移动地址!(*p) +是数值会要变化。口诀:取当前值,然后再使数值增加lo例题:int *p,a = l,3, 5, 7, 9;P=a;请问*p+和(*p) +的数值分别为多少*p+:这个本身的数值为1。由于是地址会增加一,所以指针指。

21、向数值3To(*p) +这个本身的数值为1。由于有个+表示数值会增加,指针不移动,但数值1由于自加了一次变成了 2。3、二级指针:知:一级指针:存放变量的地址。*q:二级指针:存放一级指针的地址。常考题目:int x=7;int*p二&x, *q=p;问你:*p为多少*q为多少*q为多少7P7再问你:*q二&x的写法可以吗不可以,因为二级指针只能存放一级指针的地址。4、三名主义:(的重点)数组名:表示第一个元素的地址。|数组名不可以自加,他是地址常量名。函数名:表示该函数的入口地址。字符串常量名:表示第一个字符的地址。5、移动指针(经常加入到中其他题目综合)char *s= meikanshu。

22、”whi.le (*s) printf*s); s+; 这个s首先会指向第一个字母m然后通过循环会一次打印出一个字符,s+ 是地址移动,打印了一个字母后,就会移动到下一个字母!6、指针变量两种初始化(一定要看懂)方法一:int a=2, *p=&a;(定义的同时初始化)方法二:int a二2, *p;(定义之后初始化)p 二&a;7、传数值和传地址(每年必考好多题目) void fun (inta,int b) int t ;t二a; a二b; b二t;main () int x=L y二3,fun (x, y);void fun (int int *b) int t ;t二*a; *a二*b。

23、; *b二t;main () inty=3,fun (&x, &y)printf (“d, %d, x.printf (“d,x, y); y);这个题目的答案就是3和lo传地址,fun用指针接受!这个时候fun中的交换,就会影响到main中的x和y。传地址形参的变化绝大多数这个题目答案是1和3o传数值,fun是用变量接受,所以fun中的交换不会影响到main中的x和y。传数值,形参的变化不会影响实参。会影响到实参!8、函数返回值是地址,一定注意这个*号int *fun (int *a, int *b)可以发现函数前面有个*,这个就说明函数运算结果是地址 if (*a*b) return a;。

24、return a可以知道返回的是a地址。else return b:main () int x=7, y=8, *max;max = fun (&x, &y);由于fun (&x, &y)的运算结果是地址,所以用max来接收。printf (“d, %d,)9、重要的话语:指针变量是存放地址的。并且指向哪个就等价哪个,所有出现*卩的地方int a2 3 = 1,2, 3, 4, 5;int a2 3 = 1,2, 3, 4,5,6;int a23二1,2, 3,4,5;Ooint a2 3二1,2, 3, 4, 5, 6, 7;组的个数了。int a3 = l,2,3,4,5,6;inta2 。

25、= l,2, 3,4,5, 6;补充:1)一维数组的重要概念:对a10这个数组的讨论。合法,后面一个默认为0。合法,每行三个。合法,第一行最后一个默认为 不合法,赋值的个数多余数 合法,可以缺省行的个数。不合法,不可以缺省列的个数。1、a表示数组名,是第一个元素的地址,也就是元素a0的地址。(等 价于&a)2、a是地址常量,所以只要出现a+,或者是a二a+2赋值的都是错误的。3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。对a 3 3的讨论。1、a表示数组名,是第一个元素的地址,也就是元素a00的地址。2、a是地址常量,所以只要出现a+,或者是a二a+2赋值的都是错误的。3、a是二。

26、维数组名,所以它是行指针,也就是说a+1是跳一行。4、a0、a、a也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a0+l, al+l, a+1都是跳一列。5、注意a和a0、al、a2是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。2) 二维数组的技巧:如果有 a3 3 = 1,2, 3, 4, 5, 6, 7, 8, 9这样的题目。步骤一:把他们写成:第一列第二列第三列a0?123_第一行al?456一第二行a2?789一第三行步骤二:这样作题目间很简单:*(aO+l)我们就知道是第一行的第一个元素往后面跳一列,那么这里就 是a0 1元素,所以是2。*(al+2。

27、)我们就知道是第二行的第一个元素往后面跳二列。那么这里就 是al 2元素,所以是6。一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目, 这样会比较简单。3) 数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写int a = l, 2合法。 int a4二2, 3, 4合法。 但 int a4 = 2, 3, 4非法。这个思想很重要!13) 指针迷惑的点:char ch = ” iamhandsomen ;char *p=ch;问你* (p+2)和*p+2的结果是多少2、 while ( *t=*s ) s+; t+; 简单版本mk结果是这两个,想不通的同学请作死的想!。

28、想通为止!14)数组中放数组一定要看懂:int a8二1,2, 3,4,4, 3,2, 2;int b5 = 0;ba3+ 这个写法要看懂,结果要知道是什么b4+,本身是0,运 行完后,b4为1 了。15)字符串的赋值C语言中没有字符串变量,所以用数组和指针存放字符串:1、charch10 = abcdefgh” ;对2、charch 10二abcdefgh;对3、charch10二 a,b,,,cJ,d , e , i , g , h );对4、char*p= abcdefgh” ;对5、char*P;对p= abcdefgh” ;6、charch10;错了!数组名不可以赋值!ch= abcdefgh” ;7、char*p= abcdefgh ;错了!不能够出现大括号!16)字符串赋值的函数背诵:把s指针中的字符串复制到t指针中的方法3 while ( *t+二*s+);咼级版本17) typedef是取别名,不会产生新的类型,他同时也是关键字 考点一:typedef int qq 那么 int x 就可以写成 qq x 考点二:typedef int *qq那么int *x就可以写成qq x18) static考点是一定会考的!复习相关的习题。static int x;默认值为 0。int x:默认值为不定值。19) 函数的递归调用一定会考!至少是2分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值