下面程序段的运行结果是( )。 char *p="abcdefgh"; p+=3; printf("%dn",strlen(strcpy(p,"ABCD")

下面程序段的运行结果是( )。 char *p="abcdefgh"; p+=3; printf("%dn",strlen(strcpy(p,"ABCD"),第1张

我也不知道,身边也没有c的编译器,网上看了看。首先strcpy(p,"ABCD")这句是说。将ABCD赋值个p,他们之间是怎么赋值的呢,让p指针指向“A”的地址,如果取值的话就*P拿到A了。这个函数返回的值是目标串的地址,也就是p啦,那么p是个指针怎么算地址的长度呢,其实就是strlen("ABCD")啦,为什么,计算机知道的啦,因为p指向了“ABCD”首地址了,而c语言中默认在ABCD后加个结束符的,所以答案就是4了。

答: B、1234

int x=1234

do { printf("%2d",x--) }while(!x)

do 循环,第一次是无条件进入,这时 x=1234。

进打印语句,输出参数 x--, 是后缀自减1,在表达式中 x 不变,保持 1234,打印出1234,出了表达式再减1成 1233。所以循环语句可以看成:

do {

printf("%2d",x)

x=x-1

}while(!x)

x=1233 大于 0 即真 等于 1。 所以 !x 等于 0, while 循环结束。

(输出格式 %2d 是 输出整型数占2位。但 c/c++语言 另有规定,当给的占位数不够数据用时,按数的实际需要 占位 输出。)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/10880115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存