Output of C programs | Set 33 (rand() and srand())
You came across how to generate random numbers and use of two C function rand() and srand() from the article rand() and srand() in C\C++.
Listed below are some output related multiple choice question on random numbers.
1. Return type of rand() function is:
a) short
b) int
c) char
d) float
Answer:
b
Explanation : return type of rand() is integer.
2. The function srand(unsigned):
a) Sets the seed for rand()
b) generate random number
c) Is an error
d) generate constant.
Answer:
a
Explanation : srand() always set the seed for rand() function.
3. rand() and srand() functions are used:
a) To find sqrt
b) For and operations
c) For or operations
d) To generate random numbers
Answer:
d
4. The best way to generate numbers between 0 to 99?
a) rand()-100
b) rand()%100
c) rand(100)
d) srand(100)
Answer:
b
Explanation : rand() will generate random number from 0 to RAND_MAX, itβs modulus with 100 ensures that our result must be between 0 and 99 inclusive.
5. Random number between minimum and maximum can be generated by:
a) minimum + (rand() % (maximum β minimum));
b) minimum + (rand() % (maximum β minimum + 1));
c) minimum * (rand() % (maximum β minimum))
d) minimum β (rand() % (maximum+minimum));
Answer:
b
Explanation : (maximum β minimum + 1) is interval size of interval from minimum to maximum, hence rand() % (maximum β minimum + 1) will give us random integer between 0 to interval size which when added to minimum gives random number between minimum and maximum.
6. Which of the following snippet will effectively generate random numbers with widest range?
a) rand();
b) rand(10);
c) rand(time(NULL));
d) All of the mentioned
Answer:
a
Explanation : rand() generate random number between the wide range of 0 to RAND_MAX.
7. For the function call time(), what type of parameter is accepted?
a) int
b) int *
c) time_t
d) time_t *
Answer:
d
Explanation : Parameter for time() is pointer to an object of type time_t, where the time value is stored.
8. What is the output of this C code?
C
#include <stdio.h> #include <stdlib.h> int main() { printf ( "%d\n" , rand () % 1000); return 0; } |
a) Compile time error
b) An integer between 0-1000
c) An integer between 0-999 including 0 and 999.
d) An integer between 0-1000 including 1000
Answer:
c
Explanation : rand() generate random number and (rand() % 1000) shorten it to range [0, 999].
9. In the below program every time program is run different numbers are generated. True or False?
C
#include <stdio.h> #include <stdlib.h> int main() { srand ( time (NULL)); printf ( "%d\n" , rand ()); return 0; } |
a) true
b) false
c) Depends on the platform
d) Depends on the compiler
Answer:
a
Explanation : srand() will always set new seed for rand() on each program run.
10. What is the output of this C code?
C
#include <stdio.h> #include <stdlib.h> int main() { srand (9000); printf ( "%d\n" , rand ()); return 0; } |
a) Compile time error
b) An integer in the range 0 to RAND_MAX.
c) A double in the range 0 to 1
d) A float in the range 0 to 1.
Answer:
b
Explanation : rand() will generate integer in range [0, RAND_MAX].
11. What is the output of this C code?
C
#include <stdio.h> #include <stdlib.h> int main() { srand ( time (NULL)); printf ( "%d\n" , rand ()); return 0; } |
a) Compile time error
b) An integer in the range 0 to RAND_MAX.
c) A double in the range 0 to 1
d) A float in the range 0 to 1.
Answer: b
Explanation : rand() will generate integer in range [0, RAND_MAX], but on running program, every time it will generate different random number because of srand(time(NULL)).
12. What is the output of this C code?
C
#include <stdio.h> #include <stdlib.h> int main() { printf ( "%d\n" , srand (9000)); return 0; } |
a) Compile time error
b) An integer in the range 0 to 9000
c) A float in the range 0 to 1
d) A double in the range 0 to 9000
Answer:
a
Explanation : return type of srand() id object of type time_t.
13. In the below program everytime program is run different numbers are generated.
C
#include <stdio.h> #include <stdlib.h> int main() { printf ( "%d\n" , rand ()); return 0; } |
a) true
b) false
c) Depends on the platform
d) Depends on the compiler
Answer:
b
Explanation : for that srand() must be used.
14. Which of these is a correct way to generate numbers between 0 to 1(inclusive) randomly?
a) rand() / RAND_MAX
b) rand() % 2
c) rand(0, 1)
d) None of the mentioned
Answer:
a
Explanation : generate random numbers between [0, 1].