C++基础复习题(笔试题)

C++基础~for循环:选择,判断
HELLO,亲爱的小朋友!
我们准备 35个选择题,对for循环及之前的内容进行一个简单的复习,快来看一下吧!

顺序&选择结构

1、对于C++中变量的命名规则,下列说法正确的是( )。

(1)变量名中只能出现字母(A~Z,a~z)、数字(0~9)或者下划线。
(2)第一个字符不能是数字。
(3)不能是C++关键字,即C++中已经定义好的有特殊含义的单词。
(4)区分大小写。

A. 全部正确    B. 仅 1,2 正确    C. 4 错误    D. 1、3 错误

答案:A,C++中变量的命名规则就是上述4条,并且建议变量命名简单清晰,见名知意。

2、下列是合法变量名的是( )。

A. int    B. abcd    C. 1y    D. ab$3)

答案:B

3、关于变量的定义格式,以下错误的是( )。

A. int a;
B. char ch = "A";
C. float PI = 3.1415;
D. double PI = 3.1415926;

答案:B,定义单个字符使用单引号或者ASCII码,如:

char ch = 'A';
char ch = 65;

4、下列对于C++中常用数据类型的说法,错误的是( )。

A. int 的空间大小为 4 Byte(字节)。
B. char 的空间大小为 1 Byte。
C. double 的空间大小为 8 Byte,所以该类型最大值为2的63次方-1。
D. 1 Byte 等于 8 bit。

答案:C,在不同地程序语言中,数据类型的大小会有所不同,甚至在C++中,同一种数据类型,但是不同的编译环境,其大小也会不同。此处是以大众常用(默认)的规则为例:

sizeof(int) = 4 Byte
sizeof(char) = 1 Byte
sizeof(float) = 4 Byte
sizeof(double) = 8 Byte
sizeof(long long) = 8 Byte
1 Byte(字节) = 8 bit(比特位/二进制)

数据在内存中的存储最终是以二进制的形式保存,整数和小数是不同的转换形式

整数,如 int a=7; // 7(十进制) = 00.. 0111(二进制)
整数的二进制中,第一位表示符号位,也就是正负,0表示正,1表示负,所以
int 范围的最大值 INT_MAX = 011..1111 (31位1) = \(2^{31}-1\)
int 范围的最大值 INT_MIN = 100..0000 (31位0) = \(-2^{31}\)
最小值是负数,负数是以补码的形式存储的。

小数,如 double a=3.14; // 3.14 = 0.314 × 10^1
// 内存存储按照32bit: 数符:0 + 小数部分:[21位0]+11 + 阶码:0000 0001
       符号位 小数部分 阶码   长度
float   1     23      8     32
double  1     52     11     64

5、关于“return 0;” 说法正确的是( )。参考答案:A

A. 表示函数结束,正常返回一个数据 0。
B. 输出 “0”,不含双引号。
C. 直接终止所有程序,关闭软件。
D. 每个函数的结尾都必须有这条语句。

6、对于变量的输入输出格式,以下错误的是( )。

A. cin>>a;
B. cin>>a>>b>>c>>endl;
C. cout<<a<<b<<c<<endl;
D. cout<<a<<" "<<b<<" "<<c;

答案:B,输入不使用endl,修改后 cin>>a>>b>>c;

7、如果想要使用输入和输出功能,C++需要引入下列哪个头文件( )参考答案:A

A. iostream
B. cmath
C. algorithm
D. iomanip

8、阅读程序,其输出结果为( )。答案:C

#include<iostream>
using namespace std;
int main() {
    int a=1, b=2, c=3;
    int d = a+b+c;
    cout<<a+b+c+d<<endl;
    return 0;
}

A. 3    B. 6    C. 12    D. 24

9、阅读程序,其输出结果为( )。答案:B

#include<iostream>
using namespace std;
int main() {
    char a = 'A';
    int b = 97;
    cout<<b-a<<endl;
    return 0;
}

A. 'a'    B. 32    C. '1'    D. 1

10、以下说法中,错误的是( )。答案:D

A. 使用数学函数需要导入头文件 <cmath>;
B. pow(3,4)是指 3*3*3*3;
C. sqrt(9) 是指 x*x=9 中 x 的正值,也称为算术平方根。
D. 程序中如果要取一个数 x 的绝对值,可以使用 |x|。

