1,以下描述正确的是______B______。
A、函数定义不可以嵌套,函数调用也不可以嵌套
B、函数定义不可以嵌套,函数调用可以嵌套
C、函数定义可以嵌套,函数调用也可以嵌套
D、函数定义可以嵌套,函数调用不可以嵌套
2,下面保留字中不能作为函数的返回类型的是_____D_______。
A、voidB、zlongC、signedD、new
以下说法中正确的是____C____。
A、C++程序中,函数的定义必须写在调用该函数的语句之前
B、C++程序中的main()函数必须放在程序的开始部分
C、C++程序总是从main()函数开始执行
D、C++程序总是从源文件中第一个定义的函数开始执行
3,参数的传递方式为值传递时,对形参和实参的要求正确的是_____B___。
A、函数定义时,形参一直占用存储空间B、实参可以是常量、变量或表达式
C、形参可以是常量、变量或表达式D、形参和实参类型和个数都可以不同
4,C++中函数形参的缺省存储类型是_____A_。
(自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register))
A、自动类型B、静态类型 C、寄存器类型D、外部类型
5、下列关于宏定义的描述,不正确的是____B__。
A、宏替换并不检查替换后的源程序的语法错误
B、带参宏在展开时,先求出实参表达式的值,然后再代入形参,并运算求值
C、宏替换不占用程序运行时间
D、宏名不存在类型问题,它的参数也不存在数据类型问题
6,如果函数fun返回值类型为float,并且具有四个整型参数,其中两个参数具有缺省值5;其返回值类型为浮点型。则函数的原形说明为▁▁▁。(若参数名不省略,则从左至右依次用a,b,c,d)
填空1答案:float fun(int a, int b , int c=5, int d = 5);
7,对于以函数原形为void fun(int a[ ],int n)的函数,若有变量说明int b[10];则下列函数调用出现语法错误的是(D)
A,fun(b,b[0])
B、fun(b,5)
C、fun(&b[0],10)
D、fun(b[0],5)
8,{""}和""的区别?
7,若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是___3__。
函数返回类型不能作为重载函数的调用的依据
8,以下程序程序执行后的输出结果是___1,0,2,0___。
#include
using namespace std;
int i = 0 ;
void fun(){
static int i = 1;
cout<
解析:static是静态变量,使得int i 的值会改变
9,下面代码的输出结果是:11 18
#include
using namespace std;
void m();
int a=3;
int main(){
for(int i=0;i<2;i++)
m();
cout<
注意在函数里a是局部变量,::a是全局变量
10,写出运行结果:
12 -2
5 25
#include
using namespace std;
void num(){
extern int x,y;
int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
int main(){
int a=7,b=5, x=0,y=0;
num();
x+=a+b;
y-=a-b;
cout<
extern是调用其他文件或变量时的使用
11,下列关于宏定义的描述,不正确的是______。
A、宏替换并不检查替换后的源程序的语法错误
B、带参宏在展开时,先求出实参表达式的值,然后再代入形参,并运算求值
C、宏替换不占用程序运行时间
D、宏名不存在类型问题,它的参数也不存在数据类型问题
12,C++语言的编译预处理功能主要有▁宏定义▁▁、▁文件包含▁▁和条件编译三种功能
第六章
1,设有定义一维数组如下:int a[5],*p=a;,则下列描述中错误的是(B)
A、表达式a+2是合法的
B、表达式 p=p+1是合法的
C、表达式a=a+1是合法的
D、表达式p-a是合法的
2,下列各语句行中,能正确进行赋字符串操作的语句是(B)
A、char s[5]={"ABCDE"};
B、char *s; s="ABCDE";
C、char *s; *s="ABCDE";
D、char s[5]={'A' ,'B','C','D','E'};//没加'\0',违法
3,执行char a[10]={"abcd"},p=a;后,(p+4)的值是(B)
A、"abcd"
B、'\0'
C、'd'
D、不能确定
4,若有语句int *point , a=4和point=&a;下面均代表地址的一组选项是
A、a, point, *&a
B、&*a, &a, *point
C、&point, *point, &a
D、&a, &*point, point
5,若有定义:int a[2][3];则对a数组的第i行,第j列元素值的正确引用是
A、*(*(a+i)+j)
6,
关于两个指针,以下描述正确的是(A)
A、如果同时指向一个变量,则此后就不能再指向其他变量了
B、任何时候都不能相减
C、可在一定条件下进行相等或不等的比较运算
D、可在一定条件下相加
7,设p和q是指向同一个int类型数组不同元素的指针变量且q>p,k也为int类型的变量,则可以执行的语句是
A、p+q
B、k=*(q-p)
C、k=*(p+q)
D、k=*p*(*q)
8,
使用new向系统动态申请内存时,正确的是(B)
A、分配的内存空间不用时系统会自动收回
B、有可能获得空指针
C、总是能获得一个指向所需内存空间首地址的指针
D、分配的内存空间只能使用一个特定的指针访问
9,已有函数max(a,b),为了让函数指针变量p指向函数max正确的赋值方法是(A)
A、p=max
B、*p=max
C、p=max(a,b)
D、*p=max(a,b)
10,若有语句int *p=new int(2);则p的值是(C)
A、2
B、0
C、新分配的内存地址值
D、2或0
11,假设有定义char s[100],*p=s; ,则可以用delete p;来释放p占用的内存空间(错误)
12,假设有定义 char s[]="ABCD",*p=s;则执行cout<
13,若有以下定义float *r=new float[10];,则释放指针所指内存空间的操作语句是▁delete[] r;▁▁。
14,设 void fun(int &x,char *p); int m; char s[]="c++"; 以下调用合法的是(C)
A、fun(&m,&s);
B、fun(&m,s);
C、fun(m,s);
D、fun(m,&s);
15,当说明一个结构体变量时系统分配给它的内存是
A、各成员所需要内存的总和
B、结构中第1个成员所需内存
C、成员中所需内存最大者的存储空间
D、结构中最后一个成员所需内存容量
16,以下对结构体类型变量的定义不正确的是(D)
A,#define STUDENT struct student
STUDENT{int num;float age;}std1;
B、struct student{
int num;float age;}std2;
C、struct{
int num;float age;}std3;
Dstruct{
int num;float age;}student;
student std4;
17,以下对结构体类型变量成员的不正确引用是(B)
struct person{
char name[10];
int age;int sex;}pup[5],*p;
p=pup;
A、cin>>pup[0].name;
B、cin>>&pup[0].name;
C、cin>>(*p).age;
D、cin>>p->sex;
18,结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名 和年龄。则(1)处应填入:old=p->age
struct man{
char name[20];
int age;
}person[]={"li=ming",18,"wang-hua",19,"zhang-ping",20};
int main(){
struct man *p,*q;
int old=0;
p=person;
for(int i = 0; i < 3; i++)
{
if(old
{q=p;
__(1)___};
p++;
}
cout<
......
}
19,写一函数void max(int a[][4],int *p),求出二维数组a[3][4]的每行的最大值,并依次放到p指向的空间中。具体要求如下: (1)初始化一个数组a[3][4],元素值由用户输入。 (2)将其传递给函数,求出a数组每行的最大值。 (3)在主函数中输出a数组及其每行的最大值。
平台会对你编写的代码进行测试:
测试输入:3 4 5 2 2 8 3 4 7 9 6 1 预期输出: 3 4 5 2 2 8 3 4 7 9 6 1 第1行最大值为5 第2行最大值为8 第3行最大值值为9
代码:
#include
#include
using namespace std;
void max(int a[][4], int* x)
{
for (int i = 0; i < 3; i++)
{
x[i] = a[i][0];
for (int j = 0; j < 4; j++)
{
if (a[i][j] >x[i])
{
x[i] = a[i][j];
}
}
}
}
int main()
{
int p[3][4];
int x[3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
cin >> p[i][j];
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
cout<