C++一级2024年9月考试试卷


据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为2μs(微秒)。那么该磁心存储元件相当于现代计算机的( )。
内存
磁盘
CPU
显示器
C++程序执行出现错误,不太常见的调试手段是( )。
阅读源代码
单步调试
输出执行中间结果
跟踪汇编码
在C++中,下列表达式错误的是( )。
cout "Hello,GESP!" endl;
cout 'Hello,GESP!' endl;
cout """Hello,GESP!""" endl;
cout "Hello,GESP!' endl;
C++表达式 10 - 3 * 2 的值是
14
4
1
0
在C++中,假设N为正整数10,则 cout <<(N / 3 + N % 3) 将输出
6
4.3
4
2
 C++语句 printf("6%2={%d}", 6%2) 执行后的输出是
"6%2={6%2}"
6%2={6%2}
0=0
6%2={0}

成功执行下面的C++代码,先后从键盘上输入5回车和2回车,输出是

cin >> a ; cin >> b ; cout << a + b ;
将输出整数7
将输出52,5和2之间没有空格
将输出5和2,5和2之间有空格
执行结果不确定,因为代码段没有显示a和b的数据类型

下面C++代码执行后输出是

int Sum = 0 ; for ( int i = 0 ; i < 10 ; i ++ ) Sum += i ; cout << Sum ;
55
45
10
9

下面C++代码执行后输出的是

int N = 0 ; for ( int i = 0 ; i < 10 ; i ++ ) N += 1 ; cout << N ;
55
45
10
9

下面C++代码执行后输出的是

int N = 0 ; for ( int i = 1 ; i < 10 ; i += 2 ){ if ( i % 2 == 1 ) continue ; N += 1 ; } cout << N ;
5
4
2
0

下面C++代码执行时输入 14+7 后,正确的输出是

int P ; printf ( " 请输入正整数 P: " ); scanf ( "%d" , & P ); if ( P % 3 || P % 7 ) printf ( " 第 5 行代码 %d, %d" , P % 3 , P % 7 ); else printf ( " 第 7 行代码 %2d" , P % 3 && P % 7 );
第5行代码2, 0
第5行代码1, 0
第7行代码 1
第7行代码 0

执行下面C++代码后得到的输出是

int count = 0 , i , s ; for ( i = 0 , s = 0 ; i < 20 ; i ++ , count ++ ) s += i ++ ; cout << s << " " << count ;
190 20
95 10
90 19
90 10

下面C++代码拟用于计算整数N的位数,比如对 123 则输出 123是3位整数 ,但代码中可能存在bug。下面 有关描述正确的是

int N , N0 , rc = 0 ; cout << " 请输入整数: " ; cin >> N ; N0 = N ; while ( N ){ rc ++ ; N /= 10 ; } printf ( "%d 是 %d 位整数 \n" , N , rc ); // L11
变量N0占用额外空间,可以去掉
代码对所有整数都能计算出正确位数
L11标记的代码行简单修改后可以对正整数给出正确输出
L11标记的代码行的输出格式有误

下面的C++代码用于求连续输入的若干正五位数的百位数之和。例如输入 32488 25731 41232 0 ,则输 出 3个正五位数的百位数之和为13 。有关描述错误的是

int M , Sum = 0 , rc = 0 ; cout << " 请输入正整数: " ; cin >> M ; while ( M ){ M = ( M / 100 % 10 ); // L6 Sum += M ; rc ++ ; cin >> M ; } cout << rc << " 个正五位数的百位数之和为 " << Sum ;
执行代码时如果输入 23221 23453 12345 11111 0 ,则最后一行Sum的值是 10
执行代码时如果输入 2322 2345 1234 1111 0 ,程序也能运行
将代码标记为 L6 那行改为 M = (M % 1000 / 100); ,同样能实现题目要求
将代码标记为 L6 那行改为 M = (M % 100 / 10); ,同样能实现题目要求

如果一个正整数N能够表示为X*(X+1)的形式,这里称它是一个“兄弟数”。例如,输入6,则输出“6是一个兄 弟数”。下面C++代码用来判断N是否为一个“兄弟数”,在横线处应填入的代码可从i)-iv)中选择,则有几个能完成功 能?

int N ; cin >> N ; for ( int i = 0 ; i <= N ; i ++ ) if ( ___________________ ) cout << N << " 是一个兄弟数 \n" ; i ) N == i * ( i + 1 ) ii ) N == i * ( i - 1 ) iii ) N / ( i + 1 ) == i iv ) N / ( i - 1 ) == i
1
2
3
4
小杨最近开始学习C++编程,老师说C++是一门面向对象的编程语言,也是一门高级语言。
是
否
在C++中,表达式 10/4 和 10%4 的值相同,都是整数2,说明 / 和 % 可以互相替换
是
否
 N是C++程序中的整型变量,则语句 scanf("%d", &N) 能接收形如正整数、负整数和0输入,但如果输入含 字母或带小数点数,将导致无法执行。
是
否

下面C++代码能够执行,则将输出45。

for ( int i = 0 ; i < 10 ; i ++ ) Sum += i ; cout << Sum ;
是
否
在C++代码中整型变量X被赋值为20.24,则 cout << (X++, X+1) / 10 执行后输出的是 2.124 。
是
否

下面C++代码执行后,最后一次输出是10。

for ( int i = 1 ; i < 10 ; i += 3 ) cout << i << endl ;
是
否
在C++, break 语句通常与if语句配合使用。
是
否
在C++代码中,不可以将变量命名为 five-star ,因为变量名中不可以出现 - (减号)符号。
是
否
在C++语言中,整型、实数型、字符型、布尔型是不同数据类型,但这四种类型的变量间都可以比较大小。
是
否
C++中,定义变量 int a=5,b=4,c=3 ,则表达式 (a<b<c) 的值为逻辑假。 
是
否
姓名
    ____________

26题 | 被引用0次

模板修改
使用此模板创建