首页 > 试题广场 >

若有以下程序,则程序的输出结果是?

[单选题]

若有以下程序

#include<stdio.h>
int f (char x){
    return x*x%10;
}
main(){
    char a; 
    int b=0;
    for (a=0; a<5; a+=1){
        b =f(a);
        printf("%d",b);
    }
}

则程序的输出结果是

  • 014916
  • 01234
  • 01496
  • 00000
推荐
该题目中x*X%10即x和x相乘后,结果再对10求余操作。主函数中通过for语句使变量a从0到4进行取值;当a=0时,调用函数f后,返回值为0赋给b,并且进行字符输出;当a=1时,返回值为1赋给b,并且进行字符输出;当a=2时,返回值为4赋给b,并且进行字符输出;当a=3时,返回值为9赋给b,并且进行字符输出;当a=4时,返回值为6赋给b,并且进行字符输出。因此C选项正确。
编辑于 2015-02-03 20:45:09 回复(0)
*优先级高于%,因此x*x%10相当于(x*x)%10,答案就很容易得出来了
发表于 2016-08-09 14:06:52 回复(1)
在for循环时,a的赋值时0,而不是字符‘0’,此时a代表空字符,a=1时代表标题开始字符,所以函数内部进行相乘时转换的ASCII值仍然是0和1
发表于 2018-06-29 15:54:47 回复(0)
发表于 2020-08-05 12:03:48 回复(0)


发表于 2017-05-26 22:23:59 回复(0)
这个不是用asc码吗
发表于 2016-09-18 10:21:22 回复(2)

结合方向左到右

发表于 2020-02-24 21:01:57 回复(0)
*是2级运算符,%是3级运算符,所以优先算*运算
发表于 2022-07-11 11:11:24 回复(0)
注意x *x
发表于 2019-07-05 09:45:01 回复(0)
这题主要想考察的是类型转换。
发表于 2017-09-03 17:10:26 回复(0)
主函数中char a是不是错了?应该是int类型
发表于 2017-08-20 20:46:22 回复(3)
结合律
发表于 2017-03-09 07:52:25 回复(0)