电大《C++语言程序设计》考核说明

时间:2024-04-30 09:54:41 5A范文网 浏览: 平时作业 我要投稿

第一部分 考核说明

    《C++语言程序设计》是中央广播电视大学开放教育“计算机应用专业(专科)”的一门专业基础课,中央电大统设必修。在整个教学体系中占据非常重要的地位。该课程主要介绍C++程序设计语言的基本语法规则,计算机程序的基本结构,一些典型应用问题的程序设计方法(即算法),结构化和模块化的程序设计方法,面向过程和面向对象程序设计的概念与方法等内容。学好该课程将为学习其它专业课程打下良好的基础。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    考核对象:

    电大系统“开放教育试点”计算机应用专业(专科)学生。

    命题依据:

    本考核说明严格按照中央电大“开放教育试点”计算机应用专业(专科)《C++语言程序设计》课程教学大纲编写。本课程文字教材包括主教材和实验教材两本,均为李宁主编并由中央广播电视大学出版社出版,主教材为《C++语言程序设计》,实验教材为《C++语言程序设计实验》。本考核说明是考试命题的依据。

    考核要求:

    考核学生掌握和运用C++语言基本语法规则进行典型程序设计的能力。具体考核要求分为以下3个层次:

    了解:能够掌握C++语言的基本语法规则和一些基本概念。

    理解:能够阅读和分析用C++语言编写的程序,即能够写出程序的运行结果或指出程序的功能。

    应用:能够根据解决特定问题的要求利用C++语言编写出程序。

    命题原则:

    1.严格按照该课程教学大纲和考核说明的要求命题。

    2.试题的覆盖面较广,并适当突出重点。

    3.试题的难易程度和题量适当,按难易程度分为三个层次:容易占40%,一般占40%,较难占20%。

    4.题型有五种:单选题、填空题、写出程序运行结果、指出程序或函数的功能、编程题等。

    考核形式:

    采用平时形成性考核与期末终结性考核(卷面考试)相结合的方式。形成性考核占20分,视平时上机和作业完成情况而定,由所在班级的任课教师给定,由省(市、自治区)级电大认定;终结性考核(卷面考试)占80分,由中央电大统一命题,考试方式为闭卷,答题时限为90分钟。两方面成绩累计达到60分者为及格。

