Práctica de preguntas de programación del Capítulo 10 (04737 preguntas después de clase)

Capítulo 1:
1. Genere los valores de parámetro 65 y 66 en caracteres y código ASCII respectivamente.

void printASCII()
{
	cout << "01" << endl;

	char a = 'A', b = 'B';
	int ascii_1 = 65, ascii_2 = 66;//ASCII码中的5和6
	cout << "字符输出:" << a << "," << b << endl;
	cout << "ASCII码输出:" << '\t';
	cout << (char)ascii_1 << '\t' << (char)ascii_2 << endl;
	cout << endl;
}

2. Escriba un programa que asigne 100 espacios enteros para variables int.

void func2()
{
	int* p = new int[100];
	delete p;
	cout << endl;
}

3. Escriba un programa completo que lea 15 valores flotantes, utilice punteros para almacenarlos en un bloque de almacenamiento y luego genere la suma y el valor mínimo de estos valores.

void func3()
{
	const int num = 7;
	float a[num];
	cout << "Please insert 15 numbers." << endl;

	float sum = 0;
	float min = a[0];
	for (int i = 0; i < num; i++)
	{
		if (min > a[i])
		{
			float temp = min;
			min = a[i];
			a[i] = temp;
		}
		sum += a[i];
	}
	cout << "和为:" << sum << endl;
	cout << "最小值为:" << min << endl;
	cout << endl;
}

4. Declare la siguiente matriz: int a[] = {1,2,3,4,5,6,7,8};
primero encuentre la posición de 4, copie la matriz a en la matriz b e invierta el contenido de la matriz a, luego busque la posición de 4 y finalmente genere el contenido de las matrices a y b respectivamente.

int func4Find(int a[], int len, int key)
{
	for (int i = 0; i < len; i++)
	{
		if (a[i] == key)
		{
			//此处输出的是4的位置而不是索引
			return i + 1;
		}
	}
	return 0;
}

void printArray(int a[], int len)
{
	for (int i = 0; i < len; i++)
	{
		cout << a[i] << "\t";
	}
}

void func4()
{
	const int num = 8;
	int a[num] = { 1,2,3,4,5,6,7,8 };
	//先查找4的位置
	//cout << func4Find(a, num, 4) << endl;
	int* p = find(a, a + num, 4);
	cout << *p << endl;
	//将数组a复制给数组b
	int b[num];
	copy(a, a + num, b);
	//将数组a的内容反转
	reverse(a, a + num);
	//输出a,b数组内容
	cout << "这是数组a:" << endl;
	printArray(a, num);
	cout << endl;
	cout << "这是数组b:" << endl;
	printArray(b, num);
	cout << endl;
}

Capítulo 2:
1. Utilice varios métodos para escribir un programa que concatene dos cadenas.

string push_back(string str1, string str2)
{
	//iterator迭代器,类似于指针
	//参考网址:https://blog.csdn.net/lq18811566072/article/details/82155903
	string::iterator iter = str2.begin();
	for ( ; iter != str2.end(); ++iter)
	{
		str1.push_back(*iter);
	}
	return str1;
}

void AddString(string str1, string str2) 
{
	string strp = str1 + str2;
	cout << strp << endl;

	string strp1 = str1.append(str2);
	cout << strp1 << endl;

	cout << "push_back: " << push_back(str1, str2) << endl;
}

2. Se sabe que el contenido de un objeto de cadena str es "¡Estamos aquí!", y se utilizan varios métodos para generar el carácter "h"
: atraviesa la matriz para encontrar h y usa un puntero para recibirlo; valor de retorno de la función de búsqueda;

void FindStringValue() 
{
	string val = "We are here!";
	cout << val[val.find('h')] << endl;
	cout << val.substr(val.find('h'),1) << endl;
}


void Tip02ForMain() {
	AddString("我是第一条数据哎,", "我是第二条数据哎");
	FindStringValue();
}

Capítulo 3:
1. Escriba un programa para encontrar las raíces de la ecuación ax2+bx+c=0 y use tres funciones para encontrar las raíces de la ecuación cuando b2−4ac es mayor que cero, igual a cero y menor que cero. Es necesario ingresar los valores de a, b, c de la función principal y generar el resultado.

