Computer in Hindi | Business in Hindi: c programming interview questions
Showing posts with label c programming interview questions. Show all posts
Showing posts with label c programming interview questions. Show all posts

Monday, March 22, 2021

c programming interview questions in Hindi

March 22, 2021 0
c programming interview questions in Hindi

c interview questions and answers for freshers


  • What is a local block in C programming?

एक स्थानीय ब्लॉक एक सी प्रोग्राम का कोई हिस्सा है जो बाएं ब्रेस ({) और दाएं ब्रेस (}) से घिरा है। C फ़ंक्शन में बाएँ और दाएँ ब्रेसिज़ होते हैं, और इसलिए दो ब्रेसिज़ के बीच कुछ भी local block में निहित होता है। यदि स्टेटमेंट या स्विच स्टेटमेंट में ब्रेसिज़ भी हो सकते हैं, तो इन दो ब्रेसेस के बीच कोड के हिस्से को local blockमाना जाएगा।

इसके अतिरिक्त, आप C फ़ंक्शन या कीवर्ड निर्माण की सहायता के बिना अपना स्थानीय ब्लॉक बनाना चाह सकते हैं। यह पूरी तरह से कानूनी ( legal) है। चर  (Variables)को  local blocks के भीतर घोषित किया जा सकता है, लेकिन उन्हें local blocks की शुरुआत में ही घोषित किया जाना चाहिए। इस तरह से घोषित चर ( Variables declared) केवल स्थानीय ब्लॉक के भीतर दिखाई देते हैं। स्थानीय ब्लॉक के भीतर घोषित किए गए डुप्लिकेट चर नाम स्थानीय ब्लॉक के बाहर घोषित किए गए समान नाम वाले चर पर पद (The preference) लेते हैं। यहाँ एक प्रोग्राम का एक उदाहरण है जो  local blocksका उपयोग करता है:

#include <stdio.h>
void main(void);
void main()
{
     /* Begin local block for function main() */
     int test_var = 10;
     printf("Test variable before the if statement: %d\n", test_var);
     if (test_var > 5)
     {
          /* Begin local block for "if" statement */
          int test_var = 5;
          printf("Test variable within the if statement: %d\n",
                 test_var);
          {
               /* Begin independent local block (not tied to
                  any function or keyword) */
               int test_var = 0;
               printf(
               "Test variable within the independent local block:%d\n",
               test_var);
          }
          /* End independent local block */
     }
     /* End local block for "if" statement */
     printf("Test variable after the if statement: %d\n", test_var);
}
/* End local block for function main() */

यह उदाहरण कार्यक्रम निम्नलिखित आउटपुट का उत्पादन करता है:


if कथन से पहले परीक्षण चर (Test variable): 10


if कथन में परीक्षण चर (Test variable): 5


independent local block के भीतर परीक्षण चर (Test variable): 0


if कथन के बाद परीक्षण चर (Test variable): 10


ध्यान दें कि जैसा कि प्रत्येक test_var को परिभाषित किया गया था, इसने पहले से निर्धारित test_var पर वरीयता प्राप्त की। यह भी ध्यान दें कि जब स्थानीय स्टेटमेंट समाप्त हो गया था, तो प्रोग्राम ने मूल test_var के दायरे को फिर से प्रस्तुत किया था, और इसका मूल्य 10 था।

c interview questions and answers for freshers
c programming interview questions in Hindi


 c interview questions 2 :- Should variables be stored in local blocks?

चरों के भंडारण के लिए स्थानीय ब्लॉकों का उपयोग असामान्य है और इसलिए केवल दुर्लभ अपवादों से बचा जाना चाहिए। इन अपवादों में से एक डिबगिंग उद्देश्यों के लिए होगा, जब आप अपने फ़ंक्शन के भीतर परीक्षण करने के लिए एक वैश्विक चर के स्थानीय उदाहरण की घोषणा करना चाह सकते हैं। जब आप अपने कार्यक्रम को वर्तमान संदर्भ में अधिक पठनीय बनाना चाहते हैं, तो आप स्थानीय ब्लॉक का उपयोग करना चाह सकते हैं।