第二部分 考核内容及要求

  第一章 C++语言概述

  (一)考核内容(知识点):

    1.程序、程序文件和函数的概念及其相互之间的关系。

    2.函数的定义格式和作用,主函数的特殊地位和作用。

    3.C++基本语句和复合语句的语法格式。

    4.#include命令的作用,C++系统编译程序对其处理的过程。

    5.头文件的文件名格式、在程序中的使用方法和作用。

    6.程序中两种注释标记的写法和作用。

    7.标准输出流对象cout和标准输入流对象cin的含义,插入操作符<<和提取操作符>>的作用。

    8.C++源程序文件名、编译后生成的目标文件名和连接后生成的可执行文件名中相应的扩展名,C++系统的编译程序和连接程序的功能。

  (二)考核要求:

    要求了解以上内容。

  第二章 基本数据类型和表达式

  (一)重点考核内容(知识点):

    1.C++数据类型的分类。

    2.各种整数类型的关键字表示,存储空间的大小和值域范围。

    3.整型变量的定义和初始化,十进制整型常量的表示。

    4.字符类型的关键字表示,存储空间的大小和值域范围;字符型常量的表示,回车、换行、单引号、双引号、反斜线、空字符等特殊字符的表示。

    5.字符型变量的定义和初始化,字符型与整型的关系。

    6.枚举的概念,枚举类型的定义,枚举变量的定义和初始化,枚举常量与整型常量的对应关系。

    7.各种实数类型的关键字表示,存储空间的大小和有效位数。

    8.单精度和双精度实数的定点表示和浮点(科学)表示,实型变量的定义和初始化。

    9.加、减、乘、除、取余、赋值、增1、减1、取数据存储长度等算术运算符的表示、含义、运算对象个数和运算优先级。

    10.关系运算符的定义和关系表达式的计算,逻辑运算符的定义与逻辑表达式的计算,系统给定的逻辑(布尔)类型的定义,逻辑常量false和true与整型常量的对应关系,逻辑变量的定义和使用,求任意表达式对应逻辑值的方法。

    11.typedef语句格式及功能。

  (二)一般考核内容(知识点):

    1.整型常量的八进制和十六进制表示。

    2.符号常量和常值变量的定义和初始化,它们之间的区别。

    3.位操作符、复合赋值操作符的含义与使用。

    4.不同数据类型之间的强制转换。

    5.相反条件、等价条件、永真条件的含义,条件操作符和逗号操作符的含义及运算过程。

  (三)考核要求:

    掌握以上重点考核的内容,了解以上一般考核内容。

  第三章 C++程序的流程控制

  (一)考核内容(知识点):

    1.程序或程序模块的三种基本结构,每种结构的执行过程。

    2.简单if语句、带else子句的if语句、多分支结构的if语句的定义格式、执行过程和在处理问题中的具体应用。

    3.switch语句的定义格式、执行过程和在处理问题中的具体应用。

    4.if语句与switch语句之间的功能比较,if语句与switch语句之间的转换。

    5.for循环、while循环和do...while循环的定义格式、执行过程和在处理问题中的具体应用。

    6.三种循环结构之间的比较及其相互转换。

    7.Break语句在switch语句和各种循环语句中的作用,continue语句在各种循环语句中的作用。

    8.goto语句和return语句的定义格式和功能。

  (二)考核要求:

    了解goto 语句的功能,熟练掌握以上其余内容并能够灵活运用。

  第四章 数组

  (一)考核内容(知识点):

    1.一维数组的含义、定义格式及初始化格式。

    2.数组长度、数组元素、元素下标的含义,访问数组元素的语法格式,下标运算符的操作对象和操作结果。

    3.数组元素的下标变化范围,数组元素所占存储空间大小和整个数组所占存储空间大小的计算,各元素对应存储空间的排列情况,每个元素的存储地址的计算。

    4.利用一维数组存储数据,按元素值的升序或降序排列数据,按给定条件或功能对数组元素依次进行访问和处理。

    5.二维数组的含义、定义格式及初始化格式。

    6.二维数组的行数和列数的概念,数组长度(即所含元素个数)的计算。

    7.访问二维数组元素的语法格式,每个下标运算符的操作对象和操作结果。

    8.二维数组中的所有元素在存储空间中的排列情况,每个元素的存储地址的计算。

    9.利用二维数组存储矩阵数据,按给定条件或功能对数组元素依次进行访问和处理。

    10.字符串常量的定义格式,字符串的存储格式,字符串长度的概念。

    11.一维字符数组、二维字符数组与字符串之间的关系,一维字符数组与二维字符数组的初始化。

    12.strlen,strcpy,strcmp,strcat等字符串函数的声明格式及功能,利用提取和插入操作符输入和输出字符串的语法格式。

    13.利用typedef语句定义数组类型。

  (二)考核要求:

    掌握一维数组、二维数组和字符串的定义及有关概念,会利用它们存储和处理数据。

  第五章 C++函数

  (一)重点考核内容(知识点):

    1.函数的声明格式与定义格式。

    2.函数调用表达式的语法格式及执行过程。

    3.函数定义中形参变量的作用及实虚参数结合的过程。

    4.函数声明(原型)语句的定义格式及作用。

    5.形参为一维数组或二维数组时的说明格式、对应实参的语法规则、调用时数组参数传递的过程。

    6.变量的作用域的概念和含义;系统对全局变量、static变量、局部变量的建立和初始化过程。

  (二)一般考核内容(知识点):

    1.函数模板(又称模板函数)的定义格式及其作用。函数模板的实例化,函数模板与一般函数定义之间的优先关系。

    2.函数的递归调用的概念和递归函数的具体执行过程。

    3.头文件在程序文件中的位置和作用。

    4.函数声明或定义中可选参数的使用,对应的函数调用的格式及执行过程。

    5.内联函数的定义与作用。

    6.函数重载的概念。

  (三)考核要求:

    掌握以上重点考核的内容,了解其一般考核的内容。

  第六章 指针、引用和动态空间管理

  (一)重点考核内容(知识点):

    1.指针的概念,指针变量的定义和初始化。

    2.指针赋值(=)、取对象(变量)地址(&)、访问指针所指对象(*)、指针比较(==、!=、>、<等)、指针算术运算(+、-、+=等)、指针增1或减1(++、--)、指针类型转换等操作的含义、优先级及其应用。

    3.数组名的指针含义。

    4.一维数组元素的下标访问方式与指针访问方式及其之间的转换。

    5.一级指针(即带有一个星号定义的指针)作为函数参数和返回类型的应用。

    6.引用的概念,引用变量的定义和初始化,引用作为函数参数和返回类型的应用。

    7.new和delete操作符的含义及作用,动态对象或动态数组的建立与释放。

  (二)一般考核内容(知识点):

    1.指针常量的两种定义格式和含义。

    2.指针表达式的副作用。

    3.二维数组元素的下标访问方式与指针访问方式及其之间的转换。

  (三)考核要求:

    掌握以上重点考核的内容,了解以上一般考核的内容。

  第七章 结构与联合

  (一)重点考核内容(知识点):

    1.结构的概念,结构类型的定义格式,结构类型的声明(即不完整定义)格式。

    2.结构对象(变量)的各种定义格式和初始化,结构大小的计算,结构对象和结构数组对象的动态分配和初始化。

    3.结构赋值,结构成员的直接访问和间接访问,利用结构数组保存和处理数据。

    4.结构和结构指针作为函数参数和返回值类型的具体应用。

    5.操作符重载的概念,对结构类型进行算术、关系、输入和输出等操作符重载的函数定义格式,调用操作符重载函数的格式。

  (二)一般考核内容(知识点):

    1.链表的概念,链表中结点的结构,链表的建立、遍历、查找和释放等操作的算法。

    2.联合的概念,联合类型的定义格式,联合对象的定义和初始化,联合的存储结构及大小的计算,匿名(无名)联合的特点。

  (三)考核要求:

    掌握以上重点考核的内容,了解以上一般考核的内容。

  第八章 类与对象

  (一)重点考核内容(知识点):

    1.类的概念,类类型的定义格式,类成员的三种访问权限的具体含义,类与结构的异同,类成员在该类成员函数和类外其他函数中的访问方法。

    2.this指针的含义,类成员函数在类定义中声明或定义的格式,类成员函数在类外定义的格式,内联成员函数的定义格式,类类型大小的计算和类对象的存储结构。

    3.构造函数和析构函数的定义格式、调用时机和作用;构造函数的分类:无参构造函数、带参构造函数和拷贝构造函数;构造函数中初始化表的定义格式及作用。

    4.类的继承的概念,派生类(即带基类的类)的定义格式,对基类的三种不同继承方式的特点,对基类数据成员的初始化方法,类区分符的使用格式及作用。

    5.类对象成员的初始化方法,派生类构造函数和析构函数被执行的过程。

  (二)一般考核内容(知识点):

    1.类成员函数的重载和操作符重载函数。

    2.赋值重载函数的定义格式、调用时机及作用。

    3.友元函数和友元类的概念,在一个类中对友元函数和友元类的声明格式。

    4.静态数据成员的含义、声明格式、类外定义和初始化格式、访问方法。

    5.模板类的定义格式与模板类的实例化,利用模板类定义对象的语法格式。

  (三)考核要求:

    掌握以上重点考核的内容,了解以上一般考核的内容。

  第九章 C++流

  (一)重点考核内容(知识点):

    1.C++流类系列中各流类之间的继承关系,iostream.h、fstream.h、strstrea.h、iomanip.h等头文件的组成及作用。

    2.预定义标准输入流和输出流对象cin、cout和cerr的含义,在输入和输出流类中重载的提取和插入操作符函数的声明格式,以及调用它们的格式。

