Skip to main content
  1. Resources/
  2. Study Materials/
  3. Electronics & Communication Engineering/
  4. ECE Semester 3/

Programming In C (4331105) - Winter 2024 Solution

15 mins· ·
Study-Material Solutions Programming C-Language 4331105 2024 Winter
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Table of Contents

Question 1(a) [3 marks]
#

List any six keywords of C language.

Answer:

CategoryKeywords
Data Typesint, float, char
Control Flowif, for, return

Mnemonic: “I Find Clever Reasons For Results”

Question 1(b) [4 marks]
#

Define Operator. Summarize types of operators based on operands.

Answer:

Operator: Symbol that performs operations on operands to produce a result.

TypeDescriptionExamples
UnarySingle operand++, –, !
BinaryTwo operands+, -, *, /, %
TernaryThree operands?:

Mnemonic: “U-B-T: Use Binary Then Ternary”

Question 1(c) [7 marks]
#

Define flowchart. Draw flowchart symbols. Draw flowchart to find minimum of two integer numbers N1 & N2.

Answer:

Flowchart: Graphical representation of algorithm using standardized symbols to show the sequence of operations.

Common Flowchart Symbols:

SymbolMeaning
OvalStart/Stop
ParallelogramInput/Output
RectangleProcess
DiamondDecision
ArrowFlow direction

Flowchart to find minimum of N1 & N2:

flowchart TD
    A([Start]) --> B[/Input N1, N2/]
    B --> C{N1 < N2?}
    C -->|Yes| D[Min = N1]
    C -->|No| E[Min = N2]
    D --> F[/Display Min/]
    E --> F
    F --> G([End])

Mnemonic: “SPADE: Start-Process-Arrow-Decision-End”

Question 1(c) OR [7 marks]
#

Define algorithm. Write an algorithm to calculate area and circumference of circle.

Answer:

Algorithm: Step-by-step procedure to solve a problem using finite number of well-defined instructions.

Algorithm to calculate area and circumference of circle:

  1. Start
  2. Input radius r
  3. Set PI = 3.14159
  4. Calculate area = PI × r × r
  5. Calculate circumference = 2 × PI × r
  6. Display area and circumference
  7. Stop

Table of formulas used:

MeasurementFormula
Areaπ × r²
Circumference2 × π × r

Mnemonic: “RICARD: Radius Input, Calculate Area, Reveal Dimensions”

Question 2(a) [3 marks]
#

Differentiate printf() and scanf().

Answer:

Featureprintf()scanf()
PurposeOutputs data to screenInputs data from keyboard
DirectionOutput functionInput function
Format specifierRequiredRequired
ParameterActual valuesAddress of variables (&)

Mnemonic: “OIAD: Output-Input, Actual-Destination”

Question 2(b) [4 marks]
#

Develop a C program to print sum & average of 1 to n.

Answer:

#include <stdio.h>

int main() {
    int n, i, sum = 0;
    float avg;
    
    printf("Enter n: ");
    scanf("%d", &n);
    
    for(i = 1; i <= n; i++) {
        sum += i;
    }
    
    avg = (float)sum / n;
    
    printf("Sum = %d\n", sum);
    printf("Average = %.2f\n", avg);
    
    return 0;
}

Key Points:

  • Initialization: sum = 0
  • Iteration: for loop from 1 to n
  • Type Casting: (float) for correct average

Mnemonic: “SIAP: Sum Initialize, Add in loop, Print results”

Question 2(c) [7 marks]
#

Explain Arithmetic operator and Relational operator with example.

Answer:

1. Arithmetic Operators:

OperatorOperationExampleResult
+Addition5 + 38
-Subtraction5 - 32
*Multiplication5 * 315
/Division5 / 22 (integer)
%Modulo (Remainder)5 % 21

2. Relational Operators:

OperatorMeaningExampleResult
<Less than5 < 30 (false)
>Greater than5 > 31 (true)
<=Less than or equal5 <= 51 (true)
>=Greater than or equal3 >= 50 (false)
==Equal to5 == 51 (true)
!=Not equal to5 != 31 (true)

Code Example:

int a = 5, b = 3;
printf("a + b = %d\n", a + b);     // Output: 8
printf("a > b is %d\n", a > b);    // Output: 1 (true)