कभी-कभी इसका उपयोग किए गए चर के करीब घोषित किया जाता है, जो आपके प्रोग्राम को अधिक पठनीय बनाता है। हालांकि, अच्छी तरह से लिखे गए कार्यक्रमों को आमतौर पर इस तरह से चर घोषित करने का सहारा नहीं लेना पड़ता है, और आपको स्थानीय ब्लॉक का उपयोग करने से बचना चाहिए।


  • When is a switch statement better than multiple if statements?

जब आप संख्यात्मक प्रकार के एक एकल चर के आधार पर दो से अधिक सशर्त अभिव्यक्तियों का उपयोग करते हैं, तो एक स्विच स्टेटमेंट आमतौर पर उपयोग करने के लिए सबसे अच्छा होता है। उदाहरण के लिए, कोड के बजाय

if (x == 1)
     printf("x is equal to one.\n");
else if (x == 2)
     printf("x is equal to two.\n");
else if (x == 3)
     printf("x is equal to three.\n");
else
     printf("x is not equal to one, two, or three.\n");

निम्नलिखित कोड पढ़ना और बनाए रखना आसान है:

switch (x)
{
     case 1:   printf("x is equal to one.\n");
                    break;
     case 2:   printf("x is equal to two.\n");
                    break;
     case 3:   printf("x is equal to three.\n");
                    break;
     default:  printf("x is not equal to one, two, or three.\n");
                    break;
}

ध्यान दें कि इस विधि को काम करने के लिए, सशर्त अभिव्यक्ति स्विच स्टेटमेंट का उपयोग करने के लिए संख्यात्मक प्रकार के एक चर पर आधारित होनी चाहिए। साथ ही, सशर्त अभिव्यक्ति एकल चर पर आधारित होनी चाहिए। उदाहरण के लिए, भले ही निम्न कथन में दो से अधिक शर्तें हों, यह स्विच स्टेटमेंट का उपयोग करने के लिए उम्मीदवार नहीं है क्योंकि यह स्ट्रिंग तुलनाओं पर आधारित है, न कि संख्यात्मक तुलनाओं पर:

char* name = "Lupto";
if (!stricmp(name, "Isaac"))
     printf("Your name means 'Laughter'.\n");
else if (!stricmp(name, "Amy"))
     printf("Your name means 'Beloved'.\n ");
else if (!stricmp(name, "Lloyd"))
     printf("Your name means 'Mysterious'.\n ");
else
     printf("I haven't a clue as to what your name means.\n");

  • Is a default case necessary in a switch statement?

नहीं, लेकिन त्रुटि-या तर्क-जाँच उद्देश्यों के लिए स्विच स्टेटमेंट में डिफ़ॉल्ट स्टेटमेंट डालना बुरा नहीं है। उदाहरण के लिए, निम्न स्विच कथन पूरी तरह से सामान्य है:

switch (char_code)
{
     case 'Y':
     case 'y': printf("You answered YES!\n");
               break;
     case 'N':
     case 'n': printf("You answered NO!\n");
               break;
}

हालांकि, इस स्विच स्टेटमेंट में एक अज्ञात चरित्र कोड पारित होने पर क्या होगा। कार्यक्रम कुछ भी नहीं छापेगा। यह एक अच्छा विचार होगा, इसलिए, डिफ़ॉल्ट स्थिति सम्मिलित करने के लिए जहां इस स्थिति का ध्यान रखा जाएगा:

...
     default:  printf("Unknown response: %d\n", char_code);
               break;
...

इसके अतिरिक्त, तर्क जाँच के लिए डिफ़ॉल्ट मामले काम में आते हैं। उदाहरण के लिए, यदि आपके स्विच स्टेटमेंट ने एक निश्चित संख्या में स्थितियां संभाला है और आपने तर्क की त्रुटि के लिए उन शर्तों के बाहर किसी भी मूल्य पर विचार किया है, तो आप एक डिफ़ॉल्ट केस सम्मिलित कर सकते हैं जो उस स्थिति को चिह्नित करेगा। निम्नलिखित उदाहरण पर विचार करें:

Example for c programming interview questions

void move_cursor(int direction)
{
     switch (direction)
     {
          case UP:     cursor_up();
                       break;
          case DOWN:   cursor_down();
                       break;
          case LEFT:   cursor_left();
                       break;
          case RIGHT:  cursor_right();
                       break;
          default:     printf("Logic error on line number %ld!!!\n",
                               __LINE__);
                       break;
     }
}