Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. C++ interview question

C++ interview question

Scheduled Pinned Locked Moved C / C++ / MFC
questionc++career
16 Posts 8 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M minkowski

    Hi, I was asked the below in an interview:- What does the following code below do? char nextChar(); int main() { char ch; ch = nextChar() != '\0'; std::cout << (int) ch; return 0; } I said it would not compile since there is no definition (only a declaration) of the function nextChar() but the answer was 0 or 1. I am not sure why and also how can you use the != operator outside a if or while statement (i.e. something that expects true or false ? Thank you for any input.

    _ Offline
    _ Offline
    _Superman_
    wrote on last edited by
    #5

    minkowski wrote:

    ch = nextChar() != '\0';

    This is what the question is aiming at. It's a matter of operator precedence.

    «_Superman_» I love work. It gives me something to do between weekends.

    1 Reply Last reply
    0
    • C Cedric Moonen

      minkowski wrote:

      nextChar() != '\0'

      This part of the code actually "returns" something (true or false). You then assign the result of the comparison into the ch variable. true is usually 1 and false is 0. So, your character will contain either 0 or 1. If you try to ouptut as it is (so, without the casting to an integer), you will end up printing the character whose value is 0 or 1 (so, not printable character), that's why you need to cast it to an integer. I guess that having a body for your function was not really important for the interview question: they simply have a function that returns a character...

      Cédric Moonen Software developer
      Charting control [v2.0] OpenGL game tutorial in C++

      M Offline
      M Offline
      minkowski
      wrote on last edited by
      #6

      Hi ya, Thanks for your reply. Yes as you correctly said the answer is 0 or 1. I got confused because of the lack of function definition. Can I ask how it is possible that you can use the != operator without being enclosed in a statement that expects true / false ? e.g. while() , if() Thanks for any information.

      C 1 Reply Last reply
      0
      • M minkowski

        Hi ya, Thanks for your reply. Yes as you correctly said the answer is 0 or 1. I got confused because of the lack of function definition. Can I ask how it is possible that you can use the != operator without being enclosed in a statement that expects true / false ? e.g. while() , if() Thanks for any information.

        C Offline
        C Offline
        CPallini
        wrote on last edited by
        #7

        minkowski wrote:

        Can I ask how it is possible that you can use the != operator without being enclosed in a statement that expects

        != is a binary operator that may be used in any expression. :)

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
        [My articles]

        1 Reply Last reply
        0
        • _ _AnsHUMAN_

          Yes you should get a linker error, due to the missing function definition

          You need to google first, if you have "It's urgent please" mentioned in your question. ;-)_AnShUmAn_

          M Offline
          M Offline
          molesworth
          wrote on last edited by
          #8

          Most interview questions just use code fragments, and you're supposed to assume functions exist in other libraries (that's generally spelled out in the interview). Mind you, this is a very simple example question and probably meant as a warm up, not actually a real test. You should see the kinds of questions we ask in our interviews (although coding tests are only a small part of them).

          There are three kinds of people in the world - those who can count and those who can't...

          M 1 Reply Last reply
          0
          • M molesworth

            Most interview questions just use code fragments, and you're supposed to assume functions exist in other libraries (that's generally spelled out in the interview). Mind you, this is a very simple example question and probably meant as a warm up, not actually a real test. You should see the kinds of questions we ask in our interviews (although coding tests are only a small part of them).

            There are three kinds of people in the world - those who can count and those who can't...

            M Offline
            M Offline
            minkowski
            wrote on last edited by
            #9

            Hi ya, Thanks for your post, was wondering if you could put up some of your interview code questions? :)

            M 1 Reply Last reply
            0
            • C CPallini

              minkowski wrote:

              I said it would not compile since there is no definition (only a declaration) of the function nextChar()

              Your point is correct (please note, however, that you would get a linker error, not a compiler one). Now suppose nextChar is defined, somewhere (it's actual implementation doesn't matter).

              minkowski wrote:

              but the answer was 0 or 1. I am not sure why and also how can you use the != operator outside a if or while statement (i.e. something that expects true or false ?

              nextChar() != '\0';

              the above expression evaluates true whenever nextChar return a value different from '\0', false otherwise. Since true is 1 [^] (false is 0) an implicit cast from bool to char (that is an integer type) happens and you get ch=1 (or ch=0). :) BTW Are you that Minkowski [^]? :-D

              If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
              This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
              [My articles]

              T Offline
              T Offline
              toxcct
              wrote on last edited by
              #10

              CPallini wrote:

              W Are you that Minkowski [^]?

              or that one[^] ?!

              [VisualCalc][Binary Guide][CommDialogs] | [Forums Guidelines]

              M 1 Reply Last reply
              0
              • T toxcct

                CPallini wrote:

                W Are you that Minkowski [^]?

                or that one[^] ?!

                [VisualCalc][Binary Guide][CommDialogs] | [Forums Guidelines]

                M Offline
                M Offline
                minkowski
                wrote on last edited by
                #11

                Ha ha, nope I am not that Minkowski although that was quite a story ! :)

                C 1 Reply Last reply
                0
                • M minkowski

                  Ha ha, nope I am not that Minkowski although that was quite a story ! :)

                  C Offline
                  C Offline
                  CPallini
                  wrote on last edited by
                  #12

                  :doh: I was awaiting for some geometry hints... :-D

                  If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                  This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                  [My articles]

                  U 1 Reply Last reply
                  0
                  • C CPallini

                    :doh: I was awaiting for some geometry hints... :-D

                    If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                    This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                    [My articles]

                    U Offline
                    U Offline
                    UserNameless
                    wrote on last edited by
                    #13

                    CPallini wrote:

                    I was awaiting for some geometry hints...

                    :suss: shhhh. dont' tell anyone, but i'm letting it leak out - a triangle... has 3 sides. shhh. don't let anyone know though

                    C 1 Reply Last reply
                    0
                    • M minkowski

                      Hi ya, Thanks for your post, was wondering if you could put up some of your interview code questions? :)

                      M Offline
                      M Offline
                      molesworth
                      wrote on last edited by
                      #14

                      LOL - I wouldn't be allowed to do that, just in case anyone reading here comes in for an interview (which is quite possible) :-D

                      There are three kinds of people in the world - those who can count and those who can't...

                      1 Reply Last reply
                      0
                      • U UserNameless

                        CPallini wrote:

                        I was awaiting for some geometry hints...

                        :suss: shhhh. dont' tell anyone, but i'm letting it leak out - a triangle... has 3 sides. shhh. don't let anyone know though

                        C Offline
                        C Offline
                        CPallini
                        wrote on last edited by
                        #15

                        UserNameless wrote:

                        a triangle... has 3 sides.

                        That's the reason geometry is soooo difficult to grasp: triangle => three sides...while plain common sense would suggest triangle => three angles, or, at least, triside => three sides. :~ :-D

                        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                        [My articles]

                        M 1 Reply Last reply
                        0
                        • C CPallini

                          UserNameless wrote:

                          a triangle... has 3 sides.

                          That's the reason geometry is soooo difficult to grasp: triangle => three sides...while plain common sense would suggest triangle => three angles, or, at least, triside => three sides. :~ :-D

                          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                          [My articles]

                          M Offline
                          M Offline
                          minkowski
                          wrote on last edited by
                          #16

                          so it should be a quad - right - angle for a rectangle ? :)

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups