С++ Тест 1


Проверете своите познания по C++.


Професиональные тесты - C++ - Оценка уровня
1. Какое из следующих утверждений верно для этого кода?
#include<stdio.h>
int main()
{

int
x = 10, y = 100%90, i;
for
(i=1; i<10; i++)
if
(x != y);
printf("x = %d y = %d\n", x, y);
return
0;
}

1 : Функиция printf() будет выполнена 10 раз.
2 : Выход программы будет x = 10 y = 10
3 : ; след if(x!=y) не приведет к ошибке.
4 : Программа не будет иметь никакого выхода.






2. К чему приведет программа ниже?
#include<stdio.h>
int main()
{

int
k, num=30;
k = (num>5 ? (num <=10 ? 100 : 200): 500);
printf('%d\n', num);
return
0;
}






3. Какая ошибка в следующей программе:
#include<stdio.h>
int main()
{

struct
emp
{

char
name[20];
float
sal;
};

struct
emp e[10];
int
i;
for
(i=0; i<=9; i++)
scanf('%s %f', e[i].name, &e[i].sal);
return
0;
}






4. Команда, которая используется для передачи управления из функции к вызывающей функции, является:





5. Какое из следующих утверждений верно для функции?
long fun(int num)
{

int
i;
long
f=1;
for
(i=1; i<=num; i++)
f = f * i;
return
f;
}






6. Какое из следующих утверждений верно для этой программы?
#include<stdio.h>

int
main()
{

float
a=3.14;
char
*j;
j = (char*)&a;
printf("%d\n", *j);
return
0;
}






7. Будет ли следующая программа компилироваться в Turbo C?
#include<stdio.h>
int main()
{

int
a=10, *j;
void
*k;
j=k=&a;
j++;
k++;
printf("%u %u\n", j, k);
return
0;
}




8. Какие из следующих утверждений верно для типа массива(array)?

Масив int num[26]; может сохранить 26 элементов.
2 : num[1] обозначается первый элемент в массиве.
3 : Нужно инициализировать массив во время декларации.
4 : Декларация num[SIZE] позволена, если SIZE макрос.






9. Стандартная функция, которая используется, чтобы найти последние соответствия символа в строке, это:





10. Если размер char=1, int=4 и float=4 байтов, каким будет результат следующей программы?
#include<stdio.h>

int
main()
{

char
ch = 'A';
printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f));
return
0;
}






11. К чему приведет программа ниже?
#include<stdio.h>

int
main()
{

char
str[] = "London";
str[1]='i';
printf("%s, ", str);
str = "Bristol"%s", str+1);
return
0;
}






12. К чему приведет программа ниже?
#include<stdio.h>

int
main()
{

int
i=4, j=8;
printf("%d, %d, %d\n", i|j&j|i, i|j&j|i, i^j);
return
0;
}






13. Битовые поля могут использоваться в union



14. Какое из следующих утверждений верно для следующей программы?
#include<stdio.h>

int
main()
{

FILE *fp;
char
ch;
int
i=1;
fp = fopen("myfile.c", "r");
while
((ch=getc(fp))!=EOF)
{

if
(ch == '\n')
i++;
}

fclose(fp);
return
0;
}






15. Первый аргумент в командной строке всегда должен показывать общее количество аргументов.



16. Каким будет результат программы?

#include<stdio.h>

int
main()
{

char
c=48;
int
i, mask=01;
for
(i=1; i<=5; i++)
{

printf("%c", c|mask);
mask = mask<<1;
}

return
0;
}






17. Каким будет результат программы?
typedef struct data;
{

int
x;
sdata *b;
}
sdata;






18. Какой header файла нужно включить, если будете использовать функцию, которая может принимать разное количество аргументов?





19. Найдите ошибку в программе:
#include <stdio.h>
#include <stdarg.h>
void varfun(int n, ...);

int
main()
{

varfun(3, 7, -11.2, 0.66);
return
0;
}

void
varfun(int n, ...)
{

float
*ptr;
int
num;
va_start(ptr, n);
num = va_arg(ptr, int);
printf("%d", num);
}






20. va_list это массив, который содержит информацию, необходимую для va_arg и va_end