C Programming
C Programming
Characteristics of C :
1)Small size
2)Extensive use of function calls
3)Loose typing — unlike PASCAL
4)Structured language
5) Low level (BitWise) programming readily available
6)Pointer implementation – extensive use of pointers for memory, array, structures and
functions.
C Program Structure :
A C program basically has the following form:
1)Preprocessor Commands
2)Type definitions
3)Function prototypes — declare function types and variables passed to function.
4) Variables
5)Functions
We must have a main() function.
2) Some coders debug their programs by placing comment symbols on some codes instead of
deleting it. Explain
How does this aid in debugging?
Placing comment symbols /* */ around a code, also referred to as ?commenting out?, is a way of
isolating some
codes that you think maybe causing errors in the program, without deleting the code. The idea is
that if the code is
in fact correct, you simply remove the comment symbols and continue on. It also saves you time
and effort on
having to retype the codes if you have deleted it in the first place.
3) Explain What is the equivalent code of the following statement in WHILE LOOP format?
[c]
for (a=1; a<=100; a++)
printf (―%d\n‖, a * a);
[/c]
[c]
a=1;
while (a<=100) { printf (―%d\n‖, a * a); a++; } [/c] 4) Explain What is spaghetti programming?
Spaghetti
programming refers to codes that tend to get tangled and overlapped throughout the program.
This unstructured
approach to coding is usually attributed to lack of experience on the part of the programmer.
Spaghetti programing
makes a program complex and analyzing the codes difficult, and so must be avoided as much as
possible.
5) In Cprogramming, Explain How do you insert quote characters (? and ?) into the output
screen? This is a common
problem for beginners because quotes are normally part of a printf statement. To insert the quote
character as part
of the output, use the format specifiers \? (for single quote), and \? (for double quote).
7) Explain What is the difference between the = symbol and == symbol? The = symbol is often
used
in mathematical operations. It is used to assign a value to a given variable. On the other hand, the
== symbol, also
known as ?equal to? or ?equivalent to?, is a relational operator that is used to compare two
values.
8) Explain
Which of the following operators is incorrect and why? ( >=, <=, <>, ==)
<> is incorrect. While this operator is correctly interpreted as ?not equal to? in writing
conditional statements, it is
not the proper operator to be used in C programming. Instead, the operator != must be used to
indicate ?not equal
to? condition.
10) Explain What are header files and Explain What are its uses in C programming?
Header files are also known as library files. They contain two essential things: the definitions and
prototypes of
functions being used in a program. Simply put, commands that you use in C programming are
actually functions
that are defined from within each header files. Each header file contains a set of functions. For
example: stdio.h is a
header file that contains definition and prototypes of commands like printf and scanf.
11) Can I use ?int? data type to store the value 32768? Why?
No. ?int? data type is capable of storing values from -32768 to 32767. To store 32768, you can
use ?long int?
instead. You can also use ?unsigned int?, assuming you don?t intend to store negative values.
12) Can two or more operators such as \n and \t be combined in a single line of program code
Yes, it?s perfectly valid to combine operators, especially if the need arises. For example: you can
have a code like ?
printf (?Hello\n\n\?World\??) ? to output the text ?Hello? on the first line and ?World? enclosed
in single quotes to
appear on the next two lines.
13) Why is it that not all header files are declared in every C program?
The choice of declaring a header file at the top of each C program would depend on Explain
What
commands/functions you will be using in that program. Since each header file contains different
function
definitions and prototype, you would be using only those header files that would contain the
functions you will
need. Declaring all header files in every program would only increase the overall file size and
load of the program,
and is not considered a good programming style.
19) Explain What could possibly be the problem if a valid function name such as tolower() is
being
reported by the C compiler as undefined? The most probable reason behind this error is that the
header file for that
function was not indicated at the top of the program. Header files contain the definition and
prototype for functions
and commands used in a C program. In the case of ?tolower()?, the code ?#include ? must be
present at the
beginning of the program.
20) Explain What does the format %10.2 mean when included in a printf statement?
This format is used for two things: to set the number of spaces allotted for the output number and
to set the number
of decimal places. The number before the decimal point is for the allotted space, in this case it
would allot 10
spaces for the output number. If the number of space occupied by the output number is less than
10, addition space
characters will be inserted before the actual output number. The number after the decimal point
sets the number of
decimal places, in this case, it?s 2 decimal spaces. 21) Explain What is wrong with this
statement? myName = ?
Robin?; You cannot use the = sign to assign values to a string variable. Instead, use the strcpy
function. The correct
statement would be: strcpy(myName, ?Robin?);
26) Explain What are linked list? A linked list is composed of nodes that
are connected with another. In C programming, linked lists are created using pointers. Using
linked lists is one
efficient way of utilizing memory for storage.
27) Explain What are binary trees? Binary trees are actually an
extension of the concept of linked lists. A binary tree has two pointers, a left one and a right one.
Each side can
further branch to form additional nodes, Explain Which each node having two pointers as well.
28) Not all reserved words are written in lowercase. TRUE or FALSE? FALSE. All reserved
words must be written in
lowercase; otherwise the C compiler would interpret this as unidentified and invalid.
30) Is this program statement valid? INT = 10.50; Assuming that INT is a
variable of type float, this statement is valid. One may think that INT is a reserved word and
must not be used for
other purposes. Explain However, recall that reserved words are express in lowercase, so the C
compiler will not
interpret this as a reserved word.
31) Explain What is a newline escape sequence? A newline escape sequence is represented by
the \n character. This is used to insert a new line when displaying data in the output screen. More
spaces can be added by inserting more \n characters. For example, \n\n would insert two spaces.
A newline escape
sequence can be placed before the actual output expression or after.
33) Explain What is the difference between functions abs() and fabs()?
These 2 functions basically perform the same action, Explain Which is to get the absolute value
of the given value.
Abs() is used for integer values, while fabs() is used for floating type numbers. Also, the
prototype for abs() is
under , while fabs() is under .
34) Write a simple code fragment that will check if a number is positive or negative.
[c]
If (num>=0)
printf(―number is positive‖);
else
printf (―number is negative‖);
[/c]
36) Explain Which function in C can be used to append a string to another string?
The strcat function. It takes two parameters, the source string and the string value to be appended
to the source
string.
37) Dothese two program statements perform the same output? 1) scanf(?%c?, &letter); 2)
letter=getchar()
Yes, they both do the exact same thing, Explain Which is to accept the next key pressed by the
user and assign it to
variable named letter.
38) Explain What is the difference between text files and binary files?
Text files contain data that can easily be understood by humans. It includes letters, numbers and
other characters.
On the other hand, binary files contain 1s and 0s that only computers can interpret.
41) The % symbol has a special use in a printf statement. Explain How would you place this
character as part of
the output on the screen?
You can do this by using %% in the printf statement. For example, you can write
printf(?10%%?) to have the
output appear as 10% on the screen.
44) Explain What will be the outcome of the following conditional statement if the value of
variable s is 10?
s >=10 && s < 25 && s!=12 The outcome will be TRUE. Since the value of s is 10, s >= 10
evaluates to TRUE
because s is not greater than 10 but is still equal to 10. s< 25 is also TRUE since 10 is less then
25. Just the same,
s!=12, Explain Which means s is not equal to 12, evaluates to TRUE. The && is the AND
operator, and follows
the rule that if all individual conditions are TRUE, the entire statement is TRUE.
47) Explain How do you determine the length of a string value that was stored in a variable?
To get the length of a string value, use the function strlen(). For example, if you have a variable
named FullName,
you can get the length of the stored string value by using this statement: I = strlen(FullName);
the variable I will
now have the character length of the string value.
50) Explain What are the different file extensions involved when programming in C?
Source codes in C are saved with .C file extension. Header files or library files have the .H file
extension. Every
time a program source code is successfully compiled, it creates an .OBJ object file, and an
executable .EXE file.
56) Explain What is the difference between the expression ―++a‖ and ―a++‖?
In the first expression, the increment would happen first on variable a, and the resulting value
will be the one to be
used. This is also known as a prefix increment. In the second expression, the current value of
variable a would the
one to be used in an operation, before the value of a itself is incremented. This is also known as
postfix increment.
57) Explain What would happen to X in this expression: X += 15; (assuming the value of X is 5)
X +=15 is a short method of writing X = X + 15, so if the initial value of X is 5, then 5 + 15 =
20.
58) In C language, the variables NAME, name, and Name are all the same. TRUE or FALSE?
FALSE. C language is a case sensitive language. Therefore, NAME, name and Name are three
uniquely different
variables.
60) Explain What is a program flowchart and Explain How does it help in writing a program?
A flowchart provides a visual representation of the step by step procedure towards solving a
given problem.
Flowcharts are made of symbols, with each symbol in the form of different shapes. Each shape
may represent a
particular entity within the entire program structure, such as a process, a condition, or even an
input/output phase.
61) Explain What is wrong with this program statement? void = 10;
The word void is a reserved word in C language. You cannot use reserved words as a user-
defined variable.
67) Explain What is the difference between functions abs() and fabs()?
These 2 functions basically perform the same action, Explain Which is to get the absolute value
of the given value.
Abs() is used for integer values, while fabs() is used for floating type numbers. Also, the
prototype for abs() is
under , while fabs() is under .
70) Write a simple code fragment that will check if a number is positive or negative.
If (num>=0)
printf(―number is positive‖);
else
printf (―number is negative‖);
If (num>=0)
printf(―number is positive‖);
else
printf (―number is negative‖);
71) When is a ―switch‖ statement preferable over an ―if‖ statement?
The switch statement is best used when dealing with selections based on a single variable or
expression. Explain
However, switch statements can only evaluate integer and character data types.
72) Explain What are global variables and Explain How do you declare them?
Global variables are variables that can be accessed and manipulated anywhere in the program.
To make a variable
global, place the variable declaration on the upper portion of the program, just after the
preprocessor directives
section.
78) Explain What is the difference between functions getch() and getche()?
Both functions will accept a character input value from the user. When using getch(), the key that
was pressed will
not appear on the screen, and is automatically captured and assigned to a variable. When using
getche(), the key
that was pressed by the user will appear on the screen, while at the same time being assigned to a
variable.
79) Dothese two program statements perform the same output? 1) scanf(―%c‖, &letter); 2)
letter=getchar()
Yes, they both do the exact same thing, Explain Which is to accept the next key pressed by the
user and assign it to
variable named letter.
81) Explain What does the characters ―r‖ and ―w‖ mean when writing programs that will make
use of files?
―r‖ means ―read‖ and will open a file as input wherein data is to be retrieved. ―w‖ means ―write‖,
and will open a
file for output. Previous data that was stored on that file will be erased.
82) Explain What is the difference between text files and binary files?
Text files contain data that can easily be understood by humans. It includes letters, numbers and
other characters.
On the other hand, binary files contain 1s and 0s that only computers can interpret.
89) Describe Explain How arrays can be passed to a user defined function
One thing to note is that you cannot pass the entire array to a function. Instead, you pass to it a
pointer that will
point to the array first element in memory. To do this, you indicate the name of the array without
the brackets.
90) Explain What are pointers?
Pointers point to specific areas in the memory. Pointers contain the address of a variable, Explain
Which in turn
may contain a value or even an address to another memory.
94) Explain How do you search data in a data file using random access method?
Use the fseek() function to perform random access input/ouput on a file. After the file was
opened by the fopen()
function, the fseek would require three parameters to work: a file pointer to the file, the number
of bytes to search,
and the point of origin in the file.
95) Are comments included during the compilation stage and placed in the EXE file as well?
No, comments that were encountered by the compiler are disregarded. Comments are mostly for
the guidance of
the programmer only and do not have any other significant use in the program functionality.
96) Is there a built-in function in C that can be used for sorting data?
Yes, use the qsort() function. It is also possible to create user defined functions for sorting, such
as those based on
the balloon sort and bubble sort algorithm.
99) Create a simple code fragment that will swap the values of two variables num1 and num2.
int temp;
temp = num1;
num1 = num2;
num2 = temp;
int temp;
temp = num1;
num1 = num2;
num2 = temp;
100) Explain What is the use of a semicolon (;) at the end of every program statement?
It has to do with the parsing process and compilation of the code. A semicolon acts as a
delimiter, so that the
compiler knows where each statement ends, and can proceed to divide the statement into smaller
elements for
syntax checking.