Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

मेमोरी आवंटन और सी में संकलन प्रक्रिया पर एमसीक्यू

यहां हम मेमोरी आवंटन और संकलन प्रक्रियाओं पर कुछ एमसीक्यू प्रश्न देखेंगे।

प्रश्न 1 -निम्नलिखित कोड का आउटपुट क्या होगा -

#include <stdio.h>
#include <stdlib.h>
int main() {
   union my_union {
      int i;
      float f;
      char c;
   };
   union my_union* u;
   u = (union my_union*)malloc(sizeof(union my_union));
   u->f = 20.60f;
   printf("%f", u->f);
}

विकल्प -

  • कचरा मूल्य
  • 20.600000
  • सिंटैक्स त्रुटि
  • 20.6

स्पष्टीकरण

यूनियनों का उपयोग करके, हम कई प्रकार के डेटा को रखने के लिए एक ही मेमोरी लोकेशन का उपयोग कर सकते हैं। संघ के सभी सदस्य उसी मेमोरी लोकेशन का उपयोग करते हैं जिसमें अधिकतम स्थान होता है। यहां फ्लोट का प्रयोग किया जाता है, जिसमें 20.60f =20.600000 होता है। तो उत्तर B सही है।

प्रश्न 2 - संकलन प्रक्रिया का सही क्रम क्या है -

विकल्प -

  • असेंबलर, कंपाइलर, प्रीप्रोसेसर, लिंकिंग
  • कंपाइलर, असेंबलर, प्रीप्रोसेसर, लिंकिंग
  • प्रीप्रोसेसर, कंपाइलर, असेंबलर, लिंकिंग
  • असेंबलर, कंपाइलर, लिंकिंग, प्रीप्रोसेसर

स्पष्टीकरण -

विकल्प सी सही है, पहले यह कोड को प्रीप्रोसेस करता है, फिर इसे संकलित करता है, उसके बाद यह असेंबली स्तर कोड, या ऑब्जेक्ट कोड बनाता है, फिर लिंकिंग की जाती है।

प्रश्न 3 -निम्नलिखित में से कौन सा कथन सत्य है?

विकल्प -

  • कोड को लिंक करने के दौरान #stdio.h द्वारा प्रतिस्थापित शामिल करें
  • प्रीप्रोसेसिंग के दौरान कोड #include को stdio.h से बदल देता है
  • निष्पादन के दौरान कोड #include को stdio.h से बदल देता है
  • कोड को संपादित करने के दौरान #stdio.h द्वारा प्रतिस्थापित शामिल करें

स्पष्टीकरण -

विकल्प बी सही है। सबसे पहले, यह प्रीप्रोसेस्ड कोड बनाता है, उस चरण में, यह #include स्टेटमेंट में उल्लिखित फ़ाइल में मौजूद कोड को कोड में जोड़ता है और फिर कंपाइलर को भेजा जाता है।

प्रश्न 4 - fflush () फ़ंक्शन का उपयोग करने का उद्देश्य -

विकल्प -

  • सभी स्ट्रीम और निर्दिष्ट स्ट्रीम फ्लश करने के लिए
  • केवल निर्दिष्ट स्ट्रीम को फ्लश करने के लिए
  • इनपुट-आउटपुट बफर फ्लश करने के लिए
  • यह अमान्य लाइब्रेरी फ़ंक्शन है

स्पष्टीकरण -

इस फ़ंक्शन का उपयोग केवल आउटपुट स्ट्रीम को फ्लश करने के लिए किया जाता है। यह आउटपुट बफर को साफ़ करता है और आउटपुट को कंसोल पर भेजता है। विकल्प A सही है।

प्रश्न 5 -निम्नलिखित कोड की त्रुटि को इंगित करें -

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
   char* ptr;
   *ptr = (int*)malloc(30);
   strcpy(ptr, "ABC");
   printf("%s", ptr);
   free(ptr);
}

विकल्प -

  • strcpy() कथन में त्रुटि
  • त्रुटि *ptr =(int*)malloc(30);
  • . में
  • मुफ़्त में त्रुटि(ptr)
  • कोई त्रुटि नहीं

स्पष्टीकरण -

विकल्प बी सही है। यहां यह बिना किसी कास्ट के पॉइंटर से पूर्णांक बनाता है


  1. Windows 11/10 में भौतिक स्मृति आवंटन, स्मृति सीमा और स्मृति स्थिति

    Windows 11/10 रिपोर्ट करता है कि वर्तमान में आपके कंप्यूटर पर कितनी भौतिक मेमोरी स्थापित है और साथ ही ऑपरेटिंग सिस्टम और हार्डवेयर आरक्षित मेमोरी के लिए कितनी मेमोरी उपलब्ध है। Windows 111/0 दिखा सकता है कि प्रयोग करने योग्य मेमोरी स्थापित मेमोरी (RAM) से कम हो सकती है! सांकेतिक प्रयोग करने योग्य मे

  1. फिक्स:wsappx . द्वारा उच्च CPU और मेमोरी उपयोग

    Wsappx एक प्रक्रिया है जिसे आप कार्य प्रबंधक की प्रक्रिया सूची में चलते हुए देखेंगे। आप सोच रहे होंगे कि यह प्रक्रिया क्या है या आप सोच रहे होंगे कि यह प्रक्रिया CPU के बहुत अधिक उपयोग का कारण क्यों बन रही है। आप देखेंगे कि wsappx का CPU उपयोग बेतरतीब ढंग से बढ़ता और घटता है। कभी-कभी, यह किसी भी महत

  1. Windows 10 में सिस्टम और कंप्रेस्ड मेमोरी द्वारा 100% डिस्क उपयोग को ठीक करें

    रैम में फ़ाइलों और फ़ोल्डरों को आवंटित करने के लिए उपयोग की जाने वाली प्रक्रिया के रूप में सिस्टम और संपीड़ित मेमोरी को विंडोज 10 में पेश किया गया था। आम तौर पर, यह सिस्टम और मेमोरी से संबंधित कार्यों को करने के लिए एक छोटी सी जगह का उपयोग करता है। समस्या तब उत्पन्न होती है जब वह प्रक्रिया जो स्थान