用户:
IDF哲宇MIKE查看:11 回复:1 评论:11 创建时间:2020-09-19T07:13:06
1 题目解析,看看你做的如何?
相信很多同学都已经做了自己的答案,在这,我给出一份C++例题的答案供大家参考!
C++例题 | 01 基础知识多维度练习,测出你的真实水平!
2 填空题
填空题,重在基础知识和基本概念巩固!
1 变量与输入输出
1、输入输出语句分别使用cin、cout。
2、换行语句是endl。
3、我们学过的四个基本数据类型是int、float、char、string(或者可以填写整型、浮点型、字符型、字符串型)。
4、如果一个整数太大,int类型无法保存,我们还可以用long long、unsigned long long。
5、字符数据要加单引号,字符串数据要加双引号。
6、用来保存判断对错的变量的类型是:bool。
2 运算符与表达式
1、最常用的四类运算符为算术运算符、赋值运算符、关系运算符、逻辑运算符,他们对应的表达式分别为:算术表达式、赋值表达式、关系表达式、逻辑表达式。
2、算术运算符包括:+, -, *, /, %, ++, --。
3、赋值运算符包括:+=, -=, *=, /=, %=。
4、关系运算符包括:>, <, >=, <=, ==, !=。
5、逻辑运算符包括:&&, ||, !。
6、浮点型数据不能进行的算术运算包括:整除、取余、++,--。
7、逻辑运算符的优先级为:! > && > ||。
3 三大结构1、三大结构包括:顺序结构、分支结构、循环结构;
2、分支结构有两个系列,分别是:判断语句(或if系列)、开关语句(或switch-case)。
3、if系列主要包括:if语句、if-else语句、if-else if-else语句、if嵌套。
4、循环结构包括:for循环、while循环、do-while循环。
5、while和do-while很类似,主要区别在于,while是先判断,后执行;do-while是先执行,后判断。
3 代码查错
代码查错题,重点在于能够喵代码中的错误,能够在以后的代码编写中不出现同样的错误。
注意,修改方式不唯一,只要正确即可。
1 变量与输入输出
1、原程序及错误的地方如下:
inta, b, 1ab; //int 和 a之间要有空格,1ab不能当变量名,数字不能放开头
cin >> a //语句结束要加;
b = 3;
c = 'a'; //变量使用前要先定义(声明)
cout >> b; //cin是用>>,cout用<<
修改结果如下:
int a, b, ab;
cin >> a;
b = 3;
cout << b;
char c;
c = 'a';
2 三大结构与运算符
1、顺序结构与运算符1:
int a, b;
a += b; //使用b赋值,b要先有值,使用+=,a也要先有值
float c, d;
c = 5;
d = 6;
c++; //float类型数据不能做++,--运算。
d %= 10; //float类型数据不能做取余运算。
修改后如下:
int a, b;
cin>>a>>b; //可以先通过赋值语句给a和b两个变量赋值
a += b;
float c, d;
c = 5;
d = 6;
c+=1; //可以使用+=或者 c = c+1让原数自增1。
a = d;
d = a%10; //可以先将数据存为整型,再做取余操作,获得余数。
2、分支结构与运算符1
int a, b;
cin>>a>>b;
if(a = b) cout<< a = b; // =是赋值,==是等于。a = b是字符串,要加双引号。
else cout<<"a != b"<<endl;
cin>>a>>b;
if(0<a<10) cout<<"a是个位数"<<endl; //0<a<10的写法不对,要用逻辑运算符改写为 a>0 && a<10
if(a>b) a--; b++; //不是写在同一行,就属于if块中,多条语句要加大括号,下面两个也是一样。
else if(a < b) a++; b--;
else a--; b--;
cout<<"a的值修改后为:"a<<endl; //输出语句中,不同类型之间要用<<区分开。下面也是一样
cout<<"b的值修改后为:"b<<endl;
修改后如下:
int a, b;
cin>>a>>b;
if(a == b) cout<< "a = b"<<endl;
else cout<<"a != b"<<endl;
cin>>a>>b;
if(a>0 && a<10) cout<<"a是个位数"<<endl;
if(a>b) { a--; b++; }
else if(a < b) { a++; b--; }
else { a--; b--; }
cout<<"a的值修改后为:"<<a<<endl;
cout<<"b的值修改后为:"<<b<<endl;
3、分支结构与运算符2
int a;
cin>>a;
switch(a){
case 1; //case 后面要加:,而不是;
cout<<"first"<<endl; //case结束,如果和下面的case执行不同的操作,要用break退出,下面也是一样。
case 2;
cout<<"second"<<endl;
case 3;
cout<<"third"<<endl;
default; //default 后面要加:,而不是;,结束要加break。
}
修改后如下:
int a;
cin>>a;
switch(a){
case 1:
cout<<"first"<<endl;
break;
case 2:
cout<<"second"<<endl;
break;
case 3:
cout<<"third"<<endl;
break;
default:
break;
}
4、循环结构与运算符
int n = 10;
for(int a=1, a<n, a++){ //for循环小括号里每一条都是语句,用;分隔开
cout<<a<<endl;
}
do{
cout<<a<<endl;
a--;
}while(a) //do-while,在while小括号后面要加;
修改后如下:
int n = 10;
for(int a=1; a<n; a++){
cout<<a<<endl;
}
do{
cout<<a<<endl;
a--;
}while(a);
4 程序分析与注释
这一部分的题目,我们通过分析别人的代码,学习别人的编写风格,学习如何去看懂别人写的代码,在后续我们经常要看别人的代码,让我们从现在开始打好基础吧。
1 变量与输入输出
1、程序
为程序添加注释如下:
/*
变量定义、赋值及输出
*/
int a, b, c; //定义三个int类型的变量
a = 1; //变量a赋值为1
b = 2; //变量b赋值为2
c = 3; //变量c赋值为3
cout<<a<<" "<<b<<" "<<c<<endl; //将a b c三个变量输出,并用空格隔开。
程序执行结果为:
1 2 3
2 三大结构与运算符
1、顺序结构与运算符1
为程序添加注释如下:
/*
加赋值操作练习
*/
int a, b, c; //定义三个int类型变量
a = 1; //给变量a赋值为1
b = 2; //给变量b赋值为2
c = 3; //给变量c赋值为3
a+=b; //把b加给a,a的值为1+2=3
b+=c; //把c加给b,b的值为2+3=5
c+=a; //把a加给c,c的值为3+3=6
cout<<a<<endl; //输出a并换行
cout<<b<<endl; //输出b并换行
cout<<c<<endl; //输出c并换行
程序执行结果为:
356
2、顺序结构与运算符2
为程序添加注释如下:
/*
变量运算、float转int类型
*/
int a; //定义一个整型变量a
float b, c; //定义两个浮点型变量
b = 2.4; //给b赋值为2.4
c = 3.6; //给c赋值为3.6
b*=2; //b*2为4.8
c+=b; //c+b为8.4
c*=2; //c*2为16.8
a = c; //将c赋值给a,a为整型,则为16
a--; //a自减1,为15
cout<<a<<endl; //将a输出并换行
cout<<b<<endl; //将b输出并换行
cout<<c<<endl; //将c输出并换行
程序执行结果为:
154.816.8
3、分支结构与运算符
为程序添加注释如下:
/*
逻辑屏蔽练习,根据判断条件输出结果
*/
int a = 5,b = 10; //定义两个整型变量并赋初值
if(1>2 && a++){ //1>2错误,逻辑与中,a++语句被屏蔽,不执行,下面的语句因为if条件错误,也不执行
b*=2;
}
if(b == 10 || b--){ //b的值就是10,第一条语句正确,逻辑或中,b--被屏蔽,不执行,下面的语句因为if条件正确,要执行
a*=2; //a扩大两倍,变为10
}
cout<<a<<" "<<b<<endl; //输出a和b,用空格隔开。
程序执行结果为:
10 10
4、循环结构与运算符
为程序添加注释如下:
/*
输出0,10,20,30,40,50,60,70,80,90
*/
int a = 0,b = 10; //定义两个整型变量并赋初值
for(;a<b;a++){ //a每次自增1,如果满足a<b,就执行下面循环语句
cout<<a*10; //将a的十倍输出
if(a == 9) continue; //如果a为9,跳过后面的语句,即,不输出。
cout<<",";
}
程序执行结果为:
154.816.8
5 代码编写
学得好不好,写写代码就知道,在这一部分,我们一起编写代码,感受信息学带给我们的爽快!
1 变量与输入输出
1、输出:你好,AI与喵技术。
代码如下:
/*
知识点:输出语句、框架
*/
#include<iostream>
using namespace std;
int main(){
cout<<"你好,AI与喵技术。"<<endl;
return 0;
}
2、神奇复读机
代码如下:
/*
知识点:变量定义、变量输出与输出
*/
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
cout<<"你好,我是神奇复读机,你输入的数字是"<<n<<"。"<<endl;
return 0;
}
3、聊天机器人
代码如下:
/*
知识点:数据类型
*/
#include<iostream>
using namespace std;
int main(){
string name;
int age;
float height;
cout<<"机器人:你好,我是小机器人,你可以叫我小可爱;"<<endl;
cout<<"用户:你好呀,小可爱。"<<endl;
cout<<"机器人:你叫什么名字呢?"<<endl;
cin>>name;
cout<<"机器人:你好,"<<name<<",你今年几岁啦!"<<endl;
cin>>age;
cout<<"机器人:哇,"<<name<<",原来你"<<age<<"岁了呀,那左老师你身高是多少呢?"<<endl;
cin>>height;
cout<<"机器人:"<<name<<height<<"米哦,"<<name<<",很高兴认识你!"<<endl;
cout<<name<<":我也很高兴认识你!"<<endl;
return 0;
}
2 运算符与表达式
1、计算周长和面积
代码如下:
/*
知识点:算术运算
*/
#include<iostream>
using namespace std;
int main(){
int a, b;
cin>>a>>b;
cout<<2*(a+b)<<endl;
cout<<a*b<<endl;
return 0;
}
2、截铁丝
代码如下:
/*
知识点:整除运算
*/
#include<iostream>
using namespace std;
int main(){
int a, b, c, d;
cin>>a>>b>>c;
d = (2*(a+b)+c)/4;
cout<<d<<endl;
return 0;
}
3 分支结构
1、判断星期
代码如下:
/*
知识点:取余运算、switch-case语句
*/
#include<iostream>
using namespace std;
int main(){
int day;
cin>>day;
switch(day%7){
case 0:
cout<<"星期一"<<endl;
break;
case 1:
cout<<"星期二"<<endl;
break;
case 2:
cout<<"星期三"<<endl;
break;
case 3:
cout<<"星期四"<<endl;
break;
case 4:
cout<<"星期五"<<endl;
break;
case 5:
cout<<"星期六"<<endl;
break;
case 6:
cout<<"星期日"<<endl;
break;
default:
cout<<"error"<<endl;
break;
}
return 0;
}
2、节约粮食
代码如下:
/*
知识点:取余运算、整除运算、switch-case语句
*/
#include<iostream>
using namespace std;
int main(){
int money, yn, k;
float pay = 0;
cin>>money>>yn;
if(yn) {
cin>>k;
if(k>1000) {
pay += (k-1000)/100*0.1*money + 10*0.05*money;
if(k%100) pay += 0.1*money;
}
else if(k>0){
pay += k/100*0.05*money;
if(k%100) pay += 0.05*money;
}
else{
pay += money * 0.99 * 1.02;
}
}
else pay = money*0.95;
cout<<pay<<endl;
return 0;
}
4 循环结构与循环嵌套
1、八骨蛛数
解法1代码如下:
/*
解法1,根据题目要求,判断所有五位数是否满足条件,满足则输出。思路简单,但运算时间长。
知识点:取余运算、整除运算、for循环
*/
#include<iostream>
using namespace std;
int main(){
int g,s,b,q,w;
for(int i = 10000;i<100000;i++){
g = i%10;
s = i/10%10;
b = i/100%10;
q = i/1000%10;
w = i/10000%10;
if(g == w && s == q && g < s && g+s == 2*b) cout<<i<<endl;
}
return 0;
}
解法2代码如下:
/*
解法2,根据规律直接分析,直接输出
知识点:循环嵌套
*/
#include<iostream>
using namespace std;
int main(){
int g,s,b,q,w;
for(int i = 1;i<10;i++){
for(int j = i + 2;j<10;j+=2){
cout<<i<<j<<(i+j)/2<<j<<i<<endl;
}
}
return 0;
}
2、输出菱形
代码如下:
/*
知识点:循环嵌套、break、逻辑运算符与逻辑表达式、数学逻辑
*/
#include<iostream>
using namespace std;
int main(){
int dis;
char c;
cout<<"请输出菱形中心距与字符,请注意符合题目要求:"<<endl;
cin>>dis>>c;
while(1){
if(dis>0 && dis<=10 && (c=='+' || c=='-' || c=='*' || c=='/' || c=='%' || c=='=' || c>='0' && c<='9' || c>='a' && c<='z' || c>='A' && c<='Z')){
for(int x = 1;x<=2*dis-1;x++){
for(int y = 1;y<=2*dis-1;y++){
if(x+y<3*dis && x+y>dis && x-y<dis && y-x<dis) cout<<c<<" ";
else cout<<" ";
}
cout<<endl;
}
break;
}
else{
cout<<"请输出菱形中心距与字符,请注意符合题目要求:"<<endl;
cin>>dis>>c;
}
}
return 0;
}