0% found this document useful (0 votes)
2K views72 pages

Apna College

Apna college notes

Uploaded by

Sonu Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views72 pages

Apna College

Apna college notes

Uploaded by

Sonu Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 72

1 HOMEWORK SET

a. Write a program to calculate perimeter of rectangle.


Take sides, a & b, from the user.

b. Take a number(n) from user & output its cube(n*n*n).

c. Write comments for programs a & b.


2 HOMEWORK SET

a. Write a program to print the average of 3 numbers.

b. Write a program to check if given character is digit


or not.

c. Write a program to print the smallest number of two.


3 HOMEWORK SET

a. Write a program to check if a given number is


Armstrong number or not.
(Search what is Armstrong number)

b. Write a program to check if the given number is a


natural number.
(Natural numbers start from 1)
4 HOMEWORK SET

a. Search on what a "nested loop" is & print this


pattern using it.
*****
*****
*****
*****
b. Write a program to check if a number is prime or not.

c. Write a program to print prime numbers in a range.


5 HOMEWORK SET

a. Write a function to find sum of digits of a number.

b. Write a function to find square root of a number.

c. Write a function to print "Hot" or "Cold" depending


on the temperature user enters.

d. Make your own pow function.


6 HOMEWORK SET

a. Write a program in C to find the maximum number


between two numbers using a pointer.

b. Write a program in C to print the elements of an


array in reverse order.

c. Write a program in C to print all the letters in english


alphabet using a pointer.
7 HOMEWORK SET

a. In an array of numbers, find how many times does


a number 'x' occurs.

b. Write a program to print the largest number in an


array.

c. Write a program to insert an element at the end of


an array.
8 HOMEWORK SET

a. Write a program to convert all lowercase vowels to


uppercase in a string.

b. Write a program to print the highest frequency


character in a string.
c. Write a program to remove blank spaces in a string.

d. Write a program to replace lowercase letters with


uppercase & vice versa in a string.
9 HOMEWORK SET

Make a system that can store information of all


students, teachers & staff of your college in the form
of structures.
You can also make this into a C Project with other
functionalities like cgpa calculation of students,
storing attendance etc.
10 HOMEWORK SET

a. Write a program to read a string from a file &


output to the user.

a. Replace the data in file of Q(a) with the number of


vowels in the string.

c. Format the information of 5 students (name,


marks, cgpa, course) in a table like structure in a file.
11 HOMEWORK SET

a. Search about what is a 'dangling pointer' in C.

b. Allocate memory for 500 integers using calloc &


then store first 500 natural numbers in that space.

c. Search about what is 'memory leak' in C.

d. Search & find out which is better malloc( ) or calloc ( ).


C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Variables, Data Types + Input/Output


(Chapter 1)

V
1. First Program
#include<stdio.h>

int main() {
printf("Hello World");
return 0;
}

2. Variables & Data Types + Constants & Keywords


#include<stdio.h>

int main() {
int number;
int age;
int price;
return 0;
}
#include<stdio.h>

int main() {
int age = 22;
float pi = 3.14;
char percentage = '%';
return 0;
}

3. Comments
#include<stdio.h>
//This program prints Hello World
int main() {
printf("Hello World");
return 0;
}

4. Output
#include<stdio.h>

int main() {
int age = 22;
float pi = 3.14;
char percentage = '%';

printf("age is %d", age);


printf("age is %f", pi);
printf("age is %c", percentage);
return 0;
}

5. Input (Sum of 2 numbers)


#include<stdio.h>

int main() {
int a, b;

printf("enter a \n");
scanf("%d", &a);

printf("enter b \n");
scanf("%d", &b);

printf("sum of a & b is : %d \n", a+b);

return 0;
}

6. Practice Qs 1 (Area of Square)


#include<stdio.h>
//area of square
int main() {
int side;
scanf("%d", &side);
printf("%d", side * side);
return 0;
}

