{"id":33048,"date":"2023-04-17T05:40:07","date_gmt":"2023-04-17T12:40:07","guid":{"rendered":"https:\/\/coderpad.io\/?post_type=interview-questions&#038;p=33048"},"modified":"2024-06-25T11:59:45","modified_gmt":"2024-06-25T18:59:45","slug":"c-interview-questions","status":"publish","type":"interview-questions","link":"https:\/\/coderpad.io\/interview-questions\/c-interview-questions\/","title":{"rendered":"C"},"content":{"rendered":"\n<p>Despite its age &#8212; it has been around since the 1970&#8217;s &#8212; C continues to be a popular first-time programming language and is used in a range of applications of every type, from game development to systems programming and embedded systems.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>According to the <a href=\"https:\/\/coderpad.io\/blog\/hiring-developers\/top-10-in-demand-programming-languages\/\">CoderPad 2024 Developer survey<\/a>, C is the 10th most in-demand language among technical recruiters and hiring managers.<\/p>\n<\/blockquote>\n\n\n\n<p>We have developed practical coding tasks and interview questions tailored to evaluate developers&#8217; C skills during coding interviews. Furthermore, we have compiled a set of best practices to ensure that your interview questions accurately gauge the candidates&#8217; proficiency in C.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav aria-label=\"Table of Contents\"><ul><li><a href=\"#c-example-question\">C example question<\/a><ul><\/ul><\/li><li><a href=\"#junior-c-interview-questions\">Junior C interview questions<\/a><\/li><li><a href=\"#intermediate-c-interview-questions\">Intermediate C interview questions<\/a><\/li><li><a href=\"#senior-c-interview-questions\">Senior C interview questions<\/a><\/li><li><a href=\"#more-c-interview-resources\">More C interview resources<\/a><\/li><li><a href=\"#best-interview-practices-for-c-roles\">Best interview practices for C roles<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"c-example-question\"><strong>C example question<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"help-us-design-a-parking-lot\">Help us design a parking lot<\/h3>\n\n\n\n<p>Hey candidate! Welcome to your interview. Boilerplate is provided. Feel free to change the code as you see fit. To run the code at any time, please hit the run button located in the top left corner.<\/p>\n\n\n\n<p>Goals: Design a parking lot using object-oriented principles<\/p>\n\n\n\n<p><strong>Here are a few methods that you should be able to run:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tell us how many spots are remaining<\/li>\n\n\n\n<li>Tell us how many total spots are in the parking lot<\/li>\n\n\n\n<li>Tell us when the parking lot is full<\/li>\n\n\n\n<li>Tell us when the parking lot is empty<\/li>\n\n\n\n<li>Tell us when certain spots are full e.g. when all motorcycle spots are taken<\/li>\n\n\n\n<li>Tell us how many spots vans are taking up<\/li>\n<\/ul>\n\n\n\n<p><strong>Assumptions:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The parking lot can hold motorcycles, cars and vans<\/li>\n\n\n\n<li>The parking lot has motorcycle spots, car spots and large spots<\/li>\n\n\n\n<li>A motorcycle can park in any spot<\/li>\n\n\n\n<li>A car can park in a single compact spot, or a regular spot<\/li>\n\n\n\n<li>A van can park, but it will take up 3 regular spots<\/li>\n\n\n\n<li>These are just a few assumptions. Feel free to ask your interviewer about more assumptions as needed<\/li>\n<\/ul>\n\n\n<div\n\tclass=\"sandbox-embed responsive-embed \"\n\tstyle=\"padding-top: 85%\"\ndata-block-name=\"coderpad-sandbox-embed\">\n\t<iframe src=\"https:\/\/embed.coderpad.io\/sandbox?question_id=244590u0026use_question_button\" width=\"640\" height=\"544\" loading=\"lazy\" aria-label=\"Try out the CoderPad sandbox\"><\/iframe>\n<\/div>\n\n\n<section class=\"\n\ticon-lists-block\n\t\n\" data-block-name=\"coderpad-icon-lists-block\">\n    <div class=\"inner\">\n\n    \n            <div class=\"lists lists--2\">\n                            <div class=\"icon-list\">\n        <div class=\"top\">\n                            <div class=\"icon-container\">\n                    <svg class=\"icon icon-lightning-bolt\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 10 14\"><title>lightning bolt<\/title><path fill=\"currentColor\" d=\"M3.608 13.967c.185.079.4.013.508-.158l4.922-7.82a.41.41 0 0 0-.347-.63H5.407L6.628.511a.41.41 0 0 0-.744-.32L.962 8.011a.41.41 0 0 0 .347.63h3.284l-1.221 4.848a.41.41 0 0 0 .236.478Z\"\/><\/svg>\n\n                <\/div>\n            \n                            <h3 class=\"title\">C skills to assess<\/h3>\n                    <\/div>\n\n                    <ul class=\"links\">\n                                    <li>\n                        <a >Memory management<\/a>\n                    <\/li>\n                                    <li>\n                        <a >Data structures u0026 algorithms<\/a>\n                    <\/li>\n                                    <li>\n                        <a >Cross-platform development<\/a>\n                    <\/li>\n                            <\/ul>\n        <\/div>\n\n                            <div class=\"icon-list\">\n        <div class=\"top\">\n                            <div class=\"icon-container\">\n                    <svg class=\"icon icon-briefcase\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 25 26\" fill=\"none\"><title>briefcase<\/title><path fill=\"currentColor\" d=\"M5.469 16.125a5.446 5.446 0 0 1-3.907-1.648v6.335a2.35 2.35 0 0 0 2.344 2.344h17.188a2.35 2.35 0 0 0 2.343-2.343v-6.336a5.446 5.446 0 0 1-3.906 1.648H5.47Z\"\/><path fill=\"currentColor\" d=\"M21.094 5.969h-3.125v-.782a2.344 2.344 0 0 0-2.344-2.343h-6.25a2.344 2.344 0 0 0-2.344 2.344v.78H3.906a2.35 2.35 0 0 0-2.344 2.345v2.343a3.906 3.906 0 0 0 3.907 3.906h2.343V12.22a.781.781 0 1 1 1.563 0v2.344h6.25v-2.344a.781.781 0 1 1 1.563 0v2.344h2.343a3.907 3.907 0 0 0 3.907-3.907V8.312a2.351 2.351 0 0 0-2.344-2.343Zm-12.5-.782a.781.781 0 0 1 .781-.78h6.25a.781.781 0 0 1 .781.78v.782H8.594v-.782Z\"\/><\/svg>\n\n                <\/div>\n            \n                            <h3 class=\"title\">Jobs using C<\/h3>\n                    <\/div>\n\n                    <ul class=\"links\">\n                                    <li>\n                        <a >Embedded systems engineer<\/a>\n                    <\/li>\n                                    <li>\n                        <a >C programmer<\/a>\n                    <\/li>\n                                    <li>\n                        <a >Game developer<\/a>\n                    <\/li>\n                                    <li>\n                        <a >Shader programmer (GLSL)<\/a>\n                    <\/li>\n                            <\/ul>\n        <\/div>\n\n                    <\/div>\n    \n    <\/div>\n<\/section>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"junior-c-interview-questions\">Junior C interview questions<\/h2>\n\n\n\n<p><strong>Question:<br><\/strong>What is the purpose of the <code>#include<\/code> directive in C, and how is it used?<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>The <code>#include<\/code> directive is used to include header files in a C program. Header files contain declarations of functions, variables, and data types that are used in the program. The <code>#include<\/code> directive allows us to reuse code from other files by including their header files in our program.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>There is a bug in the following code that is causing a segmentation fault. Can you identify and fix it?<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    int arr&#91;<span class=\"hljs-number\">5<\/span>];\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt;= <span class=\"hljs-number\">5<\/span>; i++) {\n        arr&#91;i] = i;\n    }\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt;= <span class=\"hljs-number\">5<\/span>; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The bug in the code is an out-of-bounds access when assigning values to the <code>arr<\/code> array. In C, array indices start from 0, so the valid indices for an array of size 5 are from 0 to 4. To fix the code, we need to change the condition in both loops to <code>i &lt; 5<\/code> to stay within the bounds of the array.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    int arr&#91;<span class=\"hljs-number\">5<\/span>];\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; <span class=\"hljs-number\">5<\/span>; i++) {\n        arr&#91;i] = i;\n    }\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; <span class=\"hljs-number\">5<\/span>; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Question:<br><\/strong>What is the difference between the <code>malloc()<\/code> and <code>calloc()<\/code> functions in C for dynamic memory allocation?<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>The <code>malloc()<\/code> function is used to dynamically allocate memory in C. It takes the size of the memory block to allocate as a parameter and returns a pointer to the allocated memory. The <code>malloc()<\/code> function does not initialize the allocated memory, so the contents of the allocated memory block are undefined.<\/p>\n\n\n\n<p>The <code>calloc()<\/code> function, on the other hand, is also used for dynamic memory allocation. It takes two parameters: the number of elements to allocate and the size of each element. The <code>calloc()<\/code> function initializes the allocated memory to zero, unlike <code>malloc()<\/code>.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>The following code is intended to swap the values of two variables. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nvoid swap(int a, int b) {\n    int temp = a;\n    a = b;\n    b = temp;\n}\n\nint main() {\n    int x = <span class=\"hljs-number\">5<\/span>;\n    int y = <span class=\"hljs-number\">10<\/span>;\n\n    swap(x, y);\n\n    printf(<span class=\"hljs-string\">\"x = %d, y = %d\"<\/span>, x, y);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is that the <code>swap()<\/code> function is using pass-by-value, so the modifications made to <code>a<\/code> and <code>b<\/code> within the function do not affect the original variables <code>x<\/code> and <code>y<\/code> in the <code>main()<\/code> function. To fix this, we need to use pass-by-reference by passing the addresses of <code>x<\/code> and <code>y<\/code> to the <code>swap()<\/code> function using pointers.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nvoid swap(int *a, int *b) {\n    int temp = *a;\n    *a = *b;\n    *b = temp;\n}\n\nint main() {\n    int x = <span class=\"hljs-number\">5<\/span>;\n\n\n int y = <span class=\"hljs-number\">10<\/span>;\n\n    swap(&amp;x, &amp;y);\n\n    printf(<span class=\"hljs-string\">\"x = %d, y = %d\"<\/span>, x, y);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Question:<br><\/strong>What is the purpose of the <code>typedef<\/code> keyword in C, and how is it used?<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>The <code>typedef<\/code> keyword in C is used to create an alias or a new name for an existing data type. It allows us to define custom type names that are more meaningful and self-explanatory. The <code>typedef<\/code> keyword is typically used in conjunction with structure, union, and enum declarations, but it can also be used with basic data types.<\/p>\n\n\n\n<p>For example, we can use <code>typedef<\/code> to create a new name for <code>int<\/code> called <code>CustomInt<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-wrap-lines\">typedef int CustomInt;<\/code><\/span><\/pre>\n\n\n<p>After this typedef, <code>CustomInt<\/code> can be used as a synonym for <code>int<\/code>, and variables of type <code>CustomInt<\/code> can be declared.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>The following code is intended to print all the even numbers between 1 and 10. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">1<\/span>; i &lt;= <span class=\"hljs-number\">10<\/span>; i++) {\n        <span class=\"hljs-keyword\">if<\/span> (i % <span class=\"hljs-number\">2<\/span> == <span class=\"hljs-number\">0<\/span>)\n            printf(<span class=\"hljs-string\">\"%d \"<\/span>, i);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is that the <code>printf()<\/code> statement is not enclosed in curly braces, so only the immediately following statement is considered part of the loop. To fix this, we need to add curly braces around the <code>printf()<\/code> statement to ensure that it is executed for each iteration of the loop.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">1<\/span>; i &lt;= <span class=\"hljs-number\">10<\/span>; i++) {\n        <span class=\"hljs-keyword\">if<\/span> (i % <span class=\"hljs-number\">2<\/span> == <span class=\"hljs-number\">0<\/span>) {\n            printf(<span class=\"hljs-string\">\"%d \"<\/span>, i);\n        }\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Question:<br><\/strong>What is the purpose of the <code>sizeof<\/code> operator in C, and how is it used?<\/p>\n\n\n\n<p><strong>Answer:<\/strong><br>The <code>sizeof<\/code> operator in C is used to determine the size, in bytes, of a data type or a variable. It can be used to calculate the memory space occupied by a particular data type or to allocate the appropriate amount of memory dynamically.<\/p>\n\n\n\n<p>For example, to determine the size of an integer (<code>int<\/code>), we can use <code>sizeof(int)<\/code>, and to determine the size of a variable <code>x<\/code>, we can use <code>sizeof(x)<\/code>.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>Fix the code: The following code is intended to calculate the factorial of a number. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint factorial(int n) {\n    <span class=\"hljs-keyword\">if<\/span> (n == <span class=\"hljs-number\">0<\/span>)\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n    <span class=\"hljs-keyword\">else<\/span>\n        <span class=\"hljs-keyword\">return<\/span> n * factorial(n - <span class=\"hljs-number\">1<\/span>);\n}\n\nint main() {\n    int num = <span class=\"hljs-number\">5<\/span>;\n    int result = factorial(num);\n\n    printf(<span class=\"hljs-string\">\"Factorial of %d is %dn\"<\/span>, num, result);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The code has a correct implementation for calculating the factorial of a number. However, there is no base case or handling for negative numbers. To fix this, we can add a check for negative numbers and return an error condition or handle it appropriately.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint factorial(int n) {\n    <span class=\"hljs-keyword\">if<\/span> (n &lt; <span class=\"hljs-number\">0<\/span>) {\n        printf(<span class=\"hljs-string\">\"Error: Factorial not defined for negative numbersn\"<\/span>);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">-1<\/span>; <span class=\"hljs-comment\">\/\/ or any other appropriate error value<\/span>\n    }\n    <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">if<\/span> (n == <span class=\"hljs-number\">0<\/span>)\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n    <span class=\"hljs-keyword\">else<\/span>\n        <span class=\"hljs-keyword\">return<\/span> n\n\n * factorial(n - <span class=\"hljs-number\">1<\/span>);\n}\n\nint main() {\n    int num = <span class=\"hljs-number\">5<\/span>;\n    int result = factorial(num);\n\n    <span class=\"hljs-keyword\">if<\/span> (result != <span class=\"hljs-number\">-1<\/span>) {\n        printf(<span class=\"hljs-string\">\"Factorial of %d is %dn\"<\/span>, num, result);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Question:<br><\/strong>What is the difference between <code>++i<\/code> and <code>i++<\/code> in C?<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>Both <code>++i<\/code> and <code>i++<\/code> are increment operators in C. The difference lies in their behavior:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>++i<\/code> is the pre-increment operator. It increments the value of <code>i<\/code> and then evaluates to the incremented value.<\/li>\n\n\n\n<li><code>i++<\/code> is the post-increment operator. It increments the value of <code>i<\/code> but evaluates to the original value before the increment.<\/li>\n<\/ul>\n\n\n\n<p>For example, if <code>i<\/code> is 5, then <code>++i<\/code> would evaluate to 6 and <code>i++<\/code> would evaluate to 5. The value of <code>i<\/code> after these operations would be 6 in both cases.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>Fix the code: The following code is intended to print the ASCII values of lowercase letters. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    char letter = <span class=\"hljs-string\">'a'<\/span>;\n\n    <span class=\"hljs-keyword\">while<\/span> (letter &lt;= <span class=\"hljs-string\">'z'<\/span>) {\n        printf(<span class=\"hljs-string\">\"ASCII value of %c is %dn\"<\/span>, letter, letter);\n        letter++;\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is that the format specifier <code>%d<\/code> is used to print the ASCII value of the <code>letter<\/code> variable. However, the <code>%c<\/code> format specifier should be used to print the actual character. To fix this, we need to change the format specifier to <code>%c<\/code> in the <code>printf()<\/code> statement.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    char letter = <span class=\"hljs-string\">'a'<\/span>;\n\n    <span class=\"hljs-keyword\">while<\/span> (letter &lt;= <span class=\"hljs-string\">'z'<\/span>) {\n        printf(<span class=\"hljs-string\">\"ASCII value of %c is %cn\"<\/span>, letter, letter);\n        letter++;\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>These questions cover the basics of C and should provide a good starting point for a junior C developer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"intermediate-c-interview-questions\">Intermediate C interview questions<\/h2>\n\n\n\n<p><strong>Question:<br><\/strong>What is a function pointer in C? Provide an example of how it can be used.<\/p>\n\n\n\n<p><br><strong>Answer:<br><\/strong>A function pointer is a variable that stores the address of a function in C. It allows us to call a function indirectly by using the function pointer. Here&#8217;s an example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nint add(int a, int b) {\n    return a + b;\n}\n\nint main() {\n    int (*funcPtr)(int, int) = add; \/\/ Declare <span class=\"hljs-keyword\">and<\/span> initialize a function pointer\n\n    int result = funcPtr(<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>); \/\/ Call the function using the function pointer\n\n    printf(<span class=\"hljs-string\">\"Result: %dn\"<\/span>, result);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br>In this example, we declare a function pointer <code>funcPtr<\/code> that points to the <code>add<\/code> function. We can then use the function pointer to call the <code>add<\/code> function indirectly by dereferencing and invoking the function pointer.<br><br><strong>Question:<br><\/strong>The following code is intended to swap the values of two variables using pointers. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nvoid swap(int* a, int* b) {\n    int* temp = a;\n    a = b;\n    b = temp;\n}\n\nint main() {\n    int x = <span class=\"hljs-number\">5<\/span>;\n    int y = <span class=\"hljs-number\">10<\/span>;\n\n    swap(&amp;x, &amp;y);\n\n    printf(<span class=\"hljs-string\">\"x = %d, y = %dn\"<\/span>, x, y);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br><strong>Answer:<br><\/strong>The issue with the code is that the `swap()` function is using pointers, but the pointers `a` and `b` are being reassigned to each other instead of swapping the values they point to. To fix this, we need to dereference the pointers and swap the values they point to.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nvoid swap(int* a, int* b) {\n    int temp = *a;\n    *a = *b;\n    *b = temp;\n}\n\nint main() {\n    int x = <span class=\"hljs-number\">5<\/span>;\n    int y = <span class=\"hljs-number\">10<\/span>;\n\n    swap(&amp;x, &amp;y);\n\n    printf(<span class=\"hljs-string\">\"x = %d, y = %dn\"<\/span>, x, y);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br><strong>Question:<br><\/strong>Explain the concept of dynamic memory allocation in C. How is it different from static memory allocation?<br><br><strong>Answer:<br><\/strong>Dynamic memory allocation in C allows us to allocate memory at runtime, rather than at compile-time like static memory allocation. It enables us to allocate memory dynamically based on the program&#8217;s needs.<br><br>In C, dynamic memory allocation is done using the <code>malloc()<\/code>, <code>calloc()<\/code>, and <code>realloc()<\/code> functions from the <code>&lt;stdlib.h&gt;<\/code> library. These functions allow us to allocate and deallocate memory as needed, using the heap.<br><br>Static memory allocation, on the other hand, occurs at compile-time and involves allocating memory for variables and arrays using keywords like <code>int<\/code>, <code>char<\/code>, or <code>float<\/code> within the program. The allocated memory remains fixed during the execution of the program.<br><br><strong>Question:<br><\/strong>The following code is intended to read a string of characters from the user. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\n#define MAX_SIZE <span class=\"hljs-number\">20<\/span>\n\nint main() {\n    char str&#91;MAX_SIZE];\n\n    printf(<span class=\"hljs-string\">\"Enter a string: \"<\/span>);\n    gets(str);\n\n    printf(<span class=\"hljs-string\">\"Entered string: %sn\"<\/span>, str);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br><strong>Answer:<br><\/strong>The issue with the code is that the <code>gets()<\/code> function is used to read a string from the user, which is considered unsafe and deprecated due to the risk of buffer overflow. To fix this, we can use the safer alternative <code>fgets()<\/code> function.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\n#define MAX_SIZE <span class=\"hljs-number\">20<\/span>\n\nint main() {\n    char str&#91;MAX_SIZE];\n\n    printf(<span class=\"hljs-string\">\"Enter a string: \"<\/span>);\n    fgets(str, MAX_SIZE, stdin);\n\n    printf(<span class=\"hljs-string\">\"Entered string: %sn\"<\/span>, str);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br><strong>Question:<br><\/strong>What is the purpose of the <code>volatile<\/code> keyword in C? Provide an example scenario where it can be useful.<br><br><strong>Answer:<br><\/strong>The <code>volatile<\/code> keyword in C is used to indicate that a variable&#8217;s value can be changed unexpectedly by external sources, such as hardware or concurrent threads. It tells the compiler not to optimize or cache the variable.<br><br>One scenario where <code>volatile<\/code> can be useful is when working with memory-mapped I\/O devices. The values of such devices can change asynchronously, and using the <code>volatile<\/code> keyword ensures that the compiler always fetches the latest value from memory instead of using a cached value.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nvolatile int* deviceAddress = (int*)<span class=\"hljs-number\">0<\/span>x12345678; \/\/ Memory-mapped I\/O device address\n\nint main() {\n    int value = *deviceAddress; \/\/ Read the value from the device\n\n    printf(<span class=\"hljs-string\">\"Value: %dn\"<\/span>, value);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br>In this example, <code>deviceAddress<\/code> is declared as a volatile pointer to an <code>int<\/code>, indicating that the value at that memory location can change unexpectedly. By using the <code>volatile<\/code> keyword, we ensure that the latest value is always read from the device.<br><br><strong>Question:<br><\/strong>The following code is intended to find the length of a string. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nint stringLength(char str&#91;]) {\n    int length = <span class=\"hljs-number\">0<\/span>;\n\n    <span class=\"hljs-keyword\">while<\/span> (str&#91;length] != <span class=\"hljs-string\">\"\"<\/span>)\n        length++;\n\n    return length;\n}\n\nint main() {\n    char str&#91;] = <span class=\"hljs-string\">\"Hello, World!\"<\/span>;\n    int length = stringLength(str);\n    printf(<span class=\"hljs-string\">\"Length: %d\\n\"<\/span>, length);\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br><strong>Answer:<br><\/strong><\/p>\n\n\n\n<p>Strings in C are mainly arrays of characters, with the null character&nbsp;<code>'\\0'<\/code>&nbsp;to indicate where the string ends.<\/p>\n\n\n\n<p>The function&nbsp;<code>stringLength<\/code>&nbsp;tries to compare a single character (<code>str[length]<\/code>) with the value&nbsp;<code>\"\"<\/code>. This value is an empty string: an array of character whose first element is the null character.<\/p>\n\n\n\n<p>Comparing a single character with an array of characters may end with unpredictable results. The correct way is to compare two single characters, one of them is the null character :&nbsp;<code>'\\0'<\/code><\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nint stringLength(char str&#91;]) {\n    int length = <span class=\"hljs-number\">0<\/span>;\n\n    <span class=\"hljs-keyword\">while<\/span> (str&#91;length] != <span class=\"hljs-string\">'\\0'<\/span>)\n        length++;\n\n    return length;\n}\n\nint main() {\n    char str&#91;] = <span class=\"hljs-string\">\"Hello, World!\"<\/span>;\n    int length = stringLength(str);\n    printf(<span class=\"hljs-string\">\"Length: %d\\n\"<\/span>, length);\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br><strong>Question:<br><\/strong>Explain the concept of recursion in C. Provide an example of a recursive function.<br><br><strong>Answer:<br><\/strong>Recursion is a programming technique where a function calls itself to solve a problem by breaking it down into smaller subproblems. In C, a recursive function consists of a base case and a recursive case.<br><br>Here&#8217;s an example of a recursive function to calculate the factorial of a number:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nint factorial(int n) {\n    <span class=\"hljs-keyword\">if<\/span> (n == <span class=\"hljs-number\">0<\/span>)\n        return <span class=\"hljs-number\">1<\/span>;\n    <span class=\"hljs-keyword\">else<\/span>\n        return n * factorial(n - <span class=\"hljs-number\">1<\/span>);\n}\n\nint main() {\n    int num = <span class=\"hljs-number\">5<\/span>;\n    int result = factorial(num);\n\n    printf(<span class=\"hljs-string\">\"Factorial of %d is %dn\"<\/span>, num, result);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br>In this example, the <code>factorial()<\/code> function calls itself with a smaller value (<code>n - 1<\/code>) until it reaches the base case (<code>n == 0<\/code>). The function calculates the factorial by multiplying <code>n<\/code> with the factorial of <code>n - 1<\/code>.<br><br><strong>Question:<br><\/strong>Fix the code: The following code is intended to reverse an integer array. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\n#define SIZE <span class=\"hljs-number\">6<\/span>\n\nvoid reverseArray(int arr&#91;], int size) {\n    int temp;\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt;= size \/ <span class=\"hljs-number\">2<\/span>; i++) {\n        temp = arr&#91;i];\n        arr&#91;i] = arr&#91;size - i];\n        arr&#91;size - i] = temp;\n    }\n}\n\nint main() {\n    int arr&#91;SIZE] = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">6<\/span>};\n\n    reverseArray(arr, SIZE);\n\n    printf(<span class=\"hljs-string\">\"Reversed array: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; SIZE; i++)\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n\n    printf(<span class=\"hljs-string\">\"\\n\"<\/span>);\n    return <span class=\"hljs-number\">0<\/span>;\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is that the loop in the <code>reverseArray()<\/code> function swaps elements incorrectly. The loop should iterate until <code>i &lt; size \/ 2<\/code>, not <code>i &lt;= size \/ 2<\/code>. Additionally, when swapping the elements, the index for the second element should be <code>size - i - 1<\/code>, not <code>size - i<\/code>. These fixes ensure that the swapping is done correctly.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\n#define SIZE <span class=\"hljs-number\">6<\/span>\n\nvoid reverseArray(int arr&#91;], int size) {\n    int temp;\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size \/ <span class=\"hljs-number\">2<\/span>; i++) {\n        temp = arr&#91;i];\n        arr&#91;i] = arr&#91;size - i - <span class=\"hljs-number\">1<\/span>];\n        arr&#91;size - i - <span class=\"hljs-number\">1<\/span>] = temp;\n    }\n}\n\nint main() {\n    int arr&#91;SIZE] = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">6<\/span>};\n\n    reverseArray(arr, SIZE);\n\n    printf(<span class=\"hljs-string\">\"Reversed array: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; SIZE; i++)\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n\n    printf(<span class=\"hljs-string\">\"\\n\"<\/span>);\n    return <span class=\"hljs-number\">0<\/span>;\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of pointers in C. Provide an example of how pointers can be used to pass values by reference.<br><br><strong>Answer:<br><\/strong>Pointers in C are variables that store memory addresses. They allow us to indirectly access and manipulate data in memory. Pointers are useful for tasks like dynamic memory allocation, passing values by reference, and working with complex data structures.<br><br>Here&#8217;s an example of using pointers to pass values by reference:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n\nvoid increment(int* num) {\n    (*num)++;\n}\n\nint main() {\n    int value = <span class=\"hljs-number\">5<\/span>;\n\n    printf(<span class=\"hljs-string\">\"Before increment: %dn\"<\/span>, value);\n\n    increment(&amp;value);\n\n    printf(<span class=\"hljs-string\">\"After increment: %dn\"<\/span>, value);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br>In this example, the <code>increment()<\/code> function takes a pointer to an integer as a parameter. Inside the function, the value at the memory address pointed to by <code>num<\/code> is incremented by dereferencing the pointer. By passing the address of <code>value<\/code> using the <code>&amp;<\/code> operator, we can modify the original value directly.<br><br><strong>Question:<br><\/strong>Fix the code: The following code is intended to check if a number is prime. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n#include &lt;stdbool.h&gt;\n\nbool isPrime(int num) {\n    <span class=\"hljs-keyword\">if<\/span> (num &lt; <span class=\"hljs-number\">2<\/span>)\n        return <span class=\"hljs-literal\">false<\/span>;\n\n    <span class=\"hljs-keyword\">for<\/span>\n\n (int i = <span class=\"hljs-number\">2<\/span>; i &lt; num; i++) {\n        <span class=\"hljs-keyword\">if<\/span> (num % i == <span class=\"hljs-number\">0<\/span>)\n            return <span class=\"hljs-literal\">false<\/span>;\n    }\n\n    return <span class=\"hljs-literal\">true<\/span>;\n}\n\nint main() {\n    int number = <span class=\"hljs-number\">17<\/span>;\n\n    <span class=\"hljs-keyword\">if<\/span> (isPrime(number))\n        printf(<span class=\"hljs-string\">\"%d is prime.n\"<\/span>, number);\n    <span class=\"hljs-keyword\">else<\/span>\n        printf(<span class=\"hljs-string\">\"%d is not prime.n\"<\/span>, number);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br>Answer:<br>The issue with the code is in the <code>for<\/code> loop condition inside the <code>isPrime()<\/code> function. The loop should iterate until <code>i &lt;= num \/ 2<\/code>, not <code>i &lt; num<\/code>. Additionally, there is an optimization we can make to stop the loop earlier by checking until the square root of <code>num<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"C\/AL\" data-shcb-language-slug=\"cal\"><span><code class=\"hljs language-cal shcb-wrap-lines\">#include &lt;stdio.h&gt;\n#include &lt;stdbool.h&gt;\n#include &lt;math.h&gt;\n\nbool isPrime(int num) {\n    <span class=\"hljs-keyword\">if<\/span> (num &lt; <span class=\"hljs-number\">2<\/span>)\n        return <span class=\"hljs-literal\">false<\/span>;\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">2<\/span>; i &lt;= sqrt(num); i++) {\n        <span class=\"hljs-keyword\">if<\/span> (num % i == <span class=\"hljs-number\">0<\/span>)\n            return <span class=\"hljs-literal\">false<\/span>;\n    }\n\n    return <span class=\"hljs-literal\">true<\/span>;\n}\n\nint main() {\n    int number = <span class=\"hljs-number\">17<\/span>;\n\n    <span class=\"hljs-keyword\">if<\/span> (isPrime(number))\n        printf(<span class=\"hljs-string\">\"%d is prime.n\"<\/span>, number);\n    <span class=\"hljs-keyword\">else<\/span>\n        printf(<span class=\"hljs-string\">\"%d is not prime.n\"<\/span>, number);\n\n    return <span class=\"hljs-number\">0<\/span>;\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C\/AL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cal<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><br>In this corrected code, the <code>isPrime()<\/code> function uses the <code>sqrt()<\/code> function from the <code>&lt;math.h&gt;<\/code> library to limit the loop condition, improving the efficiency of prime number checking.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"senior-c-interview-questions\">Senior C interview questions<\/h2>\n\n\n\n<p><strong>Question:<br><\/strong>The following code is intended to swap two integers using bitwise XOR. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nvoid swap(int a, int b) {\n    a = a ^ b;\n    b = a ^ b;\n    a = a ^ b;\n}\n\nint main() {\n    int x = <span class=\"hljs-number\">10<\/span>, y = <span class=\"hljs-number\">20<\/span>;\n\n    printf(<span class=\"hljs-string\">\"Before swap: x = %d, y = %dn\"<\/span>, x, y);\n\n    swap(x, y);\n\n    printf(<span class=\"hljs-string\">\"After swap: x = %d, y = %dn\"<\/span>, x, y);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is that the <code>swap()<\/code> function is swapping the values of the local variables <code>a<\/code> and <code>b<\/code>, not the original variables <code>x<\/code> and <code>y<\/code>. To fix this, we need to pass the addresses of <code>x<\/code> and <code>y<\/code> as pointers and dereference them in the <code>swap()<\/code> function.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nvoid swap(int* a, int* b) {\n    *a = *a ^ *b;\n    *b = *a ^ *b;\n    *a = *a ^ *b;\n}\n\nint main() {\n    int x = <span class=\"hljs-number\">10<\/span>, y = <span class=\"hljs-number\">20<\/span>;\n\n    printf(<span class=\"hljs-string\">\"Before swap: x = %d, y = %dn\"<\/span>, x, y);\n\n    swap(&amp;x, &amp;y);\n\n    printf(<span class=\"hljs-string\">\"After swap: x = %d, y = %dn\"<\/span>, x, y);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this corrected code, the <code>swap()<\/code> function takes pointers to <code>a<\/code> and <code>b<\/code> as parameters. By dereferencing the pointers using the <code>*<\/code> operator, we can modify the values of <code>x<\/code> and <code>y<\/code> directly.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of dynamic memory allocation in C. Provide an example of dynamically allocating memory for an integer array.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>Dynamic memory allocation in C allows programs to allocate memory at runtime as opposed to compile time. It is useful when the size of data structures or arrays is unknown or needs to be determined dynamically.<\/p>\n\n\n\n<p>Here&#8217;s an example of dynamically allocating memory for an integer array:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n<span class=\"hljs-comment\">#include &lt;stdlib.h&gt;<\/span>\n\nint main() {\n    int size;\n    printf(<span class=\"hljs-string\">\"Enter the size of the array: \"<\/span>);\n    scanf(<span class=\"hljs-string\">\"%d\"<\/span>, &amp;size);\n\n    int* arr = (int*)malloc(size * sizeof(int));\n\n    <span class=\"hljs-keyword\">if<\/span> (arr == <span class=\"hljs-keyword\">NULL<\/span>) {\n        printf(<span class=\"hljs-string\">\"Memory allocation failed.n\"<\/span>);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n    }\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"Enter element %d: \"<\/span>, i);\n        scanf(<span class=\"hljs-string\">\"%d\"<\/span>, &amp;arr&#91;i]);\n    }\n\n    printf(<span class=\"hljs-string\">\"Array elements: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    free(arr);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, the program asks the user to enter the size of the array. It then dynamically allocates memory using <code>malloc()<\/code> and assigns the starting address of the allocated memory to the pointer variable <code>arr<\/code>. The user is prompted to enter the elements of the array, which are stored in the dynamically allocated memory. Finally, the memory is freed using <code>free()<\/code> to prevent memory leaks.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>The following code is intended to read a binary file and print its contents as hexadecimal. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    FILE* file = fopen\n\n(<span class=\"hljs-string\">\"data.bin\"<\/span>, <span class=\"hljs-string\">\"rb\"<\/span>);\n\n    <span class=\"hljs-keyword\">if<\/span> (file == <span class=\"hljs-keyword\">NULL<\/span>) {\n        printf(<span class=\"hljs-string\">\"Failed to open the file.n\"<\/span>);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n    }\n\n    unsigned char buffer&#91;<span class=\"hljs-number\">16<\/span>];\n    int bytesRead;\n\n    <span class=\"hljs-keyword\">while<\/span> ((bytesRead = fread(buffer, sizeof(char), <span class=\"hljs-number\">16<\/span>, file)) != <span class=\"hljs-number\">0<\/span>) {\n        <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; bytesRead; i++) {\n            printf(<span class=\"hljs-string\">\"%02X \"<\/span>, buffer&#91;i]);\n        }\n\n        printf(<span class=\"hljs-string\">\"n\"<\/span>);\n    }\n\n    fclose(file);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is that the file is not closed if an error occurs during the <code>fread()<\/code> operation. To fix this, we need to add a <code>fclose()<\/code> statement inside the <code>if<\/code> block where the file is checked for <code>NULL<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint main() {\n    FILE* file = fopen(<span class=\"hljs-string\">\"data.bin\"<\/span>, <span class=\"hljs-string\">\"rb\"<\/span>);\n\n    <span class=\"hljs-keyword\">if<\/span> (file == <span class=\"hljs-keyword\">NULL<\/span>) {\n        printf(<span class=\"hljs-string\">\"Failed to open the file.n\"<\/span>);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n    }\n\n    unsigned char buffer&#91;<span class=\"hljs-number\">16<\/span>];\n    int bytesRead;\n\n    <span class=\"hljs-keyword\">while<\/span> ((bytesRead = fread(buffer, sizeof(char), <span class=\"hljs-number\">16<\/span>, file)) != <span class=\"hljs-number\">0<\/span>) {\n        <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; bytesRead; i++) {\n            printf(<span class=\"hljs-string\">\"%02X \"<\/span>, buffer&#91;i]);\n        }\n\n        printf(<span class=\"hljs-string\">\"n\"<\/span>);\n    }\n\n    fclose(file);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this corrected code, the <code>fclose()<\/code> function is called before the program exits in both the normal execution path and the error path, ensuring that the file is closed in all cases.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of a linked list in C. Provide an example of creating a linked list and traversing its elements.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>A linked list is a data structure that consists of nodes where each node contains a value and a pointer to the next node. The last node points to NULL, indicating the end of the list. Linked lists provide dynamic memory allocation, efficient insertions and deletions, and flexible size.<\/p>\n\n\n\n<p>Here&#8217;s an example of creating a linked list and traversing its elements:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n<span class=\"hljs-comment\">#include &lt;stdlib.h&gt;<\/span>\n\ntypedef struct Node {\n    int data;\n    struct Node* next;\n} Node;\n\nvoid printList(Node* head) {\n    Node* current = head;\n    <span class=\"hljs-keyword\">while<\/span> (current != <span class=\"hljs-keyword\">NULL<\/span>) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, current-&gt;data);\n        current = current-&gt;next;\n    }\n    printf(<span class=\"hljs-string\">\"n\"<\/span>);\n}\n\nint main() {\n    Node* head = <span class=\"hljs-keyword\">NULL<\/span>;\n    Node* second = <span class=\"hljs-keyword\">NULL<\/span>;\n    Node* third = <span class=\"hljs-keyword\">NULL<\/span>;\n\n    head = (Node*)malloc(sizeof(Node));\n    second = (Node*)malloc(sizeof(Node));\n    third = (Node*)malloc(sizeof(Node));\n\n    head-&gt;data = <span class=\"hljs-number\">1<\/span>;\n    head-&gt;next = second;\n\n    second-&gt;data = <span class=\"hljs-number\">2<\/span>;\n    second-&gt;next = third;\n\n    third-&gt;data = <span class=\"hljs-number\">3<\/span>;\n    third-&gt;next = <span class=\"hljs-keyword\">NULL<\/span>;\n\n    printList(head);\n\n    free(head);\n    free(second);\n    free(third);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we define a <code>Node<\/code> struct that contains an integer data field and a pointer to the next node. We create three nodes dynamically using <code>malloc()<\/code> and assign values to their <code>data<\/code> fields. We link the nodes together by setting the <code>next<\/code> pointers accordingly. Finally, we pass the head of the linked list to the <code>printList()<\/code> function, which traverses the list and prints the values. We must remember to free the dynamically allocated memory using <code>free()<\/code> to avoid memory leaks.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>The following code is intended to sort an array of integers in ascending order using the bubble sort algorithm. Identify and fix the issue.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nvoid bubbleSort(int arr&#91;], int size) {\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size - <span class=\"hljs-number\">1<\/span>; i++) {\n        <span class=\"hljs-keyword\">for<\/span> (int j = <span class=\"hljs-number\">0<\/span>; j &lt; size - i; j++) {\n            <span class=\"hljs-keyword\">if<\/span> (arr&#91;j] &gt; arr&#91;j + <span class=\"hljs-number\">1<\/span>]) {\n                int temp = arr&#91;j];\n                arr&#91;j] = arr&#91;j + <span class=\"hljs-number\">1<\/span>];\n                arr&#91;j + <span class=\"hljs-number\">1<\/span>] = temp;\n            }\n        }\n    }\n}\n\nint main() {\n    int arr&#91;] = {<span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">8<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">6<\/span>};\n    int size = sizeof(arr) \/ sizeof(arr&#91;<span class=\"hljs-number\">0<\/span>]);\n\n    printf(<span class=\"hljs-string\">\"Before sorting: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    bubbleSort(arr, size);\n\n    printf(<span class=\"hljs-string\">\"nAfter sorting: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>Answer:<br><\/strong>The issue with the code is in the inner loop condition of the <code>bubbleSort()<\/code> function. The loop should iterate until <code>j &lt; size - i - 1<\/code>, not <code>j &lt; size - i<\/code>. This is because we are accessing <code>arr[j + 1]<\/code> in the loop body, so we need to ensure that <code>j + 1<\/code> is a valid index.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nvoid bubbleSort(int arr&#91;], int size) {\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size - <span class=\"hljs-number\">1<\/span>; i++) {\n        <span class=\"hljs-keyword\">for<\/span> (int j = <span class=\"hljs-number\">0<\/span>; j &lt; size - i - <span class=\"hljs-number\">1<\/span>; j++) {\n            <span class=\"hljs-keyword\">if<\/span> (arr&#91;j] &gt; arr&#91;j + <span class=\"hljs-number\">1<\/span>]) {\n                int temp = arr&#91;j];\n                arr&#91;j] = arr&#91;j + <span class=\"hljs-number\">1<\/span>];\n                arr&#91;j + <span class=\"hljs-number\">1<\/span>] = temp;\n            }\n        }\n    }\n}\n\nint main() {\n    int arr&#91;] = {<span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">8<\/span>, <span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">6<\/span>};\n    int size = sizeof(arr) \/ sizeof(arr&#91;<span class=\"hljs-number\">0<\/span>]);\n\n    printf(<span class=\"hljs-string\">\"Before sorting: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    bubbleSort(arr, size);\n\n    printf(<span class=\"hljs-string\">\"nAfter sorting: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this corrected code, the inner loop condition is fixed to <code>j &lt; size - i - 1<\/code>, ensuring that we don&#8217;t access elements beyond the array boundaries.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of dynamic memory allocation in C. Provide an example of allocating memory for an array dynamically and freeing it.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>Dynamic memory allocation in C allows for the allocation and deallocation of memory during runtime. The functions <code>malloc()<\/code>, <code>calloc()<\/code>, and <code>realloc()<\/code> are used for dynamic memory allocation, and <code>free()<\/code> is used to release the allocated memory.<\/p>\n\n\n\n<p>Here&#8217;s an example of dynamically allocating memory for an array:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n<span class=\"hljs-comment\">#include &lt;stdlib.h&gt;<\/span>\n\nint main() {\n    int size;\n    printf(<span class=\"hljs-string\">\"Enter the size of the array: \"<\/span>);\n    scanf(<span class=\"hljs-string\">\"%d\"<\/span>, &amp;size);\n\n    int* arr = (int*)malloc(size * sizeof(int));\n    <span class=\"hljs-keyword\">if<\/span> (arr == <span class=\"hljs-keyword\">NULL<\/span>) {\n        printf(<span class=\"hljs-string\">\"Memory allocation failed.n\"<\/span>);\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n    }\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        arr&#91;i] = i + <span class=\"hljs-number\">1<\/span>;\n    }\n\n    printf(<span class=\"hljs-string\">\"Array elements: \"<\/span>);\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; size; i++) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, arr&#91;i]);\n    }\n    printf(<span class=\"hljs-string\">\"n\"<\/span>);\n\n    free(arr);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, the user enters the size of the array. The <code>malloc()<\/code> function allocates memory dynamically based on the size provided by the user. We check if the memory allocation is successful before proceeding. We then assign values to the array elements and print them. Finally, we free the allocated memory using <code>free()<\/code>.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>What are function pointers in C? Provide an example demonstrating the use of function pointers.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>Function pointers in C are variables that store addresses of functions. They allow functions to be treated as data and passed as arguments to other functions or stored in data structures.<\/p>\n\n\n\n<p>Here&#8217;s an example demonstrating the use of function pointers:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n\nint add(int a, int b) {\n    <span class=\"hljs-keyword\">return<\/span> a + b;\n}\n\nint subtract(int a, int b) {\n    <span class=\"hljs-keyword\">return<\/span> a - b;\n}\n\nint multiply(int a, int b) {\n    <span class=\"hljs-keyword\">return<\/span> a * b;\n}\n\nint main() {\n    int (*operation)(int, int);  <span class=\"hljs-comment\">\/\/ Declare a function pointer<\/span>\n\n    operation = add;  <span class=\"hljs-comment\">\/\/ Assign the address of the add() function<\/span>\n\n    int result = operation(<span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">3<\/span>);  <span class=\"hljs-comment\">\/\/ Call the function through the pointer<\/span>\n\n    printf(<span class=\"hljs-string\">\"Result: %dn\"<\/span>, result);\n\n    operation = subtract;  <span class=\"hljs-comment\">\/\/ Assign the address of the subtract() function<\/span>\n\n    result = operation(<span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">3<\/span>);  <span class=\"hljs-comment\">\/\/ Call the function through the pointer<\/span>\n\n    printf(<span class=\"hljs-string\">\"Result: %dn\"<\/span>, result);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we declare a function pointer <code>operation<\/code> that can point to functions accepting two integers and returning an integer. We assign the address of the <code>add()<\/code> function to the pointer and call the function through the pointer. We then reassign the pointer to the <code>subtract()<\/code> function and call it again. This allows us to switch between different functions using a single function pointer.<\/p>\n\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of a binary search tree (BST) and its operations. Provide an example of inserting nodes into a BST and traversing it.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>A binary search tree (BST) is a binary tree data structure where each node has a key greater than all keys in its left subtree and less than all keys in its right subtree. It allows efficient searching, insertion, and deletion operations.<\/p>\n\n\n\n<p>Here&#8217;s an example of inserting nodes into a BST and traversing it in-order:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include<\/span>\n\n &lt;stdio.h&gt;\n<span class=\"hljs-comment\">#include &lt;stdlib.h&gt;<\/span>\n\nstruct Node {\n    int key;\n    struct Node* left;\n    struct Node* right;\n};\n\nstruct Node* createNode(int key) {\n    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));\n    newNode-&gt;key = key;\n    newNode-&gt;left = <span class=\"hljs-keyword\">NULL<\/span>;\n    newNode-&gt;right = <span class=\"hljs-keyword\">NULL<\/span>;\n    <span class=\"hljs-keyword\">return<\/span> newNode;\n}\n\nstruct Node* insert(struct Node* root, int key) {\n    <span class=\"hljs-keyword\">if<\/span> (root == <span class=\"hljs-keyword\">NULL<\/span>) {\n        <span class=\"hljs-keyword\">return<\/span> createNode(key);\n    }\n\n    <span class=\"hljs-keyword\">if<\/span> (key &lt; root-&gt;key) {\n        root-&gt;left = insert(root-&gt;left, key);\n    }\n    <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">if<\/span> (key &gt; root-&gt;key) {\n        root-&gt;right = insert(root-&gt;right, key);\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> root;\n}\n\nvoid inorderTraversal(struct Node* root) {\n    <span class=\"hljs-keyword\">if<\/span> (root != <span class=\"hljs-keyword\">NULL<\/span>) {\n        inorderTraversal(root-&gt;left);\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, root-&gt;key);\n        inorderTraversal(root-&gt;right);\n    }\n}\n\nint main() {\n    struct Node* root = <span class=\"hljs-keyword\">NULL<\/span>;\n\n    root = insert(root, <span class=\"hljs-number\">50<\/span>);\n    insert(root, <span class=\"hljs-number\">30<\/span>);\n    insert(root, <span class=\"hljs-number\">20<\/span>);\n    insert(root, <span class=\"hljs-number\">40<\/span>);\n    insert(root, <span class=\"hljs-number\">70<\/span>);\n    insert(root, <span class=\"hljs-number\">60<\/span>);\n    insert(root, <span class=\"hljs-number\">80<\/span>);\n\n    printf(<span class=\"hljs-string\">\"Inorder traversal: \"<\/span>);\n    inorderTraversal(root);\n    printf(<span class=\"hljs-string\">\"n\"<\/span>);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we define a structure <code>Node<\/code> representing a node in the BST. The <code>createNode()<\/code> function creates a new node with the given key. The <code>insert()<\/code> function inserts a new node into the BST based on the key value. The <code>inorderTraversal()<\/code> function performs an in-order traversal of the BST and prints the keys in ascending order. We create a BST by inserting nodes with keys 50, 30, 20, 40, 70, 60, and 80. The output of the program will be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-wrap-lines\">Inorder traversal: 20 30 40 50 60 70 80<\/code><\/span><\/pre>\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of multithreading in C. Provide an example of creating and synchronizing multiple threads.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>Multithreading in C allows a program to have multiple threads of execution running concurrently. Each thread represents a separate flow of control within the same program, allowing for parallel execution.<\/p>\n\n\n\n<p>Here&#8217;s an example of creating and synchronizing multiple threads:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n<span class=\"hljs-comment\">#include &lt;pthread.h&gt;<\/span>\n\n<span class=\"hljs-comment\">#define NUM_THREADS 5<\/span>\n\nvoid* threadFunc(void* arg) {\n    int threadID = *((int*)arg);\n    printf(<span class=\"hljs-string\">\"Thread %d: Hello, world!n\"<\/span>, threadID);\n    pthread_exit(<span class=\"hljs-keyword\">NULL<\/span>);\n}\n\nint main() {\n    pthread_t threads&#91;NUM_THREADS];\n    int threadIDs&#91;NUM_THREADS];\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; NUM_THREADS; i++) {\n        threadIDs&#91;i] = i + <span class=\"hljs-number\">1<\/span>;\n        int result = pthread_create(&amp;threads&#91;i], <span class=\"hljs-keyword\">NULL<\/span>, threadFunc, &amp;threadIDs&#91;i]);\n        <span class=\"hljs-keyword\">if<\/span> (result != <span class=\"hljs-number\">0<\/span>) {\n            printf(<span class=\"hljs-string\">\"Failed to create thread %dn\"<\/span>, i + <span class=\"hljs-number\">1<\/span>);\n            <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">1<\/span>;\n        }\n    }\n\n    <span class=\"hljs-keyword\">for<\/span> (int i = <span class=\"hljs-number\">0<\/span>; i &lt; NUM_THREADS; i++) {\n        pthread_join(threads&#91;i], <span class=\"hljs-keyword\">NULL<\/span>);\n    }\n\n    printf(<span class=\"hljs-string\">\"All threads completed.n\"<\/span>);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we define a thread function <code>threadFunc()<\/code> that takes an argument representing the thread ID. Each thread prints a greeting message with its ID. We create an array of thread IDs and use a loop to create multiple threads. The<\/p>\n\n\n\n<p><code>pthread_create()<\/code> function creates a new thread, and we pass the thread ID as an argument. The <code>pthread_join()<\/code> function is used to wait for all threads to complete before proceeding. The output of the program may vary, but it will resemble:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-wrap-lines\">Thread 1: Hello, world!\nThread 2: Hello, world!\nThread 3: Hello, world!\nThread 4: Hello, world!\nThread 5: Hello, world!\nAll threads completed.<\/code><\/span><\/pre>\n\n\n<p><strong>Question:<br><\/strong>Explain the concept of a linked list in C. Provide an example of creating a linked list, inserting elements, and traversing it.<\/p>\n\n\n\n<p><strong>Answer:<br><\/strong>A linked list in C is a linear data structure where each element (node) contains a value and a pointer to the next node. It allows for efficient insertion and deletion operations, but random access is slower compared to arrays.<\/p>\n\n\n\n<p>Here&#8217;s an example of creating a linked list, inserting elements, and traversing it:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-wrap-lines\"><span class=\"hljs-comment\">#include &lt;stdio.h&gt;<\/span>\n<span class=\"hljs-comment\">#include &lt;stdlib.h&gt;<\/span>\n\nstruct Node {\n    int data;\n    struct Node* next;\n};\n\nvoid insert(struct Node** head, int data) {\n    struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));\n    newNode-&gt;data = data;\n    newNode-&gt;next = <span class=\"hljs-keyword\">NULL<\/span>;\n\n    <span class=\"hljs-keyword\">if<\/span> (*head == <span class=\"hljs-keyword\">NULL<\/span>) {\n        *head = newNode;\n    } <span class=\"hljs-keyword\">else<\/span> {\n        struct Node* temp = *head;\n        <span class=\"hljs-keyword\">while<\/span> (temp-&gt;next != <span class=\"hljs-keyword\">NULL<\/span>) {\n            temp = temp-&gt;next;\n        }\n        temp-&gt;next = newNode;\n    }\n}\n\nvoid traverse(struct Node* head) {\n    struct Node* temp = head;\n    <span class=\"hljs-keyword\">while<\/span> (temp != <span class=\"hljs-keyword\">NULL<\/span>) {\n        printf(<span class=\"hljs-string\">\"%d \"<\/span>, temp-&gt;data);\n        temp = temp-&gt;next;\n    }\n    printf(<span class=\"hljs-string\">\"n\"<\/span>);\n}\n\nint main() {\n    struct Node* head = <span class=\"hljs-keyword\">NULL<\/span>;\n\n    insert(&amp;head, <span class=\"hljs-number\">10<\/span>);\n    insert(&amp;head, <span class=\"hljs-number\">20<\/span>);\n    insert(&amp;head, <span class=\"hljs-number\">30<\/span>);\n\n    traverse(head);\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we define a structure <code>Node<\/code> representing a node in the linked list. The <code>insert()<\/code> function inserts a new node at the end of the list. If the list is empty, it assigns the new node as the head. Otherwise, it traverses to the end of the list and appends the new node. The <code>traverse()<\/code> function prints the data in each node by traversing the list. We create a linked list by inserting elements with values 10, 20, and 30. The output of the program will be:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-wrap-lines\">10 20 30<\/code><\/span><\/pre>\n\n\n<p>These questions cover various advanced topics in the C language and their applications. They aim to assess the knowledge and experience of a senior C developer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"more-c-interview-resources\">More C interview resources<\/h2>\n\n\n\n<p>For more guides on improving your knowledge of C and acing interviews, we have outlined helpful blog posts below:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/coderpad.io\/blog\/development\/an-introduction-to-linked-list-data-structures\/\">An Introduction to Linked List Data Structures<\/a><\/li>\n<\/ul>\n\n\n<section class=\"logo-row-block\">\n    <div class=\"inner\">\n                    <h2 class=\"headline\">1,000 Companies use CoderPad to Screen and Interview Developers<\/h2>\n        \n                    <div class=\"logos logos--grayscale\" >\n                                    <div>    <svg class=\"logo logo-spotify\" role=\"img\" viewBox=\"0 0 538 167\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><title>Spotify<\/title><path d=\"M83.743 0C37.494 0 0 37.493 0 83.742c0 46.251 37.494 83.741 83.743 83.741 46.254 0 83.744-37.49 83.744-83.741 0-46.246-37.49-83.738-83.745-83.738L83.743 0zm38.404 120.78a5.217 5.217 0 0 1-7.18 1.73c-19.662-12.01-44.414-14.73-73.564-8.07a5.222 5.222 0 0 1-6.249-3.93 5.213 5.213 0 0 1 3.926-6.25c31.9-7.288 59.263-4.15 81.337 9.34 2.46 1.51 3.24 4.72 1.73 7.18zm10.25-22.802c-1.89 3.072-5.91 4.042-8.98 2.152-22.51-13.836-56.823-17.843-83.448-9.761-3.453 1.043-7.1-.903-8.148-4.35a6.538 6.538 0 0 1 4.354-8.143c30.413-9.228 68.222-4.758 94.072 11.127 3.07 1.89 4.04 5.91 2.15 8.976v-.001zm.88-23.744c-26.99-16.031-71.52-17.505-97.289-9.684-4.138 1.255-8.514-1.081-9.768-5.219a7.835 7.835 0 0 1 5.221-9.771c29.581-8.98 78.756-7.245 109.83 11.202a7.823 7.823 0 0 1 2.74 10.733c-2.2 3.722-7.02 4.949-10.73 2.739h-.004zm94.56 3.072c-14.46-3.448-17.03-5.868-17.03-10.953 0-4.804 4.52-8.037 11.25-8.037 6.52 0 12.98 2.455 19.76 7.509.2.153.46.214.71.174a.933.933 0 0 0 .63-.386l7.06-9.952a.95.95 0 0 0-.18-1.288c-8.07-6.473-17.15-9.62-27.77-9.62-15.61 0-26.52 9.369-26.52 22.774 0 14.375 9.41 19.465 25.67 23.394 13.83 3.187 16.17 5.857 16.17 10.629 0 5.29-4.72 8.58-12.32 8.58-8.44 0-15.33-2.85-23.03-9.51a.98.98 0 0 0-.69-.23c-.26.02-.49.14-.65.33l-7.92 9.42c-.33.4-.29.98.09 1.32 8.96 8 19.98 12.22 31.88 12.22 16.82 0 27.69-9.19 27.69-23.42.03-12.007-7.16-18.657-24.77-22.941l-.03-.013zm62.86-14.26c-7.29 0-13.27 2.872-18.21 8.757v-6.624a.945.945 0 0 0-.94-.949h-12.95c-.52 0-.94.426-.94.949v73.601c0 .52.42.95.94.95h12.95c.52 0 .94-.43.94-.95v-23.23c4.94 5.53 10.92 8.24 18.21 8.24 13.55 0 27.27-10.43 27.27-30.369.02-19.943-13.7-30.376-27.26-30.376l-.01.001zm12.21 30.375c0 10.149-6.25 17.239-15.21 17.239-8.85 0-15.53-7.41-15.53-17.239 0-9.83 6.68-17.238 15.53-17.238 8.81-.001 15.21 7.247 15.21 17.237v.001zm50.21-30.375c-17.45 0-31.12 13.436-31.12 30.592 0 16.972 13.58 30.262 30.91 30.262 17.51 0 31.22-13.39 31.22-30.479 0-17.031-13.62-30.373-31.01-30.373v-.002zm0 47.714c-9.28 0-16.28-7.46-16.28-17.344 0-9.929 6.76-17.134 16.07-17.134 9.34 0 16.38 7.457 16.38 17.351 0 9.927-6.8 17.127-16.17 17.127zm68.27-46.53h-14.25V49.664a.944.944 0 0 0-.94-.948h-12.95c-.52 0-.95.426-.95.948V64.23h-6.22c-.52 0-.94.426-.94.949v11.127c0 .522.42.949.94.949h6.22v28.795c0 11.63 5.79 17.53 17.22 17.53 4.64 0 8.49-.96 12.12-3.02.3-.16.48-.48.48-.82v-10.6c0-.32-.17-.63-.45-.8a.918.918 0 0 0-.92-.04c-2.49 1.25-4.9 1.83-7.6 1.83-4.15 0-6.01-1.89-6.01-6.11V77.26h14.25c.52 0 .94-.426.94-.949V65.185a.918.918 0 0 0-.93-.949l-.01-.006zm49.64.057v-1.789c0-5.263 2.02-7.61 6.54-7.61 2.7 0 4.87.536 7.3 1.346.3.094.61.047.85-.132a.94.94 0 0 0 .39-.77v-10.91a.937.937 0 0 0-.67-.909c-2.56-.763-5.84-1.546-10.76-1.546-11.95 0-18.28 6.734-18.28 19.467v2.74h-6.22c-.52 0-.95.426-.95.948v11.184c0 .522.43.949.95.949h6.22v44.405c0 .53.43.95.95.95h12.94c.53 0 .95-.42.95-.95V77.258h12.09l18.52 44.402c-2.1 4.66-4.17 5.59-6.99 5.59-2.28 0-4.69-.68-7.14-2.03a1.03 1.03 0 0 0-.75-.07c-.25.09-.46.27-.56.51l-4.39 9.63c-.21.46-.03.99.41 1.23 4.58 2.48 8.71 3.54 13.82 3.54 9.56 0 14.85-4.46 19.5-16.44l22.46-58.037a.925.925 0 0 0-.1-.881.924.924 0 0 0-.77-.412h-13.48c-.41 0-.77.257-.9.636l-13.81 39.434-15.12-39.46a.944.944 0 0 0-.88-.61h-22.12v-.003zm-28.78-.057h-12.95c-.52 0-.95.426-.95.949v56.481c0 .53.43.95.95.95h12.95c.52 0 .95-.42.95-.95V65.183a.947.947 0 0 0-.95-.949v-.004zm-6.4-25.719c-5.13 0-9.29 4.152-9.29 9.281a9.289 9.289 0 0 0 9.29 9.289c5.13 0 9.28-4.157 9.28-9.289 0-5.128-4.16-9.281-9.28-9.281z\" fill=\"#1ED760\"\/><\/svg>\n\n<\/div>\n                                    <div>    <svg class=\"logo logo-linkedin\" role=\"img\" viewBox=\"0 0 882 224\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><title>LinkedIn<\/title><g fill=\"#0A66C2\"><path d=\"M0 33.083h34.482V158.69h63.84v31.822H0V33.083zM113.566 83.77h33.127v106.682h-33.127V83.77zm16.563-53.037c10.541.002 19.214 8.676 19.214 19.217 0 10.542-8.675 19.217-19.217 19.217-10.542 0-19.217-8.675-19.217-19.217 0-10.542 8.675-19.217 19.217-19.217h.003m155.137 2.326h33.127v94.083l37.544-43.42h40.615l-43.479 49.39 42.564 57.385h-41.636l-35.166-52.734h-.435v52.727h-33.127l-.007-157.43zM165.061 83.781h31.812v14.58h.452a34.841 34.841 0 0 1 31.367-17.234c33.593 0 39.776 22.102 39.776 50.815v58.503h-33.127v-51.867c0-12.38-.227-28.296-17.253-28.296-17.219 0-19.876 13.482-19.876 27.395v52.755h-33.127l-.024-106.65z\"\/><path d=\"M466.315 124.703c.003-.156.005-.313.005-.469 0-10.896-8.966-19.862-19.862-19.862-.16 0-.32.002-.482.006-11.965-.745-22.467 8.373-23.409 20.325h43.748zm28.061 47.274a58.385 58.385 0 0 1-45.3 21.226c-33.128 0-59.65-22.113-59.65-56.354 0-34.24 26.52-56.343 59.65-56.343 30.962 0 50.38 22.084 50.38 56.343v10.387h-76.889c1.97 12.124 12.685 21.038 24.965 20.77a28.298 28.298 0 0 0 23.641-13.037l23.203 17.008zm74.128-62.42c-16.563 0-26.5 11.06-26.5 27.175 0 16.115 9.933 27.184 26.5 27.184s26.526-11.042 26.526-27.184c0-16.143-9.942-27.175-26.526-27.175m57.023 80.875H595.03v-14.148h-.452a41.684 41.684 0 0 1-32.934 16.798c-31.829 0-52.796-22.972-52.796-55.457 0-29.834 18.555-57.23 49.055-57.23 13.71 0 26.516 3.751 34.028 14.148h.435V33.048h33.157l.004 157.384zm223.637.062h-33.127v-51.878c0-12.37-.22-28.296-17.229-28.296-17.254 0-19.894 13.478-19.894 27.395v52.775h-33.126V83.808h31.801v14.58h.446a34.893 34.893 0 0 1 31.377-17.233c33.575 0 39.766 22.084 39.766 50.815l-.014 58.524zM708.41 69.225h-.004c-10.546 0-19.224-8.677-19.224-19.223s8.678-19.224 19.224-19.224c10.545 0 19.222 8.676 19.224 19.22v.004c0 10.544-8.676 19.222-19.22 19.223m16.563 121.27h-33.16V83.807h33.16v106.688zM865.678.015H675.165c-8.943-.1-16.388 7.17-16.497 16.113v191.304c.105 8.948 7.55 16.228 16.497 16.132h190.513c8.97.113 16.44-7.166 16.56-16.132V16.116c-.12-8.962-7.6-16.233-16.56-16.115\"\/><\/g><\/svg>\n\n<\/div>\n                                    <div>    \n<svg class=\"logo logo-noom\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 132 30\"><title>Noom<\/title>\n<path fill=\"#191717\" d=\"M43.5215 0.160018C40.4528 0.61067 36.9072 2.55655 34.7417 4.97842C33.9555 5.85759 32.6595 7.79896 32.6595 8.09746C32.6595 8.20739 32.5948 8.29723 32.5156 8.29723C32.4365 8.29723 32.3718 8.38925 32.3718 8.50181C32.3718 8.6145 32.2492 8.95843 32.0993 9.26624C31.9494 9.5742 31.7478 10.1209 31.6513 10.4813C31.5547 10.8417 31.4224 11.2676 31.3572 11.4278C31.1207 12.0087 31.0378 12.9243 31.0339 14.9951C31.0302 17.0981 31.0813 17.4911 31.6134 19.4463C32.7703 23.6967 36.5718 27.6713 40.8794 29.1339C44.2834 30.2899 47.1621 30.2887 50.6336 29.1301C54.9639 27.6849 58.3006 24.2219 59.9742 19.4361C60.6273 17.5681 60.6235 12.5185 59.9673 10.5541C58.3883 5.82702 54.9669 2.31878 50.4566 0.80185C48.1992 0.0426589 45.8195 -0.177498 43.5215 0.160018ZM77.1865 0.143564C73.8702 0.648236 70.3893 2.55815 68.2578 5.04249C66.8931 6.63295 66.4993 7.28556 65.4584 9.68049C65.0213 10.6863 64.7855 11.8563 64.4935 14.4688C64.4197 15.1285 64.567 16.5508 64.91 18.4897C65.4505 21.5457 67.762 25.0536 70.5856 27.1026C77.4259 32.0669 86.6685 30.4643 91.5496 23.4675C92.551 22.0321 93.408 19.9698 93.7997 18.0529C93.8898 17.6124 94.0245 16.9726 94.0991 16.6312C94.1738 16.2896 94.2348 15.5534 94.2348 14.9951C94.2348 14.4369 94.1738 13.7007 94.0991 13.3591C94.0245 13.0176 93.8898 12.3778 93.7997 11.9374C93.1594 8.80365 91.8178 6.40376 89.4305 4.12168C87.7787 2.54257 86.1858 1.56483 84.0803 0.83767C81.8279 0.0596952 79.3655 -0.188127 77.1865 0.143564ZM3.19184 0.755839C1.9835 1.16601 1.00693 2.05698 0.434049 3.27177L0 4.19244L0.0366864 16.8378L0.0735165 29.483L2.4833 29.5228L4.89308 29.5627V17.8465C4.89308 11.4026 4.94861 6.09566 5.01652 6.05314C5.08428 6.01063 5.29389 6.28524 5.48207 6.66338C5.67039 7.04152 5.85756 7.38355 5.89828 7.42359C5.98978 7.51372 6.28845 8.04198 6.68063 8.80685C6.84478 9.12718 7.01153 9.42204 7.05109 9.46208C7.09065 9.50212 7.2574 9.79698 7.42155 10.1173C7.80769 10.8704 8.11154 11.409 8.20203 11.5006C8.29252 11.5922 8.59637 12.1308 8.98251 12.8838C9.14666 13.2042 9.31341 13.499 9.35297 13.5391C9.44346 13.6306 9.74731 14.1692 10.1335 14.9223C10.2976 15.2427 10.4643 15.5375 10.5039 15.5775C10.5435 15.6176 10.6629 15.8067 10.7692 15.9979C11.0669 16.533 11.4813 17.2724 11.7987 17.8344C12.4349 18.9611 12.6392 19.3211 13.039 20.0185C13.2685 20.419 13.5525 20.9431 13.6703 21.1834C13.788 21.4236 13.9169 21.653 13.9564 21.693C14.0274 21.7645 14.1251 21.9333 14.705 22.987C14.8641 23.2763 15.0429 23.5786 15.1023 23.6587C15.1616 23.7388 15.4062 24.1647 15.6457 24.6051C17.0348 27.1589 17.3303 27.6413 17.8122 28.1424C18.1043 28.4462 18.6998 28.8716 19.1352 29.0876C19.8196 29.427 20.103 29.48 21.222 29.477C22.3056 29.4742 22.6459 29.4126 23.3081 29.1003C24.527 28.5253 25.3965 27.4549 25.8835 25.9303C25.9933 25.5865 26.0416 21.6412 26.0416 13.0105V0.585625L25.7179 0.504668C25.5398 0.460112 24.4555 0.442494 23.3081 0.4655L21.222 0.507289L21.1501 12.3742L21.0782 24.2411L20.6774 23.5859C20.3009 22.9704 19.6694 21.8721 18.4176 19.6545C18.1237 19.134 17.4741 17.9873 16.9741 17.1064C16.474 16.2255 15.8916 15.1771 15.6798 14.7767C15.4682 14.3763 15.0995 13.7211 14.8607 13.3206C13.7593 11.4745 12.9497 10.0291 12.9497 9.90895C12.9497 9.83673 12.9006 9.75577 12.8406 9.72898C12.7805 9.70233 12.5107 9.25459 12.2411 8.73405C11.9714 8.2135 11.713 7.75485 11.6668 7.7148C11.6208 7.67476 11.4485 7.37991 11.2844 7.05957C10.8922 6.2947 10.5935 5.76644 10.502 5.67631C10.4613 5.63627 10.2671 5.2759 10.0704 4.87548C9.87363 4.47506 9.66401 4.12561 9.60474 4.09896C9.54546 4.07217 9.49684 3.95758 9.49684 3.84415C9.49684 3.73072 9.4321 3.63783 9.35297 3.63783C9.27384 3.63783 9.2091 3.56779 9.2091 3.48203C9.2091 3.25444 8.35208 2.0181 7.92336 1.62715C7.41565 1.16427 6.82033 0.860675 5.97208 0.631928C4.97551 0.363139 4.25402 0.395318 3.19184 0.755839ZM102.311 0.748267C101.226 1.12772 100.07 2.12061 99.6009 3.07535C99.0007 4.29713 98.9712 5.02298 99.0138 17.5432L99.0544 29.483H101.5H103.946L103.983 17.7158C104.013 8.16414 104.054 5.98456 104.203 6.14007C104.361 6.30402 109.399 15.1214 110.677 17.4704C111.345 18.698 111.852 19.4031 112.475 19.9728C114.274 21.6182 117.491 21.4321 119.083 19.5907C119.537 19.0655 121.121 16.394 123.055 12.8917C123.469 12.1427 123.774 11.6115 125.57 8.51564C126.127 7.55464 126.668 6.57835 126.771 6.3461L126.958 5.92399L127.055 6.2733C127.108 6.4655 127.158 11.7842 127.166 18.0928L127.18 29.5627L129.59 29.5228L132 29.483V16.8017V4.12037L131.521 3.15616C130.651 1.4035 129.207 0.50758 127.252 0.50758C126.307 0.50758 125.96 0.575724 125.31 0.890088C123.984 1.53119 123.454 2.15308 122.102 4.65707C121.864 5.09753 121.564 5.62171 121.435 5.82192C121.305 6.02213 121.107 6.38251 120.994 6.62276C120.881 6.86301 120.683 7.22338 120.554 7.42359C120.424 7.6238 120.122 8.14798 119.882 8.58844C119.642 9.0289 119.179 9.86439 118.853 10.4449C118.527 11.0256 118.002 11.9755 117.687 12.5562C117.371 13.1369 117.05 13.7101 116.974 13.8303C116.897 13.9504 116.571 14.5236 116.249 15.1043C115.927 15.6849 115.617 16.1598 115.559 16.1595C115.502 16.1592 115.253 15.7826 115.006 15.3223C114.759 14.862 114.29 14.0105 113.963 13.4299C113.145 11.9755 112.283 10.4471 111.623 9.28007C110.397 7.11214 109.862 6.1507 109.469 5.41C109.242 4.98323 108.94 4.45904 108.797 4.24515C108.654 4.03125 108.383 3.54376 108.195 3.16169C107.766 2.28718 106.673 1.24304 105.781 0.855725C104.737 0.401725 103.419 0.360954 102.311 0.748267ZM48.5019 5.39981C50.6543 6.10964 52.0308 7.09132 53.5563 9.00415C53.6947 9.17771 53.808 9.35812 53.808 9.40486C53.808 9.4516 53.9264 9.66389 54.0712 9.87648C54.5662 10.6035 55.0797 12.2084 55.3943 14.0123C55.5671 15.0037 55.4782 15.9771 55.0718 17.5432C54.5248 19.6504 53.9743 20.6519 52.5863 22.0656C51.3159 23.3596 50.344 23.9767 48.6639 24.5559C47.7124 24.8841 47.2979 24.9413 45.8234 24.9485C44.7911 24.9534 43.8656 24.8816 43.5215 24.7701C41.3546 24.067 39.7561 23.087 38.5769 21.7384C37.9413 21.0114 37.1083 19.5321 36.5757 18.1845C36.2307 17.311 36.0707 15.0439 36.2516 13.5894C36.4313 12.145 36.4812 11.9681 37.0771 10.666C38.41 7.75339 41.1674 5.60613 44.2408 5.08719C45.342 4.90125 47.4616 5.05676 48.5019 5.39981ZM82.2009 5.45572C83.7079 5.93986 84.8146 6.61547 85.8931 7.70971C87.3848 9.22328 87.6536 9.66506 88.6431 12.2286C88.9439 13.0082 88.9137 17.0464 88.6007 17.9072C87.912 19.8003 86.8639 21.519 85.8207 22.4659C84.9467 23.2592 83.3003 24.2044 82.1646 24.565C81.1142 24.8982 80.6769 24.9569 79.2726 24.9526C77.8771 24.9482 77.438 24.887 76.4672 24.5616C72.9195 23.3724 70.9078 21.0541 69.8337 16.9173C69.6065 16.0423 69.5676 14.0016 69.7652 13.331C70.3997 11.1776 70.7481 10.2912 71.2976 9.4315C72.7715 7.12539 75.2493 5.49562 77.9058 5.08472C79.046 4.90839 81.0305 5.07977 82.2009 5.45572Z\" clip-rule=\"evenodd\" fill-rule=\"evenodd\"><\/path>\n<\/svg>\n\n<\/div>\n                                    <div>    <svg class=\"logo logo-shopify\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 214 61\"><title>Shopify<\/title><path fill=\"#95BF47\" d=\"M52.95 56.02 36.94 60 0 53.61s4.408-34.083 4.571-35.283c.22-1.59.273-1.64 1.958-2.17l5.723-1.772c.356-2.552 1.612-5.848 3.264-8.472 2.347-3.728 5.242-5.827 8.148-5.91 1.506-.045 2.764.465 3.744 1.515a5 5 0 0 1 .203.234c.157-.013.311-.028.467-.028h.009c2.25.004 4.114 1.287 5.384 3.714.35.675.638 1.382.86 2.11 1.124-.348 1.791-.554 1.794-.556.268-.08.957-.186 1.31.167.353.352 3.925 3.822 3.925 3.822s4.272.065 4.49.083a.58.58 0 0 1 .526.489c.041.303 6.574 44.467 6.574 44.467zM28.732 3.72c.686 1.769.86 3.817.882 5.288l2.866-.887c-.458-1.488-1.543-3.983-3.748-4.401zm-1.051 5.888c.02-1.607-.155-3.982-.958-5.66-.856.353-1.579.97-2.095 1.525-1.388 1.489-2.518 3.762-3.114 6.044l6.167-1.91zm-13.36 4.134 5.066-1.568c.564-2.966 1.979-6.041 3.825-8.021.712-.764 1.471-1.35 2.257-1.758-.491-.323-1.065-.473-1.748-.458-4.486.13-8.4 7.136-9.4 11.805zm9.01 4.958c-8.132.512-11.817 6.199-11.462 11.81.421 6.668 7.086 6.429 7.342 10.487.062.98-.547 2.367-2.253 2.475-2.61.165-5.87-2.295-5.87-2.295L9.841 46.48s3.239 3.47 9.124 3.1c4.902-.31 8.304-4.232 7.943-9.965-.46-7.288-8.644-7.967-8.84-11.078-.037-.571.001-2.844 3.607-3.072 2.458-.155 4.532.788 4.532.788l1.86-6.956s-1.603-.8-4.736-.597z\"\/><path fill=\"#5E8E3E\" d=\"M45.851 11.066c-.218-.02-4.489-.084-4.489-.084s-3.572-3.47-3.925-3.821a.87.87 0 0 0-.496-.228l.002 53.065L52.95 56.02s-6.532-44.162-6.574-44.465a.581.581 0 0 0-.526-.49h.001z\"\/><path d=\"M74.032 33.864c-1.84-1-2.787-1.841-2.787-3 0-1.471 1.314-2.417 3.367-2.417 2.389 0 4.522.998 4.522.998l1.682-5.154s-1.547-1.21-6.1-1.21c-6.337 0-10.729 3.629-10.729 8.73 0 2.893 2.05 5.102 4.787 6.679 2.209 1.26 2.998 2.156 2.998 3.47 0 1.367-1.105 2.472-3.155 2.472-3.056 0-5.942-1.58-5.942-1.58l-1.788 5.156s2.666 1.788 7.152 1.788c6.522 0 11.202-3.208 11.202-8.993-.001-3.1-2.367-5.31-5.209-6.94zm25.981-10.834c-3.208 0-5.733 1.525-7.678 3.838l-.105-.053 2.787-14.567h-7.258l-7.047 37.076h7.258l2.42-12.674c.946-4.787 3.418-7.73 5.732-7.73 1.63 0 2.262 1.104 2.262 2.682 0 1-.105 2.21-.315 3.208l-2.734 14.515h7.258l2.839-14.99c.316-1.577.527-3.47.527-4.732-.003-4.103-2.159-6.574-5.945-6.574h-.001zm22.35 0c-8.731 0-14.514 7.888-14.514 16.67 0 5.627 3.47 10.149 9.992 10.149 8.572 0 14.357-7.677 14.357-16.67 0-5.206-3.051-10.15-9.835-10.15zm-3.576 21.247c-2.472 0-3.524-2.104-3.524-4.734 0-4.154 2.157-10.938 6.101-10.938 2.577 0 3.417 2.21 3.417 4.366 0 4.469-2.154 11.306-5.994 11.306zm31.975-21.247c-4.899 0-7.679 4.312-7.679 4.312h-.104l.421-3.891h-6.416c-.315 2.63-.895 6.625-1.472 9.623l-5.049 26.557h7.258l1.997-10.728h.159s1.489.946 4.26.946c8.519 0 14.093-8.73 14.093-17.565 0-4.89-2.157-9.254-7.468-9.254zm-6.942 21.35c-1.884 0-2.999-1.051-2.999-1.051l1.21-6.784c.842-4.522 3.208-7.52 5.733-7.52 2.209 0 2.892 2.05 2.892 3.997 0 4.68-2.787 11.359-6.836 11.359v-.001zm24.77-31.763c-2.313 0-4.154 1.84-4.154 4.206 0 2.157 1.367 3.63 3.418 3.63h.105c2.262 0 4.207-1.526 4.26-4.207 0-2.104-1.42-3.63-3.629-3.63zm-10.149 36.707h7.256l4.945-25.715h-7.311l-4.89 25.715zm30.66-25.768h-5.049l.262-1.21c.421-2.471 1.894-4.68 4.313-4.68a7.505 7.505 0 0 1 2.313.368l1.42-5.68s-1.262-.63-3.945-.63c-2.577 0-5.152.736-7.099 2.418-2.472 2.104-3.629 5.153-4.207 8.204l-.209 1.21h-3.367l-1.052 5.47h3.367l-3.839 20.3h7.258l3.839-20.3h4.996l.999-5.47zm17.459.054s-4.537 11.43-6.574 17.669h-.106c-.138-2.01-1.788-17.67-1.788-17.67h-7.626l4.367 23.61c.106.527.053.844-.158 1.21-.843 1.63-2.262 3.21-3.945 4.367-1.367.999-2.892 1.63-4.101 2.05L188.627 61c1.473-.315 4.522-1.526 7.099-3.944 3.314-3.103 6.363-7.89 9.518-14.41l8.888-19.038h-7.572v.002z\"\/><\/svg>\n\n<\/div>\n                                    <div>    <svg class=\"logo logo-lyft\" role=\"img\" viewbox=\"0 0 199 141\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><title>Lyft<\/title><path d=\"M.746 3.343h30.06v80.674c0 12.767 5.84 20.372 10.458 23.632-4.889 4.346-19.829 8.149-30.966-1.087C3.732 101.118.746 92.166.746 83.745V3.343zm187.863 67.014v-8.478h9.168V32.136h-10.068C183.844 14.279 167.946.898 148.933.898c-21.903 0-39.658 17.756-39.658 39.658v69.459c6.24.877 13.674-.109 19.999-5.354 6.565-5.445 9.551-14.396 9.551-22.817v-2.559h15.013V49.542h-15.013v-8.986h.036c0-5.562 4.509-10.071 10.072-10.071 5.562 0 10.089 4.509 10.089 10.071v29.801c0 21.902 17.774 39.658 39.676 39.658V80.428c-5.562 0-10.089-4.509-10.089-10.071zM74.761 32.136v43.651c0 2.478-2.056 4.487-4.593 4.487s-4.593-2.009-4.593-4.487V32.136H35.831v51.338c0 9.235 3.132 20.915 17.385 24.718 14.268 3.807 22.545-4.074 22.545-4.074-.754 5.192-5.644 8.995-13.521 9.81-5.96.616-13.582-1.358-17.384-2.988v27.199c9.688 2.857 19.935 3.78 29.963 1.834 18.199-3.531 29.685-18.742 29.685-38.979V32.136H74.761z\" fill=\"#EA0B8C\" fill-rule=\"evenodd\"\/><\/svg>\n\n<\/div>\n                                    <div>    <svg class=\"logo logo-chartboost\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 206 31\"><title>Chart boost<\/title><g fill=\"currentColor\" clip-path=\"url(#chartboost-a)\"><path d=\"M44.577 18.523c0-7.131 4.357-11.975 11.108-11.975 5.153 0 8.912 3.027 9.777 7.905h-3.06c-.898-3.263-3.36-5.215-6.851-5.215-4.89 0-8.016 3.836-8.016 9.285 0 5.448 2.993 9.284 7.882 9.284 3.593 0 6.087-1.918 6.95-5.215h3.061c-.865 4.878-4.724 7.905-9.977 7.905-6.683.003-10.874-4.775-10.874-11.974m38.345 2.22v9.553h-2.728v-9.383c0-3.566-1.697-5.449-4.624-5.449-3.16 0-5.123 2.08-5.123 6.258v8.58H67.72V6.547h2.727v9.918c.795-2.171 2.728-3.528 5.587-3.528 3.793 0 6.885 2.12 6.885 7.805zm18.795 7.033v2.522h-1.498c-2.26 0-1.973-1.56-2.007-3.242-.837 2.14-3.812 3.444-6.74 3.444-3.724 0-6.252-1.884-6.252-5.011 0-3.43 2.36-5.348 6.82-5.348h4.988v-1.178c0-2.22-1.564-3.565-4.223-3.565-2.395 0-3.992 1.143-4.325 2.894h-2.728c.399-3.364 3.092-5.348 7.184-5.348 4.322 0 6.82 2.186 6.82 6.189v7.502c0 .907.332 1.143 1.096 1.143h.865zm-4.69-5.317h-5.256c-2.428 0-3.792.907-3.792 2.86 0 1.682 1.43 2.825 3.693 2.825 3.391 0 5.356-1.984 5.356-4.844zm15.607-9.319v2.69h-1.364c-3.559 0-4.889 2.995-4.889 5.72v8.745h-2.36V13.14h2.36v3.384c.84-2.532 2.46-3.384 5.487-3.384zm1.996 2.526V6.548h2.728v6.592h4.39v2.523h-4.39v10.125c0 1.446.498 1.985 1.961 1.985h2.694v2.523h-2.961c-3.26 0-4.425-1.446-4.425-4.476V15.666zm26.535 6.054c0 5.246-3.46 8.78-8.149 8.78-2.862 0-4.545-.919-6.188-3.312v3.11h-2.36V6.548h2.36v9.35c1.287-2.197 3.326-2.96 6.188-2.96 4.689 0 8.149 3.197 8.149 8.781m-2.794 0c0-3.736-2.26-6.325-5.62-6.325-3.36 0-5.587 2.589-5.587 6.258s2.261 6.39 5.587 6.39c3.325 0 5.62-2.588 5.62-6.324m4.676.002c0-5.216 3.459-8.782 8.413-8.782 4.955 0 8.414 3.566 8.414 8.781 0 5.216-3.459 8.781-8.414 8.781-4.954 0-8.413-3.565-8.413-8.78m14.035 0c0-3.667-2.261-6.325-5.622-6.325-3.359 0-5.62 2.658-5.62 6.324s2.261 6.324 5.62 6.324c3.361 0 5.622-2.658 5.622-6.324m4.73.001c0-5.216 3.458-8.782 8.413-8.782s8.414 3.566 8.414 8.781c0 5.216-3.459 8.781-8.414 8.781s-8.413-3.565-8.413-8.78m14.033 0c0-3.667-2.261-6.325-5.62-6.325-3.36 0-5.621 2.658-5.621 6.324s2.261 6.324 5.621 6.324c3.359 0 5.62-2.658 5.62-6.324m8.059 2.926c.099 2.019 1.861 3.5 4.688 3.5 2.395 0 4.092-1.043 4.092-2.624 0-2.155-1.862-2.322-4.391-2.624-3.792-.47-6.818-1.244-6.818-4.81 0-3.127 2.827-5.18 6.65-5.146 3.858.035 6.653 1.85 6.92 5.417h-2.793c-.2-1.748-1.797-3.061-4.124-3.061-2.326 0-3.957 1.008-3.957 2.589 0 1.883 1.796 2.12 4.256 2.422 3.859.472 6.951 1.212 6.951 5.011 0 3.197-3.026 5.181-6.786 5.181-4.39 0-7.417-2.085-7.483-5.852h2.795zm13.871-11.505V6.548h2.728v6.592h4.391v2.523h-4.391v10.125c0 1.446.499 1.985 1.962 1.985h2.693v2.523h-2.96c-3.261 0-4.426-1.446-4.426-4.476V13.14zM25.768 6.312C18.487 17.666 9.235 26.045.157 28.844c0 0 13.61-9.035 18.515-24.655L24.299.5z\"\/><path d=\"M24.732 13.33C17.359 21.83 9.102 27.94.96 30.45h31.955c1.554-4.257 2.403-8.513 2.544-12.772.195-5.838-6.928-8.735-10.73-4.35z\"\/><\/g><defs><clipPath id=\"chartboost-a\"><path fill=\"currentColor\" d=\"M.158.5h205v30h-205z\"\/><\/clipPath><\/defs><\/svg>\n\n<\/div>\n                            <\/div>\n            <\/div>\n<\/section>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/03\/g2-leader-winter-2023.png\" alt=\"\" class=\"wp-image-32119\"\/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/d2h1bfu6zrdxog.cloudfront.net\/wp-content\/uploads\/2023\/03\/g2-users-love-us.png\" alt=\"\" class=\"wp-image-32120\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"best-interview-practices-for-c-roles\">Best interview practices for C roles<\/h2>\n\n\n\n<p>To carry out successful C interviews, it is vital to consider various factors such as the candidate&#8217;s background and the specific engineering role. To ensure a fruitful interview experience, we recommend adopting the following best practices:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Develop technical questions that reflect real-world business scenarios within your organization. This approach will effectively engage the candidate and assist in evaluating their compatibility with your team.<\/li>\n\n\n\n<li>Cultivate a cooperative environment by encouraging candidates to ask questions throughout the interview.<\/li>\n\n\n\n<li>As C is a low-level programming language, make sure your candidates have a grasp of low-level programming concepts like registers, memory addressing, and bitwise operations.<\/li>\n<\/ul>\n\n\n\n<p>Moreover, adhering to established interview procedures is essential when conducting C interviews. This encompasses adjusting the complexity of the questions to match the candidates&#8217; skills, promptly informing them about the status of their application, and providing them with the opportunity to ask about the evaluation process and collaboration with you and your team.<\/p>\n","protected":false},"parent":0,"menu_order":0,"template":"","class_list":["post-33048","interview-questions","type-interview-questions","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/interview-questions\/33048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/interview-questions"}],"about":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/types\/interview-questions"}],"wp:attachment":[{"href":"https:\/\/coderpad.io\/wp-json\/wp\/v2\/media?parent=33048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}