有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *

题目
有以下程序 include include int fun(int n) {int *

有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。

A.0

B.10

C.20

D.出错

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

现有如下程序段

#include "stdio.h"

int *fun(int *a,int *b)

{int c;

c=*a%*b;

return &c;}

main()

{int a=5,b=19,*c;

c=fun(&a,&b);

printf("%d\n",++*c);}

则程序段执行后的结果为

A.8

B.7

C.6

D.5


正确答案:C

第2题:

以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

A.5 4 3 2 1

B.0 1 2 3 4 5

C.1 2 3 4 5

D.5 4 3 2 1 0


正确答案:B
解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

第3题:

有以下程序:includevoid fun(int* s,int* * d){* *d=*(s+2);}main(){ inta[]={1,2,3,

有以下程序: #include <stdlib.h> void fun(int * s,int * * d) { * *d=*(s+2); } main() { int a[]={1,2,3,4,5},*b; b=(int *)malloc(sizeof(int)); fun(a,&B) ; printf("%d\n",*b+1); } 程序的输出结果是( )

A.2

B.3

C.4

D.5


正确答案:C

第4题:

以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main() { int*p; fun(p); … } int fun(int*p) {int s; p=&s; }

B.main { int *p; fun(&p); … } int fun(int**p) {int s; *p=&s; }

C.#include <stdlib.h> main() { int *p; fun(&p); … } int fun(int**p) {*p=(int*)malloc(2); }

D.#include <stdlib.h> main() { int *p; fun(p); … } int fun(int *p) {p=(int*)malloc(sizeof(int));}


正确答案:C

第5题:

以下程序的输出结果是#include "stdio.h"int *fun(int *a,int *b){ int m; m=*a; m+=*b-3; return(&m);}main(){ int x=21,y=35,*a=&x,*b=&y; int *k; k=fun(a,b); printf("%d\n",*k);}


正确答案:53
本题考查指针函数的使用。题目给出的程序包括两个部分,一个为指针函数fun,一个为主函数main。主函数main部分给出两个整型变量x和y,并给出相应的赋值。main函数的执行结果为输出*k的值,而*k的值即*fun的值。fun函数包括两个整型指针形参*a和*b。通过对*a、*b进行操作,得到结果m,并将m值返回,整个程序的实际输出即为m的值。初始时,m=*a=21。随后令m=m+*b-3,得m=53。整个程序的输出结果即为53。

第6题:

有以下程序#include "stdio.h"void fun(int *a,int *b,int c){ c=*a+*b; }main(){ int a[2]={6,9},c=0; fun(a,a+1,&c); printf("%d\n",c);}程序输出的结果是 A.6 B.9C.0 D.15


正确答案:C
函数的参数通常分为两种:数值变量和指针变量。数值变量被函数调用后,函数内的参数为该数值变量的副本。对副本的一切操作都不会影响到调用函数外原来的参数。指针变量在函数中传递的是对其存放地址的一份副本,该副本存放的地址与原来的指针所存的地址一致。在函数体内修改指针存放的地址对应的值与在函数体外对原参数的修改同样有效,因为原参数也指向该地址。
题目中的程序包括主函数main和fun函数,其中fun函数为void型,不需要fun函数返回值。fun函数的形参为2个整型指针变量和1个整型变量。在main函数中调用fun函数,a为指向数组第一个数的地址,a+1指向数组第二个数的地址,变量c的初始值为0。虽然在fun函数中也有整型变量c,但是该变量的使用范围为fun函数,与main中的变量c没有关系,有c=*a+*b,即c=15,但是main函数对fun函数的参数传递为数值变量,fun函数中变量c数值的改变不会影响main函数中变量c的数值改变,即主函数中变量c的值依然为0。

第7题:

下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

下面程序的运行结果是( )。

include<stdio.h>

main()

{int a=25;

fun(&A);

}

fun(int *x)

{ printf("%d\n",++*x);

}


正确答案:26
26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

第8题:

以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是______。

A.main() { int *p; fun(p); …… } int fun(int *p) {int s; p=&s;}

B.main() { int *p; fun(&p); …… } int fun(int **p) {int s; *p=&s;}

C.# include<stdlib. h> main() {int *p; fun(&p); …… } int fun(int **p) {*p=(int *)malloc(2);}

D.# include<stdlib. h> main() { int *p; fun(p); …… } int fun(int *p) {p=(int *)malloc(sizeof(int));}


正确答案:C
解析:选项A和B中p指向局部变量s的地址,退出函数fun后,该局部变量也被释放,不能使p指向一个整型单元地址;选项D中通过malloc函数分配一个整型地址,但不能被返回到main函数中,因为指针参数指向的地址不能被改变;选项C中,p是指向指针的指针,函数fun改变的是其指向的内容,而不是其地址。

第9题:

以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main( ) { int *p; fun(p); ┆ } int fun(int *p) { int s; p=&s;}

B.main( ) { int *p; fun(&p); ┆ } int fun(int **p) { int s; *p=&s;}

C.#include<stdlib.h> main( ) { int *p; fun(&p); ┆ } int fun(int **p) { *p=(int*)malloc(2);}

D.#include<stdlib.h> main( ) { int *p; fun(p); ┆ } int fun(int *p) { p=(int*)malloc(sizeof(int));}


正确答案:D