更多"在函数调用过程中,如果函数funA调用了函数funB,函数funB又调"的相关试题:
[单项选择]在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则
A. 称为函数的直接递归调用
B. 称为函数的间接递归调用
C. 称为函数的循环调用
D. C语言中不允许这样的递归调用
[单项选择]程序运行过程中,把函数(或过程)调用与相应调用所需要的代码相结合的过程称为()。
A. 语义分析
B. 代码连续
C. 静态绑定
D. 动态绑定
[单项选择]程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为()。
A. 语义分析
B. 代码连接
C. 静态绑定
D. 动态绑定
[填空题]在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是 【17】 函数。
[填空题]在对文件进行操作的过程中,若要求文件的位置指针重新指向文件的开头,应当调用的函数是 【16】 函数。
[单项选择]一个C++程序由函数A( ),B( ),C( )和函数P( )构成,在函数A( )中分别调用了函数B( )和函数C( ),在函数B( )中调用了函数A( ),且在函数P( )中也调用了函数A( ),则可以说
A. 函数B()中调用的函数A()是函数A()的间接递归调用
B. 函数A()被函数B()调用是直接递归调用
C. 函数P()直接递归调用了函数A()
D. 函数P()中调用的函数A()是函数P()的嵌套
[填空题]定义在类内部的函数被类默认为 【12】 ,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。
[填空题]定义在类内部的函数被类默认为______,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。
[填空题]给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
[试题源程序]
#include<stdio.h>
#include<stdlib.h>
#define N 8
typedef struct list
int data;
struct list *next;
SLIST;
void fun(SLIST *p)
SLIST *t, *s;
t=P->next;
s=p;
while(t->next!=NULL)
s=t;
/*********found**********/
t=t-> (1) ;
/**********found**********/
printf(”%d”, (2) );
s->next=NULL:
/**********found**********/
free( (3) );
SLIST *creatlist(int *a)
SLIST *h, *p, *q;
int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i<N; i++)
q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i];
p->next=q;
p=q;
P->next=0;
return h;
void outlist(SLIST *h)
SLIST *p;
p=h->next;
if(
[单项选择]虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序:
#include <iostream>
using namespace std;
class Base
public:
virtual void f( ) cout<<"f0+";
void g( ) cout<<"g0+";
;
class Derived: public Base
public:
void f( ) cout<<"f+";
void g( ) cout<<"g+";
;
int main( )
Derived d;
Base *p=&d;
p->f( ); p->g( );
return 0;
运行时输出的结果是( )。
A. f+g+
B. f0+g+
C. f+g0+
D. f0+g0+
[单项选择]若调用一个函数,且此函数中没有return语句,则正确的说法是该函数
A. 没有返回值
B. 返回若干个系统默认值
C. 有返回值,但返回一个不确定的值
D. 能返回一个用户所希望的函数值