福建师范大学申请成人高考教育学士学位考试
计算机科学与技术专业
《C程序设计》课程考试大纲
一.考核目标
    学生应了解计算机程序设计的基本知识,掌握C++语言程序设计的基本方法和使用计算机处理问题的思维方法,具有应用计算机编程的初步能力。
  1、了解C++语言的特点,掌握语言的成份及其使用方法,能够阅读及编写简单的应用程序;
  2、掌握最基本的算法和实现的方法;
  3、掌握结构化程序设计的方法,能编制出风格良好的程序;
  4、掌握C++语言程序调试的基本技能。
二. 考核方式
笔试,考试时间120分钟。
三. 考核范围
数据类型及其运算
【考试要求】了解基本类型及其常量的表示法;掌握变量的定义及初始化方法;掌握运算符与表达式的概念;掌握C++的自动类型转换和强制类型转换。
【主要考点】 1、数据类型的种类
2、各种数据类型的定义方法
3、运算符的种类
4、运算符优先级和结合性
5、不同类型数据间的转换与运算
㈡ 基本语句
【考试要求】了解C语句的概念及种类;掌握C语言常用的输入/出方式。
【主要考点】 1、表达式语句、空语句、复合语句
2、数据的输入与输出
3、输入输出函数printf、scanf、cin、cout的使用
㈢ 选择结构程序设计
【考试要求】熟练掌握if…else的三种语法;领会switch与break语句的作用。
【主要考点】 1、 if语句
2、 switch语句
3、 选择结构的嵌套
㈣ 循环结构程序设计
【考试要求】领会程序设计中构成循环的方法;掌握for、while、do-while语句的用法;了解break、continue在循环语句中的作用。
【主要考点】 1、for循环结构
2、while和do while循环结构
3、continue语句和break语句
4、循环的嵌套
㈤ 数组的定义和引用
【考试要求】了解一维数组、二维数组的基本概念;掌握数组类型变量的定义与引用;掌握数组元素的引用。
【主要考点】 1、一维数组和多维数组的定义和初始化
2、数组的引用
3、字符串与字符数组
4、字符串处理函数(strlen, strcpy, strcat, strcmp)
㈥ 函数
【考试要求】掌握函数的定义与调用;掌握函数参数的传递方式;领会变量存储类型的概念及各种存储类型变量的生存期和有效范围;领会函数的嵌套调用与递归调用
【主要考点】 1、函数的定义方法
2、函数的类型和返回值
3、形式参数与实在参数;参数值的传递
4、函数的正确调用;嵌套调用和递归调用
5、内联函数和函数重载
6、局部变量和全局变量
7、变量的存储类别和作用域
㈦ 指针
【考试要求】了解指针与地址的概念;掌握指针变量的定义、初始化及指针的运算;掌握指针与数组、指针数组、指针实现字符串等知识;了解指针与函数的概念。
【主要考点】 1、指针变量的定义和初始化
2、指针的赋值
3、指针的运算
4、指针与数组
5、指针与字符串
6、指针用作函数参数
㈧ 结构与联合
【考试要求】掌握结构体和联合体类型的说明、结构体和联合体变量的定义及初始化方法;掌握结构体与联合体变量成员的引用。
【主要考点】 1、结构体和联合体类型数据的定义方法和初始化
3、结构体和联合体类型的说明及结构体类型变量的定义
4、结构体和联合体变量的初始化
5、结构体和联合体变量的引用
6、结构体数组
㈨ 基本语句
【考试要求】了解面向对象类和对象的概念;掌握构造、析构函数的定义和使用;类的继承性。
【主要考点】 1、类的创建和引用对象
2、构造函数与析构函数
3、派生类的定义和访问权限
4、单一继承与多重继承
㈩ 了解C++流的概念,掌握标准设备输入/输出函数的使用
【考试要求】了解C++流的概念;掌握标准设备输入/输出函数的使用。
函数printf作用【主要考点】 1、文件类型指针
2、文件的打开与关闭
3、文件的读写
4、输入输出的控制格式
四.考试题目类型
考试分两部分:理论题(20分)、编程题(80分)。理论题主要由单项选择题组成。编程题分简单操作题、简单应用题和综合应用题3种类型的考题。
五. 例题
1.下面的程序定义了一个Point类,出程序中的错误(已经指出错误所在的范围),修改后请运行程序并保存结果。
#include <iostream.h>
class Point
{
public:
int x;
//下面三行中有一个错误
Point(int a){x=a;}
int Getx(){return x;}
cout<<Getx()<<endl;
//下面三行中有一个错误
} A
void main()
{
//下面三行中有一个错误③
A.Point(76);
Cout<<A.x;
Cout<<A.Getx()<<endl;
}
答案:
应该注释掉cout<<Getx()<<endl。在类定义中不能直接使用cout语句向屏幕输出内容。
A后应该加上“;”类的声明之后必须加上“;”。
两种改法:为类Point增加一个成员函数如 void Setx(int a){x=a;},然后将A.Point(76)改为A.setx(76) 去掉;或者去掉类声明后的A以及A.Point(76)一句,在main函数中,声明一个Point的对象并初始化它,如Point B(76);然后将main函数中的A换成B。构造对象时,不能显式地调用构造函数。
2.根据基类的定义和测试程序以及程序中的注释信息,完成程序。
class Point           
{
public:
Point(float xx=0,float yy=0){X=xx;Y=yy;}
void Move(float xOff, float yOff){X+=xOff;Y+yOff;}
float Getx(){return X;}
float Gety(){return Y;}
private:
float x,y;
};
class Rectangle:private Point
{
public:
Rectangle(float x,float y,float w,float h)
:Point(  ①  ){  ②  }
void Move(float xOff, float yOff){  ③  }
float GetX(){  ④  }
float GetY(){  ⑤  }
float GetH(){  ⑥  }
float GetW(){  ⑦  }
private:
float W,H;
}

//测试程序
#include <iostream.h>
#include<math.h>
void main()
{
Rectangle rect(5,8n25,15);
void Move(3,4);
cout<<”The data of rect(X,Y,W,H):”<<endl;
cout<<rect.GetX()<<”,”<< rect.GetY()<<”,”<< rect.GetW()
<<”,”<< rect.GetH()<<endl;
}