自考高级语言程序设计讲义.docx

上传人:夺命阿水 文档编号:1048661 上传时间:2024-03-04 格式:DOCX 页数:48 大小:121.78KB
返回 下载 相关 举报
自考高级语言程序设计讲义.docx_第1页
第1页 / 共48页
自考高级语言程序设计讲义.docx_第2页
第2页 / 共48页
自考高级语言程序设计讲义.docx_第3页
第3页 / 共48页
自考高级语言程序设计讲义.docx_第4页
第4页 / 共48页
自考高级语言程序设计讲义.docx_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《自考高级语言程序设计讲义.docx》由会员分享,可在线阅读,更多相关《自考高级语言程序设计讲义.docx(48页珍藏版)》请在课桌文档上搜索。

1、高级语言程序设计串讲课程说明串讲的目的和作用:1、将相对零散的知识建立一个整体的箧架,形成整体的知识体系。2、将考核知识点进行提炼3、分析历年真题,掌握题目所含知识点的同时分析出题思路,使复习时做到有的放矢。本次串讲的参考教材高级语言程序设计全国高等教育自学考试指导委员会组编,迟成文主编,经济科学出版社出版,2006年版。本次串讲的要讲解的重要知识点(共37个)1、高级语言与C语言的特点2、C语言的基本字符集、转义字符、保留字及其含义和C语言标识符的构成规则。3、C程序的基本结构与书写C程序的基本规则4、C语言中数据类型的分类5、整型、实型、字符型、字符串常量的书写方法6、符号常量的应用和宏定

2、义命令的使用7、整型、实型、字符型变量的定义、初始化方法8、基本类型数据在内存中的存放方式第一章概述程序:是用某种计算机能理解并执行的计算机语言描述解决问题的方法步骤。机器语言:采用计算机能直接识别和执行的二进制代码来表示的程序设计语言。汇编语言:采用文字方式(助记符)表示的程序设计语言,其中大部分指令和机器语言中的指令一一对应,但不能被计算机的硬件直接识别。汇编程序汇编语言程序机器语言程序结果汇编执行机器语言和编语言又称为“面向机器的语言”或“低级语言”。高级语言:是描述算法过程很方便、同时脱离了对机型的要求,能在任何计算机上运行的计算机语言。又称为“面向过程的语言:用高级语言编写的程序称为

3、源程序。高级语言程序的执行有两种:一种是翻译一句执行一句,称为,解释执行”方式,完成翻译工作的程序就称为“解释程序”;一种是全部翻译成二进制程序后再执行,承担翻译工作的程序就称为“编译程序”,编译后的二进制程序称为“目标程序、1.编译程序的功能是()A.将汇编语言程序转换为目标程序B.将汇编语言程序转换为高级语言程序C.将高级语言程序转换为目标程序D.将高级语言程序转换为汇编语言程序答案:C第二章C语言的基本知识C语言的基本词法1字符集C语言的字符集就是ASCn字符集,主要包含下列几类:1)大小写英文字母AZ、az(52个)(2)数字0、1、2、9(10)(3)非字母数字的可显示字符(33个)

