Showing posts with label #quiz. Show all posts
Showing posts with label #quiz. Show all posts

Tuesday, August 29, 2017

[Solved] Python Quiz : 001

I came across a very simple Python Quiz question in a newsgroup, so thought about expanding on that.

Assuming, you are attending an interview and this question is asked. What would be your answer ?

[ Remember : you need to give this answer from memory and not by trying out this code :-) ]

>>> def foo(num) : print num; return num
...
>>>
>>> foo(5) * foo(1) * foo(2)
5
1
2
10
>>> foo(5) ** foo(1) ** foo(2)

And, as in any good interview, you are asked to explain your answer as well :-)

Post your answers in the comments below
    • There are two parts to this problem.
      1> Order of the execution of the functions
      2> Order of evaluation of the expression that involves **

      From the example mentioned in the earlier part of the question, its very evident that Python invokes these functions from left to right.

      So, that the expression to evaluate, after the functions return their values, would be
      >>> 5 ** 1 ** 2

      ** or exponentiation is the only operator in Python that is right-associative.

      The reason [ as far as I can understand ] for this behaviour, is that, it is the way it is handled in mathematics as well. It adds confusion only when the programming language, evaluates every other operator using left-association

      This link gives a very good explanation on why right-associativity is preferred : https://core.tcl.tk/tips/doc/trunk/tip/274.md

      Thus,
      >>> 5 ** 1 ** 2
      evaluates as
      >>> 5 ** (1 ** 2)
      >>> 5 ** ( 1 )
      >>> 5

      CONGRATULATIONS !!! to all those who got the result and the explanation right :-)

Monday, August 11, 2014

[Solved] Linux Kernel Challenge : 001

Fancy your Linux Kernel Programming skills ? Take this challenge and answer these simple 5 questions related to Linux Kernel Programming.

Update : Added Solutions

  1. What is the latest mainline version of Linux Kernel [ as of 11-Aug-2014 ] ?
      • 3.16 : Ref : https://www.kernel.org/finger_banner

  2. What is the file extension of a Linux Kernel module ?
      • .ko

  3. Which Linux Kernel function corresponds to the insmod user function ?
      • module_init()

  4. Which kernel functions would use in your kernel module to allocate and free memory ?
      • kmalloc() : to allocate memory in kernel address space
      • kfree() : to free memory in kernel address space

  5. What does COW stand for w.r.t Linux Kernel ?
      • Copy On Write :
      • Its an efficient method of copying, where a resource of a page is shared without making a copy of it, until an attempt to write is made. Only then is a duplicate copy made, and all subsequent writes happen on the copy.

Monday, August 4, 2014

[Solved] Linux Programming Challenge : 001

Fancy your Linux Programming skills ? Take this challenge and answer these simple 5 questions related to Linux System and Linux Programming.

Update : Solutions added



  1. If getppid() returns the parent process id, what does getepid() return ?
      • Effective user id

  2. Which daemon is used to update log files on a Linux system ?
      • syslogd

  3. Which is the only directory [ filesystem ] on a Linux machine that does not exist on the hard disk ?
      • The proc filesystem that resides at /proc

  4. Will a hardlink have an inode number different from the inode of the file it links to ? Or is this the case with a soft link ?
      • Hardlink and the file it links to use the same inode number
      • Softlink and the file it links to use different inode numbers

  5. What is the default file permission of all newly created files when the umask is 0755 ?
      • 022 [ only group users and others can write to this file !!! ]

Monday, June 30, 2014

[Solved] Linux Commands Challenge : 007

Fancy your Linux Administration skills ? Take this challenge and answer these simple 5 questions related to everyday tasks of Linux Administration.

Winner : Congratulations to Sankar P for getting the highest number [ 2 ] of correct solutions.


  1. How do you restore GRUB bootloader to MBR of your primary hard disk ?
      • grub-install /dev/sda

  2. What does initrd contain ?
      • It contains the initial RAM disk, i.e., the initial root file system that is mounted prior to locating the real root file system

  3. How do you unpack the contents of an RPM without installing it ?
      • rpm2cpio | copi -id

  4. What is the maximum number of primary partitions you can have on a hard disk ?
      • 4

  5. How to boot into single user mode using the GRUB boot loader ?
      • After selecting the kernel you are interested to boot into, edit the kernel command line and add “S” to the end of the kernel command

Monday, June 23, 2014

[Solved] Linux Commands Challenge : 006

Fancy your Linux skills ? Take this challenge and answer these simple 5 questions on Linux Abbreviations

Update : Added solutions


  1. What does the shell environment variable IFS stand for ?
      • Internal Field Separator

  2. What does APT in apt-get command stand for ?
      • Advanced Packaging Tool

  3. Often Linux distributions are accompanied with a EULA. What does EULA stand for ?
      • End User License Agreement

  4. What does CUPS stand for in Linux ?
      • Common Unix Printing System

  5. What does DMZ in context with Linux Security stand for ?
      • DeMilitarised Zone

Monday, June 16, 2014

[Solved] Linux Commands Challenge : 005

Fancy your Linux skills ? Take this challenge and answer these simple 5 questions on Linux commands.

