चैप्टर के सारे प्रश्न उत्तर यहीं से शुरू होते हैं
- पॉइंटर (Pointer) एक ऐसा वेरिएबल है जो दूसरे वेरिएबल का एड्रेस स्टोर करता है।
- एक पॉइंटर की साइज़ आर्किटेक्चर पर निर्भर करती है।
- C भाषा में जिस तरह हम वेरिएबल्स को डिक्लेयर (Declare) करते हैं ठीक उसी तरह हमें पॉइंटर वेरिएबल्स को डिक्लेयर करना पड़ता है।
- पॉइंटर वेरिएबल्स को डिक्लेयर (Declare) करते समय वेरिएबल नाम से पहले asterisk symbol (*) का उपयोग किया जाता है।
- पॉइंटर का उपयोग कॉम्प्लेक्स डेटा स्ट्रक्चर जैसे linked list, graph, tree आदि में किया जाता है।
- जब एक फंक्शन में Multiple Value रिटर्न करना हो तो पॉइंटर्स का उपयोग किया जाता है।
- फंक्शन के जब हमें किसी वेरिएबल का एड्रेस रेफरेंस के रूप में पास करना होता है तब पॉइंटर का उपयोग किया जाता है।
- Array element को एक्सेस करने के लिए भी पॉइंटर का उपयोग किया जाता है।
- फाइल हैंडलिंग में पॉइंटर का उपयोग किया जाता है।
- C भाषा में फाइल हैंडलिंग (handling) एक प्रक्रिया है जिसमें प्रोग्राम का उपयोग करके File में डाटा को स्टोर किया जाता है।
- C भाषा में फाइल हैंडलिंग (File handling) का प्रयोग करते एक फाइल में बहुत सारे कार्य जैसे फाइल को create, update, read और delete आदि किए जा सकते हैं।
- हम C library में मौज़ूद function का प्रयोग करके file के किसी भी पार्ट को आसानी से access कर सकते हैं।
- फाइल handling का प्रयोग करके files को एक स्थान से दूसरे कम्प्यूटर में आसानी से ट्रांसफर किया जा सकता है।
1. पॉइंटर किसे कहते हैं?
उत्तर:
पॉइंटर एक ऐसा वेरिएबल होता है जो किसी अन्य वेरिएबल के मेमोरी एड्रेस को स्टोर करता है।
यह इनडायरेक्ट एक्सेस प्रदान करता है, जिससे हम वेरिएबल की वैल्यू को उसके एड्रेस के माध्यम से एक्सेस कर सकते हैं। पॉइंटर का उपयोग डायनामिक मेमोरी, एरे, फंक्शन आदि में होता है। C भाषा में पॉइंटर बहुत ही पावरफुल टूल माना जाता है। उदाहरण: int *ptr;
2. ऐरे क्या है?
उत्तर:
ऐरे एक डेटा स्ट्रक्चर है जिसमें समान प्रकार के डेटा को एक क्रम में संग्रहित किया जाता है। यह एक निश्चित आकार का होता है और मेमोरी में लगातार स्थान लेता है। ऐरे के प्रत्येक एलिमेंट को उसके इंडेक्स से एक्सेस किया जाता है। C भाषा में ऐरे की घोषणा ऐसे होती है: int arr[10]; ऐरे का पहला इंडेक्स 0 होता है।
3. पॉइंटर का उपयोग।
उत्तर:
पॉइंटर का उपयोग वेरिएबल के एड्रेस को स्टोर और एक्सेस करने के लिए किया जाता है।
यह फंक्शन में Call by Reference, डायनामिक मेमोरी एलोकेशन, और ऐरे के साथ उपयोगी होता है।
पॉइंटर के माध्यम से हम डायरेक्ट हार्डवेयर एक्सेस, स्ट्रिंग हैंडलिंग, और लिंक्ड लिस्ट जैसे एडवांस्ड कार्य कर सकते हैं। यह प्रोग्राम की परफॉर्मेंस और फ्लेक्सिबिलिटी को बढ़ाता है।
4. स्ट्रक्चर क्या होते हैं?
उत्तर:
स्ट्रक्चर C भाषा का एक यूज़र-डिफाइंड डेटा टाइप है जिसमें विभिन्न प्रकार के डेटा को एक साथ संग्रहित किया जा सकता है। यह हमें एक ही नाम के अंतर्गत अलग-अलग टाइप के वैरिएबल्स को समूहित करने की सुविधा देता है। स्ट्रक्चर का प्रयोग रिकॉर्ड (जैसे छात्र का नाम, रोल नं., अंक आदि) स्टोर करने में किया जाता है।
उदाहरण:
struct student {
char name[20];
int roll;
float marks;
};
5. Call by Reference।
उत्तर:
Call by Reference में फंक्शन को वेरिएबल का एड्रेस पास किया जाता है, न कि उसकी कॉपी। इससे फंक्शन के अंदर किए गए बदलाव सीधे ओरिजिनल वेरिएबल को प्रभावित करते हैं। यह पॉइंटर का उपयोग करके किया जाता है। Call by Reference का फायदा यह है कि यह मेमोरी को बचाता है और रियल-टाइम बदलाव संभव बनाता है।
6. ‘C’ भाषा में पॉइंटर का डिक्लेरेशन।
उत्तर:
C भाषा में पॉइंटर को * चिन्ह के साथ डिक्लेयर किया जाता है। इसका सिंटैक्स है: data_type *pointer_name;
उदाहरण: int *ptr;
यह घोषणा दर्शाती है कि ptr एक पॉइंटर है जो int टाइप के डेटा के एड्रेस को स्टोर करेगा।
7. इनिशियलाइज पॉइंटर।
उत्तर:
पॉइंटर इनिशियलाइज करने का मतलब है उसे किसी वैल्यू (अर्थात एड्रेस) से सेट करना।
यह दो तरह से किया जा सकता है:
किसी वेरिएबल के एड्रेस से:
ptr = &x;डायनामिक मेमोरी से:
ptr = (int *)malloc(sizeof(int));
यदि पॉइंटर को इनिशियलाइज नहीं किया गया है, तो वह अनजान एड्रेस को पॉइंट कर सकता है।
8. फाइल हैंडलिंग।
उत्तर:
फाइल हैंडलिंग का अर्थ है फाइल को ओपन, पढ़ना, लिखना और बंद करना।
C भाषा में फाइल हैंडलिंग के लिए FILE टाइप और fopen(), fclose(), fprintf(), fscanf() आदि फंक्शंस का प्रयोग किया जाता है।
यह फाइल से डेटा स्थायी रूप से स्टोर और पुनः उपयोग करने की सुविधा देता है।
यह इनपुट/आउटपुट ऑपरेशन्स का एक महत्वपूर्ण हिस्सा है।
1. C भाषा में स्ट्रक्चर का कहाँ उपयोग होता है? एक प्रोग्राम लिखकर समझाइये।
उत्तर:
C भाषा में स्ट्रक्चर का उपयोग विभिन्न प्रकार के डेटा को एक साथ संग्रहित करने के लिए किया जाता है। स्ट्रक्चर एक यूज़र-डिफाइन्ड डेटा टाइप होता है जो डेटा को ग्रुप करने की सुविधा देता है। यह छात्रों, कर्मचारियों, उत्पाद आदि की जानकारी संग्रहित करने में सहायक है।
उदाहरण प्रोग्राम:
struct student {
int roll;
char name[20];
float marks;
};
2. C भाषा में पॉइंटर की क्या उपयोगिता है? प्रोग्राम के द्वारा स्पष्ट करिये।
उत्तर:
पॉइंटर का उपयोग वेरिएबल के एड्रेस को स्टोर करने, डायनामिक मेमोरी एलोकेशन, फंक्शन कॉल आदि में होता है।
यह मेमोरी को कुशलतापूर्वक उपयोग करने में मदद करता है।
उदाहरण प्रोग्राम:
int x = 10;
int *ptr = &x;
printf("%d", *ptr); // 10
3. स्ट्रक्चर और यूनियन में क्या अंतर होता है?
उत्तर:
स्ट्रक्चर में सभी मेंबर्स को अलग-अलग मेमोरी एलोकेट होती है जबकि यूनियन में सभी मेंबर्स को एक ही मेमोरी स्पेस साझा करना होता है। स्ट्रक्चर में सभी सदस्य एक साथ एक्टिव हो सकते हैं पर यूनियन में एक समय में एक ही वैल्यू स्टोर होती है। यूनियन मेमोरी की बचत करता है जबकि स्ट्रक्चर डेटा को स्पष्ट रूप से संभालता है।
4. C भाषा में यूनियन का उपयोग कहाँ होता है? एक प्रोग्राम लिखकर समझाइये।
उत्तर:
यूनियन का उपयोग तब किया जाता है जब एक ही मेमोरी में विभिन्न प्रकार के डेटा को संग्रहित करना होता है लेकिन एक समय में एक ही डेटा आवश्यक हो।
उदाहरण प्रोग्राम:
union test {
int i;
float f;
};
union test t;
t.i = 10;
5. स्ट्रक्चर फंक्शन के लिए एक प्रोग्राम लिखिए।
उत्तर:
नीचे स्ट्रक्चर को फंक्शन के साथ उपयोग करने का उदाहरण है:
struct student {
int roll;
char name[20];
};
void display(struct student s) {
printf("%d %s", s.roll, s.name);
}
6. टेक्स्ट फाइल में पंक्तियों की संख्या गिनने के लिए एक फंक्शन लिखिए।
उत्तर:
7. हमें C भाषा में फाइल प्रबंधन की आवश्यकता क्यों है?
उत्तर:
C भाषा में फाइल प्रबंधन की आवश्यकता डेटा को स्थायी रूप से स्टोर करने के लिए होती है। प्रोग्राम बंद हो जाने के बाद भी डेटा को संग्रहित रखने के लिए फाइल हैंडलिंग जरूरी है। यह बड़ी मात्रा में इनपुट और आउटपुट डेटा को नियंत्रित करता है। यह रीडिंग, राइटिंग और एडिटिंग को भी संभव बनाता है।
8. हम किसी प्रोग्राम में बाइनरी फाइल के डेटा को कैसे पढ़ते हैं और लिखते हैं?
उत्तर:
बाइनरी फाइल को पढ़ने के लिए fread() और लिखने के लिए fwrite() फंक्शन का उपयोग किया जाता है।
फाइल को "rb" या "wb" मोड में खोला जाता है।
उदाहरण:
fwrite(&data, sizeof(data), 1, fp);
fread(&data, sizeof(data), 1, fp);
9. C प्रोग्राम में कितने प्रकार के फाइल होते हैं?
उत्तर:
C प्रोग्राम में मुख्यतः दो प्रकार की फाइलें होती हैं:
- टेक्स्ट फाइल (Text File)
- बाइनरी फाइल (Binary File)
10. C प्रोग्राम में बाइनरी फाइल क्या होते हैं?
उत्तर:
बाइनरी फाइल ऐसी फाइल होती है जिसमें डेटा बाइनरी फॉर्मेट में स्टोर होता है। यह फाइल तेज़ और कुशल होती है क्योंकि यह मेमोरी फॉर्मेट में काम करती है। बाइनरी फाइल को "rb", "wb" मोड में खोला जाता है। यह फॉर्मेट डेटा को कम स्थान में संग्रहित करने की सुविधा देता है।
11. टेक्स्ट फाइल में डेटा लिखने के लिए प्रोग्राम लिखिए।
उत्तर:
FILE *fp; fp = fopen("data.txt", "w"); if(fp != NULL) { fprintf(fp, "Hello File"); fclose(fp); }यह प्रोग्राम "data.txt" नामक फाइल में "Hello File" लिखता है।
12. फाइल हैंडलिंग से आप क्या समझते हैं?
उत्तर:
यह C भाषा में डेटा को स्थायी रूप से संग्रहित करने का तरीका है।इसके लिए fopen(), fclose(),
fprintf(), fscanf() आदि फंक्शन का उपयोग होता है।
13 एंटी कंट्रोल लूप को परिभाषित कीजिए।
उत्तर:
एंटी कंट्रोल लूप वह लूप होता है जिसमें शर्त की जांच के बाद लूप चलता है। while, for आदि एंटी कंट्रोल लूप होते हैं
क्योंकि इनमें पहले कंडीशन चेक होती है फिर लूप चलता है। यदि शर्त झूठी हो तो लूप एक बार भी नहीं चलेगा |
विस्तृत उत्तर प्रश्न
प्रश्न 1. Call By Value function क्या होते हैं? प्रोग्राम लिखकर इसको समझाइए।
उत्तर:
Call By Value में जब कोई फंक्शन कॉल किया जाता है, तो वेरिएबल का वास्तविक मान कॉपी होकर फंक्शन को भेजा जाता है। फंक्शन के अंदर किए गए परिवर्तन वास्तविक मान को प्रभावित नहीं करते।
उदाहरण:
#include <stdio.h>
void change(int x){
x = x + 10;
printf("Inside function: %d\n", x);
}
int main(){
int a = 5;
change(a);
printf("Outside function: %d", a);
return 0;
}
आउटपुट:
Inside function: 15
Outside function: 5
प्रश्न 2. Call By Reference को एक साथ प्रोग्राम लिखकर व्याख्या करिये।
उत्तर:
Call By Reference में फंक्शन को वेरिएबल का पता (address) भेजा जाता है। फंक्शन में किए गए परिवर्तन मूल डेटा पर भी प्रभाव डालते हैं।
उदाहरण:
#include <stdio.h>
void change(int *x){
*x = *x + 10;
}
int main(){
int a = 5;
change(&a);
printf("Value after function call: %d", a);
return 0;
}
आउटपुट:
Value after function call: 15
प्रश्न 3. एक त्रिविमीय ऐरे के लिए प्रोग्राम लिखिए जिसमें 3 × 3 आव्यूह छपे।
उत्तर:
त्रिविमीय ऐरे में डेटा को तीन आयामों में संग्रहित किया जाता है। नीचे दिए गए प्रोग्राम में 3×3 आव्यूह छापने का तरीका दर्शाया गया है।
#include <stdio.h>
int main(){
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
आउटपुट:
1 2 3
4 5 6
7 8 9
प्रश्न 4. किसी ऐरे के लिए सबस्क्रिप्शन प्वाइंटर (Subscription Pointer) से क्या तात्पर्य है? उदाहरण सहित समझाइये।
उत्तर:
सबस्क्रिप्शन प्वाइंटर का प्रयोग ऐरे के तत्वों को प्वाइंटर के माध्यम से एक्सेस करने में किया जाता है। ऐरे का नाम स्वयं पहले तत्व का पता दर्शाता है।
उदाहरण:
#include <stdio.h>
int main(){
int arr[5] = {10,20,30,40,50};
int *p = arr;
printf("Second element: %d", *(p+1));
return 0;
}
आउटपुट:
Second element: 20
प्रश्न 5. फाइल खोलने के विभिन्न मोड क्या हैं? टिप्पणी करिये।
उत्तर:
C भाषा में फाइल खोलने के मुख्य मोड निम्नलिखित हैं:
"r"– फाइल को पढ़ने के लिए खोलता है।"w"– नई फाइल बनाकर उसमें लिखता है (पुरानी फाइल मिटा देता है)।"a"– मौजूदा फाइल के अंत में नया डेटा जोड़ता है।"r+"– फाइल को पढ़ने और लिखने दोनों के लिए खोलता है।"w+"– नई फाइल बनाकर पढ़ने और लिखने दोनों की अनुमति देता है।
प्रश्न 6. फाइल को बंद करने के लिए विभिन्न मोड क्या हैं? व्याख्या करिए।
उत्तर:
फाइल को बंद करने के लिए fclose() फंक्शन का प्रयोग किया जाता है। यह फंक्शन फाइल के साथ जुड़ी सभी मेमोरी को मुक्त करता है और डेटा को डिस्क में सुरक्षित करता है।
सिंटैक्स:
fclose(file_pointer);
उदाहरण के लिए यदि फाइल FILE *fp द्वारा खोली गई है, तो fclose(fp); फाइल को बंद करेगा
प्रश्न 7. एक प्रोग्राम लिखिए जिसमें फाइल को ओपेन, राइट (write) और close करने का प्रावधान हो।
उत्तर:
नीचे दिया गया प्रोग्राम एक फाइल को लिखने के लिए खोलता है और उसे बंद करता है।
#include <stdio.h>
int main(){
FILE *fp;
fp = fopen("test.txt", "w");
fprintf(fp, "Hello File Handling!");
fclose(fp);
printf("File written and closed successfully.");
return 0;
}
बहुविकल्पीय प्रश्न
1. प्वाइंटर वेरिएबल्स का उपयोग करने से पहले–
(a) इसे घोषित किया जाना चाहिए
(b) इसे प्रारम्भ किया जाना चाहिए
(●) इसे घोषित और आरंभीकृत दोनों किया जाना चाहिए
(d) इनमें से कोई नहीं
2. निम्नलिखित सूचक घोषणा पर टिप्पणी करें–
int *Ptr, p;
(●) Ptr पूर्णांक का सूचक है, P नहीं
(b) Ptr और P दोनों पूर्णांक के सूचक हैं
(c) Ptr पूर्णांक का सूचक है, P हो भी सकता है और नहीं भी
(d) Ptr और P दोनों पूर्णांक के सूचक नहीं हैं
3. नीचे लिखे प्रोग्राम का आउटपुट क्या होगा?
(b) h
(c) कुछ पता छपेगा
(d) इनमें से कोई नहीं
4. दिये गये प्रोग्राम का आउटपुट क्या होगा?
(b) कंपाइलर पर निर्भर करता है
(c) कोई आउटपुट नहीं
(d) इनमें से कोई नहीं
5. निम्नलिखित कोड को संकलित करने और चलाने के बाद क्या मुद्रित होगा?
(a) 11
(●) 18
(c) 21
(d) 22
6. निम्नलिखित प्रोग्राम का आउटपुट क्या होगा?
(a) 444
(b) 000
(●) 3333
(d) 433
7. निम्नलिखित पर टिप्पणी करें —
const int *Ptr;(●) हम Ptr द्वारा बताये गये मान को नहीं बदल सकते
(b) हम सूचक Ptr को स्वयं नहीं बदल सकते
(c) ऊपर के दोनों
(d) हम सूचक के साथ-साथ उसके द्वारा बताए गये मान को भी बदल सकते हैं।
8. निम्नलिखित प्रोग्राम का आउटपुट क्या होगा?
(a) 10, 10
(b) 10, 11
(c) 11, 10
(●) (d) 11, 11
9. निम्नलिखित प्रोग्राम का आउटपुट क्या होगा?
(●) 0.0000
(b) 10
(c) 10.0
(d) इनमें से कोई नहीं
10. डिक्लेरेशन (Declaration)int (*P)[5]; का अर्थ है –
(a) P पूर्णांकों के सूचकों के आकार 5 की एक आयामी सारणी है।
(●) (b) तत्त्वों वाले पूर्वार्ध सारणी का सूचक है
(c) int * P के समान
(d) इनमें से कोई नहीं
11. कथन int **a;
(a) अवैध है
(b) वैध है लेकिन अर्थहीन है
(●) (c) वाक्यात्मक और शब्दार्थ की दृष्टि से सही है
(d) इनमें से कोई नहीं
12. नीचे लिखे प्रोग्राम का आउटपुट क्या होगा?
(a) संकलन समय त्रुटि
(b) सेगमेंटेशन दोष
(●) 10
(d) अपरिभाषित व्यवहार
13. निम्नलिखित प्रोग्राम का आउटपुट क्या होगा?
(●) (a) hi
(b) h 1
(c) hi के बाद Garbage value आता है
(d) Error
14. निम्नलिखित प्रोग्राम का आउटपुट क्या होगा?
(a) 5
(●) 3
(c) 2
(d) Error
15. निम्नलिखित में कौनसा फ्लोट प्वाइंटर घोषित करने का सही तरीका है?
(a) float Ptr;
(●) Float *Ptr;
(c) * Float ptr;
(d) इनमें से कोई भी नहीं
16. निम्नलिखित प्रोग्राम का आउटपुट क्या होगा?
(a) गलत
(b) Ptr प्रिंट होगा
(c) कुछ नहीं प्रिंट होगा
(●) Ptr उपयोग होने से पहले initialized होगा
17. किसी फाइल को खोलने के लिए किस फंक्शन का उपयोग किया जाता है?
(a) open ()
(●) fopen ()
(c) Creat ()
(d) Insert ()
18. fopen के लिए कितने तर्कों की आवश्यकता होती है?
(a) 0
(b) 1
(●) 2
(d) 3
19. r + मोड का उद्देश्य क्या है?
(●) (a) फाइल को पढ़ने और लिखने के लिए खोलता है।
(b) फाइल प्वाइंटर को फाइल की शुरुआत में रखता है।
(c) फाइल प्वाइंटर को फाइल के अंत में रखता है।
(d) (a) और (b) दोनो
20. यदि किसी फाइल को खोलने का प्रयास विफल हो जाता है तो fopen का मान लौटाता है-
(a) सत्य
(●) असत्य
(c) सत्य या असत्य हो सकता है
(d) कहा नहीं जा सकता
21. फाइल की लम्बाई किस फंक्शन का उपयोग करके पाई जा सकती है-
(a) F size ()
(b) Fcount ()
(●) फाइल साइज ()
(d) गिनती ()
22. फाइल किस प्रकार की है?
(a) int प्रकार
(b) char * प्रकार
(●) संरचना प्रकार
(d) इनमें से कोई नहीं
23. किस प्रकार की फाइलें fopen() का उपयोग करके नहीं खोली जा सकती?
(a) .txt(b) bin
(c) .c
(●) उपरोक्त में कोई नहीं
24. यदि फाइल खोलते समय कोई त्रुटि हो तो fopen वापस आ जायेगा-
(a) कुछ नहीं(●) (b) NULL
(c) EoF
(d) कम्पाइलर पर निर्भर करता है
25. दो या दो से अधिक फाइल ओपनिंग मोड को ओपेन () विधि में संयोजित करना संभव नहीं है-
(a) सत्य(●) असत्य
(c) हो सकता
(d) कह नहीं सकता
26. फाइल का डेटा कहाँ संग्रहीत किया जाता है?
(a) RAM(●) हार्डडिस्क
(c) ROM
(d) कोई नहीं
27. उस फंक्शन का चयन करें जिसका उपयोग किसी फाइल में स्ट्रिंग लिखने के लिए किया जाता है।
(a) Pits ()(b) Putc ()
(●) fputs()
(d) fgets ()
28. उस टेक्स्ट फाइल का चयन करें जिसमें डेटा संग्रहीत है।
(●) ASC11(b) बाइनरी कोड
(c) आक्टल कोड
(d) टेक्स्ट कोड
29. stderr, stdin, stdout फाइल सूचक है-
(●) हाँ(b) नहीं
(c) हो सकता है
(d) कहा नहीं जा सकता है
30. फाइल प्वाइंटर का डेटा प्रकार कौन-सा है?
(a) int(b) double
(c) vaid
(●) (d) FILE
31. एक मोड जिसका उपयोग मौजूद फाइल को पढ़ने और लिखने दोनों के लिए खोलने के लिए किया जाता है-
(a) "W"(●) "W+"
(c) "Rt"
(d) "A++"
32. रिटर्न टाइप ओपेन () विधि क्या है?
(a) int(b) char
(●) bool
(d) float
33. क्या निम्नलिखित प्रोग्राम काम करेगा?
(●) हाँ
(b) नहीं
(c) हो सकता है
(d) कहा नहीं जा सकता
34. 'C' फाइल प्वाइंटर घोषित करने के लिए उपयोग किया जाने वाला कीवर्ड क्या है?
(a) file
(●) FILE
(c) FILE FP
(d) Filefo
35. 'C' फाइल डेटा का प्रकार क्या है?
(●) केवल स्ट्रक्चर
(b) केवल यूनियन
(c) केवल यूजर डिफाइन्ड डाटा टाइप
(d) इनमें से कोई नहीं