Department of Computer Science

University of Illinois at Urbana-Champaign

Computer Science 101: Mid Term Exam II (60 minutes)

 


Name:                                                                         NetID:
 

Lab Section:                                                                Date: November 4, 2010

 


No questions will be answered during this examination.  If you do not understand a question, read it again.  If you still do not understand it, make reasonable assumptions and write them down. (Points will be deducted if unreasonable assumptions are made.)

DO NOT CHEAT: Cheating includes not only copying from another person but also allowing someone to copy from you.  Anyone who copies or allows someone to copy will receive a score of zero.  So be defensive and protect your work.

This examination contains 12 pages including this page. Check that your copy is complete, and ask for a replacement if it is not. Do all your work on these pages. For your own protection, in case pages come apart, write your NetID at the TOP of each page before beginning work.



Do not forget to sign the attendance list. If your exam is misplaced and you did not sign the attendance list then you will receive a zero score for the exam.

You may not use any electronic devices, book, notes or other references during this examination.

DO NOT WRITE IN THIS SPACE

Section

Possible Score

Deduction

Grader

1

6

 

 

2

7

 

 

3

6

 

 

4

5

 

 

5

8

 

 

6

5

 

 

7

10

 

 

8

6

 

 

9

6

 

 

10

6

 

 

11

5

 

 

12

6

 

 

13

6

 

 

14

10

 

 

15

8

 

 

16

10

 

 

17

9

 

 

18

6

 

 

Total

125

 

 

 

 

Exam Scoreà

 

A

 

1.      Write a single Unix command to list all the files in your current directory which begin with the letters pc .



_____________________________________________________________________


 

2.      Write a single Unix command to copy the file named config located in the directory  
      ~cs101ta/lab8 , into your current directory, keeping the name of the file the same.

 

 

_____________________________________________________________________

 

 

 

 

 

3.      Assume that a file lab4.c is located in your current directory. Write a single Unix command that renames the file lab4.c   as   lab4.c.bak  .

 

 

   _____________________________________________________________________

 




4.      The following C program compiles and runs without errors. Write the output produced by the program.

 

 

#include <stdio.h>

 

void main(void)

{

     int a = 12;

     int b = 10;

     int c = 5;

 

if (c > b)

          printf("too large! ");

     if (c < a)

          printf("too low! ");

     else

          printf("greater than a! ");

}

 

 

_____________________________________________________________

 

5.      Write the correct results of evaluating the following C language expressions:

 

 

a)      5 / 2                 =   _____________________

 

b)      113 % 2               =   _____________________

 

c)      3 % 9                 =   _____________________

 

d)      13 / 5 + 7 * 4        =   _____________________

 

 

 

 

 

 

 

6.      Circle the correct way to print out the value of the integer variable named B by calling the  printf  function. There is only one correct answer.

 

 

a)  printf(B);

 

b)  printf("%i",&B);

 

c)  printf("%i",b);

 

d)  printf("%i",B);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.      Consider the following C program:

 

#include <stdio.h>

 

void main(void)

{

     int x;

     scanf("%i", &x);

     switch (x)

{

          case 0:

              printf("Too small!\n");

              break;

          case 1:
          case 2:

              printf("Just right!\n");

              break;

          default:

              printf("Too large!\n");

     }

    

}

 

Fill in the blanks below to re-implement the program using if statements. You may assume that the user enters only non-negative integers. After you enter your code below the program should be equivalent to the program above.


#include <stdio.h>

 

void main(void)

{

     int x;

     scanf("%i", &x);

 

     if (__________________________________________)

printf("Too small!\n");

     else if (__________________________________________)


              printf("Just right!\n");

     else

 

 

          __________________________________________

}



 

 

8.       The function find_min returns the minimum value of three variables x, y and z. Choose the answer choice that has the four correct expressions to fill in the four blanks below so that find_min works correctly.

int find_min(int x, int y, int z)
{

    int min = x;  

if (x <= y)
if(x <= z)
       min = _(I)__ ;
else
       min = _(II)__ ;

else
if(y <= z)
  min = _(III)_ ;
else
  min = _(IV)__ ;

return min;

}



a) I) z , II) x , III) z , IV) y

 

b) I) x , II) z , III) y , IV) z

 

c) I) z , II) x , III) y , IV) z

 

d) I) z , II) x , III) z , IV) y

 

 

 

 

 

 

 

 

9.      The following C program compiles and runs without errors. Write the output produced by this
 program.

#include <stdio.h>

void main(void)
{
   int a = 0;
   int b = 1;
   int c = 2;
   int d = 3;

   if ( (b <= 2) && ((c < 1) || (d >= 4)) ) 
      printf("A ");
 
   else if ( (c != 5) && ((d - a) < 1) )  
           printf("B ");
        else
           printf("C ");


   if ( !(d > 2));          
         printf("D ");


   if (a++)
       printf("E ");
   else
       printf("F ");

   printf("\n");
}

 



