મુખ્ય સામગ્રી પર જાઓ
  1. સંસાધનો/
  2. અભ્યાસ સામગ્રી/
  3. ઇલેક્ટ્રોનિક્સ અને કમ્યુનિકેશન એન્જિનિયરિંગ/
  4. ઇસીઇ સેમેસ્ટર 3/

Programming in C (4331105) - Summer 2025 Solution - Gujarati

17 મિનિટ· ·
Study-Material Solutions Programming-C 4331105 2025 Summer Gujarati
મિલવ ડબગર
લેખક
મિલવ ડબગર
ઇલેક્ટ્રિકલ અને ઇલેક્ટ્રોનિક મેન્યુફેક્ચરિંગ ઉદ્યોગમાં અનુભવી લેક્ચરર. એમ્બેડેડ સિસ્ટમ્સ, ઈમેજ પ્રોસેસિંગ, ડેટા સાયન્સ, મેટલેબ, પાયથન, STM32માં કુશળ. એલ.ડી. કોલેજ ઓફ એન્જિનિયરિંગ - અમદાવાદથી કમ્યુનિકેશન સિસ્ટમ્સ એન્જિનિયરિંગમાં માસ્ટર્સ ડિગ્રી ધરાવતા મજબૂત શિક્ષણ વ્યાવસાયિક.
અનુક્રમણિકા

પ્રશ્ન 1(a) [3 ગુણ]
#

C માં કેટલા keywords છે? કોઈપણ ચાર keywords લખો

જવાબ:

કુલ Keywordsઉદાહરણો
32 keywordsint, float, char, if

આકૃતિ:

graph LR
    A[C Keywords - 32 કુલ] --> B[Data Types: int, float, char, double]
    A --> C[Control: if, else, for, while]
    A --> D[Storage: static, extern, auto, register]
  • 32 keywords: C ભાષામાં કુલ આરક્ષિત શબ્દો
  • Data type keywords: int, float, char, double વેરિએબલ જાહેર કરવા માટે
  • Control keywords: if, else, for, while પ્રોગ્રામ ફ્લો માટે

યાદ રાખવાની ટિપ: “બિલાડી ચાર રંગમાં” (char, int, float, const)


પ્રશ્ન 1(b) [4 ગુણ]
#

વેરિએબલ શું છે? ઉદાહરણ સાથે વેરિએબલને નામ આપવાના નિયમો સમજાવો

જવાબ:

વેરિએબલ વ્યાખ્યા:

પાસાંવર્ણન
વ્યાખ્યાડેટા સ્ટોર કરવા માટે નામવાળી મેમરી લોકેશન
હેતુપ્રોગ્રામ દરમિયાન બદલાતા મૂલ્યો રાખવા
જાહેરાતdatatype variable_name;

નામકરણના નિયમો:

  • પ્રથમ અક્ષર: અક્ષર અથવા underscore (_) હોવો જોઈએ
  • પછીના અક્ષરો: અક્ષરો, અંકો, underscore માત્ર
  • Case sensitive: ‘Age’ અને ‘age’ અલગ છે
  • Keywords નહીં: ‘int’, ‘float’ જેવા આરક્ષિત શબ્દો વાપરી શકાતા નથી

ઉદાહરણો:

int age;        // યોગ્ય
float _salary;  // યોગ્ય
char name123;   // યોગ્ય
int 2number;    // ખોટું - અંકથી શરૂ
float for;      // ખોટું - keyword વપરાયું

યાદ રાખવાની ટિપ: “અક્ષર પહેલાં, keywords નહીં”


પ્રશ્ન 1(c) [7 ગુણ]
#

નીચેના statements માં errors શોધો

જવાબ:

StatementErrorકારણ
(1) fLoat x;ખોટો keywordસાચું: float x;
(2) int min, max = 20;અર્ધ initializationમાત્ર max initialize, min નહીં
(3) long char c;ખોટું combinationlong ને char સાથે વાપરી શકાતું નથી
(4) iNt a;ખોટો keywordસાચું: int a;
(5) FLOAT f=2;ખોટો keywordસાચું: float f=2;
(6) double m ; n;Missing datatypeસાચું: double m, n;
(7) Int score (100)0;અનેક errorsખોટું syntax, સાચું: int score = 100;

મુખ્ય મુદ્દાઓ:

  • Case sensitivity: Keywords નાના અક્ષરમાં હોવા જોઈએ
  • Multiple declaration: Comma separator વાપરો
  • Initialization syntax: = operator વાપરો

યાદ રાખવાની ટિપ: “Keywords હંમેશા નાના અક્ષરે”


પ્રશ્ન 1(c) OR [7 ગુણ]
#

