用C语言写一个在二十道选择题中抽取十道选择题的代码
时间: 2023-05-30 19:01:12 浏览: 47
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 定义二十道选择题
char *questions[20] = {
"1 + 1 = ?\nA. 1\nB. 2\nC. 3\nD. 4\n",
"2 + 2 = ?\nA. 2\nB. 3\nC. 4\nD. 5\n",
"3 + 3 = ?\nA. 4\nB. 5\nC. 6\nD. 7\n",
"4 + 4 = ?\nA. 6\nB. 7\nC. 8\nD. 9\n",
"5 + 5 = ?\nA. 8\nB. 9\nC. 10\nD. 11\n",
"6 + 6 = ?\nA. 10\nB. 11\nC. 12\nD. 13\n",
"7 + 7 = ?\nA. 12\nB. 13\nC. 14\nD. 15\n",
"8 + 8 = ?\nA. 14\nB. 15\nC. 16\nD. 17\n",
"9 + 9 = ?\nA. 16\nB. 17\nC. 18\nD. 19\n",
"10 + 10 = ?\nA. 18\nB. 19\nC. 20\nD. 21\n",
"11 + 11 = ?\nA. 20\nB. 21\nC. 22\nD. 23\n",
"12 + 12 = ?\nA. 22\nB. 23\nC. 24\nD. 25\n",
"13 + 13 = ?\nA. 24\nB. 25\nC. 26\nD. 27\n",
"14 + 14 = ?\nA. 26\nB. 27\nC. 28\nD. 29\n",
"15 + 15 = ?\nA. 28\nB. 29\nC. 30\nD. 31\n",
"16 + 16 = ?\nA. 30\nB. 31\nC. 32\nD. 33\n",
"17 + 17 = ?\nA. 32\nB. 33\nC. 34\nD. 35\n",
"18 + 18 = ?\nA. 34\nB. 35\nC. 36\nD. 37\n",
"19 + 19 = ?\nA. 36\nB. 37\nC. 38\nD. 39\n",
"20 + 20 = ?\nA. 38\nB. 39\nC. 40\nD. 41\n"
};
// 随机抽取10道选择题
int selected[10]; // 存储已选的选择题下标
srand((unsigned)time(NULL)); // 设置随机数种子
for (int i = 0; i < 10; i++) {
int index;
do {
index = rand() % 20; // 随机生成一个选择题下标
} while (selected[index]); // 如果已选过,则重新生成
selected[index] = 1; // 标记已选
printf("%d. %s", i+1, questions[index]); // 输出选择题
}
return 0;
}