7. Practice Qs 2 (Area of Circle)


#include<stdio.h>
//area of square
int main() {
float radius;
scanf("%f", &radius);
printf("%f", 3.14 * radius * radius);
return 0;
}
C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Instructions & Operators


(Chapter 2)

1. Type Declaration Instructions


#include<stdio.h>

int main() {
int age = 22;
int oldAge = age;
int newAge = oldAge + 2;
printf("new age is : %d", newAge);

int rupee = 1, dollar;


dollar = 74;

/*
order of declaration is important - Wrong Declaration Order
float pi = 3.14;
float area = pi * rad * rad;
float rad = 3;
*/
// valid declaration
int age1, age2, age3;
age1 = age2 = age3 = 22;

//invalid
//int a1 = a2 = a3 = 22;

return 0;
}

2. Arithmetic Instructions
#include<stdio.h>

int main() {
int a = 1, b = 2, c = 3;
//valid
a = b + c;

//invalid
// b + c = a;

printf("%d \n", 3 % 2);


printf("%d \n", -3 % 2);
return 0;
}

> Type Conversion


#include<stdio.h>

int main() {
printf("sum of 2 & 3 : %d", 2 + 3);
printf("sum of 2.0 & 3 : %f", 2.0 + 3);
printf("sum of 2.0 & 3.0 : %f", 2.0 + 3.0);
return 0;
}

> Associativity
#include<stdio.h>

int main() {
printf(" Output : %d", 5+2/2*3);
return 0;
}

3. Relational Operator
#include<stdio.h>

int main() {
printf("%d \n", 4==4);

printf("%d \n", 4<3);


printf("%d \n", 3<4);
printf("%d \n", 4<4);
printf("%d \n", 4<=4);

printf("%d \n", 4>3);


printf("%d \n", 3>4);
printf("%d \n", 4>4);
printf("%d \n", 4>=4);

printf("%d \n", 4!=4);


printf("%d \n", 3!=4);
return 0;
}

4. Logical Operator
#include<stdio.h>

int main() {
printf("%d \n", 3<4 && 3<5);
printf("%d \n", 3<4 && 5<4);

printf("%d \n", 3<4 && 5<4);


printf("%d \n", 3>4 && 5>4);
printf("%d \n", 3<4 && 3<5);

printf("%d \n", !(3<4 && 3<5));


printf("%d \n", !(4<3 || 5<3));
return 0;
}
5. Assignment Operator
# include <stdio.h>

int main() {
int a = 10;
a += 10;
printf("a+10 = %d \n", a);
a -= 10;
printf("a-10 = %d \n", a);
a *= 10;
printf("a*10 = %d \n", a);
a /= 10;
printf("a/10 = %d \n", a);
a %= 10;
printf("a%c10 = %d \n", '%', a);
return 0;
}

V
Instructions
These are statements in a Program

Types

Type Declaration Control


Instructions Arithmetic Instructions
Instructions
Instructions
Type Declaration Instructions Declare var before using it

VALID INVALID
int a = 22; int a = 22;
int b = a; int b = a;
int c = b + 1; int c = b + 2;
int d = 1, e; int d = 2, e;

int a,b,c;
int a,b,c = 1;
a = b = c = 1;
Arithmetic Instructions
a+b
Operand 1 Operand 2

Operator

NOTE - single variable on the LHS


Arithmetic Instructions
VALID INVALID
a=b+c b+c=a
a=b*c a = bc
a=b/c a = b^c

NOTE - pow(x,y) for x to the power y


Arithmetic Instructions
Modular Operator %
Returns remainder for int

3%2=1
-3 % 2 = -1
Arithmetic Instructions
Type Conversion

int op int int

int op float float

float op float float


Arithmetic Instructions
Operator Precedence

*, /, % x = 4 + 9 * 10

+, -

= x=4*3/6*2
Arithmetic Instructions
Associativity (for same precedence)
Left to Right

