《考研机试》(一)C/C++基础

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;
}
 
posted @ 2020-02-13 09:37  Kimishima-Kana  阅读(464)  评论(0编辑  收藏  举报