2011年下学期
西安电子科技大学网络与继续教育学院 瑞德函授站《C++ 语言核心编程》 试题
专业_____________ 姓名_____________ 成绩_________
一、选择 题(每题
3分 共45分)
1. 编写C++程序一般需经过的几个步骤依次是( ) 。
A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编译、连接 2. 在C++中使用流进行输入输出,其中用于屏幕输出的对象是( )
A. cerr
B. cin
C. cout
D. cfile
3. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( )。
A. main
B. MAIN
C. fun
D. function
4. 设x和y均为bool量,则x&&y为真的条件是( )。
A. 它们均为真 C. 它们均为假
B. 其中一个为真 D. 其中一个为假
5. 下列标识符中,不合法的用户标识符为( )。
A. a#b
B. _int
C. a_10
D. Pad
6. 在C++中把不返回任何类型的函数应该说明为( ) 。
A. int B. char C. void D. double
7. C++语言的跳转语句中,对于break和continue说法正确的是( )。
A. break语句只应用与循环体中 B. continue语句只应用与循环体中 C. break是无条件跳转语句,continue不是
D. break和continue的跳转范围不够明确,容易产生问题
第1 页 (共6页)
8. for(int x=0 ,y=0;!x& &y<=5;y++)语句执行循环的次数是( )。
A. 0
B. 5
C. 6
.无次数
9. 假定a为一个整型数组名,则元素a[4]的字节地址为( )。
A. a+4
B. a+8
C. a+16
D. a+32
10. 下面四个程序段中,输出23个*号的程序段是( )。
A. for (int i=1; i<23; i++) cout <<’*’; B. for (int i=23; i>=0; i--) cout <<’*’; C. int i=23; while (i>0) { cout <<’*’; i--; } D. int i=0; while (0<=23) { cout <<’*’; i++; }
11. 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( ) 。
A.1 B.2 C.4 D.5
12. 设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中
最大值,下列表达式不正确的是( )。
A. int m = max(22,max(59,70)); B. int m = max(max(22,59),70); C. int m = max(22,59,70); 13. 下列指针用法中错误的是( )。
A. int i; int*ptr=&i; C. int *ptr;
ptr=0;
B. int i=2000; int *ptr; ptr=i; D. int i=0;
int *ptr; ptr=&i;
D. int m = max(59,max(22,70));
14. 设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( )。
A. 2
B. -1
C. 0
D. 1
15. while(!x)中的(!x)与下面条件( )等价。
A. x==1
B. x!=1
C. x!=0
D. x==0
一、 填空题(每空2分 共40分)
1. float 和 double 类型的大小分别为 和 。
第2 页 (共6页)
2. 已知’A’~’Z’的ASCII码为65~90,当执行
char ch=14*5+2; cout<语句序列后,得到的输出结果为 。3. 在C++中有二种参数传递方式:值传递和____ _ __传递。 4. 假定一个一维数组的定义为“char * a[8] ;”,则该数组所含元素的个数
为 ,所占存储空间的字节数为 。 5. 局部对象和全局对象中,在同一程序中_____ ___生存期最长。 6. C++程序的源文件扩展名为____ ___ 。
7. 若有定义语句:int*a,b;,则变量b的数据类型是_____________________。 8. 若有定义语句
int a=3,b=2,c=1;
则表达式aint x=5,y=10; x+=y; y=x-y; x-=y;
后变量 x的值是 ,y的值是 。 10. 已知函数f的定义是:
int f(int n) { n *= 2; return n+1; } 则执行
int m=5, n=3; m=f(n);
后,变量m的值是 ,n的值是 。 11. C++是通过引用运算符___ ___来定义一个引用的 。 12. 若y是x的引用,则对y的操作就是对___ ___的操作 。 13. 若p指向x,则____________与x的表示是等价的。 14. 已知递归函数f的定义如下:
int f (int n) { if(n<=1)
return 1;//递归结束情况
else
第3 页 (共6页)
return n*f(n-2);//递归
}
则函数调用语句f(5)的返回值是 。
15. 本函数实现冒泡排序,实现对数组数从小到大排序,请写出空白代码。
void sort(int a[],int n) { int i,j,t; for (j=0;jfor(i=0;i<__________;i++) if (a[i]>a[i+1]){
________; a[i]=a[i+1]; a[i+1]=t;
}
}
二、 完成程序题(每空3分,共15分)
1. 以下程序实现交换a,b变量的值,达到输出结果为a=10 b=5的结果,有一
行代码出错。请指出错误并改正。
_____________________________________________________________<1> void swap(int m,int n) {
int temp=m; m=n; n=temp; }
void main() {
int a=5,b=10; swap(a,b);
cout<<\"a=\"<2. 此程序结果为________________________________________<2> #include using namespace std; void main()第4 页 (共6页)
{
char a[]=\"abcdabcabfgacd\"; int i1=0,i2=0,i=0; while (a[i]) {
if (a[i]==\"a\") i1++; if (a[i]==\"b\") i2++; i++; }
cout <3. 当从键盘上输入9.98时,写出下面程序的执行结果。执行结果______________________________________________<3> #include using namespace std; void main() {int a,b; char ch;
cin>>a>>ch>>b;// 从键盘上输入 9.98 cout<4. 在下面横线处填上求两个浮点数之差的cha函数的原型声明、调用方法。 #include using namespace std; void main( ) {float a,b;
___________________________<4>//函数cha的原型声明
a=12.5; b=6.5;
float c=______________________<5>; //调用函数cha cout<float cha(float x,float y)第5 页 (共6页)
{
float w; w=x-y; return w; }
第6 页 (共6页)