4、键盘可输入的字符。字符集的真题1.C语言不能选用的字母是(A.wB.C.I答案:B2.转义字符在C语言的字符集中,还有一些不可显示的字符,C语言使用所谓的“转义字符”在程序中表示这些字符。转义字符由“反斜杠字符开始后跟单个字符或若干个字符组成。n回车换行符号a响铃符号tTab符号双引号v垂直制表符号V单引号b左退一格符号W反斜杠r回车符号ddd13位8进制数ddd对应的符号f换页符号xhh12位16进制数hh对应的符号转义字符的有关真题L下列不正确的转义字符是()A.,B.C.086zD.Q,答案:C2.下列转义字符中错误的是()NOOO,B.14zC.VHPD.2z答案:C3.保留字auto

5、externsizeof计算字节数breakfloatstaticcaseforstructchargotoswitchcontinueinttypedef类型定义constif如果uniondefaultlongunsigned无符号doregister寄存器voiddoublereturn返回volatile可变的else否则shortwhileenum枚举signed带符号 数据类型关键字(12个):char,double,enufloat,int,long,short,signed,struct,union,unsigned,void 控制语句关键字(12个):break,case,c

6、ontinue,default,do,else,for,goto,if,return,switch,while 存储类型关键字(4个):auto,extern,register,static 其它关键字(4个):const,sizeof,typedef,volatile保留字的行关真题1 .下列标识符中,不是C语言保留字的是()A.charB.whileC.minD.default答案:C2.下列不属于C语言保留字的是()A.charB.whileC.typedefD.look答案:D3.表示空类型的保留字是0答案:VOid(注意一定小写)标识符的有关真熟1 .正确的C语言用户自定义标识符是(

7、)A.printB.floatC.whenD.random答案:A2 .可以用作C程序标识符的一组是()A.printoodbaBcB.iamone-haIf3paiC.Pxqline#His.ageD.Cppilepow答案:A3 .C语言标识符的第一个字符必须为下划线或者答案:字母C程序构成的特点:(1) C程序是由若干个函数构成的。每个C程序有且仅有一个主函数,该主函数的函数名规定为Inain。(2)每个函数(包括主函数)的定义分为两个部分:函数头和函数体。函数头:返回值的类型函数名(类型形式参数1,)函数体:数据定义部分实现函数功能的语句串函数名后面的一对圆括号“()”是用来写函数的参

8、数的。参数可以有,也可以没有,但圆括号不能省略。(3)C程序中的每个语句以“分号”作为语句的结束,分号是C语句的组成部分,不可以省略。(4)用7*”和“括住的任意字符序列,称为,注释工源程序编译时,注释被忽略。(5)C程序的书写格式很灵活,在一行上可以书写多个语句,一个语句也可以写在多行上。在程序清单的任何一处都可以插入空格符号或回车符号。但是,为了程序清单层次分明、便于阅读,通常都采用缩格并对齐的书写方法。6)C程序的执行总是从主函数开始,并在主函数中结束。主函数和其它函数的位置是任意的。其它函数总是通过函数调用语句被执行。7)主函数可以调用任何其它函数;任何其它函数都可以相互调用,但不能调

9、用主函数。(8)C语言编译系统区分字母大小写。第三章基本数据类型、运算符和表达式C语言数据类型及分类关系图带符号整型带符号整型十带符号短整型Il带符号长整型r整型Tr无符号整型Iu无符号整型十无符号短整型Iu无符号长整型r基本类型Hr单精度型IH实型rIIu双精度型Il字符型数据类型r数组型卜构造类型rIl结构型卜指针型I-空类型(void)实型常量实型常量只使用十进制,它的书写形式有两种:1、十进制数形式:(必须有小数点)如0.123,.12,123.0,0.0,123.2、指数形式:(e或E之前必须有数字;指数必须为整数)如:12.3e3,123E2,1.23e4,e-5,L2E-3.5说

