前言:
所有题目都是学长整理的回忆版,可能出现题目描述不清楚或者是少题的情况
一、输出A-Z的ascii码
源码
#include<iostream>
using namespace std;
int main()
{
char ch='A';
while(ch>='A' && ch<='Z'){
cout<<ch<<'\t'<<(int)ch<<endl;
ch++;
}
return 0;
}
结果:
A 65
B 66
C 67
D 68
E 69
F 70
G 71
H 72
I 73
J 74
K 75
L 76
M 77
N 78
O 79
P 80
Q 81
R 82
S 83
T 84
U 85
V 86
W 87
X 88
Y 89
Z 90
二、计算一元二次方程的两个根
源码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double A,B,C;
double x_1,x_2;
double delta;
cout<<"please input A,B,C:";
cin>>A>>B>>C;
delta=B*B-A*C*4; //判别式
while(delta<0){ //判别式是否合法
cout<<"error!please input again:";
cin>>A>>B>>C;
delta=B*B-A*C*4;
}
cout<<A<<"x^2+"<<B<<"x+"<<C<<"=0"<<endl;
x_1=(-B+sqrt(delta))/(2*A);
x_2=(-B-sqrt(delta))/(2*A);
cout<<"x_1="<<x_1<<endl;
cout<<"x_2="<<x_2<<endl;
}
结果:
该结果一元二次方程的显示有一些问题,可以进行优化,比如系数小于零的情况下就不输出“+”,以及系数为1的时候则不输出系数等等
please input A,B,C:4 4 5
error!please input again:1 -5 6
1x^2+-5x+6=0
x_1=3
x_2=2
三、输出9*9乘法表
源码:
#include<iostream>
using namespace std;
int main()
{
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++)
cout<<j<<"*"<<i<<"="<<i*j<<" ";
cout<<endl;
}
}
结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
四、写个递归函数,求斐波那契
源码:
#include<iostream>
using namespace std;
int function(int n){ //递归函数
if( n==1 || n==2 )
return 1;
else{
return function(n-1)+function(n-2);
}
}
int main()
{
cout<<"please input number:"; //输入层数
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<function(i)<<"\t";
if(i%5==0)
cout<<endl;
}
}
结果:
please input number:10
1 1 2 3 5
8 13 21 34 55
五、写一个函数,数组排序
由于是回忆版,没有要求排序是小到大还是大到小,同时也没有说明排序是排序方法,因此在此会使用三种排序方式来回答该问题
源码
#include<iostream>
#include<stdlib.h>
#include<time.h>
#define LEN 10
using namespace std;
int main(){
void quickSort(int Arr[],int left,int right);
void bubbleSort(int Arr[]);
void SelectSort(int Arr[]);
int Arr[LEN];
srand(time(NULL));
cout<<"Quick Sort"<<endl;
cout<<"*****************************"<<endl;
cout<<"before"<<endl;
for(int i=0;i<LEN;i++){
Arr[i] = rand()%98+1;
cout<<Arr[i]<<" ";
}
cout<<endl<<"after:"<<endl;
quickSort(Arr,0,LEN-1);
for(int i=0;i<LEN;i++){
cout<<Arr[i]<<" ";
}
cout<<endl<<endl<<"Bubble Sort"<<endl;
cout<<"*****************************"<<endl;
cout<<"before"<<endl;
for(int i=0;i<LEN;i++){
Arr[i] = rand()%98+1;
cout<<Arr[i]<<" ";
}
cout<<endl<<"after:"<<endl;
bubbleSort(Arr);
for(int i=0;i<LEN;i++){
cout<<Arr[i]<<" ";
}
cout<<endl<<endl<<"Select Sort"<<endl;
cout<<"*****************************"<<endl;
cout<<"before"<<endl;
for(int i=0;i<LEN;i++){
Arr[i] = rand()%98+1;
cout<<Arr[i]<<" ";
}
cout<<endl<<"after:"<<endl;
SelectSort(Arr);
for(int i=0;i<LEN;i++){
cout<<Arr[i]<<" ";
}
return 0;
}
void quickSort(int Arr[],int left,int right){
if(left>=right)
return;
int i,j,base;
i = left;
j = right;
base = Arr[left];
while(i<j){
while(Arr[j]>=base && i<j)
j--;
while(Arr[i]<=base && i<j)
i++;
if( i < j ){
int t = Arr[i];
Arr[i] = Arr[j];
Arr[j] = t;
}
}
Arr[left] = Arr[i];
Arr[i] = base;
quickSort(Arr,left,i-1);
quickSort(Arr,i+1,right);
}
void bubbleSort(int Arr[]){
for(int i=0;i<LEN-1;i++)
for(int j=0;j<LEN-1-i;j++){
if(Arr[j]>Arr[j+1]){
int t = Arr[j];
Arr[j] = Arr[j+1];
Arr[j+1] = t;
}
}
}
void SelectSort(int Arr[]){
for(int i=0;i<LEN;i++){
int min=i;
for(int j=i;j<LEN;j++){
if(Arr[j]<Arr[min])
min=j;
}
int t=Arr[min];
Arr[min]=Arr[i];
Arr[i]=t;
}
}
结果:
Quick Sort
*****************************
before
24 8 45 47 23 70 37 96 9 16
after:
8 9 16 23 24 37 45 47 70 96
Bubble Sort
*****************************
before
98 64 35 29 8 3 54 22 48 96
after:
3 8 22 29 35 48 54 64 96 98
Select Sort
*****************************
before
56 67 61 4 53 14 14 96 79 74
after:
4 14 14 53 56 61 67 74 79 96
六、c=a/b 捕获异常
源码:
#include<iostream>
using namespace std;
double division(double a,double b){
if(b==0)
throw "error";
return a/b;
}
int main(){
double a,b;
while(1){
cout<<"a/b, please input a b:";
cin>>a>>b;
try{
double result=division(a,b);
cout<<a<<"/"<<b<<"="<<result<<endl;
break;
}catch(const char *msg){
cout<<"error!!"<<endl;
}
}
}
结果:
a/b, please input a b:3 0
error!!
a/b, please input a b:3 1.5
3/1.5=2
七、写一个类或结构体,包括学号姓名语数外成绩,输入n,新建n个,然后分别输入
源码:
#include<iostream>
#include<string>
using namespace std;
struct Student{
string name;
string id;
double Chinses;
double Math;
double English;
};
int main(){
int n;
cout<<"please input n:";
cin>>n;
Student *stu = new Student[n];
for(int i=0;i<n;i++){
cout<<endl;
cout<<"please input name:";
cin>>stu[i].name;
cout<<"please input ID:";
cin>>stu[i].id;
cout<<"please input Chinese Score:";
cin>>stu[i].Chinses;
cout<<"please input Math score:";
cin>>stu[i].Math;
cout<<"please input English Score:";
cin>>stu[i].English;
}
cout<<endl<<"display:"<<endl;
for(int i=0;i<n;i++){
cout<<"*******************************"<<endl;
cout<<"name:"<<stu[i].name<<endl;
cout<<"ID:"<<stu[i].id<<endl;
cout<<"Chinese Score:"<<stu[i].Chinses<<endl;
cout<<"Math score:"<<stu[i].Math<<endl;
cout<<"English Score:"<<stu[i].English<<endl;
cout<<"*******************************"<<endl;
}
}
结果:
please input n:5
please input name:jack
please input ID:01
please input Chinese Score:99
please input Math score:98
please input English Score:97
please input name:mike
please input ID:02
please input Chinese Score:80
please input Math score:90
please input English Score:100
please input name:oscar
please input ID:03
please input Chinese Score:77
please input Math score:99
please input English Score:87
please input name:rookie
please input ID:04
please input Chinese Score:88
please input Math score:66
please input English Score:77
please input name:jackeylove
please input ID:05
please input Chinese Score:59
please input Math score:59
please input English Score:59
display:
*******************************
name:jack
ID:01
Chinese Score:99
Math score:98
English Score:97
*******************************
*******************************
name:mike
ID:02
Chinese Score:80
Math score:90
English Score:100
*******************************
*******************************
name:oscar
ID:03
Chinese Score:77
Math score:99
English Score:87
*******************************
*******************************
name:rookie
ID:04
Chinese Score:88
Math score:66
English Score:77
*******************************
*******************************
name:jackeylove
ID:05
Chinese Score:59
Math score:59
English Score:59
*******************************
八、用7的类,写三个函数,一个是将类用二进制追加到文件,一个是读取,还有一个是备份,把student.dat备份到student.bak
没时间写明天补~