南京大学C语言期末考试知识点总结完美版.pdf_第1页
南京大学C语言期末考试知识点总结完美版.pdf_第2页
南京大学C语言期末考试知识点总结完美版.pdf_第3页
南京大学C语言期末考试知识点总结完美版.pdf_第4页
南京大学C语言期末考试知识点总结完美版.pdf_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言最重要的知识点语言最重要的知识点 总体上必须清楚的总体上必须清楚的: 1)1)程序结构是三种程序结构是三种: :顺序结构顺序结构 、选择结构选择结构( (分支结构分支结构) )、循环结构循环结构。 2)2)读程序都要从读程序都要从 main()main()入口入口, , 然后从最上面顺序往下读然后从最上面顺序往下读( (碰到循环做循环碰到循环做循环, ,碰到选择做选碰到选择做选 择择) ),有且只有有且只有一个一个 mainmain 函数函数。 3)3)计算机的数据在电脑中保存是以计算机的数据在电脑中保存是以 二进制二进制的形式的形式. . 数据存放的位置就是数据存放的位置就是 他的地址他的地址. . 4)4)bitbit 是是位位 是指为是指为 0 0 或者或者 1 1。 bytebyte 是指是指字节字节, , 一个字节一个字节 = = 八个位八个位. . 概念常考到的:概念常考到的: 1 1、编译预处理编译预处理不是不是 C C 语言的一部分语言的一部分,不占不占运行时间运行时间,不要加不要加分号分号。C C 语言编译的程序称为语言编译的程序称为 源程序源程序,它以,它以 ASCIIASCII 数值数值存放在存放在文本文件文本文件中。中。 2 2、definedefine PIPI 3.1415926;3.1415926;这个写法是这个写法是错误错误的,的,一定不能出现分号一定不能出现分号。 3 3、每个、每个 C C 语言程序中语言程序中 mainmain 函数函数是是有且只有一个有且只有一个。 4 4、在函数中、在函数中不可以不可以再定义函数。再定义函数。 5 5、算法:、算法:可以没有可以没有输入输入,但是,但是一定要有一定要有输出输出。 6 6、breakbreak 可用于循环结构和可用于循环结构和 switchswitch 语句。语句。 7 7、逗号运算符逗号运算符的级别的级别最低最低,赋值赋值的级别的级别倒数第二倒数第二。 第一章第一章 C 语言的基础知识语言的基础知识 第一节、对第一节、对 C 语言的基础认识语言的基础认识 1、C C 语言编写的程序称为语言编写的程序称为源程序源程序,又称为又称为编译单位编译单位。 2 2、C C 语言语言书写格式是自由的书写格式是自由的,每行可以写多个语句,可以写多行。,每行可以写多个语句,可以写多行。 3 3、一个、一个 C C 语言程序有且只有一个语言程序有且只有一个 mainmain 函数,是程序运行的函数,是程序运行的起点起点。 第二节、熟悉第二节、熟悉 vc+ 1 1、V VC C 是软件,用来运行写的是软件,用来运行写的 C C 语言程序。语言程序。 2 2、每个、每个 C C 语言程序写完后,都是语言程序写完后,都是先先编译编译,后,后链接链接,最后,最后运行运行。 (.c-.c-.obj-.obj-.exe.exe) 这个过程中注意这个过程中注意.c.c 和和.obj.obj 文件时无法运行文件时无法运行的,只有的,只有.exe.exe 文件才可以运行文件才可以运行。 (常考(常考! ) 第三节、标识符第三节、标识符 1、标识符(必考内容、标识符(必考内容) : 合法的要求是由合法的要求是由字母字母,数字数字,下划线下划线组成。有其它元素就错了。组成。有其它元素就错了。 并且并且第一个必须为第一个必须为字母字母或则是或则是下划线下划线。第一个为数字就错了。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。、标识符分为关键字、预定义标识符、用户标识符。 关键字:关键字:不可以不可以作为用户标识符号作为用户标识符号。mainmaindefinedefinescanfscanfprintfprintf 都不是关键字都不是关键字。迷惑。迷惑 你的地方你的地方 IfIf 是可以做为用户标识符是可以做为用户标识符。因为。因为 IfIf 中的第一个字母大写了,所以不是关键字。中的第一个字母大写了,所以不是关键字。 预定义标识符预定义标识符:背诵背诵 definedefinescanfscanfprintfprintfincludeinclude。记住记住预定义标识符预定义标识符可以可以做为用户做为用户 标识符。标识符。 用户标识符:基本上每年都考,详细请见书上习题。用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换第四节:进制的转换 十进制转换成二进制、八进制、十六进制。十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。二进制、八进制、十六进制转换成十进制。 第五节:整数与实数第五节:整数与实数 1 1)C C 语言只有语言只有八八、十十、十六十六进制进制,没有二进制没有二进制。但是但是运行时候运行时候,所有的进制都要转换成二所有的进制都要转换成二 进制来进行处理进制来进行处理。 (考过两次)(考过两次) a a、C C 语言中的语言中的八进制八进制规定要规定要以以 0 0 开头开头。018018 的数值是非法的,的数值是非法的,八进制是没有八进制是没有 8 8 的,的,逢逢 8 8 进进 1 1。 b b、C C 语言中的语言中的十六进制十六进制规定要规定要以以 0x0x 开头开头。 2)2)小数的合法写法小数的合法写法:C 语言语言小数点两边有一个是零的话小数点两边有一个是零的话,可以不用写可以不用写。 1.01.0 在在 C C 语言中可写成语言中可写成 1.1. 0.10.1 在在 C C 语言中可以写成语言中可以写成.1.1。 3 3)实型数据的合法形式:)实型数据的合法形式: a a、2.333e-12.333e-1 就是合法的,且数据是就是合法的,且数据是 2.3332.3331010 -1-1。 。 b、考试口诀:e 前前 e 后必有数,后必有数,e 后后必为必为整数整数。请结合书上的例子。请结合书上的例子。 4 4) 整型整型一般是一般是 4 4 个字节个字节, , 字符型字符型是是 1 1 个字节,个字节,双精度双精度一般是一般是 8 8 个字节:个字节: longlong intint x;x; 表示表示 x x 是长整型。是长整型。 unsignedunsigned intint x;x; 表示表示 x x 是无符号整型。是无符号整型。 第六、七节:算术表达式和赋值表达式第六、七节:算术表达式和赋值表达式 核心:核心:表达式一定有数值表达式一定有数值! 1 1、算术表达式:、算术表达式:+ +,- -,* *,/ /,% % 考试一定要注意考试一定要注意: “/ /” 两边两边都是都是整型的话,结果就是一个整型的话,结果就是一个整型整型。 3/23/2 的结果就是的结果就是 1.1. “/ /” 如果如果有一边是有一边是小数,那么结果就是小数,那么结果就是小数小数。 3/2.03/2.0 的结果就是的结果就是 0.50.5 “% %”符号请一定要注意是符号请一定要注意是余数余数,考试最容易算成了除号考试最容易算成了除号。 )% %符号两边要符号两边要 求是整数求是整数。不是整数就错了。不是整数就错了。 注意注意! 2 2、赋值表达式:表达式数值是最左边的数值,、赋值表达式:表达式数值是最左边的数值,a=b=5;a=b=5;该表达式为该表达式为 5 5,常量不可以赋值,常量不可以赋值。 1 1、intint x=y=10:x=y=10: 错啦,错啦,定义时定义时,不可以不可以连续赋值。连续赋值。 2 2、intint x,y;x,y; x=y=10;x=y=10;对滴,对滴,定义完成后定义完成后,可以可以连续赋值。连续赋值。 3 3、赋值的左边只能是赋值的左边只能是一个变量一个变量。 4 4、intint x=7.7x=7.7;对滴,;对滴,x x 就是就是 7 7 5 5、floatfloat y=7y=7;对滴,;对滴,x x 就是就是 7.07.0 3 3、复合的赋值表达式:、复合的赋值表达式: intint a=2a=2; a*=2+3a*=2+3;运行完成后,;运行完成后,a a 的值是的值是 1212。 一定要注意,首先要在一定要注意,首先要在 2+32+3 的上面打上括号。变成(的上面打上括号。变成(2+32+3)再运算。)再运算。 4 4、自加表达式:、自加表达式: 自加、自减表达式:假设自加、自减表达式:假设 a=5a=5,+a+a(是为(是为 6 6) , a+a+(为(为 5 5) ; 运行的机理:运行的机理:+a+a 是先把变量的数值加上是先把变量的数值加上 1 1,然后把得到的数值放到变量,然后把得到的数值放到变量 a a 中,然后再用中,然后再用 这个这个+a+a 表达式的数值为表达式的数值为 6 6, 而而 a+a+是是先用该表达式的数值为先用该表达式的数值为 5 5, 然后再把然后再把 a a 的数值加上的数值加上 1 1 为为 6 6, 再放到变量再放到变量 a a 中。中。 进行了进行了+a+a 和和 a+a+后后 在下面的程序中再用到在下面的程序中再用到 a a 的话都是变量的话都是变量 a a 中的中的 6 6 了。了。 考试口诀:+在前在前先加后用先加后用,+在后在后先用后加先用后加。 5 5、逗号表达式:、逗号表达式: 优先级别优先级别最低最低。表达式的数值逗号。表达式的数值逗号最右边最右边的那个表达式的数值。的那个表达式的数值。 (2 2,3 3,4 4)的表达式的数值就是)的表达式的数值就是 4 4。 z=z=(2 2,3 3,4 4)( (整个是赋值表达式整个是赋值表达式) ) 这个时候这个时候 z z 的值为的值为 4 4。 (有点难度哦(有点难度哦! ) z=z=2 2,3 3,4 4 (整个是逗号表达式)这个时候(整个是逗号表达式)这个时候 z z 的值为的值为 2 2。 补充:补充: 1 1、空语句、空语句不可以不可以随意执行,会导致随意执行,会导致逻辑错误逻辑错误。 2 2、注释是最近几年考试的重点,、注释是最近几年考试的重点,注释注释不是不是 C C 语言语言,不占,不占运行时间,运行时间,没有没有分号。分号。不可以不可以嵌套嵌套! 3 3、强制类型转换强制类型转换: 一定是一定是 (intint)a a 不是不是intint(a a) ,注意,注意类型上类型上一定有括号一定有括号的。的。 注意(注意(intint) (a+ba+b) 和(和(intint)a+ba+b 的区别。的区别。 前是把前是把 a+ba+b 转型,后是把转型,后是把 a a 转型再加转型再加 b b。 4 4、三种三种取整丢小数取整丢小数的情况的情况: 、intint a a =1.6=1.6; 、(int)a(int)a; 、1/21/2; 3/23/2; 第八节、字符第八节、字符 1 1)字符数据的合法形式)字符数据的合法形式: :: 11 是是字符字符占占一一个字节,个字节,“1“1“是字符串占是字符串占两两个字节个字节( (含有一个结束符号含有一个结束符号) )。 00 的的 ASCIIASCII 数值表示为数值表示为 4848,aa 的的 ASCIIASCII 数值是数值是 9797,AA的的 ASCIIASCII 数值是数值是 6565。 一般考试表示单个字符错误的形式:一般考试表示单个字符错误的形式:6565“1“1“ 字符是可以进行算术运算的,记住:字符是可以进行算术运算的,记住:0-0=480-0=48 大写字母和小写字母转换的方法:大写字母和小写字母转换的方法:A+32=aA+32=a相互之间一般是相差相互之间一般是相差 3232。 2 2)转义字符:)转义字符: 转义字符分为一般转义字符分为一般转义字符、八进制转义字符、十六进制转义字符转义字符、八进制转义字符、十六进制转义字符。 一般转义字符:背诵一般转义字符:背诵00、 nn、 、 ”、 。 八进制转义字符:八进制转义字符:141141 是合法的,是合法的, 前导的前导的 0 0 是不能写的。是不能写的。 十六进制转义字符:十六进制转义字符:x6dx6d 才是合法的,前导的才是合法的,前导的 0 0 不能写,并且不能写,并且 x x 是小写是小写。 3 3、字符型和整数是近亲:两个具有很大的相似之处字符型和整数是近亲:两个具有很大的相似之处 charchar a a = = 6565 ; ; printf(printf(“%c%c”, , a);a);得到的输出结果:得到的输出结果:a a printf(printf(“%d%d”, , A A););得到的输出结果:得到的输出结果:6565 第九章、位运算第九章、位运算 1 1)位运算的考查:会有一到二题考试题目。)位运算的考查:会有一到二题考试题目。 总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制先把十进制变成二进制 再变成十进制再变成十进制) 。 例例 1 1:charchar a a = = 6,6, b;b; b b = = a右移一位表示除以右移一位表示除以 2 2。 第二章第二章 第一节:数据输出(一第一节:数据输出(一) (二)(二) 1 1、使用、使用 printfprintf 和和 scanfscanf 函数时,要在最前面加上函数时,要在最前面加上#include#include“stdio.hstdio.h” 2 2、printprintf f 可以只有一个可以只有一个参数,参数,也可以有两个也可以有两个参数参数。 (选择题考过一次)(选择题考过一次) 3 3、printfprintf( “ 第一部分第一部分 ” ,第二部分,第二部分) ;把第二部分的变量、表达式、常量以第一部分;把第二部分的变量、表达式、常量以第一部分 的形式展现出来!的形式展现出来! 4 4、printfprintf( “a=%da=%d,b=%db=%d” ,12,12, 3434) 考试重点!考试重点! 一定要记住是将一定要记住是将 1212 和和 3434 以第一部分的形式现在在终端也就是黑色的屏幕上以第一部分的形式现在在终端也就是黑色的屏幕上。 考试核心为考试核心为: 一模一样一模一样。在黑色屏幕上面显示为在黑色屏幕上面显示为a=12a=12,b=34b=34 printfprintf( “a=%da=%d,nn b=%db=%d” ,12,12, 3434)那么输出的结果就是:)那么输出的结果就是:a=12a=12, b=34b=34 5 5、intint x=017x=017;一定要弄清楚为什么是这个结果!过程很重要一定要弄清楚为什么是这个结果!过程很重要 printfprintf( “%d%d” , x x) ; 1515 printfprintf( “%o%o” , x x) ; 1717 printfprintf( “%#o%#o” ,x x) ; 017017 printfprintf( “%x%x” , x x) ; 1111 printfprintf( “%#x%#x” ,x x) ; 0x110x11 6 6、intint x=12x=12,y=34y=34;注意这种题型注意这种题型 charchar z=z=a a ; printfprintf( “%d%d ” ,x x,y y) ;一个格式说明,两个输出变量,后面的一个格式说明,两个输出变量,后面的 y y 不输出不输出 printfprintf( “%c%c” ,z z) ;结果为:结果为:12a12a 7 7、一定要背诵的、一定要背诵的 格式说明格式说明表示内容表示内容格式说明格式说明表示内容表示内容 %d%d整型整型intint%c%c字符字符charchar %ld%ld长整型长整型 longlong intint %s%s字符串字符串 %f%f浮点型浮点型 floatfloat%o%o八进制八进制 %lf%lfdoubledouble%#o%#o带前导的八进制带前导的八进制 %输出一个百分号输出一个百分号%x%x十六进制十六进制 %5d%5d%#x%#x带前导的十六进制带前导的十六进制 举例说明:举例说明: printfprintf( “%2d%2d” ,123123 ) ;第二部分有三位,大于指定的两位,原样输出第二部分有三位,大于指定的两位,原样输出 123123 printfprintf( “%5d%5d” ,123123 ) ;第二部分有三位,小于指定的五位,左边补两个空格第二部分有三位,小于指定的五位,左边补两个空格123123 printfprintf( “%10f%10f” ,1.251.25 ) ; 小数要求补足小数要求补足 6 6 位的,没有六位的补位的,没有六位的补 0,0,。结果为。结果为1.2500001.250000 printfprintf( “%5.3f%5.3f” ,125125 ) ; 小数三位,整个五位,结果为小数三位,整个五位,结果为 1.2501.250(小数点算一位)(小数点算一位) printfprintf( “%3.1f%3.1f” ,1.251.25 ) ;小数一位,整个三位,结果为;小数一位,整个三位,结果为 1.31.3(要进行四舍五入)(要进行四舍五入) 第三节第三节 数据输入数据输入 1 1、scanfscanf( “a=a=%d%d,b=b=%d%d” ,, 跳过输入的第三个数据。跳过输入的第三个数据。 2 2)putcharputchar ,getchar,getchar 函数的考查:函数的考查: charchara a = = getchar()getchar() 是没有参数的,从键盘得到你输入的一个字符给变量是没有参数的,从键盘得到你输入的一个字符给变量 a a。 putchar(putchar(y y) )把字符把字符 y y 输出到屏幕中。输出到屏幕中。 3 3)如何实现两个变量如何实现两个变量 x x ,y y 中数值的互换(要求背下来)中数值的互换(要求背下来) 不可以把不可以把 x=yx=y ,y=x;,y=x; 要用中间变量要用中间变量 t=xt=x;x=yx=y;y=ty=t。 4 4)如何实现保留三位小数,第四位四舍五入的程序如何实现保留三位小数,第四位四舍五入的程序, (要求背下来)(要求背下来) y=y=(intint) (x*100+0.5x*100+0.5)/100.0/100.0这个保留这个保留两位两位,对第三位四舍五入,对第三位四舍五入 y=y=(intint) (x*1000+0.5x*1000+0.5)/1000.0/1000.0 这个保留这个保留三位三位,对第四位四舍五入,对第四位四舍五入 y=y=(intint) (x*10000+0.5x*10000+0.5)/10000.0/10000.0 这个保留这个保留四位四位,对第五位四舍五入,对第五位四舍五入 这个有推广的意义这个有推广的意义,注意注意 x x = = (intint)x x 这样是把小数部分去掉这样是把小数部分去掉。 第三章第三章 特别要注意:特别要注意:C 语言中是用语言中是用非非 0 表示逻辑真的,表示逻辑真的,用用 0 表示逻辑假的。表示逻辑假的。 C 语言语言有有构造类型构造类型,没有没有逻辑类型逻辑类型。 关系运算符号:注意关系运算符号:注意898 这个关系表达式是真的,所以这个关系表达式是真的,所以 9898 这个表达式的数值就是这个表达式的数值就是 1 1。 如如 7); elseelse ifif(b=b= =t=t)printf(printf(“b b”);); elseelse ifif(c=c= =t=t)printf(printf(“c c”);); elseelse pritnf(pritnf(“d d”);); 通过习题,要熟悉以上几种通过习题,要熟悉以上几种 ifif 语句!语句! 经典考题:结合上面四种经典考题:结合上面四种 if 语句题型做题,答错了,请自行了断!预备,开始!语句题型做题,答错了,请自行了断!预备,开始! intinta=1a=1,b=0b=0; ifif(!(!a a)b+b+; elseelse ifif(a=a= =0=0) ifif(a a)b+=2b+=2; elseelse b+=3b+=3;请问;请问 b b 的值是多少?的值是多少? 如果没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。如果没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。 正确的是正确的是 b b 为为 3 3。 intinta=1a=1,b=0b=0; ifif(!(!a a)b+b+;是假的不执行是假的不执行 elseelse ifif(a=a= =0=0)是假的执行是假的执行 ifif(a a)b+=2b+=2;属于属于 elseelse ifif 的嵌套的嵌套 ifif 语句,不执行。语句,不执行。 elseelse b+=3b+=3;if-else-ifif-else-if 语句没有一个正确的,就执行语句没有一个正确的,就执行 elseelse 的语句!的语句! 4)条件表达式:)条件表达式: 表达式表达式 1 1 ?表达式?表达式 2 2 :表达式:表达式 3 3 a、考试口诀:真前假后真前假后。 b b、注意是当表达式注意是当表达式 1 1 的数值是的数值是非非 0 时,才采用表达式时,才采用表达式 2 2 的数值做为整个运算结果,当表达的数值做为整个运算结果,当表达 式式 1 1 的数值的数值为为 0 时,时,就用表达式就用表达式 3 3 的数值做为整个的结果。的数值做为整个的结果。 c c、intint a=1a=1,b=2b=2,c=3c=3,d=4d=4,e=5e=5; k=abk=ab?c c:dede?d d:e;e;求求 k k 的数值时多少?的数值时多少?答案为答案为 sansan 5)switch 语句:语句: a)a) 执行的流程一定要弄懂!上课时候详细的过程讲了,请自己一定弄懂执行的流程一定要弄懂!上课时候详细的过程讲了,请自己一定弄懂! ! b b)注意有)注意有 breakbreak 和没有和没有 breakbreak 的差别,书上的两个例子,的差别,书上的两个例子,没有没有 breakbreak 时候,只要有一时候,只要有一个个 casecase 匹配了匹配了,剩下的都要执行剩下的都要执行,有有 breakbreak 则是直接跳出了则是直接跳出了 swicheswiche 语句语句。breakbreak 在在 C C 语言中就是语言中就是 分手,一刀两断的意思。分手,一刀两断的意思。 c)c) switchswitch 只可以和只可以和 breakbreak 一起用一起用,不可以和,不可以和 continuecontinue 用。用。 d)d) switch(x)switch(x)x x:是整型常量,字符型常量,枚举型数据。:是整型常量,字符型常量,枚举型数据。 casecase 1 1: : . .不可以是变量。不可以是变量。 casecase 2:2: . . e e)switchswitch 是必考题型,请大家一定要完成书上的课后的是必考题型,请大家一定要完成书上的课后的 switchswitch 的习题。的习题。 第四章第四章 1)三种循环结构:)三种循环结构: a a)forfor()() ; while()while();do-do- while()while()三种。三种。 b b)forfor 循环当中循环当中必须必须是是两个分号两个分号,千万不要忘记。,千万不要忘记。 c c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。 d)d) do-while()do-while()循环的最后一个循环的最后一个 while();while();的分号一定不能够丢的分号一定不能够丢。 (当心上机改错当心上机改错) ,dodowhilwhile e 循环是至少执行一次循环。循环是至少执行一次循环。 2) break 和和continue 的差别的差别 记忆方法:记忆方法: breakbreak:是:是打破打破的意思的意思, (破了整个循环)所以(破了整个循环)所以看见看见 breakbreak 就退出整个一层循环就退出整个一层循环。 continuecontinue: 是是继续继续的意思的意思, (继续循环运算(继续循环运算) ,但是,但是要要结束本次循环结束本次循环,就是循环体内剩下的,就是循环体内剩下的 语句不再执行,跳到循环开始,然后判断循环条件,语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环进行新一轮的循环。 3)嵌套循环)嵌套循环 就是有循环里面还有循环就是有循环里面还有循环,这种比较复杂这种比较复杂,要一层一层一步一步耐心的计算要一层一层一步一步耐心的计算,一般记住两层一般记住两层 是处理二维数组的。是处理二维数组的。 4) while( (c=getchar())!=n) 和和 while(c=getchar() !=n)的差别)的差别 先看先看 a a = = 3 3 !=!= 2 2和和 (a=3a=3) !=2=2 的区别:的区别: (!= =号的级别高于号的级别高于= =号号 所以第一个先计算所以第一个先计算 3 3!=2=2) 第一个第一个 a a 的数值是得到的的数值是得到的 1 1;第二个第二个 a a 的数值是的数值是 3 3。 考试注意点考试注意点: 括号在这里的重要性。括号在这里的重要性。 5)每行输出五个的写法:)每行输出五个的写法: forfor(i=0i=0;i*b*a*b)returnreturn a a;returnreturn a a 可以知道返回的是可以知道返回的是 a a 地址。地址。 elseelse returnreturn b b; mainmain()() intint x=7x=7,y=8y=8,*max*max; maxmax = = funfun(*p+2; ( (由于由于*p*p 指向变量指向变量, ,所以指向哪个就等价哪个,这里所以指向哪个就等价哪个,这里*p*p 等价于,可以相当于是等价于,可以相当于是 a=a+2)a=a+2) 第七章第七章 数组:数组: 存放的类型是一致的。多个数组元素的地址是连续的。存放的类型是一致的。多个数组元素的地址是连续的。 1 1、一维数组的初始化:、一维数组的初始化: intint a5=1,2,3,4,5;a5=1,2,3,4,5;合法合法 intint a5=1,2,3,a5=1,2,3, ;合法合法 intint a=1,2,3,4,5;a=1,2,3,4,5;合法合法, ,常考,后面决定前面的大小!常考,后面决定前面的大小! intint a5=1,2,3,4,5,6;a5=1,2,3,4,5,6; 不合法不合法,赋值的个数多余数组的个数了,赋值的个数多余数组的个数了 2 2、一维数组的定义;、一维数组的定义; intint a5a5;注意这个地方有一个重要考点,定义时数组的个数不是变量一定是常量。;注意这个地方有一个重要考点,定义时数组的个数不是变量一定是常量。 intint a5a5合法,最正常的数组合法,最正常的数组 intint a1+1a1+1合法,个数是常量合法,个数是常量 2 2,是个算术表达式,是个算术表达式 intint a1/2+4a1/2+4合法,同样是算术表达式合法,同样是算术表达式 intint x=5,intx=5,int ax;ax;不合法,因为个数是不合法,因为个数是 x x,是个变量,非法的,是个变量,非法的, definedefine P P 5 5intint aPaP合法,合法,definedefine 后的的后的的 P P 是符号常量,只是长得像变量是符号常量,只是长得像变量 3 3、二维数组的初始化、二维数组的初始化 intint a23=1,2,3,4,5,6;a23=1,2,3,4,5,6;合法,很标准的二维的赋值。合法,很标准的二维的赋值。 intint a23=1,2,3,4,5,a23=1,2,3,4,5, ;合法,后面一个默认为合法,后面一个默认为 0 0。 intint a23=1,2,3,a23=1,2,3, 4,5,6;4,5,6;合法,每行三个。合法,每行三个。 intint a23=1,2,3,4,5;a23=1,2,3,4,5;合法,第一行最后一个默认为合法,第一行最后一个默认为 0 0。 intint a23=1,2,3,4,5,6,7;a23=1,2,3,4,5,6,7;不合法不合法,赋值的个数多余数组的个数了。,赋值的个数多余数组的个数了。 intint a3=1,2,3,4,5,6;a3=1,2,3,4,5,6;不合法不合法,不可以缺省行的个数。,不可以缺省行的个数。 intint a2=1,2,3,4,5,6;a2=1,2,3,4,5,6;合法,可以缺省列的个数合法,可以缺省列的个数。 补充:补充: 1 1)一维数组的重要概念:)一维数组的重要概念: 对对 a10a10这个数组的讨论。这个数组的讨论。 、a a 表示数组名,是第一个元素的地址,也就是表示数组名,是第一个元素的地址,也就是元素元素 a0a0的地址的地址。 (等价于等价于 ; f=add; 赋值之后:合法的调用形式为、赋值之后:合法的调用形式为、add(2add(2,3)3); 、f(2f(2,3)3); 、 (*f*f) (2 2,3 3) 9 9)两种重要的数组长度:)两种重要的数组长度: charchar a=a=a a, ,b b, ,c c;数组长度为,字符串长度不定。数组长度为,字符串长度不定。sizeof(a)sizeof(a)为。为。 charchar a5=a5= a a, ,b b, ,c c 数组长度为,字符串长度。数组长度为,字符串长度。sizeof(a)sizeof(a)为。为。 1010)scanfscanf 和和getsgets 的数据:的数据: 如果输入的是如果输入的是goodgoodgoodgoodstudystudy! 那么那么 scanf(scanf(“%s%s”,a);,a); 只会接收只会接收good.good.考点:不可以接收空格。考点:不可以接收空格。 gets(a);gets(a); 会接收会接收goodgood goodgood study!study!考点:可以接收空格。考点:可以接收空格。 1111)共用体的考查:)共用体的考查: unionunion TTTT intint a;a; charchar ch2;ch2; 考点一:考点一:sizeofsizeof (struct(struct TT)TT) = = 4;4; 12)12)“文件包含文件包含”的考查点:的考查点: o2.c #include”no2.c” main() add(29 , 33); . int add(int a,int b) return a+b; 这里一个这里一个 C C 语言程序是有两个文件组成,分别是语言程序是有两个文件组成,分别是 o1.c, o2.c。那么。那么 o1.c 中最开始有中最开始有 个个#include#include”o2.c”他表示把第二个文件的内容给包含过来他表示把第二个文件的内容给包含过来,那么那么 o1.c 中调用中调用 add()add()函数的函数的 时候就可以了把数值传到时候就可以了把数值传到 o2.c 中的被调用函数中的被调用函数 add()add()了。了。 一个文件必须要有一个文件必须要有 mainmain 函数。函数。这句话错了。这句话错了。例如:例如:o2.c 就没有。就没有。 头文件一定是以头文件一定是以.h.h 结束的。结束的。这句话错了。例如:这句话错了。例如:o1.c 中就是中就是#include#i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论