正确答案:
题目:MPLS更适合运营商部署,而不适合企业用户自己建设。()
解析:答案:正确
查看原题 点击获取本科目所有试题
举一反三的答案和解析:
[单选题]以下C程序段的输出结果是(30)。 include void prt(int*x,Int*y,int*z){ printf(
以下C程序段的输出结果是(30)。 #includestdio.h> void prt(int*x,Int*y,int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++)); } void main(){ int a=10,b=40,c=20; Prt(&a,&b,&c); Prt(&a,&b,&c); }
11,41,20 12,42,20
解析:解析:C语言不但可以通过传值的方式进行函数调用,还可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是本试题主要说明的问题。其次,应注意表达式*(z++)的值是*z,其后的z++是使指针z指向下一个整数,在程序中无实际作用。函数调用时,由于x、y和z分别指向a、b和c,因此,*x、*y和*z就是a、b和c。第1次调用函数时,*x=a=10,*y=b=40,*z=c=20,输出结果为11,41,20。同时注意到运算符。和++的运算优先级别相同,遵循右结合性。则*z++与*(z++)作用相同,但(*z)++含义不同。(*z)++的含义是c变量值的自增。因此第2次调用函数时,输出结果为12,42,20。
[单选题]假设有以下C语言定义语句,表达式(31)不能正确引用值为7的数组元素。 int y[4][4]={1,2,3,4,5,6,7,8,9,10},*py1=y[1],(*py2)[4]=y;
*(y+1)+2
解析:解析:在C语言中,二维数组名y及y+l均表示行指针,在它们前面加一个*就是*y和*(y+1),它们就成为列指针。而一维数组名y[1]则为列指针,y[1]+1中的“1”代表一个元素所占的字节数。列指针前面加上&,则变为行指针。例如,&(*(y+1))、&y[1]。对于选项A的py1[2],无条件等价于*(py1+2)=(y[1]+2)=*(*(y+1)+2)。式中py1、y[1]为列指针,而y、py2为行指针。选项B的*(y+1)+2,是列指针的表示形式,无法得到所指单元中的值,即不能正确引用值为7的数组元素。其中,y+l为行指针,*(y+1)为列指针,*(y+1)+2则为指向1行2列的列指针。选项C的,(y[1]+2)无条件等价于*(*(y+1)+2),指向第2行的第3个元素。相当于列指针“+2”,在横向上的移动。选项D的py2[1][2]无条件等价于*(py2[1]+2=*(*(py2+1)+2)。py2为行指针,py2[1]为列指针,py2[1][2]则为列指针指向的1行2列的元素。