1、变量的含义:变量是程序中用于存储和表示数据的一种方式。通过给变量赋值,我们可以向计算机提供各种不同类型的数据,在程序执行过程中使用这些数据进行计算和处理。每个变量都有一个名称和一个对应的值,可以通过名称来引用和操作变量的内容。
变量类型:变量可以是不同的类型,如整数(int)、浮点数(float)、字符串(string)等。不同类型的变量在内存中占用的空间大小和存储方式也不同,因此在使用变量之前需要先确定其类型。
变量命名规则:变量名称由字母、数字和下划线组成,但不能以数字开头。变量名称应具有一定的描述性,以便于程序的可读性和维护性。
练习1
大写字母的判断
输入一个字符,判断是否是英文大写字母,即是否是A-Z中的一个。
时间限制:1000
内存限制:65536
输入
一个字符。
输出
如果是英文大写字母,则输出YES,否者输出NO。
样例输入
xxxxxxxxxxK样例输出
xxxxxxxxxxYES
xusing namespace std;int main() {char a;cin >> a;if ((int)a >= 65 && (int)a <= 90) {cout << "YES";} else {cout << "NO";}}有的同学可能会用到if 和 与来判断,但是这个题最好的方法是借助ascll码表,因为大写字母的范围刚好是连续的范围,所以我们只需要把他转换成int类型,来看看他的ascll码int值是否正确。,
变量的赋值:通过赋值语句(如x = 5),我们可以将一个具体的值赋给变量。这样,变量就可以代表这个值,并在程序中使用。
变量的作用域:变量的作用域指的是变量可以被访问的范围。在不同的代码块中定义的变量具有不同的作用域,有些变量只能在特定的代码块中使用。
练习1:
输入一个整数和双精度浮点数,先将浮点数保留2位小数输出,然后输出整数。
时间限制:1000
内存限制:65536
输入
一行两个数,分别为整数N(不超过整型范围),双精度浮点数F,以一个空格分开。
输出
一行两个数,分别为保留2位小数输出的F,以及整数N,以一个空格分开。
xxxxxxxxxx`#include <bits/stdc++.h>``using namespace std;``int main() {``int N;``float F;``cin >> N >> F;``printf("%.2f", F);``cout << " " << N;``return 0;``}`解析:
1、printf("%.2f", F) 来使得他的精度保留小数点后两位。那其他的还有什么?
printf(格式化输出函数)_百度百科 (baidu.com)
2、输出的顺序,输入要求先输入了整数,后输入了小数,而输出刚好相反
3、如何输出空格
练习1
(a/b)*c**的值**
给定整数a、b、c,计算(a / b)*c的值,这里的除法为实数除法。
时间限制:1000
内存限制:65536
输入
一行,三个整数a、b、c,整数间以空格分隔。(1 ≤ a,b,c ≤ 1000)
输出
将计算结果保留6位小数输出。
xxxxxxxxxx1 3 3样例输出
xxxxxxxxxx1.000000解析:
实数的运算贯穿于初中数学的始终,是学好初中代数的基础。熟练掌握实数的运算法则、运算律以及运算顺序并能正确、灵活地运用它们解决计算问题是学好数学的关键。 1、加法法则:互为相反数的两个数相加,和为0;同号相加,取相同的符号,然后把它们的绝对值相加;异号相加,取绝对值较大的符号,然后用较大的绝对值减去较小的绝对值;任何数与0相加,和仍然是该数。 2、减法法则:减去一个数等于加上这个数的相反数。 3、乘法法则:同号相乘得正(如果有偶数个负数为因数,则积为正数),异号相乘得负(如果有奇数个负数为因数,则积为负数);任何数与0相乘,积为0. 4、除法法则:除以一个不为0的数,等于乘以这个数的倒数。 5、混合运算:先算幂,再乘除,后加减;如果有括号,要先算括号里面的。混合运算遵循交换律、结合律。
xxxxxxxxxxusing namespace std;int main() {double a, b, c;cin >> a >> b >> c;while (1) {if (c == 0) {cout << "0不能做除数" << endl;cin >> c;} else {break;}}printf("%.6f", (a / b)*c);return 0;}1、定义正确的类型,为什么不能用int? 想想除法的问题
2、虽然考试不见得会检查while来让0不能做除数,但是我们为了程序严谨,尽量保证输入输出的正确。
练习1
如果一个数能够被7整除或者十进制表示中含有数字7,那么我们称这个数为幻数,比如17,21,73是幻数,而6,59不是。
对于给定的N,求出1~N中所有幻数的和。
时间限制:1000
内存限制:65536
输入
一个整数N(1 < N < 10000)。
输出
一个整数,表示1~N中所有幻数的和。
样例输入
xxxxxxxxxx14样例输出
xxxxxxxxxx21xxxxxxxxxxint findHUANSHU_HE(int n) {int count = 0;int sum = 0;for (int num = 0; num <= n; num++) {int ones = num % 10; // 个位int tens = (num / 10) % 10; // 十位int hundreds = (num / 100) % 10; // 百位if (ones == 7 || tens == 7 || hundreds == 7 || (num != 0 && num % 7 == 0)) {cout << num << "是一个幻数;" << endl;count++;sum += num;};}return sum;}int main() {int n;while (cin >> n) {cout << "输入一个整数 n:";if (n < 0 || n > 10000) {cout << "请输入一个1——10000的整数 n:";break;}int HUANSHU_HE = findHUANSHU_HE(n);std::cout << "1- " << n << " 中的所有幻数合是:" << HUANSHU_HE << std::endl;}}练习2:比N小的最大素数
解析:
xxxxxxxxxxusing namespace std;// 判断一个数是否为素数bool isPrime(int num) {if (num < 2) {return false;}//当判断一个数 num 是否为素数时,我们只需要检查它是否能被小于等于它平方根的数整除即可。这是因为如果存在一个大于它平方根的因子,那么一定也存在一个小于它平方根的因子。//假设存在一个大于 num 平方根的因子 x,那么必然存在另一个因子 y,使得 x* y = num。如果 x 和 y 都大于 num 的平方根,那么它们的乘积 xy 就会大于 num,与 xy = num 矛盾。因此,如果 num 不是素数,那么它一定存在一个小于等于for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}// 寻找比 n 小的最大素数int findLargestPrime(int n) {for (int i = n - 1; i >= 2; i--) {if (isPrime(i)) {return i;}}return -1; // 如果找不到素数,返回 -1}int main_binxiao() {while (true){int n;cout << "输入一个整数 n:";cin >> n;if (n==-1){break;}int largestPrime = findLargestPrime(n);if (largestPrime != -1) {std::cout << "比 " << n << " 小的最大素数是:" << largestPrime << std::endl;}else {std::cout << "找不到比 " << n << " 小的素数。" << std::endl;}}return 0;}
练习3:开灯翻转
#include
using namespace std; int main() { int N, M; cout << "请输入假设有多少展灯 (N): "; cin >> N; cout << "请输入多少个人 (M): "; cin >> M;
xxxxxxxxxxbool Deng[N];//给灯全部关掉for (int i = 0; i < N; i++) {Deng[i] = 0;}for (int i = 0; i < N; i++) {cout << "第" << i << "个值:" << Deng[i];}cout << endl;//for (int i = 2; i <= M; i++) {//循环遍历所有当前灯的倍数的数for (int j = 1; j <= N; j++) {//如果他的倍数的这个值小于总数,也就是有这个灯if (i * j <= N) {Deng[(i * j) - 1] = !(Deng[(i * j) - 1]);}}cout << "-----------第" << (i) << "个人行动后:-------------" << endl;//遍历出所有灯的状态for (int i = 0; i < N; i++) {cout << "第" << (i + 1) << "个灯是" << ((Deng[i]) ? "开" : "关") << "的" << endl;// if (Deng[i] == 0) {// cout << "第" << (i + 1) << "个灯是灭的" << endl;// }}}// //遍历出所有灯的状态 // for (int i = 0; i < N; i++) { // cout << "第" << (i + 1) << "个灯是" << (Deng[i] == 0 ? "关" : "开") << "的" << endl; //// if (Deng[i] == 0) { //// cout << "第" << (i + 1) << "个灯是灭的" << endl; //// } // }
xxxxxxxxxxreturn 0;}
xxxxxxxxxx答案://1、输出//cout << "HelloWorld";//第二种输出方式,c语言里的输出//printf("HelloWorld");
样例输入 12,4,5 输出 4
样例输入 12 4 5 输出 5 4 12
样例输入 12345678,-1,20 输出
//1、"" 双引号里面的换行,用\n //2、printf里面的%d表示占个位置,我随后就到 //3、想要对齐,不够长的位置补足空格可以用%+数字+d printf("%5d\n%5d\n%5d", c, b, a);
样例输入 12345678,-1,20 输出
样例输出
xxxxxxxxxx*********
样例输入:1 2
样例输出:3
样例输入:2,3,5
输出:25
样例输入:1,1,3
输出:0
输入两个数,要求给a除以b的商,和余数
样例输入:10 3
输出:3 1
能够使用上述方法编写指定功能的正确完整的程序。
能够使用上述方法编写指定功能的正确完整的程序。
能够使用上述方法编写指定功能的正确完整的程序。
xxxxxxxxxx本级会涉及但不限于随机算法、近似算法、神经网络算法、深度学习算法、强化学习算法,以及算法复杂性分析等更高级或新兴的算法设计及分析方法。