Mnemonic: “ASMDR for Arithmetic, LEGENE for Relational”

Question 2(a) OR [3 marks]
#

What is the difference between get(S) and scanf("%s",S)

Answer:

Featuregets(S)scanf("%s",S)
Whitespace handlingReads spaceStops at whitespace
Buffer overflowNo boundary checkSafer with width limit
Return typechar*Number of items read
Usage safetyDeprecated, unsafeSafer with format control

Mnemonic: “WBRU: Whitespace-Boundary-Return-Usage”

Question 2(b) OR [4 marks]
#

Develop a C program to swap (exchange) value of two numbers.

Answer:

#include <stdio.h>

int main() {
    int a, b, temp;
    
    printf("Enter two numbers: ");
    scanf("%d %d", &a, &b);
    
    printf("Before swap: a = %d, b = %d\n", a, b);
    
    temp = a;
    a = b;
    b = temp;
    
    printf("After swap: a = %d, b = %d\n", a, b);
    
    return 0;
}

Diagram:

flowchart LR
    subgraph Before
    A1[a = 5] --- B1[b = 10]
    end
    subgraph Step1
    A2[a = 5] --- T[temp = 5]
    B2[b = 10]
    end
    subgraph Step2
    A3[a = 10] --- T2[temp = 5]
    B3[b = 10]
    end
    subgraph After
    A4[a = 10] --- B4[b = 5]
    end
    Before --> Step1
    Step1 --> Step2
    Step2 --> After

Mnemonic: “TAB: Temp-Assign-Backfill”

Question 2(c) OR [7 marks]
#

Explain Boolean operator and Logical operator with example.

Answer:

1. Boolean Operators:

OperatorOperationExampleResult
&Bitwise AND5 & 31
|Bitwise OR5 | 37
^Bitwise XOR5 ^ 36
~Bitwise NOT~5-6
«Left Shift5 « 110
»Right Shift5 » 12

2. Logical Operators:

OperatorMeaningExampleResult
&&Logical AND(5>3) && (2<4)1 (true)
||Logical OR(5<3) || (2<4)1 (true)
!Logical NOT!(5>3)0 (false)

Example:

int a = 5, b = 3;
printf("a & b = %d\n", a & b);           // Output: 1 (bitwise AND)
printf("a > b && b < 10 is %d\n", a > b && b < 10);  // Output: 1 (true)

Bit Representation (5 & 3):

5 = 101
3 = 011
& = 001 (1 in decimal)

Mnemonic: “BOXNRL for Boolean, AON for Logical”

Question 3(a) [3 marks]
#

Compare entry controlled and exit controlled loop with example.

Answer:

FeatureEntry ControlledExit Controlled
Condition checkBefore executionAfter execution
Minimum iterationsZeroOne
Examplewhile, fordo-while
UsageWhen pre-check neededWhen at least one execution needed

Mnemonic: “BCME: Before-Check-Multiple-Examples”

Question 3(b) [4 marks]
#

Develop a C program to display addition and subtraction of two numbers using switch case.

Answer:

#include <stdio.h>

int main() {
    int a, b, choice, result;
    
    printf("Enter two numbers: ");
    scanf("%d %d", &a, &b);
    
    printf("1. Addition\n2. Subtraction\n");
    printf("Enter choice (1/2): ");
    scanf("%d", &choice);
    
    switch(choice) {
        case 1:
            result = a + b;
            printf("Addition: %d\n", result);
            break;
        case 2:
            result = a - b;
            printf("Subtraction: %d\n", result);
            break;
        default:
            printf("Invalid choice\n");
    }
    
    return 0;
}

Flowchart:

flowchart TD
    A([Start]) --> B[/Input a, b/]
    B --> C[/Input choice/]
    C --> D{switch(choice)}
    D -->|case 1| E[result = a + b]
    D -->|case 2| F[result = a - b]
    D -->|default| G[Display Invalid]
    E --> H[/Display Addition/]
    F --> I[/Display Subtraction/]
    H --> J([End])
    I --> J
    G --> J

Mnemonic: “CIRCA: Choice-Input-Result-Calculate-Action”

Question 3(c) [7 marks]
#

Explain multiple if-else statement with syntax, flowchart and an example.

Answer:

Syntax of multiple if-else:

