您的当前位置:首页正文

东南大学C++程序设计(上)考试卷( A 卷)

2023-02-07 来源:客趣旅游网
 自 觉 遵 守 考 场 纪 律 名 如姓 考 试 作 弊 此 答 卷 无 效 号学东南大学C++程序设计(上)考试卷( A 卷)

课程名称 考试学期

得分

适用专业

电类、非电类

考试形式

闭卷

考试时间长度 100分钟

(一) 选择题(每空2分,共20分)

1. 设有说明“int i=10;float x;”,执行“x=5/i;”后,x的值为_____

A. 0.5 B. 0 C. 1.0 D. 以上皆否 2. 在while(!a)中,其中!a与表达式__________等价。 A. a==0 B. a==1 C. a!=1 D. a!=0 3. 下面的整型常数中错误的是__________。

A. 123 B. 380 C. 038 D. 0xAF 线4. 以下__________不能用作标识符

A. a6.3 B. _1234 C. GetName D. b_tree 5. 设以下变量均为int类型,则值不等于10的表达式是________。 A.x=y=9,x+y,x+1 B.x=y=9,x+y,y+1 C.x=9,y=1,y=x,x+y D.y=9,y+1,x=y,x+1

6. 若定义函数,int f(int x) {x*=10;return x;} 执行以下语句,int 封a=3,b;b=f(a) + f(a) 之后a,b的值是________。 A.3,30 B.30,60 C.300,330 D.3,330

7. 已知int i=0;while(i++!=7); 当while循环结束后,变量i的值为________。

A.5 B.6 C.7 D.8

8. 表达式__________是满足:当c的值为1、3、5三个数时值为“真”,否则 密值为“假”的表达式

A. (c=1)||(c=3)||(c=5) B. (c!=1)&&(c!=3)&&(c!=5) C. (c==1)&&(c==3)&&(c==5) D. (c==1)||(c==3)||(c==5) 9. 对于C++的函数,正确的叙述是__________________

A.函数的定义不能嵌套,但函数的调用可以嵌套 B.函数的定义可以嵌套,但函数的调用不能嵌套 C.函数的定义和调用都不能嵌套 D.函数的定义和调用都能嵌套

10. 若定义函数时未指定函数的返回类型,则函数的返回类型为_______________

A.void B.int C.double D.编译出错 (二) 填空题(每空1分,共10分)

1.已知小写字母A的ASCII码值是65,则下列语句执行后输出是 char c = 66;cout<2. 设y是int型变量,判断y为奇数的关系表达式为_______________。 3. 整型变量n的当前值是6,执行以下switch语句后n的值是 switch(n){

case 6: ++n; case 7: n--; case 8: ++n; default: n/=2; }

4. 全局与静态变量在程序运行时自动初始化为 5. 已知x为double型,执行语句 (float)x 之后,x为 类型。 6. break语句只能用在循环语句和______________语句中。

7. 变量可分为局部变量和全局变量,其中全局变量的作用域范围______________

8. 函数具有相同的函数名,但具有不同的参数个数或不同的参数类型,编译系统根据不同的参数去调用不同的函数,称____________函数。

9. 有整型变量a、b,则下列for循环中的输入语句最多可执行__________ 次 for(a=0,b=0;b!=10&&a<5;a++) cin>>b;

10. 若有下列程序,则程序运行后的输出是 #include using namespace std; void f(int); int main() {

f(123); return 0; }