void tip3func1(double a, double b, double c)
{
	double x1, x2;
	double delta = b * b - 4 * a * c;
	if (delta > 0)
	{
		x1 = (-b + sqrt(delta)) / (2 * a);
		x2 = (-b - sqrt(delta)) / (2 * a);
		cout << "当b2−4ac大于零时,x1 = "<< x1 <<"," << "x2 = " << x2 << endl;
	}
	else if(delta == 0)
	{
		x1 = x2 = (-b + sqrt(delta)) / (2 * a);
		cout << "当b2−4ac等于零时,x1 = x2 =" << x1 << endl;
	}
	else 
	{
		cout << "当b2−4ac小于零时,函数无解" << endl;
	}
}

2. Defina la función up(ch). Si la variable de carácter ch es una letra minúscula, se convertirá en una letra mayúscula y se devolverá a través de up. De lo contrario, el carácter ch no cambiará. Requiere un programa breve y completo que muestre cómo se llama el programa.

char up(char ch) 
{
	return toupper(ch);
}

void tip3func2(char ch)
{
	cout << up(ch) << endl;
}

4. Escriba una función con el parámetro de carácter C y el parámetro de número entero N para mostrar un triángulo compuesto por caracteres C. El método es que hay 1 carácter C en la primera línea, 2 caracteres C en la segunda línea, etc.

void print_Triangle(char C,int N)
{
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j <= i ; j++)
		{
			cout << C;
		}
		cout << endl;
	}
}

void tip3func4()
{
	char c;
	int n;
	cout << "Plase enter c and n:" << endl;
	cin >> c >> n;
	print_Triangle(c, n);
}

5. Escriba una función strlen() para encontrar la longitud de una cadena y luego use la función strlen() para escribir un programa recursivo inverso de la función revers(s) para invertir el orden de la cadena s.

int strlen(string str) 
{
	//return str.length();
	return str.size();
}

void revers(string& str, int left, int right)
{
	int temp = 0;
	if (left >= right) return;

	temp = str[left];
	str[left] = str[right];
	str[right] = temp;

	revers(str, left + 1, right - 1);
}

void tip3func5()
{
	string str = "asdfadsfas";
	int len = strlen(str);
	cout << len << endl;
	revers(str, 0, len - 1);
	cout << str << endl;
}

6. Utilice plantillas de funciones para implementar un programa que ordene tres valores del mínimo al máximo.

template<typename T>
void SortFromSToB(T a[], int len) 
{
	for (int i = 0; i < len; i++)
	{
		for (int j = i + 1; j < len; j++)
		{
			if (a[i] > a[j])
			{
				T temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}
}

void tip3func6()
{
	int a[] = { 1,5,7,4,9,8,6 };
	int len = sizeof(a) / sizeof(a[0]);
	SortFromSToB(a, len);
	for (int i = 0; i < len; i++)
	{
		cout << a[i];
	}
}

7. Utilice plantillas de funciones para diseñar una función que calcule la suma de los elementos de la matriz y pruébela.

template<typename T>
T AddEleSum(T a[], int len)
{
	double temp = 0;
	for (int i = 0; i < len; i++)
	{
		temp += a[i];
	}
	return temp;
}

void tip3func7()
{
	int a[] = { 1,5,7,4,9,8,6 };
	int len = sizeof(a) / sizeof(a[0]);
	cout << AddEleSum(a, len);
}

8. Sobrecargue la plantilla de función de la pregunta anterior para que pueda sumar dos matrices.

template<typename T>
T AddDoubleEleSum(T a[], int len, T b[], int len_b)
{
	return AddEleSum(a, len) + AddEleSum(b, len_b);
}
void tip3func8()
{
	int a[] = { 1,5,7,4,9,8,6 };
	int len = sizeof(a) / sizeof(a[0]);

	int b[] = { 8,5,4,1,9,0,2,5,3 };
	int len_b = sizeof(b) / sizeof(b[0]);
	cout << AddDoubleEleSum(a, len, b, len_b);
}

Supongo que te gusta

Origin blog.csdn.net/qq_43036676/article/details/100739097
Recomendado
Clasificación