અલ્ગોરિધમ શું છે? ફ્લોચાર્ટ શું છે? વર્તુળનો વિસ્તાર અને પરિમિતિ શોધવા માટે ફ્લોચાર્ટ દોરો.

જવાબ:

વ્યાખ્યાઓ:

શબ્દવ્યાખ્યા
Algorithmસમસ્યા હલ કરવાની પગલાબદ્ધ પ્રક્રિયા
FlowchartAlgorithm નું પ્રતીકો વડે દ્રશ્ય પ્રતિનિધિત્વ

વર્તુળ માટે ફ્લોચાર્ટ:

flowchart TD
    A[શરૂઆત] --> B[radius r input કરો]
    B --> C[area = π × r² ગણતરી કરો]
    C --> D[perimeter = 2 × π × r ગણતરી કરો]
    D --> E[area અને perimeter દર્શાવો]
    E --> F[અંત]

Algorithm ના પગલાં:

  • પગલું 1: શરૂઆત કરો
  • પગલું 2: Radius નું મૂલ્ય input કરો
  • પગલું 3: π×r² સૂત્ર વડે area ગણો
  • પગલું 4: 2×π×r સૂત્ર વડે perimeter ગણો

યાદ રાખવાની ટિપ: “શરૂ Input ગણતરી દર્શાવો અંત”


પ્રશ્ન 2(a) [3 ગુણ]
#

ઓપરેટર શું છે? C ના બધા operators ની યાદી બનાવો.

જવાબ:

ઓપરેટર વ્યાખ્યા:

પાસાંવર્ણન
વ્યાખ્યાOperands પર operations કરતા ખાસ પ્રતીકો
હેતુડેટા અને વેરિએબલ્સ સાથે કામ કરવા

C ઓપરેટર્સ યાદી:

વર્ગOperators
Arithmetic+, -, *, /, %
Relational<, >, <=, >=, ==, !=
Logical&&, ||, !
Assignment=, +=, -=, *=, /=
Increment/Decrement++, –
Conditional?:

યાદ રાખવાની ટિપ: “ગણતરી સંબંધ તર્ક અસાઇન વધારો શરત”


પ્રશ્ન 2(b) [4 ગુણ]
#

while અને do while loop વચ્ચે તફાવત લખો.

જવાબ:

પાસાંwhile loopdo-while loop
Entry conditionPre-testedPost-tested
ન્યૂનતમ execution0 વખતઓછામાં ઓછું 1 વખત
Syntaxwhile(condition) { }do { } while(condition);
Semicolonwhile પછી જરૂરી નથીwhile પછી જરૂરી છે

ઉદાહરણ:

// while loop
while(i < 5) {
    printf("%d", i);
    i++;
}

// do-while loop  
do {
    printf("%d", i);
    i++;
} while(i < 5);

મુખ્ય મુદ્દાઓ:

  • Pre-tested: Execution પહેલાં condition ચકાસાય
  • Post-tested: Execution પછી condition ચકાસાય

યાદ રાખવાની ટિપ: “While પહેલાં, Do પછી”


પ્રશ્ન 2(c) [7 ગુણ]
#

scanf() function નો formatted input માટે કેવી રીતે ઉપયોગ થાય છે? ઉદાહરણ સાથે સમજાવો

જવાબ:

scanf() Function:

લક્ષણવર્ણન
હેતુKeyboard થી formatted input વાંચવા
Syntaxscanf(“format_string”, &variable);
Returnસફળતાપૂર્વક વંચાયેલા inputs ની સંખ્યા

Format Specifiers:

SpecifierData Type
%dint
%ffloat
%cchar
%sstring

ઉદાહરણો:

int age;
float salary;
char grade;

scanf("%d", &age);           // Integer વાંચો
scanf("%f", &salary);        // Float વાંચો
scanf("%c", &grade);         // Character વાંચો
scanf("%d %f", &age, &salary); // બહુવિધ inputs

મહત્વના મુદ્દાઓ:

  • Address operator (&): Variables માટે જરૂરી
  • Format string: Data types સાથે match થવું જોઈએ
  • Buffer issues: જરૂર પડે તો fflush(stdin) વાપરો

યાદ રાખવાની ટિપ: “Address Format Match”


પ્રશ્ન 2(a) OR [3 ગુણ]
#

C ભાષાના arithmetic અને relational operators ની યાદી બનાવો

જવાબ:

Operator TypeOperatorsહેતુ
Arithmetic+, -, *, /, %ગાણિતિક operations
Relational<, >, <=, >=, ==, !=Comparison operations

ઉદાહરણો:

// Arithmetic
int a = 10 + 5;    // Addition
int b = 10 % 3;    // Modulus (remainder)

// Relational
if(a > b)          // મોટું
if(a == b)         // બરાબર

