单选题有以下程序: #include voidfun(int*p) {  printf("%d",p[5]); } main() {  inta[10]={1,2,3,4,5,6,7,8,9,10};  fun(a[3]); } 程序运行后的输出结果是(  )。A 5B 6C 8D 9

题目
单选题
有以下程序: #include  void fun(int *p) {  printf("%d",p[5]); } main() {  int a[10]={1,2,3,4,5,6,7,8,9,10};  fun(&a[3]); } 程序运行后的输出结果是(  )。
A

5

B

6

C

8

D

9

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

第1题:

有以下程序

#include <stdio.h>

int fun(int x,int y)

{ if(x==y) return (x);

else return((x+y)/2);

}

main()

{ int a=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}

程序运行后的输出结果是

A)3

B)6

C)8

D)12


正确答案:B

第2题:

有以下程序

#include <stdio.h>

int a= 5;

void fun(int b)

{ int a= 10;

a+=b; printf("%d",a);

}

main()

{ int c=20;

fun(c);a+=c;printf("%d\n",a);

}

程序运行后的输出结果是 【 1 1 】 。


正确答案:

第3题:

有以下程序

#include <stdio.h>

#include <stdlib.h>

int fun(int n)

{ int *p;

p=(int*)malloc(sizeof(int));

*p=n; return *p;

}

main()

{ int a;

a = fun(10); printf("%d\n",a+fun(10));

}

程序的运行结果是

A)0

B)10

C)20

D) 出错


正确答案:C

第4题:

有以下程序:includemain(){int a [10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], *q=p+2;

有以下程序: #include <stdio.h> main() { int a [10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], *q=p+2; prinff("%d\n";*p+*q); } 程序运行后的输出结果是( )。

A.16

B.10

C.8

D.6


正确答案:B
解析:由变量的定义可知,指针变量p初始化为&a[3],即*P的值为4;指针变量q初始化为p+2,即&a[3]+2,所以*q的值为6,*p+*q的值为10。

第5题:

有以下程序:

includc<stdio.h>

void fun(int *p)

{printf("%d\n",p[5]);}

main( )

{int a[10]={1,2,3,4,5,6,7,8,9,10};

fun(&a[3]);

}

程序运行后的输出结果是( )。

A.5

B.6

C.8

D.9


正确答案:B

由题可知,fun(&a[3])是将&a[3]作为参数,而fun(int*p)后执行的语句为p[5],由数组a可知输出的为6。

第6题:

有以下程序

#include <stdio.h>

void fun(int p)

{ int d=2;

p=d++; printf("%d",p);}

main()

{ int a=1;

fun(a); printf("%d\n",a);}

程序运行后的输出结果是

A)32

B)12

C)21

D)22


正确答案:C

第7题:

(26)有以下程序

#include <stdio.h>

void fun( int *a,int *b)

{int *c;

c=a;a=b;b=c;

}

main()

{int x=3,y-5,*P=&x,*q=&y;

fun(p,q);printf(“%d,%d,”,*p,*q);

fun(&x,&y);printf(“%d,%d\n”,*p,*q);

}

程序运行后的输出结果是

A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3


正确答案:B

第8题:

有以下程序main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=printf(“%d\n“,*p+*q);}程序运行后的输出结果是()

A、16

B、10

C、8

D、6


参考答案:B

第9题:

有以下程序:include main( ) {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NUL

有以下程序:#include <stdio. h>main( ) { int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d%d\n",*p,*q);程序运行后的输出结果是( )。

A.运行后报错觉

B.6 6

C.6 11

D.5 10


正确答案:A
解析:程序中将指针q赋予NULL,即指向了空地址,而对空地址所对应的内容赋值*q=*(p+5)虽然可以输出结果611,但最后是会报错的,即输出提示Nullpointerassignment。

第10题:

下列程序的运行结果是()。 include voidfun(int*s,int*p) {static int t=3; *p=s[t]; t

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

#include<stdio.h>

voidfun(int*s,int*p)

{ static int t=3;

*p=s[t];

t--;

}

void main()

{ int a[]={2,3,4,5},k;

int x;

for(k=0;k<4;k++)

{ fun(a,&x);

printf("%d,",x);

}

}

A.5,4,3,2

B.2,3,4,5,

C.2,2,2,2,

D.5,5,5,5,


正确答案:A
解析:分析fun函数程序段,可知fun函数要实现的功能是将s中第(t+1)个元素以前的元素逆置赋给数组p。由于fun中函数定义了静态变量t=3,因此,在主函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数组x,最后输出x数组。

更多相关问题