Update : Added Solutions



  1. What does the command units do ?
      • It is a program to convert quantities expressed in one scale to another. Ex : meters to miles

  2. What happens if I apply the sticky bit to a directory ?
      • You make the files in that directory “sticky”. In the sense, users cannot delete the files in that directory. Only the root user can delete the files. Ex : /tmp directory

  3. How do you print the reverse of your username on Linux ?
      • whoami | rev

  4. How do you find out the most commonly used command by a given user ?
      • hash | sort -r | head

  5. What is the difference in the output of these two commands : echo * and ls -R ?
      • echo * : Lists all the files in the current directory and all its sub directories ls -R : Lists all the files and folders in the current directory and all its sub directories

Monday, June 9, 2014

[Solved] PERL Programming Challenge

Fancy your PERL programming skills ? Take this challenge and answer these simple 5 questions on PERL.
Update : Added solutions


  1. How do I eliminate the newline character from the input variable $age in PERL ?
      • chomp($age);

  2. Write a PERL one-liner to convert tab spaces in a file called tabs.txt to one space each
      • perl -pe 's/\t/ /g' tabs.txt;

  3. How do you empty the contents of an array called : myarray in PERL?
      • $#myarray = -1;

  4. How do I append a new line containing the text “Get water” before the 3rd line of a file : todo.txt using PERL ?
      • perl -pe 'print "Get water\n" if $. == 3’ todo.txt;

  5. How do you download the contents of a URL with PERL ?
      • By using LWP.pm [ Perl Module ]
      • use LWP::Simple;
      • $webdata = get ‘http://your-website.com';

Monday, June 2, 2014

[Solved] Linux Commands Challenge : 004

Fancy your Linux skills ? Take this challenge and answer what these 5 commonly used abbreviations of Linux stand for

Winner : Congratulations to Sankar P for getting the highest number [ 4 ] of correct solutions.


  1. What does the Linux command TAR stand for ?
      • Tape ARchive

  2. What does the Linux command GREP stand for ?
      • Global ( search for ) Regular Expressions and Print

  3. What does the Linux command CHMOD stand for ?
      • CHange MODe

  4. What does the Linux command BC stand for ?
      • Basic Calculator

  5. What does the Linux command AWK stand for ?
      • Aho, Weinberger and Kernighan. It is named after the names of its authors : Al Aho, Peter Weinberger and Brian Kernighan

Monday, May 26, 2014

[Solved] Linux Commands Challenge : 003

Fancy your Linux skills ? Take this challenge and answer these simple 5 questions on Linux Shell Scripting.

Update : Added solutions


  1. What command(s) would you use to extract the 3 words in the string “The boy laughed” ?
      • There are many variants for this. One of the solutions is as follows :
      • echo $string | cut -d” “ -f1 ; echo $string | cut -d” “ -f2 ; echo $string | cut -d” “ -f3
      • Do let me know about other possible ways to solve this through your comments to this post

  2. What command(s) would you use to fetch only the 6th and 7th lines of a text file : poem.txt
      • This also has many variants. One of the solutions is as follows :
      • head -n 7 poem.txt | tail -2
      • Do let me know about other possible ways to solve this through your comments to this post

  3. What command(s) would you use to delete all empty/blank lines in a file : data.txt
      • grep -v ‘^$’ data.txt

  4. What does the following sed command do ? : sed -n ‘/[0-9]/p’ data.txt
      • Prints only those lines that have a numerical in them.

  5. What command(s) would you use to count the number of files ending with .log in /var/log directory and also have the word “error” in their contents ?
      • grep -l error /var/log/*.log

Monday, May 19, 2014

[Solved] Linux Commands Challenge : 002

Fancy your Linux skills ? Take this challenge and answer these simple 5 questions on Linux Environment variables.

Update : Added Solutions


  1. How can variables defined in one Bash Shell script be made visible in its child Bash Shell script ?
      • You need to export the variable in the parent Bash Shell Script, for the variables to be visible in its child Bash Shell script.

  2. How can one find out the type of the Shell he/she is using ?
      • echo $SHELL

  3. Name the C function call that can be used in a C program to fetch the value of a Shell Environment variable
      • getenv()

  4. One can use "printenv" command to list all the Global Environment variables, but what command can we use to list the Local Environment Variables ?
      • You can use "set". But, it list all the environment variables, global and local. You will have to write a Shell Script to prune out Global environment variables from the output of "set" to derive the final list of Local Environment variables. Local environment variables are the variables that are local to the current shell.

  5. How can you find out the current Bash Shell's parent process id ?
      • echo $PPID

Monday, May 12, 2014

[Solved] Linux Commands Challenge : 001

Fancy your Linux skills ? Take this challenge and answer these simple 5 questions on Linux Commands.

Update : Added Solutions

Winner : Congratulations to Laxmeesha TV for getting the highest number [ 3 ] of correct solutions.


  1. Which Linux command would you use to replace all the occurrences of "Computer Science" in the file "subjects.list" with “CS”. Make sure you create a backup of the original file as well.
      • sed -i “.bkp” s/“Computer Science”/CS/g subjects.list

  2. What is the command to list all the hidden files of the present working directory ?
      • ls -la

  3. What is the command to list only the first two lines of subjects.list file ?
      • head -2 subjects.list

  4. Print the contents of subjects.list file in reverse order. [ Hint : Cats have tails ]
      • cat subjects.list | tail -r

  5. Which Bash command would you issue on a Linux machine to create a coredump of a running program. [ Hint : The flight was aborted due to bad weather ]
      • kill -6