C++ - 基本知识点(二)
ASCII
ASCII中 二进制数加后缀B,八进制数加后缀Q,十进制数加后缀D,十六进制数加后缀H,其中十进制的后缀D可以省略(默认)
ASCII码一览表,ASCII码对照表 (biancheng.net)
隐显转换
-
隐式转换:char->int->long->double 或 float->double(系统根据需要而自动转换)
-
显示转换:强制类型转换
-
尽量用显示转换代替隐式转换
三大循环
while 语法结构
语法
while(条件表达式) {
循环语句;
}
执行顺序:
①先对条件表达式进行判断(条件满足时,执行循环;不满足时,终止循环)
②执行循环语句。
③执行完所有循环语句,再进行条件判断。
注意:单条循环语句可以不加花括号{},如有多条循环语句,得加上花括号{}。
以下是一个简单的C++例子,演示了使用while循环语句的基本用法:
#include <iostream>
int main() {
int i = 1;
while (i <= 5) {
std::cout << "当前数字为:" << i << std::endl;
i++;
}
return 0;
}
这个例子中,我们使用了一个while循环来打印出数字1到5。首先,我们初始化一个变量i
为1。然后,while循环的条件是i <= 5
,即只要i
小于等于5,就会一直执行循环内的代码。在循环内部,我们打印出当前的数字i
,然后将i
递增1。当i
递增到6时,循环条件不再满足,循环结束。
运行这段代码,输出结果为:
当前数字为:1
当前数字为:2
当前数字为:3
当前数字为:4
当前数字为:5
for循环
语法
for(表达式1; 表达式2; 表达式3) {
循环语句;
}
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
执行顺序:
①初始化(只会在for一开始的时候执行一次)
②条件判断
③执行循环语句
④执行完循环语句后,进行调整部分,然后进行条件判断。
注意:单条循环语句可以不加花括号{},如有多条循环语句,得加上花括号{}。
以下是一个简单的C++例子,演示了使用for循环语句的基本用法:
#include <iostream>
int main() {
for (int i = 1; i <= 5; i++) {
std::cout << "当前数字为:" << i << std::endl;
}
return 0;
}
这个例子中,我们使用了一个for循环来打印出数字1到5。for循环的语法包括三个部分:初始化、循环条件和循环迭代。在这个例子中,我们在初始化部分将变量i
初始化为1;在循环条件部分,我们设置条件为i <= 5
,即只要i
小于等于5,就会一直执行循环;在循环迭代部分,我们使用i++
将i
递增1。每次循环执行完后,都会打印出当前的数字i
。
运行这段代码,输出结果为:
当前数字为:1
当前数字为:2
当前数字为:3
当前数字为:4
当前数字为:5
do…while()循环
语法
do {
循环语句;
} while(条件表达式);
执行顺序:
①先执行do里面的循环语句
②执行完后,进行条件判断,满足则继续执行do里面的循环语句,不满足就结束循环。
注意:单条循环语句可以不加花括号{},如有多条循环语句,得加上花括号{}。
以下是一个简单的C++例子,演示了使用do…while循环语句的基本用法:
#include <iostream>
int main() {
int i = 1;
do {
std::cout << "当前数字为:" << i << std::endl;
i++;
} while (i <= 5);
return 0;
}
这个例子中,我们使用了一个do…while循环来打印出数字1到5。do…while循环的语法是先执行循环内的代码,然后再检查循环条件。在这个例子中,我们先打印出当前的数字i
,然后将i
递增1。然后,循环条件i <= 5
被检查,如果条件为真,则继续执行循环;如果条件为假,则循环结束。
运行这段代码,输出结果为:
当前数字为:1
当前数字为:2
当前数字为:3
当前数字为:4
当前数字为:5
需要注意的是,do…while循环至少会执行一次循环内的代码,即使循环条件一开始就为假。
switch语句
switch基本语法结构如下
switch (expression) {
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
switch语句必须遵循下面的规则:
-
switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。
-
在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
-
case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。
-
当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
-
当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
-
不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
-
一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
以下是一个简单的C++例子,演示了使用switch语句的基本用法:
#include <iostream>
int main() {
int choice;
std::cout << "请选择一个数字(1-3):" << std::endl;
std::cin >> choice;
switch (choice) {
case 1:
std::cout << "你选择了数字1" << std::endl;
break;
case 2:
std::cout << "你选择了数字2" << std::endl;
break;
case 3:
std::cout << "你选择了数字3" << std::endl;
break;
default:
std::cout << "无效的选择" << std::endl;
break;
}
return 0;
}
这个例子中,我们使用了一个switch语句来根据用户的选择输出不同的消息。首先,我们定义了一个变量choice
来存储用户的选择。然后,通过std::cin
从用户输入中获取一个数字。接下来,我们使用switch语句根据用户的选择执行相应的代码块。在每个case分支中,我们根据不同的选择输出不同的消息。如果用户的选择不匹配任何一个case,那么会执行default分支中的代码块。每个case分支的最后都需要使用break
语句来跳出switch语句。
运行这段代码,根据用户的选择输出相应的消息。例如,如果用户输入1,则输出:
你选择了数字1
如果用户输入其他数字,则输出:
无效的选择
上一章:C++ - 基本知识点(一)
下一章:C++ - 变量
练习题
1.下列叙述中正确的是
A)C语言程序将从源程序中第一个函数开始执行
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D)main可作为用户标识符,可以命名任意一个函数作为主函数
1 参考答案:C)
解答:
A)错误,由于main()不一定写在第一个位置上,所以该句话不准确。
B)错误,C语言中规定,程序必须从主函数开始执行,在主函数中结束。
C)正确。
D)错误,在main()函数中,main不可以作为标识符的名,但是在其它函数中,main可作为标识符的名称(不推荐这样做)。main()是程序的开始和结束的位置,不是任意函数都可以作为主函数。
7.若a是数值型,则逻辑表达式(a==1)||(a!=1)的值是
A) 1 B) 0
C) 2 D) 不知道a的值,不能断定
7 参考答案:A)
解答 a的值只有两种可能,等于“1”或者不等于“1”。该表达式(a==1)||(a!=1)的值永远为真,所以,该表达式的值为“1”。
12.有以下程序(提示:先把if和else配对)
#include<iostream.h>
int main()
{
int a=1, b=0;
if (!a) b++;
else if(a==0)
if(a)b+=2;
else b+=3;
cout<<b;
return 0;
}
程序运行的结果是
A)0 B)1 C)2 D)3
参考答案:A
int a = 1, b = 0;
if (!a) b++;
else if (a == 0)
if (a)b += 2;
else b += 3;
cout << b;
else if原先是没有大括号的,所以只能绑定下面一条语句(if),然后这个if语句也没有大括号,也只能绑定一条语句(else),剩下的cout就是在外面了
15.若有定义语句int a , b ; double x; 则下列选项中没有错误的是
A)switch (x%2) B)switch((int)x/2.0)
{ case 0: a++; break; { case 0: a++; break;
case 1: b++: break; case 1: b++; break;
default: a++; b++; default: a++; b++;
} }
C)switch((int)x%2) D)switch((int)(x)%2)
{ case 0: a++; break; { case 0.0: a++;bresk;
case 1: b++; break; case 1.0: b++;break;
default: a++; b++ default: a++; b++;
} }
参考答案:C
switch(必须为整数/枚举类型)
case:(必须是整数/枚举类型)
16.以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是
A)switch(a) B)switch(a==1)
{ case 1: a=b;break; { case 0: a=b;break;
default: a++; case 1: a++;
} }
C)switch(a) D)switch(a==1)
{ defaule:a++;break; { case 1: a=b;break;
case 1: a=b; case 0: a++;
} }
参考答案:B
18.以下程序段的执行结果是
int x=23;
do
{ cout<<x--;
} while(!x);
A)输出230 B)输出23
C)输出22 D)死循环
18 参考答案:B)
解答:先执行循环体,输出表达式x--的值为23,变量x的值为22,再判断循环条件!x,为假,则退出循环
22.有以下程序
#include <iostream.h>
int main()
{
int y=10;
while(y--);
cout<< y;
return 0;
}
程序执行后的输出结果是
A)y=0 B) y=-1 C) y=1 D) while 构成无限循环
参考答案:B)
解答:本题注意,while(y--);。该语句后面有一个“;”。实际上该循环执行的是一个空语句,但变量y每执行一次会被减“1”。所以y的值最终为“-1”。
C语言的基本数据类型有____________、____________、____________ 。(不是C++)
参考答案:整型,字符型,浮点型