#G1063. 客观题

客观题

一、单选题(每题 2 分,共 30 分)

  1. 以下不可以做为 C\tt C++ 变量的是( )。

{{ select(1) }}

  • FiveStar
  • fiveStar
  • 5Star
  • Star5
  1. C\tt C++ 中,与 for(int i = 10; i < 20; i +=2) cout << i; 输出结果相同的是( )。

{{ select(2) }}

  • for(int i = 10; i < 19; i +=2) cout << i;
  • for(int i = 11; i < 19; i +=2) cout << i;
  • for(int i = 10; i < 21; i +=2) cout << i;
  • 以上均不对
  1. 以下 C\tt C++ 代码实现从小到大的顺序输出能整除 NN 的数(NN 的因子),例如 N=18N=18 时输出 1 2 3 6 9 18,横线处应填入( )。

    cin >> N;
    
    for (________)
    	if (N % i == 0)
    		cout << i << " ";
    

{{ select(3) }}

  • int i = 0; i < N; i++
  • int i = 1; i < N; i++
  • int i = 0; i < N+1; i++
  • int i = 1; i < N+1; i++
  1. 下面 C\tt C++ 代码用于判断输入的整数是否为对称数,如 122112211232112321 是对称数,但 123123972972 不是对称数。下面 对该题对应代码的说法,正确的是( )。

    cin >> N;
    
    newNum = 0;
    while (N) {
    	newNum = newNum * 10 + N % 10;
    	N = N / 10;
    }
    
    if (newNum == N)
    	cout << N << "为对称数";
    

{{ select(4) }}

  • 代码没有语法错误,如果 NN 为对称数,第 88 行将能正确输出
  • 代码没有语法错误,但如果 NN 为负数,将导致死循环
  • 代码存在语法错误,程序不能被执行
  • 代码没有语法错误,但不能达到预期目标,因为循环结束 NN 总为 00
  1. 下面 C\tt C++ 代码用于判断 NN(大于等于 22 的正整数)是否为质数(素数)。下面对如下代码的说法,正确的是( )。

    cin >> N;
    
    for (i = 2; i < N / 2; i++)
    	if (N % i == 0) {
    		cout << N << " 不是质数";
    		break;
    	}
    
    if (i >= N / 2)
    	cout << N << " 是质数";
    

{{ select(5) }}

  • 代码能正确判断 NN 是否为质数
  • 代码总是不能判断 NN 是否质数
  • 删除第 55break,将能正确判断 NN 是否质数
  • 代码存在漏洞,边界存在问题,应将第 22 行和第 77 行的 N/2N / 2 改为 N/2+1N / 2 + 1
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    N = 4;
    for (int i = 0; i < N; i++) {
    	for (int j = 1; j < i; j++)
    		if (i * j % 2 == 0)
    			cout << i << "#";
    	continue;
    }
    cout << "0";
    

{{ select(6) }}

  • 2#3#0
  • 1#2#0
  • 1#0#
  • 2#3#
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    cnt = 0;
    for (i = 1; i < 10; i++)
    	for (j = 1; j < i; j += 2)
    		if (i * j % 2 == 0) {
    			cnt++;
    			break;
    		}
    
    if (i >= 10) cout << cnt << "#";
    cout << cnt;
    

{{ select(7) }}

  • 00
  • 8#8
  • 44
  • 4#4
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    N = 100;
    while (N > 0)
    	if (N % 2)
    		break;
    	else if (N % 3 == 0)
    		N -= 5;
    	else 
    		N -= 20;
    
    cout << N;
    

{{ select(8) }}

  • 100100
  • 9595
  • 5555
  • 00
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    x = 1;
    while (x < 100) {
    	if (x % 3 != 0)
    		cout << x << ",";
    	else if (x / 10)
    		break;
    	else 
    		x += 5;
    	
    	x += 2;
    }
    cout << x;
    

{{ select(9) }}

  • 11
  • 1,31,3
  • 15,1715,17
  • 1,10,121,10,12
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    cnt = 0;
    for (i = 0; i < 5; i++)
    	for (j = 0; j < i; j++)
    		cnt += 1;
    
    cout << cnt;
    

