23.以下程序的输出结果是_________。
#include <stdio.h>
void fun(int x)
{
if(x/2>0)
fun(x/2);
printf("%d ",x);
}
main()
{
fun(3);
printf("\n");
} 正确答案:1 3
24.以下定义语句中正确的是 :B
A)int a=b=0 ; B)char a=65+1,b='b'; C)float a=1,*b=&a,*c=&b ; D)double a=0.0;b=1.1;
25.设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是:D
A)p=1; B)*q=2; C)q=p; D)*p=5;
26.有以下程序
#include <stdio.h>
main()
{
int n,*p=NULL;
*p=&n;
printf("Input n: "); scanf("%d",&p);
printf("output n: "); printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是:A
A)int n,*p=NULL; B)*p=&n;C)scanf("%d",&p)D)printf("%d\n",p);
27.以下程序的功能是:利用指针指向3个整型变量,并通过指针运算找出3个数中的最大值,输出到屏幕上,请填空:
main()
{
int x,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;
py=&y;
pz=&z;
pmax=&max;
__________________
if(*pmax<*py)
*pmax=*py;
if(*pmax<*pz)
*pmax=*pz;
printf("max=%d\n",max);
} 正确答案:*pmax=x;
28.void f( int y, int *x)
{ y=y+*x; *x=*x+y;}
main( )
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出的结果是____。 正确答案:8 4
29.以下程序的输出结果是__________。
#include
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
30.有以下程序段:
Int j; float y; char name[50];
Scanf(“%2d%f%s”,&j,&y,name);
当执行上述程序段,从键盘上输入55566 777abc后,y的值为:答案: 7777.0
31.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是:D
A. a[2][!1] B.a[2][3] C. a[0][3] D. a[1>2][!1]
只知道B C是错的