设数组a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](0<i<n,0<j<m)的存储位置相对于数组空间首地址的偏移量为【 】。
A、j*m+i
B、i*m+j
C、j*n+i
D、i*n+j
设数组a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用1个存储单元,则数组元素a[i,j](0<i<n,0<j<m)的存储位置相对于数组空间首地址的偏移量为【 】。
A、j*m+i
B、i*m+j
C、j*n+i
D、i*n+j
B
【解析】
对于元素a[i,j],按行存储方式下,其前面共有i行(行下标为0至行下标为i-1)、每行m个元素,合计i*m个元素。数组a中行下标为i的元素有a[i,0]、a[i,1]、…、a[i,j-1]、a[i,j]、…、a[i,m-1],显然在该序列中,a[i,j]之前有j个元素,因此,数组元素a[i,j](0<i<n,0<j<m)之前共有i*m+j个元素,由于每个占用1个存储单元,故该元素的存储位置相对于数组空间首地址的偏移量为i*m+j。
若程序中定义了三个函数f1、f2和f3,并且函数f1执行时会调用f2、函数f2执行时会调用f3,那么正常情况下,【 】。
对布尔表达式进行短路求值是指在确定表达式的值时,没有进行所有操作数的计算。对于布尔表达式“a or((b>c)and d)”,当【 】时可进行短路计算。
一个变量通常具有名字、地址、值、类型、生存期、作用域等属性,其中,变量地址也称为变量的左值(1-value),变量的值也称为其右值(r-value)。当以引用调用方式实现函数调用时,【 】。
编译和解释是实现高级程序设计语言的两种方式,其区别主要在于【 】。
以编译方式翻译C/C++源程序的过程中,语句结构的合法性分析是【 】的任务。
设N和B都是(无符号)整形变量,下面C代码段的功能是计算变量B的二进制表示中【 】。N=0;while(B){ B=B&(B-1);//“&”是按位“与”运算 N++;}