The block diagonalization (BD) scheme is a low-complexity suboptimal precoding technique for multiuser multiple input-multiple output (MIMO) downlink channels, which completely precancels the multiuser interference. Accordingly, the precoder of each user lies in the null space of other users' channel matrices. In this paper, we propose an iterative algorithm using QR decompositions (QRDs) to compute the precoders. Specifically, to avoid dealing with a large concatenated matrix, we apply the QRD to a sequence of matrices of lower dimensions. One problem of BD schemes is that the number of users that can be simultaneously supported is limited due to zero interference constraints. When the number of users is large, a set of users must be selected, and selection algorithms should be designed to exploit the multiuser diversity gain. Finding the optimal set of users requires an exhaustive search, which has too high computational complexity to be practically useful. Based on the iterative precoder design, this paper proposes a low-complexity user selection algorithm using a greedy method, in which the precoders of selected users are recursively updated after each selection step. The selection metric of the proposed scheduling algorithm relies on the product of the squared row norms of the effective channel matrices, which is related to the eigenvalues by the Hadamard and Schur inequalities. An asymptotic analysis is provided to show that the proposed algorithm can achieve the optimal sum rate scaling of the MIMO broadcast channel. The numerical results show that the proposed algorithm achieves a good trade-off between sum rate performance and computational complexity. When users suffer different channel conditions, providing fairness among users is of critical importance. To address this problem, we also propose two fair scheduling (FS) algorithms, one imposing fairness in the approximation of the data rate, and another directly imposing fairness in the product of the squared row norms of the effective channel matrices.