3.I/O操纵符dec、oct、hex、ws、endl、ends、setw(int)等的控制功能。

4.文件的概念,字符文件和字节文件的存储格式,文件访问位置指针、文件结束标记、文件缓冲区、文件流对象(简称文件流)等的含义,文件流的定义、打开文件、关闭文件等语句的格式及作用,每一种文件打开方式的含义。

    5.使用插入操作符和put(char)成员函数向字符文件输出数据,使用提取操作符和get()、get(char&)、getline(char*,int,char)等成员函数从字符文件中读取数据。

    6.使用read(char*,int)和write(const char*,int)成员函数访问字节文件。

  (二)一般考核内容(知识点):

    1.使用seekg(long,seek_dir)和seep(long,seek_dir)成员函数移动文件指针,使用tellg()和tellp()成员函数返回文件指针位置。

    2.ios流类中定义的bad()、eof()、fail()、clear()、fill()、precision(int)、setf(long)、unsetf(long)、width(int)等成员函数的声明格式及作用,I/O操纵符setiosflags(long)、resetiosflags(long)、setfill(int)、setprecision(int)等的调用格式及作用。

    3.字符串流类对象的定义和使用。

  (三)考核要求:

    掌握以上重点考核的内容,了解以上一般考核的内容。

第三部分 模拟考核试题及解答