{{ select(10) }}

  • 55
  • 1010
  • 2020
  • 3030
  1. 以下 C\tt C++ 代码用于输出 11001\sim 100(含)的整数平方数(完全平方数),如 161644 的平方,横线处应填写( )。

    for (i = 1; i < 100 + 1; i++)
    	if (__________)
    		cout << i << " ";
    

{{ select(11) }}

  • int(sqrt(i)) * int(sqrt(i)) = i
  • int(sqrt(i)) == sqrt(i)
  • int(sqrt(i)) * int(sqrt(i)) == i
  • int(sqrt(i)) == int(i/sqrt(i))
  1. 下面的 C\tt C++ 代码用于实现如下左图所示的效果,应在以下右图 C\tt C++ 代码中填入( )。

    12
    0
    01
    012
    0123
    01234
    012345
    0123456
    01234567
    012345678
    0123456789
    01234567890
    012345678901
    
    cin >> N;
    for (i = 0; i < N; i++) {
    	nowNum = 0;
    	for (j = 0; j < i + 1; j++) {
    		cout << nowNum << "";
    		nowNum += 1;
    		if (nowNum == 10)
    			nowNum = 0;
    	}
    }
    

{{ select(12) }}

  • 与第 88 行下面填入一行:cout << nowNum;
  • 与第 22 行下面填入一行:cout << endl;
  • 与第 77 行下面填入一行:cout << nowNum;
  • 与第 99 行下面填入一行:cout << endl;
  1. 某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的( )。

{{ select(13) }}

  • 麦克风
  • 扬声器
  • 油量表
  • 传感器
  1. 现代计算机是指电子计算机,它所基于的是( )体系结构。

{{ select(14) }}

  • 艾伦·图灵
  • 冯·诺依曼
  • 阿塔纳索夫
  • 埃克特 - 莫克利
  1. 输入一个正整数 NN,想找出它所有相邻的因数对,比如,输入 1212,因数对有 (1,2)(1,2)(2,3)(2,3)(3,4)(3,4)。下面哪段代 码找不到所有的因数对?( )

{{ select(15) }}

  • for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
  • for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
  • for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);
  • for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

二、判断题(每题 2 分,共 20 分)

  1. C\tt C++ 表达式 -7/2 的值为整数 3-3。( )

{{ select(16) }}

  • 正确
  • 错误
  1. C\tt C++ 表达式 2*int('9')*2 的值为 3636。( )

{{ select(17) }}

  • 正确
  • 错误
  1. C\tt C++ 表达式 3+2 && 5-5 的值为 false\tt false。( )

{{ select(18) }}

  • 正确
  • 错误
  1. C\tt C++ 代码中,执行 srand(0)\tt srand(0) 后连续两次执行 rand()\tt rand() 的结果相等。( )

{{ select(19) }}

  • 正确
  • 错误
  1. C\tt C++ 代码中 while (1) {...} 的判断条件不是逻辑值,将导致语法错误。( )

{{ select(20) }}

  • 正确
  • 错误
  1. 执行以下 C\tt C++ 代码后将输出 00。( )

    Sum = 0;
    for (i = -500; i < 500; i++)
    	Sum += i;
    
    cout << Sum;
    

{{ select(21) }}

  • 正确
  • 错误
  1. C\tt C++ 代码中,运算符只能处理相同的数据类型,不同类型之间必须转换为相同的数据类型。( )

{{ select(22) }}

  • 正确
  • 错误
  1. C\tt C++ 代码中,虽然变量都有数据类型,但同一个变量也可以先后用不同类型的值赋值。( )

{{ select(23) }}

  • 正确
  • 错误
  1. 小杨最近在准备考 GESP\tt GESP,他用的 Dev C\tt Dev\ C++ 来练习和运行程序,所以 Dev C\tt Dev\ C++ 也是一个小型操作系统。( )

{{ select(24) }}

  • 正确
  • 错误
  1. 任何一个 while 循环都可以转化为等价的 for 循环。( )

{{ select(25) }}

  • 正确
  • 错误