初赛例题

初赛例题

这一篇文章,是我将例题做完之后接着整理的一些知识,时间和人力原因,就不将每一个题列出来了

计算机

1.图灵是英国数学家,提出了理想计算机模型
2.第一个给计算机编程的是Ada Lovelace,中文名,阿大安来丝
3.摩尔定律,每隔18个月会是性能增加一倍
4.三基色是红绿蓝,三原色红黄蓝
5.绘图仪是输出设备,扫描仪是输入设备,触摸屏既是输入设备又是输出设备
6.速度从快到慢,寄存器 -卡车 -内存器 -外存
7.计算彩色图像的时候,需要用总面积乘以32,因为默认的就是32位
8.断电之后,RAM和卡车都会清空数据
9.任何系统都是固化在
10.Linux是一种操作系统
11.汇编语言是一种简单的编程语言,CPU不能直接识别,需要转化成机器语言
12.每个汉字的简繁不一,所占空间都是一样的
13.每个汉字占两个字节,每个字母占一个字节
14.防火墙防止网络攻击
15.计算机的病毒会造成软件和数据的损坏
16.0的原码有两种,反码有两种,补码有一种
17.连接上主板的都是总线,控制线是地址
18.问补码最大的时候,列原码范围即可
19.在声音中是和内存一样的,只不过是注意双音道和hz每秒
20.B/S表示浏览器,C/S表示客户端
21.电子邮箱地址,账号,分隔符,邮箱接收器
22.对于多种编程语言中:
机器语言是计算机能够直接识别的语言,速度快,但是记忆复杂书写困难
汇编语言用记忆符号来编写程序,用符号代替指令叫做汇编语言,汇编语言需要编译成目标程序才能执行,属于低级语言
高级语言就是我们使用的python和c++等,有两种方式,编译和解释
编译语言还是需要编写完成后用编译器进行编译一遍
解释程序不需要编译,便扫描边解释,解释一条执行一条

硬件操作需要用汇编语言,高级语言可移植,工作量小,容易编写
22.进制转换,将十进制转化成别的进制,整数就不断短除,小数就不断乘;将别的进制转十进制,按位求和,小数点后面的按负数
23.计算机进行数据存储的基本单位是字节,byte
24.原码反码补码很难理解其表示范围
有符号,最高位的符号是符号分正负;无符号,全部都是1
原码0000 0000~1111 1111(无符号)0 255
1111 1111~0111 1111(有符号)-127 127
反码,不存在符号不符号,-127 127
补码,不存在符号不符号,-128 127
Internet服务,电子邮件,远程登陆,文件传输,信息服务

算法

1.序列有序的时候,时间反而慢的排序,快速排序,他退化成了冒泡
2.二分时间是O(log n)

数据结构

1.链表的地址可以连续也可以不连续
2.判断栈表达式 是否成立的时候,需要看这个元素出栈说明那写元素在栈里面,来依次判断
3.计算子串的公式是(n×(n+1))/2 +1
4.n个点的形状不同的二叉树:C(2n,n)/(n+1)
5.链表不能随机访问元素,只能从头到尾一条链的查找

问题求解

1.在一些二叉树的公式中,如果转化成了一个k叉树,可以将二叉公式中的2转化成k的公式,n0=(k-1)nk+1
2.对于解答树,也会有解答来表示多个方案

阅读程序

1.对于一些很长很恶心的阅读程序,要大胆的去推算,不要盲目的去模拟,不然既浪费时间还考验耐心,一定要将代码分块处理分块理解
2.对于很大的递推,一定要学会学会找规律,从小的数中一次一次总结规律,找到递推公式,从而解决问题
3.学会理解这个程序是干什么的
4.当数据很小的时候,直接模拟就行

### 全国青少年信息素养大赛初赛 C++ 例题 #### 题目一:最大公约数与最小公倍数 求两个正整数的最大公约数和最小公倍数是全国青少年信息素养大赛初赛的经典题目之一。可以通过欧几里得算法实现这一功能。 ```cpp #include <iostream> using namespace std; // 欧几里得算法求最大公约数 int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return a; } // 最小公倍数计算函数 int lcm(int a, int b) { return a / gcd(a, b) * b; // 注意先除后乘以防溢出 } int main() { int num1, num2; cout << "请输入两个正整数:"; cin >> num1 >> num2; cout << "最大公约数:" << gcd(num1, num2) << endl; cout << "最小公倍数:" << lcm(num1, num2) << endl; return 0; } ``` 上述代码展示了如何使用欧几里得算法来寻找两数之间的最大公约数,并进一步推导其最小公倍数[^2]。 --- #### 题目二:字符串反转 字符串处理也是C++编程中的重要部分,以下是一段简单的程序用于演示如何将输入的一串字符倒序输出。 ```cpp #include <iostream> #include <string> using namespace std; string reverseString(const string& str) { string reversedStr = ""; for(auto it = str.rbegin(); it != str.rend(); ++it){ reversedStr += *it; } return reversedStr; } int main(){ string input; cout<<"请输入一段文字:"<<endl; getline(cin,input); cout<<"原字符串:"<<input<<endl; cout<<"反转后的字符串:"<<reverseString(input)<<endl; return 0; } ``` 此段代码定义了一个名为`reverseString`的功能函数,接受标准库类型`std::string`作为参数并返回一个新的反向版本字符串对象[^1]。 --- #### 题目三:斐波那契数列生成器 斐波那契序列是一项重要的数学概念,在计算机科学领域也有广泛应用。下面给出了一种迭代方式构建指定长度Fibonacci列表的方法。 ```cpp #include <iostream> #include <vector> using namespace std; vector<long long> generateFibonacciSeries(int length){ vector<long long> fib(length); if(length >=1 )fib[0]=0; if(length>=2) fib[1]=1; for(int i=2;i<length;++i){ fib[i]=fib[i-1]+fib[i-2]; } return fib; } int main(){ int seriesLength; cout<<"请输入想要生成的斐波那契数列长度:"<<endl; cin>>seriesLength; vector<long long> fibonacciNumbers = generateFibonacciSeries(seriesLength); cout<<"生成的斐波那契数列为:"<<endl; for(auto &num:fibonacciNumbers){ cout<<num<<"\t"; } cout<<endl; return 0; } ``` 该示例说明了怎样创建一个固定尺寸的容器类实例并通过循环填充相应数值从而得到所需的斐波纳契数列[^3]。 --- ### 总结 以上三个例子分别代表了几种类别的典型问题解答模式,包括但不限于算术运算、文本操控以及序列生成等方面的知识点覆盖。希望这些样例能帮助参赛者更好地理解比赛可能涉及到的内容形式和技术要点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值