if (condition1) {
    // code block 1
} 
else if (condition2) {
    // code block 2
} 
else if (condition3) {
    // code block 3
} 
else {
    // default code block
}

Flowchart:

flowchart TD
    A([Start]) --> B{condition1?}
    B -->|True| C[Execute block 1]
    B -->|False| D{condition2?}
    D -->|True| E[Execute block 2]
    D -->|False| F{condition3?}
    F -->|True| G[Execute block 3]
    F -->|False| H[Execute default block]
    C --> I([End])
    E --> I
    G --> I
    H --> I

Example:

#include <stdio.h>

int main() {
    int marks;
    
    printf("Enter marks: ");
    scanf("%d", &marks);
    
    if (marks >= 80) {
        printf("Grade: A\n");
    } 
    else if (marks >= 70) {
        printf("Grade: B\n");
    } 
    else if (marks >= 60) {
        printf("Grade: C\n");
    } 
    else {
        printf("Grade: F\n");
    }
    
    return 0;
}

Mnemonic: “TEST: Try Each Statement Then default”

Question 3(a) OR [3 marks]
#

State the use of break and continue keyword.

Answer:

KeywordPurposeEffectCommon Use
breakTerminates loop/switchExits the current loop/switchTo exit when condition met
continueSkips iterationJumps to next iterationTo skip specific values

Example Code:

// break example
for(i=1; i<=10; i++) {
    if(i == 5) break; // exits loop at i=5
    printf("%d ", i);  // prints 1 2 3 4
}

// continue example
for(i=1; i<=5; i++) {
    if(i == 3) continue; // skips i=3
    printf("%d ", i);  // prints 1 2 4 5
}

Mnemonic: “EXIT-SKIP: EXit IT or SKIP iteration”

Question 3(b) OR [4 marks]
#

Develop a C program to check whether the given number is even or odd.

Answer:

#include <stdio.h>

int main() {
    int num;
    
    printf("Enter a number: ");
    scanf("%d", &num);
    
    if (num % 2 == 0) {
        printf("%d is even.\n", num);
    } 
    else {
        printf("%d is odd.\n", num);
    }
    
    return 0;
}

Diagram:

flowchart TD
    A([Start]) --> B[/Input num/]
    B --> C{num % 2 == 0?}
    C -->|Yes| D[/Display "Even"/]
    C -->|No| E[/Display "Odd"/]
    D --> F([End])
    E --> F

Key Points:

  • Check: Using modulo (%) operator
  • Decision: Based on remainder with 2
  • Output: Even for remainder 0, Odd otherwise

Mnemonic: “MODE: MODulo Equals zero for even”

Question 3(c) OR [7 marks]
#

Explain switch-case statement with syntax, flowchart and an example.

Answer:

Syntax of switch-case:

switch (expression) {
    case constant1:
        // code block 1
        break;
    case constant2:
        // code block 2
        break;
    ...
    default:
        // default code block
}

Flowchart:

flowchart TD
    A([Start]) --> B[Evaluate expression]
    B --> C{matches case 1?}
    C -->|Yes| D[Execute block 1]
    C -->|No| E{matches case 2?}
    E -->|Yes| F[Execute block 2]
    E -->|No| G{matches case n?}
    G -->|Yes| H[Execute block n]
    G -->|No| I[Execute default block]
    D --> J[break?]
    F --> K[break?]
    H --> L[break?]
    J -->|Yes| M([End])
    K -->|Yes| M
    L -->|Yes| M
    I --> M
    J -->|No| E
    K -->|No| G
    L -->|No| M

Example:

#include <stdio.h>

int main() {
    char grade;
    
    printf("Enter grade (A-D): ");
    scanf(" %c", &grade);
    
    switch (grade) {
        case 'A':
            printf("Excellent!\n");
            break;
        case 'B':
            printf("Good job!\n");
            break;
        case 'C':
            printf("Satisfactory\n");
            break;
        case 'D':
            printf("Needs improvement\n");
            break;
        default:
            printf("Invalid grade\n");
    }
    
    return 0;
}

Mnemonic: “CEBID: Compare-Execute-Break-If-Done”

Question 4(a) [3 marks]
#

Define string. List out different operations that can be performed on string.

Answer:

String: Array of characters terminated by null character ‘\0’.