10、明:1、实型常量在一般的微型机中占用4个字节数。2、实型常量有效数字是7位。字符串常量字符串常量简称为“字符串O字符串就是用两个双引号(D前后括住的一串字符。空字符串:没有字符的字符串称为“空字符串。例如,字符串的长度:一个字符串中所有字符的个数称为该字符串的长度例如,的长度为0;%bl2c”的长度为5;101nx43ab”的长度为5说明:1、空串与空格串是不同的。空串前者不含任何字符,长度为0;空格串是包含若干空格字符的字符串其长度为所含空格字符的个数。2、每个字符串在内存中占用的字节数等于字符串的长度+1。其中最后一个字节存放的字符为“空字符”,其值为0,书写时常用转义字符来表示,称为字符

11、串结束标记。宏定义的真题1.下列叙述中,正确的是()A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致B.宏名必须用大写字母表示C.宏替换不占用运行时间,只占编译时间D.在程序的一行上可以出现多个有效的宏定义答案:C2.在下列有关宏替换的叙述中,正确的说法是()A,宏替换占用运行时间B.宏名有类型C.带参数的宏替换和函数等价D.宏替换只是字符替换答案:D运算符关系运算符(工、=、=S!=)和逻辑运算符(龈Il!说明:(1)关系运算和逻辑运算的结果是整型数据O或1。2)运算符的优先级如下:!优先于双目算术运算符优先于关系运算符优先于&优先于Il注意:用&对两个表达式进行计算时,若

12、第一个表达式的值为“假”,则运算结果与第二个表达式的值无关,结果肯定为“假”,所以C语言规定此时第二个表达式将不再计算。同样用11对两个表达式进行计算时,若第一个表达式的值为“真”,则运算结果与第二个表达式的值无关,结果肯定为“真,所以C语言规定此时第二个表达式也不再计算。运算符位移位运算符(左移,右移)无符号数右移带符号数右移.无符号数左移带符号数左移运算符真眶1 .下列表达式的值为。的是()A.3%5B.3/5.0C.3/5D.35答案:C2 .设inta=3;则表达式al的运算结果和a的值分别是()A.0和2B.0和3C.1和2D.1和3答案:B3 .设intml=5,m2=3;表达式m

13、lm2?(InI=I):(m2=T)运算后,Ini和m2的值分别是()A.1和-1B.1和3C.5和TD.5和3答案:B)D. m+=n+24 .设floatm=4.0,n=4.0;使In为10.0的表达式是(A.m-=n*2.5B.m=rrC.m*=n-6答案:D5 .表达式5&2|5|2的值是()A.0B.1C.2D.3答案:B6,设intx=T,执行表达式+x+x+x后,X的值是()A.0B.1C.2D.3答案:B7 .设intX,则执行Printf(%xn,x-x);的结果是()A.0B.1C.ffD.ffff8 .C语声中计算a3正确的表达是()D. power (a, 3)A.a3

14、B.pow(a,3)C.a*3答案:B9 .不用第三个变量,将变量a和b的值进行互换的操作是()A.a+=b;ba,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 .设inta=l,b=2,c=4;经过表达式(c=a!=b)&(a=b)&(c=b)运算后,a、bf11c的值分别是()A.L2,0B.b2,1C.If22D.123答案:B13 .执行语句Printf(x,-1);后输出结果是()A.-1B.-ffffC.1D.ffff答案:D14 .设floata=2,b=4,c=3;,以下C语言表达式与代数式i-(

15、ab)C计算结果不一致的是()A.(a+b)*c2B.(l2)*(ab)*cC.(ab)*c*l2D.c2*(a+b)答案:B第四章顺序结构、选择结构和循环结构的程序设计字符谕入/输出函数1 .字符输入函数getchar()【功能】从键盘读取单个字符。2 .字符输出函数PUtChar(Ch)【功能】将参数Ch对应的字符输出到显示器上。注意:若程序中用到上面两个函数,则在程序的开头加include“stdio.h”。格式轴入/输出函数1 .格式输入函数【格式】SCanf(输入格式字符串,输入变量地址表)输入格式字符串输入输出函数真题1.设inta=7,18;则Printf(%d,%d,(d+b,

16、a),(b,a+b);的输出是()A.7,15B.8,15C.15,7D.出错答案:A2 .若定义了UnSignedshorta=32768;f则执行Printf(a=%d,a);语句的输出结果是()A.a=-32768B.a=-lC.a=32768D,数据类型不一致,出错答案:A3 .使用语句SCanf(a=%f,b=%fw,&a,&b)输入变量a、b的值(代表空格),正确的是()A.1.25,2.4B.1.252.4C.a=l.25,b=2.4D.a=l.25b=2.4答案:C说明:50)break;if(i%2=0)s+=i;printf(i=%d,s=%dnw,i,s);)一答案:i=

