SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
1 
 
1901006 – PROGRAMMING IN C
(COMMON TO AGRI, CIVIL, MECH, EEE AND EIE)
UNIT – 2 QUESTION BANK QUESTIONS WITH ANSWER
PART-A
1. List out the advantages of Arrays.
In arrays, the elements can be accessed randomly by using the index number. Arrays allocate memory
in contiguous memory locations for all its elements. Hence there is no chance of extra memory being
allocated in case of arrays. They are faster and can be utilized anywhere. They store data of similar
data types together.
2. Define a float array of size 5 and assign 5 values to it.
float f[5]={ 1.2, 3.4, 5.6, 7.8, 6.7};
3. Identify the way to assign an array to another array.
To assign one array to another array. Ensure that the two arrays have the same rank (number of
dimensions) and compatible element data types. Use a standard assignment statement to assign the
source array to the destination array.
4. What is an array? Write the syntax for array.
An array is a series of elements of the similar type placed in contiguous memory locations.
data_typearrayName [ arraySize ];
5. What will happen when you access the array more than its dimension?
If the index of the array size is exceeded, the program will crash. But the modern compilers will take
care of this kind of errors.
6. Point out an example code to express two dimensional array.
int a[2][2]={1,2,3,4};
7. How to create a two dimensional array?
data_typearrayName [ arraySize1 ] [ arraySize2 ];
8. What is the method to equate an array?
Given two given arrays of equal length, the task is to find if given arrays are equal or not. Two arrays
are said to be equal if both of them contain same set of elements.
2 
 
9. Distinguish between one dimensional and two dimensional arrays.
1Dimensional array
* We can declare an array with a single subscript like ai .Arrays with only a single subscript are
known as one dimensional arrays.
*Syntax for initializing 1D array: datatypearrayname[size]={list of values};
2Dimensional array
* An array that has two subscripts, for example: aij is known as a two dimensional. A two dimensional
array is used to store a table of values which has rows and columns.
* A two dimensional array can be initialized in different ways either statically at compile time or
dynamically at run time.
*syntax for initializing 2D array: datatypearrayname[rows][column]={val1, val2,.. valn};
10. What are the different ways of initializing array?
After an array is declared it must be initialized. Otherwise, it will contain garbage value(any random
value). An array can be initialized at either compile time or at runtime.
11. What is the use of ‘0’ and ‘%s’?
‘0’ is the null character. Every string literal constant is automatically terminated by ‘0’. The number
of bytes required to store a string literal constant is one more than the number of characters present in
it. The additional byte is required for storing ‘0’.
• ‘%s’ is the format specifier used in scanf function that reads all the characters up to, but not
including the white-space character. Thus, scanf function with ‘%s’ specifier can be used to read
single word strings but cannot be used to read multi-word strings.
12. Is address operator used in scanf() statement to read an array? Why?
Array name represents the address of the starting element in the array. Hence, we don’t use the address
operator (&) while reading an array through scanf() function.
13. What is the role of strrev()?
The strrev( ) function reverses all the characters of a string except the terminating null character (‘0’).
14. Show a C function to compare two strings.
strcmp() function is used to compare two strings.
Syntax: if (strcmp(s1,s2)= = 0), then both the strings are equal
if (strcmp(s1,s2) > 0), then string s1 is greater.
if (strcmp(s1,s2) < 0), then string s2 is greater.
15. How to initialize a string? Give an example.
A string can be initialized in two different ways:
By using string literal constant. Example: char str[6]=”Hello”;
By using initialization list. Example: char str[6]={‘H’,’e’,’l’,’l’,’o’,’0’};
3 
 
16. What will be the output of following program ?
#include <stdio.h>
int main()
{
charstr[8]="IncludeHelp";
printf("%s",str);
return 0;
}
Ans:
Error: Too many initializers/ array bounds overflow.
17. Write the output of the following Code:
main()
{
char x;
x = ‘a’;
printf(“%d n”,x);
}
Output: 97
It prints the ASCII value of the character ‘a’ (i.e. 97).
18. Specify any two applications of Array.
• Arrays are used to implement mathematical vectors and matrices, as well as other kinds of
rectangular tables.
• Arrays are used to implement other data structures, such as lists, heaps, hash tables, queues and
stacks.
19. List out the any four functions that are performed on characterstrings.
-Finding the length of a string (strlen ( )).
- Copying the source string to the destination string (strcpy( )).
- Concatenating two strings (strcat( )).
- Comparing two strings (strcmp( )).
- Reversing the content of a string (strrev( )).
20. Write the output of the following Code:
main()
{
static char name[]=”KagzWrxAd”
inti=0;
while(name[i]!=’0’)
{
4 
 
printf(“%c”,name[i]);
i++;
}
}
Output: KagzWrxAd
PART-B
1. (i) Explain the need for array variables. Describe the following with respect to arrays:-
Declaration of array and accessing an array element. (6)
Need for array variables: Array variables are used for the storage of homogeneous data, i.e.data of
the same type, and they also provide an efficient mechanism for accessing data in ageneralized
manner.
• Array variables are needed for storing and processing string (i.e. a group of characters).
• There is no basic data type available in C to store strings. A variable of char type can beused to
store only one character and cannot be used to store more than one character.
• The derived type array enables the user to store the characters in a contiguous set ofmemory
locations, all of which can be accessed by only one name, i.e. the array name.
• Single or one-dimensional array variables are used extensively in searching and
sortingprocesses.
• Searching is an operation in which a given list (i.e. array) is searched for a particularvalue, and
the location of the searched element is informed, if found. The varioussearching methods are
linear or sequential search and binary search.
• Sorting is an operation in which all the elements of a list (i.e. array) are arranged in
apredetermined order (ascending or descending). The various sorting methods are linearor
sequential sort, selection sort, bubble sort, insertion sort, merge sort, quick sort, shellsort and
radix sort.
• Two-dimensional array variables are used to arrange the elements in a rectangular grid ofrows
and columns. Matrix operations such as addition, subtraction, multiplication, transpose,etc. can
be effectively done with the help of two-dimensional arrays.
Declaration of array: Declaring an array is also referred as creating an array type.
Declaration of a single-dimensional array: The general form of a single-dimensional
arraydeclaration is:
data_typearray_name [size] = { list_of_elements};
The terms enclosed within angular brackets (i.e. <>) are optional. The terms shown in bold are
mandatory parts of a single-dimensional array declaration. The following declarations are valid:
int array1[8]; // array1 is an array of 8 integers (Integer array)
5 
 