યાદ રાખવાની ટિપ: “ગણતરી સરખામણી”


પ્રશ્ન 2(b) OR [4 ગુણ]
#

else if ladder નો flow chart દોરો.

જવાબ:

flowchart TD
    A[શરૂઆત] --> B{શરત 1?}
    B -->|સાચું| C[Statement 1]
    B -->|ખોટું| D{શરત 2?}
    D -->|સાચું| E[Statement 2]
    D -->|ખોટું| F{શરત 3?}
    F -->|સાચું| G[Statement 3]
    F -->|ખોટું| H[Else Statement]
    C --> I[અંત]
    E --> I
    G --> I
    H --> I

માળખું:

  • બહુવિધ શરતો: ક્રમમાં ચકાસાય છે
  • પ્રથમ સાચી: તેનો block execute થાય
  • Default case: કોઈ match ન મળે તો else block

યાદ રાખવાની ટિપ: “પ્રથમ સાચી શોધો execute કરો”


પ્રશ્ન 2(c) OR [7 ગુણ]
#

printf() function નો formatted output માટે કેવી રીતે ઉપયોગ થાય છે? ઉદાહરણ સાથે સમજાવો

જવાબ:

printf() Function:

લક્ષણવર્ણન
હેતુScreen પર formatted output દર્શાવવા
Syntaxprintf(“format_string”, variables);
ReturnPrint કરાયેલા characters ની સંખ્યા

Format Specifiers:

Specifierવપરાશઉદાહરણ
%dIntegerprintf("%d", 25);
%fFloatprintf("%.2f", 3.14);
%cCharacterprintf("%c", ‘A’);
%sStringprintf("%s", “Hello”);

Advanced Formatting:

int num = 123;
float pi = 3.14159;

printf("Number: %5d\n", num);      // Width specification
printf("Pi: %.2f\n", pi);          // Precision specification
printf("Hex: %x\n", num);          // Hexadecimal
printf("Left aligned: %-10d\n", num); // Left alignment

Escape Sequences:

  • \n: નવી લીટી
  • \t: Tab space
  • \: Backslash

યાદ રાખવાની ટિપ: “Format Width Precision Align”


પ્રશ્ન 3(a) [3 ગુણ]
#

Logical operators ની યાદી બનાવો અને તેને સમજાવો

જવાબ:

OperatorSymbolવર્ણનTruth Table
AND&&બંને operands સાચા હોય તો સાચુંT&&T = T, બાકી = F
OR||કોઈપણ operand સાચો હોય તો સાચુંF||F = F, બાકી = T
NOT!Condition ઉલટાવે છે!T = F, !F = T

ઉદાહરણો:

int a = 5, b = 10;

if(a > 0 && b > 0)    // બંને શરતો સાચી હોવી જોઈએ
if(a > 15 || b > 5)   // ઓછામાં ઓછી એક શરત સાચી
if(!(a > 10))         // શરતનું નકારણ

યાદ રાખવાની ટિપ: “અને અથવા નહીં”


પ્રશ્ન 3(b) [4 ગુણ]
#

for loop ને ઉદાહરણ સાથે સમજાવો.

જવાબ:

For Loop માળખું:

ઘટકહેતુ
Initializationશરુઆતી મૂલ્ય સેટ કરવું
Conditionચાલુ રાખવા માટે ટેસ્ટ
UpdateLoop variable ને બદલવું

Syntax:

for(initialization; condition; update) {
    statements;
}

ઉદાહરણ:

// 1 થી 5 સુધીના નંબર print કરો
for(int i = 1; i <= 5; i++) {
    printf("%d ", i);
}
// Output: 1 2 3 4 5

Execution Flow:

  • પગલું 1: i = 1 initialize કરો
  • પગલું 2: i <= 5 condition ચકાસો
  • પગલું 3: Statements execute કરો
  • પગલું 4: i++ update કરો, પગલું 2 પર પાછા

યાદ રાખવાની ટિપ: “Initialize ચકાસો Execute Update”


પ્રશ્ન 3(c) [7 ગુણ]
#

ત્રણ પૂર્ણાંક સંખ્યાઓ x અને y માંથી મહત્તમ શોધવા માટે પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>

int main() {
    int x, y, z, max;
    
    printf("ત્રણ સંખ્યાઓ દાખલ કરો: ");
    scanf("%d %d %d", &x, &y, &z);
    
    max = x;  // પ્રથમ સંખ્યાને મહત્તમ માનો
    
    if(y > max) {
        max = y;
    }
    if(z > max) {
        max = z;
    }
    
    printf("મહત્તમ સંખ્યા છે: %d", max);
    
    return 0;
}

Algorithm ના પગલાં:

