请读程序:#include<stdio.h>func(int a,int b) { int c; c=a+b; return c;}main(){ int x=6,y=7,

题目
请读程序:includefunc(int a,int b) { int c; c=a+b; return c;}main(){ int x=6,y=7,

请读程序: #include<stdio.h> func(int a,int b) { int c; c=a+b; return c; } main(){ int x=6,y=7,z=8,r, r=func((x-,y++,x+y),z-); printf("%d\n",r); } 上面程序的输出结果是_______。

A.11

B.20

C.21

D.31

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

第1题:

下列程序的运行结果是()。includevoid fun(int *a, int *b){int *k; k=a; a=b; b=k;}ma

下列程序的运行结果是( )。 #include <stdio.h> void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3,b=6, *x=&a, *y=&b; fun(x,y); printf("%d%d",a,b);

A.6 3

B.3 6

C.编译出错

D.0 0


正确答案:B
解析:程序看上去是要实现交换两个指针的值,但是C语言中实参变量和形参变量之间的数据传递是单向的“值传递”,指针变量做函数参数也要遵循这一规则。调用函数不能企图通过改变形参指针的值而使实参指针的值也改变。所以本题的输出结果是36。

第2题:

请读程序:includefunc(int a, int b){int c; c=a+b; return c;}main(){int x=6,y=7,z=

请读程序: #include <stdio.h> func(int a, int b) { int c; c=a+b; return c; } main() { int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d\n",r); 上面程序的输出结果是( )。

A.11

B.20

C.21

D.31


正确答案:C
解析:函数func的作用是返回两个形参的和,第一个形参是x,y分别自减和自增后的和13,第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func的返回值为13+8=21。

第3题:

下列程序的输出结果是()。includeint b=2;int func(int *a){b+=*a;return(b);}main(){i

下列程序的输出结果是( )。 #include <stdio.h> int b=2; int func(int *a) { b+=*a;return(b);} main() { int a=2, res=2; res+=func(&a); printf("%d\n",res); }

A.4

B.6

C.8

D.10


正确答案:B
解析:对于函数体中的语句b+=*a;其中的“*”是指针运算符,*a就是main函数中变量a的值。

第4题:

请读程序:includeint a[]={2,4,6,8,};main(){int i; int *p=a; for( i=0;i<4;i++)a[i]

请读程序: #include <stdio.h> int a[]={2,4,6,8,}; main() { int i; int *p=a; for( i=0;i<4;i++) a[i]=*p++; priatf("%d\n",a[2]); } 上面程序的输出结果是( )。

A.6

B.8

C.4

D.2


正确答案:A
解析:本题考查通过指针引用数组元素。程序通过a[i]=*p++;语句,循环地将2赋给a[0],4赋给a[1],6赋给a[2],8赋给a[3],所以输出结果为6。

第5题:

请读程序: includeint a[]={2,4,6,8};main (){ int i;int * p=a;for(i=0;i<4;i + +)a[

请读程序: # include<stdio.h> int a[]={2,4,6,8}; main ( ) { int i; int * p=a; for(i=0;i<4;i + +)a[i]=* p + +; printf("%d\n”,a[2]); } 上面程序的输出结果是 ( )

A.6

B.8

C.4

D.2


正确答案:A

第6题:

以下程序的输出结果是#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。

第7题:

以下程序的输出结果是include "stdio.h"int *f(int *x,int *y){ if(*x<*y) return x; else return y;}main(){ int a=7,b=8, *p,*q,*r ; p=&a; q=&b; r= f(p,q); printf("%d,%d,%d\n",*p,*q,*r);}


正确答案:7,8,7。
在本题中,程序首先定义了一个函数f,其结构是int *f(int *x,int *y),这个结构说明函数f的返回类型是指针型,函数f的两个变量分别是指针变量x和y,从程序中我们很容易看出,这个函数的作用是返回形参中值较小的指针值(即地址值),返回的是指针型的结果。
在主函数中,首先定义了两个整型变量,分别赋初值7和8,并定义了三个指针型变量,接着将指针变量p和q分别指向变量a和b,然后调用函数f,参数分别为指针变量p和q,很显然,p所指向的值小于q所指向的值,那么返回指针变量p的地址值给指针变量r,由于指针变量P的地址值是变量a存储单元的地址值,也就是说,指针变量r指向变量a,因此,最后程序的输出结果是7,8,7。

第8题:

下列程序的输出结果是()。includeint b=2;int func(int*A){b+=*a;return b;}main(){int

下列程序的输出结果是( )。 #include<stdio.h> int b=2; int func(int*A){ b+=*a;return b;} main() { int a=1,t=2; t+=func(&a); printf("%d\n",t); }

A.4

B.5

C.6

D.8


正确答案:B
解析: 本题考查函数调用时的参数传递。在执行函数func时,由于全局定义了一个变量b,所以在函数体中执行时b=2+1=3,最终t=2+3=5。

第9题:

下列程序的输出结果是()。includevoid fun(int*a,int*B){int *k;k=a;a=b;b=k;}main(){i

下列程序的输出结果是( )。 #include<stdio.h> void fun(int*a,int*B){ int *k; k=a;a=b;b=k;} main() { int a=1,b=2,*x=&a,*y=&b; fun(x,y); printf("%d%d",a,B); }

A.2 1

B.1 2

C.编译出错

D.0 0


正确答案:B