第1题:倒序输出
依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。
时间限制:1000
内存限制:65536
输入
一行4个整数a、b、c、d,以空格分隔。 0 < a,b,c,d < 108
输出
一行4个整数d、c、b、a,整数之间以一个空格分隔。
样例输入
1 2 3 4
样例输出
4 3 2 1
下面是一个使用C语言编写的倒序输出的程序的示例代码:
#include <stdio.h>int main() {int a, b, c, d;scanf("%d %d %d %d", &a, &b, &c, &d);printf("%d %d %d %d\n", d, c, b, a);return 0;
}
在上述代码中,我们使用scanf
函数读取输入的四个整数a
、b
、c
、d
,并使用%d
作为格式化字符串。
然后,我们使用printf
函数按倒序输出这四个整数。我们通过在格式化字符串中依次写入变量d
、c
、b
、a
,并使用空格进行分隔,最后加上换行符\n
。
你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置
第2题:平方差计算
给定的两个整数a, b, 他们的平方差结果为a2-b2 ,可以化简为 (a + b)(a-b)。例如5和4的平方差为52-42=(5+4)(5-4)=9。现给定两个整数,求他们的平方差。
时间限制:1000
内存限制:65536
输入
一行两个整数a、b,以空格分隔。 0 < b < a < 104
输出
输出a和b的平方差
样例输入
5 4
样例输出
9
下面是一个使用C语言编写的计算平方差的程序的示例代码:
#include <stdio.h>int main() {int a, b;scanf("%d %d", &a, &b);int square_diff = (a + b) * (a - b);printf("%d\n", square_diff);return 0;
}
在上述代码中,我们使用scanf
函数读取输入的两个整数a
和b
。
然后,我们定义一个变量square_diff
来保存平方差的结果,并计算(a + b) * (a - b)
的值,并将其赋给square_diff
。
最后,我们使用printf
函数输出变量square_diff
的值。
你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。
第3题:最小的数
依次输入3个整数a、b、c,将a、b、c中的最小值输出。
时间限制:1000
内存限制:65536
输入
一行3个整数a、b、c,以空格分隔。 0 < a,b,c < 108
输出
1个整数,即3个整数的最小值。
样例输入
2 3 2
样例输出
2
下面是一个使用C语言编写的找到三个整数中最小值的程序的示例代码:
#include <stdio.h>int findMin(int a, int b, int c) {int min = a;if (b < min) {min = b;}if (c < min) {min = c;}return min;
}int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);int min = findMin(a, b, c);printf("%d\n", min);return 0;
}
在上述代码中,我们首先定义了一个辅助函数findMin
,它接受三个整数参数a
、b
和c
,并返回这三个数中的最小值。在函数内部,我们使用一个变量min
来保存当前的最小值,初始值为a
。然后,我们通过一系列的条件判断语句来更新min
的值,将其更新为b
或c
,如果它们的值更小。最后,我们返回min
作为函数的结果。
在main
函数中,我们使用scanf
函数读取输入的三个整数a
、b
和c
。
然后,我们调用findMin
函数,传入a
、b
和c
作为参数,以获得最小值,并将其赋给变量min
。
最后,我们使用printf
函数输出变量min
的值。
你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。
第4题:计算成绩优秀的人数
现有一个班一门课程考试的分数,请统计其中成绩为优秀的人数。成绩为优秀的要求是分数大于等于85。
时间限制:1000
内存限制:65536
输入
第一行1个整数n,表示分数的个数。(0 < n ≤ 100, ) 第二行n个正整数,表示每一个分数,每个分数小于等于100。
输出
输出一个整数,表示成绩为优秀的人数。
样例输入
10
85 70 99 90 78 55 100 62 88 84
样例输出
5
下面是一个使用C语言编写的统计成绩优秀的人数的程序的示例代码:
#include <stdio.h>int countExcellent(int scores[], int n) {int count = 0;for (int i = 0; i < n; i++) {if (scores[i] >= 85) {count++;}}return count;
}int main() {int n;scanf("%d", &n);int scores[n];for (int i = 0; i < n; i++) {scanf("%d", &scores[i]);}int excellentCount = countExcellent(scores, n);printf("%d\n", excellentCount);return 0;
}
在上述代码中,我们首先定义了一个辅助函数countExcellent
,它接受一个整数数组scores
和数组的长度n
作为参数,并返回成绩优秀的人数。在函数内部,我们定义一个变量count
来保存成绩优秀的人数,初始值为0。然后,我们使用一个循环遍历数组中的每个分数,如果分数大于等于85,则将count
加1。最后,我们返回count
作为函数的结果。
在main
函数中,我们首先使用scanf
函数读取输入的分数的个数n
。
然后,我们定义一个大小为n
的整数数组scores
来保存每个分数。
接下来,我们使用一个循环读取输入的每个分数,并将其存储到数组scores
中。
然后,我们调用countExcellent
函数,传入数组scores
和n
作为参数,以获得成绩优秀的人数,并将其赋给变量excellentCount
。
最后,我们使用printf
函数输出变量excellentCount
的值。
你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。
第5题:开关灯
假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。
请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。
时间限制:1000
内存限制:65536
输入
输入正整数N和M,以单个空格隔开。
输出
顺次输出关闭的灯的编号,其间用逗号间隔。
样例输入
10 10
样例输出
1,4,9
下面是一个使用C语言编写的开关灯问题的程序的示例代码:
#include <stdio.h>
#include <stdbool.h>int main() {int N, M;scanf("%d %d", &N, &M);bool lights[N + 1]; // 使用布尔数组表示灯的状态,下标从1到N// 初始化灯的状态,全部为开启状态for (int i = 1; i <= N; i++) {lights[i] = true;}// 模拟M个人的操作for (int i = 1; i <= M; i++) {for (int j = i; j <= N; j += i) {lights[j] = !lights[j]; // 改变灯的状态}}// 输出关闭的灯的编号bool first = true; // 用于控制逗号的输出for (int i = 1; i <= N; i++) {if (!lights[i]) {if (!first) {printf(",");}printf("%d", i);first = false;}}printf("\n");return 0;
}
在上述代码中,我们首先使用scanf
函数读取输入的灯的数量N
和人的数量M
。
然后,我们定义一个布尔数组lights
来表示灯的状态,数组的下标从1到N,初始时全部为开启状态。
接下来,我们使用两个嵌套的循环模拟M个人的操作。外层循环控制每个人的编号,内层循环根据当前人的编号,改变对应倍数的灯的状态,即将开启的灯关闭,将关闭的灯开启。
完成所有操作后,我们使用一个循环遍历灯的状态数组,输出关闭的灯的编号。使用变量first
来控制逗号的输出,确保正确的格式。
最后,我们使用printf
函数输出换行符。
你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。