float array2[5]; // array2 is an array of 5 floating-point numbers (Floating-point array)
char array3[6]; // array3 is an array of 6 characters (Character array)
The size specifier specifies the number of elements in an array. The rules for size specifier are:
1. The size specifier should be a compile time constant expression of integral type and itcannot be
changed at the run-time.
2. The size specifier should be greater than or equal to one.
3. The size specifier is mandatory if an array is not explicitly initialized.
Declaration of a two-dimensional array: The general form of a two-dimensional arraydeclaration is:
data_typearray_name [row_size][col_size] = { list_of_elements};
The terms enclosed within angular brackets (i.e. <>) are optional. The terms shown in bold
aremandatory parts of a single-dimensional array declaration. The following declarations are valid:
int array1[2][3]; //array1 is an integer array of 2 rows and 3 columns
float array2[5][1]; //array2 is a float array of 5 rows and 1 column
char array3[3][3]; //array3 is a character array of 3 rows and 3 columns
The row size specifier and column size specifier should be a compile time constant expressiongreater
than zero. The specification of a row size and column size is mandatory if aninitialization list is not
present. If the initialization list is present, the row size specifier can beskipped but it is mandatory to
mention the column size specifier.
Accessing an array element: The elements of a single-dimensional array can be accessed byusing a
subscript operator (i.e. []) and a subscript. The array subscript in C starts with 0, i.e. thesubscript of the
first element of an array is 0. Thus, if the size of an array is n, the validsubscripts are from 0 to n–1.
The elements of a two-dimensional array can be accessed byusing row and column subscripts.
(ii) Write a C programto re-order a one-dimensional array of numbers in descending order. (7)
Program
#include<stdio.h>
void main()
{
int a[20],i,j,n,t;
printf("Enter the number of elements: ");
scanf("%d",&n);
printf("Enter %d elements...n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
6 
 
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("nDescending Order:n");
for(i=n-1;i>=0;i--)
printf("%dt",a[i]);
}
Output
Enter the number of elements: 5
Enter 5 elements...
-25 21 -6 54 8
Descending Order:
54 21 8 -6 -25
2. Write a C program to multiply two matrices (two-dimensional array) which will be entered by a
user. The user will enter the order of a matrix and then its elements and similarly input the
second matrix. If the entered orders of two matrices are such that they can’t be multiplied by
each other, then an error message is displayed on the screen.(13)
#include <stdio.h>
int main()
{
int m, n, p, q, c, d, k, sum = 0;
int first[10][10], second[10][10], multiply[10][10];
printf("Enter number of rows and columns of first matrixn");
scanf("%d%d", &m, &n);
printf("Enter elements of first matrixn");
for (c = 0; c < m; c++)
for (d = 0; d < n; d++)
scanf("%d", &first[c][d]);
printf("Enter number of rows and columns of second matrixn");
scanf("%d%d", &p, &q);
if (n != p)
printf("The matrices can't be multiplied with each other.n");
else
{
printf("Enter elements of second matrixn");
for (c = 0; c < p; c++)
for (d = 0; d < q; d++)
7 
 
scanf("%d", &second[c][d]);
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
for (k = 0; k < p; k++) {
sum = sum + first[c][k]*second[k][d];
}
multiply[c][d] = sum;
sum = 0;
}
}
printf("Product of the matrices:n");
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++)
printf("%dt", multiply[c][d]);
printf("n");
}
}
return 0;
}
3. Write a C program to calculate median for an array of elements.(13)
#include<stdio.h>
#include<conio.h>
void main()
{
int x[100],n,i;
float mean(int,int[]);
float median(int,int[]);
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&x[i]);
printf("median=%fn",median(n,x));
getch();
}
float median(int n, int x[]) {
float temp;
inti, j;
// the following two loops sort the array x in ascending order
for(i=0; i<n-1; i++) {
8 
 
for(j=i+1; j<n; j++) {
if(x[j] < x[i]) {
// swap elements
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
}
if(n%2==0) {
// if there is an even number of elements, return mean of the two elements in the middle
return((x[n/2] + x[n/2 - 1]) / 2.0);
}
else {
// else return the element in the middle
return x[n/2];
}
}
4. Write a C program for Determinant of a matrix.(13)
Determinant of a matrix:
#include<conio.h>
#include<stdio.h>
int a[20][20],m;
int determinant(int f[20][20],int a);
int main()
{
inti,j;
printf("nnEnter order of matrix : ");
scanf("%d",&m);
printf("nEnter the elements of matrixn");
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("nn---------- Matrix A is --------------n");
9 
 
for(i=1;i<=m;i++)
{
printf("n");
for(j=1;j<=m;j++)
{
printf("t%d t",a[i][j]);
}
}
printf("n n");
printf("n Determinant of Matrix A is %d .",determinant(a,m));
getch();
}
int determinant(int f[20][20],int x)
{
intpr,c[20],d=0,b[20][20],j,p,q,t;
if(x==2)
{
d=0;
d=(f[1][1]*f[2][2])-(f[1][2]*f[2][1]);
return(d);
}
else
{
for(j=1;j<=x;j++)
{
int r=1,s=1;
for(p=1;p<=x;p++)
{
for(q=1;q<=x;q++)
{
if(p!=1&&q!=j)
{
b[r][s]=f[p][q];
s++;
if(s>x-1)
{
r++;
s=1;
}
10 
 
}
}
}
for(t=1,pr=1;t<=(1+j);t++)
pr=(-1)*pr;
c[j]=pr*determinant(b,x-1);
}
for(j=1,d=0;j<=x;j++)
{
d=d+(f[1][j]*c[j]);
}
return(d);
}
}
5. Describe the following with suitable examples. (6+7)
(i) Initializing a 2 Dimensional Array(ii) Memory Map of a Dimensional Array.
(i) Initializing a two-dimensional array: The elements of two-dimensional arrays can beInitializedby
providing an initialization list. An initialization list is a comma-separated list of initializersenclosed
within braces. The rules for initializing the elements of a two-dimensional array are:
a. The number of initializers in the initialization list should be less than or equal to the numberof
elements (i.e. row size × column size) in the array.
b. The array locations are initialized row-wise. If the number of initializers in the initialization listis less
than the number of elements in the array, the array locations that do not getinitialized will automatically
be initialized to 0 (in case of an integer array), 0.0 (in case of afloating-point array) and ‘0’ (i.e. null
character if it is an array of character type).
int array[4][7]={2,1,2,3,4,5,6,1,6,8}
2 1 2 3 4 5 6
1 6 8 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
c. The initializers in the initialization list can be braced to initialize elements of the individualrows. If
the number of initializers within the inner braces is less than the row size, trailinglocations of the
corresponding row get initialized to 0, 0.0 or ‘0’, depending upon theelement type of the array.
int array1[4][7]={{2,1},{2,3,4},{5},{6,1,6,8}}
array1
11 
 
2 1 0 0 0 0 0
2 3 4 0 0 0 0
5 0 0 0 0 0 0
6 1 6 8 0 0 0
int array2[4][7]={{2,1},{2,3,4}}
array2
2 1 0 0 0 0 0
2 3 4 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
(ii) Memory map of a two-dimensional array: A two-dimensional (2-D) array can be visualized as a
plane, which has rows and columns. Although multi-dimensional arrays are visualized in thisway, they
are actually stored in the memory, which is linear (i.e. one dimensional). The twomethods for
representing a multi-dimensional array are:
a. Row major order of storage: In row major order of storage, the elements of an array arestored row-
wise. In C language, multi-dimensional arrays are stored in the memory by usingrow major order of
storage.
In C language, 2-D array 2 3 1 4 will be stored 8 6 9 7 in the memory as2 3 1 4 8 6 9 7
2000 2002 2004 2006 2008 2010 2012 2014
b. Column major order of storage: In column major order of storage, the elements of an arrayare stored
column-wise. Column major order of array storage is used in the languages likeFORTRAN, MATLAB,
etc.
Using column major order of storage, 2-D array 28 36 19 47 will be stored in the memory as
2 8 3 6 1 9 4 72 2004 2006 2008 2010 2012 2014
6. Write a C program for transpose of a matrix.(13)
#include <stdio.h>
int main()
{
int a[10][10], transpose[10][10], r, c, i, j;
printf("Enter rows and columns of matrix: ");
scanf("%d %d", &r, &c);
// Storing elements of the matrix
printf("nEnter elements of matrix:n");
for(i=0; i<r; ++i)
for(j=0; j<c; ++j)
{
printf("Enter element a%d%d: ",i+1, j+1);
scanf("%d", &a[i][j]);
}
12 
 
// Displaying the matrix a[][] */
printf("nEntered Matrix: n");
for(i=0; i<r; ++i)
for(j=0; j<c; ++j)
{
printf("%d ", a[i][j]);
if (j == c-1)
printf("nn");
}
// Finding the transpose of matrix a
for(i=0; i<r; ++i)
for(j=0; j<c; ++j)
{
transpose[j][i] = a[i][j];
}
// Displaying the transpose of matrix a
printf("nTranspose of Matrix:n");
for(i=0; i<c; ++i)
for(j=0; j<r; ++j)
{
printf("%d ",transpose[i][j]);
if(j==r-1)
printf("nn");
}
return 0;
}
7. Discuss about the runtime initialization of a two dimensional array.(13)
The rules for initializing the elements of a two-dimensional array are:
a. The number of initializers in the initialization list should be less than or equal to the number of
elements (i.e. row size × column size) in the array.
b. The array locations are initialized row-wise. If the number of initializers in the initialization list is
less than the number of elements in the array, the array locations that do not getinitialized will
automatically be initialized to 0 (in case of an integer array), 0.0 (in case of afloating-point array) and
‘0’ (i.e. null character if it is an array of character type).
Runtime initialization of a two dimensional Array
#include<stdio.h>
voidmain()
{
13 
 
intarr[3][4];
inti, j, k;
printf("Enter array element");
for(i=0;i<3;i++)
{
for(j =0; j <4;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j =0; j <4;j++)
{
printf("%d",arr[i][j]);
}
}
}
8. Write a C program to sort the n numbers using selection sort.(13)
#include <stdio.h>
Voidselection_sort();
int a[30], n;
void main()
{
inti;
printf("nEnter size of an array: ");
scanf("%d", &n);
printf("nEnter elements of an array:n");
for(i=0; i<n; i++)
scanf("%d", &a[i]);
selection_sort();
printf("nnAfter sorting:n");
for(i=0; i<n; i++)
printf("n%d", a[i]);
getch();
}
Voidselection_sort()
{
inti, j, min, temp;
for (i=0; i<n; i++)
{
14 
 
min = i;
for (j=i+1; j<n; j++)
{
if (a[j] < a[min])
min = j;
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
OUTPUT:
Enter size of an array: 8
Enter elements of an array:
68 45 78 14 25 65 55 44
After sorting:
14 25 44 45 55 65 68 78
9. Develop a C program to search an element from the array.
#include<stdio.h>
void main()
{
intn,a[20],i,key,pos=-1;
printf("Enter the no. of elements: ");
scanf("%d",&n);
printf("Enter %d elements...n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Enter the search element: ");
scanf("%d",&key);
for(i=0;i<n;i++)
if(key==a[i])
{
pos=i+1;
break;
15 
 
}
if(pos==-1)
printf("Search element %d not found.",key);
else
printf("Search element %d found at position%d.",key,pos);
}
10. Explain about the String arrays and its manipulation in detail.(13)
String is a sequence of characters that is treated as a single data item and terminated by null character '0'.
Remember that C language does not support strings as a data type. A string is actually one-dimensional
array of characters in C language. These are often used to create meaningful and readable programs.
For example: The string "hello world" contains 11 characters including BLANK SPACE. 0' character
which is automatically added by the compiler at the end of the string.
String Handling Functions
You need to often manipulate strings according to the need of a problem. Most, if not all, of the time
string manipulation can be done manually but, this makes programming complex and large.
To solve this, C supports a large number of string handling functions in the standard library"string.h".
Few commonly used string handling functions are discussed below:
Method Description
strcat() It is used to concatenate(combine) two strings
strlen() It is used to show length of a string
strrev() It is used to show reverse of a string
strcpy() Copies one string into another
strcmp() It is used to compare two string
strcat() function
strcat("hello", "world");
strcat() function will add the string "world" to "hello" outputhelloworld.
strlen() function
strlen() function will return the length of the string passed to it.
int j;
j = strlen("studytonight");
printf("%d",j);
output :12
strcmp() function
strcmp() function will return the ASCII difference between first unmatching character of two strings.
16 
 
int j;
j = strcmp("study", "tonight");
printf("%d",j);
output: -1
strcpy() function
It copies the second string argument to the first string argument.
#include<stdio.h>
#include<string.h>
intmain()
{
char s1[50];
char s2[50];
strcpy(s1, "StudyTonight"); //copies "studytonight" to string s1
strcpy(s2, s1); //copies string s1 to string s2
printf("%sn", s2);
return(0);
}
StudyTonight
strrev() function
It is used to reverse the given string expression.
#include<stdio.h>
intmain()
{
char s1[50];
printf("Enter your string: ");
gets(s1);
printf("nYour reverse string is: %s",strrev(s1));
return(0);
}
17 
 
Enter your string: studytonight
Your reverse string is: thginotyduts
11. Write a C program to find whether the given string is palindrome or not without using string
functions.
Program
#include<stdio.h>
void main()
{
char s[20],i,j=0;
printf("Enter a string: ");
fflush(stdin);
gets(s);
while(s[j]!='0')
j++;
for(i=0,j--;(i<j)&&(s[i]==s[j]);i++,j--);
if(i<j)
printf("%s is not a palindrome.",s);
else
printf("%s is a palindrome.",s);
}
Output
1. Enter a string: malayalam
malayalam is a palindrome.
2. Enter a string: college
college is not a palindrome.
12.(i)What are the different types of string function? Describe with their purpose.(5)
Method Description
strcat() It is used to concatenate(combine) two strings
strlen() It is used to show length of a string
strrev() It is used to show reverse of a string
strcpy() Copies one string into another
strcmp() It is used to compare two string
(ii)Write the C program to find the number of Vowels, Constants, Digits and white space in a string.
#include<stdio.h>
#include<ctype.h>
18 
 
void main()
{
charstr[100];
inti,v,c,d,s,o;
printf("Enter a line of text...n");
fflush(stdin);
gets(str);
v=c=d=s=o=0;
for(i=0;str[i]!='0';i++)
if(isalpha(str[i]))
switch(tolower(str[i]))
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':v++;
break;
default :c++;
}
else if(isdigit(str[i]))
d++;
else if(isspace(str[i]))
s++;
else
o++;
printf("No. of characters : %dn",v+c);
printf("No. of vowels : %dn",v);
printf("No. of consonants: %dn",c);
printf("No. of spaces : %dn",s);
printf("No. of digits : %dn",d);
printf("Others : %dn",o);
}
13. Illustrate with an example of command line arguments. (13)
Command line argument is a parameter supplied to the program when it is invoked. Command line
argument is an important concept in C programming. It is mostly used when you need to control your
program from outside. Command line arguments are passed to the main() method.
Parameters/arguments supplied to the program when it is invoked. They are used to control program
from outside instead of hard coding those values inside the code.
In real time application, it will happen to pass arguments to the main program itself. These arguments
are passed to the main () function while executing binary file from command line.
19 
 
Syntax:
int main(intargc, char *argv[])
Here argc counts the number of arguments on the command line and argv[ ] is a pointer array which
holds pointers of type char which points to the arguments passed to the program.
Example for Command Line Argument
#include <stdio.h>
#include <conio.h>
int main(intargc, char *argv[])
{
inti;
if(argc>=2)
{
printf("The arguments supplied are:n");
for(i =1; i<argc; i++)
{
printf("%st", argv[i]);
}
}
else
{
printf("argument list is empty.n");
}
return0;
}
Remember that argv[0] holds the name of the program and argv[1] points to the first command line
argument and argv[n] gives the last argument. If no argument is supplied, argc will be 1.
14. Explain about the following :
(i).String and character array.(4)
(ii).Initialising a string variables.(4)
(iii).String input and output (5)
(i).String and character array.(4)
String is a sequence of characters that is treated as a single data item and terminated by null character
'0'. Remember that C language does not support strings as a data type. A string is actually one-
dimensional array of characters in C language. These are often used to create meaningful and readable
programs.
For example: The string "hello world" contains 12 characters including '0' character which is
automatically added by the compiler at the end of the string.
Declaring and Initializing a string variables
20 
 
There are different ways to initialize a character array variable.
char name[13]="StudyTonight";// valid character array initialization
char name[10]={'L','e','s','s','o','n','s','0'};// valid initialization
Remember that when you initialize a character array by listing all of its characters separately then you
must supply the '0' character explicitly.
Some examples of illegal initialization of character array are,
charch[3]="hell";// Illegal
charstr[4];
str="hell";// Illegal
(ii).Initialising a string variables.(4)
A string can be initialized in two different ways:
• By using string literal constant. Example: char str[6]=”Hello”;
• By using initialization list. Example: char str[6]={‘H’,’e’,’l’,’l’,’o’,’0’};
(iii).String input and output (5)
String Input: The user can enter strings and store them in character arrays at the runtimeby using the
scanf function with %s format specifier. This function can be used to read onlysingle word strings.
The scanf function automatically terminates the input string with a nullcharacter (i.e. 0), and therefore
the character array should be large enough to hold the input string plus the null character.
Example: scanf(“%s”, name); // name is a character array (i.e. char name[30]).
The gets() function can also be used to read a string from the user at runtime and theprototype is:
char* gets (char*)
and is available in the stdio.h header file. This function reads characters from the keyboard until a new
line character is encountered, appends a null character and returns the starting address of the location
where the string is stored. The gets function is suited for reading multi-word strings.
String Output: The printf function can be used to print a string literal constant, the contentsof a
character array and the contents of the memory locations pointed by a character pointer on the screen
in two different ways:
a) Without using format specifier :i) printf(“Hello”); //Prints string literal constant
ii) charstr[20]=“Readers!!”; //Array holding string
printf(str); //Prints character array
Disadvantage: The contents of only one character array can be printed at a time.
b) Using %s format specifier:charstr[20]=“Readers!!”;
char str1[5]=“Dear”
printf(“%s%s%s”,“Hai”,str1,str); //Prints HaiDearReaders
Advantage: Two or more strings can be printed by a single call to the printf function havingmultiple
%s specifiers.
The puts() function can also be used to print the string or character array. The syntax is:
21 
 