x=4*3/6*2
Instructions
Control Instructions
Used to determine flow of program
a. Sequence Control

b. Decision Control

c. Loop Control

d. Case Control
Operators
a. Arithmetic Operators

b. Relational Operators

c. Logical Operators

d. Bitwise Operators

e. Assignment Operators

f. Ternary Operator
Operators
Relational Operators
==

>, >=

<, <=

!=
Operators
Logical Operators
&& AND

|| OR

! NOT
Operator Precendence
Priority Operator
1 !
2 *, /, %
3 +, -
4 <, <=, >, >=
5 ==, !=
6 &&
7 ||
8 =
Operators
Assignment Operators
=
+=

-=

*=

/=

%=
C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Conditional Statements
(Chapter 3)

1. If-else
#include<stdio.h>

int main() {
int age = 19;
if(age >= 18) {
printf("you are an adult");
}
else {
printf("you are not an adult");
}
return 0;
}

> check if a number is odd or even


#include<stdio.h>

int main() {
int number;
scanf("%d", &number);

if(number % 2 == 0) {
printf("even");
}
else {
printf("odd");
}
return 0;
}

> Use of else if


#include<stdio.h>

int main() {
int age;
printf("Enter age : ");
scanf("%d", &age);

if(age < 12) {


printf("child");
}
else if(age < 18) {
printf("teenager");
}
else {
printf("adult");
}
return 0;
}

2. Ternary Operator
#include<stdio.h>