_____________________________________________________________

 

 



 

 

 

 

 

 

 

 

 

 

 

10.  The following C program compiles and runs without errors. Write the output produced by the program.

 

 

#include <stdio.h>

 

void main(void)

{

int x,y,z;

x = -1;

 

if (x > 0)

printf("positive! ");

 

y = 0;

 

if (y = 1)

printf("equal! ");

else

printf("not equal! ");

 

z = 3;

 

switch(z)

{

case 1:  printf("one ");

 

case 2:  printf("two ");

 

case 3:  printf("three ");

 

default: printf("not valid!");

 

}

 

printf("\n");

}

 

 

 

_____________________________________________________________

 

 

 

 

 

 

 

 

 

 

 

11.  Circle the correct C language code for a function that has one input parameter, an array of data type int and the function returns the second element of this array. There is only one correct answer.

 

a)       foo(int a[])

   {  

    return a[2];

   }

 

b)      int foo(int a[])

   {

     return a[1];

   }  

c)       int foo(int a[])

 {

   return a[2];

 }

 

d)       int foo(int [100])

 {

    return a[1];

 }

 

 

 

 

 

12.   The following C program compiles and runs without errors. Write the output produced by the
 program.

 

   #include <stdio.h>

 

   int add(int x, int y)

   {

     int z = 10;

     return x + y + z;

   }

 

   void main(void) 

   {

     int x = 100, y = 10, z = 1;

     printf("%i %i %i\n", add(5,5), x+y, z);

   }

 

 

    ____________________ ____________________ ____________________

 

 

 

 

13.   The following C program compiles and runs without errors. Write the output produced by the  
 program.

 

  #include <stdio.h>

 

  int fun(int x)

  {

if(x += 1)

return x;

else

return 100;

  }

 

  void main(void)

  {

printf("%i ", fun(-1));

printf("%i ", fun(0));

printf("%i ", fun(1));

  }

 

 

 

    ____________________ ____________________ ____________________

 

 

 

14.  The following C program compiles and runs without errors. Write the output produced by the program.

 

#include <stdio.h>

 

void main(void)

{

int Array[3], Xarray[] = {1, 2, 3, 4};

 

int i;

 

for(i=0 ; i<3 ; i++)

{

Array[i] = i;

printf("%i ", Array[i]);

}

 

for(i=0 ; i<3 ; i++)

printf("%i ", Xarray[++i]);

   }

 

 

_____________________________________________________________

 

 

 

15.   The following C program compiles and runs without errors. Write the output produced by the    

 program.

 

  #include <stdio.h>

  #include <string.h>

 

  void main(void)

  {

     int i;

     char course[12] = {'C','S','1','0','1'};

     char college[] = "Engr";

 

for (i=5;i<12;i++)

          course[i]='A';

     course[i-6]='\0';

     printf("%s\n", course);

     if(strcmp(college, "Engr") == 0)

         printf("%s \n", "yes");

     else

         printf("%s \n", "no");

   }

 

 

_____________________________________________________________

 

 

 

_____________________________________________________________

 

 

 

16.  Fill in the blanks to complete the following program so that it reads characters one at a time and then prints  "Good" when 'g' is input, and stops when 's' is input:

 

#include <stdio.h>

void  main(void)

{

char c;

do

{

          scanf(________________, __________________);

 

          if (______________________________________)

              printf("Good\n");

 

} while (_______________________________);

}

17.  Complete the code for the program by filling in the blanks below. This program finds and locates the maximum element in a two-dimensional array. The outputs should include the value of the maximum element, and the location of this element in the array (row and column). As an example, if

   Array[3][4]={{1,2,3,4},{2,3,4,5},{6,4,3,2}}

   then the output should be:

     

         max = 6,  at row 2, column 0    

 

However, your code should work correctly for any integer values assigned to the array named Array.

 

   #include <stdio.h>

 

   void main(void)

   {

int Array[3][4]={{1,2,3,4},{2,3,4,5},{6,4,3,2}};

     int i, j;

     int maximum, row, col;

     maximum = Array[0][0];

     for (i=0;i<3;i++)

          for (j=0;j<4;j++)

              if(maximum < Array[i][j])

               {

                   ______________________________________________

 

                   ______________________________________________

 

                   ______________________________________________

               }

 

  printf("max = %i, at row %i, column %i\n",maximum, row, col);

     }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18.  The following C program compiles and runs without errors. Write the output produced by the program.

 

  #include <stdio.h>

 

  void main(void)

 

  {

 

     int i,j;

 

 

     for(i = 1; i < 3; i = i + 1)

 

     {

 

          for(j = i; j <= 3; j = j + 2)

 

          {

 

                 printf("(%i,%i) ", i,j);

 

          }

 

     }

 

  }

 

 

 

 

            (__________ , __________)  (__________ , __________) (__________ , __________)