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 2 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
    _AnsHUMAN_
    wrote on last edited by
    #3

    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 1 Reply Last reply
    0
    • 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.

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

      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 1 Reply Last reply
      0
      • 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