试卷编号
命题人:审批人:试卷分类(A卷或B卷) A
五邑大学试卷
学期: 2006 至 2007 学年度 第 2 学期
课程: 程序设计原理 专业: 计算机、电子、交
通
班级: 姓名: 学号:
1、选择题(30分,1.5*20)
1、C++源程序文件的扩展名为( )
A) .CPP B) .C C) .DLL D) .EXE
2、下列各组中全是合法的字符串常量的是()
A)"a+b" , "1+2=5" , "china"B)'abc' , 'xyz' , '5'
C)'123' , "456" , "789"D)'\n' , "1+2=3" , "aaa"
3、 如果a=1,b=2,c=3,d=4则条件表达式“a>b?a:b<c?c:d” 的值为
( )
A. 3
B. 2
C. 1
D. 4
4、关于类型转换的说法中,错误的是()
A)如果a为int型变量,b为char型,则a+b的值为int型
B)如果a为float型变量,b为int型,则a-b的值为float型
C)如果a为double型变量,b为float型,则a*b的值为double型
D)如果a为int型变量,b为int型,则a/(double)b的值为int型
5、 编译程序的功能是( )
A、将汇编语言程序转换为目标程序
B、将汇编语言程序转换为高级语言程序
C、将高级语言程序转换为目标程序
D、将高级语言程序转换为汇编语言程序
6、逻辑运算符两侧运算对象的数据类型()
A) 只能是0或1 B) 只能是0或非0数
C) 只能是整型或字符型数据 D) 可以是任何类型的数据
7、为了避免在嵌套的条件语句if-else中产生二义性,C++语言中规
定的if-else匹配原则是()
A)else字句与所排位置相同的if配对
B)else字句与其之前最近的if配对
C)else字句与其之后最近的if配对
D)else字句与同一行上的if配对
8、在函数声明中,下面哪项是没有的()
A)函数参数的类型和参数名B)函数名
C)函数类型D)函数体
9、执行完C++程序中的下列3条语句后,c指向()
int a,b,*c=&a; int * p=c; p=&b;
A) p B) c C) b D) a
10、定义如下一维数组:int a[5],*p=a; 则下面描述中,错误的是(
)
A)表达式p=p+1是合法的
B)表达式a=a+1是合法的
C)表达式p-a是合法的
D)表达式a+2是合法的
11、以下对二维数组a的正确说明是( )
A) int a[3][ ]; B) float a(3, 4); C) double a[1][4]; D) int a[10]= {10*1};
12、以下各项说法中,正确的是()
A)当通过引用传递参数时,函数创建一个变量以存储参数的值
B)当通过引用传递参数时,函数无法访问参数的值
C)当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值
D)当通过引用传递参数时,函数访问调用程序中参数的原始值
13、下面不属于C++语言的基本数据类型的是()
A)字符类型 B)枚举类型 C)逻辑类型 D)整数类型
14、下列关于类与对象的说法中,不正确的是()
A)对象是类中的一个实例
B)任何一个对象只能属于一个具体的类
C)一个类只能有一个对象
D)类与对象的关系和数据类型与变量的关系相似
15、假定MyClass为一个类,那么下列的函数说明中,()为该类
的析构函数。
A) void ~MyClass(); B) ~MyClass(int n);
C) MyClass(); D) ~MyClass();
16、下列关于构造函数的描述中,错误的是()
A)构造函数可以设置默认参数
B)构造函数在定义类对象时自动执行
C)构造函数可以是内联函数
D)构造函数不可以重载
17、下列关于派生类的描述中,错误的是()。
A) 一个派生类可以作为另一个派生类的基类
B) 派生类至少有一个基类
C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员
D) 派生类中继承的基类成员的访问权限到派生类中保持不变
18、下列运算符中,()运算符不能在C++中重载。
A) ? : B) + C) - D) <=
19、下列关于虚函数的描述中,正确的是()
A)如果在重定义函数时使用了保留字virtual,则重定义函数仍然是虚函数
B)虚函数不得声明为静态函数
C)虚函数不得声明为另一个类的友元函数
D)派生函数必须重新定义基类的虚函数
20、基类中的()不允许外界访问,但允许派生类的成员访问,
这样既在一定的隐藏能力,又提供了开放的接口A)公有成员B)私有成员C)保护成员D)私有成员函数
得分
二、判断题(在括号内正确的打√,错误的打╳,每空1分共
10分)。
1、C++和C语言都是面向对象的。()
2、宏定义命令是以分号结束的。( )
3、Do----While循环语句的循环体至少执行一次。( )
4、在一个被调用函数中,一个return语句不可返回多个值给调用函数。( )
5、break语句也可以用于if体内,它可退出if语句。( )
6、For循环只有在循环次数可以确定时才可使用,否则不能用for循环。( )
7、数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。( )
8、对象数组中的元素只能是相同类的对象。( )
9、若声明B类是A类的友元类,则A类也是B类的友元类( )
10、使用内置函数的目的是为了提高运行效率。( )
得分
三、程序填空(根据给出的程序功能说明,补充完整程序中缺少的代码,每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。)(20分每空2分)
1.编写程序,判断某一年是否为闰年。润年的条件是符合下面两者之一:1、能被4整除,但不能被100整除。2、能被100整除,又能被400整除。
#include <iostream>
using namespace std;
int main( )
{ int year;
① leap;
cout<<”please enter year:”;
cin>>year;
if ((year%4==0 && year%100==0)||( ② ))
leap=true;
else
③ ;
if ( ④ )
cout<<year<<” is “;
else
cout<<year<<″ is not ″;
字符串拷贝函数strcpy作用
cout<<″ a leap year.″<<endl;
return 0;
}
2、出输入的10个整数中的最大数。
#include <iostream>
using namespace std;
main()
{ int k,max, ⑤ ;
for(k=0;k<10;k++)
cin>>num[k];
max=0;
for(k=9; ⑥ ; k--)
if (num[max]<num[k]) ⑦ ;
cout<<”the max is ”<<num[max] <<endl;
return 0;
}
3、编写程序,用起泡法对10个数排序(按由小到大顺序)。#include <iostream>
using namespace std;
int main( )
{
int a[11];
int i,j,t;
cout<<″input 10 numbers :″<<endl;
for (i=1; ⑧ ;i++)
cin>>a[i];
cout<<endl;
for (j=1;j<=9;j++)
for(i=1; ⑨ ;i++)
if (a[i]>a[i+1] )
{t=a[i]; ⑩ ;a[i+1]=t;}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论