void puts (char*)
PART-C
1.Write a C program to find average marks obtained by a of 30 students in a test.(15)
#include<stdio.h>
void main()
{
intn,mark[30],i,tot=0;
floatavg;
printf("Enter the no. of students: ");
scanf("%d",&n);
printf("Enter the marks obtained by %d students...n",n);
for(i=0;i<n;i++)
{
scanf("%d",&mark[i]);
tot=tot+mark[i];
}
avg=(float)tot/n;
printf("Average marks obtained by %d students is %f.",n,avg);
}
Output
Enter the no. of students: 10
Enter the marks obtained by 10 students...
54 61 77 43 92 87 22 68 97 55
Average marks obtained by 10 students is 65.599998.
2.Write a C program to perform the following matrix operations:
(i) Addition (4)
#include<stdio.h>
void main()
{
int a[10][10],b[10][10],res[10][10],i,j,r1,c1,r2,c2;
printf("Enter the order of the first matrix: ");
scanf("%d%d",&r1,&c1);
printf("Enter the order of the second matrix: ");
scanf("%d%d",&r2,&c2);
if((r1!=r2)||(c1!=c2))
printf("Matrix addition is not possible...");
else
{
printf("Enter the first matrix of order %d x%d...n",r1,c1);
for(i=0;i<r1;i++)
for(j=0;j<c1;j++)
scanf("%d",&a[i][j]);
printf("Enter the second matrix of order %d x%d...n",r2,c2);
22 
 
for(i=0;i<r2;i++)
for(j=0;j<c2;j++)
scanf("%d",&b[i][j]);
for(i=0;i<r1;i++)
for(j=0;j<c1;j++)
res[i][j]=a[i][j]+b[i][j];
printf("The added matrix is...n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
printf("%dt",res[i][j]);
printf("n");
}
}
getch();
}
Output
1. Enter the order of the first matrix: 3 3
Enter the order of the second matrix: 2 3
Matrix addition is not possible...
2. Enter the order of the first matrix: 3 3
Enter the order of the second matrix: 3 3
Enter the first matrix of order 3 x 3...
1 2 3
4 5 6
7 8 9
Enter the second matrix of order 3 x 3...
9 5 7
8 6 5
2 7 1
The added matrix is...
10 7 10
12 11 11
9 15 10
(ii) Subtraction(4)
#include<stdio.h>
void main()
{
int a[10][10],b[10][10],res[10][10],i,j,r1,c1,r2,c2;
printf("Enter the order of the first matrix: ");
scanf("%d%d",&r1,&c1);
printf("Enter the order of the second matrix: ");
scanf("%d%d",&r2,&c2);
if((r1!=r2)||(c1!=c2))
printf("Matrix addition is not possible...");
else
23 
 
{
printf("Enter the first matrix of order %d x%d...n",r1,c1);
for(i=0;i<r1;i++)
for(j=0;j<c1;j++)
scanf("%d",&a[i][j]);
printf("Enter the second matrix of order %d x%d...n",r2,c2);
for(i=0;i<r2;i++)
for(j=0;j<c2;j++)
scanf("%d",&b[i][j]);
for(i=0;i<r1;i++)
for(j=0;j<c1;j++)
res[i][j]=a[i][j]-b[i][j];
printf("The subtracted matrix is...n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
printf("%dt",res[i][j]);
printf("n");
}
}
getch();
}
Output
1. Enter the order of the first matrix: 3 3
Enter the order of the second matrix: 2 3
Matrix addition is not possible...
2. Enter the order of the first matrix: 3 3
Enter the order of the second matrix: 3 3
Enter the first matrix of order 3 x 3...
9 5 7
8 6 5
7 8 9
Enter the second matrix of order 3 x 3...
1 2 3
6 5 4
2 7 1
The subtracted matrix is...
8 3 4
2 1 1
5 1 8
(iii)multiplication (7)
#include <stdio.h>
int main()
{
int m, n, p, q, c, d, k, sum = 0;
int first[10][10], second[10][10], multiply[10][10];
24 
 
printf("Enter number of rows and columns of first matrixn");
scanf("%d%d", &m, &n);
printf("Enter elements of first matrixn");
for (c = 0; c < m; c++)
for (d = 0; d < n; d++)
scanf("%d", &first[c][d]);
printf("Enter number of rows and columns of second matrixn");
scanf("%d%d", &p, &q);
if (n != p)
printf("The matrices can't be multiplied with each other.n");
else
{
printf("Enter elements of second matrixn");
for (c = 0; c < p; c++)
for (d = 0; d < q; d++)
scanf("%d", &second[c][d]);
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++) {
for (k = 0; k < p; k++) {
sum = sum + first[c][k]*second[k][d];
}
multiply[c][d] = sum;
sum = 0;
}
}
printf("Product of the matrices:n");
for (c = 0; c < m; c++) {
for (d = 0; d < q; d++)
printf("%dt", multiply[c][d]);
printf("n");
}
}
return 0;
}
3. (i) Write a C program to strcpy function.(7)
It copies the second string argument to the first string argument.
#include<stdio.h>
#include<string.h>
intmain()
25 
 
