有以下程序
#include
main()
{ char str[][20]={"Hello","Beijing"},*p=str;
printf("%d\n",strlen(p+20));
}
程序运行后的输出结果是( )
A.0
B.5
C.7
D.20已定义以下函数
fun(char *p2, char *p1)
{ while((*p2=*p1)!='\0'){ p1++;p2++; } }
函数的功能是( )
A.将p1所指字符串复制到p2所指内存空间
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有'\0'有以下程序
struct s
{ int x,y; } data[2]={10,100,20,200};
main()
{ struct s *p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是( )
A.10
B.11
C.20
D.21有以下程序段
main()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是( )
A.变量a的地址
B.变量b中的值
C.变量a中的值
D.变量b的地址若有定义:int *p[3];,则以下叙述中正确的是( )
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素已定义以下函数
fun(int *p)
{ return *p; }
该函数的返回值是( )
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值有以下程序
void fun(char *a, char *b)
{ a=b; (*a)++; }
main()
{ char c1='A',c2='a',*p1,*p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf("%c%c\n",c1,c2);
}
程序运行后的输出结果是( )
A.Ab
B.aa
C.Aa
D.Bb若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是( )
A.int *i=NULL;
B. float *f=NULL;
scanf("%d",i); *f=10.5;
C.char t='m', *c=&t;
D.long *L;
*c=&t; L='\0';有以下函数
int aaa(char *s)
{
char *t=s;
while(*t++);
t--;
return(t-s);
}
以下关于aaa函数的功能的叙述正确的是( )。
A.求字符串s的长度
B.比较两个串的大小
C.将串s复制到串t
D.求字符串s所占字节数以下叙述中错误的是( )。
A.改变函数形参的值,不会改变对应的实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含头文件stdih时,可以给指针变量赋NULL