华师初试真题

19年初试真题

1.用穷举法输入1-100的素数


#include
#include
using namespace std;

bool isprime(int n)
{
	if (n <= 1)
		return false;
	for (int i = 2; i <= sqrt(n); i++)
		if (n%i == 0)
			return false;
	return true;
}
int main()
{
	int cnt = 0;
	for(int i=1;i<=100;i++)
		if (isprime(i))
		{
			cout << i << " ";
			cnt++;
			if (cnt % 5 == 0)
				cout << endl;
		}
	return 0;
}

华师初试真题_第1张图片
2.递归求出1+2+3+…+n

#include
#include
using namespace std;

int fun(int n)
{
	if (n == 1)
		return 1;
	else
		return fun(n - 1) + n;
}
int main()
{
	int n;
	cin >> n;
	cout << fun(n) << endl;
	return 0;
}

华师初试真题_第2张图片
3.请完成函数 int index(char *s,char *t) 函数的作用是返回字符串t出现在字符串第一次最左边得下标 若不是s得字串 则返回-1.

#include
#include
using namespace std;

int index(char *s, char *t)
{
	char *p = s ,* q = t;
	int a = strlen(p);
	int b = strlen(q);
	for(int i = 0; i < a; i++) {
		int j;
		for (j = 0; j < b; j++)
		{
			if (p[i + j] != q[j])
				break;
		}
		if (j == b)
			return i;
	}
	return -1;
}
int main()
{
	char a[100], b[100];
	cin >> a >> b;
	cout << index(a, b) << endl;
	return 0;
}

华师初试真题_第3张图片
华师初试真题_第4张图片
4.请编写 抽象类shape,然后派生出Rectangle和Circle类 要求完成计算机面积

// ConsoleApplication10.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include
#include
using namespace std;

class Shape {
public:
	virtual void Aear() = 0;
	virtual void input() = 0;
};

class Rectangle :public Shape {
private:
	double width;
	double lenth;
public:
	void input()
	{
		cout << "输入长方形的长和宽:" << endl;
		cin >> width >> lenth;
	}
	void Aear()
	{
		cout << "长方形的面积:" << width * lenth << endl;
	}
};

class Circle :public Shape{
private:
	double r;
public:
	void input()
	{
		cout << "输入圆形的半径:" << endl;
		cin >> r;
	}
	void Aear()
	{
		cout << "圆形的面积:" << 3.14*r*r << endl;
	}
};
int main()
{
	Shape *s = new Rectangle();
	s->input();
	s->Aear();
	s = new Circle();
	s->input();
	s->Aear();
	return 0;
}


华师初试真题_第5张图片
5 每次从键盘读取一行文本,输出到文件“a.txt”中,当用户输入空行是结束

#include
#include
#include
using namespace std;

int main()
{
	ofstream outfile("a.txt", ios::out);
	if (!outfile)
	{
		cerr << "打开文件错误!" << endl;
		exit(1);
	}
	char s[100];
	cin.getline(s, 100);
	for(int i =0; i < strlen(s); i++)
	{
		outfile.write((char*)&s[i], 1);
	}
	outfile.close();
	return 0;
}

在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(华师初试真题)