东南大学C程序设计上考试卷A卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南⼤学C程序设计上考试卷A卷东南⼤学C++程序设计(上)考试卷( A 卷)
课程名
称考试学
期
得分
适⽤专业电类、⾮电类考试形
式
闭卷
考试时间长
度
100分
钟
(⼀)选择题(每空2分,共20分)
1. 设有说明“int i=10;float x;”,执⾏“x=5/i;”后,x的值为_____
A. 0.5
B. 0
C.
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. 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)
cout<
}
(三)阅读程序并填空(每空2分,共30分)
1.有程序如下:
void main (void)
{
for(int i=1;i<7;i++) if(i%3==0) break; cout<
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<<"原整数:"<
cout<<"结果数:";
count(a,b);
cout<
}
第⼀⾏是
第⼆⾏是
4. 写出下列程序的输出结果。
void main(void){
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; 设有如下程序。
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 fun1(int x,int y);
void main()
{
int k=4,m=1,p;
p=fun1(k,m); cout<
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<
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)&′(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:”<
cin>>a>>b>>c;
cout<<”a=”<
cout<<”max of a,b,c is:”<< <
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=, double i=:Real(r),Image(i){}
Complex(Complex )
{
Real= ;
Image= ;
}
void Print()
{ cout<<"Real="<
Complex operator+(double); //重载+运算符函数
};
Complex Complex::operator+( ){//重载+ Complex Temp(Real+ , Image+ ;
return ; }
Complex Complex::operator+(double d){ //重载+
return Complex( , Image); }
void main(void)
{
Complex c1, , c2, , c3, c4;
double d= ;
c3=c1+c2; ();
c4=c3+d; ();
}
(五)编程题(每题10分,共20分,⾮电同学完成1和2,电类完成1和3)
1、⽤任意⼀种⽅法求出费波纳切数列的前20项并按每⾏5个数显⽰。
2、设计求n!的函数,n的缺省值为10。
3、编写⼀个矩形类,其中数据成员包括矩形的左上和右下点的坐标共4个数值,函数成员包括类的构造函数、拷贝构造和打印函数(打印类的数据),并编写⼀个函数以求出矩形的⾯积。
(本题限电类同学完成)。