资源描述
《C++次第 方案 基础》〔第4版〕〔上〕
习题与解答
第1章 全然 数据与表达 式
1.1 选择 题
1.一个最复杂 的C++次第 ,可以 只需一个〔 C 〕。
〔A〕库函数 〔B〕自定义 函数 〔C〕main函数 〔D〕空函数
2.用C++语言 编写的源次第 要成为目的 次第 必须 求通过〔 D 〕。
〔A〕阐明 〔B〕汇编 〔C〕编辑 〔D〕编译
3.C++次第 中的复杂 语句必须 以〔 B 〕终了。
〔A〕冒号 〔B〕分号 〔C〕空格 〔D〕花括号
4.假设 有阐明 int a=0; double x=5.16;,那么在以下语句中,〔 C 〕属于编译差错 。
〔A〕x=a/x; 〔B〕x=x/a; 〔C〕a=a%x; 〔D〕x=x*a;
5.实行 C++次第 时出现的“溢出〞差错 属于〔 C 〕差错 。
〔A〕编译 〔B〕连接 〔C〕运行 〔D〕逻辑
6.在以下选项中,全部 全然 上 C++关键 字的选项为〔 C 〕。
〔A〕while IF Static 〔B〕break char go
〔C〕sizeof case extern 〔D〕switch float integer
7.按C++标识符的语法则 那么,合理 的标识符是〔 A 〕。
〔A〕_abc 〔B〕new 〔C〕π 〔D〕"age"
8.在C++语句中,两个标识符之间〔 A 〕不克不迭 作为C++的离开 符。
〔A〕数字 〔B〕; 〔C〕: 〔D〕+
9.以下精确 的八进制整型常量表示 是〔 B 〕。
〔A〕0a0 〔B〕015 〔C〕080 〔D〕0x10
10.以下差错 的十六进制整型常量表示 是〔 C 〕。
〔A〕0x11 〔B〕0xaf 〔C〕0xg 〔D〕0x1f
11.在以下选项中,全部 都合理 的浮点型数据的选项为〔 B 〕。
〔A〕-1e3.5 15. 2e-4 〔B〕12.34 -1e+5 0.1E-12
〔C〕0.2e-2 -12345. e-5 〔D〕5.0e〔1+4〕 0.1 8e+2
12.在以下选项中,精确 的字符常量为〔 D 〕。
〔A〕"a" 〔B〕'name' 〔C〕a 〔D〕'\101'
13.在以下选项中,〔 D 〕不克不迭 交换 变量a跟 b的值。
〔A〕t=b; b=a; a=t; 〔B〕a=a+b; b=a-b; a=a–b;
〔C〕t=a; a=b; b=t; 〔D〕a=b; b=a;
14.关于 以下语句,表达 差错 的选项是〔 A 〕。
int i=10, *p=&i;
〔A〕p的值为10 〔B〕p指向整型变量i
〔C〕*p表示 变量i的值 〔D〕p的值是变量i的所在
15.有以下变量阐明,上面不精确 的赋值语句是〔 B 〕。
int a=5, b=10, c; int *p1 = &a, *p2 = &b;
〔A〕*p2 = b; 〔B〕p1 = a;
〔C〕p2 = p1; 〔D〕c = *p1 *(*p2);
16.有以下变量阐明,上面精确 的语句是〔 B 〕。
int a=10, b; int &pa=a, &pb=b;
〔A〕&pb = a; 〔B〕pb = pa; 〔C〕pb = &pa; 〔D〕*pb = *pa;
17.实行 上面语句序列后,a跟 b的值分不为〔 B 〕。
int a=5, b=3, t;
int &ra=a;
int &rb=b;
t=ra; ra=rb; rb=t;
〔A〕3跟 3 〔B〕3跟 5 〔C〕5跟 3 〔D〕5跟 5
18.在以下运算符中,〔 D 〕优先级最高。
〔A〕<= 〔B〕*= 〔C〕+ 〔D〕*
19.在以下运算符中,〔 D 〕优先级最低。
〔A〕! 〔B〕&& 〔C〕!= 〔D〕? :
20.已经清楚 int i=1, j=2;,那么表达 式 i+++j 的值为〔 C 〕。
〔A〕1 〔B〕2 〔C〕3 〔D〕4
21.已经清楚 int i=1, j=2;,那么表达 式 ++i+j 的值为〔 D 〕。
〔A〕1 〔B〕2 〔C〕3 〔D〕4
22.在以下表达 式选项中,〔 C 〕是精确 。
〔A〕++(a++) 〔B〕a++b 〔C〕a+++b 〔D〕a++++b
23.已经清楚 int i=0, j=1, k=2;,那么逻辑表达 式 ++i||- -j&&++k 的值为〔 B 〕。
〔A〕0 〔B〕1 〔C〕2 〔D〕3
24.实行 以下语句后,x的值是〔 D 〕,y的值是〔 〕。
int x, y;
x=y=1; ++x || ++y;
〔A〕不判定 〔B〕0 〔C〕1 〔D〕2
25.设x为整型变量,不克不迭 精确 表达 数学关系 1<x<5 的C++逻辑表达 式是〔 A 〕。
〔A〕1< x <5 〔B〕x==2||x==3||x==4
〔C〕1<x && x<5 〔D〕! 〔x<=1〕&&! 〔x>=5〕
26.已经清楚 int x=5;,实行 以下语句后,x的值为〔 C 〕。
x+=x-=x*x;
〔A〕25 〔B〕40 〔C〕–40 〔D〕20
27.设 int a=1, b=2, c=3, d=4;,那么以下条件 表达 式的值为〔 A 〕。
a<b?a:c<d?c:d
〔A〕1 〔B〕2 〔C〕3 〔D〕4
28.以下逗号表达 式的值为〔 D 〕。
(x=4*5, x*5), x+25
〔A〕25 〔B〕20 〔C〕100 〔D〕45
1.2 按照以下数学表达 式写出C++算术表达 式
1. 2.x{x[x(ax+b)+c]+d}+e
3.ln 4.
5.cot 6.lg(a2+ab+b2)
【解答】
1. 1/(1 + 1/(1 + 1/(x + y)))
2. x * ( x * ( x * ( a * x + b ) + c ) + d ) + e
3. log( 1 + pow( fabs( ( a + b )/( a – b ) ),10)
4. sqrt( 1 + 3.14159/2 * cos( 48 * 3.14159/180 ) )
5. 1/tan( ( 1 - x*x )/( 1 + x*x))
或者 cos( ( 1 - x*x )/( 1 + x*x ) )/sin( ( 1 - x*x )/( 1 + x*x ) )
6. log10( a * a + a * b + b * b )
1.3 用逻辑表达 式表示 以下条件
1.i 被j整除 2.n是小于正整数k的偶数
3.1≤x<10 4.x、y其中 有一个小于z
5.y[–100,–10],同时 y[10,100]
6.坐标点〔x, y〕落在以〔10, 20〕为圆心,以35为半径的圆内
7.三条边a,b跟 c形成 三角形
8.年份Year能被4整除,但不克不迭 被100整除,或者 能被400整除
【解答】
1. i%j == 0 2.〔n<k〕&&〔n%2 == 0〕
3. 1<=x && x<10 4. x<z||y<z
5. !( y>=-100 && y<=-10 ) && !( y>=10 && y<=100 )
6. sqrt(pow((x-10),2) + pow((y-20),2))< 35
7. a+b>c && b+c>a && c+a>b
8. (year%4 == 0) && (year%100!=0)||(year%400==0)
1.4 阅读 以下次第 ,写出运行 结果
1.
#include <iostream>
using namespace std;
int main()
{
int a = 1, b = 2;
bool x, y;
cout << (a++)+(++b) << endl;
cout << a % b << endl;
x = !a>b;
y = a-- && b;
cout << x << endl;
cout << y << endl;
}
【解答】
4
2
0
1
2.
#include <iostream>
using namespace std;
int main()
{
int x,y,z,f;
x = y = z = 1;
f = --x || y-- && z++;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "z = " << z << endl;
cout << "f = " << f << endl;
}
【解答】
x=0
y=0
z=2
f=1
3.
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
int a=123;
int &ra=a;
int *pa=&a;
cout<<setw(5)<<dec<<a<<setw(5)<<oct<<ra<<setw(5)<<hex<<*pa<<endl;
}
【解答】
123 173 7b
1.5 考虑 题
1.什么是数据典范 ?变量的典范 定义 有什么感染 ?
【解答】
数据“典范 〞是对数据的抽象 。典范 一样的数占据 一样的表示 办法 、存储格式 以及相关 的把持 。定义 一个变量时,打算 机按照变量的典范 分配 存储空间,并以该典范 阐明 存放的数据。
2.一般数据典范 变量跟 指针典范 变量的定义 、存储跟 应用 办法 有何区不?请编写一个次第 验证之。
【解答】
变量典范
定义
存储
应用 办法
数据
典范 标识符
数据值
通过名访征询 即开门见山 访征询 对变量内容把持
指针
典范 * 标识符
所在 值
通过指针变量的所在 值间址访征询 东西
验证次第 :
#include<iostream>
using namespace std;
int main()
{ int a,b,c;
cout<<"a,b,c= ";
cin>>a>>b>>c; //对一般数据典范 变量赋值
int *pa=&a,*pb=&b,*pc=&c; //用变量所在 值初始化指针变量
cout<<"a,b,c= "<<a<<", "<<b<<", "<<c<<endl; /名访征询 ,输出a,b,c的值
cout<<"pa,pb,pc= "<<pa<<", "<<pb<<", "<<pc<<endl; //输出指针变量的所在 值
//间址访征询 ,输出pa,pb,pc指向的变量的赋值
cout<<"*pa,*pb,*pc= "<<*pa<<", "<<*pb<<", "<<*pc<<endl;
}
3.什么是数据东西 的引用?东西 的引用跟 东西 的指针有什么区不?请用一个验证次第 阐明之。
【解答】
引用是为数据东西 定义 不名。引用与指针有以下几多 点区不:
〔1〕引用名不是内存变量,而指针变量要开辟内存空间。
〔2〕引用名需要 在变量定义 与变量名绑定,同时不克不迭 重定义 ;指针变量可以 在次第 中赋给差异 的所在 值,修改 指向。
〔3〕次第 中用 变量名跟 引用名访征询 东西 的办法 跟 结果 一样;指针变量通过间址访征询 东西 。
验证次第 :
#include<iostream>
using namespace std;
int main ()
{ int a;
cout<<"a=";
cin>>a;
int ra=a;
int *pa=&a;
cout<<"a的值:"<<a<<endl;
cout<<"a的所在 :"<<&a<<endl;
cout<<"ra的值:"<<ra<<endl;
cout<<"ra的所在 :"<<&ra<<endl;
cout<<"pa所指向的变量的值:"<<*pa<<endl;
cout<<"pa的所在 :"<<pa<<endl;
}
4.数据东西 在C++中有几多 种差异 的访征询 办法 ?请编写一个次第 验证之。
【解答】
数据东西 在C++中的访征询 办法 有:名访征询 ,引用〔不名〕访征询 ,间址访征询 。
验证次第 :
#include<iostream>
using namespace std;
int main()
{ int a;
cout<<"a=";
cin>>a;
a=a+5; //名访征询
cout<<&a<<endl; //输出变量所在
cout<<*(&a)<<endl; //所在 访征询 ,输出变量值
int *pa=&a; //阐明指针变量,指向变量a
cout<<*pa<<endl; //间址访征询 ,输出变量值
int &ra=a; //ra是a的引用
cout<<ra<<endl; //引用访征询 ,输出变量a的值
}
5.为了约束 对数据东西 的值停顿只读把持 ,C++采用什么办法 ?请停顿简明归纳 。
【解答】
约束 数据东西 只读办法 如下:
约束 东西
阐明办法
标识常量
const 典范 常量标识符=常量表达 式;
指针常量
典范 * const 指针;
指向常量的指针
const 典范 * 指针; 或者 典范 const * 指针;
指向常量的指针常量
const 典范 * const 指针; 或者 典范 const * const 指针;
常引用
const 典范 & 引用名 = 东西 名;
6.什么是表达 式?表达 式值的典范 由什么因素 决定 ?应用 差异 运算符连接 以下3个变量,请写出5个以上获得值为true的表达 式。
int a=1, b=2; double x=0.5;
【解答】
表达 式是由数据跟 运算符,按求值规那么,表达 一个值的式子。
表达 式值的典范 的决定 因素 为把持 数的典范 。
〔1〕假设运算符左右 把持 数典范 一样,运算结果也是一样典范 。
〔2〕假设运算符左右 把持 数典范 差异 ,起首 把典范 较低〔存储央求 ,示数才干较低〕的数据转换成典范 较高的数据,然后 运算。
〔3〕赋值表达 式的典范 由被赋值变量的典范 决定 。当把一个表达 式的值赋给一个变量时,系统起首 逼迫 把运算值转换成变量的典范 ,然后 实行 写把持 。
6个值等于 true的表达 式:
〔1〕b>a && a>x 〔2〕(a+b)!=x 〔3〕a||(b+x)
〔4〕a==(b*x) 〔5〕a-b<x 〔6〕(a/x==b)
7.阅读 以下次第 ,分析上面语句序列中每一个字符“*〞跟 “&〞的含义 ,并写出输出结果。
#include <iostream>
using namespace std;
int main()
{
int a=10, b=20;
int *p = &a, *q = &b;
*p = *p * *q;
int & ra = a;
ra=a;
int * & rt = q;
*rt = 30;
cout<<"a="<<a<<"\nb="<<b<<"\n*p="<<*p<<"\n*q="<<*q
<<"\nra="<<ra<<"\n*rt="<<*rt<<endl;
}
【解答】
字符“*〞跟 “&〞的意思 见次第 中添加 的正文。
#include <iostream>
using namespace std;
int main()
{
int a=10, b=20;
int *p = &a, *q = &b; //“*〞是指针典范 阐明符,“&〞是取址运算符
*p = *p * *q; //第1、2、4个“*〞是间址访征询 符,第3个“*〞算术乘运算符
int & ra = a; //“&〞是引用阐明符
ra=a;
int * & rt = q; //“*〞是指针典范 阐明符,“&〞是引用阐明符
*rt = 30; //“*〞是间址访征询 符
//输出语句中的“*〞是间址访征询 符
cout<<"a="<<a<<"\nb="<<b<<"\n*p="<<*p<<"\n*q="<<*q
<<"\nra="<<ra<<"\n*rt="<<*rt<<endl;
}
次第 输出结果为:
a=200
b=30
*p=200
*q=30
ra=200
*rt=30
1.6 编程题
1.输出一个3位整数,将它反向输出。
【解答】
#include <iostream>
using namespace std;
int main()
{
int x,i,j,k;
cout << "please input x:";
cin >> x;
i = x/100;
j = x/10 %10;
k = x%10;
cout << k << j << i << endl;
}
2.输出破 体上某点横坐标x跟 纵坐标y,假设 该点位于图1.11所示的方块地域 内,那么输出1;否那么,输出0。
图1.11 方形地域
【解答】
#include <iostream>
using namespace std;
int main()
{
double x,y,b;
cout << "please input x,y:";
cin >> x >> y;
b = ( -2<=x ) && ( x<=2 ) && ( -2<=y ) && ( y<=2 );
cout << b << endl;
}
3.输出3个整数,求出其中 最小数〔央求 应用 条件 表达 式〕。
【解答】
#include <iostream>
using namespace std;
int main()
{
int a,b,c,temp,min;
cout << "please input a,b,c:";
cin >> a >> b >> c;
temp = ( a<b ) ? a:b;
min = ( temp<c ) ? temp:c;
cout << "min=" << min << endl;
}
第2章 次第 把持 结构
2.1 选择 题
1.已经清楚 int i=0, x=1, y=0;,在以下选项中,使i的值变成 1的语句是( C )。
〔A〕if( x&&y ) i++; 〔B〕if( x==y ) i++;
〔C〕if( x||y ) i++; 〔D〕if( !x ) i++;
2.设有函数关系 为y=,以下选项中,能精确 表示 上述关系 的是〔 C 〕。
〔A〕 y = 1; 〔B〕 y = -1;
if( x >= 0 ) if( x != 0 )
if( x == 0 ) y = 0; if( x > 0 ) y = 1;
else y = -1; else y = 0
〔C〕 if( x <= 0 ) 〔D〕 y = -1;
if( x < 0 ) y = -1; if( x <= 0 )
else y = 0; if( x < 0 ) y = -1;
else y = 1; else y = 0;
3.假设 i=2,实行 以下语句后i的值为〔 B 〕。
switch( i )
{
case 1 : i ++;
case 2 : i --;
case 3 : ++ i; break;
case 4 : -- i;
default : i ++;
}
〔A〕1 〔B〕2 〔C〕3 〔D〕4
4.已经清楚 int i=0,x=0;,不才 面while语句实行 时循环 次数为〔 D 〕。
while( !x && i< 3 ) { x++; i++; }
〔A〕4 〔B〕3 〔C〕2 〔D〕1
5.已经清楚 int i=3;,不才 面do_while 语句实行 时的循环 次数为〔 B 〕。
do{ i--; cout<<i<<endl;}while〔 i!= 1 〕;
〔A〕1 〔B〕2 〔C〕3 〔D〕无限
6.上面for语句实行 时的循环 次数为〔 B 〕。
int i, j;
for ( i=0, j=5;i=j; )
{ cout<<i<<j<< ndl; i++; j--; }
〔A〕0 〔B〕5 〔C〕10 〔D〕无限
7.以下次第 段形成 去世 循环 的是〔 B 〕。
〔A〕int x; for( x=0; x<3; ) { x++; };
〔B〕int k = 0; do { ++k; } while( k>=0 );
〔C〕int a=5; while( a ) { a--; };
〔D〕int i=3; for(; i; i -- );
2.2 阅读 以下次第 ,写出运行 结果
1.
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,x;
a = c = 0; b = 1; d = 20;
if( a )
d = d-10;
else
if( !b )
if( !c )
x = 15;
else x = 25;
cout << d << endl;
}
【解答】
20
2.
#include<iostream>
using namespace std;
int main()
{
int a = 0, b = 1;
switch( a )
{
case 0:
switch( b )
{
case 0 : cout<<"a="<<a<<" b="<<b<<endl; break;
case 1 : cout<<"a="<<a<<" b="<<b<<endl; break;
}
case 1:
a++; b++; cout<<"a="<<a<<" b="<<b<<endl;
}
}
【解答】
a= 0 b= 1
a= 1 b= 2
3.
#include<iostream>
using namespace std;
int main()
{
int i = 1;
while( i<=10 )
{
if( ++i % 3 != 1 )
continue;
else
cout << i << endl;
}
}
【解答】
4
7
10
4.
#include<iostream>
using namespace std;
int main()
{
int i = 0, j = 5;
do
{
i++; j--;
if ( i>3 ) break;
} while ( j>0 );
cout << "i=" << i << endl << "j=" << j << endl;
}
【解答】
i= 4 j= 1
5.
#include<iostream>
using namespace std;
int main()
{
int i,j;
for( i=1, j=5; i<j; i++ )
{ j--; }
cout<<i<<'\t'<<j<<endl;
}
【解答】
3 3
6.
#include<iostream>
using namespace std;
int main()
{
int i, s = 0;
for( i=0; i<5; i++ )
switch( i )
{
case 0: s += i; break;
case 1: s += i; break;
case 2: s += i; break;
default: s += 2;
}
cout<<"s="<<s<<endl;
}
【解答】
s= 7
7.
#include<iostream>
using namespace std;
int main()
{
int i, j, x = 0;
for( i=0; i<=3; i++ )
{
x++;
for( j=0; j<=3; j++ )
{
if( j % 2 )
continue;
x++;
}
x++;
}
cout << "x=" << x << endl;
}
【解答】
x= 16
2.3 考虑 题
1.C++语言 中有什么办法 的选择 把持 语句?归纳 它们的语法办法 、应用 途 所。按照一个理论征询 题应用 差异 的条件 语句编程。
【解答】
语句
应用 办法
应用 途 所
if语句
if(表达 式)语句1;
else 语句2;
需要 对给定的条件 停顿揣摸 ,并按照揣摸 的结果选择 差异 的把持 。
有用 于复杂 的条件 表达 式揣摸 。
switch 语句
switch(表达 式)
{ case 常量表达 式1: 语句1;
case 常量表达 式2: 语句2;
……
case 常量表达 式n; 语句n;
[default : 语句n+1;]
}
按照整型表达 式的差异 值决定 次第 分支的情况。
有用 于揣摸 表达 式复杂 ,需要 多个分支处理 的情况。
演示次第 :
次第 〔1〕
//此次第 用if输出等级 对应的分数段
//A->=90,B-(90,80],C-(80,70] ,D-(70,60],,E-<60
#include<iostream>
using namespace std;
int main()
{ char gd;
cout<<"Enter the grade:";
cin>>gd;
//直到输出无效等级 ,否那么次第 不接着运行
while(!((gd>='A' && gd<='E')||(gd>='a' && gd<='e')))
{ cout<<"Invalid grade! Please retry:";
cin>>gd;
}
if(gd=='A'||gd=='a') cout<<"\nScored 90-100!\n";
else if(gd=='B'||gd=='b') cout<<"\nScored 80-89!\n";
else if(gd=='C'||gd=='c') cout<<"\nScored 70-79!\n";
else if(gd=='D'||gd=='d') cout<<"\nScored 60-69!\n";
else if(gd=='E'||gd=='e') cout<<"\nScore under 60!\n";
else cout<<"Unexpect error!\n"; //防止意外 差错
}
次第 〔2〕
//此次第 用switch输出等级 对应的分数段
//A->=90,B-(90,80],C-(80,70] ,D-(70,60],,E-<60
#include<iostream>
using namespace std;
int main()
{ char gd;
cout<<"Enter the grade:";
cin>>gd;
//直到输出无效等级 ,否那么次第 不接着运行
while(!((gd>='A' && gd<='E')||(gd>='a' && gd<='e')))
{ cout<<"Invalid grade! Please retry:";
cin>>gd;
}
switch(gd)
{ case 'A':
case 'a': cout<<"\nScored 90-100!\n";break;
case 'B':
case 'b': cout<<"\nScored 80-89!\n";break;
case 'C':
case 'c':cout<<"\nScored 70-79!\n";break;
case 'D':
case 'd':cout<<"\nScored 60-69!\n";break;
case 'E':
case 'e':cout<<"\nScore under 60!\n";break;
default:cout<<"Unexpect error!\n";//防止意外 差错
}
}
2.什么叫做循环 把持 ?归纳 比较C++语言 中各种 循环 把持 语句的语法、循环 条件 跟 循环 终了条件 的表示 办法 及实行 流程。
【解答】
循环 把持 是在特定的条件 下,次第 重复实行 一些特定举动 。
语句
语法
实行 流程
应用 途 所
while语句
while(表达 式)
循环 体;
循环 条件 :表达 式值为非0(真)
循环 终了条件 :表达 式值为0(假)
次第 中常用于按照条件 实行 把持 而不需关心 循环 次数的情况。
先揣摸 办法 循环 ,条件 不成破 时不进入循环 体。
do-while语句
do
循环 体
while(表达 式);
循环 条件 :表达 式值为非0(真)
循环 终了条件 :表达 式值为0(假)
次第 中常用于按照条件 实行 把持 而不需关心 循环 次数。
后揣摸 办法 循环 ,至少实行 1次循环 体。
一般情况,while语句跟 do while语句可以 互换 应用 。
for 语句
for([表达 式1];[表达 式2];[表达 式3])
循环 体;
〔1〕表达 式1称为初始化表达 式,不是循环 体实行 局部。
〔2〕表达 式3称为后置表达 式,作为循环 体的最后一个实行 表达 式。
〔3〕循环 条件 :表达 式2值为非0〔真〕
循环 终了条件 :表达 式2值为0〔假〕
for语句称为步长循环 语句,素日 用于判定 循环 次数的情况。
由于 语句的3个表达 式均可以 缺省,也可以 用于条件 循环 ,即循环 次数不判定 的情况。
3.按照一个理论征询 题,用差异 的循环 语句编程,分析其优缺点 。
【解答】
略。
4.用if语句跟 goto语句结构 循环 ,改写上面第3题编写的次第 ,并分析在什么情况下可以 适当 应用 goto语句。
【解答】
在不破坏次第 全然 流程把持 的情况下,可以 适当 应用 goto语句完成 从语句结构内部向外的需要 跳转,即按特定条件 终了结构语句块的实行 。
次第 略。
5. 有以下次第 ,希望 揣摸 两个输出的整数能否 相当 。次第 通过编译,但不克不迭 抵达预期结果。请分析次第 可以 通过C++编译而不克不迭 失落 失落 落 期望 结果的缘故。
#include<iostream>
using namespace std;
int main()
{
int a,b;
cout<<"a: "; cin>>a;
cout<<"b: "; cin>>b;
if( a=b )
cout<<a<<"等于 "<<b<<endl;
else
cout<<a<<"不等于 "<<b<<endl;
}
运行 次第 ,输出a的值为4,b的值为9,表示 结果如下:
a: 4
b: 9
9等于 9
【解答】
在if语句的揣摸 表达 式(a=b)中,赋值号“=〞该当 是逻辑等“==〞。从语法上,C++的if语句把a=b谁人 赋值表达 式视为逻辑表达 式,不 编译差错 。a=b的值决定 于b。假设 b的输出值不等于 0,if语句的揣摸 表达 式作为逻辑真〔true〕,否那么作为逻辑假〔false〕。因此 ,题目 中输出b的值虽然不等于 a,但表达 式a=b为逻辑true,实行 了if语句的第1个分支。
2.4 编程题
1.输出某后生成 果,假设 效果在85分以上,那么输出“very good〞;假设 效果在60~85分之间,那么输出“good〞;假设 效果低于60分,那么输出“no good〞。
【解答】
#include<iostream>
using namespace std;
int main()
{
double score;
cout << "please input score:";
cin >> score;
if ( score>=85 ) cout << "Very good!" ;
else if ( score>=60 ) cout << "Good!";
展开阅读全文