一:选择题
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
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<
13、 }
14、}
15、void func()
16、{
17、 cout<
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
extern int x;
void f(int);
void main()
{
int i = 5;
f(i);
cout << x;
}
回答以下问题:
(1)、 程序的运行结果是什么样的?
(2)、为什么文件file2.cpp中要包含头文件?
(3)、 在函数main()中是否可以直接调用函数g(),为什么?
(4)、 如果把文件file1.cpp中的两个函数定义的位置换一下,程序是否正确,为什么?
(5)、 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域
4.给出下列程序中的输出结果。
(1) #include
int add(int a,int b);
void main()
{
extern int x,y;
cout<
}
int x=20,y=5;
int add(int a,int b)
{
int s=a+b;
return s;
}
(2) #include
void fn(int n)
{
int x=5;
static int y=10;
if(n>0)
{
++x;
++y;
cout<
}
}
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<
}
(4). 分析如下程序输出结果:
#include "iostream.h"
void outputab(int a,int b)
{
cout<
"<
b=
"<
a=100;
b=200;
}
void main()
{
int a=300;
int b=400;
outputab(a,b);
cout<
"<