{
char s1[50];
char s2[50];
strcpy(s1, "Study"); //copies "studytonight" to string s1
strcpy(s2, s1); //copies string s1 to string s2
printf("%sn", s2);
return(0);
}
Study
(ii) Compare and contrast gets() and puts().(8)
Reading string(gets): The user can enter strings and store them in character arrays at the runtimeby
using the scanf function with %s format specifier. This function can be used to read onlysingle word
strings. The scanf function automatically terminates the input string with a nullcharacter (i.e. 0), and
therefore the character array should be large enough to hold the input
string plus the null character.
Example: scanf(“%s”, name); // name is a character array (i.e. char name[30]).
The gets() function can also be used to read a string from the user at runtime and theprototype is:
char* gets (char*)
and is available in the stdio.h header file. This function reads characters from the keyboard untila new
line character is encountered, appends a null character and returns the starting address of the location
where the string is stored. The gets function is suited for reading multi-word
strings.
Writing string(puts): The printf function can be used to print a string literal constant, the contentsof a
character array and the contents of the memory locations pointed by a character pointer onthe screen in
two different ways:
a) Without using format specifier:i) printf(“Hello”); //Prints string literal constant
ii) charstr[20]=“Readers!!”; //Array holding string
printf(str); //Prints character array
Disadvantage: The contents of only one character array can be printed at a time.
b) Using %s format specifier:charstr[20]=“Readers!!”;
char str1[5]=“Dear”
printf(“%s%s%s”,“Hai”,str1,str); //Prints HaiDearReaders
Advantage: Two or more strings can be printed by a single call to the printf function having
multiple %s specifiers.
The puts() function can also be used to print the string or character array. The syntax is:
void puts (char*)
4.Write a C program to Check whether a given number is Armstrong number or not using command
line argument.(15)
#include<stdio.h>
int main(intargc, char * argv[])
26 
 
{
intnum,temp,arms=0,rem;
if (argc!= 2)
{
printf("Enter the number:n");
scanf("%d",&num);
}
else
{
num = atoi(argv[1]);
}
temp=num;
while(num>0)
{
rem=num%10;
arms=arms+rem*rem*rem;
num=num/10;
}
if(temp==arms)
{
printf(" n%d is an Armstrong number",temp);
}
else
{
printf("n%d is not an Armstrong number",temp);
}
return 0;
}
END OF UNIT -II

Mais conteúdo relacionado

Mais procurados (20)

Presentation on array
Presentation on array Presentation on array
Presentation on array
 
Lecture 2a arrays
Lecture 2a arraysLecture 2a arrays
Lecture 2a arrays
 
Arrays 1D and 2D , and multi dimensional
Arrays 1D and 2D , and multi dimensional Arrays 1D and 2D , and multi dimensional
Arrays 1D and 2D , and multi dimensional
 
Array and string
Array and stringArray and string
Array and string
 
Unit 6. Arrays
Unit 6. ArraysUnit 6. Arrays
Unit 6. Arrays
 
Programming in c Arrays
Programming in c ArraysProgramming in c Arrays
Programming in c Arrays
 
Arrays in C++
Arrays in C++Arrays in C++
Arrays in C++
 
Array in c
Array in cArray in c
Array in c
 
arrays in c
arrays in carrays in c
arrays in c
 
Arrays In C++
Arrays In C++Arrays In C++
Arrays In C++
 
Data Structures - Lecture 3 [Arrays]
Data Structures - Lecture 3 [Arrays]Data Structures - Lecture 3 [Arrays]
Data Structures - Lecture 3 [Arrays]
 
ARRAY
ARRAYARRAY
ARRAY
 
Array Presentation
Array PresentationArray Presentation
Array Presentation
 
Programming in c arrays
Programming in c   arraysProgramming in c   arrays
Programming in c arrays
 
Arrays in c language
Arrays in c languageArrays in c language
Arrays in c language
 
Array in c++
Array in c++Array in c++
Array in c++
 
C++ programming (Array)
C++ programming (Array)C++ programming (Array)
C++ programming (Array)
 
Arrays basics
Arrays basicsArrays basics
Arrays basics
 
Array
ArrayArray
Array
 
Arrays
ArraysArrays
Arrays
 

Semelhante a Unit 2

Semelhante a Unit 2 (20)

Homework Assignment – Array Technical DocumentWrite a technical .pdf
Homework Assignment – Array Technical DocumentWrite a technical .pdfHomework Assignment – Array Technical DocumentWrite a technical .pdf
Homework Assignment – Array Technical DocumentWrite a technical .pdf
 
Module 4- Arrays and Strings
Module 4- Arrays and StringsModule 4- Arrays and Strings
Module 4- Arrays and Strings
 
