В каких строчках кода содержатся ошибки?
struct A {
char a[]; // 1
};
struct B {
char a;
char b[]; // 2
};
struct C {
char a[]; // 3
char b;
};
int main() {
char a[]; // 4
return 0;
}
void test(char a[]) { // 5
}
В каких строчках кода содержатся ошибки?
struct A {
char a[]; // 1
};
struct B {
char a;
char b[]; // 2
};
struct C {
char a[]; // 3
char b;
};
int main() {
char a[]; // 4
return 0;
}
void test(char a[]) { // 5
}
Что произойдет в результате компиляции и выполнения данного кода?
#include <stdio.h>
void f() { printf("%d", 1); }
int main() {
void (*a)() = f; // 1
a(); // 2
return 0;
}
Что произойдет в результате компиляции и выполнения данного кода?
#include <stdio.h>
void f() { printf("%d", 1); }
int main() {
void (*a)() = f; // 1
a(); // 2
return 0;
}
Выберите все правильные утверждения для следующих типов:
1) const int *
2) int const *
3) int * const
Варианты ответов:
1) Первый тип означает константный указатель на объект типа int
2) Второй тип означает константный указатель на объект типа int
3) Третий тип означает константный указатель на константу типа int
4) Первый тип означает указатель на константу типа int
5) Третий тип идентичен второму
6) Все три типа идентичны
7) Второй тип идентичен первому
Выберите все правильные утверждения для следующих типов:
1) const int *
2) int const *
3) int * const
Варианты ответов:
1) Первый тип означает константный указатель на объект типа int
2) Второй тип означает константный указатель на объект типа int
3) Третий тип означает константный указатель на константу типа int
4) Первый тип означает указатель на константу типа int
5) Третий тип идентичен второму
6) Все три типа идентичны
7) Второй тип идентичен первому
Каким будет результат компиляции и выполнения следующего кода?
#include <stdio.h>
int main() {
int a = 3;
switch (a) {
default: {
int b = 0;
a = b;
break;
}
case 0: {
int b = 3;
a = b;
break;
}
}
printf("%d", a);
return 0;
}
Варианты ответов:
1) Код скомпилируется и напечатает число 0
2) Код скомпилируется и напечатает число 3
3) Код скомпилируется, но во время выполнения возникнет ошибка
4) Код не скомпилируется, так как default должен быть последней меткой в операторе switch
5) Код не скомпилируется, так как переменная b объявлена дважды
Каким будет результат компиляции и выполнения следующего кода?
#include <stdio.h>
int main() {
int a = 3;
switch (a) {
default: {
int b = 0;
a = b;
break;
}
case 0: {
int b = 3;
a = b;
break;
}
}
printf("%d", a);
return 0;
}
Варианты ответов:
1) Код скомпилируется и напечатает число 0
2) Код скомпилируется и напечатает число 3
3) Код скомпилируется, но во время выполнения возникнет ошибка
4) Код не скомпилируется, так как default должен быть последней меткой в операторе switch
5) Код не скомпилируется, так как переменная b объявлена дважды
Какие операции допустимы для указателей p1 и p2, объявленных как:
int *p1, *p2;
Какие операции допустимы для указателей p1 и p2, объявленных как:
int *p1, *p2;
Как объявить макрос, заменяющий SIZE на значение 5 на этапе прекомпиляции?
Как объявить макрос, заменяющий SIZE на значение 5 на этапе прекомпиляции?
Что будет напечатано?
printf("Что ?\n мешает/n вам работать \n");
1)
Что ?
мешает/n вам работать
2)
Что ? мешает вам работать
3)
Что ?
мешает
вам работать
4)
Что ? мешает/n вам работать
Что будет напечатано?
printf("Что ?\n мешает/n вам работать \n");
1)
Что ?
мешает/n вам работать
2)
Что ? мешает вам работать
3)
Что ?
мешает
вам работать
4)
Что ? мешает/n вам работать
Как объявить переменную a, являющуюся указателем на константный указатель типа T?
Как объявить переменную a, являющуюся указателем на константный указатель типа T?
Что будет выведено на консоль при выполнении?
<stdio.h>
int main()
{
int a, c = 0;
a = c++ + ++c;
printf(" %d %d ", a, c);
c += --a + a--;
printf(" %d %d ", a, c);
return 0;
}
Что будет выведено на консоль при выполнении?
<stdio.h>
int main()
{
int a, c = 0;
a = c++ + ++c;
printf(" %d %d ", a, c);
c += --a + a--;
printf(" %d %d ", a, c);
return 0;
}
Какие из следующих конструкций корректны?
1)
/* 1 */
int i = 0;
do {
i++;
} while (i < 10);
2)
/* 2 */
int i = 0;
while (i < 10) {
i++;
}
3)
/* 3 */
int i = 0;
do {
i++;
} do (i < 10);
4)
/* 4 */
int i = 0;
while(i < 10) {
i++;
} while (i < 10);
5)
/* 5 */
int i = 0;
do(i < 10) {
i++;
}
Какие из следующих конструкций корректны?
1)
/* 1 */
int i = 0;
do {
i++;
} while (i < 10);
2)
/* 2 */
int i = 0;
while (i < 10) {
i++;
}
3)
/* 3 */
int i = 0;
do {
i++;
} do (i < 10);
4)
/* 4 */
int i = 0;
while(i < 10) {
i++;
} while (i < 10);
5)
/* 5 */
int i = 0;
do(i < 10) {
i++;
}
Укажите корректный вариант объявления массива:
Укажите корректный вариант объявления массива:
Какие символы могут использоваться для комментариев?
Какие символы могут использоваться для комментариев?
-
-
-
-
Что будет выведено на экран?
#include <stdio.h>
void mystery(int a, int b) {
(!(a<b))?printf("First"):printf("Second");
}
int main() {
int a = 5, b = 4;
mystery(a, b);
return 0;
}
Что будет выведено на экран?
#include <stdio.h>
void mystery(int a, int b) {
(!(a<b))?printf("First"):printf("Second");
}
int main() {
int a = 5, b = 4;
mystery(a, b);
return 0;
}
Что выведет программа?
int a;
double b = 2;
a = 2 * (b * 5/2) / (5/2);
printf("%d", a);
Что выведет программа?
int a;
double b = 2;
a = 2 * (b * 5/2) / (5/2);
printf("%d", a);
Являются ли структуры (struct) и объединения (union) взаимозаменяемыми?
Являются ли структуры (struct) и объединения (union) взаимозаменяемыми?
Укажите строки, в которых содержатся ошибки:
void Test(const int **a) {
a = 0; // 1
*a = 0; // 2
**a = 0; // 3
}
Укажите строки, в которых содержатся ошибки:
void Test(const int **a) {
a = 0; // 1
*a = 0; // 2
**a = 0; // 3
}
Что выведет эта программа?
#include <stdio.h>
#define A(b) "" #b "" "c"
int main() {
printf("%s", A(a)A(A(a)));
return 0;
}
Варианты ответов:
1) возникнет ошибка во время выполнения
2) другой ответ
3) acacc
4) acA(a)c
5) она не скомпилируется
6) " #b "" "c
Что выведет эта программа?
#include <stdio.h>
#define A(b) "" #b "" "c"
int main() {
printf("%s", A(a)A(A(a)));
return 0;
}
Варианты ответов:
1) возникнет ошибка во время выполнения
2) другой ответ
3) acacc
4) acA(a)c
5) она не скомпилируется
6) " #b "" "c
Какой символ означает операцию взятия адреса?
Какой символ означает операцию взятия адреса?
Что произойдет, если попытаться скомпилировать и запустить следующую программу?
#include <stdio.h>
int main(int argc, char *argv[]) {
int a = 2;
switch(a) {
default:
printf("default");
break;
case 1:
printf("1");
break;
}
return 0;
}
Варианты ответов:
1) Произойдет ошибка компиляции
2) Произойдет ошибка времени выполнения
3) На экран будет выведено "default"
4) На экран будет выведено "1"
5) Программа будет успешно скомпилирована и ничего не выведет на экран
Что произойдет, если попытаться скомпилировать и запустить следующую программу?
#include <stdio.h>
int main(int argc, char *argv[]) {
int a = 2;
switch(a) {
default:
printf("default");
break;
case 1:
printf("1");
break;
}
return 0;
}
Варианты ответов:
1) Произойдет ошибка компиляции
2) Произойдет ошибка времени выполнения
3) На экран будет выведено "default"
4) На экран будет выведено "1"
5) Программа будет успешно скомпилирована и ничего не выведет на экран
Что означает следующее объявление?
typedef int (* A)( )
Варианты ответов:
1) Объявляется тип, который представляет собой указатель на переменную типа int
2) Объявляется тип, который представляет собой указатель на функцию, возвращающую значение типа int
3) Объявляется указатель на переменную A целого типа
4) Объявляется константный указатель на переменную A типа int
Что означает следующее объявление?
typedef int (* A)( )
Варианты ответов:
1) Объявляется тип, который представляет собой указатель на переменную типа int
2) Объявляется тип, который представляет собой указатель на функцию, возвращающую значение типа int
3) Объявляется указатель на переменную A целого типа
4) Объявляется константный указатель на переменную A типа int