OperationDescriptionFunction
Input/OutputRead/write stringsgets(), puts()
CopyCopy one string to anotherstrcpy()
ConcatenationJoin two stringsstrcat()
ComparisonCompare two stringsstrcmp()
LengthFind string lengthstrlen()
SearchFind substringstrstr()

Mnemonic: “ICCLS: Input-Copy-Concatenate-Length-Search”

Question 4(b) [4 marks]
#

Develop a C program to convert uppercase alphabet to lowercase alphabet.

Answer:

#include <stdio.h>

int main() {
    char ch;
    
    printf("Enter an uppercase letter: ");
    scanf(" %c", &ch);
    
    if (ch >= 'A' && ch <= 'Z') {
        char lowercase = ch + 32;  // ASCII difference is 32
        printf("Lowercase: %c\n", lowercase);
    } 
    else {
        printf("Not an uppercase letter\n");
    }
    
    return 0;
}

ASCII Table Excerpt:

CharacterASCII Value
A65
a97
Z90
z122
Difference32

Mnemonic: “COOL: Character Offset Of Lowercase”

Question 4(c) [7 marks]
#

Draw flowchart of for loop and explain with example.

Answer:

For Loop Syntax:

for (initialization; condition; increment/decrement) {
    // code block
}

Flowchart:

flowchart TD
    A([Start]) --> B[Initialization]
    B --> C{Condition?}
    C -->|True| D[Execute code block]
    D --> E[Increment/Decrement]
    E --> C
    C -->|False| F([End])

For Loop Components:

  1. Initialization: Executed once at beginning
  2. Condition: Checked before each iteration
  3. Increment/Decrement: Executed after each iteration
  4. Body: Executed if condition is true

Example:

#include <stdio.h>

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

Execution Flow:

  1. Initialize i = 1
  2. Check condition (1 <= 5) - True
  3. Execute body - Print 1
  4. Increment i to 2
  5. Check condition (2 <= 5) - True
  6. And so on until i becomes 6

Mnemonic: “ICE-T: Initialize, Check, Execute, Then increment”

Question 4(a) OR [3 marks]
#

Define array. List out different operations that can be performed on array.

Answer:

Array: Collection of similar data types stored in contiguous memory locations.

OperationDescriptionExample
DeclarationCreate arrayint arr[5];
InitializationAssign valuesarr[0] = 10;
TraversalAccess all elementsfor loop
InsertionAdd new elementarr[pos] = value;
DeletionRemove elementShift elements
SearchingFind elementLinear/binary search
SortingArrange elementsBubble/Selection sort

Mnemonic: “DITIDSS: Declare-Initialize-Traverse-Insert-Delete-Search-Sort”

Question 4(b) OR [4 marks]
#

Define pointer. Explain with example.

Answer:

Pointer: Variable that stores the memory address of another variable.

ConceptDescriptionSyntax
DeclarationCreate pointerint *ptr;
Address operatorGet address&variable
DereferencingAccess value at address*ptr
AssignmentStore address in pointerptr = &variable;

Example:

#include <stdio.h>

int main() {
    int num = 10;
    int *ptr;
    
    ptr = &num;  // Store address of num in ptr
    
    printf("Value of num: %d\n", num);           // 10
    printf("Address of num: %p\n", &num);        // Address of num
    printf("Value of ptr: %p\n", ptr);           // Same address
    printf("Value pointed by ptr: %d\n", *ptr);  // 10
    
    *ptr = 20;   // Change value using pointer
    printf("New value of num: %d\n", num);       // 20
    
    return 0;
}

Diagram:

flowchart LR
    subgraph Memory
    A[ptr: 1001] -->|contains| B[1000]
    C[num: 1000] -->|contains| D[10]
    end
    B -.->|points to| C

Mnemonic: “SAVD: Store Address, Value through Dereferencing”

Question 4(c) OR [7 marks]
#

Draw flowchart of while loop and explain with example.

Answer:

While Loop Syntax:

while (condition) {
    // code block
}

Flowchart:

flowchart TD
    A([Start]) --> B{Condition?}
    B -->|True| C[Execute code block]
    C --> D[Update control variable]
    D --> B
    B -->|False| E([End])

While Loop Components:

  1. Initialization: Before the loop
  2. Condition: Checked before each iteration
  3. Body: Executed if condition is true
  4. Update: Must be done inside the body