પગલુંકાર્ય
1ત્રણ સંખ્યાઓ input કરો
2પ્રથમને મહત્તમ માનો
3બીજી સાથે સરખામણી, મોટી હોય તો update
4ત્રીજી સાથે સરખામણી, મોટી હોય તો update
5મહત્તમ દર્શાવો

વૈકલ્પિક પદ્ધતિ:

max = (x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z);

યાદ રાખવાની ટિપ: “માનો સરખાવો Update દર્શાવો”


પ્રશ્ન 3(a) OR [3 ગુણ]
#

conditional operator ને ઉદાહરણ સાથે સમજાવો.

જવાબ:

Conditional Operator (Ternary):

લક્ષણવર્ણન
Symbol?:
Syntaxcondition ? value1 : value2
હેતુif-else નો ટૂંકો રસ્તો

ઉદાહરણો:

int a = 10, b = 20;
int max = (a > b) ? a : b;        // max = 20

char grade = (marks >= 60) ? 'P' : 'F';
printf("Status: %s", (age >= 18) ? "Adult" : "Minor");

સમાન if-else:

if(a > b)
    max = a;
else
    max = b;

ફાયદાઓ:

  • સંક્ષિપ્ત: એક લીટીમાં expression
  • કાર્યક્ષમ: ઝડપી execution

યાદ રાખવાની ટિપ: “પ્રશ્નચિહ્ન કોલન પસંદગી”


પ્રશ્ન 3(b) OR [4 ગુણ]
#

while loop ને ઉદાહરણ સાથે સમજાવો.

જવાબ:

While Loop:

લક્ષણવર્ણન
પ્રકારEntry-controlled loop
Syntaxwhile(condition) { statements; }
Executionશરત સાચી હોય ત્યાં સુધી repeat

ઉદાહરણ:

int i = 1;
while(i <= 5) {
    printf("%d ", i);
    i++;
}
// Output: 1 2 3 4 5

મહત્વના મુદ્દાઓ:

  • Initialization: Loop પહેલાં
  • Condition: શરૂઆતમાં ચકાસાય
  • Update: Loop body અંદર
  • Infinite loop: જો condition ક્યારેય false ન બને

Flowchart માળખું:

flowchart TD
    A[Initialize] --> B{Condition?}
    B -->|સાચું| C[Statements Execute કરો]
    C --> D[Variable Update કરો]
    D --> B
    B -->|ખોટું| E[Loop બહાર નીકળો]

યાદ રાખવાની ટિપ: “Initialize ચકાસો Execute Update”


પ્રશ્ન 3(c) OR [7 ગુણ]
#

કીબોર્ડમાંથી પૂર્ણાંક વાંચવા માટે અને આપેલ સંખ્યા odd હોય કે even હોય તે શોધવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>

int main() {
    int number;
    
    printf("એક પૂર્ણાંક દાખલ કરો: ");
    scanf("%d", &number);
    
    if(number % 2 == 0) {
        printf("%d એ સમ સંખ્યા છે", number);
    }
    else {
        printf("%d એ વિષમ સંખ્યા છે", number);
    }
    
    return 0;
}

તર્ક સમજૂતી:

ખ્યાલવર્ણન
Modulus operator (%)ભાગાકાર પછી બાકી આપે છે
સમ શરતnumber % 2 == 0
વિષમ શરતnumber % 2 != 0

વૈકલ્પિક પદ્ધતિઓ:

// પદ્ધતિ 2: Conditional operator વાપરીને
printf("%d એ %s છે", number, (number % 2 == 0) ? "સમ" : "વિષમ");

// પદ્ધતિ 3: Bitwise AND વાપરીને
if(number & 1)
    printf("વિષમ");
else
    printf("સમ");

Sample Output:

એક પૂર્ણાંક દાખલ કરો: 7
7 એ વિષમ સંખ્યા છે

યાદ રાખવાની ટિપ: “Modulus બે શૂન્ય સમ”


પ્રશ્ન 4(a) [3 ગુણ]
#

નીચેના arithmetic expressions નું મૂલ્યાંકન કરો: 30/4*4 – 20%6 + 17/2

જવાબ:

પગલાબદ્ધ મૂલ્યાંકન:

પગલુંExpressionગણતરીપરિણામ
130/4*4(30/4)4 = 7428
220%620 mod 62
317/2Integer division8
4અંતિમ28 - 2 + 834

Operator પ્રાધાન્યતા:

પ્રાધાન્યતાOperators
ઉચ્ચ*, /, % (ડાબેથી જમણે)
નીચી+, - (ડાબેથી જમણે)

સંપૂર્ણ ગણતરી:

30/4*4 – 20%6 + 17/2
= 7*4 - 2 + 8      // પહેલાં division અને modulus
= 28 - 2 + 8       // Multiplication
= 26 + 8           // +,- માટે ડાબેથી જમણે
= 34               // અંતિમ જવાબ

