-
下面C++代码段执行后的输出是____。
int a=3,b=4;
cout<<"a+b="<<a+b;
答案: a+b=7
解析: cout 语句先输出字符串 “a+b=”,然后计算 a+b 的值 7 并输出,中间无换行。
-
C++语句 cout << (2, 3, “23”) 的输出为 2, 3, 23 。____(√/×)
答案: ×
解析: 逗号运算符的求值结果为最后一个表达式的值。因此,整个表达式 (2, 3, “23”) 的值是字符串 “23”,输出为 23。
-
C++语句 cout << (2 * 3, 3 % 10, 2+3) 的输出为 6,3,5 。____(√/×)
答案: ×
解析: 逗号运算符返回最后一个表达式的值。(2 * 3, 3 % 10, 2+3) 的值为 5,所以输出是 5。
-
C++语句 cout << “5%2=” << 5 % 2 执行后的输出是____。
答案: 5%2=1
解析: cout 先输出字符串 “5%2=”,然后输出 5 % 2 的计算结果 1。
-
执行C++语句 cin >> a 时如果输入 5+2,下述说法正确的是( )。
A. 变量a将被赋值为整数7
B. 变量a将被赋值为字符串,字符串内容为5+2
C. 语句执行将报错,不能输入表达式
D. 依赖于变量a的类型。如果没有定义,会有编译错误
答案: D
解析: C++是编译型语言,变量 a 必须在编译时确定类型。如果 a 未定义,代码无法通过编译。如果 a 是整型,cin >> a 会读取第一个遇到的整数 5,+2 会留在输入缓冲区中。
-
下面C++代码执行后的输出是____。
int a=1;
cout<<"a+1= "<<a+1<<endl;
答案: a+1= 2
解析: 输出字符串 “a+1= “,注意有一个空格,然后输出表达式 a+1 的结果 2,最后换行。
-
下面C++代码执行后的输出是____。
int a = 1;
printf("a+1=%d\n", a+1);
答案: a+1=2
解析: printf 中 %d 是整型格式化输出占位符,会被后面参数 a+1 的值 2 替换。
-
C++语言中下面可以完成数据输入的语句是( )。
A. printf语句
B. scanf语句
C. default语句
D. cout语句
答案: B
解析: scanf 是C语言标准输入函数,在C++中也可用。cin 是C++更常用的输入方式,但选项中没有。printf 和 cout 用于输出,default 是 switch 语句中的关键字。
-
C++语句 printf(“%d#%d&”,2,3) 执行后输出的是 2[#3](javascript:;)&。 ____(√/×)
答案: ×
解析: 该语句会输出 2#3&。%d 会被依次替换为 2 和 3,# 和 & 是普通字符,原样输出。
-
C++函数 scanf() 必须含有参数,且其参数为字符串型字面量,其功能是提示输入。____(√/×)
答案: ×
解析: scanf 的第一个参数是格式化字符串,用于指定输入数据的格式和类型,并非用于“提示输入”。提示输入通常应使用 printf 或 cout 先输出提示信息。
-
C++语句 printf(“5%%2={%d}\n”,5 % 2) 执行后的输出是____。
答案: 5%2={1}
解析: 在格式化字符串中,%% 用于输出一个百分号字符 %。%d 被 5%2 的结果 1 替换。
-
对整型变量i,执行C++语句 cin >> i, cout << i 时如果输入 5+2 ,下述说法正确的是( )。
A. 将输出整数7
B. 将输出 5
C. 语句执行将报错,输入表达式不能作为输出的参数
D. 语句能执行,但输出内容不确定
答案: B
解析: cin >> i 会从输入中读取第一个整数 5 并赋值给 i,随后的 +2 不会被处理。cout << i 输出 i 的值 5。
-
下面C++代码执行后的输出是____。
float a;
a = 101.101;
a = 101;
printf("a+1={%.0f}",a+1);
答案: a+1={102}
解析: 变量 a 先被赋值为 101.101,后被重新赋值为整数 101(自动转换为浮点数 101.0)。printf 中的 %.0f 表示以浮点数格式输出,但不保留小数部分,因此 a+1 即 102.0 输出为 102。
-
C++的整型 N 被赋值为5,语句 printf(“%d*2”,N) 执行后将输出 10 。____(√/×)
答案: ×
解析: 该语句会输出 5*2。%d 被替换为 N 的值 5,*2 是普通字符原样输出,并不会进行计算。
-
在C++中,下列表达式错误的是( )。
A. cout << “Hello,GESP!” << endl;
B. cout << ‘Hello,GESP!’ << endl;
C. cout << “”“Hello,GESP!”“” << endl;
D. cout << “Hello,GESP!’ << endl;
答案: D
解析: D选项字符串的引号不匹配,以双引号开始,却以单引号结束,会导致编译错误。B选项使用单引号表示字符,但 ‘Hello,GESP!’ 是多字符常量,行为由编译器定义,通常不用于输出字符串。A正确。C使用三个双引号,在C++中不是标准字符串字面量语法。
-
C++语句 printf(“6%2={%d}”, 6%2) 执行后的输出是 ____。
答案: 6%2={0}
解析: 6%2 求余结果为 0,替换 %d。注意第一个 % 是普通字符,第二个 % 与 d 组成占位符。
-
成功执行下面的C++代码,先后从键盘上输入5回车和2回车,输出是( )。
cin >> a;
cin >> b;
cout << a + b;
A. 将输出整数7
B. 将输出52,5和2之间没有空格
C. 将输出5和2,5和2之间有空格
D. 执行结果不确定,因为代码段没有显示a和b的数据类型
答案: D
解析: 代码片段没有声明变量 a 和 b 的类型。如果它们是整型,则输入 5 和 2 后输出 7;如果是字符型,则可能输出其ASCII码的和或其他结果。由于类型未知,结果无法确定。
-
N是C++程序中的整型变量,则语句 scanf(“%d”, &N) 能接收形如正整数、负整数和0输入,但如果输入含字母或带小数点数,将导致无法执行。____(√/×)
答案: ×
解析: scanf(“%d”, &N) 要求输入匹配十进制整数格式。如果输入包含字母或小数点,scanf 会读取失败,变量 N 的值保持不变(或未定义),程序会继续执行后面的语句,不会“无法执行”(如崩溃),除非后续代码依赖 N 的有效值。
-
在C++代码中整型变量X被赋值为20.24,则 cout << (X++, X+1) / 10 执行后输出的是 2.124 。____(√/×)
答案: ×
解析: X 是整型变量,赋值为 20.24 会发生截断,X 的实际值为 20。表达式 (X++, X+1) 先执行 X++(X变为21,表达式值为20),然后计算 X+1(21+1=22),逗号表达式的结果为 22。22 / 10 是整数除法,结果为 2。因此输出为 2。
-
有关下列C++代码的说法 ,正确的是( )。
printf("Hello,GESP!");
A. 配对双引号内 ,不可以有汉字
B. 配对双引号可以相应改变为英⽂单引号⽽输出效果不变
C. 配对双引号可以相应改变为三个连续英⽂单引号⽽输出效果不变
D. 配对双引号可以相应改变为三个连续英⽂双引号⽽输出效果不变
答案: A
解析: A正确,C++标准中,字符串字面量应使用双引号,单引号用于字符。双引号内可以有汉字(如果源文件和编译器支持对应编码)。B、C、D均错误,改变引号类型或数量将导致语法错误。
-
X是C++语⾔的基本类型变量 ,则语句 cin>>X, cout <<X 能接收键盘输⼊并原样输出。____(√/×)
答案: ×
解析: “原样输出”的说法不准确。对于数值类型(如int, float),cin 读取的是数字的文本形式并转换为内部二进制表示,cout 输出时再将二进制表示转换回文本数字,这个过程是“值”的传递,并非字符级的“原样”。对于字符类型(char),输入空格、换行符等控制字符时,cin 的行为可能导致其不被读取,从而无法“原样”输出。
-
C++语句 cout << (3,2) 执⾏后 ,将输出3和2 ,且3和2之间有逗号间隔。 ____(√/×)
答案: ×
解析: 逗号表达式 (3,2) 的求值结果是最后一个表达式的值 2。因此只输出一个整数 2。
-
在C++中 ,对浮点变量 float f ,则语句 cin >> f; cout << (f<1); 在输⼊是 2e-1 时,输出是0。____(√/×)
答案: ×
解析: 2e-1 是科学计数法,表示 0.2。cin >> f 能正确读取。条件 f<1(即 0.2<1)为真,在C++中布尔值 true 用 cout 输出时默认为 1。因此输出是 1,不是 0。
-
下面C++语句( )执行后的输出是 __ 0322$$ 。
A. printf(“__ %2d%02d$$”, 3, 22)
B. printf(“__ %02d%2d$$”, 3, 22)
C. printf(“__ %02d%02d$$$$”, 3, 22)
D. printf(“____ %02d%02d$$$$”, 3, 22)
答案: B
解析: %2d:输出至少2位宽,不足补空格,3输出为 ” 3″。%02d:输出至少2位宽,不足补0,22本身就是2位,输出”22″。组合起来就是 __ 0322$$(_代表空格)。
-
有关下列C++代码的说法,错误的是( )。
printf("我爱码代码!");
A. 配对双引号内的汉字改为英文 Hello ,C++代码能正确执行
B. 配对双引号内的汉字改为 Hello代码! ,C++代码能正确执行
C. 代码中的每个双引号,都可以改为两个单引号
D. 代码中的每个双引号,都可以改为三个双引号
答案: C
解析: C选项错误。printf 的参数必须是字符串,应用双引号括起来。将其改为两个单引号(如 ’ ‘)在语法上是两个独立的字符常量,不能构成一个字符串参数,会导致编译错误。D选项,三个双引号 ””” 不是C++标准语法,通常会导致编译错误。A和B选项描述的是字符串内容更改,只要符合语法(如B中字符串包含中文和英文),代码就能执行。
-
下面C++代码执行后的输出是____。
int N = 10;
printf("{N}*{N}={%d*%d}", N, N, N * N);
答案: {N}*{N}={10*10}
解析: printf 的格式化字符串中,前两个 %d 分别被参数 N (10) 替换,第三个 %d 没有对应的参数,这属于未定义行为,通常会导致错误的输出或程序崩溃。但按题目意图和常见编译器行为,可能只匹配前两个参数,输出 {N}*{N}={10*10},最后一个 N*N 对应的 %d 被忽略或输出乱码。严谨答案应为“输出结果未定义”。但结合选择题环境,考察点是格式化匹配,可能预期输出 {N}*{N}={10*10}。
-
对下列C++的代码,描述准确的是( )。
int first = 10;
printf("{%d}\n", First)
A. 执行后输出10
B. 执行后输出 {First}
C. 执行后输出 “{First}”
D. 编译报错,因为First应该是first
答案: D
解析: C++区分大小写。变量声明为 first,但在 printf 中使用了未定义的标识符 First,编译器会报错“First was not declared in this scope”。
-
C++的 int 类型变量 X 的值为8,如果执行 cout<< (++X)++; ,则输出和执行后 X 的值分别是____。
答案: 输出9,X为10
解析: 表达式 (++X)++ 包含前自增和后自增。++X 先将X从8增加为9,并返回X的引用(值为9)。然后对这个引用(即X本身)进行后自增 (9)++,后自增表达式返回自增前的值 9 作为整个表达式的结果输出。但是,后自增操作本身会执行,X的值最终变为 10。
-
下面C++代码执行后的输出是____。
int a,b;
a=3;
b=4;
prinff("a+b=%02d[#a](javascript:;)+b={a+b}",a+b,a+b)
答案: 代码无法编译通过
解析: 函数名拼写错误,prinff 应为 printf。此外,格式化字符串中有两个格式说明符 %02d 和 %d(隐藏在 {a+b} 中?),但只提供了一个参数 a+b,参数数量不匹配。即使纠正拼写,这也是一个运行时错误。
-
执行C++代码 cout << (12 + 12.12) 将报错,因为12是int类型,而12.12是float类型,不同类型不能直接运算。____(√/×)
答案: ×
解析: C++支持隐式类型转换。在进行 12 + 12.12 运算时,整型 12 会先被提升为 double 类型(12.12 默认是 double),然后进行双精度浮点数加法,结果为 24.12,可以被 cout 正确输出,不会报错。
-
下面的C++代码中变量N和M都是整型,则执行时如果先输入10并输入一个制表符后输入20并回车,其输出的数值是____。
scanf("%d", &N);
scanf("%d", &M);
printf("{%d}",N+M);
答案: {30}
解析: scanf 的 %d 会跳过输入中的空白字符(包括空格、制表符、换行符)直到找到数字。因此,第一个 scanf 读取 10,第二个 scanf 跳过制表符读取 20,N+M 等于 30。
-
执行C++代码 cout << (12 + 12.12) 将报错,因为 12 是 int 类型,而 12.12 是 floa t类型,不同类型不能直接运算。____(√/×)
答案: ×
解析: 此题与第30题重复。C++在算术运算前会进行隐式类型转换,将低精度类型向高精度类型转换。int 类型的 12 会被转换为 double 类型,然后与 12.12 相加,得到 double 类型结果,cout 可以正常输出。