自考高级语言程序设计串讲笔记.doc_第1页
自考高级语言程序设计串讲笔记.doc_第2页
自考高级语言程序设计串讲笔记.doc_第3页
自考高级语言程序设计串讲笔记.doc_第4页
自考高级语言程序设计串讲笔记.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

自考高级语言程序设计(一)串讲笔记课程说明串讲的目的和作用: 1、将相对零散的知识建立一个整体的筐架,形成整体的知识体系。 2、将考核知识点进行提炼 3、分析历年真题,掌握题目所含知识点的同时分析出题思路,使复习时做到有的放矢。本次串讲的参考教材 高级语言程序设计 全国高等教育自学考试指导委员会组编,迟成文主编,经济科学出版社出版,2006年版。本次串讲的要讲解的重要知识点(共37个)1、高级语言与语言的特点2、语言的基本字符集、转义字符、保留字及其含义和语言标识符的构成规则。 3、程序的基本结构与书写程序的基本规则 4、语言中数据类型的分类 5、整型、实型、字符型、字符串常量的书写方法 6、符号常量的应用和宏定义命令的使用 7、整型、实型、字符型变量的定义、初始化方法 8、基本类型数据在内存中的存放方式 9、基本运算符的运算规则、优先级别和结合性 10、掌握算术表达、关系和逻辑表达式、赋值表达式、逗号和条件表达式的构成和运算规则 11、变量赋值及表达式计算时的数据类型转换规则 12、字符输入输出函数和格式输入输出函数的使用 13、三条选择语句和三种选择结构的程序设计 14、三条循环语句和三种循环结构的程序设计 15、一维数组的定义、初始化和数组元素的引用方法 16、二维数组的定义、初始化和数组元素的引用方法 17、字符数组的定义、初始化和数组元素的引用方法 18、字符数组中存放的字符串的输入/输出和处理方法 19、字符串处理的常用系统函数及其使用20、指针变量的定义、初始化、赋值和一般使用形式21、指向变量的指针变量、指向一维数组元素的指针变量、指向字符串的指针变量的使用方法。 22、指针数组的定义、初始化和引用 23、函数的结构与定义方法,握函数的一般调用方法 24、函数调用时参数的值传递方法、地址传递方法、返回值传递方法和利用全局外部变量在函数间传递数据的方法。 25、变量的存储类型及其定义方法、变量的生存期和作用域。26、函数嵌套调用和递归函数的特点和设计方法 27、指针型函数的定义方法和调用方法 28、常用系统函数的使用 29、结构型数据的特点和应用及结构型的定义方法 30、结构型变量的定义、初始化和成员引用方法 31、结构型数组的定义、初始化和引用结构型数组元素的成员的方法。 32、结构型指针变量的定义、初始化和利用结构型指针变量引用结构型数据的成员的方法33、用户自定义类型的定义和使用 34、文件名的组成规则、文件的分类及其特点 36、文件型指针的定义方法37、缓冲文件系统中各类系统函数的使用u(1)打开/关闭文件函数的使用方法。u(2)文件尾测试函数的使用方法。u(3)文件读/写中字符读/写函数的使用方法。u(4)文件读/写中字符串读/写函数的使用方法。u(5)文件读/写中数据读/写函数的使用方法。u(6)文件定位函数(定位文件头、随机定位)的使用方法。第一章概述程序:是用某种计算机能理解并执行的计算机语言描述解决问题的方法步骤。机器语言:采用计算机能直接识别和执行的二进制代码来表示的程序设计语言。汇编语言:采用文字方式(助记符)表示的程序设计语言,其中大部分指令和机器语言中的指令一一对应,但不能被计算机的硬件直接识别。汇编程序执行机器语言程序结果汇编汇编语言程序机器语言和编语言又称为“面向机器的语言”或“低级语言”。高级语言:是描述算法过程很方便、同时脱离了对机型的要求,能在任何计算机上运行的计算机语言。又称为“面向过程的语言”。 用高级语言编写的程序称为源程序。高级语言程序的执行有两种: 一种是翻译一句执行一句,称为“解释执行”方式,完成翻译工作的程序就称为“解释程序”; 一种是全部翻译成二进制程序后再执行,承担翻译工作的程序就称为“编译程序”,编译后的二进制程序称为“目标程序”。语言的主要特点: 比其它高级语言更接近硬件,比低级语言更容易描述算法,程序易编、易读、易查错、易修改。可以说兼有高级语言和低级语言的优点。C语言既可以用来编写系统软件,也可以用来编写应用软件。1编译程序的功能是( )A.将汇编语言程序转换为目标程序B.将汇编语言程序转换为高级语言程序C.将高级语言程序转换为目标程序D.将高级语言程序转换为汇编语言程序答案:C第二章C语言的基本知识 语言的基本词法1 字符集语言的字符集就是ASCII字符集,主要包含下列几类: (1)大小写英文字母AZ、az(52个) (2)数字0、1、2、9(10个) (3)非字母数字的可显示字符(33个)键盘可输入的字符。字符集的真题1.C语言不能选用的字母是( )A.w B. C.I D.i答案:B2.转义字符 在C语言的字符集中,还有一些不可显示的字符,C语言使用所谓的“转义字符”在程序中表示这些字符。转义字符由“反斜杠字符”开始后跟单个字符或若干个字符组成。ntvbrf回车换行符号Tab符号垂直制表符号左退一格符号回车符号换页符号adddxhh响铃符号双引号单引号反斜杠13位8进制数ddd对应的符号12位16进制数hh对应的符号转义字符的有关真题1.下列不正确的转义字符是( )A. B. C. 086 D. 0答案:C2. 下列转义字符中错误的是( ) A000 B. 14 C. x111 D. 2答案:C3.保留字autobreakcasecharcontinueconstdefaultdodoubleelseenum自动中止情况字符继续常量缺省做双否则枚举externfloatforgotointiflongregisterreturnshortsigned外部浮点对于转向整如果长寄存器返回短带符号sizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile计算字节数静态结构开关类型定义共用无符号空可变的当说明: 1、所有的保留字均由小写字母组成的,一旦有一个字母大写,其不再是保留字原来的含义。 2、根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 保留字的有关真题 1.下列标识符中,不是C语言保留字的是( ) char B.while C. min D.default 答案:C 2. 下列不属于C语言保留字的是( ) char B.while C.typedef D.look 答案:D 3表示空类型的保留字是 。 答案:void (注意一定小写) 数据类型关键字(12个):char, double, enum, float, int, long, short,signed, struct, union, unsigned, void 控制语句关键字(12个):break, case, continue, default, do, else,for, goto, if, return, switch, while 存储类型关键字(4个):auto, extern, register, static 其它关键字(4个):const, sizeof, typedef, volatile4.标识符标识符是用户自定义的字符序列,比如符号常量名、变量名、数组名、函数名等。语言规定,标识符是由字母或下划线开头的字母、数字、下划线组成的字符序列。标识符中的字母是区分大小写的。标识符的有关真题1. 正确的C语言用户自定义标识符是 ( )A. print B. float C. when D. random答案:A2.可以用作C程序标识符的一组是()A.print oodb aBc B.iam one-half 3paiC.Pxq line# His.age D.Cpp while pow答案:A3.C语言标识符的第一个字符必须为下划线或者 。答案:字母C程序构成的特点:()程序是由若干个函数构成的。 每个程序有且仅有一个主函数,该主函数的函数名规定为main。()每个函数(包括主函数)的定义分为两个部分:函数头和函数体。 函数头:返回值的类型 函数名(类型 形式参数,) 函数体: 数据定义部分 实现函数功能的语句串 函数名后面的一对圆括号“()”是用来写函数的参数的。参数可以有,也可以没有,但圆括号不能省略。 ()程序中的每个语句以“分号”作为语句的结束,“分号”是C语句的组成部分,不可以省略。()用“/*”和“*/”括住的任意字符序列,称为“注释”。源程序编译时,注释被忽略。()程序的书写格式很灵活,在一行上可以书写多个语句,一个语句也可以写在多行上。在程序清单的任何一处都可以插入空格符号或回车符号。但是,为了程序清单层次分明、便于阅读,通常都采用缩格并对齐的书写方法。(6)程序的执行总是从主函数开始,并在主函数中结束。主函数和其它函数的位置是任意的。其它函数总是通过函数调用语句被执行。(7)主函数可以调用任何其它函数;任何其它函数都可以相互调用,但不能调用主函数。(8)C语言编译系统区分字母大小写。C程序构成的真题1.构成一个C程序的是( )A.一个主函数和若干个非主函数 B.若干个主函数和若干个非主函数C.一个主函数和最多一个非主函数 D.若干个主函数和最多一个非主函数答案:A2组成C语言程序的是( ) A.过程 B.函数 C.子程序 D.主程序和子程序 答案:B3.一个C程序一般由若干个函数构成,其中至少应包含一个 函数。 答案:主4. C语言程序编译时,程序中的注释部分 ( ) A.参加编译,并会出现在目标程序中 B.参加编译,但不会出现在目标程序中 C.不参加编译,但会出现在目标程序中 D.不参加编译,也不会出现在目标程序中答案:D第三章基本数据类型、运算符和表达式 C语言数据类型及分类关系图 带符号整型 带符号整型 带符号短整型 带符号长整型 整型 无符号整型 无符号整型 无符号短整型 无符号长整型 基本类型 单精度型 实型 双精度型 字符型 数据类型 数组型 构造类型 结构型 指针型 空类型( void)C语言数据类型的真题1.属于C语言基本数据类型的是( )A.指针型 B.无符号整型 C.数组型 D.结构型答案:B常量整型常量 在语言中,整型常量有三种书写形式: ()十进制整数:由数字0-9和正负号表示。如:0、-111、+15、21等。 ()八进制整数(在前面0)。例如00、-0111、+015、021。 ()十六进制整数(在前面0x)。例如 0x0 、-0x111、+0xff、0x2d。 整型常量在一般微型机中占用2个字节,数值范围都是十进制的-32768+32767。 长整型常量(在整数的末尾字母“L”):长整型常量在计算机中占用4个字节。10和10L是不同的整型常量, 虽然它们有相同的数值,但它们在内存中占用不同数量的字节。 更多优质自考资料尽在百度贴吧自考乐园俱乐部(/club/5346389)欢迎加入.欢迎交流.止不住的惊喜等着你.常量的真题1、C语言的长整型数值在计算机中占用的字节个数是( )A.1 B.2 C.3 D.4答案:D2、在C语言中,整型常量的书写形式包括:八进制、十进制和 进制。答案:十六实型常量实型常量只使用十进制,它的书写形式有两种:1、十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123.2、指数形式:(e或E之前必须有数字;指数必须为整数)如: 12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 说明:1、实型常量在一般的微型机中占用4个字节数。2、实型常量有效数字是7位。实型常量的真题1C语言中,错误的int类型的常数是()A1E5 B0 C037 D0xaf答案:A2、在C语言中,一个双精度数-5.88在二进制文件里占用的字节数是 。答案:8字符常量 字符常量用两个单引号()前后括住的单个字符来表示。例如,a、1、 % 、A、 n、101。 说明: 1、C语言规定,字母是区分大小写的。 2、在内存中,每个字符常量都占用一个字节,具体存放的是该字符对应的ASCII代码值。 3、在C语言中,一个字符常量也可以看成是“整型常量”,其值就是该字符的ASCII代码值。例如,a ,可以看作是97。 4、如果其值在0127之间,整型常量也可以将其看成一个字符型常量.例如97,可以当成字符常量a来使用。字符常量真题1. 设 char x =a;则printf(x = c, y = c n,x,97);的输出是( ) A. x = a,y = 97 B. x = 97,y = a C. x = 97,y = 97 D. x = a,y = a 答案:D2.设char a=70;则变量a中()A.包含1个字符B.包含2个字符 C.包含3个字符 D.是非法表示答案:A字符串常量 字符串常量简称为“字符串”。字符串就是用两个双引号()前后括住的一串字符。 空字符串:没有字符的字符串称为“空字符串”。例如,。 字符串的长度:一个字符串中所有字符的个数称为该字符串的长度 例如,“”的长度为0; “ab12c” 的长度为5; 101nx43ab的长度为5说明:1、空串与空格串是不同的。空串前者不含任何字符,长度为0;空格串是包含若干空格字符的字符串其长度为所含空格字符的个数。 2、每个字符串在内存中占用的字节数等于字符串的长度+1。其中最后一个字节存放的字符为“空字符”,其值为0 ,书写时常用转义字符“0”来表示,称为字符串结束标记。字符串常量真题 1.下列数据中,不是C语言常量的是( )A. n B. a C. e-2 D. 012答案:C2.字符串ABCDt123的长度是 。答案:7符号常量 符号常量的定义方法如下: #define 符号常量 常量【例】#define PI 3.14159 说明: 1、符号常量标识符的规则构成,建议用大写英文字母组成。其中的常量可以是任何类型的常量。 2、符号常量的定义一般放在程序的开头,每个定义必须独占一行,其后不跟分号。 宏定义命令 宏定义命令的一般格式如下:#define 宏名 一串符号说明: 1、其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。 “一串符号”可以是常数、表达式、格式串等。 2、当对源程序清单进行编译之前,将把所有的“宏名”替换成对应的“一串符号”,切不可自行添加其它符号。 3、宏可以嵌套宏定义宏定义的真题1.下列叙述中,正确的是 ( )A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致B.宏名必须用大写字母表示C.宏替换不占用运行时间,只占编译时间D.在程序的一行上可以出现多个有效的宏定义答案:C2.在下列有关宏替换的叙述中,正确的说法是( )A.宏替换占用运行时间B.宏名有类型C.带参数的宏替换和函数等价D.宏替换只是字符替换答案:D3.下列程序的运行结果是( ) # define A 5 # define B A+1 main( ) int a; a=B; printf(%dna-); A.6 B.5 C.4 D.出错答案:A变量 变量的概念在程序运行过程中,其值可以被改变的量称为变量。变量的四个要素 (1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。 (3)变量类型:int char float 等 (4)变量的存储类型:aoto register static exit 变量的数据类型及其定义数据类型数据类型符占用字节数数值范围整型int2(或4)同短整型(或长整型)短整型 short2-32768+32767 (-215215-1)长整型 long4-2147483648+2147483647 (-231231-1)无符号整型unsigned int2(或4)同无符号短整型(或长整型)无符号短整型 unsigned short2065535 (0216-1)无符号长整型 unsigned long404294967295 (0232-1)单精度实型 float4-10381038(保留7位有效数字)双精度实型 double8-1030810308(保留11位有效数字)字符型 char1-128+127有名常量的定义定义方法如下: const 数据类型符 变量名1=初值1,变量名2=初值1,.;说明:有名常量的值是通过赋初值的方式获得,不能用赋值方式获得值。而且,获得初值后,程序中将不能改变其值。【例】定义有名常量举例。 const char char_y=Y,char_n=N;/* 定义字符型有名常量char_y和char_n,其值分别为字符Y和N */运算符 算术运算符 (+、-;+、-、*、/、%)* 优先于 -+ 算术运算符 优先于 关系运算符 = 优先于 = != 关系运算符优先于 & 优先于 优先 于条件运算符 ? ; 优先于赋值运算符 优先于 逗号运算符 条件运算符 e1?e2;e3 e1 为真 赋值e2 e1为假赋值 e3 说明: (1) 除运算(/)和运算对象的数据类型有关。 例如,14/5=2 1/2=0 1/2.0=0.5 1.0/2=0.5。(2)模运算(%)的对象必须是整型数据,结果是整除后的余数,运算结果的符号必须与被除数相同。 例如,14%5=4 14%-5=4 -14%5=-4 -14%-5=-4。增、减运算符 (+ -) 注意:增1、减1运算符的运算对象是变量,不能是常量或表达式。关系运算符(=、=、 =、!=)和逻辑运算符(& | !) 说明: (1)关系运算和逻辑运算的结果是整型数据0或1。 (2)运算符的优先级如下: ! 优先于 双目算术运算符 优先于 关系运算符 优先于 & 优先于 | 注意:用&对两个表达式进行计算时,若第一个表达式的值为“假”,则运算结果与第二个表达式的值无关,结果肯定为“假”,所以语言规定此时第二个表达式将不再计算。同样用|对两个表达式进行计算时,若第一个表达式的值为“真”,则运算结果与第二个表达式的值无关,结果肯定为“真”,所以语言规定此时第二个表达式也不再计算。 赋值运算符 (=)算术自反赋值运算符 (+= -= *= /= %=) 说明: (1)算术自反赋值运算符和赋值运算符的优先级是相同的,只比逗号运算符高。 (2)自反赋值运算符右边的表达式是自动加括号的。 【例】“c%=a-3”不能理解为“c=c%a-3”,应理解为“c=c%(a-3)”。逗号运算符 (,) 说明: (1)由逗号运算符组成的式子也是表达式,其值等于右边表达式的值。 (2)任何运算符都优先于号运算符。条件运算符 (?:) 说明: (1)条件运算符是唯一的三目运算符。 (2)条件运算符的优先级:优先于 赋值、算术自反赋值运算符 逗号运算符(排倒数第三)长度运算符 (sizeof()) 【例】 设变量定义如下:int n; 表达式sizeof(n)的值是2。 表达式sizeof(long)的值是4。位运算符( & | ) 位运算的对象只能是整型数据(包括字符型)。运算结果仍是整型数据。 aba&ba|bab00000010111001111110位移位运算符 ( 右移)运算符真题1.下列表达式的值为0的是( )A. 35 B. 3/5.0 C. 3/5 D. 35答案:C2.设int a = 3;则表达式a1的运算结果和a的值分别是( )A. 0和2 B. 0和3 C. 1和2 D. 1和3答案:B3.设 int m1=5,m2=3;表达式m1m2?(m1=1):(m2=-1)运算后,m1和m2的值分别是( )A.1和-1 B.1和3 C.5和-1 D.5和3答案:B4.设float m=4.0,n=4.0;使m为10.0的表达式是( )A.m-=n*2.5 B.m/=n+9 C.m*=n-6 D.m+=n+2答案:D5.表达式5&2|5|2的值是( ) A.0 B.1 C.2 D.3答案:B6.设int x=-1;执行表达式+x|+x|+x后,x的值是( ) A.0 B.1 C.2 D.3答案:B7.设int x;则执行printf(%xn,xx);的结果是( ) A.0 B.1 C.ff D.ffff答案:D8.C语言中计算a3正确的表达是( ) A.a3 B.pow(a,3) C.a*3 D.power(a,3)答案:B9不用第三个变量,将变量a和b的值进行互换的操作是( ) A.a+=b;b-=a;a-=b;B.a+=b;b=a-b;a-=b; C.b-=a;a-=b;a-=b;D.b-=a;a=b-a;a+=b;答案:B10设int a=1,b=2,c=4;经过表达式(c=a!=b)&(a= =b)&(c=b)运算后,a、b和c的值分别是( )A.1,2,0B.1,2,1 C.1,2,2D.1,2,3答案:B11.若定义了int a,x,y;,则下列语句中不正确的是( )A. x=3,y=5;B. +x; C. x=y+=x*30;D. a=y+x=30;答案:D12.若定义了x=100;,则表达式x+100?x+20:x+10的值是( )A.110 B.111 C.120 D.121答案:B13. 执行语句printf(%x, -1);后输出结果是( ) A. -1 B. ffff C. 1 D. ffff答案:D14. 设float a=2, b=4, c=3;,以下C语言表达式与代数式1/2(a+b)c计算结果不一致的是( ) A. (a+b)*c/2 B. (1/2)*(a+b)*c C. (a+b)*c*1/2 D. c/2*(a+b)答案:B15. 设int a=10, b=20, c=30;条件表达式ab? a=5c的值是( ) A. 5 B. 10 C. 20 D. 30答案:A16. 在位运算中,操作数左移一位,其结果相当于操作数( ) A. 乘以2 B. 除以2 C. 乘以4 D. 除以4答案:A1.初始化值是0.618的双精度变量a的定义形式为_。答案:double a=0.618;2.表达式 !10! = 1的值是_。答案:13.“2020&x=304.表达式a=1,a+1,a+ 的值是_。答案:15.利用运算符-,下列两个语句 b=5+a;a-=1; 的功能可以仅由一个语句实现,这个语句是_。答案:b=5+a-6.“n是小于整数m的偶数”的C语言表达式是_。答案 n=A&ch=0&cb)if(cd)x = 1;else x = 2;等价的是( ) A. if(ab)if(cd) x = 1;else x = 2; B. if(ab)if(cd) x = 1; else x = 2; C. if(ab) & (cd) x = 1;else x = 2; D. if(ad) x = 1;答案:A2.执行下列语句 int a=8,b=7,c=6; if(ac)a=c;c=b; printf(%d,%d,%dn,a,b,c); 后输出的结果是( ) A.6,7,7 B.6,7,8 C.8,7,6 D.8,7,8答案:C3下列程序段运行后,x的值是( )a=1;b=2;x=0;if(!(-a)x-; if(!b)x=7;else +x; A.0 B.3 C.6 D.7答案:A4设int x=1,a=9,b=6,c=7,d=8;则执行语句:if(ab) if(cd)x=2;else x=3;后,x的值是( ) A.1 B.2 C.3 D.不确定答案:C5. 写出程序的运行结果# include stdio.hmain()char c; c = getchar(); if(c =a&c =X&c=0&c=9 other+循环结构循环结构当型循环结构: while (表达式) 语句;直到型循环结构: do 语句; while (表达式);次数型循环结构: for (表达式;表达式;表达式) 语句;注意: 1do while 循环至少执行1次。 2for语句主要用来实现次数型循环结构。 ()表达式、2、3都可以是任何类型的,都可以省略。但两个分号不可以省略。 ()表达式省略时, 一定是“死循环”。 break语句和continue语句1. break语句【功能】强制结束当前的循环,不再执行循环体中break后面的语句。2.continue语句【功能】跳过continue之后的语句,重新判断循环控制条件,决定是否继续循环。多重循环结构的实现 设计多重循环结构时,要注意内层循环语句必须完整地包含在外层循环的循环体中,不得出现内外层循环体交叉现象。但是允许在外层循环体中包含多个并列的循环

温馨提示

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

评论

0/150

提交评论