首页 理论教育C语言基础|自定义标识符的命名规则

C语言基础|自定义标识符的命名规则

【摘要】:模块一C语言程序结构一、考点分析1.掌握自定义标识符的命名规则标识符是程序中各组成元素的名称,正确自定义标识符是程序员的基本功。C语言源程序的组成单位是()。

模块一 C语言程序结构

一、考点分析

1.掌握自定义标识符的命名规则

标识符是程序中各组成元素的名称,正确自定义标识符是程序员的基本功。标识符的命名规则是自定义标识符和判定标识符是否合法的依据。重点掌握标识符中可用字符,起始字符的限制,字母大小写区分。考点主要以选择题或填空题形式出现。

2.了解C语言的源程序结构

C语言源程序结构是指从具有完整功能模块级别上观察到的程序组成结构,C语言源程序是由被称为函数的功能模块组成的。简单的程序由一个函数可以实现,功能复杂的程序则由多个函数组成,无论程序是简单还是复杂,其组成函数中必须有一个函数名为main的函数,它是程序执行的入口,也是程序的退出点,称为主函数。考点主要以选择题或填空题形式出现。

3.掌握TC2.0集成开发环境

能启动TC编程环境,会输入、编辑、修改源程序代码,能操作快捷键来编译、运行程序并查看运行结果。主要快捷键:编译按F9键,编译并运行按Ctrl+F9键,查看运行结果按Alt+F5键,退出TC环境按Alt+x键。考点主要在填空题出现。

二、典型题解

【例1】 以下不合法的标识符是(  )。

A.long  B.Int  C._fit  D.0_0

解析:本题检查对标识相关概念和命名规则的掌握,不少粗心的学生会选择A,理由是系统标识符即保留字不能作为自定义标识符,但题目问的是不合法的标识符是哪一个。根据标识符不能以数字作为起始字符的规则,正确的选项是D。

【例2】 C语言源程序的组成单位是(  )。

A.字符 B.函数 C.语句 D.程序行

解析:C语言源程序的组成结构是在一个较宏观的层面上看的,函数是C语言源程序的组成单位,本题易选择C作为答案,正确的选项是B。

模块二 基本数据对象

一、考点分析

1.了解常量的概念和特点

这里的常量是指数据对象的直接表达形式,规范的名称应称为字面量,也有称文字量的,常量可读出数据的类型和值,如68、1.72、“tomcat”。这种形式的数据只能以硬编码的形式写入程序代码中,程序运行过程中常量不会发生任何变化,常用于设置数据的初始值,正确书写各种类型数据的常量是重点。考点在全题型中均可出现。

2.了解变量的概念和特点

变量是数据在程序中的最重要形式,它是命名的一段内存单元,内存中的数据可读写,在程序运行中,可在不同的时刻写入不同的数据值,这个值称为变量的值,因此,变量在程序运行中的值是可以改变的,而这段内存单元的名字也就是变量名,变量名在程序中直接代表变量的值,变量所对应内存单元的地址通过取地址运算符&以“&变量名”的形式获得。

使用变量之前必须声明要存储的数据的类型,以便分配存储空间,然后设置初始值后就可以用于数据运算。而没有设置初值的变量,其值是不确定的,因此不能参与运行。使用赋值运算符可以设置初值和改变变量的值。考点在全题型中均可出现。

3.掌握整型数据

会书写十进制形式的整型常量,如71、-89等,默认的整型常量为int型,long型常量必须加后缀标志字符l,识记int、long型数据可表示的整数数据范围和在存储时所占的内存空间大小,会定义使用整型变量。

4.掌握实型数据

会书写十进制小数形式的实型常量,知道float实型数据所占的存储空间,会定义float型变量。

5.掌握字符型数据

会书写字符及字符串常量,定界符分别为单引号( )和双引号(""),会书写换行符的转义字符形式\n。知道字符在内存中的ASCII存储形式和所占的存储空间,记住0、A、a的ASCII码分别是48、65、97,可延伸记住其他数字和字母的ASCII码,会定义char型变量。字符串在存储时,会附加一个0字符\0作为结束标志,所以字符串所占存储空间为字符串长度+1。

二、典型题解

【例1】 以下不合法的常量是(  )。

A.-90  B.3.770  C.t0  D.\n

解析:本题检查常量的书写要求,C是正确的选择。字符常量用单引号定界,其中只能包含意义上的一个字符,转义字符在形式上单引号中有一个以上的字符,但其意指一个字符。