void f(int n) {

if(n >= 10)

f(n/10); cout<(三)阅读程序并填空(每空2分,共30分)

1.有程序如下: void main (void) {

for(int i=1;i<7;i++) if(i%3==0) break; cout<请问:程序输出为 。

2. void main() {

int a,b,c; a=2,b=3,c=1; if(a{if (a>c) cout<else cout <问:执行上述程序后输出 。

3. 写出下列程序段运行时的输出结果 void count(int x){

cout<<(x%10)%10<void count(int x,int y){

cout<<(x%10)%10<<(x-x%y)/y; }

void main(void){ int a=285,b=369;

cout<<\"原整数:\"<第一行是 第二行是

4. 写出下列程序的输出结果。 void main(void){ int a,b;

for(b=1,a=1;b<=50;b++) {

if(a>=10) break; if(a%2==1) { a+=5; continue; } a-=3; }

}执行完毕之后a和b的值分别是___________和_______________ 5、设有如下程序

int m=10; //A

int f(int x,int y) {

int m=5; //B m+=x*y; //C return m; //D }

void main() {

int a=6,b=7;

cout<执行完毕之后的输出结果是_________________ 5. 设有如下程序。 void main() {

char c; cin>>c;

if(c<='z'&&c>='a') c=c-'a'+'A'; if(c<='Z'&&c>='A') c=c-'A'+'a'; cout<程序执行后,若输入英文字母’B’,则程序输出_______________;若输入英文字母’b’,则程序输出_______________。 6. 阅读下列程序 #include using namespace std; int a,b;

void f(int j){

static int i=a; //注意静态局部变量 int m,n;

m=i+j; i++; j++; n=i*j; a++; cout<<\"i=\"<int main(){

a=1; b=2; f(b); f(a);

cout<<\"a=\"<该程序输出的第一行为___________________________________,

第二行为___________________________________, 第三行为___________________________________ 7. 阅读下列程序

int fun1(int x,int y); void main() { int k=4,m=1,p; p=fun1(k,m); cout<int fun1(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; }

该程序输出的第一行为___________________________________, 第二行为___________________________________ 8. 阅读下列程序(请注意if语句里面的符号) int num=4;

if(num=1) cout<<”Alpha”; else if(num=2) cout<<”Bata”; else if(num=3) cout<<”Gamma”; else cout<<”Delta”;

上面程序段的输出分别为______________________。

(四)完善程序题(每空2分,共20分。其中非电类做1-3,电类做1-2和第4题)

1. 求出1000之内的“完数”。所谓“完数”,即这个数等于它的因子之和。例如:6是一个完数,即6=1+2+3。要求每输出4个完数换一行。 #include void main() { int n=0,s;

for(int i=1;i<=1000;i++) { ;

for(int j=1;j<=i/2;j++) if( ) s+=j;

if( ) { cout<if( ) cout<<'\\n'; }

} }

2、将4~50之间的所有偶数用两个素数之和表示。判断一个整数是否为素数用函数完成。

#include #include

using namespace std; bool prime(int m){

if(m==1||m==0) return false; if(m==2) return true; int k=(int)sqrt(m);

for(int i=2;i<=k;i++)//穷举法 if(m%i==0) ; if(i>k) ; else return false; }

int main() {

for(int n=4;n<=50;n+=2)

{

for(int i=2;i<=n/2;i++)

if(prime(i)&&prime(n-i))

cout<}

return 0; } 3、 程序功能:输入三个整数a、b、c,通过调用函数选出其中最大值,将该值输出。(本题限非电类同学完成,电类同学完成第4题) #include int max(int,int,int); void main( ){ int a,b,c;

cout<<”input a,b,c:”<>a>>b>>c;

cout<<”a=”<int max(int x,int y,int z){ int m;

if(x>=y&&x>=z) ; else if( ) m=y; else ; ; }

4、下面为复数类,其中设计了类的加号运算符重载。(本题限电类同学完成) #include class Complex{

double Real,Image ; :

Complex(double r=0.0, double i=0.0):Real(r),Image(i){} Complex(Complex ) {

Real=com.Real ; Image=com.Image ; }

void Print()

{ cout<<\"Real=\"<Complex Complex::operator+( ){//重载+ Complex Temp(Real+c.Real , Image+c.Image) ; return ; }

Complex Complex::operator+(double d){ //重载+ return Complex( , Image); } void main(void) {

Complex c1(1.0,1.0) , c2(2.0,2.0) , c3, c4; double d=0.5 ;

c3=c1+c2; c3.Print(); c4=c3+d; c4.Print(); }

(五)编程题(每题10分,共20分,非电同学完成1和2,电类完成1和3) 1、 用任意一种方法求出费波纳切数列的前20项并按每行5个数显示。 2、 设计求n!的函数,n的缺省值为10。 3、编写一个矩形类,其中数据成员包括矩形的左上和右下点的坐标共4个数值,函数成员包括类的构造函数、拷贝构造和打印函数(打印类的数据),并编写一个函数以求出矩形的面积。(本题限电类同学完成)

因篇幅问题不能全部显示,请点此查看更多更全内容