文档详情

【C语言指针模拟测试题答案】.doc

发布:2017-06-08约5.43千字共7页下载文档
文本预览下载声明
C语言指针部分模拟测试题 选择题 语句int a=10,*point=a;point B. a C. point D. *point 若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 语句char str[]=”visual C++”;char *p=str;则p的值为 B A. ”visual C++” B.str的首地址 C. \n D.”v” 设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为A T,Father,F B.Teaher,F,Father C. Teacher,Father,Father D.语法错,无输出 下列说明或赋值语句,不正确的是 C      A. char *p;p=”Visual C++”; B. char p1[12]={‘v’,’i’,’s’,’u’}; C. char p2[12];p2=”Visual C++” D. char p3[]=”Visual”; 现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 B     p+=3*4+3 B.p+=2*4+3 C. p+=(3*4+3)*sizeof(int) D.p+=(2*4+3)*sizeof(int) 语句int i,*p1,**p2;以下语句i; B. p2=i; C.p2=p1; D.i=’\0x23’; 如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能把结点b连接到结点a之后的语句是 B a b data next data next a.next=q; B. p.next=b; C. p-next=b; D.(*p).next=q; 下面正确的语句是 A A. int a[3][4],(*p)[4]; p=a; B. int a[3][4],*p[4]; p=a; C. int a[3][4],*p; p=a; D. int a[3][4],**p;*p=a; 以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的fp=fopen(a:\\aa.dat,ab); B. fp=fopen(a:\\aa.dat,a); C. fp=fopen(a:\\aa.dat,r+); D. fp=fopen(a:\\aa.dat,w); 设有函数定义:int f1(void){return 100,150;}调用函数f1()时, B A.函数返回值100 B. 函数返回值150 C. 函数返回二个值100和150 D. 语句return 100,150;语法错. 数组作为函数的形参时,把数组名作为实参,传递给函数的是 A 该数组的首地址 B. 该数组的元素个数 C. 该数组中的各元素值 D. 该数组的大小 执行以下语句序列:则 A enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //A c1=Mon; //B printf(“%d”,c1); A.输出1 B.输出2 C.输出0 D. B行语法错 执行以下语句序列:则 C char *p1=”Speaking”; //A char *p2=”English”; //B char *p3=”a piece of cake”; //C char *str[]={p1,p2,p3}; //D printf(“%c”,*(str[0]+1)); A.输出English B.输出Speaking C.输出p D. D行语法错 二、填空题 1.(2*2分=4分)下面程序的运行结果为 16 、 2 void main( ) { static int a[3][2]={{12},{14,16},{1,2}}; int *p=a[1]; printf(“%d\n”,*(p+1)); printf(“%d\n”,*(p+3)); } 2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为 11 , *(*(p+1)+1)的值为
显示全部
相似文档