C语言入门笔记.doc_第1页
C语言入门笔记.doc_第2页
C语言入门笔记.doc_第3页
C语言入门笔记.doc_第4页
C语言入门笔记.doc_第5页
已阅读5页,还剩236页未读 继续免费阅读

下载本文档

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

文档简介

C语言入门学习笔记 -GoLonny.- allenboogmail. 目录第1章 C语言概论第2章 数据类型与表达式第3章 顺序结构设计第4章 选择与循环结构程序设计第5章 数组第6章 函数与编译预处理第7章 指针第8章 结构体与共用体第9章 位运算第10章 文件真的不掉线吗?、?第1章C语言概论1.1简介C语言是一门计算机语言。重点在语言两个字,犹如我们学英语一样,我们要去了解它的规则及表达方法,并且,很多东西就是那个东西,没有为什么,比方,你问,that的意思为什么是那个,答案是,就是那个,没有原因。C语言是在20世纪70年代问世的。1978年美国电话电报(AT&T)贝尔实验室正式发表了C语言。与此同时,B.W.Kernighan和D.M.Ritchit合著的The C Programming Language(强烈推荐)一书,该书并没有定义一个完整的标准C语言,后来由美国国家标准协会(ANSI)在吃基础上制定了一个C语言标准,与1983年发表,通常称之为ANSI C。C语言的特点:1. 语言简洁、紧凑,使用方便、灵活。2. 运算符丰富。3. 丰富的数据类型。4. 具有结构化的控制语句。5. 语法限制不严格,程序设计自由度大。6. 允许直接访问物理地址。7. 生成目标代码质量高,程序执行效率高。C语言一般是从上往下看(执行)的,好比你去外婆家,虽然可能中途遇到同学停顿说说话,或者遇到沟垮了过去,再或者绕到去朋友家玩玩,但总体,你还是一直朝外婆的家去的。C语言分三种结构:顺序结构、选择结构、循环结构。例1.编写显示字符串:Hello,World!的程序。main() printf(Hello,World!n); 本程序的作用是输入一下一行信息:Hello,World!其中,真的不掉线吗?、?其中,main是主函数名,每一个C语言程序都必须有一个main函数,其后的括号是函数的标志。且所有的C程序,都是从main函数开始执行的。Printf是C语言中的输出函数,双引号内的而字符串原样输出。n是换行符,即在输出Hello,World!后回车换行,语句最后有一个分号。C语言常见特性:1. C程序是由函数构成的。一个C原程序至少包含一个main()函数。2. 书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。3. 每个语句和数据定义的最后必须有一个分号4. 可以用/*注释*/对C程序中的任何部分作注释。5. 一个C程序总是从main函数开始执行的,而不论main()函数在整个程序中的位置如何。1.2算法算法,就是为解决一个问题而采取的方法和步骤。著名计算机科学家Nikiklaus Worth提出了程序定义的著名公式:程序=数据结构+算法一个好的算法一般应具有以下特点:1. 有穷性2. 确定性3. 有输入4. 有输出5. 可行性算法的描述有自然语言、传统流程图、结构化流程图等。流程图是用一些图框来表示各种操作的。C语言字符集、标识符与关键字真的不掉线吗?、?C语言基本字符: 字母: 26个小写字符az与26个大写字母AZ 数字: 0-9 共10个字符 空白符: 空格符、制表符、换行符等统称空白符(只在字符常量和字符串常量中起作用,其他地方出现,只起间隔作用 标点和特殊字符,如逗号、分号等。 标识符命名规则:以字母或下划线开头C语言区别大小写C语言中,要求所有用到的标识符“先定义后使用”关键字: 指C语言中含有特定含义的标识符,由c语言集成环境定义和使用的,用户不能更改,只能使用,用户自己定义的标识符不能与之重名。 auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while。所谓程序,就是一组计算机能识别和执行的指令用高级语言编写的程序称为“源程序”(source program)为了计算机能执行高级语言程序,必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”,然后将该目标程序与系统的函数库和其他目标程序连接起来,形成可执行的目标程序。真的不掉线吗?、?第2章数据类型与表达式2.1c语言数据类型 从数据类型的应用角度出发,数据类型的基本含义:A.数据类型规定了该类型中的数据取值范围;B.数据类型定义了一个运算集,不同的类型的数据拥有不同的运算关系;C.数据类型定义了数据在计算机内的存储形式以及在书写中的表示方式。C语言规定,任何数据都必须有明确的数据类型 整型 基本类型 字符型 实型 单精度实型 双精度实型 枚举型数据类型 数组 构造类型 结构体 联合 指针类型 空类型C语言中数据有常量与变量之分,他们分别属于这些类型2.2常量与变量 1.常量 其值不能被改变的量 整型常量,如15;实型常量,如5.2;字符常量,如h;有字符串常量,如chinea 常量不占用内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中,使用时可以不需要类型说明。 2.符号常量 用一个标识符,来代表一个常量,称为符号常量,起一般形式为: #define 符号常量名 常量例子:#include #define PI 3.14main()float r,s,v;scanf(%f,&r);真的不掉线吗?、?s=PI*r*r;v=4.0/3*PI*r*r;printf(s=%f,v=%fn,s,v);符号常量的命名规则遵循标识符命名规则,但习惯上符号常量名用大写,变量名用小写,以区别。 符号常量不同于变量,它的值在其作用域内不能改变,也不能再被赋值。2. 变量 其值可以改变的量称为变量 变量有两个基本要素:变量名 变量类型,其类型决定了变量在内存中要占据的若干字节的存储单元。C中,变量一定要先定义,后使用。 类型 变量名表如 int i,j,num; 说明:A.变量名可以是c语言中的合法标识符,定义时应遵循:见名知意 的原则,以便程序的维护 B.每个变量都必须进行类型说明C.当一个变量被指定为某一确定类型时,将为它分配若干相应字节的内存空间,如char 为1个字节,int 2,float 4 ,double 8. 不同的系统可能会有差异。2.3.整型数据2.3.1.整型常量的表示方法C中,数值型常量都带有符号,整型常量只区别整型和长整形两种形式,而没有无符号值型常量。整型常量通常有以下3种形式表示:1. 十进制整型常量,如 124, 0,2. 八进制整型常量,以0开头的八进制数字串,如015,表示13,3. 十六进制整型常量,以0x或0X开头的数字串,串中只能含有0-9,a-f2.3.2整型变量数据在内存中式以二进制形式存放的。存放的是补码 正数的补码和其原码相同, 负数的补码:将该数的绝对值的二进制形式,按位取反再加1整数的16位中,最左面的一位表示符号位,0正1付整型变量的分类整型变量的基本类型int ,分基本整型,短整型short,长整型long基本整型:int -32768-32767 -2de15-(2de15-1)短整型:short int或 short真的不掉线吗?、?长整型:long int 或 longunsigned 无符号数,signed有符号数,缺省隐含为有符号数(signed)有符号基本整型 signed int 有符号短整型 signed short int有符号长整型 signed long int无符号基本整型 unsigned int0-65535无符号短整型unsigned short int无符号长整型unsigned long int一个无符号整型变量中可以放的整数的范围比一般整型变量中的正数范围扩大一倍,其中除long型为4字节外,均为2字节C语言规定在程序中要用到的变量都必须先定义,对变量的定义一般都放在函数开始部分的声明部分例子#includevoid main()int a,b,long c;unsigned e;a=-1;b=523;c=623789;e=89;printf(a=%d,b=%d,c=%ld,e=%un,a,b,c,e);整型变量初始化int a=3;int a,b,c=3;int a=3,b=4;溢出2.4 实型数据整型常量是精确的量,而实型常量是具有一定精度的量。C语言中,实数又称为浮点数,有两种表现形式十进制小数形式 如 34.1,0.034,0.0,123.0指数形式 如 3.4e1,123e0,12.3e1,1.23e2(规范化的指数形式,即字母e或E之前的小数部分中,小数点左边应有一位且只能有一位非零的数字)存放形式:不管是小数形式还是指数形式,都以 指数形式 存放真的不掉线吗?、?实型变量分类:单精度型float 4字节 6-7位有效数字 10de-38-10de38双精度型double 8字节 15-16 10de-308-10de308长双精度型long double 16位 18-19 10de-4932-10de4932float x;x=4615.123456;由于float变量只能接受7位有效数字,x的值只有4815.123是有效的,改为double型则能完全接受上述10位数字并存储在变量x中2.5字符型数据字符常量 用单引号括起来的一个字符,如a,A, 开头的字符序列,特殊的字符常量n换行,将当前位置移到下一行开头ASCII代码10t水平制表 9b退格,将当前位置移到前一列 8r回车,将当前位置移到本行开头 13f换页,将当前位置移到以下开头 12 反斜杠字符 92单引号字符 39双引号字符 347ddd1到3位八进制数所代表的字符xhh1到2位十六进制所代表的字符以上列出的支付称为转义字符,意思是将 后面的字符转换成别的意思。内存中,每个字符常量占用一个字节,具体存放的是对应的ASCII代码值。字符变量定义形式:char c1,c2=B; #includevoid main()char c1,c2;真的不掉线吗?、?c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c %cn,c1,c2);printf(%d %dn,c1,c2);ASCII码中每一个小写字母比它相应的大写字母的码大32字符串常量 CHINA ,I am a student.,存储方式:字符串中的每一个字符以其ASCII码值的二进制形式存储在内存中,系统自动在该字符串的末尾加一个字符串结束标识 0 ,puter实际上在内存中的是 c o m p u t e r 0它的长度是8而不是9,最后的0在输出时并不输出,仅仅作为处理时的结束标识。C语言没有专门的字符串变量,如果想吧一个字符串放到变量中保存起来,必须使用字符数组,数组中每一个元素存放一个字符。2.6运算符和表达式运算符 C语言提供了多种运算符,把除了控制语句合输入输出以外的几乎所有的基本操作都作为运算符处理,按功能:算术运算符、关系运算符、逻辑运算符、逗号运算符、位运算符、赋值运算符。要求不同的操作数 及优先级表达式 不管表达式多么复杂,都有一个值算术运算符和算术表达式+加法运算符- 减法运算符 *乘法运算符 以上三个,操作数可以是整型或实型的常量、变量和函数 /除法运算符 5/2.0=2.5,5/2=2, 向零取整,%求余运算符两边必须是整数,后面不能为零,3%2=1算术运算符的结合方向全部都是“右向性”,自增自减运算符 +k与k+-k 与k-真的不掉线吗?、?使变量增1或减1前置时,整个表达式的值为变化后的值,后置时,整个表达式的值为变化前的值只能用用于变量,不能用于常量或者表达式,左向性,这两个运算符经常用在循环语句中,对循环变量增1减1,用来控制循环的执行次数。赋值运算符和赋值表达式= += -= *= /= %= = &= = |=x+=3,等价于x=x+3赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。其一般形式为:变量 赋值运算符 表达式如果赋值运算符两侧的变量和表达式的类型不同时,系统将自动进行类型转换,以左边的类型为准。右结合性,即从右向左进行运算。逗号运算符和逗号表达式 表达式1,表达式2,表达式n 整个表达式的值为n的值逗号表达式用的地方不多,一般式在for语句中给循环变量赋初值时才用到。程序中并不是所有的逗号都要看成逗号运算符,尤其是在函数调用时,各个参数是用逗号隔开的。条件运算符 表达式1?表达式2:表达式3先求表达式1的值,非零求2的值,零求3的值,并把它作为整个表达式的值。右结合性2.7 不同类型数据间的混合运算不同类型的数据放在一起运算时,需要转换为相同的数据类型。两种方法:自动转换(隐式转换),强制转换(显示转换)。1. 自动转换 高 double float long unsigned 低 int short,char横向的必定转换,当遇到 short、char时,系统一律转换为int参与运算2. 赋值类型的自动转换以赋值表达式左边的为准3. 强制类型转换(类型名)(表达式)如 int a;(double)a; /*将a转换为double类型*/真的不掉线吗?、?在强制类型转换时,得到一个所需的中间变量,原来的类型未变,a仍是int型第3章顺序结构设计3.1c语言基本语句一个实际的程序师一系列语句的集合,每条语句是一条完整的计算机指令,是用来完成一定任务的,并且带有某种必需的标点。C语言中,语句结束处用一个分号标识legs=4 是一个表达式legs=4; 是一个语句声明部分的内容不用称为语句,如int a;这不是一个条c语句,只是对变量的定义,因为它没有对数据进行操作,亦即语句说明是一种行为。C语句分类:(1) 控制语句:用来完成一定的控制功能。C语言中有9种控制语句if().else.条件语句for().循环语句while().循环语句do.while();循环语句continue结束本次循环语句break中止执行switch或循环语句switch多分支语句goto转向语句return从函数返回语句(2) 函数调用语句:由一次函数调用加一个分号构成一条语句 如 printf();(3) 表达式语句 一个表达式加一个分号(4) 空语句 ;(5) 复合语句 t=a;a=b;b=t; 最后的分号不能省略。C语言程序写法灵活,既允许一行写多条语句,也允许一条语句拆开写在几行上。真的不掉线吗?、?3.2 数据输入与输出C语言没有定义任何处理输入输出的关键字,而是用库函数完成输入输出。C语言的输入输出系统包含许多函数,位于一个名为stdio.h(标注输入输出库)的头文件里,因此,每一个C语言程序的开始都要用到预编译命令#include 或#includestdio.hgetchar() putchar() 分别从键盘读一个字符或向显示屏写一个字符getchar()先将输入字符放到缓冲区里,等待回车键,当敲入回车键后才获取所输入的字符并把结果显示到显示屏上 int getchar(void)putchar()把传入的字符写在显示屏的当前光标处 int putchar(int ch)char c;c=getchar();putchar(c);*getchar()一次只能接收一个字符,putchar()亦然*getchar()接收到的字符可以赋给inthuo char,也可以不赋值,而直接作为表达式的一部分。上例中 putchar(getchar();getch() getche() 位于conio.h 直接从键盘接收输入的字符,不需要等待回车确认getch()读入的字符不回显,getche()要显示格式化输入与输出printf() scanf() stdio.hprintf(control-string,item1,item2,.);contro-string控制字符串,是用双引号括起来的字符串,是一个描述项目如何打印的字符串,有两种信息:显示到显示屏上的普通字符,原样输出的;格式说明符(format specifier),用于定义相应变量的打印格式,格式说明符由百分号%开始,然后紧随格式字符%c一个字符%d有符号十进制数%e浮点数,e计数法%E浮点数,E计数法%f浮点数,十进制计数法%g根据数值不同自动选择%f或%e,%e在指数=精度时使用%G %f %E %E%i有符号十进制整数 与%d相同%o无符号八进制整数%p指针%s字符串%u无符号十进制整数%x使用十六进制数字0f的无符号十六进制整数%X 0F%打印一个百分号真的不掉线吗?、?prinf()修饰符digit字段宽度最小值.digit精度h和整数格式说明符一起使用,表示一个short int 或unsigned short intl long longL和浮点数格式说明符一起使用,表示一个long double类型数值标志左对齐+有符号数若为正数,则显示加好,负号亦然(空格)有符号数若为正数,带前导空格,负号加显示负号#使用格式说明的可选形式,若为%o,则以0开始,对于浮点数形式,#保证了即使不跟任何数字,也打印一个小数点字符。0对于所有的数字格式,用前导零填充字符宽度。出现或指定了精度忽略scanf()函数的功能是:从标准输入设备(键盘)读取输入的信息,其参数列表里使用的是指向变量的指针。 scanf(%d,&a);修饰符补充:*本项读入后略去 如scanf(%2d%*3d%2d,&a,&b);输入1234567回车,则系统将12给a,345略去,67给bdigit最大字段宽度,在达到最大字段宽度或遇到第一个空格字符时停止对输入项的读取l用于输入long int 整型%ld%lo%lx以及double型数%lf,%leh用于输入short int 型数。*如果在字符控制串中除了格式说明符以外还有其他字符,则在输入数据时应输入与这些字符相同的支付,如scanf(%d,%d,&a,&b); 输入时用右边形式:3,4回车*用%c格式输入字符时,空格和转义字符都作为有效字符输入*输入数据时,遇到以下情况认为当前数据输入结束:遇到空格字符,或回车,或TAB键遇到满足最大字段宽度时认为结束,如%2d,只取两位数遇到非法输入时,当使用多个scanf函数连续给多个字符型变量赋值是,注意输入的方法,如scanf(%c,&c1);scanf(%c,&c2);要使c1为A,c2为B,应输入AB回车程序举例:*从键盘输入一个大写字母,改用小写字母输出#include #include void main()真的不掉线吗?、?char c1,c2;c1=getch();c2=c1+32;printf(n%c,%dn,c1,c1);printf(n%c,%dn,c2,c2);*输入三角形的三边,用海伦公式求三角形面积#include#include#includevoid main()float a,b,c,p,area;printf(Enter a,b,c:);scanf(%f,%f,%f,&a,&b,&c);p=(a+b+c)/2.0;area=sqrt(p*(p-a)*(p-b)*(p-c);printf(a=%7.2f b=%7.2f c=%7.2f p=%7.2fn,a,b,c,p);printf(area=%7.2fn,area);getch();真的不掉线吗?、?第4章选择与循环结构程序设计4.1选择结构(分支结构)程序关系运算符与关系表达式 = 3 结果为12*5=3 结果为0逻辑运算符与逻辑表达式逻辑运算符额可以将多个表达式或逻辑量连接起来,构成逻辑表达式c语言提供三种逻辑运算符 ! & | 非与或, 优先级从左到右 ! 算术运算符 关系运算符 & | 赋值运算符 优先级从左到右*关系运算符和逻辑运算符的运算结果不是0就是1,可以作为算术值处理int x;x=100;printf(%d,x10); 输出结果为1*在计算逻辑表达式时,如果在某一步已得到整个表达式的结果,则后面的部分将不再计算,真的不掉线吗?、?&前为0,|前为1,停止后面的计算*注意与数学式子的区别,数学式子abc在c中ab&bcif语句if语句的3种基本形式基本if形式 if(表达式)语句 图1ifelse形式 if(表达式) 语句1 else 语句2 图2 ifelse if形式if(表达式1) 语句1else if(表达式2) 语句2. .else if(表达式m) 语句melse 语句 n无论执行了哪条语句,执行后调到整个if语句之外继续执行程序,而不再对后面的表达式进行判断。 *3种形式if语句中,if关键字之后均为表达式,只要表达式的值为非0即作为真来处理*语句只为一条语句,多条时,必须用括起来if语句的嵌套c语句规定,else总是与它前面最近的未配对的if配对。如 if(表达式1) if(表达式2) 语句1; else 语句2; 一般情况下应尽量少使用if语句的嵌套结构,以便程序更便于阅读。用条件运算符实现选择如果在条件语句中,只执行单个的赋值语句,常可使用条件表达式来实现,不但使程序简洁,也提高了运行效率。#include #include void main()int a,b;printf(n input two numbers:);scanf(%d%d,&a,&b);printf(max=%dn,ab?a:b);真的不掉线吗?、?getch();switch语句c语言还提供了另一种用于多分支选择的switch语句,一般形式为:switch(表达式)case 常量表达式1:语句1;break;case 常量表达式2:语句2;break;.case 常量表达式n:语句n;break;default:语句n+1;break;*表达式应为整型、字符型、枚举型表达式语义:计算表达式的值,并依次与其后的常量表达式值比较,相等即执行其后的所有语句语句,加break后则执行语句后跳出整个switch语句case常量表达式和default相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,然后不再进行判断,继续执行后面所有的case 和default后的语句,加break语句后,跳出整个switch语句,不再继续执行。*case后的常量表达式的值不能相同,否则会出现错误*case后允许多个语句,用括起来*若每个分支后,都有break语句,case和default子句的先后顺序可以变动*default 子句可以省略不用。例子:#includevoid main()int a,i;printf(Input integer number:n);for(i=1;i=3;i+)scanf(%d,&a);switch(a)case 7:printf(Sundayn);break;case 1:printf(Mondayn);break;case 2:printf(Tuesdayn);break;case 3:printf(Wednesdayn);break;case 4:printf(Thursdayn);break;case 5:printf(Fridayn);break;case 6:printf(Saturdayn);break;default:printf(Errorn);break;真的不掉线吗?、?4.2循环结构程序特点:在给定条件成立时,反复执行某程序段,知道条件不成立为止,给定条件称为循环条件,反复执行的程序段称为循环体。while语句 一般形式为:while(表达式)语句while语句的执行过程为:计算表达式的值,当值为真时,执行循环体语句。#include void main()int n;float fact=1;printf(Input n:);scanf(%d,&n);while(n0)fact*=n-;printf(n!=%.0fn,fact);*while中的表达式一般是关系表达式或逻辑表达式,只要值为真即可继续循环*语法上,循环体应该是一条语句,如果需要多条语句,括起来*循环体中应包含使循环趋于结束的语句,以避免出现死循环。*允许while语句的循环体又是循环while语句,从而形成循环的嵌套dowhile语句一般形式为:do 循环体语句while();#include 真的不掉线吗?、?void main()int n;float fact=1;printf(Input integer n:n);scanf(%d,&n);dofact*=n-;while(n0);printf(n!=%.0fn,fact);*if语句和while语句中,表达式后面都不能加分号,而在do-while语句的表达式后面必须加分号,因为这是一条完整语句结束的标志。*do 和while之间的循环体由多个语句组成时,也必须用括起来。*do-while和while语句相互替换时,要注意修改循环控制条件*do-while语句可以组成多重循环,而且也可以喝while语句相互嵌套。for语句 for(表达式1;表达式2;表达式3) 循环体语句表达式1一般式赋值表达式,用来给循环变量赋初值。如果已被赋值,可省略表达式2一般为关系表达式或逻辑表达式,表示循环条件表达式3一般式赋值语句或自增自减语句,用来修改循环变量的值执行过程:1.首先计算表达式1的值 2.再计算表达式2的值,若为真则执行循环体一次,否则跳出循环 3.然后在计算表达式3的值,转回第2步 #includevoid main()int n,i;float fact=1;printf(Input integer n:n);scanf(%d,&n);for(i=1;i=n;i+)fact*=i;printf(n!=%.0fn,fact);转移语句c语言提供4种转移语句break continue return 和gotobreak;用在switch语句和循环语句中,跳出switch语句和跳出本层循环 continue; 只能用在循环语句中,结束本次循环,即不再执行循环体中continue语句之后真的不掉线吗?、?的语句,转入下一次循环。#includevoid main()int n;for(n=7;n=100;n+)if(n%7!=0)continue;printf(%5d,n);goto语句 也称为无条件转移语句 其一般形式: goto 语句标号;其中语句标号是按标识符规定书写的符号,放在某一语句行的前面,标号后面加冒号,语句标号起标识语句的作用,与goto语句配合使用goto语句通常与条件语句配合使用,可用来实现条件转移,构成循环,跳出循环体等功能#includevoid main()int n;float fact=1;printf(Input integer n:n);scanf(%d,&n); loop: if(n0) fact*=n-; goto loop; printf(n!=%.0fn,fact);程序举例:/*求Fibonacci数列的前40个数*/#include void main()long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+)printf(%12ld %12ld,f1,f2);if(i%2=0) printf(n);f1=f1+f2;真的不掉线吗?、?f2=f2+f1;/*输出100以内的素数。所谓素数,只能被1和其本身整除的数*/#include#include#includevoid main()int n,i;double k;for(n=3;n=100;n+=2)k=sqrt(n);for(i=2;ik) printf(t%d,n);getch();第5章数组 同一个数组中的所有数组元素类型不需相同,按数组元素的类型不同,数组可以分为整型数组、实型数组、字符型数组、指针型数组、结构型数组等。5.1 一维数组的定义和引用类型说明符 数组名常量表达式真的不掉线吗?、?类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的标识符,常量表达式是数组元素个数,也称数组的长度,可以是符号常量或常量,不允许为变量。常量表达式是从零开始计数的,如a3表示数组有a0 a1 a2三个元素。一维数组的引用 数组名下标下标只能为整型常量或整型表达式,若为小数,系统自动取整。c语言规定,只能逐个的引用下标变量,而不能一次引用整个数组。#include void main()int i,a10;for(i=0;i=0;i-)printf(%4d,ai);printf(nn);一维数组的初始化int a3=1,2,3; 对数组全部赋初值时,可以不指定长度 int a=1,2,3int a3=1,2 最后一个自动赋0如果定义数组时不进行初始化,其元素的初值与数组的存储类别有关。对于存储类别为自动类型的数组元素的初值为随机的,而对于存储类别为静态的数组或外部数组,元素初值为0#include void main()int i;long f20=1,1;for(i=2;i=19;i+)fi=fi-1+fi-2;for(i=0;i20;i+)if(i%5=0) printf(n);printf(%5d,fi);printf(n);/*输入10个数,从小到大的顺序排列,选择法*/#includevoid main()真的不掉线吗?、?int a11;int i,j,k,t;printf(Input 10 numbers:n);for(i=1;i=10;i+)scanf(%d,&ai);printf(n);for(i=1;i10;i+)k=i;for(j=i+1;jaj) k=j;if(k!=i)t=ai;ai=ak;ak=t;printf(The sorted numbers:n);for(i=1;i=10;i+)printf(%5d,ai);二维数组的定义类型说明符 数组名常量表达式1常量表达式2引用 数组名下标下标初始化二维数组初始化也是在类型说明时给各下标变量赋以初值。 二维数组可按行分段赋值,也可按行连续赋值。 例如对数组a53:1.按行分段赋值可写为int a53= 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 ; 2.按行连续赋值可写为int a53= 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 ; 5.3字符数组char 数组名常量表达式char 数组名常量表达式1常量表达式2char ch=c,o,d,e 全部符初值时可以省略长度若括号中提供的初值个数大于数组长度,系统按语法错误处理。若小于,则将字符赋给前面的数组元素,其余元素自动赋空字符0c语言没有专门的字符串变量,通常用一个字符数组来存放一个字符串。char ch5=code,或者char ch=code真的不掉线吗?、?用%c实现逐个字符输入输出#include#includevoid main()char a4;int i;printf(Input three character:n);scanf(%c%c%c,&a0,&a1,&a2);printf(The inputed charecter are:n);for(i=0;i3;i+)printf(%c ,ai);getch();用%s实现整个字符串的输入输出#include#includevoid main()char a4;printf(Input three character:n);scanf(%c%c%c,&a0,&a1,&a2);a3=0;printf(The inputed charecter are:n);printf(%s,a);getch();#include#includevoid main()char a4;printf(Input three character:n);scanf(%s,a);printf(The inputed charecter are:n);printf(%s,a);getch();*scanf()输入字符串时,字符串不能包含空格,否则系统将把空格作为输入时结束标识*c中数组名代表该数组的首地址真的不掉线吗?、?*%s输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。*数组长度大于字符串实际长度

温馨提示

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

评论

0/150

提交评论