《考研机试》(⼀)CC++基础
1.setfill/setw使⽤
2.定义结构体
3.关于字符串读取
4.排序问题:复试不要求⼀般⽤:冒泡排序
5.数字和字符之间转换
6.进制转化:10进制转8进制
7.质数判断
8.字符串拷贝函数strcpy
9.字符串拼接函数strcat
10.字符串⽐较函数strcmp
11.计算字符串长度函数strlen
12.补充内容:
万能头⽂件:#include <bits/stdc++.h>基本冒泡排序:
for(int i=0; i<n-1; i++){
for(int j=0; j<n-1-i; j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
基本⼆分查:
int left = 0;
int right = len - 1;
int mid;
while( left<=right){
mid = left + (right - left)/2;//防⽌溢出
if(find_data == a[mid]){
return mid;
}else if(find_data > a[mid]){
left = mid + 1;
}else{
right = mid - 1;
}
}
return -1;//没有到
基本选择排序:
从待排序的数据中选出最⼩的元素放在起始位置,然后再从剩余的未排序元素中寻到最⼩的元素,放到已排序的序列的末尾
1.我们的⽬标是到最⼩的数min,放到第⼀位
2.我们的⽬标是,出除了min以外的最⼩值,让它排在第2位
3.重复2直到结束
for(int i=0; i<a.length-1; i++){//需要⼏轮,例如a=[1,2,3,4,5]需要4轮,最后⼀个肯定是最⼤值
//每轮遍历开始前,默认第⼀个数为最⼩值
int min = a[i];
int minIndex = i;
for(int j=i+1; j<a.length; j++){
if(min>a[j]){
min = a[j];
minIndex = j;//记录下标
}
}
//如果最⼩值改变了,那么交换
if(min!=a[i]){
a[minIndex] = a[i];
a[i] = min;
}
}
基本插⼊排序:
void insertSort(int a[], int n){
for(int i=1; i<n; i++){//默认第⼀个元素a[0],只有⼀个数,有序
int temp = a[i];//存储当前要插⼊元素
int j = i - 1;
while( j>=0 && temp<a[j] ){//从后往前合适位置
a[j+1] = a[j];//没到,元素后移
j--;
}
/
/此时到了合适位置
//每次没到都j--所以最后插在j+1位置
a[j+1] = temp;
}
//打印
for(int i=0; i<n; i++){
cout << a[i] << " ";
}
}
正⽂:
#include <iostream>
#include <iomanip>
#include <math.h>
#include <string.h>
using namespace std;
int main(void){
// 1.setfill/setw使⽤
// float f1 = 2.99;
// float f2 = 8.9099;
// int i = 10;
// cout << setfill('*');
// //setw是设置域宽,就是输出数据所占⼏列
/
/ //如果在默认的情况下,输出的数据不能达到所规定的域宽就⽤空格填充
// //setfill是设置填充物
// //使⽤操纵符时,需要包含头⽂件iomanip
// cout << setw(10) << f1 << endl;
// cout << setw(10) << f2 << endl;
// cout << setw(10) << i << endl;
// 2.定义结构体
// struct Student{
// int id;
// char name[20];
// };
/
/ 可以使⽤typedef添加别名
// typedef struct Student{
// int id;
// char name[20];
// }Student;
//
// 使⽤:Student s;
// 3.关于字符串读取
// string str = "hello gy";
// int i = 0;
// while(str[i] != '\0'){
/
/ cout << str[i] << endl;
// i++;
// }
// 4.排序问题
// 复试不要求⼀般⽤:冒泡排序
// int len = 6;
// int num[] = {5,2,77,1,99,66};
// for(int i=0; i<len-1; i++){
// for(int j=0; j<len-1-i; j++){
// if( num[j]>num[j+1] ){
// int temp = num[j];
/
/ num[j] = num[j+1];
// num[j+1] = temp;
// }
// }
// }
// for(int i=0; i<len; i++){
// cout << num[i] << " ";
// }
// 5.数字和字符之间转换
// 例如:将字符'7'转为数字7
// char a = '7';
/
/ int a_num = a - '0';
// 例如:将数字 5 转换成字符'5'
// int b_num = 5;
// char b = b_num + '0';
// 6.进制转化:10进制转8进制
// int num = 666;
// int result[100];
// int len = 0;
// while(num/8 != 0){
// result[len] = num%8;
// len++;
/
/ num /= 8;
// }
// result[len] = num;
// for(int i=len; i>=0; i--){
// cout << result[i] <<endl;
// }
// 7.质数判断
// int num = 10;
// int temp = sqrt(num);
// bool isZhiShu = true;//默认是质数
// for(int i=2; i<=temp; i++){
/
/ if( num%i==0 ){
// isZhiShu = false;//不是质数
// break;
// }
// }
// if(isZhiShu){
// cout << "是质数" << endl;
// }else{
// cout << "不是质数" << endl;
// }
// 8.字符串拷贝函数strcpy
/
/ char *strcpy(char *dest, const char *src);
// 将参数 src 字符串拷贝⾄参数 dest 所指的地址// char string[10];
// char *str1 = "abcdefgh";
// //将str1的内容拷贝给string数组
// strcpy(string, str1);
// printf("%s\n", string);
// 9.字符串拼接函数strcat
// char *strcat(char *dest, const char *src);
// 作⽤:返回dest字符串起始地址,并且dest = dest+src
// char str[20];
// char* str1 = "gyy";
/
/ char* str2 = "wgg";
// strcat(str, str1);
字符串长度排序// strcat(str, str2);
// printf("%s\n", str);
// 10.字符串⽐较函数strcmp
// int strcmp(const char *s1, const char *s2);
// 若s1==s2返回0;s1>s2返回⼤于0;s1<s2返回⼩于0
// char *a = "aBcDeF";
// char *b = "AbCdEf";
// char *c = "aacdef";
// char *d = "aBcDeF";
/
/ printf("%d\n",strcmp(a,b));
// printf("%d",strcmp(a,d));
// 11.计算字符串长度函数strlen
// 计算指定的字符串长度,不包括结束字符'\0' a
// size_t strlen(const char *s);
// 返回字符串s的字符数
// 但是sizeof返回的是变量声明后所占的内存数,不是实际长度// char str[5] = "abcd";
// cout << strlen(str) << endl;//4
// cout << sizeof(str) << endl;//5
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论