资源描述:
《论诉讼中的客观事实与法律事实 法学毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第八章指针1.以下定义语句中正确的是A)inta=b=0;B)charA=65+1,b='b';C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;参考答案:B【解析】A选项语句中b变量还没有定义不能直接用于给a变量赋值。C选项语句中*b、*c表示的是一个实型变量的地址,不能再将&b赋值给指针型变量c。D选项语句中a=0.0后面应该为逗号,不能是分号。2.有以下程序#includevoidf(int*p,int*q);main(){intm=1,n=2,*r=&m
2、;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=p+1;*q=*q+1;}程序运行后的输出结果是A)2,3B)1,3C)1,4D)1,2参考答案:B【解析】在f(int*p,int*q)函数中,执行p=p+1是将p所对应的地址加1,而*q=*q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。3.以下叙述中正确的是A)如果p是指针变量,则&p是不合法的表达式B)如果p是指针变量,则*p表示变量p的地址值C)
3、在对指针进行加、减算术运算时,数字1表示1个存储单元的长度D)如果p是指针变量,则*p+1和*(p+1)的效果是一样的参考答案:C【解析】B选项中,如果p是指针变量,则*p表示变量p所指向的地址的值;A选项中,如果p是指针变量,则&p表示变量p的地址;D选项中,如果p是指针变量,*p+1表示将p所指的值加上1,而*(p+1)表示的是先将指针右移一位再取所指向变量的值。因此C选项正确。4.以下叙述中正确的是A)基类型不同的指针变量可以相互混用B)函数的类型不能是指针类型C)函数的形参类型不能是指针类型D)设有指针变量
4、为double*p,则p+1将指针p移动8个字节参考答案:D【解析】B选项中,所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数;C选项中,函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型;A选项中,虽然不同基类型的指针变量占用字节数是相同的,但是不能混用。因此D选项正确。5.如果定义floata[10],x;则以下叙述中正确的是A)语句a=&x;是非法的B)表达式a+1是非法的9第八章指针C)三个表达式a[1]、*(a+1)、*&
5、a[1]表示的意思完全不同D)表达式*&a[1]是非法的,应该写成*(&(a[1]))参考答案:A【解析】B选项中,表达式a+1不是非法的;C选项中,*(a+1)即指a[1];D选项中,*&a[1]不是非法的。因此A选项正确。6.以下叙述中错误的是( )。A)可以给指针变量赋一个整数作为地址值B)函数可以返回地址值C)改变函数形参的值,不会改变对应实参的值D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL参考答案:A【解析】不能将一个整数直接赋给指针变量作为地址,所以A)是错误的。函数的返回值
6、可以是地址,即指针。函数调用中形参值的变化不会传递给实参。7.设已有定义:floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( )。A)int*p=(float)x;B)float*p=&x;C)floatp=&x;D)float*p=1024;参考答案:B【解析】指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即&x赋给指针变量,所以选择B)。8.若有定义语句:doublea,*p=&a;以下叙述中错误的是( )。A)定义语句中的*号是一个间址运算符B)定义
7、语句中的*号是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p参考答案:A【解析】在变量定义doublea,*p=&a;中,*号是一个指针运算符,而非间址运算符,所以A)错误。9.有以下程序#includemain(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d",c);}执行后的输出结果是A)1B)2C)3D)4参考答案:C【解析】该程序
8、中int*p1=&a,*p2=&b,*p=&c;指定义三个指针变量,并赋值,即使p1指向a;p2指向b;p指向c。*p=*p1*(*p2);该条语句是给p所指的存储单元c赋值,就是p1所指的存储单元的值,即a的值,与p2所指的存储单元b的值相乘,也就是c=a*b,等价于c=1*3=3;因此C选项正确。10.以下叙述中正确的是A)int*p1;int**p2;