Example:

#include <stdio.h>

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

Execution Flow:

  1. Initialize i = 1 (before loop)
  2. Check condition (1 <= 5) - True
  3. Execute body - Print 1
  4. Update i to 2
  5. Check condition (2 <= 5) - True
  6. And so on until i becomes 6

Mnemonic: “CHECK-UPDATE: CHECK before entering, UPDATE before repeating”

Question 5(a) [3 marks]
#

State the use of following functions. (1) strcat() (2) strlen() (3) strcpy()

Answer:

FunctionPurposeSyntaxExample
strcat()Concatenates stringsstrcat(dest, src)“Hello” + “World” -> “HelloWorld”
strlen()Returns string lengthstrlen(str)“Hello” -> 5
strcpy()Copies stringstrcpy(dest, src)src -> dest

Code Example:

#include <string.h>

char str1[20] = "Hello";
char str2[20] = "World";
char str3[20];

strcat(str1, str2);    // str1 becomes "HelloWorld"
int len = strlen(str1); // len becomes 10
strcpy(str3, str1);    // str3 becomes "HelloWorld"

Mnemonic: “CLS: Concatenate-Length-Source copy”

Question 5(b) [4 marks]
#

Build a structure to store book information: book_no, book_title, book_author, book_price.

Answer:

#include <stdio.h>
#include <string.h>

struct Book {
    int book_no;
    char book_title[50];
    char book_author[30];
    float book_price;
};

int main() {
    struct Book book1;
    
    // Assign values
    book1.book_no = 101;
    strcpy(book1.book_title, "Programming in C");
    strcpy(book1.book_author, "Dennis Ritchie");
    book1.book_price = 450.75;
    
    // Display book information
    printf("Book No: %d\n", book1.book_no);
    printf("Title: %s\n", book1.book_title);
    printf("Author: %s\n", book1.book_author);
    printf("Price: %.2f\n", book1.book_price);
    
    return 0;
}

Structure Memory Layout:

flowchart TD
    subgraph "struct Book"
    A[book_no: 4 bytes] --> B[book_title: 50 bytes]
    B --> C[book_author: 30 bytes]
    C --> D[book_price: 4 bytes]
    end

Mnemonic: “NTAP: Number-Title-Author-Price”

Question 5(c) [7 marks]
#

Explain array and array initialization. Give example.

Answer:

Array: Collection of same data type elements stored at contiguous memory locations.

Array Initialization Methods:

MethodSyntaxExample
At declarationdatatype array_name[size] = {values};int arr[5] = {10, 20, 30, 40, 50};
Partialdatatype array_name[size] = {values};int arr[5] = {10, 20}; // Rest are 0
All zerosdatatype array_name[size] = {0};int arr[5] = {0};
Element by elementarray_name[index] = value;arr[0] = 10; arr[1] = 20;
Size inferencedatatype array_name[] = {values};int arr[] = {10, 20, 30}; // Size 3

Example:

#include <stdio.h>

int main() {
    // Method 1: Complete initialization
    int arr1[5] = {10, 20, 30, 40, 50};
    
    // Method 2: Partial initialization (remaining elements set to 0)
    int arr2[5] = {10, 20};  // arr2[2], arr2[3], arr2[4] become 0
    
    // Method 3: Element by element
    int arr3[3];
    arr3[0] = 100;
    arr3[1] = 200;
    arr3[2] = 300;
    
    // Method 4: Size inference
    int arr4[] = {1, 2, 3, 4, 5};  // Size automatically set to 5
    
    // Accessing elements
    printf("arr1[2] = %d\n", arr1[2]);  // Output: 30
    
    // Array traversal
    printf("arr4 elements: ");
    for(int i = 0; i < 5; i++) {
        printf("%d ", arr4[i]);  // Output: 1 2 3 4 5
    }
    
    return 0;
}

Memory Representation:

flowchart LR
    subgraph "arr1[5]"
    A[arr1[0]: 10] --- B[arr1[1]: 20] --- C[arr1[2]: 30] --- D[arr1[3]: 40] --- E[arr1[4]: 50]
    end

Mnemonic: “CAPES: Complete, Automatic, Partial, Element, Size-inferred”

