Untitled Document

一：选择题
1． 下列叙述中正确的是：
a. C++语言程序必须要有return语句
b. C++语言程序中，要调用的函数必须在main()函数中定义
c. C++语言程序中，只有int类型的函数可以未经声明而出现在调用之后
d. C++语言程序中，main()函数必须放在程序开始的部分
2． 下列叙述中正确的是：
a. C++语言程序总是从第一个定义的函数开始执行
b. C++语言程序中，函数类型必须进行显式声明
c. C++语言程序中，return语句必须放在函数的最后
d. C++语言程序中，return语句中表达式的类型应该与函数的类型一致
3． 下列叙述中正确的是：
a. C++语言程序中，main()函数必须在其它函数之前，函数内可以嵌套定义函数
b. C++语言程序中，main()函数的位置没有限制，函数内不可以嵌套定义函数
c. C++语言程序中，main()函数必须在其它函数之前，函数内不可以嵌套定义函数
d. C++语言程序中，main()函数必须在其它函数之后，函数内可以嵌套定义函数
4． 一个C++语言程序总是从_______开始执行：
a. 主程序
b. 子程序
c. 主函数
d. 第一个函数
5．已知函数test定义为：
void test()
{
…………
}
则函数定义中void的含义是：
a. 执行函数test后，函数没有返回值
b． 执行函数test后，函数不再返回
c． 执行函数test后，函数返回任意类型值
d． 以上三个答案都是错误的
6．以下对于C++语言的描述中，正确的是：
a.C++语言中调用函数时，值传递方式只能将实参的值传递给形参，形参的值不能传递给实参
b.C++语言中函数既可以嵌套定义，也可以递归调用
c.函数必须有返回值
d.C++程序中有调用关系的所有函数必须放在同一源程序文件中
7． C++语言中函数返回值的类型是由______决定的？
a.return语句中的表达式类型
b.调用该函数的主调函数类型
c.定义函数时所指定的函数类型
d.以上说法都不正确
8．在一个源文件中定义的全局变量的作用域为：
a.本程序的全部范围
b.本函数的全部范围
c.从定义该变量的位置开始到本文件结束
d.以上说法都不正确
9． 以下说法错误的是：
a.全局变量就是在函数外定义的变量，因此又叫做外部变量
b.一个函数中既可以使用本函数中的局部变量，也可以使用全局变量
c.局部变量的定义和全局变量的定义的含义不同
d.如果在同一个源文件中，全局变量和局部变量同名，则在局部变量的作用范围内，全局变量通常不起作用
10． 当一个函数无返回值时，定义它的函数类型应是＿＿＿。
a.void
b.int
c.任意
d.无

二：编程及简答题
1． 下面的程序共有17行，程序中变量num、i、temp、对象cout和函数func()的作用域范围分别是什么？
1、#include<iostream.h>
2、int num;
3、void func();
4、void main()
5、{
6、 char name[20];
7、 int i;
8、 for(i=0;i<20;i++)
9、 {
10、 char temp;
11、 temp=name[i];
12、 cout<<temp;
13、 }
14、}
15、void func()
16、{
17、 cout<<"A function!";
18、}
2．用递归函数完成以下运算：
sum(n)=1+2+3+…＋n
函数的原型如下：
int sum(int n);
该函数完成1+2+3+…n的运算，并返回运算结果,其中n>0
3．阅读下面的程序，回答问题：
//file1.cpp
static int i = 20;
int x;
static int g(int p)
{
return i + p;
}
void f(int v)
{
x = g(v);
}
//file2.cpp
#include <iostream.h>
extern int x;
void f(int);
void main()
{
int i = 5;
f(i);
cout << x;
}
回答以下问题:
（1）、 程序的运行结果是什么样的？
（2）、 为什么文件file2.cpp中要包含头文件<iostream.h>？
（3）、 在函数main()中是否可以直接调用函数g()，为什么？
（4）、 如果把文件file1.cpp中的两个函数定义的位置换一下，程序是否正确，为什么？
（5）、 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的？在程序中直接标出两个变量各自的作用域
4．给出下列程序中的输出结果。
(1) #include<iostream.h>
int add(int a,int b);
void main()
{
extern int x,y;
cout<<add(x,y)<<endl;
}
int x=20,y=5;
int add(int a,int b)
{
int s=a+b;
return s;
}
(2) #include<iostream.h>
void fn(int n)
{
int x=5;
static int y=10;
if(n>0)
{
++x;
++y;
cout<<x<<","<<y<<endl;
}
}
void main()
{
int m=1;
fn(m);
}
（3）分析如下程序输出结果：
#include "iostream.h"
fun(int a,int b,int c)
{
c=a*b;
}
void main()
{
int c;
fun(2,3,c);
cout<<"c="<<c<<endl;
}
(4). 分析如下程序输出结果：
#include "iostream.h"
void outputab(int a,int b)
{
cout<<"a= "<<a<<" b= "<<b<<endl;
a=100;
b=200;
}
void main()
{
int a=300;
int b=400;
outputab(a,b);
cout<<"a= "<<a<<" b= "<<b<<endl;
}
5．为什么要使用函数？函数声明与函数体之间有什么区别？
6．求组合数，编程计算c(m,n)=(m!)/((n!)*(m-n)!)。
7．已知银行的存款利息如下。某人有2000元钱，要存20年，问怎样存才能使20年后得到的本利合计最多（假定银行对定期存款过期部分不付利息）？
0.63% 期限一年
0.66% 期限二年
月息利率= 0.69% 期限三年
0.75% 期限五年
0.84% 期限八年
8．下面的函数调用语句中，含有的实参个数有多少？
Func(rec1,rec2+1,(rec3,rec4));
9．写函数int newint(double x)求x的整数部分。例如：传送给函数参数x的值为3.45623，函数的返回值为3。
10．编程实现，任输入一个正整数num，求1！＋2！＋3！….+num!的和。