Looping questions and answers with explanation for written test exam and interview in c programming language
Explanation
The variable x
is declared as an extern type, prompting the compiler to search for its definition. In this code, the definition is found at the end, where x
is assigned a value of 8. Consequently, the value of x
is 8.
The code features two do-while loops, known for executing at least once even if the condition is initially false. The printf statement within the outer do-while loop prints the octal number 10, equivalent to the decimal number 8 (%o is used for octal format).
Inside the inner do-while loop, the condition is !-2, which evaluates to 0 (false) in C. Consequently, the program control exits the inner loop. The outer do-while loop's condition is now 0 (false) as well, leading to the program control exiting the outer loop as well.
Hide
Explanation
n the first iteration of the while loop with the condition i + 1 ? --i : ++j
:
1. i + 1
evaluates to 3 (True), causing the ternary operator to return--i
, resulting in 1.- 2. In C, 1 is considered true, so the while condition is true, and the printf statement prints 1.
In the second iteration:
1. i + 1
evaluates to 2 (True), causing the ternary operator to return--i
, resulting in 0.- 2. In C, 0 is considered false, so the while condition is false, and the program control exits the while loop.
Hide
Explanation
011 is octal number. Its equivalent decimal value is 9. So, x = 9 First iteration: i = 0 i < x i.e. 0 < 9 i.e. if loop condition is true. Hence printf statement will print: Start Due to continue keyword program control will come at the beginning of the for loop and value of variable i will be: i += 3 i = i + 3 = 3 Second iteration: i = 3 i < x i.e. 3 < 9 i.e. if loop condition is true. Hence printf statement will print: Start Due to continue keyword program control will come at the beginning of the for loop and value of variable i will be: i += 3 i = i + 3 = 6 Third iteration: i = 3 i < x i.e. 6 < 9 i.e. if loop condition is true. Hence printf statement will print: Start Due to continue keyword program control will come at the beginning of the for loop and value of variable i will be: i += 3 i = i + 3 = 9 fourth iteration: i = 6 i < x i.e. 9 < 9 i.e. if loop condition is false. Hence program control will come out of the for loop.
Hide
Explanation
Hide
Explanation
The default value of a static int variable in C is zero, so the initial value of variable 'i' is 0.
In the first iteration:
- 1. The for loop initializes with
++i
, setting 'i' to 1. - 2. The loop condition,
++i
, evaluates to 2 (true), resulting in the printf statement printing 2. - 3. The loop increments with
++i
, updating 'i' to 3.
In the second iteration:
- 1. The loop condition,
++i
, evaluates to 4 (true), and the printf statement prints 4. - 2. Although there is an 'if' condition that is also true, the program control exits the for loop due to the break keyword.
Hide
Explanation
With an initial value of 1 for variable 'i':
In the first iteration:
- The for loop initializes 'i' to 0.
- The loop condition, 'i = -1', is true (non-zero), resulting in the printf function printing the value of 'i' (-1).
- The if condition is true since 'i' is not equal to 1, causing the program control to exit the for loop due to the break keyword.
Hide
Explanation
Hide
Explanation
In the first iteration:
- 1. Loop initialization: r() = 7
- 2. Loop condition: r() = 6 (true), leading to the printf function printing r() (5).
- 3. Loop increment: r() = 4
In the second iteration:
- 1. Loop condition: r() = 3 (true), resulting in the printf function printing r() (2).
- 2. Loop increment: r() = 1
In the third iteration:
- 1. Loop condition: r() = 0 (false), prompting the program control to exit the for loop.
Hide
Explanation
Hide
Explanation
Hide
Explanation
With an initial value of 40 for variable 'i':
In the first iteration, the printf function prints i++
(40).
The do-while condition is (5,4,3,2,1,0)
, where the comma operator returns 0. As the while condition evaluates to false, the program control exits the for loop.
Hide
Explanation
In C, three continuous dots (...) represent a variable number of arguments.
Considering a pointer to the function x, denoted as 'p':
In the first iteration of the for loop:
- 1. Initial value: Nothing (In C, it is optional)
- 2. Loop condition:
(*p)(0,1,2,3,4)
wherep = &_x_
- 3. This evaluates to
_x_(0,1,2,3,4)
since*
and&
cancel each other. - 4. The function returns
i+++a
, equivalent toi + ++a
, resulting in-1 + 1
and finally, 0. - 5. Although the condition is false, the printf function prints 0, highlighting a quirk in the C language.
Hide
Explanation
The output is: 1 1 1 1 1 1.
Note : The for loop executes six times. It's important to note that the continue
keyword in the do-while loop brings the program control to its while condition (while(0)
), which is always false.
Hide
Explanation
Hide
Explanation
Hide
Looping tutorial in c
47 comments:
very good examples and explanations are very clear.
excellent efforts :)
Hey I really apprecicate ur site....Awesome explanations....This is the first page i hv read and really understood....Kudos to u guys !!
:)
hey i have one doubt in Q:15
how does %x will work i tried with %i also it was working could you please elaborate about this.
thanks in Advance !!
have a Great Day!!
Yes this all are very important question, and also explanation is very clear and in very nice manner.
Thanx A Lot !!!!
In question 9
can you explain macro a##b
very useful page
can u please explain how the return stmt returns 3 value to i variable in 15th question
Return type of prinf function is integer which is total numbers of characters its prints. In this example printf("c" "++") it printing three characters 'c','+' and '+' so it will return 3.
in printf statement
%x : prints number in hexadecimal format
%i : prints number in integer format
%d : prints number in decimal format
## is oken pasting operator.Better go through this link:
Use of # and ## operator in c programming language
hi ritesh u r doing great job..
this is helping to lot of guys like us
GOOD JOB
wt is looping
can you explain macro a##b and #x
First: Really it is a great page and it benefit me alot to fresh my memory.
For Q.12:
There is not any bug.
but the compiler evaluated i+++a as following: i++ + a.
So, we have (-1)++ + 0 = -1 .... true and printf() statement is executed.
i+++a is evaluated as i++ + a.
That is due to compiler really do not ignore all white spaces.
for the case: i+++a: it handle the variable i then it looks for the longest possible operator.
we have 2 options: + , ++ / it cannot consider +++ as an operator as there is not an operator (+++)
The longest one is ++.
then the remained operator is +. and then handle the next variable.
To make idea clear:
consider we have:
i = -1;
a =0;
z = i+++++a;
Now the compiler will parse it: i++ ++ + a. and it will bring a compilation error. (Lvalue required as increment operand).
If we modified the expression and added some white space it will work.
z = i++ + ++a;
it works and result will be zero.
c is very imprtnt sub
At one college, the tuition for a full-time student is $6,000 per semester. It has been announced that the tuition will increase by 2% each year for the next 5 years. Design a program with a loop that displays the projected semesters tuition amount for the next five years.
how would this be done?
#include
int main()
{
int semf=6000,prof;//semester fees , projected fees
int i,y=0;
for(i=1;i<=10;i++)
{
semf=(semf+6000*2/100);
prof=semf;
printf(" Tution amount for %d semester %d\n",y=y+1,prof);
}
getch();
return 0;
}
Hi,
can any one explain how does the following while loop work?
while(5,4,3,2,1,0)
can any 1 give me solution for 1+1/3+1/5+....+1/n
plzzzzzzz guys
ritesh kumar good hard work..
printf("%d",!+2); pls explain it and what is comma(,) operator in c and how it works in while loop
Is it possible to create a
C program to find the largest and smallest of n numbes inputed by user using while loop?
the way of explanation and way of writing is so ............great..............
what will be output of following prograam??
for (m=0; m<3; ++m)
t=(m%2)? m:m+2;
printf("%d",t)
tanx frnds
and Excellent
what is the difference of using %d and %i?
I think both produce same result.
Please clear my doubt about this.
output will be 2
answer will be 4
Question 9:
Could somebody please explain to me how *("625" + 3) return the memory address of character '\0'?
what is this expression mean ("625" + 3) in C?
Here loop will never execute because the last number is 0.
Suppose if you try this "while(5,4,3,2,1)" the loop will never end because the last number is one.
It means while takes the last number as condition.
#include
int main()
{
int i,great=0,low=0,a[8];
printf("Enter 8 numbers: ");
for(i=0;i<8;i++)
{
scanf("%d ",&a[i]);
}
great=a[0];
low=a[0];
while(i--)
{
if(greata[i])
{
low=a[i];
}
}
printf("Greatest: %d \n",great);
printf("Lowest : %d \n",low);
return 0;
}
Here you have to know the operators Associativity. Both '+' & '!' have same priority. The Associativity is from right to left. So first addition will take place. 0+2 is 2. And "!2=0". Any positive number with NOT symbol is equal to zero.
Agree with this explanation.
write a c program to generate the customer bill for a point of sale system used in a retail shop. The program must use a predefined list of ANY 5 items, while the user will enter the item code and the quantity for n number of items selected by the customer, to print the the bill including a goods and service tax of 6%. ( I am stuck here creating the predefined list and giving item codes. Can any of you experts can help me out as soon as possible? )
Is there any1 here who could help me?
what is the meaning of !-2
i love you
Can You Improve the Explanation Section..
I didn't find your explanation Too concise and clear
#include
int main()
{
int semsterfee=6000,projectfee;
int i,y=1;
printf("Tution amount for 1 semester = $6000\n");
for(i=2;i<=10;i++)
{
semsterfee=(semsterfee+6000*2/100);
projectfee=semsterfee;
printf(" Tution amount for %d semester= $%d\n",y=y+1,projectfee);
}
getch();
return 0;
}
#include
int main()
{
int m,t;
for (m=0; m<3; ++m)
t=(m%2)? m:m+2; // Output is 4
{
printf("output=%d",t);
}
}
%i : prints number in integer format
%d : prints number in decimal format
i=Not oprater,its revers the value
These are so tricky and so helpful in understanding the concepts! Thank you!
Pls help me...
when i write a code like this...
#include
int main(void)
{
int count=0;
while (count < 10 && ++count)
printf("count is %d\n", count);
return 0;
}
output :
1 2 3 4 5 6 7 8 9 10
But when i change ++ count by count ++
#include
int main(void)
{
int count=0;
while (count < 10 && count++)
printf("count is %d\n", count);
return 0;
}
output : Nothing.
Pls give me a solution.
Good questions
Post a Comment