1、int a = 0,b = 0;
do{
–c;
a = a - 1;
}
while(a > 0);

c的结果应该是-1;因为要先判断是有符号数还是无符号数,声明为int表示有符号数为,循环体执行一次,c = -1,如果c是无符号数,则相减会变为一个很大的数,因为无符号数的小数 - 无符号数的大数=小数+大数的补码。

总结:一般在这种相减且判断循环次数时,一定要留意数据类型

2、*++this; //指针解引用操作符优先级大于但目运算符++,故不用加括号,先取值,然后对值++

3、在公有继承中,父类中只有公有成员对子类对象是可见的 (这是正确的)。如下图:
牛客网c++/c几道易忘题目
因为protected被继承,在子类内是可见的,但对于子类对象是不可见的

4、关于字符串中的转移字符: printf(“a\bre’hi’y\\bou\n”)

上面printf中包含的转移字符一共有6个,其中‘\b’是退格符,输出时将光标往左边回退一个位置,‘’’为单引号,‘\’为\字符,‘\n’为回车换行符。

所以结果应该为 re’hi’you

5、不能统计一行输入字符个数的是:
n=0;
for(ch=getchar();ch!=’\n’;n++);

因为对于for循环,其初始条件只执行一次,因此ch只从输入流取一个字符,之后就再不会取字符,因此会造成死循环。

相关文章:

  • 2022-01-22
  • 2022-01-07
  • 2021-12-24
  • 2021-11-04
  • 2021-07-13
  • 2021-10-24
  • 2021-08-21
  • 2021-07-21
猜你喜欢
  • 2021-05-08
  • 2021-07-18
  • 2021-06-25
  • 2022-12-23
  • 2021-08-06
  • 2021-06-18
  • 2021-08-30
相关资源
相似解决方案