0% found this document useful (0 votes)
130 views

FSOFT Student Test C.C++

The document contains 30 multiple choice questions about C/C++ programming concepts such as data types, operators, control flow, functions, pointers, and arrays. It tests knowledge of language syntax, semantics, and common programming errors. The time allotted for the test is 30 minutes.

Uploaded by

tuyen
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views

FSOFT Student Test C.C++

The document contains 30 multiple choice questions about C/C++ programming concepts such as data types, operators, control flow, functions, pointers, and arrays. It tests knowledge of language syntax, semantics, and common programming errors. The time allotted for the test is 30 minutes.

Uploaded by

tuyen
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

C/C++ TEST

Time allowed: 30 minutes

NAME:

DATE:

1
Question # 1
In C++, what gets printed?

void print(int x = 1, int y = 2 , int z = 3)


{
cout << x << y << z;
}
int main()
{
print(), print(4), print(5, 6) , print(7, 8, 9);
return( EXIT_SUCCESS);
}

A. 123
B. 456789
C. 123456789
D. It won't compile.
E. 123423563789

Question # 2
Predict the output from:

if (5 < 4)
if (6 > 5)
putchar('1');
else if (4 > 3)
putchar('2');
else
putchar('3');
putchar('4');

A. 4
B. 2
C. 24
D. 4 or 24, depending upon the implementation
E. Nothing is printed.
2
Question # 3
In C which statement is true concerning a mojor problem with the following?

long double fx(void)


{
double answer = sum(1.1, 2.2 , 3.3);
return printf("answer = %f", answer);
}
double sum(double a, double b, double c)
{
return(a + b + c);
}

A. The name sum conficts with a standard ANSI math function.


B. The return statement in fx return type double.
C. Return statements may not contain an algebraic expression (a + b + c).
D. There is nothing wrong with the program.
E. The call to sum assumes that sum returns type int.

Question # 4
In C++, what gets printed?

void print(int x = 1, int y = 2 , int z = 3) { cout << x << y << z; }


void print(long x, int y = 5 , int z = 6) { cout << x << y << z; }
int main()
{
print(4), print(4L)
return( EXIT_SUCCESS);
}

A. 44L
B. 423423
C. 423456
D. Output is implementation dependent.
E. It won't compile because the print function definition are ambigous.
3
Question # 5
If a prototype for fx (below) is present, predict the output from:

printf("%d", *fx)
int *fx(void)
{
int x = 5;
return(&x);
}
A. 5
B. garbage
C. the address of the variable x
D. A compile error occurs
E. none of the above or implementation dependent.

Question # 6
What is the main problem with the following:

int ip[]= {6,7,2,4,-5};


for (int i=0; i<5; ++I; ++ip)
cout << *ip;

A. Nothing is wrong
B. An unitialized pointer is being dereferenced
C. An attempt is being made to modify the name of an array, a constant
D. It contains a magic number, which is illegal in some compilers

Question # 7
What will be the result when you attempt to compile and execute this program?

