1.What will be the output of the program?
#include<stdio.h>
int main()
{
const char *s = "";
char str[] = "Hello";
s = str;
while(*s)
printf("%c", *s++);
return 0;
}
Explanation:
Step 1: const char *s = “”; The constant variable s is declared as an pointer to an array of characters type and initialized with an empty string.
Step 2: char str[] = “Hello”; The variable str is declared as an array of charactrers type and initialized with a string “Hello”.
Step 3: s = str; The value of the variable str is assigned to the variable s. Therefore str contains the text “Hello”.
Step 4: while(*s){ printf("%c", *s++); } Here the while loop got executed untill the value of the variable s is available and it prints the each character of the variable s.
Hence the output of the program is “Hello”.
2.What will be the output of the program (sample.c) given below if it is executed from the command line?
cmd> sample “*.c”
#include<stdio.h>
int main(int argc, int *argv)
{
int i;
for(i=1; i<argc; i++)
printf("%s\n", argv[i]);
return 0;
}
Explanation:
argc=2
argv[0]=sample
argv[1]=*.c
So it prints *.c
3.What will be the output of the program?
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *i = "55.555";
int result1 = 10;
float result2 = 11.111;
result1 = result1+atoi(i);
result2 = result2+atof(i);
printf("%d, %f", result1, result2);
return 0;
}
Explanation:
Function atoi() converts the string to integer.
Function atof() converts the string to float.
result1 = result1+atoi(i);
Here result1 = 10 + atoi(55.555);
result1 = 10 + 55;
result1 = 65;
result2 = result2+atof(i);
Here result2 = 11.111 + atof(55.555);
result2 = 11.111 + 55.555000;
result2 = 66.666000;
So the output is “65, 66.666000” .