17、15,s=56循环结构真题11. /*设从键盘输入:420/#includemain()charc;while(c=getchar()!=/n)switch(c-,0,)case0:caseIiputchar(c+2);case 2: putchar(c+3),break;case 3: PUtChar(C+4),defaultZputchar(c+l);break;printf(wnw);)答案:5523第五章数组一维数组一维数组的定义格式:数据类型符数组名1长度1,数组名2长度2,.;说明:长度即数组长度,是一个“整型常量表达式”,通常是一个整型常量,表示元素的个数。常量表达式中可以包括常

18、量和符号常量,不能包含变量。二维数组真题1.设inta4=b2,3,4,5,6,7,8,9;则数组a的第一维的大小是()A.2B.3C.4D.无确定值答案:B2.执行下列程序inta33=12,3);intb33=b2,3;main()printf(w%dnwa10+b00);后输出的结果是()A.0B.1C.2D.3答案:D字符数组与字符串真题4 .字符数组S不能作为字符串使用的是()A. chars=,happy,;B. chars=,happy,;C. chars6=,h,a,p,p,y,;D. chars4=hJ记/pJpJy;答案:D5 .连接两个字符串的系统函数名是o答案:strc

19、at()6 .设Charstring=wThiS_is_a_book!;则数组的长度应是O答案:16第六章指针指针和指针变量指针变量的定义和初始化格式:数据类型符*指针变量名1=初值取地址运算符也与指针运算符*【例】设有数据定义语句:floata,*p=fea;则:是正确的。相当于“*(邮)”,代表变量a。*fep是正确的。相当于,代表“&*P是正确的。相当于fe(*p)w,代表a的地址。&*a是错误的。相当于“也(*a)”,因为a不是指针变量,所以*a不正确。指向字符串的指针变量的使用1 .如何将指针变量指向字符串常量方法一:在数据定义语句中用赋初值的方式*指针变量二字符串常量例如char*

20、p=*abcd*;方法二:在程序中用赋值的方式指针变量二字符串常量例如char*p;P=abed*;说明:不允许将字符串常量用赋值方式赋予字符型数组。chara10;a=abed”;*这个语句出错*/指针和指针变量真题3.求三个数中的最大值和最小 值。void maxmin (a, b, c, m, n) int, a, b, c, *m, *n, it t;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bp2o指向字符串的指针变量的真题L设Char*s=wChina则Printf(%s,%c,%cnw,s,*s,s3),的输出是()A.china,c,nB.c

21、hina,china,iC.c,c,nD.china,china,n答案:A2.若定义了CharchE=wabc0defw,*p=ch;则执行printf(w%cw,*p4);语句的输出结果是()A.defB.dC.eD.0指针数组元素的使用1 .对其赋值指针数组名下标=地址表达式2 .引用所指向的变量或数组元素*指针数组名T标参加运算(算术运算)指针数组名下标+整数指针数组名下标一整数H指针数组名下标一指针数组名下标指针数组名下标H指针数组名下标一(关系运算)指针数组名下标1关系运算符指针数组名下标2指向字符串的指针变量的真题7.写出程序的运行结果main()intk;chara=pLANG

22、UA毋,b=wPROGRAM;char*p=a,*q=b;for(k=0,k=5+)if(*(p+k)=*(q+k)printf(w%cw,(q+k);第七章函数函数的概念和模块化程序设计方法函数的概念函数是一个可以反复使用的程序段,从其它的程序段中均可以通过函数调用语句来执行这段程序,完成既定的功能。当形参是指针变量时的数据传递方式形参是指针变量的结论:(1)形参是指针变量,实参必须是地址表达式。2)属于地址传递方式。y?x:y;returny;)main()intx=100;printf(w%dnw,sub(x,y);)printf(w%d,%dn,x,y);)答案:10030,50变量的