一、单选题

    1. 由C++目标文件连接而成的可执行文件的缺省扩展名为________。

        A cpp       B exe       C obj       D lik

    2. 在下面的一维数组定义中,哪一个有语法错误。________

       A int a[]={1,2,3};      B int a[10]={0};      C int a[];      D int a[5];

    3. 在下面的函数声明中,存在着语法错误的是________。

        A void BC(int a, int);          B void BD(int, int);

        C void BE(int, int=5);          D int BF(int x; int y);

    4. 假定AB为一个类,则该类的拷贝构造函数的声明语句为________。

      A AB&(AB x);      B AB(AB x)      C AB(AB&);      D AB(AB* x)

    5. 对于结构中定义的成员,其隐含访问权限为________。

         A public      B protected      C private      D static

    6. 当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方

式为________。

        A ios::in      B ios::out      C ios::in | ios::out      D 没有

 

二、填空题

    1. 执行“cout<<43<<’-’<<18<<’=’<<43-18<<endl;”语句后得到的输出结果

为________。

    2. 已知'A'~'Z'的ASCII码为65~90,当执行“char ch=14*5+2;cout<<ch<<endl;”

语句序列后,得到的输出结果为________。

    3. 使用const语句定义一个标识符常量时,则必须对它同时进行__________。

    4. 表达式x=x+1表示成增1表达式为__________。

    5.若x=5,y=10,则x>y和x<=y的逻辑值分别为________和________。

    6. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的________。

7. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,

p所指对象的值为________。

8. 假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为

____________________。

9. 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为

____________。

10. 设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调

用该类的____________。

11.若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义

中加入一条语句:________________  

12. 若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用

____________头文件。   

 

三、给出下列程序运行后的输出结果

    1. #include<iostream.h>

       void main() {

              int s=0;

              for(int i=1;;i++) {

                     if(s>50) break;

                     if(i%2==0) s+=i;

              }

              cout<<"i,s="<<i<<","<<s<<endl;

       }

 

    2. #include<iostream.h>

       void main() {

           char a[]="abcdabcabfgacd";

              int i1=0, i2=0, i=0;

             while(a[i]) {

                     if(a[i]=='a') i1++;

                     if(a[i]=='b') i2++;

                     i++;

           }

              cout<<i1<<' '<<i2<<endl;

       }

 

    3. #include<iomanip.h>

       void main() {

              int a[9]={2,4,6,8,10,12,14,16,18};

              for(int i=0;i<9;i++) {

                     cout<<setw(5)<<*(a+i);

                     if((i+1)%3==0) cout<<endl;

              }

       }

 

    4. #include<iomanip.h>

       void LE(int* a, int* b) {

              int x=*a;

              *a=*b; *b=x;

              cout<<*a<<' '<<*b<<endl;

       }

       void main() {

              int x=10, y=25;

              LE(&x,&y); cout<<x<<' '<<y<<endl;

       }

 

    5. #include<iostream.h>

       class A {

              int a,b;

       public:

              A() {a=b=0;}

              A(int aa, int bb) {

                     a=aa; b=bb;

                     cout<<a<<' '<<b<<endl;

              }

       };

       void main() {

              A x,y(2,3),z(4,5);

       }

 

    6.#include<iostream.h>

       template<class TT>

       class FF {

              TT a1, a2, a3;

       public:

              FF(TT b1, TT b2, TT b3) {

                     a1=b1; a2=b2; a3=b3;

              }

           TT Sum() {return a1+a2+a3;}

       };

       void main() {

              FF<int> x(2,3,4),y(5,7,9);

              cout<<x.Sum()<<' '<<y.Sum()<<endl;

       }

 

