发布时间 : 星期日 文章2010年6月期末试卷1 - 图文更新完毕开始阅读6188defc04a1b0717fd5dd62
: 号 学 : 名————————— 签 生密 学: 级 效 班 。 弊无 作 不题 绝 , 试答 :考 级信内———————————— 年诚 , 则线封 规 场订 考 守 装 遵 :觉业自专, 中 —————————— 试 考 线 次 本 在 : 诺:承院人学 本 ———————— 南通大学2009—2010学年第二学期高级语言程序设计(VC++)试卷(期末)第1页 共 5 页
试题 一 二 三 四 五 六 七 八 总 得分 分 请将所有答案写入答题纸,否则不得分! 6.设int a=0,b=18,c=17,x,y;执行如下语句后,b、c的值分别为 。 得分 评卷人 一、选择题(每题2分,共30分。) x=a+b>c && c++; y=a||b++||c++; A、19 18 B、18 17 1.以下说法正确的是 。 C、18 18 D、18 19 A、C++程序总是从第一个定义的函数开始执行 7.有定义语句“char *pa[5];”则sizeof(pa)的值为: 。 B、C++程序中有调用关系的所有函数必须放在同一个程序文件中 A、1 B、4 C、C++程序中的函数都必须有返回值 C、5 D、20 D、C++程序中必须有且只能有一个main函数 8.若有以下语句,则 是对a数组元素的错误引用。 2.设有说明语句:float y=5.16347f;int x;则以下表达式中,可实现将y中的数值保留小数点后三位,第四位四舍五入的表达式是______。 int a[12]={0},*p[3],**pp,i; A、y=(y*1000+0.5)/1000.0 B、y=y*1000+0.5/1000.0 for(i=0;i<3;i++) p[i]=&a[i*4]; C、x=y*1000+0.5,y=x/1000.0 D、y=(y/1000+0.5)*1000.0 pp=p; 3.设有语句: A、a[12] B、 p[2][3] C、 a[10] D、pp[0][1] int y=1; while(y <=10) if (y%2= =0) break ; y++; 9.某类A有成员函数 int A::f (int,int);则如下函数中与该函数不能构成重载的则循环体执行的次数为: 。 A、无限次 B、1次 C、2次 D、10次 是 。 A、int A::f (int,int,int); B、double A::f (int,int); 4.设有宏定义语句: C、double A::f (double,double); D、double A::f (int,int) const; #define P(x,y) x+y 10.对于有对象成员的派生类,在创建该派生类对象时要执行三种构造函数: #define PP(a,b) a/b ①派生类构造函数、②对象成员的构造函数、③基类的构造函数 int c=P(2,3)+PP(2+3,P(2,3)); 这三种构造函数的执行顺序为: 。 则变量c的值为: 。 A、①②③ B、②③① C、③②① D、③①② A、6 B、11 C、7 D、10 11.下列关于静态数据成员的描述中正确的是 。 5.设有如下程序语句: A、静态数据成员是类的所有对象所共有的 float x,y; int j,k; B、静态数据成员要在构造函数内初始化 C、类的每个对象有自己的静态数据成员 const float* pf=&x; D、静态数据成员不能通过类的对象调用 const int *const pp=&j; 12.若类A被说明为类B的友元,类C为类B的派生类,则 。 则如下语句正确的是: 。 A、类B为类A的友元 A、*pp=25 B、pp=&k C、pf=&y D、*pf=25 B、类A的成员即为类B的成员 C、类A为类C的友元 D、以上都不正确 使用班级 普 本
出卷日期 2010 年 05 月 28 日
:号学 ————————— : 名密 姓 :级班 ———————————— 封 :级年 —————————— :业线 专 ———————— : 院学 南通大学2009—2010学年第二学期高级语言程序设计(VC++)试卷(期末)第2页 共 5 页
13.Sample是个类,设有正确语句“Sample a(2),a[2],(*p)[3];”,则调用构造函数的次数2.以下程序输出的第一行是 13 ,第二行是 14 。 为 。 #include void main(void) 3.完善类定义 { B b1(20,30); #include 3. 平面直角坐标系下直线方程可表示为ax+by+c=0,其标准化方程为Ax+By+C=0,其中 A=a/sqrt(a*a+b*b), B=b/sqrt(a*a+b*b), C=c/sqrt(a*a+b*b)。 直线类Line结构如下: (1)数据成员: double a,b,c,A,B,C (2)成员函数 Line(double a1,double b1,double c1):初始化a、b、c,并计算A、B、C int IsParal (Line lin):判断本对象是否与另一直线平行,若是返回1,否则返回0 void intersection(Line lin,double &x,double &y):求两直线的交点坐标x和y 程序要求: (1)根据题意完成类结构的定义 (2)在主函数中完成测试,测试两直线为x+y+2=0和2x-2.5y+7=0是否有交点,若有,求交点 提示:直线A1x+B1y+C1=0和直线A2x+B2y+C2=0平行的条件为:A1*B2-A2*B1=0且A1*C2-A2*C1!=0 。两直线若有交点(x,y),则x=(B1*C2-B2*C1)/(A1*B2-A2*B1), y=(C1*A2-C2*A1)/(A1*B2-A2*B1) 。