C语言程序设计复习指导.doc_第1页
C语言程序设计复习指导.doc_第2页
C语言程序设计复习指导.doc_第3页
C语言程序设计复习指导.doc_第4页
C语言程序设计复习指导.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

C+语言程序设计复习指导李绮琳一、课程说明C+语言程序设计复习指导与主教材C+语言程序设计(中央电大出版社 李宁编)配套,它是针对参加C+程序设计全省统考的计算机专业学生而编写的,旨在更有效地帮助考生复习,掌握重点内容,了解考试的题型、各知识点的所占比例,并附上5套模拟试题及参考答案,便于学生在考前作自我测试。二、考试说明 考试方式:闭卷考试(笔试) 考试题型1、 填空题。(10小题,共20分,每小题2分)2、 单项选择题。(15小题,共30分,每小题2分)3、 请写出下面程序的运行结果。(6小题,共30分,每小题5分)4、 请写出下面程序的功能。(2小题,共10分,每小题5分)5、 编程。(10分) 各章所占分数比例1、 2约占15分 第3章约占25分4、5章约占25分6、7章约占15分第8章约占10分第9章约占10分三、复习要点第一章1. C+语言的特点和发展过程;2. 程序文件与函数的相互关系,主函数的特殊地位和作用;3. C+基本语句和复合语句的语法格式;4. 程序中两种注释标记的写法和作用;5. C+系统的编译、连接程序实现的功能,源程序文件、目标文件、可执行文件的系统默认文件名(扩展名);6. C+中标识符的命名规则。第二章1. C+数据类型的分类;2. 整型类和实型类的关键字表示,存储空间的大小和值域范围(含有效位数),变量的定义和初始化;3. 整型类和实型类常量的正确表示(含转义字符,特殊字符的表示),字符串常量的正确表示、存储空间的大小;4. 各种常用运算符的正确使用(算术、逻辑、关系、赋值(复合赋值)、+、-、sizeof等运算符),各种表达式(赋值、关系、逻辑表达式)的构成与计算;5. 符号常量及常值变量的定义格式;6. 不同数据类型之间的转换;7. typedef 的格式与功能。第三章1. 程序或程序模块的三种基本结构,每种结构的执行过程,正确书写条件语句与循环语句中代表条件的表达式;2. 简单if语句、带else子句的if语句、多分支结构的if语句的定义格式、执行过程和在处理问题中的具体应用,if 与 else 的配对关系;3. switch语句的定义格式、执行过程和在处理问题中的具体应用,if语句与switch语句之间的功能比较;4. for 循环、while 循环、do_while循环的定义格式、执行过程和在处理问题中的具体应用(打印平方表、立方表、规则图案等,求奇数、偶数、素数,数值倒序等),循环次数的确定(永真、永假条件对循环次数的影响),三种循环结构之间的比较及其相互转换;5. break语句在switch 语句和各种循环语句中的作用,continue语句在各种循环语句中的作用,break、continue语句的应用;6. goto 语句和return 语句的定义格式和功能;第四章1 数组的基本概念;2 数组元素所占存储空间大小和整个数组所占存储空间大小的计算,各元素对应存储空间的排列情况,每个元素的存储地址的计算;3 数组长度、数组元素、数组下标的含义,访问数组元素的语法格式,数组元素的下标变化范围;4 一维数组的定义、存储、初始化,元素的序号与元素值的关系;5 利用一维数组存储数据,按给定条件或功能对数组元素依次进行访问和处理(如元素移动、排序、统计、查找符合条件的元素、输入、输出等)。6 二维数组的定义、存储、初始化;7 字符数组的定义、存储、初始化;8 字符数组与字符串的关系;9 常用字符串处理函数的使用及能正确调用这些函数的条件;第五章1. 函数的声明格式和定义格式,声明与定义的区别,函数定义的全局性;2. 函数调用的语法格式及执行过程,形参与实参的对应关系,参数传递的过程,形参值的改变对实参值的是否有影响,函数返回的时机及返回位置,return语句的作用;3. 函数调用的方式,作为表达式(必须有返回值)调用与作为语句调用的区别;4. 函数调用与函数定义或函数声明的关系;5. 一维数组作为函数实参的格式及参数传递的实际含义;6. 函数嵌套调用和递归调用的概念;7. 函数重载的概念及重载的条件;8. 变量的作用域的概念和含义,外部变量、静态变量、局部变量作用域、生命期的比较,未显式初始化时,变量有什么值。第六章1. 指针的概念,指针变量的定义和初始化,空指针与void 指针的含义,指针变量所占的字节数;2. 指针赋值(=)、取地址(&)、间接访问(*)、指针比较(= =)、指针算术运算(+、-、+=)、指针增1或减1(+、-)等运算的含义及应用;3. 数组名与指针的关系,利用指针方式访问一维数组中的元素;4. 一级指针作为函数参数的应用;5. 引用的概念,引用变量的定义与初始化,引用作为函数参数的应用。第七章1. 用户自定义类型的一般结构;2. 结构的概念,结构类型的定义格式,正确区分结构关键字、结构类型名、结构变量;3. 结构变量的各种定义格式和初始化,结构的存储结构及大小的计算;4. 结构赋值,结构成员的访问(直接、间接);5. 联合的概念,联合类型的定义格式,联合的存储结构及大小的计算。第八章1. 类的概念,类的封装性,类的继承性;2. 类类型的定义格式,类的成员属性;3构造函数和析构函数的作用、定义格式、调用特点;4默认的构造函数和析构函数存在的条件;5拷贝构造函数的作用及定义格式的特点;6this指针的含义;7类对象的定义,对象的生成与消亡,成员函数的调用;8类对象占用的存储空间的计算;9内联成员函数的特点;10友元函数与友元类的作用。第九章1. C+流类系列中各流类之间的继承关系,iostream.h、fstream.h、strstream.h、iomanip.h等头文件的组成及作用;2. 预定义标准输入流和输出流对象cin、cout、cerr的含义;3. I/O操纵符endl、hex、oct、dec、setw(int)、setiosflags(long)的应用,格式控制标志:left、right、dec、hex、oct、showbase、showpos、uppercase的含义;4. ios流类中定义的fill()、setf()、width()等成员函数的调用。四、综合复习题(试题范例) 相关的练习1、 主教材每章的自测题、习题(主要是填空、选择题);2、 中央电大编制的C+语言程序设计 形成性考核册(03秋版)3、 附录为C+语言程序设计 形成性考核册的参考答案(03秋版) 模拟试题(共5份)模拟题一一、 填空题。(10小题,共20分,每小题2分)1、 C+语言是在( )语言的基础上发展起来的。2、 在一个工程文件(project)中,可以有( )个main函数。3、 常量123456789123L占用( )字节存储空间。4、 若有while (int i=0) i-; , 循环的次数为:( )次。5、 数组是可以通过下标访问的( )类型数据元素的集合。6、 为了表明一个函数不带返回值,应在定义函数时指定该函数类型为( )。7、 获取一个变量的地址所采用的操作符是( )8、 对于用户自定义的数据类型,包含( )和( )两个部分。9、 在类的定义中,若没有显式规定其成员的访问属性,则默认采用( )访问属性。10、 要进行文件输入输出操作时,指明头文件的命令行是:( )。二、 单项选择题。(15小题,共30分,每小题2分)1、 C+源程序文件的缺省扩展名为:( ).cpp.obj.lik.exe2、 下列符号中,可以作为c+标识符的是:( ).where?.a+b.-var.var_13、 在C+语言中,char型数据在内存中的存储形式是( )。A. 补码B. 反码C. 原码D. ASCII码4、 设int m=1,n=2,则m+=n的结果是:( )A0B1C2D35、 请分析下面条件语句符合( )情况。 if (ab) if (c=d) x=1; else x=2;1 ab 且 c=d . x= 2 ab 且c=d 1 ab 且c=d. x= 2 ab 1 ab 且c=d. x= 2 ab 且 cd 1 ab 且c=d. x= 2 cd6、 下面有关for 循环的正确描述是:( )Afor 循环只能用于循环次数已经确定的情况Bfor 循环是先执行循环语句,后判断条件是否成立C在for 循环中,不能用break 语句跳出循环体Dfor 循环语句中,可以包含多条语句,但要用花括号括起来7、 要定义一个 int 型一维数组 a ,并使其各元素具有初值30,35,0,25,0,0,正确的定义语句有:( ).int a=30, 35, 0, 25;.int a4=30, 35, 0, 25;.int a5=30, 35, 0, 25, 0, 0;.int a6=30, 35, 0, 25;8、 已知数组a的定义为char a = “abctden”; ,请写出strlen(a) 的值为:( )。.09、 如果一个函数作为表达式被调用,则该函数必须是 ( )。A. 有返回值的函数B. 无返回值的函数C. 有参函数 D. 无参函数10、 变量的指针,其含义是指该变量的( )。A.值 B.地址C.名D.一个标志11、 设有:int m=10; 下列表示引用的方法中,正确的是:( )A. int &x=m;B. int &y=10;C. int &z;D. float &t=&m;12、 若有以下定义,下列说法错误的是:( )struct ex int a; float b; char c;example;Astruct 是结构类型的关键字Bexample 是结构类型名Ca,b,c 是结构成员名Dexample 是用户声明的结构变量13、 若类的成员函数是在类中定义的,则默认为( )函数。.构造.析构.友元.内联(inline)14、 一个类的析构函数是在( )时被自动调用。. 使用该类对象前. 使用该类对象后. 该类对象撤消. 定义该类对象15、 cin 是( )的一个对象,处理标准输入。Aistream.hBostream.hCifstream.h.ofstream.h三、 请写出下面程序的运行结果。(6小题,共30分,每小题5分)1、 # include void main() int i; for(i=1;i6;i+) if (i=3) break; couti now is iendl; coutthe end i is i;2、 # include void main() char a=”abcdabcabfgacd”; int i1=0,i2=0,i=0; while (ai) if (ai=a) i1+;if (ai=b) i2+;i+;couti1 i2endl;3、 # include int test(int b) b*=10; cout”b=”bendl; return b/2;void main() int b=60;b=test(b);cout”b=”bendl;4、 # include # include struct Worker char name15; int age; float pay;void main() Worker x; char * t=liouting; int d=38; float f=493; strcpy(,t); x.age=d; x.pay=f; x.age x.payendl;5、 # include class AAA int a,b;public:AAA(int aa=0,int bb=1):a(aa),b(bb) coutConstructor!a+bendl;void main() AAA x,y(3,5),z(9);6、 # include void main() int n; coutsetw(6 )*endl; for(n=1;n5;n+) coutsetw(6-n)*setw(n+n)*endl; for(n=1;n12;n+) cout*; coutendl;四、 请写出下面程序(函数)的功能。(2小题,共10分,每小题5分)1、 # include void main() int i,x,max,min; cinx; max=min=x; for(i=1;ix; if (xmax) max=x; if (xmin) min=x; coutmax=maxendl; coutmin=minb) return 1;else if (a=b) return 0; else return 1; 五、 编程。(10分)计算I,并要求输出其和第一次大于500时I值以及和值。模拟题二一、 填空题。(10小题,共20分,每小题2分)1、 C+语言的前身是( )语言。2、 定义符号常量的关键字是( )。3、 字符串 “FirstLinen2ndLinex0A”的长度是( )。4、 若有for (int i=0,x=0;!x & istr1;. cin.getline(str);. cingetline(str,13);. cin.getline(str,13);9、 C+语言程序由函数组成,它的( )。A. 主函数必须在其它函数之前,函数内可以嵌套定义函数。B. 主函数可以在其它函数之后,函数内不可以嵌套定义函数。C. 主函数必须在其它函数之前,函数内不可以嵌套定义函数。D. 主函数可以在其它函数之后,函数内可以嵌套定义函数。10、 空指针是指( )。A. 无指针值的指针B. 不指向任何数据的指针 C. 无数据类型的指针D. 既无指针值又无数据类型的指针11、 下列引用的定义中,错误的是:( )A. int i; int &j; j=i;B. int i; int &j=i;C. float i; float &j=i;D. char d; char &k=d;12、 若有以下定义,则结构变量初始化正确的是:( )struct EX int a; char b; double c;AEX d=5 , 10.2 , A;BEX d=5 ; 10.2 ; A;CEX d=5 , A , 10.2;DEX d=5 ; A ; 10.2;13、 类中的每一个成员都具有一定的访问属性,其中protected 访问属性的含义为( )。.成员可以为任意函数访问。.成员只能为该类的成员函数以及该类的派生类中的成员函数访问。.成员只能为该类的成员函数所访问。.成员只能为内联函数访问。14、 c+允许在一个类中把外部的有关函数声明为它的友元函数,当函数被声明为一个类的友元函数后,它具有直接访问该类的( )的特权。. 数据成员. 公有成员. 保护成员. 私有成员15、 cout、 cerr和clog 是( )的对象,cout处理标准输出,cerr和clog都处理标准出错信息。Aistream.hBostream.hCifstream.hDofstream.h三、 请写出下面程序的运行结果。(6小题,共30分,每小题5分)1、 # include void main() int i; for(i=1;i6;i+) if (i=3) continue; couti now is iendl; coutthe end i is i;2、 # include void main() int a9=2,4,6,8,10,12,14,16,18; for(int i=0;i9;i+)coutsetw(5) ai;if (i+1)%3=0) coutendl;3、# include void exam3( int a, int b) int x=a;a=b; b=x;couta bendl;void main() int x=10, y=25; exam3(x,y); coutx yendl; 4、 # include # include struct Worker char name15; int age; float pay;void main() Worker x=liguohua,18,580; Worker y,*p; y=x; p=&x; x.age x.payendl; coutname age+5 pay*2endl;5、# include class BBB int a1,a2;public:BBB()a1=a2=5;BBB(int aa,int bb) a1=aa;a2=bb;void output() couta2 a1endl;void main() BBB x(6,8),y; x.output(); y.output();6、 # include void main() int n; coutsetw(7)*endl; for(n=1;n6;n+) cout.fill( ); coutsetw(6-n) ; cout.fill(*); coutsetw(n+n+1)*endl; 四、请写出下面程序(函数)的功能。(2小题,共10分,每小题5分)1、# include void main() float x,sum=0,aver; int n=0; while(1) cinx; if (x= = -1) break; sum+=x; n+; if (n= =0) aver=0; else aver=sum/n; coutaver=aver=b & a=c) return a;if (b=a & b=c) return b;if (c=a & c=b) return c;五、编程:打印如下平方表。(10分) 模拟题三一、 填空题。(10小题,共20分,每小题2分)1、 C+语言源自于( )语言,并在它的基础上增加了面向对象的特性。2、 定义常值变量的第一个修饰符是( )。3、 字符串 “中华人民共和国”占用( )字节的空间。4、 若有for (int i=0,j=10; i=j=10 ; i+, j-) , 循环的次数为:( )次。5、 已知数组a的定义为int a5=10, 20, 30 ; ,当有sizeof(int)的值为4,数组a 占用了( )字节。6、 已知一函数的定义是: double Area (double r ) return 3.14 *r*r;,则该函数的原形是( )。7、 访问指针变量所指向的数据应该采用操作符( )。8、 每个联合对象所占用的存储空间的大小等于( )。9、 当对象调用成员函数时,除了将实参传送给成员函数中显式说明的形参外,还同时把对象的地址传送给成员函数中默认的指针参数( )中。10、 要调用函数setw(),指明头文件的命令行是:( )。二、 单项选择题。(15小题,共30分,每小题2分)1、 由C+源程序文件编译、连接后生成的可执行文件的缺省扩展名为:( ).cpp.obj.lik.exe2、 下列符号中,可以作为c+标识符的是:( ).6str.sp_str.who?.switch3、 下列表达式中不正确的有( )。A. p=(q=8)B. k/(p+3)C. (p-i)=39 D. px4、 设有int p,q ; 下列语句中不正确的是:( )Ap*=3;Bp/=q;Cp+=3;Dp&=q;5、 设有int x,a,b,c; 下列if语句中合法的是:( )Aif (a=b) x+;Bif (a=b) x+;Dif (ab) x+;6、 C+语言中while和do-while循环的主要区别是:( )Awhile的循环控制条件比do-while的循环控制条件严格Bdo-while允许从外部转到循环体内Cdo-while的循环体中不能使用continue语句Ddo-while的循环体至少执行一次7、 要定义一个 int 型二维数组 a ,并使其各元素具有初值 30 35 0 25 0 0 15 5 0 0 0 0 55 65 75 ,正确的初始化语句有:( ).int a53=30, 35, 0, 25, 0, 0 , 15, 5, 0, 0, 0, 0, 55, 65, 75;.int a35=30, 25,15, 0, 55,35, 0,5, 0 , 65, 0, 0, 0, 0, 75;.int a 3=30, 35,25 ,15, 5, ,55, 65, 75;.int a=30, 35, 0, 25, 0, 0 , 15, 5, 0, 0, 0, 0,55, 65, 75;8、 已知数组a的定义为char a = “good_morning”; ,请写出strstr(a, “mo”) 的值为:( )。. “good_mo”. “morning”. “mo”. 29、 下列结论中,只有( )是不正确的。A. C+语言不允许函数嵌套定义。B. C+语言允许函数嵌套调用。C. C+语言中允许函数递归调用。D. C+语言所有函数都可以相互调用,包括调用main。10、 下列表达式中,与下标引用Ak等效的是( )。A. *(A+k) B. A+kC. *A+kD. A+*k11、 ( )是给变量(对象)取一个别名。A. 指针B. 引用C. 枚举D. 结构12、 若有以下定义,则对结构变量成员引用正确的是:( )struct date int y; int m; int d; struct person int num;char name10;date birthday;st;AnumBCst.birthdayDst.date.m13、 类中的每一个成员都具有一定的访问属性,其中private 访问属性的含义为( )。.成员可以为任意函数访问。.成员只能为该类的成员函数以及该类的派生类中的成员函数访问。.成员只能为该类的成员函数所访问。.成员只能为内联函数访问。14、 面向对象程序设计中,派生类除了具有基类的全部特征,还具有基类所没有的、属于自己的特征,派生类和基类的这种关系,被称为:( ). 分类. 封装. 继承. 多态性15、 C+中I/O操作分别由两个类istream和ostream提供,由它们派生出一个类( ),提供双向I/O操作。AstreamBfstreamCstrstreamDiostream三、 请写出下面程序的运行结果。(6小题,共30分,每小题5分)1、# include # define n 4 void main() int i,j;for(i=1;i=n;i+) for (j=1;j=i;j+) coutj; coutendl; 2、 # include void main() char data26; int i; for(i=0;i26;i+) datai=A+i; for(i=0;i26;i=i+2) datai=datai+32; for(i=0;i26;i+) coutdatai ; if(i+1)%10=0) coutendl; 3、 # include int fun (int num) int k=1; while (num) k=k*(num%10); num=num/10; return k;void main() int n=256; coutfun(n)endl;4、# include void exam3( int &a, int &b) int x=a;a=b; b=x;couta bendl;void main() int x=10, y=25; exam3(x,y); coutx yendl;5、# include class AAA int a,b;public:AAA()a=b=2;AAA(int aa,int bb) a=aa;b=bb; couta bendl;void main() AAA x,y(5,8),z(6,11);6、 # include void main() cout.fill(*); cout.width(8); cout123.45endl; cout.fill(!); coutsetiosflags(ios:left)hex; cout.width(6); cout1024endl;四、 请写出下面程序的功能。(2小题,共10分,每小题5分)1、 # include void main() int i,j, sum=2; for(i=3 ; i20 ; i+=2) for(j=2 ; j=i) sum+=i; coutsum=sumendl;2、 # include # define N 10void main() int aN,i,total=0,sum=0; for(i=0;iai; sum+=ai; for(i=0;iN ;i+) if (ai=float(sum)/N) total+; couttotal is :totalendl;五、 编程:从键盘输入若干整数,直到输入-1为止,分别统计并打印这些整数中奇数和偶数的个数。(10分)模拟题四一、 填空题。(10小题,共20分,每小题2分)1、 应用程序function.cpp中只有一个函数,这个函数的名称是( )。2、 6.7543e-2在常规表示法中表示为( )3、 定义枚举类型的关键字是( )。4、 若有int i=5; do couti-endl; i-; while (i!=0); , 循环的次数为:( )次。5、 已知数组a的定义为int a5=78, 80, 93, 100, 65 ; ,当有sizeof(int)的值为4,并假设数组a的首地址为2000H时,那么数组a 第三个元素:93的地址为( )。6、 重载一个函数的条件是:该函数必须在参数的( )上或类型上与其他同名函数有所不同。7、 设有int a=3,*p=&a; 那么*p 的值是( )8、 一个结构占用的空间理论上应该等于( )。9、 一个类的构造函数是在( )时被自动调用。10、 要调用函数sqrt(), 指明头文件的命令行是:( )。二、 单项选择题。(15小题,共30分,每小题2分)1、 在C+中,扩展名为.h的文件称为:( ).源文件.目标文件.可执行文件.头文件2、下列符号中,不可以作为c+标识符的是:( ).2def._var._VAR.var103、sizeof(float)是( )。A.一个双精度型表达式B.一个整型表达式C.一个函数调用D.一个不合法的表达式4、 在c+中合法的字符型常量是:( )A084Bx43CabD”0”5、若要表示x为0时,输出字符串”zero”,正确的条件语句是:( )Aif (x=0) cout”zero”;Bif (x | 0) cout”zero”;Cif (x) cout”zero”;Dif (!x) coutstr ; ,当输入为:Object Windows Programming! 所得的结果是str=( )AObject Windows Programming!BObjectCObject WindowsDObject Windows Prog三、 请写出下面程序的运行结果。(6小题,共30分,每小题5分)1、 # include void main() int i,a,b,c,n; n=0; for(i=104;i200;i+) a=i%10; b=(i/1

温馨提示

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

评论

0/150

提交评论