Question 5(a) OR [3 marks]
#

Compare array and structure with example.

Answer:

FeatureArrayStructure
Data typeSame type elementsDifferent type elements
AccessUsing index (arr[i])Using dot operator (s.member)
MemoryContiguous, fixed sizeContiguous, may have padding
AssignmentElement by elementDirect with compatible structures
PurposeCollection of similar itemsGroup of related data

Array Example:

int marks[5] = {85, 90, 78, 92, 88};
printf("%d", marks[2]);  // Access element at index 2 (78)

Structure Example:

struct Student {
    int roll_no;
    char name[20];
    float percentage;
};

struct Student s1 = {101, "Raj", 85.5};
printf("%s", s1.name);  // Access name member ("Raj")

Mnemonic: “DAMPA: Datatype-Access-Memory-Purpose-Assignment”

Question 5(b) OR [4 marks]
#

Define User Defined Function. Explain with example.

Answer:

User Defined Function: Block of code written by programmer to perform specific task, which can be called multiple times.

ComponentDescriptionExample
Return typeData type returnedint, float, void
Function nameUnique identifiersum, findMax
ParametersInput data(int a, int b)
BodySet of statements{ return a+b; }

Example:

#include <stdio.h>

// Function declaration
int sum(int a, int b);

int main() {
    int num1 = 10, num2 = 20, result;
    
    // Function call
    result = sum(num1, num2);
    
    printf("Sum = %d\n", result);
    
    return 0;
}

// Function definition
int sum(int a, int b) {
    return a + b;
}

Function Flow:

flowchart TD
    A[main function] -->|Call sum(10, 20)| B[sum function]
    B -->|Return 30| A
    B -->|a = 10, b = 20| C[return a + b]

Mnemonic: “DPCR: Declaration-Parameters-Call-Return”

Question 5(c) OR [7 marks]
#

Develop a C program to find maximum and minimum element of array.

Answer:

#include <stdio.h>

int main() {
    int arr[100], n, i;
    int max, min;
    
    printf("Enter number of elements: ");
    scanf("%d", &n);
    
    printf("Enter %d integers: ", n);
    for(i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // Initialize max and min with first element
    max = min = arr[0];
    
    // Find max and min
    for(i = 1; i < n; i++) {
        if(arr[i] > max) {
            max = arr[i];
        }
        if(arr[i] < min) {
            min = arr[i];
        }
    }
    
    printf("Maximum element: %d\n", max);
    printf("Minimum element: %d\n", min);
    
    return 0;
}

Algorithm:

  1. Input array size and elements
  2. Initialize max and min with first element
  3. For each remaining element:
    • If element > max, update max
    • If element < min, update min
  4. Display max and min

Flowchart:

flowchart TD
    A([Start]) --> B[/Input n/]
    B --> C[/Input array elements/]
    C --> D[max = min = arr[0]]
    D --> E[i = 1]
    E --> F{i < n?}
    F -->|Yes| G{arr[i] > max?}
    G -->|Yes| H[max = arr[i]]
    G -->|No| I{arr[i] < min?}
    H --> I
    I -->|Yes| J[min = arr[i]]
    I -->|No| K[i++]
    J --> K
    K --> F
    F -->|No| L[/Display max, min/]
    L --> M([End])

Mnemonic: “FILLS: First Initialize, Loop through, Look for Small/large”

Related

Industrial Electronics (4331103) - Winter 2024 Solution
19 mins
Study-Material Solutions Industrial-Electronics 4331103 2024 Winter
Programming in C (4331105) - Winter 2023 Solution
23 mins
Study-Material Solutions Programming-in-C 4331105 2023 Winter
Electronic Circuits & Networks (4331101) - Winter 2024 Solution
18 mins
Study-Material Solutions Electronic-Circuits 4331101 2024 Winter
Communication Engineering (1333201) - Winter 2024 Solution
23 mins
Study-Material Solutions Communication-Engineering 1333201 2024 Winter
Linear Integrated Circuit (4341105) - Winter 2024 Solution
28 mins
Study-Material Solutions Linear-Integrated-Circuit 4341105 2024 Winter
Antenna & Wave Propagation (4341106) - Winter 2024 Solution
21 mins
Study-Material Solutions Antenna Wave-Propagation 4341106 2024 Winter