C语言试题、学习、考试大全、历年真题23.doc_第1页
C语言试题、学习、考试大全、历年真题23.doc_第2页
C语言试题、学习、考试大全、历年真题23.doc_第3页
C语言试题、学习、考试大全、历年真题23.doc_第4页
C语言试题、学习、考试大全、历年真题23.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

第一部分 C语言基础知识1. C程序高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,而“编译程序”是指可以把源程序转换成目标程序的软件。由C语言构成的指令序列称为C源程序,源程序文件的后缀名为.C或.CPP。源程序经过C编译程序编译后生成后缀为.OBJ的二进制文件,然后由连接程序,把OBJ文件与C语言提供的各种库函数连接起来,生成后缀为“.EXE”的可执行文件。2. 结构化程序结构化程序的三种结构:顺序结构,循环结构(while、 do-while、for),选择结构(if、if-else、if-else-if、switch)结构化程序设计的思想:模块化的设计方法。3. 主函数(main函数)每个C 语言程序中main 函数有且只有一个。程序的执行从主函数开始,到程序执行完后,从主函数结束。(源程序由主函数和若干个子函数组成,而主函数在源程序的位置可放在任意位置。)4. 函数的组成源程序是由函数组成的。函数是源程序的基本模块,通过对函数模块的调用实现特定的功能。语言提供了极为丰富的库函数(三百多个库函数),如果要使用库函数必须在程序前面加上#include ”库函数名.h”的头文件,头文件一般有stdio.h、math.h、stdlib.h、string.h、process.h、time.h等等。还允许用户建立自己定义的函数。定义一个函数时,函数由函数首部和函数体组成。函数定义的一般格式:类型说明符 函数名(形参列表) /* 函数首部的定义*/ 说明部分;执行部分; /*函数体*/ 函数体通常包括说明部分和执行部分,说明部分和执行部分都由若干条语句组成。C语言的语句由表达式加分号组成,也可以说每条语句都必须以分号结尾。在函数定义中不可以再定义函数。即不可以嵌套定义函数,但可以嵌套调用函数。在语言中可从不同的角度对函数分类。 从函数定义的角度看,函数可分为库函数和用户定义函数两种。 1) 库函数:由系统提供,用户无须定义,也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。2) 用户定义函数:由用户按需要写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。 从函数返回值来看,函数可分为有返回值函数和无返回值函数两种。 从参数角度来看,函数可分为无参函数和有参函数两种。5. 编译预处理编译预处理不是C语言的一部分,不占运行时间,不加分号。6. 程序中的注释C 语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。编写注释的规则(1)/*和*/必须成对出现;(2)/*和*/之间的内容为注释,可以用中文,英文,可以出现在任何位置;(3)不可以再嵌套,也不可能在/和*号之间加内容。7. 源程序书写格式一行可以写几个语句,一个语句也可以分写在多行上;每个语句和数据定义的最后必须由一个分号结束;8. C语言的32个关键字序号关键字含义1short声明短整型变量或函数2int声明整型变量或函数3long声明长整型变量或函数4float声明浮点型变量或函数5double声明双精度变量或函数6signed声明有符号类型变量或函数7unsigned声明无符号类型变量或函数8char声明字符型变量或函数9struct声明结构体类型10enum声明枚举类型11union声明共用体类型12auto声明自动存储类型13register声明寄存器存储类型14static声明静态存储类型15extern声明外部存储类型16const声明只读变量17volatile说明变量在程序执行中随时可能发生变化18return函数返回语句(可以带值,也可不带值)19break跳出当前循环或switch结构20continue结束当前循环,开始下一轮循环21for循环语句22do与while构成循环语句23while循环语句24switch多选择语句25case与switch构成多选择语句26default与switch构成多选择语句27goto无条件跳转语句28if选择语句29else与if构成选择条件语句30void声明函数无返回值或声明无类型指针31typedef自定义类型32sizeof求字节数运算符注意:在C语言中,关键字都是小写的。9. 标识符 所谓标识符(用户标识符)就是C语言中的变量名、函数名、数组名、文件名、类型名等。C语言合法标识符的命名规则,由字母、数字、下划线组成,且必须是由字母或下划线开头的非C语言关键字。标识符严格区分大小写;不能用关键字。注意: main 、define、 scanf、 printf 都不是关键字都可以做为用户标识符号。而If 也可以做为用户标识符。因为If 中的第一个字母大写了,所以不是关键字。 10. 整型数据整型常数 根据整型数据所占的位数,可以计算一个整型数据能表示的数据的取值范围。通常情况下的常整数按2个字节存储,若按长整型处理,需在数的末尾加小写字母l或大写字母L。整数的存储是以补码形式存储(原码、反码、补码);第位是符号位,如果符号位为0,表示是正整数,从到15位全为1时表示的数最大。则16bit能表示的最大整数是215 1 ,即32767。最小的整数是-32768整型常量(数)的分类十进制表示一般表示为正整数八进制表示 以数字 0开头十六进制表示 以数字0x开头注意:如果整型常量超过机器所能表示的范围,则会发生溢出,而在C语言中的整数溢出并不会使程序出错,而是得到一个非正确的值。 整型变量按照整型变量所占的二进制位数来分类:short(短整型) 2字节int (普通整型)4字节long (长整型) 4字节根据整型变量是否带符号位来分类:不带符号的整型变量(无符号用关键字unsigned表示,unsigned short、 unsigned int unsigned long )带符号的整型变量11. 实型数据实型常量(数)浮点小数形式(不能省略小数点,但小数点前后若为零时可省略零)。如下列实数都是合法的, 210.35 2.345 .345 56.指数形式 常用形式, 。e(或E)两边都至少有一位数,b必须为整数(范围为1到3位的整数),可以为负或正,正号可以省略。如 0.345E+2、1E-12为合法的指数形式,而e-2、E2、1.3E1.3、 1.3E、 1.3E9999为非法指数形式。浮点常量在存储时按double类型存储,即占64位(bit)。浮点常量也象整型常量一样,如果浮点常量超过机器所能表示的范围,则会发生溢出。浮点溢出也不会使程序出错,而是得到一个非正确的值 。实型变量单精度浮点数(float) 4字节双精度浮点数(double) 8字节注意:不管是单精度数还是双精度数,在计算机中存放都以双精度数存放。输出时小数点后都只能按四舍五入保留6位小数。12. 字符型数据在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。一个字符变量只能存储一个字符。标准ASCII编码是把每个字符与0127的数值联系起来,用7位二进制表示,再将最高位置0,构成一个字节。在ASCII编码表中,A用数值65表示,a用数值97表示0用数值48表示。空格用数值32表示。C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时要相当于对它们的ASCII码进行算术运算。值的注意的是,字符数据只占一个字节,它只能存放0255之间的整数。字符常量用单引号将一个字符括起来,如A、a、101、x4113. 转义字符转义字符以反斜线开头,后跟一个或几个字符。 常用的转义字符及其含义转义字符含 义ASCII码/值n换行10t横向跳到下一制表位置9b退格8r回车13f走纸换页12反斜线符92单引号符39双引号符34a鸣铃7ddd13位八进制数所代表的字符0dddxhh12位十六进制数所代表的字符0xhh广义地讲,语言字符集中的任何一个字符均可用转义字符来表示。表中的ddd和xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如101表示字母A,102表示字母B,134表示反斜线,XOA表示换行等。 要点: a 是字符占一个字节,a是字符串占两个字节(含有一个结束符号)。 14. 强制类型转换 类型转换包括自动类型转换和强制类型转换。自动类型转换,不同类型的数据进行运算时,系统会自动将运算优先级别低的转换成级别高的,结果和运算级别高的数据类型一样。在赋值表达式中赋值运算符两边类型不一样时,系统会自动将右侧表达式的类型转换成左侧的变量类型,然后再赋值。强制类型转换在运算时强制转换为所需要的数据类型,但不改变原来数据的类型。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。 注意(int)(a+b) 和(int)a+b 的区别。 前者是把a+b 强制转换整型,后都是把a 的类型强制转换为整型再加b 。 15. 运算符与表达式运算符的优先级与结合性,以及C语言合法表达式的书写与表达式的求值(所有表达式都的值)。 知识要点: (1)赋值表达式:赋值表达式的赋值号左边为变量。 (2)算术表达式:“%”:要求参与运算的量均为整型。 求余运算的结果等于两数相除后的余数。 “/”:若两边操作数都是整型,其结果必为整型。(3)自加、自减表达式:有定义int a=5; 表达式+a值为6,表达式a+值为5; 运算原则:+i i自增1,其表达式+i的值为i自增后的值。-i i自减1,其表达式-i的值为i自减后的值。i+ i自增1,其表达式i+的值为i自增前的值。i- i自减1,其表达式i-的值为i自减前的值。 (4)逗号表达式:优先级别最低 ; 表达式的数值逗号最右边的那个表达式的数值。 (5)关系表达式:关系表达式的结果为1或0; (6)逻辑表达式:逻辑表达式的结果为1或0; 逻辑表达式的求值规则如下: 对于逻辑与运算,如果第一个操作量的值为“假”,系统不再判定或求解第二操作量。对于逻辑或运算,如果第一个操作量的值为“真”,系统不再判定或求解第二操作量。在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所有的表达式都被求解)。(7)位运算表达式:几乎所有的位运算的运算原则先把十进制转换成二进制,再将二进制转换十进制。 在没有舍去数据的时候,右移一位表示除以2。 第二章 输入输出函数在语言中,所有的数据输入输出都是由库函数完成的。在使用语言库函数时,要用预编译命令 #include 将有关“头文件”包括到源文件中。 标准输入输出库函数时要用到 “stdio.h”文件(stdio是standard input &outupt)因此源文件开头应有以下预编译命令: #include 或 #include ”stdio.h” 1)printf 函数的格式:printf(“格式控制字符串”,输出表列) 格式字符说明如下:格式字符 意 义 d 以十进制形式输出带符号整数(正数不输出符号) md或-md当列宽有余时空格加左或右,当列宽不够不起作用ld以十进制形式输出带符号长整数o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀Ox) u 以十进制形式输出无符号整数 f lf以小数形式输出单、双精度实数 m.nf以小数形式输出,共计m列,其中小数位数占n列,当超过共计时m不起作用。e,E 以指数形式输出单、双精度实数 g,G 以%f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 要点:格式说明个数与输出项个数应一一对应,若格式说明个数与输出项个数不同时,格式说明的个数大于输出项的个数时,输出项正常输出后其后会出现随机信息。当格式说明的个数小于输出项的个数时,只输出与格式说明个数相同的输出项的信息,其后的不输出。输出项可以是常量、变量、表达式。 2 )scanf 函数的格式:scanf(“格式控制字符串”,地址表列); 格式符和意义如下表所示。 格式 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串 修饰符含 义*对应的数据输入后不赋给相应的变量,即跳过该输入值 如:scanf(%d %*d %d,&a,&b); 当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。 用十进制整数可以指定输入的宽度(即字符数)。 例如:scanf(%4d%4d,&a,&b); 输入:1234567890 将1234赋予a,5678赋予b,其余部分被截去。 使用scanf函数还必须注意以下几点: (1) scanf函数中没有精度控制,如:scanf(%5.2f,&a);是非法的。不能企图用此语句输入小数为2位的实数。 (2) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。 (3) 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 3)putchar函数,只输出一个字符 putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。 其一般形式为: putchar(字符变量)或putchar(字符常量)例如: putchar(A); (输出大写字母A) putchar(x); (输出字符变量x的值) putchar(101); (也是输出字符A) putchar(n); (换行),4)getchar()函数 getchar函数的功能是从键盘上输入一个字符。 其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句,如: char c; c=getchar();5)puts()函数,输出字符串 puts()函数的格式:puts(字符串表达式)功能:将一个字符串输出到终端(显示器),并换行。6)gets()函数,输入字符串gets()函数的格式:gets(字符串首地址)功能:从终端(键盘)输入一个字符串到字符数组。该函数返回值是字符数组的首地址。第三部分 结构化程序结构 1.结构化程序设计的三种结构:顺序结构、选择结构和循环结构。2.逻辑值:c 语言中是用非 0 表示逻辑真值,用 0 表示逻辑假值。 3.选择结构分为:单分支结构(if)、双分支结构(if-else) 和多分支结构(if-else-if),用 switch实现多分支结构。 3.if与else的匹配原则:else 与其前最近的并且末配对if相匹配。4.条件表达式表达式1? 表达式2: 表达式3 其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件运算符的结合方向是自右至左。 例如:ab?a:cd?c:d 应理解为 ab?a:(cd?c:d)5.选择结构与条件表达式的相互转换:6.switch 语句: 语言提供了另一种用于多分支选择的switch语句, 其一般形式为: switch(表达式) 该表达式只能是整形或字符型表达式,若为实型,将其自动转换。 case常量表达式1: 语句1; break;case常量表达式2: 语句2; break; case常量表达式n: 语句n; break;default : 语句n+1; 执行过程:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,如果不加break语句则不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。 7.三种循环结构: (1)for (表达式1;表达式2;表达式3); while(条件表达式) do- while(条件表达式) (2)循环执行的条件表达式2或条件表达式的值为非零。 (3)编写程序的时要注意,不能构成死循环。 (4)三种循环可以相互转换。 (5)嵌套循环8. break 和 continue(1)break :用于 switch结构和循环结构,中断所在的结构。 (2)continue:只能用于循环结构。中止本次循环,继续下一次循环。就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件是否成立,进行新一轮的循环。 第四部分 函数 函数是源程序的基本模块,通过对函数模块的调用实现特定的功能。用户自定义函数的正确定义以及正确调用。在程序中,一个函数的定义可以放在任意位置;不能在函数的内部再定义函数;定义一个函数包含的因素:函数的类型,函数名,函数的参数;1函数的定义 无参函数的定义形式 函数返回值类型 函数名() 声明部分; 语句; 有参函数的定义形式 函数返回值类型 函数名(形式参数表列) 声明部分;语句; 在函数定义时,函数返回值类型若省略,则视为int类型函数2函数的返回值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。(1) 函数的值只能通过return语句返回主调函数。 return 语句的一般形式为: return 表达式; 或 return (表达式);在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。 (2) 函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。 (3) 如函数值为整型,在函数定义时可以省去类型说明。 (4) 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。 3函数调用语言中,函数调用有两种形式:(1)无返回值函数调用函数名(实际参数表) ; (2)有返回值函数调用,通常情况用在赋值表达式,输出项等等。 C=函数名(实际参数表) ;4形式参数(形参)和实际参数(实参) 形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 函数的形参和实参具有以下特点: (1) 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。 (2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。 (3) 实参和形参在数量上,类型上,顺序上应严格一致。(4) 函数调用中的数据传送的两种方式,一是数值传递,此传递是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。 另一是地址传递,此传递是双向的。在函数调用过程中,形参的值发生改变,而导致实参中的值发生变化。5. 被调用函数的声明和函数原型 在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。 被调用函数声明的一般形式为:类型说明符 被调函数名(类型 形参,类型 形参); 或为: 类型说明符 被调函数名(类型,类型); 语言中规定在以下几种情况时可以省略在主调函数中对被调函数的函数声明。 (1)被调函数的返回值类型是整型或字符型时,可省略,而直接调用。(2)被调函数的函数定义出现在主调函数之前时,可省略,而直接调用。(3)如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作说明。6函数嵌套调用和递归调用(1)函数嵌套调用语言中不允许作嵌套的函数定义。因此各函数之间是平行的。但是语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。 (2)递归调用(嵌套调用的一种特殊情况)一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。 第五部分 局部变量和全局变量及变量的存储类别基础知识:按作用域范围可分为两种,即局部变量和全局变量从变量值存在的生存期来分,可以分为静态存储方式和动态存储方式。 这部分的内容掌握基本概念和静态变量的读程。1局部变量 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。 关于局部变量的作用域还要说明以下几点: 1) 主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。 2) 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。 3) 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。 4) 在复合语句中也可定义变量,其作用域只在复合语句范围内。 2 全局变量 全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是从它定义的位置开始到整个源程序结束。如果同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。 3.变量的存储类别 静态存储方式:是指在程序运行期间分配固定的存储空间的方式。 动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。 (1)auto变量 函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明(也可以省略)。 (2)用static声明局部变量 (重点)有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,这时就应该指定局部变量为“静态局部变量”,用关键字static进行声明。 f(int a) auto b=0; static c=3; b=b+1; c=c+1; return(a+b+c); main() int a=2,i; for(i=0;i3;i+) printf(%d,f(a); 对静态局部变量的说明: 1) 静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部变量)属于动态存储类别,占动态存储空间,函数调用结束后即释放。 2) 静态局部变量在编译时赋初值,即只赋初值一次;而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。 3) 如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。 (3) register变量 (了解)为了提高效率,C语言允许将局部变量得值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。 int fac(int n) register int i,f=1; for(i=1;i=n;i+) f=f*i return(f); main() int i; for(i=0;iy?x:y; return(z); main() extern A,B; printf(%dn,max(A,B); int A=13,B=-8;第六部分 指针、数组一、地址和指针在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元数不等,如整型量占4个单元,字符量占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编上号。内存单元的编号也叫做地址。根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。 在语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。 二、数组的基础知识: 一个数组是由连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素(下标变量)组成的。每个数组元素按其类型不同占有几个连续的内存单元。一个数组元素的首地址也是指它所占有的几个内存单元的首地址。一维数组的概念:若已有定义,int a10; 1、a 表示数组名,是一维数组的首地址,即是第一个元素的地址,即 a 也就是元素 a0的地址。 2、首地址是地址常量,不能对数组名进行赋值,即a+,a=a+2都是非法的。 3、a 数组名是列指针,也就是说a+1 是跳一列。 4、数组元素占用连续空间。 5、数组名不能与其它变量名相同。 二维数组的概念:若已有定义, int a33; 、a 表示数组名,是二维数组的首地址,也是第一个元素的地址,是元素 a0的地址。 、a 是二维数组名,是行指针,即a+1 是下移一行。 3、a0、a1、a2也都是地址常量,它们都是列指针,a0+1,a1+1,a2+1 都是跳一列。 三、指针与一维数组若已有定义 int a10, *p;则 p=&a0等价于 p=a,都是使指针变量指向一维数组的第一数组元素。 C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。1、 p+i和a+i就是ai的地址,或者

温馨提示

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

评论

0/150

提交评论