int main() {
int age;
printf("Enter age : ");
scanf("%d", &age);

age > 18 ? printf("adult \n") : printf("not adult \n");

int number = 7;
int luckyNumber = 7;

number == luckyNumber ? printf("you are lucky \n") : printf("you are not


lucky \n");

return 0;
}

3. Switch (integer)
#include<stdio.h>
#include<math.h>

int main() {
int day = 5;
switch(day) {
case 1 : printf("monday \n");
break;
case 2 : printf("tuesday \n");
break;
case 3 : printf("wednesday \n");
break;
case 4 : printf("thursday \n");
break;
case 5 : printf("friday \n");
break;
case 6 : printf("saturday \n");
break;
case 7 : printf("sunday \n");
break;
}
return 0;
}

4. Switch (character)
#include<stdio.h>
#include<math.h>

int main() {
char day = 'f';
switch(day) {
case 'm' : printf("monday \n");
break;
case 't' : printf("tuesday \n");
break;
case 'w' : printf("wednesday \n");
break;
case 'T' : printf("thursday \n");
break;
case 'f' : printf("friday \n");
break;
case 's' : printf("saturday \n");
break;
case 'S' : printf("sunday \n");
break;
}
return 0;
}
Conditional Statements
Types

if-else Switch
if-else

if(Condition) {
//do something if TRUE
}
else {
//do something if FALSE
}

Ele is optional block


can also work without {}
else if

if(Condition 1) {
//do something if TRUE
}
else if (Condition 2) {
//do something if 1st is FALSE & 2nd is TRUE
}
Conditional Operators
Ternary
Condition ? doSomething if TRUE : doSomething if FALSE;

give 1 & 0 cases


Conditional Operators
switch
switch(number) {
case C1: //do something
break;
case C2 : //do something
break;
default : //do something
}
Conditional Operators
switch Properties

a. Cases can be in any order

b. Nested switch (switch inside switch) are allowed


C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Loop Control Statements


(Chapter 4)

1. Syntax of 3 Loops
# include <stdio.h>

int main () {
//for loop
for(int i=1; i<=100; i++) {
printf("%d\n", i);
}

//while loop
int i=1;
while(i<=100) {
printf("%d\n", i);
i++;
}

//do while loop


i = 1;
do {
printf("%d\n", i);
i++;
} while(i<=100);

return 0;
}
C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Pointers
(Chapter 6)

1. Syntax
#include<stdio.h>

int main() {
int age = 22;
int *ptr = &age;
int _age = *ptr;
printf("%d\n", _age);

//address
printf("%p\n", &age);
printf("%p\n", ptr);
printf("%p\n", &ptr);

//data
printf("%d\n", age);
printf("%d\n", *ptr);
printf("%d\n", *(&age));
return 0;
}

2. Pointers in Function call


# include <stdio.h>

void square(int n);


void _square(int* n);

int main() {
int number = 4;

//call by value
square(number);
printf("n is : %d\n", number);

//call by reference
_square(&number);
printf("n is : %d\n", number);
return 0;
}

void square(int n) {
n = n * n;
printf("square is : %d\n", n);
}

void _square(int* n) {
*n = *n * *n;
printf("square is : %d\n", *n);
}

3. Swap 2 numbers
# include <stdio.h>

void swap(int a, int b);


void _swap(int* a, int *b);

int main() {
int x = 3, y = 5;

//call by value
swap(x, y);
printf("x = %d & y = %d\n", x, y);

//call by reference
_swap(&x, &y);
printf("x = %d & y = %d\n", x, y);
return 0;
}

void swap(int a, int b) {


int t = a;
a = b;
b = a;
}

void _swap(int* a, int* b) {


int t = *a;
*a = *b;
*b = *a;
}
Pointers
A variable that stores the memory
address of another variable

Memory
age ptr

22 2010

2010 2013
Syntax
int age = 22;
int *ptr = &age;
int _age = *ptr;
Memory
age ptr

22 2010

2010 2013
Declaring Pointers

int *ptr;

char *ptr;

float *ptr;
Format Specifier

printf("%p", &age);

printf("%p", ptr);

printf("%p", &ptr);
Pointer to Pointer
A variable that stores the memory
address of another pointer

Memory
age pptr ptr

22 2013 2010

2010 2012 2013


Pointer to Pointer
Syntax

int **pptr;

char **pptr;

float **pptr;
Pointers in Function Call

Call by call by
Value Reference

We pass value of We pass address of


variable as variable as
argument argument
Arrays

Collection of similar data types stored at


contiguous memory locations
Syntax
int marks[3];

char name[10];
float price[2];
Input & Output
scanf("%d", &marks[0]);

printf("%d", marks[0]);
Inititalization of Array
int marks[ ] = {97, 98, 89};

int marks[ 3 ] = {97, 98, 89};

Memory Reserved :
Pointer Arithmetic
Pointer can be incremented
& decremented

CASE 1
Pointer Arithmetic
CASE 2

CASE 3
Pointer Arithmetic

- We can also subtract one pointer from another

- We can also compare 2 pointers


Array is a Pointer

int *ptr = &arr[0];

int *ptr = arr;


Traverse an Array
int aadhar[10];
int *ptr = &aadhar[0];
Arrays as Function Argument
//Function Declaration
void printNumbers (int arr[ ], int n)
OR
void printNumbers (int *arr, int n)

//Function Call
printNumbers(arr, n);
Multidimensional Arrays
2 D Arrays
int arr[ ][ ] = { {1, 2}, {3, 4} }; //Declare

//Access
arr[0][0]
arr[0][1]
arr[1][0]
arr[1][1]
C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Strings
(Chapter 8)

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

int main() {
//declaration
char name[] = "Shradha Khapra";
char course[] = {'a','p', 'n', 'a', ' ', 'c', 'o', 'l', 'l', 'e', 'g', 'e',
'\0'};

//printing string
for(int i=0; name[i] != '\0'; i++) {
printf("%c", name[i]);
}
printf("\n");

//printing string with pointer


for(char *ptr=name; *ptr != '\0'; ptr++) {
printf("%c", *ptr);
}
printf("\n");

//printing using format specifier


printf("%s\n", name);

//input a string
char firstName[40];
printf("enter first name : ");
scanf("%s", firstName);
printf("you first name is %s\n", firstName);
char fullName[40];
printf("enter full name : ");
scanf("%s", fullName);
printf("you first name is %s\n", fullName);

// gets & puts


char fullName[40];
printf("enter full name : ");
fgets(fullName, 40, stdin);
puts(fullName);

//Library Functions
char name[] = "Shradha";
int length = strlen(name);
printf("the length of name : %d\n", length);

char oldVal[] = "oldValue";


char newVal[50];
strcpy(newVal, oldVal);
puts(newVal);

char firstStr[50] = "Hello ";


char secStr[] = "World";
strcat(firstStr, secStr);
puts(firstStr);

char str1[] = "Apple";


char str2[] = "Banana";
printf("%d\n", strcmp(str1, str2));

//enter String using %c


printf("enter string : ");
char str[100];
char ch;
int i = 0;

while(ch != '\n') {
scanf("%c", &ch);
str[i] = ch;
i++;
}
str[i] = '\0';
puts(str);

return 0;
}

> Some more Qs


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

// void printString(char arr[]);


// int countLength(char arr[]);
// void salting(char password[]);
// void slice(char str[], int n, int m);

//int countVowels(char str[]);

void checkChar(char str[], char ch);

int main() {
char str[] = "ApnaCollege";
char ch = 'x';
checkChar(str, ch);
}

void checkChar(char str[], char ch) {


for(int i=0; str[i] != '\0'; i++) {
if(str[i] == ch) {
printf("character is present!");
return;
}
}
printf("character is NOT present:(");
}

// int countVowels(char str[]) {


// int count = 0;

// for(int i=0; str[i] != '\0'; i++) {


// if(str[i] == 'a' || str[i] == 'e' || str[i] == 'i' ||
// str[i] == 'o' || str[i] == 'u') {
// count++;
// }
// }
// return count;
// }

// void slice(char str[], int n, int m) { // n & m are valid value


// char newStr[100];
// int j = 0;
// for(int i=n; i<=m; i++, j++) {
// newStr[j] = str[i];
// }
// newStr[j] = '\0';
// puts(newStr);
// }

// void salting(char password[]) {


// char salt[] = "123";
// char newPass[200];

// strcpy(newPass, password); // newPass = "test"


// strcat(newPass, salt); // newPass = "test" + "123";
// puts(newPass);
// }

// int countLength(char arr[]) {


// int count = 0;
// for(int i=0; arr[i]!='\0'; i++) {
// count++;
// }
// return count-1;
// }

// void printString(char arr[]) {


// for(int i=0; arr[i] != '\0' ;i++) {
// printf("%c", arr[i]);
// }
// printf("\n");
// }
C Language Tutorial
(Basic to Advanced)

Topics to be covered :
Installation + Setup
Chapter 1 - Variables, Data types + Input/Output
Chapter 2 - Instructions & Operators
Chapter 3 - Conditional Statements
Chapter 4 - Loop Control Statements
Chapter 5 - Functions & Recursion
Chapter 6 - Pointers
Chapter 7 - Arrays
Chapter 8 - Strings
Chapter 9 - Structures
Chapter 10 - File I/O
Chapter 11 - Dynamic Memory Allocation

Dynamic Memory Allocation


(Chapter 11)

# include <stdio.h>
# include <stdlib.h>
//Dynamic Memory Allocation

int main() {
//sizeof function
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(char));

//malloc
// int *ptr;
// ptr = (int *) malloc(5 * sizeof(int));

// for(int i=0; i<5; i++) {


// scanf("%d", &ptr[i]);
// }

// for(int i=0; i<5; i++) {


// printf("number %d = %d\n", i+1, ptr[i]);
// }

//calloc
int *ptr = (int *) calloc(5, sizeof(int));

for(int i=0; i<5; i++) {


printf("number %d = %d\n", i+1, ptr[i]);
}

//free
free(ptr);

return 0;
}

You might also like