四川大学C面向对象程序设计模拟试题7
四川大学《c语言程序设计》课件-第8章 结构体与共用体
struct STUDENT *pStu; /*定义结构体指针*/
pStu = &stu;
通过stu和成员运算符访问结构体成员
– stu. studentID = 1;
通过pStu和指向运算符访问结构体成员
– (*pStu). studentID = 1;
– pStu -> studentID = 1;
struct类型的特点
是一个普通的类型 – 可以定义该类型的变量、数组、指针…… – 可以做函数的参数类型和返回值类型 – 它的成员可以是任意类型
基本类型、数组、指针、结构体、共用体……
struct类型的变量 – 两个结构体变量之间可以相互赋值
所以做为函数的参数时,是传值调用
– 可以取地址& – 不可直接参与算术和比较运算 面向对象和数据库是struct思想的发展
struct student {
int num; char name[20]; char sex; int age; float score; char addr[30]; };
结构体变量的定义
先定义结构体类型再定义变量名
struct student student1,student2;
在定义类型的同时定义变量
struct 结构体名 {
类型关键D字on’t f成or员ge名t 1th;e
20春川大《面向对象程序设计2261》在线作业1(标准答案)
1.以下不能正确进行字符串赋初值的语句是()。
A.charstr[5]=“good!”
B.charstr[]=“good!”
C.char*str=“good!”
D.charstr[5]={‘g’,‘o’,‘o’,‘d’}
答案:A
2.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后运算符的声明应该为()。
A.myclassoperator++()
B.myclass& operator++()
C.myclassoperatorint++(int)
D.myclass& operator++(int)
答案:C
3.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“left”,输出效果将发生变化的是()。
A.coutleftsetfill(~*~)357
B.coutleftsetw(5)357
C.coutleftsetw(5)“ABCDE”
D.coutleft“ABCDE”
答案:B
4.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()。
A.main
B.MAIN
D.function
答案:A
5.下列有关抽象类和纯虚函数的叙述中,错误的是()。
A.拥有纯虚函数的类是抽象类,不能用来定义对象
B.抽象类的派生类若不实现纯虚函数,它也是抽象类
C.纯虚函数的声明以“0;”结束
D.纯虚函数都不能有函数体
答案:D
6.下面不支持下标操作的容器是()。
A.vector
B.deque
C.list
D.map
答案:C
7.要打开一个文件并从中读取数据,应该使用()类的对象。
四川大学C面向对象程序设计模拟试题2
四川大学C面向对象程序设计模拟试题2
一、单项选择题
1.说明内联函数的关键字是(A)。
A)inlineB)virtualC)defineD)tatic2.假定CAb为一个类,则执行CAbo某;语句时将自动调用该类的(B)
A)有参构造函数B)无参构造函数C)拷贝构造函数D)赋值重载函数3.cin是某个类的标准对象的引用,该类是(B)。A)otreamB)itreamC)tdoutD)tdin4.下面的哪个保留字不能作为函数的返回类型?(C)
A)voidB)intC)templateD)long5.派生类的成员函数不能访问基类的(C)。
A)保护成员B)公有成员C)私有成员D)前面各选项都正确6.在语句“cout<<data;”中,cout是(C)。
A)C++的关键字B)类名C)对象名D)函数名7.编译时多态性使用什么获得?(A)
A)重载函数B)继承C)虚函数D)B和C8.拷贝构造函数的参数通常是(C)。A)无特殊要求B.指向对象的指针C)本类对象的常引用D)对象9.C++有几种联编?(B)A)1种B)2种C)3种D)4种10.基类和派生类可以分别称为(B)。A)“大类”和“小类”B)“父类”和“子类”C)“小类”和“大类”D)“子类”和“父类”二、填空题1.设函数ma某是由函数模板实现的,并且ma某(3.5,5)和ma某(3,5)都是正确的函数调用,则此函数模板具有(2)个类型参数。
2.在C++中,函数重载与虚函数帮助实现了类的(多态)性。3.由tatic修饰的数据成员为该类的所有对象(共享)。
四川大学计算机学院精品课程,面向对象程序设计C,游洪越,第一
课 1.1程序设计语言发展概况 程高 级 1.1.2.2 面向对象程序设计 语 言 面向对象基本思想: 程 客观世界由对象组成,对象具有其属性和行为。 序 设 面向对象语言发展: 计 II
C++
四 川 大 学 精 品
Java等多种面向对象语言
3/28/2019
C++ :
例如: 01 代表“ 加” 10 代表“ 减” 001代表寄存器“A操作数可 ” 设计为用8 010代表寄存器“B” 位二进制 011代表寄存器“C数表达 ” ……
主讲教师:四川大学计算机学院 游
7
11 代表“ 乘”
……
3/28/2019
……
四 川 大 学 精 品
1.1程序设计语言发展概况
课 程高 级 语 言 程 序 设 计 II
C++ :
四 川 大 学 精 品
3/28/2019
主讲教师:四川大学计算机学院 游
8
面 向 对 象 程 序 设 计 主 编 李 涛 高 教 出
课 1.1程序设计语言发展概况 程高 级 1结构化程序设计 语 • 高级程序设计语言的出现是计算机科学技 言 程 术发展史上的一个里程碑。 序 • 它屏蔽了机器的细节,提高了语言的抽象 设 层次,程序员可以用接近自然语言的程序语言 计
四川大学计算机导论期末例题
若干信号线的集合,是计算机各部分之间实现信息传送的通路。
6.高速缓冲存储器(Cache)
位于CPU和内存之间的存储器,其特点是速度快,目的是使存储器的速度和CPU的速度相匹配。
7.操作系统
操作系统是由程序和数据结构组成的大型系统软件,它负责计算机的全部软硬件资源的分配、调度与管理,控制各类程序的正常执行,并为用户使用计算机提供良好的环境。
窗体顶端
(答案可在以下任选3个,且不限于此)
基本字长:CPU一次处理的二进制数的位数。(2分)
主频:CPU内部工作的时钟频率,是CPU运行运算时的工作频率。(2分)
地址总线宽度(地址总线的位数):决定了CPU可以访问的存储器的容量,不同型号的CPU总线宽度不同,因而可使用的内存的最大容量也不一样。 (2分)
C.键盘和鼠标器均为输入设备
D.“裸机“指不含外部设备的主机,若不安装软件系统则无法运行。
3. 从下面关于操作系统的叙述中,选出正确的叙述( )。
A.操作系统是一种系统软件。
B.操作系统是计算机硬件的一个组成部分。
C.操作系统是数据库管理系统的子系统。
D.操作系统可分为批处理、分时处理、实时处理等类型。
4.简述机器语言、汇编语言和高级语言的特点。
机器语言是用二进制代码表示的计算机语言,可直接执行。(2分)汇编语言是用助记符编写的语言。汇编语言编写的程序必须通过汇编程序“翻译”为机器语言程序(目标程序)后,才能执行。(2分)高级语言以接近于人的自然语言编写程序的计算机语言。高级语言编写的程序可在不同的计算机上运行,通用性强。编程方便、简单。所编写的源程序必须通过编译“或解释”生成目标程序,才能在计算机上运行。(2分)
(完整版)C程序设计期末考试习题库
13、判断变量ch 中的字符是否为大写字母,最简单的正确表达式是(A )。
A、ch>='A'&&ch<='z'
B、A<=ch<=Z
C、'A'<=ch<='z'
D、ch>=A&&ch<=z
14、在C 语言中,能表示无符号长整型常数的是(D )。
A、OL
B、4962710U
C、912374u
D、2UL
15、能正确表示C 语言的字符常量的是(C )。
A、'\0x41'
B、''A''
C、'\0'
D、''\0''
16、C 语言中逻辑表达式的值为(A )。
A、0 或1
B、非零值或零值
C、true 或false
D、'true'或'false'
17、C 语言提供的基本数据类型关键字是(C )。
A、integer
B、FLOAT
C、unsigned
D、Double
18、若定义语句:int b[ ]={1,2,3,4,5},*P=b;则表达式*p++的值是( A )。
A、1
B、2
C、b[0]的地址
D、b[1]的地址
19、在下列选项中,不正确的表达式是(C )。
A、a>b
B、c--, ++b, a+=1
C、a=c+b>n-m=k
D、p++
20、若有以下定义:
int a[ ]={1,2,3,4,5,6,7};
char cl='b',c2='2';
则数值不为2 的表达式是(D )。
A、a[1]
B、'd'-cl
C、a['3'-c2]
D、c2-0
25、下述对C 语言字符数组的描述中错误的是(C )。
A、字符数组可以存放字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
四川大学C语言上机考试题
1.有以下程序
#include
void main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}
执行后输出的结果是___D___。
A.2
B.编译时有错,无结果
C.4
D.3
2.设x为int型变量,则执行以下语句后,x的值为:int x = 10;
x*=x/=-x;
printf("%d\n", --x); --D---
A.10
B.1
C.-10
D.0
3.下面程序的输出是_C___。
main()
{ int x,i;
for(i=1;i<=100;i++)
{ x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d ",x);
}
}
A.39 81
B.42 84
C.28 70
D.26 68
4.在C语言中,合法的字符常量是---B----
A."a"
B.'\t'
C.97
D.a
5.已知int x=12,y=3;执行下述程序后,变量x的值是_D___。do
{ x/=y--;
}while(x>y);
printf("%d\n",x);}
A.2
B.1
C.3
D.程序运行有错误
6.有以下程序
#include
void main()
{ int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是__C____。
A.3
B.5
C.-2
D.-1
面向对象程序设计20年 西交大考试题库及答案
采用重载函数的目的是()
由C++源程序文件编译而成的目标文件的缺省扩展名为()。 定义析构函数时,应该注意() 假定AB为一个类,则执行“ABpX= new AB[n]"语句时将(??) 以下正确的描述是(???) 类的析构函数是在()调用的。 下列的符号常变量定义中,错误的定义是() 在下列的各类函数中,(不是类的成员函数 下列()的调用方式是引用调用
面向对象方法的多态性是指(??)。
假定一个类的构造函数为“B( int ax, int bx)a(ax),b(bx)”,执行“Bx(1,2)y(34)X=y;" 语句序列后Xa的值为()。 假定一个类的构造函数为“Anta, int bb){a=aa:b=aa"b,则执行“Ax(4,5)"语句 后,xa和xb的值分别为() 从系统实现的角度看,多态性分为静态多态性和动态多态性。以下说法错误的 是()。 在下面的4个关键字中,()是用来说明虚函数的 类的析构函数的作用是() 用>运算符从键盘输入多于一个数据时,各数据之间应使用()符号作为分隔符 下面是五条顺序出现的声明语句,非法的初始化语句是()。
四川大学电子信息学院C++实验报告(5)
实验报告
( 2014 / 2015 学年第二学期)
课程名称C++上机实验课
实验名称继承与派生
实验时间2015 年 6 月14 日学院
指导教师
学生姓名班级学号
学院(系) 专业
实验报告
实验报告
实验报告
c面向对象程序设计试题和答案
一、填空题(每空1分,共14分)
1、观看以下程序:
class point{
public:
void show() {cout<<”point”<<endl;}
};
void main()
{
point p1;
point *p;
p=&p1;
_______________//通过对象p1访问show函数
______________//通过指针p访问show函数
}
2、在C++类中可以包含______________、______________和______________三种具有不
同访问控制权的成员。
3、定义类时,在类头中将使用关键字_____________来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为________________。
5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员
函数。
6、友员函数是用关键字____________修饰的非成员函数。
7、若有:
int i;
int &j=i;
i=10;
j=i+1;
则i=__________,j=__________。
8、 new的功能是____________________,delete的功能是
____________________。
二、选择题(每小题1.5分,共30分)
1、下列特性中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板
2、()是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构
大学大一C语言程序设计期末考试试卷和答案
四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试
C 语言程序设计试卷 试卷A
答卷说明:
1、
本试卷共6页,答题纸3页,4个大题,35个小题,
满分100分,120分钟完卷。
2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答
题纸上答案为准。
3、
本试卷适用于2011级1、2、3班。
一、
单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int
B). in1_3
C). A_B!D D). const
2、 不属于C 语言基本数据类型的是( )
__________________学院__________级___________班 姓名_______________ 学号_______________
………………………………(密)………………………………(封)………………………………(线)………………………………
密 封 线 内 答 题 无 效
A). int B). union C). char D). unsigned
3、下面是对宏定义的描述。不正确的是( )
A). 宏不存在类型问题,宏名无类型,它的参数也无类型
B). 宏替换不占用运行时间
C). 宏替换只是字符串的简单替代
D). 宏替换时先检查类型,类型一致时才可以替换
4、C语言中,″\\xfds″在内存中占用的字节数是( )
A).3 B).4 C).5 D).6
5、设int x;则执行printf(″%x\n″,~x^x);的结果是( )
C++试题(软件工程硕士)答案
四川大学计算机(软件)学院工程硕士考试试题
(200 —200 学年第学期)
课程号:课序号:课程名称:面向对象的技术与方法任课教师:
适用专业:软件工程适用年级:学生人数:印题份数:学号:姓名:
注:1.试题字迹务必清晰,书写工整。本题6页,本页为第1页
本题11页,本页为第11页
c面向对象程序设计期末考试题及完整参考答案
2.类的静态构造函数为类的所有对象共享,并且只在首次使用该类时被调用。()
3.派生类可以继承基类的所有成员,并增加自己的成员进行功能扩张。()
4.接口方法不能是静态的,也不能使用任何访问限制修饰符。()
5.如果一个类被声明为抽象的,则它的派生类不可以被声明为抽象类。()
}
则正确的执行结果是()。
A)I am a Stude nt.B)I am a PostStude nt.C)st.WhoYouAre()D)异常退出
5.已知st是类Student的一个实例,read ()是Student类的一个静态成员。如果要访问Student的read()成员,
则下列()表达式是正确的。
{
Circle c =②;//创建一个半径为10.5的Circle实例
Console.WriteLine(”该_name是{0},id是{1},半径r为{2},面积是⑶",③,④,⑤,c.Area());
}
}
2.
using System;
n amespace P5_5
{ _
public
{
private float speed;
public virtual float Run( float dista nce)
面向对象程序设计》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:
试卷说明:本套试题共四个大题,全部题目都答在
答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)
一、选择题(每小题2分,共40分)
1、C++是(C )。
A. 面向对象的程序设计语言
B. 面向过程的程序设计语言
C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言
D. 非结构化的程序设计语言
2、面向对象程序设计思想的主要特征中不包括( D )。
A. 封装性
B. 多态性
C. 继承性
D. 功能分解,逐步求精
3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:
Microsoft Visual Studio 6.0!
所得的结果是str=( B )。
A. Microsoft Visual Studio 6.0!
B. Microsoft
C. Microsoft Visual
D. Microsoft Visual Studio 6.0
4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是( C )。
A. testDefaulParam(5);
B. testDefaulParam(5,8);
C. testDefaulParam(5,'#');
D. testDefaulParam(0,0,'*');
5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。
A. float sum(int x, int y);
(完整版)《面向对象程序设计C》期末试卷及标准答案(A)
《面向对象程序设计C++ 》期末考试一试卷( A )
班级:姓名:学号:分数:题号一二三四总分
得分
试卷说明:本套试题共四个大题,所有题目都答在答题纸上,写在其余地方均无效。
(答题纸在本套试卷的第10 页上)
一、选择题(每题 2 分,共 40 分)
1、C++是()。
A.面向对象的程序设计语言
B.面向过程的程序设计语言
C.既支持面向对象的程序设计又支持面向过程的程序设计的混淆型语言
D.非结构化的程序设计语言
2、面向对象程序设计思想的主要特点中不包含()。
A. 封装性
B. 多态性
C. 继承性
D. 功能分解,逐渐求精
3、若定义: string str;当语句cin>>str;履行时,从键盘输入:
Microsoft Visual Studio 6.0!
所得的结果是str=()。
B. Microsoft
A. Microsoft Visual Studio 6.0!
C. Microsoft Visual
4、考虑下边的函数原型申明:void testDefaulParam(int a,int b=7,char z='*');
下边函数调用中,不合法的是()。
A. testDefaulParam(5);
B. testDefaulParam(5,8);
C. testDefaulParam(5,'#');
D. testDefaulParam(0,0,'*');
5、以下语句中,将函数 int sum(int x, int y) 正确重载的是()。
A. float sum(int x, int y);
C面向对象程序设计试卷.doc
一、单项选择题(出题人:刘敏,尹仁青)
1.关键字—c_—说明对象或变量初始化后不会被修改。
A.s tatic
B. public C・const D. inline
2.如果调用带有默认参数的函数时缺少一个参数,则—参数就作为这一个参数。
A.笫一个B•最后一个C•中间一个D•以上都不是
3.静态数据成员的生存期_A—o
A.与整个程序相同
B.不长与类的生存期
C.取决于创建的对象数
D.以上都不是
4•设置虚基类的目的是: B O
A.简化程序
B.消除二义性
C.提高运算效率
D.减少目标代码
5.下列语句中,将函数int sum(int x, int y)正确重载的是___ C ____
A.fl oat sum(int x, int, y)
B.int sum(int a, int b)
C.f 1 oat sum(float x, float y)
D.double sum(int y, int x)
6•已知X类,则当程序执行到语^1: X array [3];时,调用了—D—次构造函数。
A.0
B. 1
C. 2
D. 3
7•如果表达式++i*k中的“++”和都是重载的友元运算符,若
采用运算符函数调用格式,则表达式还可以表示为B
A.operator * (i. operator++ (), k)
B.operator*(i・ oper3tor++(i), k)
C・ i・ opcrator++()・ operator*(k)
D.k.opreator*(operator++(i))
8•下面对模板的声明,正确的是—C—
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
};
int main()
{
Test a;
const Test b(18);
cout << a.Get() << "," << b.Get() << endl;
return 0;
}
上面程序的输出结果为:
2.阅读下面程序,写出输出结果。
#include <iostream>
int mainLeabharlann Baidu)
{
cout << f(1) << "," << f(1.0) << endl;
return 0;
}
上面程序的输出结果为:
4.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
namespace ns
{
int x = 18;
}
int x = 5;
int main()
{
int x = 10;
cout << x << " " << ::x << " " << ns::x << endl;
return 0;
}
上面程序的输出结果为:
5.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
using namespace std;
class A
{
public:
A() { cout << "A" << endl; }
~A() { cout << "~A" << endl; }
};
class B: A
{
public:
B() { cout << "B" << endl; }
~B() { cout << "~B" << endl; }
二、填空题(本大题共
1.一个函数名为Show,返回值类型为void,没有参数的纯虚常成员函数可以声明为()。
2.若将一个二元运算符重载为类的友员函数,其形参个数应该是()个。
3.采用struct定义的类中数据成员和成员函数的默认访问权限是()。
4.在面向对象方法中,()描述的是具有相同属性与操作的一组对象。
};
int main()
{
B obj;
return 0;
}
上面程序的输出结果为:
3.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
int f(int a) { return a * a + 8; }
template <class T>
T f(const T &a) { return a * a; }
class A
{
public:
virtual void Show() const { cout << "A::Show()" << endl; }
};
class B: public A
{
public:
void Show() const { cout << "B::Show()" << endl; }
5.下列关于this指针的叙述中,正确的是( )。
A)与类相关的所有函数都含有this指针
B)所有类的成员函数都有this指针
C)所有函数都有this指针
D)只有类的非静态成员函数才有this指针
6.派生类的成员函数不能直接访问基类的( )。
A)保护成员B)公有成员
C)私有成员D)前面各选项都正确
7.在下列函数原型中,可以作为类Test构造函数的是( )。
void Show() const{ cout << b << endl; }
};
int main()
{
B obj(18, 5);
obj.Show();
5.模板类型形参表使用的关键字为( )。
三、程序分析题(本大题共
1.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
class Test
{
private:
int n;
public:
Test(int i = 16) { n = i; }
int Get() { return n; }
C)静态成员函数D)虚函数
10.下列关于C++函数的说明中,正确的是( )。
A)内置函数就是定义在另一个函数体内部的函数
B)函数体的最后一条语句必须是return语句
C)C++标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型
D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
};
void Refers(const A &obj)
{
obj.Show();
}
int main()
{
A obj1;
B obj2;
Refers(obj1);
Refers(obj2);
return 0;
}
上面程序的输出结果为:
6.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
C)函数模板和类模板D)变量模板和对象模板
3.对于常对象,C++遵循( )。
A)通过常对象可以调用常成员函数
B)通过常对象可以所有成员函数
C)常对象的成员都是常成员
D)通过常对象可以调用任何不改变对象值的成员函数
4.以下关键字不能用来声明类的访问权限的是( )。
A)publicB)staticC)protectedD)private
A)void Test (int);B)int Test ();
C)~Test(int);D)Test(int);
8.在下面4个关键字中,用于说明虚基类的是( )。
A)virtualB)public
C)protectedD)private
9.在C++中,用于实现编译时多态性的是( )。
A)友元函数B)重载函数
class A
{
protected:
int a;
public:
A(int x): a(x) {}
void Show() const { cout << a << endl; }
};
class B: public A
{
protected:
int b;
public:
B(int x, int y): A(x), b(y) {}
C++
一、单项选择题(本大题共
1.下列语句中,错误的是( )。
A)const int buffer =168;B)const intnum;
C)const double *p;D)double * const p = new double;
2.C++中的模板包括( )。
A)对象模板和函数模板B)对象模板和类模板