【例2】 存储下列数据所占存储空间最大的是(  )。

A.32000  B.0.0016  C.3L  D."0.000"

解析:本题旨在检查数据存储的空间要求,这决定数据的类型与数据值的大小没有直接联系,实际转化为判断数据的类型,故正确答案是B。

【例3】 定义变量pm用于存储10!的语句是________________。

解析:定义变量就是告知系统变量的类型和变量的名称,系统根据类型自动分配一定的内存单元并与变量名关联,在选择类型时要考虑该类型所表达的数据范围能满足待存数据的需要。10!的结果超过int型的表示范围,需要选择long型,正确答案是long pm;。

模块三 数据运算和表达式

一、考点分析

1.理解表达式及作用

数据处理是程序功能实现的基础,表达式就是表达对数据进行处理的一种描述形式,它包括操作数和运算符两个基本要素。操作数即参与运算的数据,运算符则是表达数据操作处理的符号或符号组合。正确计算表达式的值需要弄清运算符的运算规则、优先级和结合性。优先级决定了在同一个表达式中不同运算符处理的先后顺序,结合性则是指操作数与运算符结合的方向,分为从左向右结合(即左结合)和从右向左结合(即右结合)。除单目运算符和赋值运算符是右结合,其余的运算符为左结合。

2.会计算算术表达式的值

掌握算术运算符(+、-、*、/、%)的运算规则和优先级关系,能将数学式转换成正确的C语言表达式。注意“/”运算的两个操作数均为整型时,结果也是整型;至少有一个操作数是实型时,结果才为实型数。“%”运算符的操作数必须是整数。

数学表达式转换成C语言表达式,首先用C语言的运算符替换数学运算符,然后用小括号调整运算的次序以保持原数学表达式的运算要求即可。

3.掌握自增(++)自减(--)表达式的运算

自增自减表达式分前缀和后缀两种形式,这两种形式对变量的影响是相同的,都能使变量值加1或减1。而表达式的值与形式相关,前缀表达式的值取变量自增或自减后的值,后缀表达式的值取变量自增或自减前的值。注意自增自减含有赋值操作,所以操作数必须是变量,如x++等价于x=x+1。

4.理解赋值运算符(=、+=、-=、*=、/=、%=)及作用

赋值运算的作用是改变变量的值,其实质是向变量所对应的内存单元写入数据,新值替换原来的值,变量保持原值至重新赋值为止。所有赋值运算符的优先级都是相同的。赋值运算符的左操作数必须是变量。

5.了解关系运算的概念,掌握关系运算符(>、>=、<、<=、==、!=)的运算规则和优先级关系,了解关系运算(真、假)的概念和表示

关系运算是两个数据大小关系的判断。所表达的关系成立结果为真,反之为假。真、假结果实际上是逻辑型数据,C语言没有专设逻辑型数据类型,但规定关系表达式结果为真用1表示,结果为假用0表示,并进一步拓展为非0值都可以表示逻辑真,0值如0、0.0、\0都可以表示逻辑假。

6.了解逻辑运算符(&&、‖、!)的概念、运算规则和优先级关系

关系表达式只能表达简单条件,如果需要表达复杂条件必须把多个表达式结合起来实现,因关系表达式的值是逻辑值,连接多个关系表达式来表达复杂条件时要用到逻辑运算符,即构成逻辑表达式。逻辑表达式的真假值规定与关系表达式相同。

7.掌握条件表达式的书写和计算

关系表达式和逻辑表达式统称为条件表达式,正确书写和计算逻辑表达式需要弄清关系运算的优先级和结合性。特别注意逻辑非(!)是单目运算符,优先级比关系运算符高,在关系运算符中“==”和“!=”是低优先级的。

二、典型题解

【例1】 表达式7/2的值是________,13%21的值是________。

解析:除号(/)运算的结果与操作数的类型有关,表达式7/2的两个操作数均为整型,其值也只能是整型,因此结果是3,而不是按数学规则计算结果的3.5。“%”运算符称为模运算,通俗地讲就是取两数相除的余数,结果为13。

【例2】 把数学表达式改成C语言表达式。

解析:第一步用C语言的运算符替换数学上的运算符得到表达式:a+b/2*a*b,第二步添加小括号调整运算的次序以保持原数学表达式的运算要求:(a+b)/(2*a*b)。特别注意:数学上的变量采用单字母,多个字母连写是表示多个变量相乘的意思。

