前言:
所有题目都是学长整理的回忆版,可能出现题目描述不清楚或者是少题的情况
一、输出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<cstring>
using namespace std;
void bubble(int Array[],int length){
bool flag=false;
for(int i=0;i<length-1;i++){
for(int j=i;j<length-1;j++){
if(Array[i]>Array[j]){
int t=Array[i];
Array[i]=Array[j];
Array[j]=t;
flag=true;
}
}
if(flag==false)
break;
}
}
//选择排序
void SelectSort(int Array[],int length){
for(int i=0;i<length;i++){
int min=i;
for(int j=i;j<length;j++){
if(Array[j]<Array[min])
min=j;
}
int t=Array[min];
Array[min]=Array[i];
Array[i]=t;
}
}
int main(){
//冒泡排序测试
int Array_1[5]={36,72,43,21,57};
cout<<"Array_1:"<<endl;
cout<<"Before Sort:"<<endl;
for(int i=0;i<5;i++)
cout<<Array_1[i]<<" ";
cout<<endl;
cout<<"After Sort:"<<endl;
bubble(Array_1,5);
for(int i=0;i<5;i++)
cout<<Array_1[i]<<" ";
cout<<endl;
//选择排序测试
int Array_2[5]={75,82,99,56,102};
cout<<"Array_2:"<<endl;
cout<<"Before Sort:"<<endl;
for(int i=0;i<5;i++)
cout<<Array_2[i]<<" ";
cout<<endl;
cout<<"After Sort:"<<endl;
SelectSort(Array_2,5);
for(int i=0;i<5;i++)
cout<<Array_2[i]<<" ";
cout<<endl;
}
结果:
Array_1:
Before Sort:
36 72 43 21 57
After Sort:
21 36 43 72 57
Array_2:
Before Sort:
75 82 99 56 102
After Sort:
六、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
没时间写明天补~