回 帖 发 新 帖 刷新版面

主题:自学C++遇到问题只有上网求教了.

本人在自学C++时遇到一些题不懂,特选两题网上求助:
1.若函数f的原型说明为
 int f(char a,char *b=NULL,double c=0.0);
 则以下调用函数f的选项中存在语法错误的是_.
 A.f(99)   B.f('A',4.5)   C.f('A',"123")   D.f((char)65,"123")
  正确答案是B

2.设有语句:
 int i;
  char *s="a\04+04\'\0\'\b";
   for(i=0;*s++;i++);
  执行上述语句后,变量i的值为_
  正确答案为6.

第一题对于错误的答案为什么错?我不清楚.

第二题做出几种算法都得到同一答案,但我却不知哪种算法是正确的.

希望得到朋友们的帮助.

回复列表 (共2个回复)

沙发

1 里 B 中 'A'和char a 对应,4.5不能和char *b对应,如果第二个参数用默认的
  char *b,那么第三个参数也要用默认的double,就像答案A 
2 for循环运行到*s=\0结束 char *s里有字符a ,\04, +, 0, 4,\',\0,\',\b,运行到
   *s++=\0就结束了 ,此时i=6

板凳

万分感谢luxx的指教!我完全清楚了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册