In this paper, we consider a multi-unmanned aerial vehicle (UAV)-assisted Internet-of-things (IoT) sensor system with non-orthogonal multiple access (NOMA) and aim to maximize the sum utility of bit rates of all IoT sensors through the joint optimization of user association, three-dimensional (3-D) UAV placement, decoding ordering, and power allocation. To cope with the formulated mixed-integer non-convex problem, we decompose it into four subproblems relating to each dimension of radio resources under the alternating optimization framework. For the user association or decoding ordering subproblems involving only binary variables, a novel algorithm is proposed by leveraging variable relaxation, fractional programming, and efficient bounding. For the non-convex 3-D UAV placement subproblem, the sequential quadratic programming algorithm is applied to obtain an efficient sub-optimal solution by solving a sequence of quadratic programming problems that are iteratively modified. For the power allocation subproblem, the global-optimal solution is achieved based on auxiliary variables, variable transformation, and convex optimization. Simulation results show that the proposed resource allocation strategy outperforms the state-of-the-art benchmarks that are based on the greedy algorithm, the K-means algorithm, the geometric center-based algorithm, and the deep reinforcement learning, and strikes a good balance between performance and complexity in contrast to those based on the genetic algorithm and the brute-force search.