11、以下说法中,错误的是( )。答案:D

A. 自增运算符 ++a;的作用是 a=a+1;
B. 自减运算法 --a;的作用是 a=a-1;
C. 自增运算符 a++;的作用是 a=a+1;
D. ++a;与 a++; 的作用完全一样。

12、小明同学学习了三角形的面积公式,面积 =(底 × 高)/ 2;现在给定一个三角形的底为 3 米,高为 5 米。按照如下程序运行,其输出结果为( )。

#include<iostream>
using namespace std;
int main() {
    int a,b; cin>>a>>b;
    cout<<a*b/2<<endl;
    return 0;
}

A. 7.5    B. 7    C. 6    D. 8

答案:B,int 类型会自动取整。

13、阅读程序,其输出结果为( )。答案:C

#include<iostream>
using namespace std;
int main() {
    int a=65;
    char ch = a;
    cout<<ch<<" "<<a;
    return 0;
}

A. 65 65    B. a 65    C. A 65    D. A A

14、小明同学忘记了26个字母的顺序,现在想通过程序回忆字母 ‘m’ 的下一个字母是多少,但是他很忙,程序只写了一部分。请你来帮他填写一下剩余内容,你发现横线上的内容需要填写( )。答案:D

#include<iostream>
using namespace std;
    int main() {
    char ch='m';
    ___________
    cout<<ch;
    return 0;
}

A. ch+1;    B. ch-1;    C. ch=ch++;    D. ch++;

15、以下关系表达式写法错误的是( )。

A.大于等于:>=
B.小于:<
C.等于:==
D.不等于:≠

答案:D,数学上的写法和程序中的写法不能混淆。

16、表达式(5==6)的值是( )。答案:B

A. true    B. false    C. 1    D. 2

17、以下表达式结果为真的是( )。答案:D

A. (1+2)&&(3+4)&&0
B. 1>2 || 2>3
C. (4||5||0)&&0
D. pow(2,3)>=9 || 2>=abs(1-3)

18、在C++语言中,如果a = 1, b = 0, c = 1; 则表达式中为真的是(C)

A. (a && b) || (b && c)
B. a + b > c || b
C. !(!c && (!a || b))
D. !(a + b + c)

19、—次期末考试,某班有15人数学得满分,有12人语文得满分,并且有4 人语、数都是满分,那么这个班至少有一门得满分的同学有多少人?( )

A. 23    B. 21    C. 20    D. 22

答案:A

image

20、“只要下雨,小明就一定带伞出门”,则下列说法中正确的是( )。答案:C

A. 只要不下雨,小明就一定不带伞出门
B. 只要小明带伞出门,则当天一定下雨
C. 即使小明带伞出门,也不一定下雨
D. 存在一个下雨天,小明出门没有带伞

21、小明家里有七扇门,编号分别为 1 到 7。最开始他的爸爸把所有门都打开,之后妈妈把所有编号为 2 的倍数的门作相反的处理(开着的门关上,关着的门打开),最后他自己将所有编号为 3 的倍数的方面作相反的处理,问共有几扇门是开着的?( )

A. 2    B. 3    C. 4    D. 5

答案:C
门的编号:1  2  3  4  5  6  7
   爸爸:1  1  1  1  1  1  1(1开0关)
   妈妈:1  0  1  0  1  0  1
     我:1  0  0  0  1  1  1

22、我们对闰年的定义是:年份能被4整除但不能被100整除或者年份能被400整除的称为闰年。那么下列选项中判断闰年的表达式正确的是( )。

A. if(year%400==0 && year%4==0 && year%100!=0) { ... }
B. if(year%400==0 || year%4==0 || year%100!=0) { ... }
C. if((year%400==0 || year%4==0) && year%100!=0) { ... }
D. if(year%400==0 || (year%4==0 && year%100!=0)) { ... }

答案:D, a 可以被 b 整除,也就是 a 除以 b 的余数为 0.==>if(a%b==0)

23、假设变量定义为“int a=1,b=0,c=0,d=1”,以下逻辑运算表达式为真的是( )。答案:C

