C期末考试复习题,好好准备,没问题.docx
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
I.
下列符号常量中,合法的C 常量是( )
A) Ox B) 'WT‘ C) 1.7E+2.1 D) 'W' 2.
为避免嵌套选择语句if else 的二义性,C 语言规定else 与(
)配对。
A 、缩排位置相同的if
C 、其之前最近的且没有配对的if C 、英之后最近的if
D 、同一行上的if
3. 用scanf ()函数输入字符串型数据时,用(
)格式。
A 、%c
B 、%d
C 、%s
D 、%f
4.
C 语言存储字符串时,用特殊的字符( )表示字符串的结束。
A ) 4\f
B 八n'
C ) ,\0‘
D )回车符
5. 定义函数时,若函数没冇返回值,则返回值类型应设为(
)
A )NULL
B ) void
C ) int
D )不给出返回值类型
6.
若x,y 已正确定义且x=2,y=x>=l,则y 的值为(
)。
A 、2
B 、0
C 、1
D 、不确定
7.
若有定义:int a|201,*p=a;则 p+10 表示(
)
A )
a|10J B )a[9| C ) &a|IOJ D ) &a|9|
&
以下叙述不正确的是(
)
A 、一个C 程序可由一个或多个函数组成。
B 、一个
C 程序必须包含一个main 函数
C 、C 程序的基本组成单位是函数
D 、在C 程序中,main 两数的位置必须在程序的最开始。
9.
在嵌套if-else 的语言中,else 总是与(
)配对。
A )第一个if
B )其之前故近的if
C )其Z 前故近的且不带else 的i 『
D )缩进位置相同的if
D )主函数可以在程序的任何位置,函数内可以嵌套定义函数 12. 以下叙述正确的是(
)
A 、 C 语言中用1表示“真”,0表示“假”
B 、
C 语言屮用0表示“真S 1表示篁假" C 、 C 语言中用true 表示“真", false 表示“假”
D 、C 语言中用false 表示“真”,true 表示"假” 13. 表达式!x||a==b 等效于(
)
A ) !((x||a )==b )
B )!(x||y )=b
C ) !(x||(a==b ))
D ) (!x )||(a==b )
14. 若 a=3,b=4,c 二5,贝I 」表达式 a&&b+c||b= =c/2 的值为(
)
A 、 1
B 、 0
C 、 2
D 、 一1
15. 字符变量 ch=4A\ int 类型变ffl k=25,printf ("%d%d%d\n ,\ch,k,ch>k );输出(
)
A) 65,25,1 B) 65252 C) 65,25,f D) 65 25 f 16.
若int a=6;则执行表达式a —=a*aJ5r a 的
C/C++复习题
10. 若冇以下语句,则下面(
char x[]=" 12345"; chary[]={T,'2','3','4‘, '5'
A 、x,y 完冬相同
C 、x 数组长度小于y 数组长度
11. C 语言由主函数组成,它的(
A ) 主函数必须在其它函数之前,
B ) 主函数可以在其它函数之后,
C ) 主函数必须在其它函数之前, )是正确的。
' B 、x 数组长度大于y 数组长度
D 、x,y 字符串长度相等 )
函数内可以嵌套定义函数 函数内不可以嵌変定义畅数
函数内不可以嵌套定义函数 17. 下列各语句定义数组,其中哪一个是正确的(
A) intsl[5],s2[4,2]
B) int n,a[n]
值为()。
D、1
A、0
18.假设所冇变量均为整型,则表达式(a=2,b=5,a++,b+l,a+b)的值为( )
A、6
B、7
C、8
D、9
19.对以下程序段‘while循环执行的次数是( )
int k=0; while(k= 1) k++;
A)无限次B)有语法错误,不能执行
C) 一次也不执行D)执行一次
20.C语言的循环语句冇while,do while还冇( )。
A、.if
B、switch
C、for
D、continue
21.关于指针变量的引用,下列说法中错误的是( )
A) “指针变量”可以出现在赋值表达式的左边,也可以岀现在右边。
B)“*指针变量”可以出现在赋值表达式的左边,也可以出现在右边。
C)指针变彊的前面可以出现指针运算符“杆。
D)指针变量的前而不可以出现取地址运算符“&”。
22.若有说明int a[10J;则对a数组元素的正确引用是( )。
A、a(5) C、a|101 C、a[2.5] D、a|2+3]
23.面向对象的系统设计中最突出的特点是:( )
A、封装性
B、继承性
C、多态性
D、以上都是
24.下面有关for循环的正确的描述是( )
A) for循坏只能用于循坏次数已经确定的情况。
B)for循环是先执行循环体语句,后判断表达式。
C)在for循环中,不能用break语句跳出循环体。
D)for循环的循环体语句中,多条语句,但必须用花括号括起来。
25.若有定义:int a[20],*p=a;则p+5 农示( )
A、a[5J
B、a[4J
C、&a[5]
D、&a[4]
26.以下描述中正确的是( )
A)由于do-whiie循环屮循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B)do-while循环由do开始,由while结束,在while ()后面不能写分号。
C)在do-whiie循坏体中,-淀要有使while后而表达式的值变为0的操作。
D)do-while循环中,根据情况可以省略while。
27.能正确表示“当x的取值在[1 1()]利200 210]范围内为莫,否则为假”的表达式是( )
A) (x>=l) && (xv二10) && (x>二200) && (xv二210)
B)(x>=l) || (x<=10) || (x>=200) || (x<=210)
C)(x>=l)||(x<=10) && (x>=200) || (x<=210)
D)(x>= I) && (x<=10) || (x>=200) && (x<=2IO)
28.以下scanf函数调用中对结构变母成员的错误引用是( )
struct student
{ char name [20];
int age;
int sex ;
} stud|5],*p;
p= stud;
A、scanf(u%s,\stud[0].name);
B、scanf(''%d”,&stud[0].age)
C、scanf(“%d'',p->age);
D、scanf("%d”,&(p->sex));
29.利用函数参数传递数据时,下列说法中错误的是( )
A)形参是一般变量,实参也是一般变虽时,釆用的是值传递方式。
B)形参是一般变量,实参是表达式时,采用的是值传递方式。
C)形参是数组,实参也是数组时,采用的是值传递方式。
D)形参是指针变量,实参是数组名时,采用的是地址传递方式。
3().某程序中对myfun函数冇如下说明:
void myfun();
此说明的含义是( ).
A、m yfun函数无法反冋值
B、m ykmWi数的返回值可以是任意的数据类型
C、m yfim函数的返回值是无值型的指针类型
D、指针myfun指向一个函数,该函数无返回值
31.C语言的循环语句有while.do while还有( )。
A) if B) switch C) for D) continue
32.在函数说明前,若冠以关键字“inline”,则函数就被声明为( )
A、静态
B、友员函数
C、内置函数
D、以上都不是
33.用scanf()函数输入双精类型数据时,用( )格式。
A) %c B) %d C) %lf D) %f
34.下而关于构造函数和析构函数的说法正确的是( )
A、构造两数不能带参数,而析构函数可以带参数
B、析构函数和构造函数的调川顺序相反
C、在创建对象后,构造函数不一定被调用
D、构造函数的动议必须放在类的内部。
35.若x,y己正确定义且x=2,y=x>= 1,则y的值为( )。
A) 2 B) 0 C) 1 D)不确定
36.若冇定义const int a=20; const int b=30侧下列正确的是( )
A)const int *pi二&a; *pi=58;
B)const int 木pi二&a; pi二&b;
C)int *const pi=34; pi=89;
D)int *const pi=&34; pi=&89;
37.以下叙述正确的是( )o
A、float(a)将a转换成float型
B、(float)a将a转换成float型
C、(float)(x+y)将x 转换成float 型
D、(float)x+y将x+y的值转换成float型
38.对于输入语句“scanf (“%f,%f',&a,&b):”,要有使变量a, b的值分别为1.78和4.48,则正确的输
入是( )
A) 1.78,4.48 B) 1.78 4.48 C) 1.784.48 D) 1.7&4.48
39.运算对象必须是整型数的运算符是( )
A、/
B、! C. %D>
40.执行以下程序后,a的值为( )
int *p, a=10, b=l;
p=&a; a=*p+b;
A) 12 B) 10 C) 11D)编译出错
41.若有定义:int a[20],*p=a;则p+10表示( )
A) aflO] B) a[9]C) &a[10]D) &a[9]
42.下面函数声明,哪个是正确的重载函数声明( )
A、void fun(int); int fun(int);
B、int fun(int); int fun(double);
C、void fun(int); void fun(INT);
D、ini fun(int); double fun(INT);
43.关于类和对象不正确的说法是()
A)类是一种类型,它封装了数据和操作
B)对彖是类的实例
C)-•个类的对彖只有-•个
D)一个对象必属于某个类
以下说法正确的是()
A、protected和private用法上没冇区别。
B、protected和private在只有一个类时,用法上没有区别。
C、protected和private在有基类和派生类时,用法上没有区别。
D、以上说法都不是。
45.对下列程序段的解释,正确的是()
void main()
{
int al,a2;
a 1=23;
::a2=10;
}
A、al是局部变量a2是全局变量
B、al是全局变量a2是局部变量
C、al a2都是局部变量
D、al a2都是全局变量
46.以下默认参数中的函数调用说法正确的是()
int dccp(int x=5,float y=5.3);
void main()
(
deep(25);
)
A、传递的参数x=25,y=5.3
B、传递的参数x=25,y=0
C、传递的参数x=5,y=25
D、传递的参数x=0,y=25
47.声明一个类的对象时,系统白动调用()函数,撤消对象时,系统白动调用()函数
A)成员函数B)构造函数C)析构函数D)普通函数
48.()不是构造函数的特征。
A)构造函数的函数名与类名相同;B)构造两数可以重载;
C)构造函数可以设置缺省参数;D)构造函数必须指定类型说明。
49.()是析构函数的特征。
A)析构函数可以冇一个或多个参数;B)析构函数名与类名不同;
C)析构函数的定义只能在类体内;D)一个类中只能定义一个析构函数;
50.new函数的返冋值是()类型
A、整型
B、字符型
C、指针型
D、无类型VOID
51.关于成员函数特征的下列描述中,()是错误的。
A)成员函数一定是内联函数:B)成员函数可以重载;
C)成员函数可以设置缺省参数值;D)成员函数可以是静态的;
52.类默认其成员是()
A、public
B、protected
C、private
D、public 或private
53.下列静态数据成员的特性中,()是错误的。
A)说明静态数据成员时前边耍加修饰符static;
B)静态数据成员要在类休外进行初始化;
C)都态数据成员不是所有对彖所共用的;
D)引用静态数据成员时,要在其名称前加<类名〉和作用域运算符;
54.当一个派生类私冇继承一个基类时,基类中的所冇仅冇成员和保护成员成为派生类的(
)
A) public 成员B) private 成员C) protected 成员D)友元
55.在创建派生类对彖时,构造函数的执行顺序是()
A)对象成员构造函数、基类构造函数、派生类本身的构造函数
B)派生类本身的构造两数、基类构造函数、对象成员构造两数
C)基类构造函数、派生类本身的构造函数、对象成员构造函数
D)基类构造函数、对象成员构造函数、派生类木身的构造函数
56.关于this指针的说法错误的是()
A) this指针必须显示说明B)当创建一个对彖后,山is指针就指向该对彖
C)成员函数拥有ihis指针D)静态成员函数不拥有(his指针
57..下列十六进制的整型常数表示中,()是错误的。
A.Ox af
B. OX lb C2fx D. Ox AE
答案:Co
5&下列字符常量表示中, ,()是错误的。
A. *\105'
B.
C.*\4f
D. *\a'
答案:Co
59.下列变虽名中,()是合法的。
A. CHINA
B.byte-size
C. double
D. A+a
答案:Ao
60.在int a=3, *p=&a;中,*p的值是()o
A.变屋a的地址值
B.无意义
C.变量p的地址值
D. 3
答案:Do
61.对于int *pa[51;的描述,()是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元索的指针,该元索是ini型变量
C.pa[5]表示某个数组的第5个元素的值,每个元素是一个int型的变量
D.pa是一个具冇5个元素的指针数组。
答案:D
62.下列关于指针的运算中,()是非法的。
A.两个指针在一定条件下,可以进行相等或不等的运算
B.可以用一个空指针赋值给某个指针
C.一个指针可以加上两个整数之差
D.两个指针在一定条件下,可以相加
答案:Do
63.下列各表达式中,()冇二义性。
己知:iiHa(5), b(6);
A. a+b»3 E. ++a+b++ C b+(a=3) D・(a=3)-a-
64.
答案:Do
预处理命令在程序中都是以()开头的。
A. *
B. #
C.:
D. /
65.
答案:Bo 下列()是语
句。
A. ;
B. a=!7C・ x+y D・ cou【~v"\tT
66.
答案:Ao
下列for循环的次数为()。
for(int i(0), x=0: !x&&i<=5; i++)
A・5 B・6 C・1 D.无限
67.
答案:Bo
下列while循环的次数是()。
while(int i=())i—;
A. 0 B・ 1 C・ 5p.无限
6&
答案:Ao
下列for循坏的循坏体执行次数为()。
For(int i(0), j(10);
i=j=10:
i++, j-)
A.O
B. 1
C. 10
D.无限
答案:Do
69.下述关于循环体的描述中,()是错谋的。
A.循坏体中可以出现break语句和continue语句
B.循环体屮还可以出现循环语句
C.循环体111不能I\\现goto语句
D.循环体中可以出现开关语句答案:Co
70.下述关于break语句的描述中,()是不正确的。
A.break语句可用于循环体内,它将退出该重循环
B.break语句可用于开关语句中,它将退出开关语句
C.break语句可用于if体内,它将退I11)讦语句
D.break语句在一个循环体内可以出现多次
答案:Co
71.当一个函数无返回值时,定义它时函数的类型应是()。
A.void
B.任意C int D.无
答:Ao
72.在函数说明时,下列()项是不必要的。
A.函数的类型
B.函数参数类型和名字
C.函数名字
D.返回值表达式
答:D
73.在函数的返回值类型与返回值表达式的类型的描述中,()是错误的。
A.函数返冋值的类型是在定义函数时确定,在函数调用时是不能改变的
B.函数返冋值的类型就是返冋值表达式的类型
C.函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型
D.函数返回值类型决定了返回值表达式的类型
答:B.
74.在-•个被调用函数中,关于reium语句使用的描述,()是错误的。
A.被调用函数中可以不用return语句
B.被调用函数中可以使用多个return语句
C.被调用函数中,如果冇返回值,就一定要冇return语句
D.被调用函数中,一个return语句可返冋多个值给调用丙数
答:Do
75.下列的()是引用调用。
A.形参是指针,实参是地址值
B.形参和实参都是变戢
C.形参是数组名,实参是数组名
D.形参是引用,实参是变量
答:D。
76.在传值调用中,要求()。
A.形参和实参类型任意,个数相等
B.实参和形参类型都完全一致,个数相等
C.实参和形参对应的类型一致,个数相等
D.实参和形参对应的类型一致,个数任意
答:Co
77.重载函数在调用时选择的依据中,()是错误的。
A.参数个数
B.参数的类型
C.参数的顺序
D.函数的类型
答:Do
78.在一个函数屮,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合
适。
A.内联函数
B.重载函数
C.递归调用
D.嵌套调用
答: Ao
79.采用函数重载的H的在于()。
A.实现共享
B.减少空间
C.提高速度
D.使用方便,提高可读性
答:Do
80.在下列关键字中,用来说明类中公冇成员的是()。
A.public B・ private C・ protected D・ friend
答:A o
81.下列的各种函数中,()不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝初始化构造函数
答:Co
82.()不是构造函数的特征。
A.构造函数的函数名与类名相同
B.构造函数可以重载
Co构造函数町以设置默认参数
D.构造函数必须指定类型说明
答:D
83.()是析构函数的特征。
A.一个类小只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类休内
D.析构函数可以有一个或多个参数
答:A。
84.关于成员函数特征的下述描述中,()是错误的。
A.成员函数一定是内联函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
答:Ao
85.友元的作用()。
’
A.提高程序的运用效率
D.加强类的封装性
C.实现数据的隐藏性
D.増加成员函数的种类
答:Ao
86.运算符->*的功能是()。
A.用來表示指向对彖指针对指向类成员指针的操作
B.用来表示对象对指向类成员指针的操作
C.用來表示指向对象指针对类成员的操作
D.用來表示对象类成员的操作
答案:A。
87.己知类A中一个成员函数说明为void Set(A&a);其中,A&a的含意是()。
A.指向类A的指针为a
B.将a的地址值赋给变量Set
C.d是类A的对象引用,用來作函数Sct()的形参
D.变量A与d按位相与作为西数Set()的参数
答案:Co
88.关于new运算符的下列描述中,()是错的。
Ao它可以用來动态创建对象和对象数组
D.使用它创建的对象或对象数组,可以使用运算符delete删除
C.使用它创建对彖时要调用构造函数
D.使用它创建对彖数组时必须指定初始值
答案:Do
89.关于delete运算符的下列描述中,()是错的。
A.它必须用T new返回的指针
B.它也适用于空指针
C.对一个指针可以使用多次该运算符
D.指针名前只用一对方括号符,不管所删除数组的维数
答案:Co
90.下列对派生类的描述中,()是错的。
A. 一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D•派生类中继承的基类成员的访问权限到派生类保持不变
答:Do
91.派生类的对彖对它的基类中()是可以访问的。
A.公有继承的公有成员
B.公冇继承的私冇成员
C.公冇继承的保护成员
D.私有继承的公有成员
答:A o
92.对基类和派生类的关系描述中,()是错的。
A.派生类是基类的具体化
B.派生类是基类的子集
C.派生类是基类定义的延续
D.派生类是基类的组合
答:Bo
93.关于多继承二义性的描述中,()是错的。
A.一个派生类的两个基类中都冇某个同名成员,在派生类中对这个成员的访问可能出现二义性
B.解决二义性的最常用的方法是对成员名的限定法
C.基类和派生类中同时出现的同名函数,也存在二义性问题
D.一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成
员进行访问时,也可能出现二义性
答:Co
94.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.捉高运行效率
D.减少目标代码
答:B.
95.•对定义重载函数的下列要求中,()是错课的。
A.要求参数的个数不同
B.要求参数中至少冇一个类型不同
C.要求参数个数相同时,参数类型不同
D.要求函数的返冋值不同
答:Do
96.下列函数中,()不能重载。
A.成员函数
B.非成员函数
C.析构函数
D.构造函数
答:Co
97.下列对重载函数的描述中,()是错误的。
A.重载函数中不允许使用默认参数
B.重载函数屮编译系根据参数表进行选择
C.不要使用重载函数來描述毫无和千的函数
D.构造函数巫载将会给初始化带來多种方式。
答:Ao
98.下列运算符中,()运算符不能重载。
A. &&
B. []
C. ::
D. new 答:Co
99.关于虚函数的描述屮,()是正确的。
A.虚函数是一个static类型的成员函数
B.虚函数是一个非成员函数
C.某类中说明了熄函数后,派生类中将其对应的函数可不必说明为虚函数
D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型答:Co
100.关于纯虚函数和抽象类的描述中,()是错误的。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽彖类是指具有纯燼函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类只能作为基类來使用,共纯虚函数的实现由派生类给出答:Co
二、阅读程序(给出以下程序的运行结果)
1、m ain ()
(
int x = 2,i;
for(i=0; i< 3;i++)
printf(“%d ”,add(x));
I
add(int a)
{
c=2;
C++;
return(a + c);
I
2、m ain()
{
int a=40,b=5;
while(b<a) { b=2*b; a=a+10; }
printf(44a=%d ,b=%d ",a,b);
)
3、m ain()
{
int s;
s=20;
switch(s)
case 19: s+=l;
case 20: s+= 1; case 21: s+= 1; default: s+=l;
printf(u s=%d 冷s);
)
4、main()
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3 計+)
I
if(!i||!j||(i>=2)||G>=2)) printf(“#“);
else printfC'*M);
prinUf);
5 ・# include <iostrecun.h>
int main() i=2
{im i=l; i=5
while (i<=15) i=8
if(++i%3!=2) continue; i=ll
else cout « "i=9f<<i<<endl; i=14 6.^include <iostream.h>
class test
{ private:
int num;
float fl:
public:
test();
int getint( )1 return num;)
float getfloat(){return fl;}
-test();
I;
test // test()
{ cout « ''Initializing default n « endl; num-0; fl=0.0:
I
test ::〜test()
{ cout « ^Destructor is active" << end!;}
/test array[2];
cout « array[ 1 J.get int()« " " vv array! 1 ].getfloat() «endl; } Initializing default Initializing default 0
0.0
Destructor is active Destructor is active
void main() { int num=50; itu& ref-num; ref=ref+IO;
cout « n mim=u « num « endl; num=niun+40;
cout « u ref= u « ref « endl; I
4. ^include <ioslrecun.h>
class Sample { private:
int x.y;
public:
Sample()lx=O;y=O;/ Sample(int ijnt j)/x=i;y=j;} void copy(Sample &s);
voidsetxy(int i.int j){x 二i;y 二j;} void print()lcout< < ff x=,f < <x< < \y=/r < <y< <endl;)
};
void Sample::copy(Sample &s) ! x=s.x;y=s.y; }
void func(Sainple sh Sample &s2) { sl.setxy(10920); s2.setxy(30,40);} void niain()
Sample p( 1,2),q; q.copy(p); func(p.q); p. printf); q. printO; }
5.
^include < iotnanip.h > void main() {
double x=J29y=-3.456; cout«x«' 9«y«endl;
•*
cout.setf(ios::showpoint);
cout«x«9
'«y«endl;
cout.imsetf(ios::showpoint);
cout.setf( ios::sicientijic); cout<<x<< * 9«y«endl;
num-60 ref=100
i
; x=309y=40
6・/^include < iostream. h >
void main()
I
int a;
int &b=a; //变量引用
b=10;
cout< < r,a=fr< <a«endl;
I
7.^include <iostrecun.h>
void swap(int &x,im丿
I
int temp;
temp=x; x=y; y=teinp:
I
void mciin()
{
intx=10,y=20;
swap(x9y):
cout< <t9x=n< <x< < "v <y< <endl;
}
8.^include <iostream.h>
class Sample
{ private:
inf x;
public:
SampleO/l;
Scunple(int a){x=a;}
Sample(Sample &a)/x=a.x++ +10:/ void disp()fcout< < tf x= ft< <x< <endl:} I;
void main()
I
Sample sl(2)9s2(sl);
sl.dispO;
s2.disp();
I
9.#include <iostream.h>
int add(int x.int y)
I
return x+y;
1
double add (double x .double y) return x+y;
ini a=4,b=6;
double c=2・6,d=7・4;
cout< < add( a,b)«f\ 9f< <cidd( c9d) < <endl;
10.^include <iomanip.h>
void main()
int x= 123;
double y=-3.456789;
cout«M x= "«setw(IO)«x;
cout« "y= "«setw( 10)<<y< <endl; cout< <setiosflags( i os:: left | /os:: s ho wpos); cout< <setfill(i * cout< <setprecision(3);
cout«M x= "«setw(IO)«x;
cout« "y= "«setw( 10)<<y< <endl; coul«setiosflags( ios: scientific);
cout«U x= "«setv^(10)«x;
cout« "y= ff«set\v( 10)«y«etidl;
ll.^include <iostream.h>
class Tdaie
{ public:
void set(int mJ nt d, int y)
{numth=m; day=d; yearly;)
int lsleapyear()
{ retum(year%4==0&&year%80!=0)11(year%400==0); } void print()
{ cout< <month« "7" < <day< < 479f < <year< <endl; } private:
int month: int day; int year;
I:
void main()
Tdate a;
a.set(8JJ949):
a.print():
if(a.Isleapyear)
cout« Tf is a leap year!"
else
cout« "It is not a leap year!"
14. ^include <stdio.h>
inta[]={ 1,3,5,7,91;
int ]={a,a+I,a+2,a+3,a+4};
void )
I
pnntf("%(N%cN%(Ni ",a[4J, 即[1]);
printfi "%cN%cN%cNi", **(p+1 )+af2], *(p+4)-^(p+0), *(a+3)%a[4]);
}
1、main()
{
int a二2,b二丄c=3;
if(a<b)
if(b<0)
c=0;
else
C++;
printf(u c=%d5\c);
)
2、若变量n中的值为24,则pnn函数共输出 _________ 行,最后一行有______ 个数。
void prnt(int n,int aa[])
{
int i;
for(i=l;i<=n;i++)
{
printf(,,%6d t,,aa[i]);
if(!(i%5)) printf(n\n H);
)
prinlff
)
3、main()
{
int i,x[3][3]={123,4,5,6,7,&9};
for(i=0;i<3;i++)
printf(H%d \x[i][2-i]);
)
三、将程序补充完整
1、要将100元的大钞票,换成等值的20元,10元,5元一张的小钞票,要求每次换成10张小钞票, 每种至少一张。
输出所冇可能的换法。
请填空将下面的程序补充完整,使实现上述功能。
main()
{
int i j k;
for (i=l; i<=4; i++)
for(j=l;j<=9;j++)
{
if ( i+j>=10 ) continue;
k= __________ ;
if( __________ ==100)
print©%d 张20 元的,%“张1()元的,%d 张5 元的\n= ijk);
2、求1! +2! +3! + .............. + 10!
main ()
{
float s=0, t=l;
int n;
for ( n=l; ____________ ; n++ )
}
printf(T!+2! +3! + ------------- +10! =%f ", s );
)
1、以下程序实现从键盘上输入多个学生的成绩,以0结束。
统计并输出最离成绩和最低成绩。
main()
{
float x=0, max=0, min=0;
sanf(H%f\&x);
while( ___________ )
{
if(x>max) ____________
if( ________ ) min=x;
}
printfC*最大值是:%f \t 最小值是:%f \n,r, max, min);
}
2、以下程序的功能是计算下列级数之和
s=l + l /2+3/1+4/3+7/4+11/7+..…
double sum( int n)
{ int i ;
double a ,b , s
a=1.0 ; b=2.0; s=1.0
for(i=l; i < =n; i++)
s=s+a/b;
(
return s;
)
void main()
| int n; double s;
scanf("%d . %d”,&n);
■
_________________ ,
printf(“ %f\n",s);
1
}
3、完成一维数组中的元素对调:
例如:原数组中的元素为10 20 30 40 50
现数组中的元索为50 40 30 20 10
main()
int t;
int i,a[9]={ 1,2,3,4,5,6,7,8,9};
for( ___________________ )
{
t=a[i);
1
for(i=0;i<=8;i++)
printf("%d ",a[i]);
)
四、程序设计
1、定义一个人Person类,要求如下:
(1)含冇数据成员姓名和年龄,要求类外部不允许对其进行访问。
(2)含有成员函数:有参和无参两个构造方法(有参构造中形参的名字和数据成员名字相同)、一个输出数据成员方法
定义一个学生Student类,要求如下:
(3)该类为Person类的派生类。
含冇数据成员:学号和一门课的成绩。
(4)含冇构造函数,完成给姓名,年龄,学号,成绩赋值功能
(5)含有输出的成员函数:输出姓名、年龄、学号、成绩
(6)写出主函数,完成赋值,输出
3、写一个计算字符串长度的两数。
耍求如下:
(1)形参形式为指针形式;
(2)不允许用字符串相关的库函数。
(3)输入的字符串允许有空格
1、下列必(卩£类是一个表示形状的抽彖类,area()为求图形面积的函数,total( M是一个通用的用以求不同形状的图形血积总和的函数。
请从shape类派生三角形类(triangle).矩形类(rectangle)、并给出具体的求面积函数。
class shape
{ public:
virtual float area()=0
I;
float total(shape ],int n)
I
float sum=O.O;
for(int i=O;i<n;i++)
sum+=sf i/- >area();
return sum;
2.输入10个整数,将其屮最小的数与第一个数对换,把最大的数与最后一个数对换。
写5个函数:
(1)输入10个数;要求形参形式为指针
(2)数据交换处理;
(3)输出10个数。
要求形参形式为指针
(4)求故大值所在的下标
(5)求最小值所在的下标
(6)写出主函数,完成功能
4、输入一行文字,找出其中大写字母、小写字母、数字以及其他字符各有多少。
2.编写一个程序设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车M weighto小车类cai■是它的公冇派生类共中包含载人数passenger_loacL卡车类truck是vehicle的公冇派生类共屮包含载人数passcngcrjoad和载重吊-payload,每个类都冇相关数据的输出方法。
3、写一个字符串复制函数。
要求如下:
(1)形参形式为指针形式;
(2)不允许用字符串相关的库函数。
(3)输入的字符串允许冇空格
3、编写一个简单程序,要求:1)从键盘上输入6个整数放入数组a[6]屮(用for循环实现);2)求出数组元素的最大值及数组的平均值,并将各元素、最大值及平均值输出到一文木文件中保存。
4、定义一个处理日期的类TDate,它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,并实现如下要求:①构造函数重载;②成员函数设置缺省参数;③定义一个友元函数来打印日期;④定义一个非静态成员函数设置日期;⑤可使用不同的构造函数来创建不同的对象。