下面程序段的运行结果是( )。 char*p=" %d,a=%d,b=%d\n"; int a=111,b=10,c; c=a%b; p+=3; printf(p,c,a,b);

admin2009-02-15  38

问题 下面程序段的运行结果是(    )。    char*p="  %d,a=%d,b=%d\n";    int a=111,b=10,c;    c=a%b;    p+=3;    printf(p,c,a,b);

选项 A、1,a=111,b=10
B、a=1,b=111
C、a=111,b=10
D、以上结果都不对

答案2

解析 题中字符指针p指向了字符串“%d,a =%d,b=%d\n”,c=a%b=111%10=1,p+=3使指针p向后移动了3个字符的位置。printf(p,c,a,b)相当于printf(“a=%d,b=%d\n”,c,a,b);,格式控制串指明输出两个数据,输出项有3项,则最后一项不输出,所以答案为B)。注意:格式输出函数scanf的使用。
转载请注明原文地址:https://kaotiyun.com/show/evXp777K
0

最新回复(0)