A. a&&b
B. ((a&&b)||c)&&d
C. (b||c)||d
D. (a||d)&&(b||c)

24、用来判断两个值的大小关系的运算符的是( ) 。答案:D

A. 算术运算符
B. 逻辑运算符
C. 赋值运算符
D. 关系运算符

25、分析下列程序,输入 9、2,运行以后,输出的结果是( )。答案:A

#include <iostream>
using namespace std;
int main() {
    int a,b,c=0,d=0;
    cin>>a>>b;
    if(a > b) {
        c=a/b, d=a%b;
    } else {
        c=a, d=b;
    }
    cout<<c<<" "<<d<<endl;
    return 0;
}

A. 4 1    B. 9 2    C. 2 4    D. 4 2

26、分析下列程序,运行以后,输出的结果是( )。答案:B

#include <iostream>
using namespace std;
int main() {
    int i = 0;
    if(i < 0) {
        cout<<i++;
    } else {
        cout<<++i;
    }
    return 0;
}

A. 0    B. 1    C. 2    D. 3

循环结构
27、for循环的结构如下,下列选项中说法错误的是()。答案:A

for( 初始化变量; 循环条件; 循环变量增量 ) {
   语句1;
   语句2;
}
A. 初始化变量的执行次数与循环条件有关。
B. 循环条件是用来判断是否应该执行语句 1 和语句 2 的。
C. 循环变量增量在语句2执行结束后执行。
D. 初始化变量,循环条件,循环变量增量在程序中都可以省略。

28、在for语句中,跳出循环的条件是什么?()答案:B

A. 循环变量为0
B. 不满足循环条件
C. 满足循环条件
D. 有cout语句输出

29、请问以下程序结束的时候,i 等于多少()。答案:C

#include<iostream>
using namespace std;
int main() {
    int a=7, i;
    for(i=1; i<=a; i++) {
        cout<<i<<endl;
    }
    return 0;
}

A. 6    B. 7    C. 8    D. 1

30、请问以下的for语句中循环体的执行次数即 a 的输出次数()。C

#include<iostream>
using namespace std;
int main() {
    int a=1;
    for(int i=2; i<=9; i++) {
       cout<<a<<" ";
    }
    return 0;
}

A. 2    B. 7    C. 8    D. 9

31、请问当输入为 9 时,输出结果为( )。答案:B

#include<iostream>
using namespace std;
int main() {
    int n;  cin>>n;
    for(int i=2; i<=n; i+=2) {
        cout<<i<<" ";
    }
    return 0;
}

A.2 3 4 5 6 7 8 9
B.2 4 6 8
C.2 4 6 8 9
D.1 3 5 7 9

32、分析下列程序,运行以后,输入100,请问输出的结果是( )答案:D

#include<iostream>
using namespace std;
int main(  ) {
    int n,sum=0; cin>>n;
    for(int i = 0; i<=n; i++) {
        sum += 1;
    }
    cout<<sum;
    return 0;
}
A.0     B. 1    C. 100    D. 101

33、分析下列程序,运行以后,输入100,请问输出的结果是( )。答案:C

#include<iostream>
using namespace std;
int main() {
    int n,sum=0; cin>>n;
    for(int i=0; i<=n; i++) {
        sum += i;
    }
    cout<<sum;
    return 0;
}

A.0    B. 1010    C. 5050    D. 5000

34、分析下列程序,运行以后,输入10,请问输出的结果是( )。答案:C

#include<iostream>
using namespace std;
int main() {
    int n,sum1=0,sum2=0;
    cin>>n;
    for(int i=1; i<=n; i++) {
        if(i%2!=0) sum1 += i;
        else sum2 += i;
    }
    cout<<sum1<<" "<<sum2<<endl;
    return 0;
}

A.0 10    B. 10 10    C. 25 30    D. 30 25

35、分析下列程序,运行以后,输入10,请问输出的结果是( )。答案:C

#include<iostream>
using namespace std;
int main() {
    int a=1,b=1,c,n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        c = a+b;
        a = b;
        b = c;
    }
    cout<<a;
    return 0;
}

A.10    B. 88    C. 89    D. 101
posted @ 2023-02-22 11:39  HelloHeBin  阅读(3052)  评论(0)    收藏  举报