华佗养生网
您的当前位置:首页东南大学C程序设计上考试卷A卷.doc

东南大学C程序设计上考试卷A卷.doc

来源:华佗养生网


觉 遵 守

考 场 纪

律线

如名

弊 此 答

卷 密

号 学

东 南 大 学 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;returnx;}

执行以下语句; int

a=3,b;b=f(a) + f(a)之后 a,b 的值是 ________。

A.3,30B.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)

1 / 11

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 语句只能用在循环语句和 ______________语句中。

2 / 11

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<3 / 11

for(i=1;i<7;i++) if(i%3==0) continue; 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 / 11

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')

5 / 11

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=\"<cout<<\"m=\"<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;

6 / 11

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()

7 / 11

s+=j;

if( ) { cout<n++; 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; }

穷举法

列出所有可能组合

8 / 11

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

double Real,Image ; : ) {

}

void Print()

{cout<<\"Real=\"<9 / 11

){//

重载 + ; }

, Image); }

return

/ 重载 +

void main(void) {

double d=0.5 ;

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

(五)编程题(每题 10 分;共 20 分;非电同学完成 1 和 2;电类完成 1 和 3) 1、 用任意一种方法求出费波纳切数列的前

20 项并按每行 5 个数显示。 10 / 11

2、 设计求 n!的函数; n 的缺省值为 10。

3、编写一个矩形类;其中数据成员包括矩形的左上和右下点的坐标共 4 个数值;函数成员包括类的构造函数、 拷贝构造和打印函数 (打印类的数据);并编写一个函数以求出矩形的面积。 (本题限电类同学完成)

11 / 11

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