有以下程序#include<stdio.h>main(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

题目
有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。

A.21

B.11

C.6

D.1

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

第1题:

以下程序的输出结果是( )。 include void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main

以下程序的输出结果是( )。 include<stdio.h> void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main() {int i=3,j=5,*p=&i,*q=&j; swap(p,q);printf("%d %d\n",*p,*q); }


正确答案:3 5
3 5 解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为3 5。

第2题:

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

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

第3题:

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

下列程序的输出结果是( )。

#include<stdio.h>

int b=2;

int func(int*A)

{ b+=*a;retum 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。

第4题:

有以下程序 include void fun(int a[],int n) { int i,t; for(i=0;

有以下程序 #include <stdio.h> void fun(int a[],int n) { int i,t; for(i=0;i<n/2;i++) {t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t;} } main() {int k[10]={1,2,3,4,5,6,7,8,9,10},i; fun(k,5); for(i=2;i<8;i++) printf("%d",k[i]); printf("\n"); } 程序的运行结果是______。

A.345678

B.876543

C.1098765

D.321678


正确答案:D
解析:在主函数中,定义了一维数组k,并通过调用fun函数将形参数组a指向实参数组k所在的存储单元,这样,a和 k共用同一存储单元,所以对数组a的元素值的改变相当于对相应数组k的元素值的改变。在fun函数中,通过for循环对数组元素a[0]与a[4]、a[1]与a[3]的值分别作了交换,也即相当于主函数中k[0]与k[4]、k[1]与k[3]的值分别作了交换,此时k中各元素的值为5,4,3,2,1,6,7,8,9,10,故输出k[2]到k[7]的值为321678。

第5题:

有以下程序includevoid f(int *p,int *q);main(){ int m=1,n=2,*r=&m;f(r, &n

有以下程序 #include<stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r, &n); printf("%d,%d",m,n); } void f(int*p,int*q) {p=p+1; *q=*q+1;) 程序运行后的输出结果是______。

A.1,3

B.2,3

C.1,4

D.1,2


正确答案:A
解析:本题主要考查函数实参和形参之间的传递,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传绐形参,而不能由形参传回来给实参。f(r&n)把n的地址传递给q,通过地址传递的函数可以有返回值,因此,n的值为q的返回值3,又因为p是形参变量没有返回值,所以m的值没有改变,因此,选项A是正确的。

第6题:

有以下程序 include void fun(int n, int *p) { int f1,t2; if(n==1 |

有以下程序 #include <stdio.h> void fun(int n, int *p) { int f1,t2; if(n==1 ||n==2) *p=1; else { fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d\n", s ); }

A.2

B.3

C.4

D.5


正确答案:A
解析:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题中的fun()函数直接调用了自身,所以它是一个递归函数。fun()函数中,当形参n为1或2时,让形参p所指内容为1。从这里可以看出形参p的用途是输出一个整数,所以我们不妨记作fun(1)=1、 fun(2)=1。如果是其他情况,那么输出结果*p的内容为f(n)=f(n-1)+f(n-2)。由此可见, fun()函数的作用是求斐波纳契数列第n项的值(斐波纳契数列第1和2项的值为1,以后各项分别为前两项之和:1、1、2、3、5、8、13……)。主函数中通过fun()函数,求第3项值;所以输出结果为2,故应该选择A。

第7题:

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

下列程序的输出结果是( )。 #include<stdio.h> int b=2; int fune(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。

第8题:

下列程序的输出结果是【 】。include void swap(int *a, int *B) { int *t; t=a;a=b;b=t;

下列程序的输出结果是【 】。

include <stdio.h>

void swap(int *a, int *B)

{

int *t;

t=a;a=b;b=t;

}

main()

{

int i=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d %d\n",*p,*q);

}


正确答案:3 5
3 5 解析:本题考查函数中实参和形参的传递,在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但没有返回值,故最终的输出结果为3 5。

第9题:

下列程序的输出结果是()。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。