首页 > 试题广场 >

有以下程序运行结果为:

[单选题]
有以下程序运行结果为:
#include <iostream>
using namespace std;
char fun(char x, char y) {
	if (x < y)
		return x;
	return y;
}
int main() {
	int a = '1', b = '1', c = '2';
	cout << fun(fun(a, b), fun(b, c));
	return 0;
}
  • 运行出错
  • 2
  • 3
  • 1
第9行代码将字符型转换为整型a=49,b=49,c=50
第10行调用fun()函数时,由于fun()传递的参数是字符型,将整型变量a,b,c截断转换为字符型变量a,b,c;因此运行时不会出错。
答案是1,选D。
发表于 2016-06-28 19:36:44 回复(0)
cout直接输出fun的结果,即字符'1',若重新将结果赋值给int类型的,则结果为49。此题要注意字符和ASCII码的自动转化。
发表于 2015-10-17 23:44:10 回复(0)
fun(fun(a, b), fun(b, c)) =  fun(fun( '1' '1' ), fun( '1' '2' )) = fun( '1' , '1' ) =  '1'
发表于 2015-10-17 12:40:51 回复(1)

ASCII只是表示某个符号在计算机内的编码,它不分什么类型。数值型1和字符型‘1‘的ASCII码是一样的,都是49


发表于 2019-02-19 23:10:10 回复(0)
<p>我***了</p>
发表于 2020-12-26 23:53:15 回复(0)
字符先存成int十进制数,再转回char字符
发表于 2023-01-05 22:19:05 回复(0)
都是字符型的,就不用转换,可以直接比较就行
发表于 2016-08-10 09:29:18 回复(0)
C中可以自动向下转型?int转char不会出错吗
发表于 2015-10-18 00:49:59 回复(2)
自己计算出来是选D,但使用VS2019进行编译会报错。
发表于 2023-09-23 11:39:16 回复(0)
这是😅
发表于 2021-11-29 15:05:49 回复(0)
hhj
发表于 2021-08-10 14:45:31 回复(0)
int型传入函数可以被截为char
发表于 2021-03-29 20:06:07 回复(0)
发表于 2018-05-22 12:06:21 回复(0)
字符直接比较不需要转换
发表于 2016-08-17 08:55:52 回复(0)
D
编辑于 2015-11-27 13:01:40 回复(0)
D,题目是找出极小值
发表于 2015-10-18 20:35:18 回复(1)