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

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

MCQ प्रश्न और उत्तर

प्रश्न 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);
}

विकल्प:

  • A. कचरा मान
  • B. 20.600000
  • C. सिंटैक्स त्रुटि
  • D. 20.6

उत्तर: B (20.600000)

व्याख्या: यूनियन के सभी सदस्य समान मेमोरी स्थान साझा करते हैं। आकार सबसे बड़े सदस्य (यहां float, 4 बाइट्स) के बराबर होता है। u->f = 20.60f मान संग्रहीत करता है, और %f इसे 20.600000 के रूप में प्रिंट करता है।

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

विकल्प:

  • A. असेंबलर, कंपाइलर, प्रीप्रोसेसर, लिंकिंग
  • B. कंपाइलर, असेंबलर, प्रीप्रोसेसर, लिंकिंग
  • C. प्रीप्रोसेसर, कंपाइलर, असेंबलर, लिंकिंग
  • D. असेंबलर, कंपाइलर, लिंकिंग, प्रीप्रोसेसर

उत्तर: C

क्रम:

  1. प्रीप्रोसेसिंग: #include, #define, #ifdef विस्तार
  2. कंपाइलेशन: .c → .s (असेंबली कोड)
  3. असेंबली: .s → .o (ऑब्जेक्ट कोड)
  4. लिंकिंग: .o + लाइब्रेरी → एक्जीक्यूटेबल

प्रश्न 3: कौन सा कथन सत्य है?

विकल्प:

  • A. लिंकिंग के दौरान #include stdio.h से प्रतिस्थापित होता है
  • B. प्रीप्रोसेसिंग के दौरान #include stdio.h से प्रतिस्थापित होता है
  • C. निष्पादन के दौरान #include stdio.h से प्रतिस्थापित होता है
  • D. संपादन के दौरान #include stdio.h से प्रतिस्थापित होता है

उत्तर: B

व्याख्या: प्रीप्रोसेसर #include निर्देशों को संभालता है, हेडर फ़ाइल की सामग्री को स्रोत कोड में डालता है कंपाइलेशन से पहले।

प्रश्न 4: fflush() फ़ंक्शन का उद्देश्य क्या है?

विकल्प:

  • A. सभी स्ट्रीम और निर्दिष्ट स्ट्रीम फ्लश करें
  • B. केवल निर्दिष्ट स्ट्रीम फ्लश करें
  • C. इनपुट-आउटपुट बफर फ्लश करें
  • D. अमान्य लाइब्रेरी फ़ंक्शन

उत्तर: A

व्याख्या: fflush() आउटपुट स्ट्रीम को फ्लश करता है (बफर को डिवाइस पर लिखता है)। fflush(NULL) सभी खुले आउटपुट स्ट्रीम को फ्लश करता है। नोट: stdin पर fflush() अपरिभाषित व्यवहार है (C मानक)।

प्रश्न 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);
}

विकल्प:

  • A. strcpy() स्टेटमेंट में त्रुटि
  • B. *ptr = (int*)malloc(30); में त्रुटि
  • C. free(ptr) में त्रुटि
  • D. कोई त्रुटि नहीं

उत्तर: B

व्याख्या: *ptr एक char है (डीरेफरेंस्ड पॉइंटर)। आप एक char को पॉइंटर (int*)malloc(30) असाइन नहीं कर सकते। सही: ptr = (char*)malloc(30); या ptr = malloc(30);।

अतिरिक्त MCQ

प्रश्न 6: निम्न में से कौन सा C में मेमोरी लीक का कारण बनता है?

  • A. malloc के बाद free()
  • B. free() के बाद malloc()
  • C. free() के बिना malloc()
  • D. malloc() के बिना free()

उत्तर: C

प्रश्न 7: स्टैक और हीप में अंतर?

  • A. स्टैक तेज है, हीप धीमा
  • B. स्टैक स्वचालित, हीप मैनुअल
  • C. दोनों सही हैं
  • D. कोई अंतर नहीं

उत्तर: C

प्रश्न 8: sizeof(int) का मान 64-बिट सिस्टम पर?

  • A. 2 बाइट्स
  • B. 4 बाइट्स
  • C. 8 बाइट्स
  • D. कंपाइलर-निर्भर

उत्तर: B (आमतौर पर 4 बाइट्स) - C मानक के अनुसार कम से कम 2 बाइट्स, आमतौर पर 4।

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

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

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

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

  1. Windows 10 में सिस्टम और कंप्रेस्ड मेमोरी से डिस्क उपयोग स्पाइक्स को रोकें Windows 10 में सिस्टम और कंप्रेस्ड मेमोरी से डिस्क उपयोग स्पाइक्स को रोकें

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