Showing posts with label good c questions. Show all posts
Showing posts with label good c questions. Show all posts
Saturday, 23 July 2011
[chapter 1]let us c [SOLVED]
[H]write C programs for the following:
(a)Ramesh’s basic salary is input through the keyboard. His dearness allowance is 40% of basic salary, and house rent allowance is 20% of basic salary. Write a program to calculate his gross salary.
click here for Answer!!!
(b)The distance between two cities (in km.) is input through the keyboard. Write a program to convert and print this distance in meters, feet, inches and centimeters.
click here for Answer!!!
(c) If the marks obtained by a student in five different subjects are input through the keyboard, find out the aggregate marks and percentage marks obtained by the student. Assume that the maximum marks that can be obtained by a student in each subject is 100.
click here for Answer!!!
(d)Temperature of a city in Fahrenheit degrees is input through the keyboard. Write a program to convert this temperature into Centigrade degrees.
click here for Answer!!!
(e) The length & breadth of a rectangle and radius of a circle are input through the keyboard. Write a program to calculate the area & perimeter of the rectangle, and the area & circumference of the circle.
click here for Answer!!!
(f) Two numbers are input through the keyboard into two locations C and D. Write a program to interchange the contents of C and D.
click here for Answer!!!
(g) If a five-digit number is input through the keyboard, write a program to calculate the sum of its digits.
(Hint: Use the modulus operator ‘%’)
click here for Answer!!!
(h) If a five-digit number is input through the keyboard, write a program to reverse the number.
click here for Answer!!!
(i) If a four-digit number is input through the keyboard, write a program to obtain the sum of the first and last digit of this number.
click here for Answer!!!
(k) A cashier has currency notes of denominations 10, 50 and 100. If the amount to be withdrawn is input through the keyboard in hundreds, find the total number of currency notes of each denomination the cashier will have to give to the withdrawer.
click here for Answer!!!
(l) If the total selling price of 15 items and the total profit earned on them is input through the keyboard, write a program to find the cost price of one item.
click here for Answer!!!
(m) If a five-digit number is input through the keyboard, write a program to print a new number by adding one to each of its digits. For example if the number that is input is 12391 then the output should be displayed as 23402.
click here for Answer!!!
Friday, 22 July 2011
c aptitute questions with explained answers
[1] guess the output
main()
{
int i=5,j=6,z;
printf("%d",i+++j);
}
click here for Answer!!!
Answer:
11
Explanation:
the expression i+++j is treated as (i++ + j)
[2]main()
{
register i=5;
char j[ ]= "hello";
printf("%s %d",j,i);
}
click here for Answer!!!
Answer:
hello 5
Explanation:
if you declare i as register compiler will treat it as ordinary integer and it will take
integer value. i value may be stored either in register or in memory.
[3]
main()
{
int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} };
int *p,*q;
p=&a[2][2][2];
*q=***a;
printf("%d..%d",*p,*q);
}
click here for Answer!!!
Answer:
garbagevalue..1
Explanation:
p=&a[2][2][2] you declare only two 2D arrays. but you are trying to access the third
2D(which you are not declared) it will print garbage values. *q=***a starting address of
a is assigned integer pointer. now q is pointing to starting address of a.if you print *q
meAnswer:it will print first element of 3D array.
[4]main()
{
const int i=4;
float j;
j = ++i;
printf("%d %f", i,++j);
}
click here for Answer!!!
Answer:
Compiler error
Explanation:
i is a constant. you cannot change the value of constant
[5]
main()
{
int i=-1;
-i;
printf("i = %d, -i = %d \n",i,-i);
}
click here for Answer!!!
Answer:
i = -1, -i = 1
Explanation:
-i is executed and this execution doesn't affect the value of i. In printf first you just print
the value of i. After that the value of the expression -i = -(-1) is printed.
[6]main()
{
int *j;
{
int i=10;
j=&i;
}
printf("%d",*j);
}
click here for Answer!!!
Answer:
10
Explanation:
The variable i is a block level variable and the visibility is inside that block only. But the
lifetime of i is lifetime of the function so it lives upto the exit of main function. Since the
i is still allocated space, *j prints the value stored in i since j points i.
[7]int i=10;
main()
{
extern int i;
{
int i=20;
{
const volatile unsigned i=30;
printf("%d",i);
}
printf("%d",i);
}
printf("%d",i);
}
click here for Answer!!!
Answer:
30,20,10
Explanation:
'{' introduces new block and thus new scope. In the innermost block i is declared as,
const volatile unsigned
which is a valid declaration. i is assumed of type int. So printf prints 30. In the next
block, i has value 20 and so printf prints 20. In the outermost block, i is declared as
extern, so no storage space is allocated for it. After compilation is over the linker
resolves it to global variable i (since it is the only variable visible there). So it prints i's
value as 10.
[8]#define max 5
#define int arr1[max]
main()
{
typedef char arr2[max];
arr1 list={0,1,2,3,4};
arr2 name="name";
printf("%d %s",list[0],name);
}
click here for Answer!!!
Answer:
Compiler error (in the line arr1 list = {0,1,2,3,4})
Explanation:
arr2 is declared of type array of size 5 of characters. So it can be used to declare the
variable name of the type arr2. But it is not the case of arr1. Hence an error.
Rule of Thumb:
#defines are used for textual replacement whereas typedefs are used for declaring new
types.
[9]main()
{
int y;
scanf("%d",&y); // input given is 2000
if( (y%4==0 && y%100 != 0) || y%100 == 0 )
printf("%d is a leap year");
else
printf("%d is not a leap year");
}
click here for Answer!!!
Answer:
2000 is a leap year
Explanation:
An ordinary program to check if leap year or not.
[10]main()
{
int k=1;
printf("%d==1 is ""%s",k,k==1?"TRUE":"FALSE");
}
click here for Answer!!!
Answer:
1==1 is TRUE
Explanation:
When two strings are placed together (or separated by white-space) they are
concatenated (this is called as "stringization" operation). So the string is as if it is given
as "%d==1 is %s". The conditional operator( ?: ) evaluates to "TRUE".
[11]main()
{
char not;
not=!2;
printf("%d",not);
}
click here for Answer!!!
Answer:
0
Explanation:
! is a logical operator. In C the value 0 is considered to be the boolean value FALSE, and
any non-zero value is considered to be the boolean value TRUE. Here 2 is a non-zero
value so TRUE. !TRUE is FALSE (0) so it prints 0.
[12]main()
{
char *str1="abcd";
char str2[]="abcd";
printf("%d %d %d",sizeof(str1),sizeof(str2),sizeof("abcd"));
}
click here for Answer!!!
Answer:
2 5 5
Explanation:
In first sizeof, str1 is a character pointer so it gives you the size of the pointer variable.
In second sizeof the name str2 indicates the name of the array whose size is 5
(including the '\0' termination character). The third sizeof is similar to the second one.
[13]main()
{
show();
}
void show()
{
printf("I'm the greatest");
}
click here for Answer!!!
Answer:
Compier error: Type mismatch in redeclaration of show.
Explanation:
When the compiler sees the function show it doesn't know anything about it. So the
default return type (ie, int) is assumed. But when compiler sees the actual definition of
show mismatch occurs since it is declared as void. Hence the error.
The solutions are as follows:
1. declare void show() in main() .
2. define show() before main().
3. declare extern void show() before the use of show().
[14]main()
{
i
nt i=0;
for(;i++;printf("%d",i)) ;
printf("%d",i);
}
click here for Answer!!!
Answer:
1
Explanation:
before entering into the for loop the checking condition is "evaluated". Here it evaluates
to 0 (false) and comes out of the loop, and i is incremented (note the semicolon after
the for loop).
[15]main()
{
i
nt i;
printf("%d",scanf("%d",&i)); // value 10 is given as input here
}
click here for Answer!!!
Answer:
1
Explanation:
Scanf returns number of items successfully read and not 1/0. Here 10 is given as input
which should have been scanned successfully. So number of items read is 1.
Thursday, 21 July 2011
c aptitute questions
[1]What will print out?
main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%s”,p2);
}
click here for Answer!!!
Answer:empty string.
[2]What will be printed as the result of the operation below:
main()
{
int x=20,y=35;
x=y++ + x++;
y= ++y + ++x;
printf(“%d%d”,x,y);
}
click here for Answer!!!
Answer : 5794
[3]What will be printed as the result of the operation below:
main()
{
int x=5;
printf(“%d,%d,%d”,x,x< <2,x>>2);
}
click here for Answer!!!
Answer: 5,20,1
[4]What will be printed as the result of the operation below:
#define swap(a,b) a=a+b;b=a-b;a=a-b;
void main()
{
int x=5, y=10;
swap (x,y);
printf(“%d %d”,x,y);
swap2(x,y);
printf(“%d %d”,x,y);
}
int swap2(int a, int b)
{
int temp;
temp=a;
b=a;
a=temp;
return 0;
}
click here for Answer!!!
Answer: 10, 5
10, 5
[5]What will be printed as the result of the operation below:
main()
{
char *ptr = ” Cisco Systems”;
*ptr++; printf(“%s”,ptr);
ptr++;
printf(“%sn”,ptr);
}
click here for Answer!!!
Answer:Cisco Systems
isco systems
[6]What will be printed as the result of the operation below:
main()
{
char s1[]=“Cisco”;
char s2[]= “systems”;
printf(“%s”,s1);
}
click here for Answer!!!
Answer: Cisco
[7]What will be printed as the result of the operation below:
main()
{
char *p1;
char *p2;
p1=(char *)malloc(25);
p2=(char *)malloc(25);
strcpy(p1,”Cisco”);
strcpy(p2,“systems”);
strcat(p1,p2);
printf(“%s”,p1);
}
click here for Answer!!!
Answer: Ciscosystems
[8]The following variable is available in file1.c, who can access it?:
static int average;
click here for Answer!!!
Answer: all the functions in the file1.c can access the variable.
[9]WHat will be the result of the following code?
#define TRUE 0 // some code
while(TRUE)
{
// some code
}
click here for Answer!!!
Answer: This will not go into the loop as TRUE is defined as 0.
[10]What will be printed as the result of the operation below:
int x;
int modifyvalue()
{
return(x+=10);
}
int changevalue(int x)
{
return(x+=1);
}
void main()
{
int x=10;
x++;
changevalue(x);
x++;
modifyvalue();
printf("First output:%d",x);
x++;
changevalue(x);
printf("Second output:%d",x);
modifyvalue();
printf("Third output:%d",x);
}
click here for Answer!!!
Answer: 12 , 13 , 13
[11]What will be printed as the result of the operation below:
main()
{
int x=10, y=15;
x = x++;
y = ++y;
printf(“%d %d”,x,y);
}
click here for Answer!!!
Answer: 11, 16
[12]What will be printed as the result of the operation below:
main()
{
int a=0;
if(a==0)
printf(“Cisco Systemsn”);
printf(“Cisco Systemsn”);
}
click here for Answer!!!
Answer: Two lines with “Cisco Systems” will be printed.
Subscribe to:
Posts (Atom)