23、存储类型与作用域的真三14.写出程序的执行结果intf(inta)intb=4;staticintc=4;b+;c+;return(a+b+c);)main()inta=4,i;for(i=0,i3;i+)printf(w%4dw,f(a);答案:141516函数的递归调用定义:函数直接或间接的调用自身叫函数的递归调用递归过程必须解决两个问题:一是递归计算的公式,二是递归结束的条件和此时函数返回值。递归计算公式p(n)=n*p(n-l)递归结束条件p(l)=l在程序设计实现:if(递归结束条件)return(递归结束条件中的返回值),elsereturn(递归计算公式);函数的嵌套调用和递归调

24、用的真题3.写出程序运行的结果includelongfun(intn)longs;if(nnzhaolw,f,89,94,86,y2=100002L,zhao2wm,78,86,92);*在定义结构型的变量x2和y2的同时,对其所有成员赋初值*/结构型变量的定义和成员的引用的真题1.#includestring,hstructworkercharname15;intage;floatpay;);main()structworketx;char*t=wLileiw;intd=20;floatf=100;strcpy(x.name,t);x.age=d*2;x.pay=f*d;Printf(%st

25、%dt%0fn,x.name,x.age,x.pay);答案:Lilei 4020指向结构型数据的指针的真题1.设有定义StrUCtrulongx;floaty;time,*timep=fetime,则对time中成员X的正确引用是()A.ru.time.XB.timep.XC.(timep).xD.time-x答案:C2.设structstudent(intno;charname12;floatscore3;SL*p=&sl;用指针法给Sl的成员no赋值1234的语句是。答案:(*p).n=1234或p-no=12344.指针型的自定义【格式】typedef基本数据类型符*用户类型符;【例】

26、自定义指针类型举例。typedefint*POINT,I;/*定义POINT为整型指针的用户类型符*/typedefchar*P0INT_C6;/*定义PoINT_C为字符型长度为6的指针数组的用户类型符*/voidmain()POINT.Ipl,p2;/*该语句相当于int*pl,*p2*/POINT_Cp3,p4,/*该语句相当于Char*p36,*p46*/【例】设有定义语句“typedefint*POINT,则和定义语句“POINTX5;”作用相同的数据定义语句是。答案:int*x5;第九章文件文件概述文件:由按某个规则集合在一起,保存在外部存储器上的一批数据组成的。数据文件:文件中存

27、放的都是数据的文件称为数据文件程序文件:文件中存放的是源程序清单或者是编译连接后生成的可执行程序,这样的文件统称为程序文件。1.磁盘文件名盘符:路径文件主名.扩展名扩展名是C表示C语言的源程序文件。扩展名是Obj表示C语言源程序经编译后生成的中间代码文件。扩展名是exe表示C语言中间代码文件经连接后生成的可执行程序文件。3、文件尾测试函数feof(FILE*fp)【功能】测试fp所指向的文件是否到达文件尾。是文件尾返回非0,否则返回0。4、写字符函数fputc(charch,FILE*fp)【功能】将Ch中的字符写到fp所指向的文件的当前位置。5、读字符函数fgetc(FILE*fp)【功能】

28、从fp所指向的文件当前位置读取单个字符。6、写字符串函数fputs(char*str,FILE*fp)【功能】将Str指向的一个字符串,舍去结束标记符0后写入fp所指向的文件中。打开文件的常用程序段。include#includeFILE*fp;/*定义名为fp的文件型指针*/if(fp=fopen(w文件名“,“使用方式)=NULL)Printf(Cannotopenfile!Xn);exit(0);*关闭所有文件,中止程序运行*/)测试文件尾的常用程序段./*设文件型指针fp己经指向一个可读文件*/while(!feof(fp)/*若不是文件尾则继续循环*/.文件的真题8.设文件fiIeL

29、c的内容为Cc)MPUTERincludeStdiOeh”main()FILE*fp;charch;if(fp=fopen(wfilel.cw,wrw)=NULL)printf(wCannotopenfilenw);exit(O);while(!feof(fp)ch=fgetc(fp);if(ch=/A&ch0?3*x(x=10),后,变量X的值是()A.1B.2C.6D.102007.17.逗号表达式a=2*6,a*3,a+5的值是()A.12B.17C.36D.41注意,用皴对两个表达式进行计算时,若第一个表达式的值为“假”,则运算结果与第二个表达式的值无关,结果肯定为“假”,所以C语言规

30、定此时第二个表达式将不再计算。同样用11对两个表达式进行计算时,若第一个表达式的值为“真”,则运算结果与第二个表达式的值无关,结果肯定为“真,所以C语言规定此时第二个表达式也不再计算。(这个知识点年年考)考情交流最新考试大纲规定:本课程考试命题的主要题型有:单项选择题、填空题、阅读程序题、程序填空题。在命题工作中必须按照本课程大纲中所规定的题型命制,考试试卷使用的题型可以略少,但不能超出规定。”考试题型及分数分布情况:(我推测的1、选择题:共20小题,每小题1分,共20分。2、填空题:共10小题,每小题2分,共20分。3、程序阅读题:约6小题,每小题5分,共30分。4、程序填空题:共5小题,每

31、小题6分,共30分。近年来出题频率比较高的知识点:1、转义字符的正确表示。2005.10下列转义字符中错误的是()A.QQQ,B.14,C.xlll/D.2,2006.1设Chara=70;则变量a中()A.包含1个字符B.包含2个字符C.包含3个字符D.是非法表示2、C语言保留字【20051】C语言的保留字是(A.defineB.enumC.mainD.includet200510下列不属于C语言保留字的是()A.charB.whileC.typedefD.look2006.10以下属于C语言保留字的是()A.FopenB.include3、C语言标识符12006.1可以用作C程序标识符的一

32、组是(A.printoodbaBcB.iamone-half3paiC.Pxqline#His.ageD.Cpppowwhile4、C程序构成的特点2007.1一个C语言程序的执行起点是o2006.10一个C语言程序的基本组成单位是2005.10可以将被调函数中获得的值返回给主调函数的语句是5、C语言中整型常量的三种形式6、C语言中实型常量的两种形式2007.1宜语言中,错误的常数表示是()A.OLB.-0x6aLC.6D.1.234E3.52006.101C语言中,错误的int类型的常数是()A.1E5B.0C. 037D.Oxaf7、字符常量和字符串常量的正确表示,字符串的长度2006.1

33、0在C语言中,az和a”存储所占用的字节数分别是0?3*x(x=10);后,变量X的值是()A.1B.2C.6D.102007.117.逗号表达式a=2*6a*3,a+5的值是()A.12B.17C.36D.41注意,用般对两个表达式进行计算时,若第一个表达式的值为“假”,则运算结果与第二个表达式的值无关,结果肯定为“假”,所以C语言规定此时第二个表达式将不再计算。同样用11对两个表达式进行计算时,若第一个表达式的值为“真”,则运算结果与第二个表达式的值无关,结果肯定为“真,所以C语言规定此时第二个表达式也不再计算。(这个知识点年年考此版本仅限2007.1设有以下程序段:intx=2,y=2,z=0,a;a=-x+yfefez+;printf(%d,%d,%d11”,x,y,z);执行后输出的结果是()A2,2,0B-3,3,1C3,2,0D.3,2,12006.10设有以下程序段:inta=l,b=10,c=1,x;x=aftfebc;printf(%d,%dnw,x,c);执行后输出的结果是()A.0,0B.0,1C.b0D.b1IOs格式输入函数SCanf()和格式输出函数Printf()的正确使用(年年有该类题目).【2007.1】设floatx;,由键盘输入:12.45,能正确读入数据的输入语句是()A.scanf(w%5f”

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号