#include <stdio.h>
void main()
{
printf("%d", 2["abcd");
}
A. Compile time error
B. garbage
C. 99
D. 2
E. none of the above
4
Question # 8
What will happen when you attempt to compile and run the following code:

#include <stdio.h>
#define MAX 20;
void main()
{
int a[MAX] = {1,2};
printf("%d", a[1]);
}
A. 1
B. 2
C. 0
D. It won't compile
E. none of the above

Question # 9
What will happen when you attempt to compile and run the following code:

#include <stdio.h>
void swap(int *p1, int *p2)
{
*p1 ^= *p2;
*p2^= *p1;
*p1^= *p2;
}

void main()
{
int a = 5, b = 6, c = 7;
swap(&a, &b);
swap(&c, &c);
printf("%d, %d, %d", a, b, c);
}
A. 5,6,7
B. 6,5,7
C. 5,6,0
D. 6,5,0
E. none of the above

5
Question # 10
What will happen when you attempt to compile and run the following code:

#include <stdio.h>
int sum(int **a, int m, int m)
{
int I, j, s = 0;
for (i = 0, I < m; i++)
for (j = 0; j < n; j ++)
s+=a[i][j];
return s;
}
void main()
{
int a[2][2] = {{1,2}, {3,4}};
int m = 2, n =3;
printf("%d", sum(a,m,n));
}

A. 10 is printed out
B. 0 is printed out
C. nothing is printed out
D. It won't compile
E. none of the above

Question # 11
How to declare an array of 3 pointers to functions to functions returning int
A. int**a(3);
B. int(*a)(3);
C. int(*a[3])();
D. int(*a)[3];
E. none of the above

6
Question # 12

What will happen when you attempt to compile and run the following code:

#include <stdio.h>
void print()
{
#ifdef _D
printf("Debug");
#elsse
printf("Release");
#endif
}
#define _D
void main()
{
print();
}

A. Debug is printed out


B. Release is printed out
C. nothing is printed out
D. It won't compile
E. none of the above

Question # 13

Declare a multi dimensioned array of ploats called balances having three rows and five columns:

A. folat balances[3][5]
B. balances[3][5] of float
C. float balances [5][3]
D. array of float balances [0….2][0…5]
E. float balances [3,5]

7
Question # 14
Assuming a 16 bit int 2's complement implementation, presict the value of: -17 >> 1
A. -9 or 0x7FF7
B. -8
C. 17
D. 8
E. other implementation dependent values

Question # 15
If an int is 16 bits and a char is 8 bits, the values is sch and uch after signed char sch = 256; and unsigned char uch = 256;
are:
A. sch is 256 and uch is 256
B. sch is implementation defined and uch is 256
C. sch is implementation defined and uch is 0
D. sch is 0 anf uch is 0
E. the results of both are undefined

Question # 16
On a machine using 1's complement negative integaers and 16 bit ints, what is the bit pattern for -2?
A. 1111 1111 1111 1111
B. 1111 1111 1111 1110
C. 1111 1111 1111 1101
D. 1000 0000 0000 0010
E. implementation dependent

Question # 17
For typedef struct {char x; int y;} FOO;FOO bar; which of the following may be false?
A. sizeof(FOO) == sizeof(bar)
B. sizeof(FOO) == sizeof(x) + sizeof(y)
C. &bar is numerically equal to &bar.x
D. (char*)&bar + offsetof(FOO,y) == (char*)&y
E. they can all be false, depending upon implemention

8
Question # 18
What is wrong with the following string initialization? Char s[] = {'H', 'E', 'L', 'L', 'O', NULL};
A. Nothing is wrong
B. The syntax is incorrect
C. A character array can't hold a string
D. NULL may be of the wrong type and its value is not necessarily even equal to 0.
E. Strings can't be initialized

Question # 19
Assuming #define sum(a, b) a + b predict the value of: 5 * sum( 3 + 1, 2)
A. 30
B. 18
C. 22
D. none of the above
E. implementation dependent.

Question # 20
What is the main problem with the following: int *ip; for ( *ip = 0; *ip < 5; *ip++) ;
A. Nothing is wrong.
B. It dereferences an uninitialized pointer.
C. It does nothing useful.
D. Int contains a magic number.
E. It contains implementation dependent problem(s).

Question # 21
In C with no prototype , what data types get passed to fcn by the call: fcn((char)23, (short)34, 87, 6.8f)
A. char, short, int, float
B. char, short, long, float
C. int, int, int, float
D. int, int, int, double
E. none of the above or implementation dependent.

9
Question # 22
Predict what gets printed by: cout << (12 < 5 ? "Hello " : "World")
A. Hello
B. Hello World
C. World
D. World Hello
E. Output is undefined or implementation dependent.

Question # 23
Predict final value of i: for ( int i = 0; i < 5 ; i++) break;
A. 0
B. 1
C. 2
D. 3
E. none of the above.

Question # 24
Predict what gets printed by: printf("Goodbye") && printf("Cruel") || printf("World")
A. Goodbye
B. Goodbye Cruel
C. Goodbye Cruel World
D. Goodbye World
E. Output is implementation dependent.

Question # 25
Predict what gets printed: const int I; for (int = 0; i < 5; ++i) cout << i << ' ' ;
A. 0 1 2 3 4
B. 0 1 2 3 4 5
C. 1 2 3 4 5
D. It won't compile
E. Output is implementation dependent.

Question # 26
The values of -5/4 and -5%4, respectively, are:
A. implemntation dependent: -5/4 == -1 and -5%4 == -1 or -5/4 == -2 and -5%4 == 3
B. -1 and -1
C. -2 and 3
D. -1 and -2
E. none of the above.

10
Question # 27
Predict the output from cout << oct << 15 << dec << 15 << hex << 15:
A. oct 15 dec 15 hex 15
B. 017 15 0xf
C. 17 15 f
D. 1715f
E. Output is implementation dependent.

Question # 28
Assuming a 1G bit type int and a 32 bit type long, the data types of 32767, -32678,32768 and 2. are:
A. int, int , long ,float
B. int, long, long, float
C. int, long, long, double,
D. implementation dependent
E. none of the above.

Question # 29
The value of sizeof('A') is always:
A. The same as the value of sizeof(char)
B. The same as sizeof(int) in C and the same as sizeof(char) in C++
C. 65 if the ASCII character set is used.
D. Dependent upon the character set being used.
E. None of the above.

Question # 30
In C, if variables x,y and z are properly declared, what is syntactically wrong with: z = y//* division*/ x;

A. Nothing is wrong.
B. Everything after the // is a comment so the statement is incomplete.
C. It is not portable
D. A comment may not serve as whitespace.
E. The value of y may be too large.

~ The end ~

11

You might also like