યાદ રાખવાની ટિપ: “ગુણા ભાગ પહેલાં બાદબાકી પછી”


પ્રશ્ન 4(b) [4 ગુણ]
#

5 પૂર્ણાંક સંખ્યાઓની array નો સરવાળો અને સરેરાશ શોધવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>

int main() {
    int numbers[5];
    int sum = 0;
    float average;
    
    printf("5 પૂર્ણાંકો દાખલ કરો:\n");
    for(int i = 0; i < 5; i++) {
        scanf("%d", &numbers[i]);
        sum += numbers[i];
    }
    
    average = (float)sum / 5;
    
    printf("સરવાળો = %d\n", sum);
    printf("સરેરાશ = %.2f", average);
    
    return 0;
}

Algorithm:

પગલુંકાર્ય
15 integers ની array જાહેર કરો
2Sum ને 0 થી initialize કરો
3Loop વાપરીને 5 numbers input કરો
4દરેક number ને sum માં ઉમેરો
5Average = sum/5 ગણો
6પરિણામો દર્શાવો

મુખ્ય મુદ્દાઓ:

  • Type casting: (float)sum ચોક્કસ division માટે
  • Loop વપરાશ: Repetitive input માટે કાર્યક્ષમ

યાદ રાખવાની ટિપ: “જાહેર Input ઉમેરો ગણો દર્શાવો”


પ્રશ્ન 4(c) [7 ગુણ]
#

Pointer વ્યાખ્યાયિત કરો. Pointers કેવી રીતે declared અને initialized કરવામાં આવે છે તે ઉદાહરણ સાથે સમજાવો.

જવાબ:

Pointer વ્યાખ્યા:

પાસાંવર્ણન
વ્યાખ્યાબીજા variable નું memory address સ્ટોર કરતું variable
હેતુસીધી memory access અને dynamic memory allocation
Symbol* (asterisk) declaration અને dereferencing માટે

Declaration અને Initialization:

// Declaration
int *ptr;           // Integer નો pointer
float *fptr;        // Float નો pointer
char *cptr;         // Character નો pointer

// Initialization
int num = 10;
int *ptr = &num;    // num ના address સાથે initialize

// વૈકલ્પિક
int *ptr;
ptr = &num;         // પછીથી address assign

ઉદાહરણ પ્રોગ્રામ:

#include <stdio.h>

int main() {
    int num = 25;
    int *ptr = &num;
    
    printf("num નું મૂલ્ય: %d\n", num);
    printf("num નું address: %p\n", &num);
    printf("ptr નું મૂલ્ય: %p\n", ptr);
    printf("ptr દ્વારા pointed મૂલ્ય: %d\n", *ptr);
    
    return 0;
}

મુખ્ય Operators:

  • & (Address-of): Variable નું address મેળવે છે
  • * (Dereference): Address પરનું મૂલ્ય મેળવે છે

Memory Diagram:

num: [25] at address 1000
ptr: [1000] at address 2000

યાદ રાખવાની ટિપ: “Address Star Dereference”


પ્રશ્ન 4(a) OR [3 ગુણ]
#

નીચેના arithmetic expressions નું મૂલ્યાંકન કરો: 50 / 3 % 3 + 5 * 7

જવાબ:

પગલાબદ્ધ મૂલ્યાંકન:

પગલુંExpressionગણતરીપરિણામ
150/3Integer division16
216%316 mod 31
35*7Multiplication35
4અંતિમ1 + 3536

સંપૂર્ણ ગણતરી:

50 / 3 % 3 + 5 * 7
= 16 % 3 + 35      // પહેલાં division અને multiplication
= 1 + 35           // Modulus operation
= 36               // અંતિમ જવાબ

Operator પ્રાધાન્યતા લાગુ:

  • ઉચ્ચ પ્રાધાન્યતા: /, %, * (ડાબેથી જમણે)
  • નીચી પ્રાધાન્યતા: + (ડાબેથી જમણે)

યાદ રાખવાની ટિપ: “ભાગ Mod ગુણા ઉમેરો”


પ્રશ્ન 4(b) OR [4 ગુણ]
#

N પૂર્ણાંકોની array માં સૌથી મોટી સંખ્યા શોધવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>