【例3】 写出表达字符变量c是数字字符的条件式________________。

解析:数字字符是字符界于0~9的字符,而字符是以ASCII码存储的,实质上是整型数据,可以用关系运算判定字符变量c的取值为0 ~9,因此该条件表达式可写成:c>=0 &&c<=9。

模块四 程序的输入输出

一、考点分析

1.掌握scanf函数

scanf函数是C语言系统提供的通用数据输入函数,可以完成整型、实型、字符及字符串数据的输入,其使用格式为:scanf(格式控制串,变量地址列表)。scanf函数读取键盘缓冲区中的字符序列,并按格式控制串中格式转换说明符的要求转换成对应类型的数据存储到相应的变量中。格式转换说明符“%d”把读取的数字字符序列转换成整型数据,格式转换说明符“%f”把读取的数字字符序列(序列中可含小数点)转换为实型数据,格式转换说明符“%c”把读取的字符转换为字符型数据。格式转换说明符与地址列表是一一对应的关系。

scanf函数中的格式控制串以格式转换说明符为主,避免使用普通字符。scanf函数工作时,普通字符不会显示,但要求原样输入,如果要用普通字符,必须在之前输出提示信息。

连续输入数值数据时,数据之间用空白字符(空格、水平制表符和换行符)分隔,连续输入字符时不用分隔。

2.掌握printf函数

printf函数是标准的输出函数,格式为printf(格式控制串,输出列表)。格式控制串用设计数据输出的格式,其中的格式转换说明符指示在该位置将输出指定类型的数据,“%d”表示输出十进制形式整型,“%f”表示输出十进制小数,“%c”表示输出一个字符。输出列表中可以由字面量、变量和表达式组成,格式转换说明符与输出列表是一一对应的关系。

3.了解字符专用输入/输出函数:getchar函数和putchar函数

输入字符scanf("%c",&sn)与sn=getchar()等价,输出字符scanf("%c",sn)与putchar(sn)等价。

二、典型题解

【例1】 定义变量:int p;float x;char c;,有输入函数scanf("%d%c%f",&p,&c,&x);要使变量p、x、c的值分别为32、15.02、R,正确的键盘输入是(  )。

A.32 15.02 R  B.32 15.02 R  C.32 R 15.02  D.32R15.02

解析:本题考查对scanf函数工作原理和格式转换说明的理解,从键盘输入的任何字符首先在键盘缓冲区排队等待读取,保存在键盘缓冲区的输入,不论是数字还是字母或其他符号都是同等的字符,没有数据类型的区分,只有读取后才按格式转换说明符的要求转换成相应类型的数据并存储在对应的变量中。因此首先排除A选项,B选项输入的数据次序有问题,C选项各数据用空格分隔,“%d”把32转换成整型数32,接下来“%c”把输入的空格转换成 ,“%f”不能识别R,函数停止工作,变量x和c都不能得到需要的数据。因此正确答案是D。

【例2】 有变量定义char c=5;int asc=97;,则语句printf("c=%d,asc=%c",c,asc);的输出是________________。

解析:本题考查了字符数据以整数形式输出,即ASCII码,在0~127内的整数以字符形式输出时,则输出的是其作为ASCII码时对应的字符。因此,正确的输出应该是c=53,asc=a。

模块五 算法表示

一、考点分析

1.了解结构化程序设计的基本理论

结构化程序设计是指采用几种简单的程序结构来构建任何复杂程度的程序的编程思想。基本程序结构包括:顺序程序结构、分支程序结构和循环程序结构。要求掌握3种基本程序结构的流程图表示。

2.了解语句的概念和分类

语句是程序中最小的功能单位,是指挥计算机工作的指令。C语言的语句以分号结束,在同一程序行上可写多个语句,也可以把一个语句写在多个程序行上。按语句在程序中的功能可分成:说明语句、表达式语句、空语句、函数语句、块语句和控制语句。

二、典型题解

【例】 空语句是指(  )。

A.空程序行 B.; C.{} D.{;}

解析:空语句容易与空的块语句混淆,块语句是指由{}围起来的语句块,不论{}中语句有多少。空语句则是指无指令的语句,即只有一个分号,它在源代码中占语句位,以使代码结构完整,但不会让计算机执行任何有效的动作,事后可用有效的语句替换。所以本题的答案为B选项。