Unit ii data structure-converted
Unit  ii data structure-convertedUnit  ii data structure-converted
Unit ii data structure-converted
 
Arrays in Data Structure and Algorithm
Arrays in Data Structure and Algorithm Arrays in Data Structure and Algorithm
Arrays in Data Structure and Algorithm
 
arrays.docx
arrays.docxarrays.docx
arrays.docx
 
Cunit3.pdf
Cunit3.pdfCunit3.pdf
Cunit3.pdf
 
Algo>Arrays
Algo>ArraysAlgo>Arrays
Algo>Arrays
 
C Programming Unit-3
C Programming Unit-3C Programming Unit-3
C Programming Unit-3
 
C programming session 04
C programming session 04C programming session 04
C programming session 04
 
Programming fundamentals week 12.pptx
Programming fundamentals week 12.pptxProgramming fundamentals week 12.pptx
Programming fundamentals week 12.pptx
 
C (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptxC (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptx
 
3.ArraysandPointers.pptx
3.ArraysandPointers.pptx3.ArraysandPointers.pptx
3.ArraysandPointers.pptx
 
Arrays
ArraysArrays
Arrays
 
Unitii classnotes
Unitii classnotesUnitii classnotes
Unitii classnotes
 
Arrays
ArraysArrays
Arrays
 
Chapter 4 (Part I) - Array and Strings.pdf
Chapter 4 (Part I) - Array and Strings.pdfChapter 4 (Part I) - Array and Strings.pdf
Chapter 4 (Part I) - Array and Strings.pdf
 
Arrays and library functions
Arrays and library functionsArrays and library functions
Arrays and library functions
 
Learn C# Programming - Nullables & Arrays
Learn C# Programming - Nullables & ArraysLearn C# Programming - Nullables & Arrays
Learn C# Programming - Nullables & Arrays
 
Arrays
ArraysArrays
Arrays
 
Arrays
ArraysArrays
Arrays
 

Mais de Sowri Rajan

Mais de Sowri Rajan (10)

Unit 5 dwqb ans
Unit 5 dwqb ansUnit 5 dwqb ans
Unit 5 dwqb ans
 
Unit 3 (1)
Unit 3 (1)Unit 3 (1)
Unit 3 (1)
 
Unit 1
Unit 1Unit 1
Unit 1
 
Unit 5 quesn b ans5
Unit 5 quesn b ans5Unit 5 quesn b ans5
Unit 5 quesn b ans5
 
Unit 5 quesn b ans5
Unit 5 quesn b ans5Unit 5 quesn b ans5
Unit 5 quesn b ans5
 
Unit 4 qba
Unit 4 qbaUnit 4 qba
Unit 4 qba
 
Unit 4 qba
Unit 4 qbaUnit 4 qba
Unit 4 qba
 
Unitii string
Unitii stringUnitii string
Unitii string
 
Uniti classnotes
Uniti classnotesUniti classnotes
Uniti classnotes
 
Program flowchart
Program flowchartProgram flowchart
Program flowchart
 

Último

FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxannathomasp01
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxJisc
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Pooja Bhuva
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17Celine George
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxmarlenawright1
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...Nguyen Thanh Tu Collection
 

Último (20)

FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 

Unit 2

  • 1. 1    1901006 – PROGRAMMING IN C (COMMON TO AGRI, CIVIL, MECH, EEE AND EIE) UNIT – 2 QUESTION BANK QUESTIONS WITH ANSWER PART-A 1. List out the advantages of Arrays. In arrays, the elements can be accessed randomly by using the index number. Arrays allocate memory in contiguous memory locations for all its elements. Hence there is no chance of extra memory being allocated in case of arrays. They are faster and can be utilized anywhere. They store data of similar data types together. 2. Define a float array of size 5 and assign 5 values to it. float f[5]={ 1.2, 3.4, 5.6, 7.8, 6.7}; 3. Identify the way to assign an array to another array. To assign one array to another array. Ensure that the two arrays have the same rank (number of dimensions) and compatible element data types. Use a standard assignment statement to assign the source array to the destination array. 4. What is an array? Write the syntax for array. An array is a series of elements of the similar type placed in contiguous memory locations. data_typearrayName [ arraySize ]; 5. What will happen when you access the array more than its dimension? If the index of the array size is exceeded, the program will crash. But the modern compilers will take care of this kind of errors. 6. Point out an example code to express two dimensional array. int a[2][2]={1,2,3,4}; 7. How to create a two dimensional array? data_typearrayName [ arraySize1 ] [ arraySize2 ]; 8. What is the method to equate an array? Given two given arrays of equal length, the task is to find if given arrays are equal or not. Two arrays are said to be equal if both of them contain same set of elements.
  • 2. 2    9. Distinguish between one dimensional and two dimensional arrays. 1Dimensional array * We can declare an array with a single subscript like ai .Arrays with only a single subscript are known as one dimensional arrays. *Syntax for initializing 1D array: datatypearrayname[size]={list of values}; 2Dimensional array * An array that has two subscripts, for example: aij is known as a two dimensional. A two dimensional array is used to store a table of values which has rows and columns. * A two dimensional array can be initialized in different ways either statically at compile time or dynamically at run time. *syntax for initializing 2D array: datatypearrayname[rows][column]={val1, val2,.. valn}; 10. What are the different ways of initializing array? After an array is declared it must be initialized. Otherwise, it will contain garbage value(any random value). An array can be initialized at either compile time or at runtime. 11. What is the use of ‘0’ and ‘%s’? ‘0’ is the null character. Every string literal constant is automatically terminated by ‘0’. The number of bytes required to store a string literal constant is one more than the number of characters present in it. The additional byte is required for storing ‘0’. • ‘%s’ is the format specifier used in scanf function that reads all the characters up to, but not including the white-space character. Thus, scanf function with ‘%s’ specifier can be used to read single word strings but cannot be used to read multi-word strings. 12. Is address operator used in scanf() statement to read an array? Why? Array name represents the address of the starting element in the array. Hence, we don’t use the address operator (&) while reading an array through scanf() function. 13. What is the role of strrev()? The strrev( ) function reverses all the characters of a string except the terminating null character (‘0’). 14. Show a C function to compare two strings. strcmp() function is used to compare two strings. Syntax: if (strcmp(s1,s2)= = 0), then both the strings are equal if (strcmp(s1,s2) > 0), then string s1 is greater. if (strcmp(s1,s2) < 0), then string s2 is greater. 15. How to initialize a string? Give an example. A string can be initialized in two different ways: By using string literal constant. Example: char str[6]=”Hello”; By using initialization list. Example: char str[6]={‘H’,’e’,’l’,’l’,’o’,’0’};
  • 3. 3    16. What will be the output of following program ? #include <stdio.h> int main() { charstr[8]="IncludeHelp"; printf("%s",str); return 0; } Ans: Error: Too many initializers/ array bounds overflow. 17. Write the output of the following Code: main() { char x; x = ‘a’; printf(“%d n”,x); } Output: 97 It prints the ASCII value of the character ‘a’ (i.e. 97). 18. Specify any two applications of Array. • Arrays are used to implement mathematical vectors and matrices, as well as other kinds of rectangular tables. • Arrays are used to implement other data structures, such as lists, heaps, hash tables, queues and stacks. 19. List out the any four functions that are performed on characterstrings. -Finding the length of a string (strlen ( )). - Copying the source string to the destination string (strcpy( )). - Concatenating two strings (strcat( )). - Comparing two strings (strcmp( )). - Reversing the content of a string (strrev( )). 20. Write the output of the following Code: main() { static char name[]=”KagzWrxAd” inti=0; while(name[i]!=’0’) {
  • 4. 4    printf(“%c”,name[i]); i++; } } Output: KagzWrxAd PART-B 1. (i) Explain the need for array variables. Describe the following with respect to arrays:- Declaration of array and accessing an array element. (6) Need for array variables: Array variables are used for the storage of homogeneous data, i.e.data of the same type, and they also provide an efficient mechanism for accessing data in ageneralized manner. • Array variables are needed for storing and processing string (i.e. a group of characters). • There is no basic data type available in C to store strings. A variable of char type can beused to store only one character and cannot be used to store more than one character. • The derived type array enables the user to store the characters in a contiguous set ofmemory locations, all of which can be accessed by only one name, i.e. the array name. • Single or one-dimensional array variables are used extensively in searching and sortingprocesses. • Searching is an operation in which a given list (i.e. array) is searched for a particularvalue, and the location of the searched element is informed, if found. The varioussearching methods are linear or sequential search and binary search. • Sorting is an operation in which all the elements of a list (i.e. array) are arranged in apredetermined order (ascending or descending). The various sorting methods are linearor sequential sort, selection sort, bubble sort, insertion sort, merge sort, quick sort, shellsort and radix sort. • Two-dimensional array variables are used to arrange the elements in a rectangular grid ofrows and columns. Matrix operations such as addition, subtraction, multiplication, transpose,etc. can be effectively done with the help of two-dimensional arrays. Declaration of array: Declaring an array is also referred as creating an array type. Declaration of a single-dimensional array: The general form of a single-dimensional arraydeclaration is: data_typearray_name [size] = { list_of_elements}; The terms enclosed within angular brackets (i.e. <>) are optional. The terms shown in bold are mandatory parts of a single-dimensional array declaration. The following declarations are valid: int array1[8]; // array1 is an array of 8 integers (Integer array)
  • 5. 5    float array2[5]; // array2 is an array of 5 floating-point numbers (Floating-point array) char array3[6]; // array3 is an array of 6 characters (Character array) The size specifier specifies the number of elements in an array. The rules for size specifier are: 1. The size specifier should be a compile time constant expression of integral type and itcannot be changed at the run-time. 2. The size specifier should be greater than or equal to one. 3. The size specifier is mandatory if an array is not explicitly initialized. Declaration of a two-dimensional array: The general form of a two-dimensional arraydeclaration is: data_typearray_name [row_size][col_size] = { list_of_elements}; The terms enclosed within angular brackets (i.e. <>) are optional. The terms shown in bold aremandatory parts of a single-dimensional array declaration. The following declarations are valid: int array1[2][3]; //array1 is an integer array of 2 rows and 3 columns float array2[5][1]; //array2 is a float array of 5 rows and 1 column char array3[3][3]; //array3 is a character array of 3 rows and 3 columns The row size specifier and column size specifier should be a compile time constant expressiongreater than zero. The specification of a row size and column size is mandatory if aninitialization list is not present. If the initialization list is present, the row size specifier can beskipped but it is mandatory to mention the column size specifier. Accessing an array element: The elements of a single-dimensional array can be accessed byusing a subscript operator (i.e. []) and a subscript. The array subscript in C starts with 0, i.e. thesubscript of the first element of an array is 0. Thus, if the size of an array is n, the validsubscripts are from 0 to n–1. The elements of a two-dimensional array can be accessed byusing row and column subscripts. (ii) Write a C programto re-order a one-dimensional array of numbers in descending order. (7) Program #include<stdio.h> void main() { int a[20],i,j,n,t; printf("Enter the number of elements: "); scanf("%d",&n); printf("Enter %d elements...n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[i]>a[j])
  • 6. 6    { t=a[i]; a[i]=a[j]; a[j]=t; } printf("nDescending Order:n"); for(i=n-1;i>=0;i--) printf("%dt",a[i]); } Output Enter the number of elements: 5 Enter 5 elements... -25 21 -6 54 8 Descending Order: 54 21 8 -6 -25 2. Write a C program to multiply two matrices (two-dimensional array) which will be entered by a user. The user will enter the order of a matrix and then its elements and similarly input the second matrix. If the entered orders of two matrices are such that they can’t be multiplied by each other, then an error message is displayed on the screen.(13) #include <stdio.h> int main() { int m, n, p, q, c, d, k, sum = 0; int first[10][10], second[10][10], multiply[10][10]; printf("Enter number of rows and columns of first matrixn"); scanf("%d%d", &m, &n); printf("Enter elements of first matrixn"); for (c = 0; c < m; c++) for (d = 0; d < n; d++) scanf("%d", &first[c][d]); printf("Enter number of rows and columns of second matrixn"); scanf("%d%d", &p, &q); if (n != p) printf("The matrices can't be multiplied with each other.n"); else { printf("Enter elements of second matrixn"); for (c = 0; c < p; c++) for (d = 0; d < q; d++)
  • 7. 7    scanf("%d", &second[c][d]); for (c = 0; c < m; c++) { for (d = 0; d < q; d++) { for (k = 0; k < p; k++) { sum = sum + first[c][k]*second[k][d]; } multiply[c][d] = sum; sum = 0; } } printf("Product of the matrices:n"); for (c = 0; c < m; c++) { for (d = 0; d < q; d++) printf("%dt", multiply[c][d]); printf("n"); } } return 0; } 3. Write a C program to calculate median for an array of elements.(13) #include<stdio.h> #include<conio.h> void main() { int x[100],n,i; float mean(int,int[]); float median(int,int[]); clrscr(); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&x[i]); printf("median=%fn",median(n,x)); getch(); } float median(int n, int x[]) { float temp; inti, j; // the following two loops sort the array x in ascending order for(i=0; i<n-1; i++) {
  • 8. 8    for(j=i+1; j<n; j++) { if(x[j] < x[i]) { // swap elements temp = x[i]; x[i] = x[j]; x[j] = temp; } } } if(n%2==0) { // if there is an even number of elements, return mean of the two elements in the middle return((x[n/2] + x[n/2 - 1]) / 2.0); } else { // else return the element in the middle return x[n/2]; } } 4. Write a C program for Determinant of a matrix.(13) Determinant of a matrix: #include<conio.h> #include<stdio.h> int a[20][20],m; int determinant(int f[20][20],int a); int main() { inti,j; printf("nnEnter order of matrix : "); scanf("%d",&m); printf("nEnter the elements of matrixn"); for(i=1;i<=m;i++) { for(j=1;j<=m;j++) { printf("a[%d][%d] = ",i,j); scanf("%d",&a[i][j]); } } printf("nn---------- Matrix A is --------------n");
  • 9. 9    for(i=1;i<=m;i++) { printf("n"); for(j=1;j<=m;j++) { printf("t%d t",a[i][j]); } } printf("n n"); printf("n Determinant of Matrix A is %d .",determinant(a,m)); getch(); } int determinant(int f[20][20],int x) { intpr,c[20],d=0,b[20][20],j,p,q,t; if(x==2) { d=0; d=(f[1][1]*f[2][2])-(f[1][2]*f[2][1]); return(d); } else { for(j=1;j<=x;j++) { int r=1,s=1; for(p=1;p<=x;p++) { for(q=1;q<=x;q++) { if(p!=1&&q!=j) { b[r][s]=f[p][q]; s++; if(s>x-1) { r++; s=1; }
  • 10. 10    } } } for(t=1,pr=1;t<=(1+j);t++) pr=(-1)*pr; c[j]=pr*determinant(b,x-1); } for(j=1,d=0;j<=x;j++) { d=d+(f[1][j]*c[j]); } return(d); } } 5. Describe the following with suitable examples. (6+7) (i) Initializing a 2 Dimensional Array(ii) Memory Map of a Dimensional Array. (i) Initializing a two-dimensional array: The elements of two-dimensional arrays can beInitializedby providing an initialization list. An initialization list is a comma-separated list of initializersenclosed within braces. The rules for initializing the elements of a two-dimensional array are: a. The number of initializers in the initialization list should be less than or equal to the numberof elements (i.e. row size × column size) in the array. b. The array locations are initialized row-wise. If the number of initializers in the initialization listis less than the number of elements in the array, the array locations that do not getinitialized will automatically be initialized to 0 (in case of an integer array), 0.0 (in case of afloating-point array) and ‘0’ (i.e. null character if it is an array of character type). int array[4][7]={2,1,2,3,4,5,6,1,6,8} 2 1 2 3 4 5 6 1 6 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c. The initializers in the initialization list can be braced to initialize elements of the individualrows. If the number of initializers within the inner braces is less than the row size, trailinglocations of the corresponding row get initialized to 0, 0.0 or ‘0’, depending upon theelement type of the array. int array1[4][7]={{2,1},{2,3,4},{5},{6,1,6,8}} array1
  • 11. 11    2 1 0 0 0 0 0 2 3 4 0 0 0 0 5 0 0 0 0 0 0 6 1 6 8 0 0 0 int array2[4][7]={{2,1},{2,3,4}} array2 2 1 0 0 0 0 0 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (ii) Memory map of a two-dimensional array: A two-dimensional (2-D) array can be visualized as a plane, which has rows and columns. Although multi-dimensional arrays are visualized in thisway, they are actually stored in the memory, which is linear (i.e. one dimensional). The twomethods for representing a multi-dimensional array are: a. Row major order of storage: In row major order of storage, the elements of an array arestored row- wise. In C language, multi-dimensional arrays are stored in the memory by usingrow major order of storage. In C language, 2-D array 2 3 1 4 will be stored 8 6 9 7 in the memory as2 3 1 4 8 6 9 7 2000 2002 2004 2006 2008 2010 2012 2014 b. Column major order of storage: In column major order of storage, the elements of an arrayare stored column-wise. Column major order of array storage is used in the languages likeFORTRAN, MATLAB, etc. Using column major order of storage, 2-D array 28 36 19 47 will be stored in the memory as 2 8 3 6 1 9 4 72 2004 2006 2008 2010 2012 2014 6. Write a C program for transpose of a matrix.(13) #include <stdio.h> int main() { int a[10][10], transpose[10][10], r, c, i, j; printf("Enter rows and columns of matrix: "); scanf("%d %d", &r, &c); // Storing elements of the matrix printf("nEnter elements of matrix:n"); for(i=0; i<r; ++i) for(j=0; j<c; ++j) { printf("Enter element a%d%d: ",i+1, j+1); scanf("%d", &a[i][j]); }
  • 12. 12    // Displaying the matrix a[][] */ printf("nEntered Matrix: n"); for(i=0; i<r; ++i) for(j=0; j<c; ++j) { printf("%d ", a[i][j]); if (j == c-1) printf("nn"); } // Finding the transpose of matrix a for(i=0; i<r; ++i) for(j=0; j<c; ++j) { transpose[j][i] = a[i][j]; } // Displaying the transpose of matrix a printf("nTranspose of Matrix:n"); for(i=0; i<c; ++i) for(j=0; j<r; ++j) { printf("%d ",transpose[i][j]); if(j==r-1) printf("nn"); } return 0; } 7. Discuss about the runtime initialization of a two dimensional array.(13) The rules for initializing the elements of a two-dimensional array are: a. The number of initializers in the initialization list should be less than or equal to the number of elements (i.e. row size × column size) in the array. b. The array locations are initialized row-wise. If the number of initializers in the initialization list is less than the number of elements in the array, the array locations that do not getinitialized will automatically be initialized to 0 (in case of an integer array), 0.0 (in case of afloating-point array) and ‘0’ (i.e. null character if it is an array of character type). Runtime initialization of a two dimensional Array #include<stdio.h> voidmain() {
  • 13. 13    intarr[3][4]; inti, j, k; printf("Enter array element"); for(i=0;i<3;i++) { for(j =0; j <4;j++) { scanf("%d",&arr[i][j]); } } for(i=0;i<3;i++) { for(j =0; j <4;j++) { printf("%d",arr[i][j]); } } } 8. Write a C program to sort the n numbers using selection sort.(13) #include <stdio.h> Voidselection_sort(); int a[30], n; void main() { inti; printf("nEnter size of an array: "); scanf("%d", &n); printf("nEnter elements of an array:n"); for(i=0; i<n; i++) scanf("%d", &a[i]); selection_sort(); printf("nnAfter sorting:n"); for(i=0; i<n; i++) printf("n%d", a[i]); getch(); } Voidselection_sort() { inti, j, min, temp; for (i=0; i<n; i++) {
  • 14. 14    min = i; for (j=i+1; j<n; j++) { if (a[j] < a[min]) min = j; } temp = a[i]; a[i] = a[min]; a[min] = temp; } } OUTPUT: Enter size of an array: 8 Enter elements of an array: 68 45 78 14 25 65 55 44 After sorting: 14 25 44 45 55 65 68 78 9. Develop a C program to search an element from the array. #include<stdio.h> void main() { intn,a[20],i,key,pos=-1; printf("Enter the no. of elements: "); scanf("%d",&n); printf("Enter %d elements...n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("Enter the search element: "); scanf("%d",&key); for(i=0;i<n;i++) if(key==a[i]) { pos=i+1; break;
  • 15. 15    } if(pos==-1) printf("Search element %d not found.",key); else printf("Search element %d found at position%d.",key,pos); } 10. Explain about the String arrays and its manipulation in detail.(13) String is a sequence of characters that is treated as a single data item and terminated by null character '0'. Remember that C language does not support strings as a data type. A string is actually one-dimensional array of characters in C language. These are often used to create meaningful and readable programs. For example: The string "hello world" contains 11 characters including BLANK SPACE. 0' character which is automatically added by the compiler at the end of the string. String Handling Functions You need to often manipulate strings according to the need of a problem. Most, if not all, of the time string manipulation can be done manually but, this makes programming complex and large. To solve this, C supports a large number of string handling functions in the standard library"string.h". Few commonly used string handling functions are discussed below: Method Description strcat() It is used to concatenate(combine) two strings strlen() It is used to show length of a string strrev() It is used to show reverse of a string strcpy() Copies one string into another strcmp() It is used to compare two string strcat() function strcat("hello", "world"); strcat() function will add the string "world" to "hello" outputhelloworld. strlen() function strlen() function will return the length of the string passed to it. int j; j = strlen("studytonight"); printf("%d",j); output :12 strcmp() function strcmp() function will return the ASCII difference between first unmatching character of two strings.
  • 16. 16    int j; j = strcmp("study", "tonight"); printf("%d",j); output: -1 strcpy() function It copies the second string argument to the first string argument. #include<stdio.h> #include<string.h> intmain() { char s1[50]; char s2[50]; strcpy(s1, "StudyTonight"); //copies "studytonight" to string s1 strcpy(s2, s1); //copies string s1 to string s2 printf("%sn", s2); return(0); } StudyTonight strrev() function It is used to reverse the given string expression. #include<stdio.h> intmain() { char s1[50]; printf("Enter your string: "); gets(s1); printf("nYour reverse string is: %s",strrev(s1)); return(0); }
  • 17. 17    Enter your string: studytonight Your reverse string is: thginotyduts 11. Write a C program to find whether the given string is palindrome or not without using string functions. Program #include<stdio.h> void main() { char s[20],i,j=0; printf("Enter a string: "); fflush(stdin); gets(s); while(s[j]!='0') j++; for(i=0,j--;(i<j)&&(s[i]==s[j]);i++,j--); if(i<j) printf("%s is not a palindrome.",s); else printf("%s is a palindrome.",s); } Output 1. Enter a string: malayalam malayalam is a palindrome. 2. Enter a string: college college is not a palindrome. 12.(i)What are the different types of string function? Describe with their purpose.(5) Method Description strcat() It is used to concatenate(combine) two strings strlen() It is used to show length of a string strrev() It is used to show reverse of a string strcpy() Copies one string into another strcmp() It is used to compare two string (ii)Write the C program to find the number of Vowels, Constants, Digits and white space in a string. #include<stdio.h> #include<ctype.h>
  • 18. 18    void main() { charstr[100]; inti,v,c,d,s,o; printf("Enter a line of text...n"); fflush(stdin); gets(str); v=c=d=s=o=0; for(i=0;str[i]!='0';i++) if(isalpha(str[i])) switch(tolower(str[i])) { case 'a': case 'e': case 'i': case 'o': case 'u':v++; break; default :c++; } else if(isdigit(str[i])) d++; else if(isspace(str[i])) s++; else o++; printf("No. of characters : %dn",v+c); printf("No. of vowels : %dn",v); printf("No. of consonants: %dn",c); printf("No. of spaces : %dn",s); printf("No. of digits : %dn",d); printf("Others : %dn",o); } 13. Illustrate with an example of command line arguments. (13) Command line argument is a parameter supplied to the program when it is invoked. Command line argument is an important concept in C programming. It is mostly used when you need to control your program from outside. Command line arguments are passed to the main() method. Parameters/arguments supplied to the program when it is invoked. They are used to control program from outside instead of hard coding those values inside the code. In real time application, it will happen to pass arguments to the main program itself. These arguments are passed to the main () function while executing binary file from command line.
  • 19. 19    Syntax: int main(intargc, char *argv[]) Here argc counts the number of arguments on the command line and argv[ ] is a pointer array which holds pointers of type char which points to the arguments passed to the program. Example for Command Line Argument #include <stdio.h> #include <conio.h> int main(intargc, char *argv[]) { inti; if(argc>=2) { printf("The arguments supplied are:n"); for(i =1; i<argc; i++) { printf("%st", argv[i]); } } else { printf("argument list is empty.n"); } return0; } Remember that argv[0] holds the name of the program and argv[1] points to the first command line argument and argv[n] gives the last argument. If no argument is supplied, argc will be 1. 14. Explain about the following : (i).String and character array.(4) (ii).Initialising a string variables.(4) (iii).String input and output (5) (i).String and character array.(4) String is a sequence of characters that is treated as a single data item and terminated by null character '0'. Remember that C language does not support strings as a data type. A string is actually one- dimensional array of characters in C language. These are often used to create meaningful and readable programs. For example: The string "hello world" contains 12 characters including '0' character which is automatically added by the compiler at the end of the string. Declaring and Initializing a string variables
  • 20. 20    There are different ways to initialize a character array variable. char name[13]="StudyTonight";// valid character array initialization char name[10]={'L','e','s','s','o','n','s','0'};// valid initialization Remember that when you initialize a character array by listing all of its characters separately then you must supply the '0' character explicitly. Some examples of illegal initialization of character array are, charch[3]="hell";// Illegal charstr[4]; str="hell";// Illegal (ii).Initialising a string variables.(4) A string can be initialized in two different ways: • By using string literal constant. Example: char str[6]=”Hello”; • By using initialization list. Example: char str[6]={‘H’,’e’,’l’,’l’,’o’,’0’}; (iii).String input and output (5) String Input: The user can enter strings and store them in character arrays at the runtimeby using the scanf function with %s format specifier. This function can be used to read onlysingle word strings. The scanf function automatically terminates the input string with a nullcharacter (i.e. 0), and therefore the character array should be large enough to hold the input string plus the null character. Example: scanf(“%s”, name); // name is a character array (i.e. char name[30]). The gets() function can also be used to read a string from the user at runtime and theprototype is: char* gets (char*) and is available in the stdio.h header file. This function reads characters from the keyboard until a new line character is encountered, appends a null character and returns the starting address of the location where the string is stored. The gets function is suited for reading multi-word strings. String Output: The printf function can be used to print a string literal constant, the contentsof a character array and the contents of the memory locations pointed by a character pointer on the screen in two different ways: a) Without using format specifier :i) printf(“Hello”); //Prints string literal constant ii) charstr[20]=“Readers!!”; //Array holding string printf(str); //Prints character array Disadvantage: The contents of only one character array can be printed at a time. b) Using %s format specifier:charstr[20]=“Readers!!”; char str1[5]=“Dear” printf(“%s%s%s”,“Hai”,str1,str); //Prints HaiDearReaders Advantage: Two or more strings can be printed by a single call to the printf function havingmultiple %s specifiers. The puts() function can also be used to print the string or character array. The syntax is:
  • 21. 21    void puts (char*) PART-C 1.Write a C program to find average marks obtained by a of 30 students in a test.(15) #include<stdio.h> void main() { intn,mark[30],i,tot=0; floatavg; printf("Enter the no. of students: "); scanf("%d",&n); printf("Enter the marks obtained by %d students...n",n); for(i=0;i<n;i++) { scanf("%d",&mark[i]); tot=tot+mark[i]; } avg=(float)tot/n; printf("Average marks obtained by %d students is %f.",n,avg); } Output Enter the no. of students: 10 Enter the marks obtained by 10 students... 54 61 77 43 92 87 22 68 97 55 Average marks obtained by 10 students is 65.599998. 2.Write a C program to perform the following matrix operations: (i) Addition (4) #include<stdio.h> void main() { int a[10][10],b[10][10],res[10][10],i,j,r1,c1,r2,c2; printf("Enter the order of the first matrix: "); scanf("%d%d",&r1,&c1); printf("Enter the order of the second matrix: "); scanf("%d%d",&r2,&c2); if((r1!=r2)||(c1!=c2)) printf("Matrix addition is not possible..."); else { printf("Enter the first matrix of order %d x%d...n",r1,c1); for(i=0;i<r1;i++) for(j=0;j<c1;j++) scanf("%d",&a[i][j]); printf("Enter the second matrix of order %d x%d...n",r2,c2);
  • 22. 22    for(i=0;i<r2;i++) for(j=0;j<c2;j++) scanf("%d",&b[i][j]); for(i=0;i<r1;i++) for(j=0;j<c1;j++) res[i][j]=a[i][j]+b[i][j]; printf("The added matrix is...n"); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) printf("%dt",res[i][j]); printf("n"); } } getch(); } Output 1. Enter the order of the first matrix: 3 3 Enter the order of the second matrix: 2 3 Matrix addition is not possible... 2. Enter the order of the first matrix: 3 3 Enter the order of the second matrix: 3 3 Enter the first matrix of order 3 x 3... 1 2 3 4 5 6 7 8 9 Enter the second matrix of order 3 x 3... 9 5 7 8 6 5 2 7 1 The added matrix is... 10 7 10 12 11 11 9 15 10 (ii) Subtraction(4) #include<stdio.h> void main() { int a[10][10],b[10][10],res[10][10],i,j,r1,c1,r2,c2; printf("Enter the order of the first matrix: "); scanf("%d%d",&r1,&c1); printf("Enter the order of the second matrix: "); scanf("%d%d",&r2,&c2); if((r1!=r2)||(c1!=c2)) printf("Matrix addition is not possible..."); else
  • 23. 23    { printf("Enter the first matrix of order %d x%d...n",r1,c1); for(i=0;i<r1;i++) for(j=0;j<c1;j++) scanf("%d",&a[i][j]); printf("Enter the second matrix of order %d x%d...n",r2,c2); for(i=0;i<r2;i++) for(j=0;j<c2;j++) scanf("%d",&b[i][j]); for(i=0;i<r1;i++) for(j=0;j<c1;j++) res[i][j]=a[i][j]-b[i][j]; printf("The subtracted matrix is...n"); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) printf("%dt",res[i][j]); printf("n"); } } getch(); } Output 1. Enter the order of the first matrix: 3 3 Enter the order of the second matrix: 2 3 Matrix addition is not possible... 2. Enter the order of the first matrix: 3 3 Enter the order of the second matrix: 3 3 Enter the first matrix of order 3 x 3... 9 5 7 8 6 5 7 8 9 Enter the second matrix of order 3 x 3... 1 2 3 6 5 4 2 7 1 The subtracted matrix is... 8 3 4 2 1 1 5 1 8 (iii)multiplication (7) #include <stdio.h> int main() { int m, n, p, q, c, d, k, sum = 0; int first[10][10], second[10][10], multiply[10][10];
  • 24. 24    printf("Enter number of rows and columns of first matrixn"); scanf("%d%d", &m, &n); printf("Enter elements of first matrixn"); for (c = 0; c < m; c++) for (d = 0; d < n; d++) scanf("%d", &first[c][d]); printf("Enter number of rows and columns of second matrixn"); scanf("%d%d", &p, &q); if (n != p) printf("The matrices can't be multiplied with each other.n"); else { printf("Enter elements of second matrixn"); for (c = 0; c < p; c++) for (d = 0; d < q; d++) scanf("%d", &second[c][d]); for (c = 0; c < m; c++) { for (d = 0; d < q; d++) { for (k = 0; k < p; k++) { sum = sum + first[c][k]*second[k][d]; } multiply[c][d] = sum; sum = 0; } } printf("Product of the matrices:n"); for (c = 0; c < m; c++) { for (d = 0; d < q; d++) printf("%dt", multiply[c][d]); printf("n"); } } return 0; } 3. (i) Write a C program to strcpy function.(7) It copies the second string argument to the first string argument. #include<stdio.h> #include<string.h> intmain()
  • 25. 25    { char s1[50]; char s2[50]; strcpy(s1, "Study"); //copies "studytonight" to string s1 strcpy(s2, s1); //copies string s1 to string s2 printf("%sn", s2); return(0); } Study (ii) Compare and contrast gets() and puts().(8) Reading string(gets): The user can enter strings and store them in character arrays at the runtimeby using the scanf function with %s format specifier. This function can be used to read onlysingle word strings. The scanf function automatically terminates the input string with a nullcharacter (i.e. 0), and therefore the character array should be large enough to hold the input string plus the null character. Example: scanf(“%s”, name); // name is a character array (i.e. char name[30]). The gets() function can also be used to read a string from the user at runtime and theprototype is: char* gets (char*) and is available in the stdio.h header file. This function reads characters from the keyboard untila new line character is encountered, appends a null character and returns the starting address of the location where the string is stored. The gets function is suited for reading multi-word strings. Writing string(puts): The printf function can be used to print a string literal constant, the contentsof a character array and the contents of the memory locations pointed by a character pointer onthe screen in two different ways: a) Without using format specifier:i) printf(“Hello”); //Prints string literal constant ii) charstr[20]=“Readers!!”; //Array holding string printf(str); //Prints character array Disadvantage: The contents of only one character array can be printed at a time. b) Using %s format specifier:charstr[20]=“Readers!!”; char str1[5]=“Dear” printf(“%s%s%s”,“Hai”,str1,str); //Prints HaiDearReaders Advantage: Two or more strings can be printed by a single call to the printf function having multiple %s specifiers. The puts() function can also be used to print the string or character array. The syntax is: void puts (char*) 4.Write a C program to Check whether a given number is Armstrong number or not using command line argument.(15) #include<stdio.h> int main(intargc, char * argv[])
  • 26. 26    { intnum,temp,arms=0,rem; if (argc!= 2) { printf("Enter the number:n"); scanf("%d",&num); } else { num = atoi(argv[1]); } temp=num; while(num>0) { rem=num%10; arms=arms+rem*rem*rem; num=num/10; } if(temp==arms) { printf(" n%d is an Armstrong number",temp); } else { printf("n%d is not an Armstrong number",temp); } return 0; } END OF UNIT -II