int main() {
    int n, i;
    int largest;
    
    printf("elements ની સંખ્યા દાખલ કરો: ");
    scanf("%d", &n);
    
    int arr[n];
    
    printf("%d સંખ્યાઓ દાખલ કરો:\n", n);
    for(i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    largest = arr[0];  // પ્રથમ element ને largest માનો
    
    for(i = 1; i < n; i++) {
        if(arr[i] > largest) {
            largest = arr[i];
        }
    }
    
    printf("સૌથી મોટી સંખ્યા છે: %d", largest);
    
    return 0;
}

Algorithm:

પગલુંકાર્ય
1Array નું size input કરો
2Array elements input કરો
3પ્રથમ element ને largest માનો
4બાકીના elements સાથે સરખામણી કરો
5જો મોટું મળે તો largest update કરો
6પરિણામ દર્શાવો

યાદ રાખવાની ટિપ: “Input માનો સરખાવો Update દર્શાવો”


પ્રશ્ન 4(c) OR [7 ગુણ]
#

Array વ્યાખ્યાયિત કરો. Array variable ની જરૂરિયાત સમજાવો. 1-D array ને ઉદાહરણ સાથે સમજાવો

જવાબ:

Array વ્યાખ્યા:

પાસાંવર્ણન
વ્યાખ્યાસમાન data type ના elements નો સંગ્રહ
Storageસતત memory locations માં
AccessIndex/subscript વાપરીને

Arrays ની જરૂરિયાત:

સમસ્યાArray સાથે ઉકેલ
બહુવિધ values સ્ટોર કરવાએક જ array variable
ઘણા variables ટાળવાarr[100] બદલે a1, a2, …, a100
કાર્યક્ષમ processingLoop-based operations
Memory organizationContiguous allocation

1-D Array Declaration:

datatype arrayname[size];

// ઉદાહરણો
int marks[5];           // 5 integers ની Array
float prices[10];       // 10 floats ની Array
char name[20];         // 20 characters ની Array

Array Initialization:

// પદ્ધતિ 1: Declaration વખતે
int numbers[5] = {10, 20, 30, 40, 50};

// પદ્ધતિ 2: વ્યક્તિગત assignment
int arr[3];
arr[0] = 5;
arr[1] = 15;
arr[2] = 25;

ઉદાહરણ પ્રોગ્રામ:

#include <stdio.h>

int main() {
    int marks[5] = {85, 90, 78, 92, 88};
    int i, sum = 0;
    
    printf("વિદ્યાર્થીના ગુણ:\n");
    for(i = 0; i < 5; i++) {
        printf("વિષય %d: %d\n", i+1, marks[i]);
        sum += marks[i];
    }
    
    printf("કુલ ગુણ: %d", sum);
    return 0;
}

Memory Layout:

marks[0] marks[1] marks[2] marks[3] marks[4]
  [85]     [90]     [78]     [92]     [88]
 1000     1004     1008     1012     1016

યાદ રાખવાની ટિપ: “સમાન ડેટા સતત Index”


પ્રશ્ન 5(a) [3 ગુણ]
#

if … else statement નું ઉદાહરણ આપો.

જવાબ:

If-else ઉદાહરણ:

#include <stdio.h>

int main() {
    int age;
    
    printf("તમારી ઉંમર દાખલ કરો: ");
    scanf("%d", &age);
    
    if(age >= 18) {
        printf("તમે મતદાન માટે લાયક છો");
    }
    else {
        printf("તમે મતદાન માટે લાયક નથી");
    }
    
    return 0;
}

માળખું:

ઘટકહેતુ
ifશરત ટેસ્ટ કરે છે
conditionBoolean expression
if-blockશરત સાચી હોય ત્યારે execute
else-blockશરત ખોટી હોય ત્યારે execute

Sample Outputs:

Input: 20    Output: તમે મતદાન માટે લાયક છો
Input: 16    Output: તમે મતદાન માટે લાયક નથી

યાદ રાખવાની ટિપ: “જો સાચું નહીંતર ખોટું”


પ્રશ્ન 5(b) [4 ગુણ]
#

આપેલ character ની category ચકાસવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>
#include <ctype.h>

int main() {
    char ch;
    
    printf("એક character દાખલ કરો: ");
    scanf("%c", &ch);
    
    if(isdigit(ch)) {
        printf("'%c' એ અંક છે", ch);
    }
    else if(isupper(ch)) {
        printf("'%c' એ મોટા અક્ષર છે", ch);
    }
    else if(islower(ch)) {
        printf("'%c' એ નાના અક્ષર છે", ch);
    }
    else {
        printf("'%c' એ વિશેષ પ્રતીક છે", ch);
    }
    
    return 0;
}

Character Categories:

Functionવર્ગRange
isdigit()અંક0-9
isupper()મોટા અક્ષરA-Z
islower()નાના અક્ષરa-z
Othersવિશેષ પ્રતીકો!@#$%^&* etc.

વૈકલ્પિક પદ્ધતિ:

if(ch >= '0' && ch <= '9')
    printf("અંક");
else if(ch >= 'A' && ch <= 'Z')
    printf("મોટા અક્ષર");
else if(ch >= 'a' && ch <= 'z')
    printf("નાના અક્ષર");
else
    printf("વિશેષ પ્રતીક");

યાદ રાખવાની ટિપ: “અંક મોટા નાના વિશેષ”


પ્રશ્ન 5(c) [7 ગુણ]
#

Structure શું છે? તેની syntax યોગ્ય ઉદાહરણ સાથે સમજાવો

જવાબ:

Structure વ્યાખ્યા:

પાસાંવર્ણન
વ્યાખ્યાવિવિધ data types ને જોડીને બનાવેલ user-defined data type
હેતુસંબંધિત data ને એક જ નામ હેઠળ જૂથ બનાવવા
Keywordstruct

Syntax:

struct structure_name {
    datatype member1;
    datatype member2;
    ...
};

ઉદાહરણ - Student Structure:

#include <stdio.h>

struct Student {
    int roll_no;
    char name[50];
    float marks;
    char grade;
};

int main() {
    struct Student s1;
    
    // Data input
    printf("રોલ નંબર દાખલ કરો: ");
    scanf("%d", &s1.roll_no);
    
    printf("નામ દાખલ કરો: ");
    scanf("%s", s1.name);
    
    printf("ગુણ દાખલ કરો: ");
    scanf("%f", &s1.marks);
    
    printf("ગ્રેડ દાખલ કરો: ");
    scanf(" %c", &s1.grade);
    
    // Data display
    printf("\nવિદ્યાર્થીની વિગતો:\n");
    printf("રોલ નં: %d\n", s1.roll_no);
    printf("નામ: %s\n", s1.name);
    printf("ગુણ: %.2f\n", s1.marks);
    printf("ગ્રેડ: %c\n", s1.grade);
    
    return 0;
}

Structure લક્ષણો:

લક્ષણવર્ણન
Dot operator (.)Structure members ને access કરવા
Memory allocationકુલ size = બધા members નો સરવાળો
InitializationDeclaration વખતે initialize કરી શકાય

Structure Initialization:

struct Student s1 = {101, "John", 85.5, 'A'};

Memory Layout:

s1: [roll_no][name...][marks][grade]
     4 bytes  50 bytes 4 bytes 1 byte

યાદ રાખવાની ટિપ: “સંબંધિત ડેટાને એકસાથે જૂથ બનાવો”


પ્રશ્ન 5(a) OR [3 ગુણ]
#

-5 અને +5 વચ્ચેના બધા numbers print કરવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>

int main() {
    int i;
    
    printf("-5 અને +5 વચ્ચેના નંબરો:\n");
    
    for(i = -5; i <= 5; i++) {
        printf("%d ", i);
    }
    
    return 0;
}

Output:

-5 અને +5 વચ્ચેના નંબરો:
-5 -4 -3 -2 -1 0 1 2 3 4 5

વૈકલ્પિક પદ્ધતિઓ:

// પદ્ધતિ 2: while loop વાપરીને
int i = -5;
while(i <= 5) {
    printf("%d ", i);
    i++;
}

// પદ્ધતિ 3: બે અલગ loops
for(i = -5; i < 0; i++)
    printf("%d ", i);
printf("0 ");
for(i = 1; i <= 5; i++)
    printf("%d ", i);

યાદ રાખવાની ટિપ: “નકારાત્મકથી શરૂ સકારાત્મકે અંત”


પ્રશ્ન 5(b) OR [4 ગુણ]
#

Quadratic equation ના roots શોધવા માટેનો પ્રોગ્રામ લખો.

જવાબ:

#include <stdio.h>
#include <math.h>

int main() {
    float a, b, c;
    float discriminant, root1, root2;
    
    printf("coefficients (a, b, c) દાખલ કરો: ");
    scanf("%f %f %f", &a, &b, &c);
    
    discriminant = b*b - 4*a*c;
    
    if(discriminant > 0) {
        root1 = (-b + sqrt(discriminant)) / (2*a);
        root2 = (-b - sqrt(discriminant)) / (2*a);
        printf("Roots વાસ્તવિક અને અલગ છે\n");
        printf("Root1 = %.2f\n", root1);
        printf("Root2 = %.2f\n", root2);
    }
    else if(discriminant == 0) {
        root1 = -b / (2*a);
        printf("Roots વાસ્તવિક અને સમાન છે\n");
        printf("Root = %.2f\n", root1);
    }
    else {
        float realPart = -b / (2*a);
        float imagPart = sqrt(-discriminant) / (2*a);
        printf("Roots સંકુલ છે\n");
        printf("Root1 = %.2f + %.2fi\n", realPart, imagPart);
        printf("Root2 = %.2f - %.2fi\n", realPart, imagPart);
    }
    
    return 0;
}

Quadratic Formula વિશ્લેષણ:

DiscriminantRoots નો પ્રકાર
b²-4ac > 0વાસ્તવિક અને અલગ
b²-4ac = 0વાસ્તવિક અને સમાન
b²-4ac < 0સંકુલ (કાલ્પનિક)

સૂત્ર: x = (-b ± √(b²-4ac)) / 2a

Sample Output:

coefficients દાખલ કરો: 1 -7 12
Roots વાસ્તવિક અને અલગ છે
Root1 = 4.00
Root2 = 3.00

યાદ રાખવાની ટિપ: “Discriminant Roots નો પ્રકાર નક્કી કરે છે”


પ્રશ્ન 5(c) OR [7 ગુણ]
#

નીચેના built-in functions ને ઉદાહરણો સાથે સમજાવો

જવાબ:

Function સમજૂતીઓ:

FunctionહેતુHeader Fileઉદાહરણ
clrscr()Screen સાફ કરવાconio.hclrscr();
sqrt()વર્ગમૂળmath.hsqrt(16) = 4.0
strlen()String ની લંબાઈstring.hstrlen(“Hello”) = 5
isdigit()અંક છે કે કેમ ચકાસવાctype.hisdigit(‘5’) = true
isalpha()અક્ષર છે કે કેમ ચકાસવાctype.hisalpha(‘A’) = true
toupper()મોટા અક્ષરમાં બદલવાctype.htoupper(‘a’) = ‘A’
tolower()નાના અક્ષરમાં બદલવાctype.htolower(‘B’) = ‘b’

ઉદાહરણ પ્રોગ્રામ:

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#include <ctype.h>

int main() {
    clrscr();  // Screen સાફ કરો
    
    // sqrt() ઉદાહરણ
    float num = 25.0;
    printf("%.1f નું વર્ગમૂળ = %.2f\n", num, sqrt(num));
    
    // strlen() ઉદાહરણ
    char str[] = "Programming";
    printf("'%s' ની લંબાઈ = %d\n", str, strlen(str));
    
    // Character functions
    char ch = 'a';
    printf("'%c' અંક છે: %s\n", ch, isdigit(ch) ? "હા" : "ના");
    printf("'%c' અક્ષર છે: %s\n", ch, isalpha(ch) ? "હા" : "ના");
    printf("'%c' નું મોટું અક્ષર = '%c'\n", ch, toupper(ch));
    
    ch = 'B';
    printf("'%c' નું નાનું અક્ષર = '%c'\n", ch, tolower(ch));
    
    return 0;
}

Function વર્ગીકરણ:

graph TD
    A[Built-in Functions] --> B[Screen Control]
    A --> C[Mathematical]
    A --> D[String]
    A --> E[Character]
    
    B --> F[clrscr()]
    C --> G[sqrt()]
    D --> H[strlen()]
    E --> I[isdigit(), isalpha()]
    E --> J[toupper(), tolower()]

મુખ્ય મુદ્દાઓ:

  • Header files: યોગ્ય headers include કરવા જરૂરી
  • Return values: મોટાભાગના functions ચોક્કસ types return કરે છે
  • Parameter types: Function parameter requirements ચકાસો

યાદ રાખવાની ટિપ: “સાફ ગણિત String Character”

સંબંધિત

ઔદ્યોગિક ઇલેક્ટ્રોનિક્સ (4331103) - ઉનાળુ-2024 પરીક્ષા ઉકેલ
27 મિનિટ
Study-Material Solutions Industrial-Electronics 4331103 2024 Summer
પ્રોગ્રામિંગ ઇન સી (4331105) - વિન્ટર 2023 સોલ્યુશન
16 મિનિટ
Study-Material Solutions Programming C-Language 4331105 2024 Winter
ઇલેક્ટ્રોનિક કમ્યુનિકેશનના સિદ્ધાંતો (4331104) - ગ્રીષ્મ 2023 સોલ્યુશન
23 મિનિટ
Study-Material Solutions Electronic-Communication 4331104 2023 Summer
ઇલેક્ટ્રોનિક મેઝરમેન્ટ્સ એન્ડ ઇન્સ્ટ્રુમેન્ટ્સ (4331102) - સમર 2023 સોલ્યુશન
24 મિનિટ
Study-Material Solutions Electronic-Measurements 4331102 2023 Summer
Mobile & Wireless Communication (4351104) - Summer 2025 Solution (Gujarati)
23 મિનિટ
Study-Material Solutions Mobile-Communication 4351104 2025 Summer Gujarati
Microwave and Radar Communication (4351103) - Summer 2025 Solution - Gujarati
15 મિનિટ
Study-Material Solutions Microwave 4351103 2025 Summer Gujarati