已知“float*p;p=newfloat[2];”,若要释放p所指向的堆中的这些字节,下列语句正确的是()。
第1题:
设有如下定义:
struck sk
{ int a;
float b;
} data;
int *p;
若要使P指向data中的a域,正确的赋值语句是
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.*p=data.a;
第2题:
下列对变量的引用中,错误的是( )。
A.int a;int &p=a;
B.char a;char &p=a;
C.int a;int &p;p=a;
D.float a;float &p=a;
第3题:
下列对变量的引用中,错误的是
A.int a; int &p = a;
B.char a; char &p = a;
C.iht a; int &p; p =a;
D.float a; float &p=a;
第4题:
设有如下定义:
struct sk
{ int n;
float x; } data, *p;
若要使p指向data中的n域,正确的赋值语句是
A.p=&data.n;
B.*p=data.n;
C.p=(struct sk*)&data.n;
D.p=(struct sk*)data.n;
第5题:
l设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。
A.float*p=&x;
B.int*p-(float)x;
C.float p=&x;
D.float*p=1024;
第6题:
有以下程序 #include<stdio.h> void fun(float * p1,int n1,float,*p2,int n2,float * s) { int i; s=(float *)calloc(1,sizeof(float)); *s=0; for(i=0;i<n1;i++) *s+=*p1++; for(i=0;i<n2;i++) *s+=*p2++; } main() { float a[2]={1.1,2.2},b[3]={10.0,20.0,30.0),*s=a; fun(a,2,b,3,s); printf("%f\n",*s); } 上面程序的输出结果是( )
A.60
B.3.3
C.63.3
D.1.1
第7题:
设已有定义:float x;,则以下对指针变量P进行定义且赋初值的语句中正确的是( )。
A.int*p=(float)x;
B.float*p=&x;
C.float p=&x;
D.float=1024;
第8题:
下列语句中正确的是( )。
A.int * p;i=8; p=&i;
B.int * p,i; p=&i;
C.float * p;int i;p=&(float)i;
D.float * p;cout<<* p;
第9题:
已知p→(q∨r)为真,若要推出~p,必须加上前提()。
第10题:
请读程序: #include
第11题:
free(p);
free p;
free(*p);
free[p];
第12题:
2
4
8
不确定
第13题:
已知有结构体: struct sk { int a; float b; }data,*p; 若有p=&data,则对data的成员a的正确引用是( )。
A.(*p).data.a
B.(*p).a;
C.p->data.a
D.p.data.a
第14题:
设有如下定义: struct sk { int a;float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是( )。
A.p=&a;
B.p=data.a;
C.p=&data.a;
D.p=a;
第15题:
有以下程序: float f1(float n) { return n*n; } float f2(float n) { return 2*n; } main() {float(*p1)(float),(*p2)(float),(*t)(float),y1,y2; p1:f1; p2=f2; y1=p2(p1(2.0)); t=p1; p1=p2; p2=t; y2=p2(p1(2.0)); printf("%3.0f,%3.0f\n",y1,y2); } 程序运行后的输出结果是 ______。
A.8, 16
B.8, 8
C.16, 16
D.4, 8
第16题:
有以下程序 float fl(float n) { return n*n; } float f2(float n) { return 2*n;} main() {float(*p1)(float),(*p2)(float),(*t)(float),y1,Y2; p1=f1; p2=f2; y1=p2(p1(2.O)); t=p1; p1=p2; p2=t; y2=p2(pl(2.0)); printf("%3.0f,%3,Of\n",y1,y2); } 程序运行后的输出结果是
A.8,16
B.8,8
C.16,16
D.4,8
第17题:
以下4个程序中,不能实现两个实参值进行交换的是 ( )。
A.void swap (float *p, float *q) { float *t ,a; t = &a; t = p; *p = *q; *q = *t; } void main () { float x = 8.0;y = 9.0; swap (&x, &y); cout<<x<<", "<<y<<
B.void swap (float *p, float *q) { float a; a = *p; *p = *q; *q = a; } void main() { float x = 8.0;y = 9.0; swap (&x, &y); cout<<x<<", "<<y<<end1;
C.void swap (float *p, float *q) { float x; x = *p; *p = *q; *q = x; } void main() { float a,b.; *a = 8.0;*b = 9.0; swap (a, b) ;
D.void swap (float &p, float &q) { float a; a = p; p = q; q = a; } void main() { float a = 8.0,b = 9.0; swap (a,b); cout<<x<<", "<<y<<
第18题:
以下程序的输出结果是 void fun(float*p1,float*p2,float*s) { s=(float*)calloc(1,sizeof(float)); *s=*p1+*p2++;} main() { float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s); printf("%5.2f\n",*s);}
A.11.1
B.12
C.21.1
D.1.1
第19题:
有以下程序:#include <stdio.h>float f1 (float n ){ return n*n;}float f2 ( float n){ return 2 * n;}main( ){ float ( * p1)(float),( * p2)(float),(*t)(float) ,y1,y2; p1 = f1;p2 = f2; y1 = p2(p1(2.0) ); t =p1;p1 = p2;p2 =t; y2=p2(p1(2.0)); prinff("% 3.0f, %3.Of\n" ,y1,y2);}程序运行后的输出结果是( )。
A.8,16
B.8,8
C.16,16
D.4,8
第20题:
已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为()。
Afree(p);
Bfree p;
Cfree(*p);
Dfree[p];
第21题:
已知“float*p;p=newfloat[2];”,若分配成功,则指针p在堆中获得的字节数为()。
第22题:
请读程序:#include
第23题:
int*p=newa[10]
int*p=newfloat[10]
int*p=newint[10]
int*p=newint[5]={1,2,3,4,5}