C++复习资料 (重要版)
下列有关继承和派生的叙述中,正确的是( C )
A)派生类不能访问通过私有继承的基类的保护成员
B)多继承的虚基类不能够实例化
C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数
D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
实现运行时多态的机制是( A )
A)虚函数B)重载函数C)静态函数D)模版函数
以下哪个关键字对应的属性破坏了程序的封装性( B )
A)const B)friend C)public D)protected
以下哪个符号(或组合)是作用域限定符( C )
A)-> B). C):: D)[]
下列关于this指针的说法正确的是( B)
A)this指针存在于每个函数之中
B)在类的非静态函数中this指针指向调用该函数的对象
C)this指针是指向虚函数表的指针
D)this指针是指向类的函数成员的指针
下列运算符中,不能重载的是(C)
A)&& B)!= C). D)->
对于类的常成员函数的描述正确的是(A)
A)常成员函数不修改类的数据成员
B)常成员函数可以对类的数据成员进行修改
C)常成员函数只能由常对象调用
D)常成员函数不能访问类的数据成员
使用如setw()的操作符对数据进行格式输出时,应包含的头文件是(D)A)iostream B)fstream C)stdio D)iomanip
下面的程序段的运行结果为(D)
char str[] = "job", *p = str;
cout << *(p+2) << endl;
A)98 B)无输出结果 C)字符’b’的地址 D)字符’b’
下面程序的输出结果是(C)
#include
using namespace std;
class Base
{
public:
virtual void f() { cout << “f0+”; }
void g() { cout << “g0+”; }
};
class Derived : public Base
{
public:
void f() { cout << “f+”; }
void g() { cout << “g+”; }
};
void main() { Derived d; Base *p = &d; p->f(); p->g(); }
A)f+g+ B)f0+g+ C)f+g0+ D)f0+g0+
下面程序的输出结果是( C )
#include
using namespace std;
class A
{
public:
A (int i) { x = i; }
void dispa () { cout << x << “,”; }
private :
int x ;
};
class B : public A
{
public:
B(int i) : A(i+10) { x = i; }
void dispb() { dispa(); cout << x << endl; }///基类中的公有函数能够被派生类直接调用
private :
int x ;
};
void main()
{
B b(2);
b.dispb();
}
A)10,2 B)12,10 C)12,2 D)2,2
下面程序的输出结果是( C)
#include
using namespace std;
class Base
{
public:
Base(int i) { cout << i; }
~Base () { }
};
class Base1: virtual public Base
{
public:
Base1(int i, int j=0) : Base(j) { cout << i; }
~Base1() {}
};
class Base2: virtual public Base
{
public:
Base2(int i, int j=0) : Base(j) { cout << i; }
~Base2() {}
};
class Derived : public Base2, public Base1
{
public:
Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a)
{ cout << b; }
private:
Base2 mem2;
Base1 mem1;
};
void main() { Derived objD (1, 2, 3, 4); }
A)134122 B)123412 C)14302012 D)143212
下面程序的输出结果是( C )
#include
using namespace std;
int countp=0;
class Point
{
int X,Y;
public:
Point(int x=0,int y=0) { X=x; Y=y;}
Point(Point &p){X=p.X;Y=p.Y;countp++;}
friend Point myfun(Point p1 ,Point p2 ,const Point &p3);
};
Point myfun(Point p1,Point p2,const Point &p3)//此处调用两次,引用是不调用拷贝构造函数的
{
Point tmp(p1.X+p2.X+p3.X,p1.Y+p2.Y+p3.Y);
return tmp;//////此处,调用构造函数一次。
}
void main()
{
Point pp0,pp1(1,2),pp2(1);
myfun(pp0,pp1,pp2);
std::cout< } A)0 B)4 C)3 D)6 11.面向对象的程序设计有四大特征,它们是抽象、封装、继承、多态。12.在Visual C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型不同;在基类和派生类中,成员函数的覆盖是指派生类成员函数与在基类被覆盖的成员函数名、参数个数、参数类型和返回值类型均相同。 13.构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与类名相同,而析构函数名是在类名前加一个~、析构函数没有参数、析构函数可以定义为虚函数。 14.动态关联要满足两个条件,它们是被调用的成员函数是虚函数、用指针或引用调用虚函数。 15.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为抽象类,定义该类至少具有一个纯虚函数。 22.下面程序的运行结果是2 5 8 11 14。 #include "iostream.h" void main( ) { int i=1; while (i<=15) { i++; if (i%3!=2) continue; else cout <<"i="< } } 23.下面程序的运行结果是________。 #include using namespace std; class test { public: test( ); int get_int( ){return num;} float get_float( ){return fl;} ~test( ); private: int num; float fl; }; test::test( ) { cout << "Initalizing default" << endl; num=0;fl=0.0; } test::~test( ) { cout << "Desdtructor is active" << endl; } void main( ) { test array[2]; cout << array[1].getint( )<< " " << array[1].getfloat( ) < Initalizing default Initalizing default 0 0 Desdtructor is active Desdtructor is active 24.下面程序的运行结果是________。 #include class A { public: A(){cout<<"A::A() called.\n";} virtual ~A(){cout<<"A::~A() called.\n";} }; class B:public A { public: B(int i){ cout<<"B::B() called.\n"; buf=new char[i];} virtual ~B() { delete []buf; cout<<"B::~B() called.\n"; } private: char *buf; }; void fun(A *a) { delete a; } void main() { A *a=new B(15); fun(a); } A::A() called. B::B() called. B::~B() called. A::~A() called. 四、(8分)下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数 class shape{ public: virtual float area( )=0; }; float total(shape *s[ ],int n) { float sum=0.0; for(int i=0;i sum+=s[i]->area( ); return sum; } class Triangle:public Shape { public: Triangle(double h,double w){H=h;W=w;} double Area() const{return H*W*0.5;} private: double H,W; }; class Rectangle:public Shape { public: Rectangle(double h,double w){H=h;W=w;} double Area()const{return H*W;} private: double H,W; }; 1、如果函数不要求带回值,可用void来定义函数返回值为空 2、将数组a的首地址赋给指针变量p的语句是p=a; 3、c语言表达式!(4>=6)&&(3<=7)的值是1 4、Int a=1,b=2,c=3;执行语句a=b=c;后a的值是3 5、c语言的三种基本结构是顺序结构、选择结构、循环结构 6、c语言中,数组元素的下标下限为0 7、若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 数值最大的元素下标值是2 8、结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体类型,再说明结构体变量 9、若s是int型变量,且s=6,则s%2+(s+1)%2值为1 10、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10 for(i=0,j=10,i<=j;i++,j--)k=i+j; 11、已知i=5,语句a=(i>5)?0:1;执行后整型变量a的值为1 12、字符串的结束标志是’\0’ 13、当a=1,b=2,c=3时,执行以下程序段if(a>c)b=a;a=c;c=b;后a=3 14、执行下列语句char s[3]=”ab”,*p;p=s;后,*(p+1)的值是b 15、定义int a[2][3];表示数组a中元素的个数是6 16、一个c源程序中至少包括一个main 函数 17、程序段int k=10;while(k=0) k=k-1循环体语句执行0次 18、程序#include”stdio.h”main(){int a;for(a=0;a<10;a++);printf(“%d”,a);}输出结果10 19、已知i=5,写出语句i*i+1;执行后整型变量i的值为30 20、Static int a[3][3]={1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为6 21、#define和printf都不是c语句Y 22、共同体变量所占的内存长度等于最长的成员长度Y 23、若a=3,b=2,c=1则关系表达式”(a>b)==c”的值为真Y 24、Char c[]=”Very Good”;是一个合法的为字符串数组赋值的语句Y 25、变量根据其作用域的范围可以分为局部变量和全局变量Y 26、c语言中”%”运算符的运算对象必须是整型Y 27、while和do...while循环不论什么条件下结果都是相同的N 28、如果函数值的类型和return语句中的表达式值不一致,则以函数类型为准Y 29、参加位运算的数据可以是任何类型的数据N 30、字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面N 31、以下c语言常量中错误的是B A OxFF B 1.2e0.5 C 2L D‘、72’ 32、编译时系统提示错误,不能正确赋字符串的是C A char s[10]=”abcdefg”; B char t[]=”abcdefg”,*s=t; C char s[10];s=”abcdefg”; D char s[10];strcpy(s,”abcdefg”); 33、变量的指针是指该变量的地址 34、系统标准输入文件指键盘 35、定义共用体的关键字是union 36、优先级最高的运算符是C A*= B>= C(类型) D+ 37、不能作为合法的c用户定义标识符的是D AFor BPrintf CWORD Dsizeof 38、调用函数时实参是一个数组名,则向函数传送的是数组的首地址 39、定义int*p[3],则定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 40、以下不正确的定义语句是 B Adouble x[5]={2.0,4.0,6.0,8.0,1.0}; Bint y[5]={0,1,3,5,7,9}; Cchar c1[]={‘1’,’2’,’3’,’4’,’5’}; Dchar c2[]={‘\x10’,’\xa’,’\x8’}; 41、凡是函数中未指定存储类别的局部变量其隐含的存储类别为自动(auto) 42、当定义一个结构体变量时系统分配给它的内存是各成员所需内存量的总和 43、以下数组定义中不正确的是D Aint a[2][3]; B int b[][3]={0,1,2,3}; Cint c[100][100]={0}; Dint d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 44、P,p1为指针变量,a为数组名,j为整型变量,不正确的是D Ap=&j,p=p1; Bp=a; Cp=&a[j]; Dp=10; 45、合法的用户标识为B Along B_2Test C3Dmax DA.dat 46、不正确的字符串常量是A A’abc’ B”12’12” C”0” D”“ 47、在c语言程序中函数的定义不可以嵌套,但函数的调用可以嵌套 48、先用语句定义字符型变量c,然后将字符a赋给c,则c=’a’;(c=97) 49、return语句可以在同一个函数中出现多次 50、char a[10];不能将字符串”abc”储存在数组中的是 C Astrcpy(a,”abc”); B a[0]=0;strcat(a,”abc”); Ca=”abc”; Dint i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 51、功能:将一个数组中的元素按逆序存放 #include 第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式 必须清楚的: 1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch) 2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环碰到选择做选择)。 3)计算机的数据在电脑中保存是以二进制的形式?数据存放的位置就是他的 地址. 4) bit是位是指为0或者1。byte是指字节,一个字节=八个位? 5)一定要记住二进制如何划成十进制。 概念常考到的: 1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中不可以再定义函数。 4、算法的是一定要有输出的,他可以没有输入。 5、break可用于循环结构和switch语句。 6、逗号运算符的级别最低。 第一章 1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。main define scanf printf 都不是关键字迷惑你的地方If 是可以做为用户标识符。因为If 中的第一个字母大写了,所以不是关键字。 2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.333 X 10 考试口诀: e 前 e 后必有数, e 后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,"1" 是字符串占两个字节(含有一个结束符号)。 '0'的ASCII数值表示为48 , 'a'的ASCII数值是97 ,的ASCII数值是65。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是4 个字节: 考试时候一般会说,在16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节就可以了。 5)转义字符的考查: 试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24 对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。 C/C++程序设计 课程设计报告 专业: 班级: 学号: 姓名: 版本号: 时间: 目录 1 概述 (2) 1.1目的 (2) 1.2计划 (2) 2 课程设计过程及结果 (3) 2.1编程环境及工具 (3) 2.2排序与简单分析 (3) 2.3综合设计 (3) 2.3.1 功能实现 (3) 2.3.2 程序异常处理 (5) 2.3.3 特色功能 (5) 3 课程设计总结 (6) 3.1课程设计计划执行情况 (6) 3.2我理解的C++ (6) 3.3改进设想 (6) 附录关键代码 (6) 原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。 声明人___________________ 学号:__________________ 1概述 1.1 目的 1、熟悉c语言的编译环境 2、掌握c语言的基本操作 3、回顾并加深对C/C++程序设计相关知识的理解,能够用C/C++独立完成简单数据管 理软件的编写 4、锻炼同学思维强度与能力 5、培养同学认真态度和刻苦的精神 1.2 计划 用Microsoft Visual C++ 6.0进行编译,利用之前学过的课程知识和查询资料等方法完成题目的设计,用Debug进行调试。 1.回顾c语言编程基本内容,了解各种数据类型及掌握各种语句的结构类型。 2.完成一个简单任务:排序与简单分析把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。出现次数相同的按照字母顺序排列,(a最前,z最后)。 输入:任意一个字符串(小写,长度小于255) 输出:重新排序后的结果 例如,输入:aassdfkjiowea回车 则输出为:defijkowssaaa 3.综合设计:设计实现学生成绩管理软件。 参考下面的数据,用C/C++设计一个简单的学生成绩管理软件,实现基本的功能。 学生信息文件(A.TXT)及其内容(示意): 学号姓名性别班级 200800800901 张三男电子0801 200800820902 李四女通信0801 200800800903 王五女电子0802 200800820904 赵六男通信0801 …… 课程信息(B.TXT)及其内容(示意): 课程编号课程名称学分 C01 大学英语 4 C02 高等数学 4 C03 C++程序设计 3 …… 学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数): 学号课程成绩 200800800901 C01 89 200800800902 C01 68.5 200800800901 C02 45.5 200800800903 C02 78 实现数据录入显示功能查询功能数据删除、整理功能排序功能。 C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---→.obj---→.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7) 一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z); D.语句的书写对程序的运行不起作用,因此可以随便写都可以 7.以下各标识符中,合法的用户标识符组为。 A.PAd,P#d,b-b,abc,_0123,ssiped B.cin,a10,CPP,float,del_word,signed C.void,max,hiy, C + + 复习资料 一、选择题 1.程序中的预处理命令是指以()字符开头的命令。 A.@ B.#C.$ D.% 2.空白符是()符的统称。 A.空格、制表、回车B.空格、制表、逗号 C.空格、回车、分号D.冒号、制表、回车 3.在#include 命令中不可以包含()。 A.头文件B.程序文件C.用户头文件D.目标文件4.一个程序中必须有并且只有一个命名为()的函数。 A.Main B.main C.void D.intmain 5.C + +程序的扩展名为()。 A..obj B..exe C..cpp D..c 6.在VC环境下,为运行一个程序而建立的工作区的扩展名为()。 A..obj B..exe C..dsw D..sp 7.数据类型int、char、float、double的类型长度之和为()。 A.10 B.12 C.16 D.17 8.常数120和-4.205的类型为()。 A.整型和双精度型B.短整型和单精度型 C.长整型和双精度型D.整型和单精度型 9.若x=25,则计算y=x + +表达式后,x和y的值分别为()。 A.26和25B.25和26 C.25和25 D.26和26 10.在switch语句中,每个语句标号中的关键字case后面的表达式必须是()。 A.变量B.常量C.一般表达式D.函数调用11.当在程序中执行到()语句时,只结束本层循环内语句或switch语句的执行。 A.continue B.break C.goto D.return 12.数组元素a[i]是该数组中的第()个元素。 A.i B.i+1C.i-1 D.2*i 13.在函数体中又调用自身函数则称为()调用。 A.非递归B.直接递归C.间接递归D.末尾递归14.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的()使其初始化。 A.构造函数B.析构函数C.复制函数D.赋值函数15.若需要把一个类AB定义为另一个类CD的友元类,则应在类CD的定义中加入一条语句声明为()。 A.friend AB; B.friend class AB; 学生信息管理系统C语言编程 【问题描述】 学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。【基本要求】 (1)学生信息包括: 学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: (2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求) 学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能 1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。 实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。 2)查询功能:分为学生基本情况查询和成绩查询两种 (1)学生基本情况查询: ①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下: ②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示) (2)成绩查询: ①、输入一个学号时,查询出此生的所有课程情况,格式如下: 学号:xx 姓名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx …………………… 共修:xx科,实得总学分为: xxx (3)删除功能: 提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 【程序设计的具体说明】 (1)将与两个文件对应的信息分别定义两种结构体类型来表示,也可以用类来定义;(2)对score.dat文件的写入,从键盘上输入的是前七项,后两项数据项根据计算方法算出后,得到完整的结构体信息,作为一个整体写入(可调用write函数)。 2. 下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof 3. 若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 4. 有字符串如下,"\n\\as1xabc",则字符串的长度为 A)8 B)9 C)10 D)11 5. C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<= 6. 若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 7. 若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 8. 若有定义:int a=7; float x=2.5,y=4.7; , 则表达式x+a%3*(int)(x+y)%2/4的值是 A)2.500000 B)2.750000 C)3.500000 D)0.000000 9. 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为 A)2 B)3 C)4 D)5 10. 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为 A)int B)float C)double D)不确定 11. 设有int x=11;则表达式(x++*1/3)的值是 A)3 B)4 C)11 D)12 12. 以下程序的输出结果是 void main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } A)30 B)31 C)32 D)33 13. 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为 A)36 B)0 C)-24 D)-60 14. 在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用个字节c语言模拟测试
计算机c语言二级考试复习资料
长理--c复习资料
c语言模拟试题
学生管理系统 C语言
C语言考试重点(考前必看,吃透必过)
C语言程序设计模拟试题1(附答案)
最新C语言考试复习题
C + + 复习资料
最新学生信息管理系统C语言编程
C语言复习
c期末复习资料