四、写出下列每个函数的功能

    1. double SF(double x, int n) {

                //n为大于等于0的整数

           double p=1,s=1;

              for(int i=1;i<=n;i++) {

                     p*=x;

                     s+=p/(i+1);

              }

              return s;

       }

 

    2. float FH() {

              float x,y=0,n=0;

              cin>>x;

              while(x!=-1) {

                     n++; y+=x;

                     cin>>x;

              }

              if(n==0) return y; else return y/n;

       }

 

    3. #include<iostream.h>

       void WA(int a[], int n) {

              for(int i=0;i<n-1;i++) {

                     int k=i;

                     for(int j=i+1;j<n;j++)

                            if(a[j]<a[k]) k=j;

                     int x=a[i]; a[i]=a[k]; a[k]=x;

              }

       }

 

    4.#include<iomanip.h>

       #include<fstream.h>

       void JB(char* fname)

           //可把以fname所指字符串作为文件标识符的文件称为fname文件,

              //假定该文件中保存着一批字符串,每个字符串的长度均小于20。

       {

              ifstream fin(fname);

              char a[20];

              int i=0;

              while(fin>>a) {

                     cout<<a<<endl;

                  i++;

              }

           fin.close();

              cout<<"i="<<i<<endl;

       }

 

五、编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回它。

         int Count(double a[], int n);  //此为该函数的声明

 

参考解答:

一、单选题

1.B    2.C    3.D    4.C    5.A    6.D

二、填空题

1.43-18=25                      2. H

3. 初始化                        4. ++x

5. false 或0   true 或1         6. 数组类型

7. 26                            8. a+(i*N)*sizeof(a[0][0]) 或a+i*sizeof(a[i])

9. *(p->b) 或 *((*p).b)          10. 析构函数

11. friend void F();             12. iostream.h 或 iomanip.h

三、给出下列程序运行后的输出结果

1. i,s=15,56

2. 4 3

3.    2    4    6

      8   10   12

     14   16   18

4. 25 10

   25 10

5. 2 3

   4 5

6. 9 21

 

四、写出下列每个函数的功能

1. 计算<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 的值并返回。

2. 求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。

3. 采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

4. 从文件fname中依次读取每个字符串并输出到屏幕上显示出来,

同时统计并显示出文件中的字符串个数。

 

五、编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回它。

int Count(double a[], int n) {

       double m=0;

       int i;

       for(i=0;i<n;i++) m+=a[i];

    m=m/n;

       int c=0;

       for(i=0;i<n;i++)

              if(a[i]>=m) c++;

       return c;

}

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

行政法与行政诉讼法教学指导(1—8章)04-30

电大《行政法与行政诉讼法》课程一体化教学实施方案04-30

江苏电大《文学概论》考核说明04-30

电大《行政法与行政诉讼法》课程教学大纲04-30

电大《公共政策概论》课程考核说明04-30

电大《项目管理》综合练习(三)04-30

电大《项目管理》综合练习(四)04-30

电大《项目管理》综合练习(一)04-30

电大《项目管理》综合练习(二)04-30

经典案例讲评:甲某不服A市交通运输管理处行政处罚案04-30

热搜文章
最新文章