东南大学08级C试卷A(电类上).doc_第1页
东南大学08级C试卷A(电类上).doc_第2页
东南大学08级C试卷A(电类上).doc_第3页
东南大学08级C试卷A(电类上).doc_第4页
东南大学08级C试卷A(电类上).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 需求分析,算法(方法)描述;2. 编辑:利用程序编辑器(IDE)完成源程序编写(*.cpp);3. 编译:产生目标程序(*.obj);4. 连接:将一个或多个目标程序与库函数连接产生可执行文件(*.exe);5. 调试:运行与分析程序的结果; 6. 程序 文件模块函数语句词法符号由于在计算机中负数是采用2的补码形式存放,对于无符号数65535,在内存中对应的二进制形式为:11111111,11111111当做为有符号数时,其对应的数值就为 1;/* 符号位不变,其它各位取反,末位加1, 10000000,00000001 -1 */const float PI = 3.14159; 正确const int age;age = 25;错误:没有初始化常变量表示字符串的结束。NULL字符的ASCII码值为0,常用0表示。所以,字符串常量在内存中所占据的存储单元的数目为字符个数加1。065 和 x41 标准字符 A 位异或位非应用a:利用位与运算可以实现数据筛选。例:设屏蔽字为0xF0,试求对数据01101101的筛选值。01101101& 11110000屏蔽字01100000(&11011111)实现将小写字母转换成大写字母。已知:a 61h , A 41h ) 位或运算 | 对同一数连续进行两次求非运算,可以得到原来的数,因此,第一次求非的过程称为对数据的编码,第二次求非称为解码。例如: x: 00101101 x: 11010010x: 00101101两个逻辑变量A和B,异或运算的真值表为:可以描述为:相同为0;相异为1; &=位与赋值a&=ba=a&b|=位或赋值a|=ba=a|b=位异或赋值a=ba=ab=右移赋值a=ba=ab=左移赋值a=ba=a b ? a : b c ? t : c;return t;则执行下列语句,int r = max(2, 9, 8); 变量r的值是 。A:9B:8C:2D:04下列关于成员函数特性的描述中, 是不正确的。A:成员函数可以重载B:成员函数一定为内联函数C:成员函数可以是静态的D:成员函数可以设置参数的默认值5在while(a)中,a与下列哪个条件表达式等价A:a = 0B:a != 0C:a = 1D:a != 16执行下列程序段的输出是 。for(int i = 1; i 6; i+)if(i%3 = 0) break;coutit;A:1 2 3 4 5B:1 2 4 5C:1 2 D:37浮点型变量f当前值是19.5,则执行下列语句后f的值是 。float f = 19.5;int n = int(f);A:20B:19.5C:19 D:20.08设有函数声明double function(double a, double &b);定义变量double x, y; 则下面对函数正确的调用是 。 A:function(x, 1.0)B:function(x, y)C:function(1.0, &x)D:function(x, 1.0+y)9以下哪些函数可以构成重载函数 。(1). int function(int a, int b, int c);(2). double function(int a, int b, double c);(3). int function(int a, int b);(4). double function(int a, int b, int c);A:(1) (2) (4)B:(1)(3)(4)C:(1)(2)(3)D:(1)(4)10有关类的说法不正确的是 。A:类是一种用户自定义的数据类型B:只有类中的成员函数才能直接存取本类中的私有数据C:类的构造函数与析构函数均可以重载D:类的成员函数可以是重载函数,或者是有缺省参数的函数(四)填空题(每题1.5分,计15分)1整型变量n的当前值是17,执行以下switch语句后n的值是 。switch(n)case 16: +n;case 17: n += 2;case 18: +n;default: n+;2已知小写字母a的ASCII码值是97,则下列语句执行后输出是 。char c = 102;coutc; 3若有下列程序,则程序运行后的输出是 。#includeusing namespace std;int main()int i = 0;docouti, ; while(i+ 5);couti;return 0; 4定义以下字符数组,则该数组的长度是 。char szName = mySEU; 5若有下列程序,则程序运行后的输出是 。#includeusing namespace std;void f(int n);int main()f(789);return 0;void f(int n)if(n = 10)f(n/10);cout= 3; 7类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的成员数据,共同行为被描述为类中的 。 8下列语句执行后整型变量nCount的值是 。int nCount = 0;for(int j = 0; j 6, nCount+; j+)nCount+; 9全局与静态变量在程序运行时自动初始化为0;下列语句的本意是求出110共10个数的和,但结果却不对,其原因是 。int sum;for(int i =1; I = 10; i+)sum = sum + i; 10. 运算符重载的两种形式:作为类的成员函数,以及 。 (五)阅读程序并填空(每空1-3分,共25分)1.写出下列程序的执行结果#include using namespace std;void fun(int &a,int &b)int p; p=a; a=b; b=p;void exchange(int &a,int &b,int &c) if(ab) fun(a,b);if(ac) fun(a,c);if(bc) fun(b,c);int main() int a,b,c;a=94; b=16; c=178;coutFirst: ta=a,b=b,c=cendl;exchange(a,b,c);coutSecond: ta=a,b=b,c=cendl;return 0;(1) (1分)(2) (3 分)2.阅读下列程序#include using namespace std; int main() int x=9,n=8,y,i;for(i=0;in;i+)x/=3;y=1+x;i=0;doy*=2;i+;while(i=n);couty=yendl; return 0;(3)y的表达式为: (3分)(4)程序的运行结果为: (2分)3. 设输入的5个整数是:32 64 53 87 54。#includeusing namespace std;int main()int a,b,c,x;a=b=c=0;coutInput 5 integers:endl;for(int i=0;ix;switch(x%3)case 0:a+=x;break;case 1:b+=x;break;case 2:c+=x;break;couta;b;cendl;return 0;程序运行时屏幕输出为:(5) (1分)(6) (1分)(7) (3分)4.阅读下列程序#include using namespace std;int add(double &, double); double a;int main() const int n=5; int num,i;double dn=7.2,5.7,6.0,4.2,9.9;for(i=0;i=6) num=add(a,di);a/=num;coutThe average is:anThe number is:numendl;return 0;int add(double & a,double d)static int c;a+=d;c+;return c;程序的运行结果为:(8) (2分)(9) (3分)5. 阅读下列程序#includeusing namespace std;class MyTestClassprivate:int NumA;public:MyTestClass(int a)coutatis Constructor.endl;NumA=a;MyTestClass(MyTestClass &b)coutCopy Constructor.endl;NumA=b.NumA;void Print()coutThe private data is: NumA=NumAendl;MyTestClass()coutNumAtis Destructor.endl;int main()MyTestClass Myclass1(5), Myclass2(Myclass1);Myclass2.Print();return 0;程序的运行结果为:(10) (1分)(11) (2分)(12) (1分)(13) (1分)(14) (2分)(六)完善程序题(共25分)1、编写程序求的值(每空2分,共6分。)其中arctan( )用如右形式的级数计算:计算直到级数某项绝对值不大于10-15为止;和 x 均为double型。#includeusing namespace std;double arctan( double x ) ; /函数原型声明int main( )double a, b; a = ; /注意:整数相除结果将会取整! b = ; /此处略,b将计算出 的值 cout PI= a-b endl;return 0;double arctan( double x ) int i , sign = 1; double sum, e, f, sqr; sum = 0; e = x; i = 1 ; while ( ) /终止条件 f = e / i ;sum += sign * f ; e = ; /递推公式sign *= -1;i += 2; return sum ;2、输入一个8位二进制数,将其转换为十进制数输出。(每空2分,共4分。)#includeusing namespace std;const int n = 8 ; /输入数据的位数int main( )char bin n; /用来放输入的数据,数据的每一位以字符方式存放int x = 2 ; /x表示几进制,此时处理的是二进制inta, dec, i ;cout 输入二进制序列: = 0; i- ) ; /输入的是字符,且先输入的是二进制数的高位dec = 0 ;for( i = n-1; i = 0; i- ) a = ; /字符转换为数字,例如11,00 dec = dec*x + a ;cout 转换为十进制,值为: dec endl;return 0;3、用递归算法实现正整数的倒序输出。(每空2分,共4分。)#includeusing namespace std;void backward( int x ) /* 这个数非0时,倒序输出总是先输出最后一位,然后在剩下的数中进行同样思路的倒序输出 */if ( x0 ) ; ;int main( )int n;cout “输入正整数: n;cout “原整数” n “倒序输出为:;backward ( n ) ;cout endl ;return 0;4、定义复数类,可完成复数基本运算,并应用它进行复数运算。(共11分。)#include #include using namespace std;class ComplexdoubleReal, Image ; /复数的实部和虚部public:Complex ( double r = 0.0, double i = 0.0 ) /定义构造函数 (1.5分)Complex ( Complex & com ) /定义复制构造函数 (1.5分)void Print( )cout Real= Real t Image= Image n ;Complex operator+ ( Complex );/Complex operator+ ( double );Complex operator= ( Complex );Complex operator+= ( Complex );/double abs(void);/Complex operator* ( Complex );/Complex operator/ ( Complex );Complex Complex:operator+ ( Complex c)Complex Temp( ) ;/显式说明局部对象(此空2分)return Temp ;Complex Complex:operator+= (Complex c)Complex temp;/定义temp为了返回Complex类的值,使+=可以连续使用temp.Real = ; (1.5分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论