Главная / Программирование /
Основы программирования на языке C / Тест 1
Основы программирования на языке C — тест 1
Упражнение 1:
Номер 1
Чем обеспечивается надежность программ, написанных на языке Си?
Ответ:
(1) гибкостью языка Си
(2) переносимостью языка Си
(3) мобильностью языка Си
(4) сильной типизацией языка Си
Номер 2
Где, когда и кем был создан язык Си?
Ответ:
(1) язык Си был создан Н. Виртом
(2) язык Си был создан Б. Страуструпом
(3) язык Си был создан в США в 1972 году сотрудником фирмы Bell Labs Денисом Ритчи
(4) язык Си был создан в Японии в 1972 году группой разработчиков фирмы Panasonic под руководством Кена Томпсона
Номер 3
Можно ли на языке Си написать компилятор с языка Си при условии, что в наличии уже имеется другой компилятор с языка Си?
Ответ:
(1) да
(2) нет
(3) только при совместном использовании с C#
(4) только при совместном использовании с C++
Упражнение 2:
Номер 2
Какого типа язык Си?
Ответ:
(1) компилируемого типа
(2) интерпретируемого типа
(3) компилируемо-интерпретируемого типа
(4) интерпретируемого-компилируемого типа
Номер 3
Есть ли у языка Си собственный редактор?
Ответ:
(1) да
(2) нет
(3) только в OС UNIX
(4) только в OС WINDOWS
Упражнение 3:
Номер 1
Чем определяется мобильность языка Си?
Ответ:
(1) тем, что программа, написанная на Си для одной вычислительной системы, может быть перенесена без изменений на другую систему
(2) тем, что программа, написанная на Си для одной вычислительной системы, может быть перенесена с небольшими изменениями или вообще без них на другую
(3) мобильность языка Си определяется его эффективностью
Упражнение 4:
Номер 1
Укажите ошибки и несоответствия стандартам ANSI C в следующем фрагменте: include studio.h void main () { printf("Hello, World!"); }
Ответ:
(1) ошибок нет
(2) ошибка в первой строке — должно быть
#include <stdio.h>
(3) функция main()
объявлена как void
, что не соответствует стандарту ANSI C
Номер 2
Что было бы напечатано, если бы данные операторы являлись частью полной программы? int n; n=5; printf("%d+%d=%d", n, n, n+n);
Ответ:
(1) 5+5=10
(2) 5
(3) 10
(4) 5+5
Номер 3
Что будет напечатано? printf("Что ?n мешает/n вам работать n");
Ответ:
(1)
Что ?
мешает/n вам работать
(2)
Что ?
мешает
вам работать
(3)
Что ? мешает /n вам работать
(4)
Что? мешает вам работать
Упражнение 5:
Номер 1
Будет ли работать программа и если нет - в чем ошибки? #include <stdio.h> int main() { printf("Hello, World!n"); }
Ответ:
(1) программа скомпилируется и отработает, но код завершения будет не определен
(2) программа не скомпилируется из-за синтаксической ошибки
(3) программа не скомпилируется, т.к. не указан возвращаемый функцией тип
Номер 2
Укажите строки, не содержащие ошибок синтаксиса:
Ответ:
(1) printf("Hello, World!"n);
(2) printf("Hello, World!n");
(3) printf(%d Hello, n Hello, World!?);
(4) printf("Hello,n World!n");
Номер 3
Каким символом должен заканчиваться оператор?
Ответ:
(1) символом «точка с запятой» — ‘;’
(2) символом «точка» — ‘.’
(3) символом «запятая» — ‘,’
(4) символом «двоеточие» — ‘:’
Упражнение 6:
Номер 1
Какие символы могут использоваться для комментариев?
Ответ:
(1) /* comment */
(2) { comment }
(3) (* comment *)
Номер 2
Какие имена правильно написаны на языке Си?
Ответ:
(1) Name
(2) name_
(3) +name
(4) {name}
Номер 3
Какие имена переменных правильно написаны на языке Си?
Ответ:
(1) Dinner
(2) 2Dinner
(3) week_days
(4) week_daysssssssssssss
Правильные ответы выделены зелёным цветом.
Все ответы: Дается формальное изложение всех конструкций языка программирования C. Материал проиллюстрирован примерами и задачами.
Чем обеспечивается надежность программ, написанных на языке Си?
(1) гибкостью языка Си
(2) переносимостью языка Си
(3) мобильностью языка Си
(4) сильной типизацией языка Си
Какие классы памяти бывают?
(1) auto
(2) extern
(3) static
(4) register
Какие массивы можно инициализировать?
(1) внешние
(2) регистровые
(3) статические
(4) автоматические
Как создать строковую константу?
(1) используя кавычки
(2) используя вопросительный знак
(3) используя апостроф
(4) используя восклицательный знак
Как обратиться к полям структуры student?
(1) student.id
(2) student..name
(3) student:age
(4) student(sex)
При построении целочисленной матрицы А(15х15)
из какого файла берется функция clrscr( )
?
(1) создается в данной программе
(2) всегда из заголовочного файла stdio.h
(3) всегда из заголовочного файла conio.h
(4) зависит от компилятора – такой функции может не быть вообще
Каким типом будете пользоваться для хранения и обработки данных о количестве жителей Новосибирска?
(1) char
(2) int
(3) short
(4) long
Что такое операнд в языке Си?
(1) это бинарная операция
(2) это название алгебраического выражения
(3) это название арифметической операции
(4) это величина, над которой выполняется операция
Есть ли ошибка в записи printf("%2.2e то же самое, что и %2.2fn", 1201.0, 1201.0)
?
(1) ошибка есть, т.к. для вывода одного и того же числа используются разные форматы
(2) ошибка есть, т. к. пытаются вывести константы, а не переменные
(3) ошибка есть, т.к. не использован символ адреса &
(4) запись верна
Будут ли преобразованы операнды, и если — да, то к какому типу, во фрагменте программы:
{int n;
char c;
n=63+c;
}
(1) нет, преобразования не будут выполнены
(2) преобразование типов будут выполнены. Переменная n
преобразуется к символьному типу
(3) преобразования будут выполнены. Переменная n
преобразуется и будет иметь неопределенный тип, то есть void
(4) преобразование будет выполнено. Символьная переменная преобразуется к типу int
Что делает функция getchar( )
?
(1) читает один символ из stdin
программы и возвращает его код
(2) выводит в stdout
символ, указанный в качестве аргумента
(3) резервирует место в куче (heap) для хранения одного символа
(4) читает один символ из указанного в качестве аргумента файла
Отметьте ложные выражения
(1) 100>3
(2) 100>3&&'a'>'c'
(3) 'a'>'c'
Найти правильные значения переменной:
int i=2;
i +=5;
i*=10;
i-=6;
i/=8;
i%=3;
(1) i=2, i=5, i=70, i= 64, i=8, i=2
(2) i=2,i=7,i=10, i=64, i=8, i=2
(3) i=2, i=7, i=70, i=64, i=8, i=2
(4) i=2, i=7, i=70,i=64,i=10,i=2
Укажите правильный вариант функции, возвращающей сумму двух чисел:
(1)
int sum(int j; int k)
{
return(j+k);
}
(2)
int sum(int j,int k)
{
return(j+k);
}
(3)
int sum( )
{
return(j+k);
int j, k;
}
Чем определяется мобильность языка Си?
(1) тем, что программа, написанная на Си для одной вычислительной системы, может быть перенесена без изменений на другую систему
(2) тем, что программа, написанная на Си для одной вычислительной системы, может быть перенесена с небольшими изменениями или вообще без них на другую
(3) мобильность языка Си определяется его эффективностью
В чем опасность применения макрофункций?
(1) побочный эффект
(2) нет побочных эффектов
(3) тяжело программировать
(4) в создании строчного кода
Какие способы инициализации неправильны?
(1) static int dog[3][2]= {{1,2},{5,0},{4,9}}
(2) register int dog[3][2]={{1,2},{5,0},{4,9}}
(3) register int dog[ ][]={{1,2},{5.0},{4,9}}
(4) static int dog[2][3]= {{1,2},{5,0},{4,9}}
Какая функция может сцепить две строки?
(1) strcat( )
(2) strcmp( )
(3) strcpy( )
(4) strchr( )
Как обратиться к элементу структуры при помощи указателя?
(1) new_student<id
(2) new_student->id
(3) new_student*id
(4) new_student-id
Если значение превышает наибольшее машинное целое со знаком, то оно представляется
(1) как длинное целое
(2) как десятичное с плавающей точкой
(3) как символьное
(4) как строковое
Каково значение целых переменных x
и y
после выполнения y=x=(2+3)/4;
?
(1) x=1, y=1
(2) x=1.025, y=1
(3) x=1, y=0
(4) x=0, y=1
Есть ли ошибки в фрагменте программы:
int age;
scanf(«%f», age);?
(1) ошибок нет
(2) одна ошибка — для переменной age
целого типа, необходимо использовать %d, а не %f
(3) одна ошибка — вместо age
должно стоять &age
(4) две ошибки, необходимо использовать %d, а не %f и &age, т.к. вторым аргументом должен быть указатель
Зачем нужны преобразования типов?
(1) для структурирования программ
(2) для того чтобы программу, написанную на Си для одной вычислительной системы, можно было бы без изменений перенести на другую систему
(3) для того чтобы программу, написанную на Си для одной вычислительной системы, можно было бы перенести с небольшими изменениями, или вообще без них, на другую
(4) для того чтобы выполнить вычисления, если программист был вынужден смешать типы в одном выражении
Что такое EOF?
(1) специальный символ, указывающий на начало файла
(2) специальный символ, указывающий на конец файла
(3) специальный символ, указывающий на то, что программа написана на Си
(4) определяет мобильность языка Си
Значение number
равно или больше 2, но меньше 11, где записано правильное логическое утверждение?
(1) number >=2 && number <11
(2) number <11 && number >=2
(3) number >=2 || number <11
(4) number <11 || number <2
Правильна ли спецификация цикла for
:
for(int i=0, i<=10,i++);
(1) Спецификация цикла for
правильна
(2) Вместо запятых должны стоять символы «точка с запятой»
(3) Нельзя в цикле описывать переменную
(4) Недопустимо использовать в качестве тела цикла пустой оператор
Как передавать функции информацию?
(1) циклом for
(2) вместо запятых должны стоять в формальных аргументах символы «точка с запятой»
(3) информацию функции передать нельзя!
(4) при помощи аргументов
Укажите ошибки и несоответствия стандартам ANSI C в следующем фрагменте:
include studio.h
void main ()
{
printf(«Hello, World!»);
}
(1) ошибок нет
(2) ошибка в первой строке — должно быть
#include <stdio.h>
(3) функция main()
объявлена как void
, что не соответствует стандарту ANSI C
Чем отличается статическая переменная от автоматической?
(1) статические переменные имеют такую же область действия, как автоматические переменные, но они не исчезают, когда содержащая их функция закончит свою работу
(2) в отличие от идентификаторов типа auto, для идентификаторов типа static память выделяется только один раз — в начале выполнения программы, и они существуют, пока программа выполняется
(3) статические переменные имеют более удобное для написания ключевое слово
(4) статические переменные легче компилируются
Где может появиться директива #define?
(1) в начале файла
(2) под командами включения файлов
(3) в середине файла
(4) в конце файла
Могут ли быть элементы массива функциями?
(1) да, но только функции типа void
(2) да, но только функции типа int
(3) нет, но элементы массива могут быть указателями на функции
(4) нет, связать массивы с функциям невозможно в принципе
Как сохраняются в памяти строковые константы?
(1) каждая строковая константа, даже если она идентична другой строковой константе, сохраняется в отдельном месте памяти
(2) строковые константы проверяются на совпадения, и в памяти хранится только один вариант
(3) строковые константы хранятся единым блоком в памяти ЭВМ
(4) строковые константы разбиваются на литеры и каждая литера заменяется ее адресом
Для чего используется спецификатор typedef
?
(1) позволяет создать свое собственное имя типа
(2) позволяет определить синоним типа данных
(3) для замены формальных параметров в функциях на фактические
Какие функции объявлены в <stdlib.h>?
(1) набор функций, служащих для преобразования данных
(2) набор функций, служащих для генерации случайных чисел
(3) набор функций, служащих для получения и установки переменных среды shell
(4) набор функций, служащих для управления выполнением программ и выполнения команд shell
Слово является естественным элементом памяти ЭВМ, какие размеры слов могут использоваться в различных типах ЭВМ?
(1) слово равно 8 битам
(2) слово равно 16 битам
(3) слово равно 32 битам
(4) слово равно 64 битам
Что будет выведено на печать в результате работы оператора printf("%d",100+65)
?
(1) 100+65
(2) 165
(3) 65+100
(4) 100
Что называется простейшим выражением?
(1) простейшим выражением называется выражение, сформированное с использованием констант типов int, char, enum, sizeof, унарных операторов — ~, бинарных операторов+ ~ * / % &^ << >> = = != < > <= >= и тернарной операции ?:
(2) простейшим выражением называется выражение , сформированное с использованием констант типов int, char, enum, sizeof
(3) простейшим выражением называется выражение , сформированное с использованием унарных операторов — ~
(4) простейшим выражением называется выражение , сформированное с использованием бинарных операторов + ~ * / % &^ << >> = = != < > <= >= и тернарной операции ?:
В какой тип может быть неявно преобразован char
?
(1) int
(2) short int
(3) long int
Что является характерными чертами структурного программирования?
(1) Отказ от неструктурных передач управления
(2) Ограниченное использование глобальных переменных
(3) Модульность
(4) Структурирование записи программы
Почему мы пользуемся функциями?
(1) они избавляют нас от повторного программирования
(2) мы можем применять одну функцию в различных программах
(3) функция повышает уровень модульности программы
(4) функции облегчают ее чтение, внесение изменений и коррекцию ошибок
Будет ли работать программа и если нет — в чем ошибки?
#include <stdio.h>
int main()
{
printf(«Hello, World!n»);
}
(1) программа скомпилируется и отработает, но код завершения будет не определен
(2) программа не скомпилируется из-за синтаксической ошибки
(3) программа не скомпилируется, т.к. не указан возвращаемый функцией тип
Какие из приведенных утверждений являются правильными?
(1) переменная, описанная вне функции, является внешней
(2) внешние переменные должны быть описаны в файле до первого использования
(3) внешнюю переменную можно описать и в функции, которая использует ее, при помощи ключевого слова extern
(4) включение ключевого слова extern позволяет функции использовать внешнюю переменную, даже если она определяется позже в этом или другом файле
(5) если слово extern не включено в описание внутри функции, то под этим именем создается автоматическая переменная
Где имеет силу даваемое определение директивы #define
?
(1) от места появления до конца файла или до #undef
(2) от начала файла до места появления
(3) в первой описанной функции файла
(4) в последней описанной функции файла
Какого типа могут быть элементы массива?
(1) указатель
(2) union
(3) struct
В какой памяти хранится строковая константа?
(1) в статической
(2) в динамической
(3) в системном стеке
(4) в циклическом списке
Чем отличается typedef
от #define
?
(1) в отличии от #define
оператор typedef
объявляет символические имена, но ограничивается только типами данных
(2) оператор typedef
игнорируется препроцессором
(3) в своих пределах оператор typedef
более гибок, чем #define
(4) оператор typedef
ничем не отличается от #define
Какие функции объявляются в заголовке <string.h>?
(1) в заголовке <string.h> объявляется набор функций, предназначенных для манипулирования символьными строками
(2) в заголовке <string.h> объявляется набор функций, предназначенных для получения доступа к информации о бюджете пользователей
(3) в заголовке <string.h> объявляется набор функций, предназначенных для манипулирования байтовым потоком
(4) в заголовке <string.h> объявляется набор функций, предназначенных для вызова системных параметров времени
Что понимается под простым типом?
(1) тип данных, значения которого не содержат компонент, например, целое или символ, в отличии от массива или структуры
(2) тип данных, значения которого содержат компоненты, например массивы,структуры
(3) тип данных, значения которого являются массивами
(4) тип данных, значения которого являются целыми числами
Для чего используется унарная операция минус?
(1) для изменения знака переменной на противоположный знак (+ на -, а — на +)
(2) для получения разности некоторой величины
(3) для уменьшения исходной величины
Что называется составным оператором?
(1) составной оператор представляет собой два или более операторов, объединенных с помощью фигурных скобок
(2) составной оператор представляет собой четное число операторов , объединенных с помощью фигурных скобок
(3) составной оператор представляет собой нечетное число операторов , объединенных с помощью фигурных скобок
(4) составной оператор представляет собой два или более операторов, объединенных с помощью квадратных скобок
В какой тип может быть неявно преобразован int?
(1) char
(2) short int
(3) long int
(4) float, double
Что такое истина в языке Си?
(1) в языке Си значение 1 является истиным
(2) в языке Си все ненулевые значения являются истинными
(3) в языке Си значение истина равно 0
Какие виды циклов существуют в языке Си?
(1) while
(2) for
(3) do … while
(4) repeat
Какие символы могут использоваться для комментариев?
(1) /* comment */
(2) { comment }
(3) (* comment *)
Какие классы памяти описываются внутри функции?
(1) автоматический, продолжительность существования — временно, область действия локальная
(2) регистровый , продолжительность существования — временно, область действия локальная
(3) статический, продолжительность существования — постоянно, область действия локальная
Какие утверждения верны?
(1) препроцессор не выполняет вычислений
(2) препроцессор делает предложенные подстановки
(3) препроцессор выполняет вычисления
Какое утверждение относительно указателя верно?
(1) указателем называется компонент заданного типа, являющийся ссылкой на некоторую область памяти
(2) тип переменных определяется как тип указателей на тип данных
(3) идентификатор массива есть указатель
Что является указателем на хранящуюся в памяти строковую константу?
(1) вся фраза в кавычках является указателем на место в памяти
(2) первая литера строковой константы является указателем на место в памяти
(3) последняя литера строковой константы является указателем на место в памяти
(4) первая четная литера строковой константы является указателем на место в памяти
Для чего используются поля битов в структуре?
(1) для обеспечения доступа к отдельным битам слова
(2) для экономии памяти
(3) для повышения быстродействия программы
(4) для увеличения спектра возможностей языка программирования Си
Какие функции объявляются в заголовке <memory.h>?
(1) набор функций, предназначенных для манипулирования символьными строками
(2) набор функций, предназначенных для получения доступа к информации о бюджете пользователей
(3) набор функций, предназначенных для манипулирования областями памяти
(4) набор функций, предназначенных для вызова системных параметров времени
Что понимается под основным циклом?
(1) самый внешний цикл программы
(2) самый внутренний цикл программы
(3) самый маленький цикл программы
(4) самый большой цикл программы
Какие управляющие символьные константы описаны верно?
(1) новая строка ‘n’
(2) нулевой символ »
(3) перевод формата ‘f’
(4) возврат каретки ‘r’
(5) вертикальная табуляция ‘v’
(6) нулевой символ ‘t’
Что понимается под усечением в языке Си?
(1) в языке Си дробная часть у результата деления целых чисел отбрасывается
(2) в языке Си дробная часть у результата деления дробных чисел отбрасывается
(3) в языке Си дробная часть у результата деления целых чисел на данное с плавающей точкой отбрасывается
(4) в языке Си дробная часть у результата деления данных с плавающей точкой на целое отбрасывается
Что называется блоком в языке Си?
(1) блоком в языке Си называется составной оператор
(2) блоком в языке Си называется один оператор
(3) блоком в языке Си называется составной оператор, содержащий нечетное число операторов
(4) блоком в языке Си называется составной оператор, содержащий четное число операторов
В какой тип может быть неявно преобразован double?
(1) float (преобразование с округлением и последующим отбрасыванием лишних разрядов)
(2) int
(3) short int
(4) long int
Что понимается под вводом-выводом?
(1) операция пересылки данных между оперативной памятью и внешними устройствами
(2) операция пересылки данных между различными внешними устройствами
(3) операция пересылки данных между различными частями оперативной памяти
(4) операция пересылки данных между различными файлами
Что такое значение ложь в языке Си?
(1) в языке Си значение ложь равно 1
(2) в языке Си все ненулевые значения являются ложными
(3) в языке Си все отрицательные значения являются истинными
(4) в языке Си значение ложь равно 0
Каким циклом является цикл while ?
(1) Циклом со счетчиком
(2) Циклом с предусловием
(3) Циклом с постусловием
(4) Простым циклом
Отметьте верное утверждение:
(1) в языке Си функции разделены на категории — функции, возвращающие значения в вызывающую программу и функции, не возвращающие значения в вызывающую программу
(2) функции по типу результата определяют, нужно ли возвратить значение в вызывающую программу
(3) только функции с параметрами возвращают значения в вызывающую программу
Отметьте правильно указанные области действия классов памяти:
(1) auto
— локальная
(2) auto
— глобальная (все файлы)
(3) auto
— глобальная (один файл)
(4) register
— локальная
Какая макрофункция печатает значения двух целых выражений?
(1)
#define P(X,Y) printf(«X=%d, Y=%d.n»,X,Y)
(2)
#define P (X,Y) printf(«X=%d, Y=%d.n», X,Y)
(3)
#define P(X,Y) Printf(«X=%d, Y=%d.n»)
Какие способы инициализации массива внутри функции правильны?
(1) static int ages[3]={1,2,3}
(2) static int ages[ ] ={10,5,8}
(3) extern int ages[3]={9,0,9}
(4) extern int ages[ ]={50,7,9}
Как инициализировать внутри блока массив «Nina»?
(1) static int a[5]={'N','i','n', 'а',''}
(2) static int a[ ] ={'N','i','n','a',''}
(3) extern int a[5]={'N','i','n','a',''}
(4) extern int a[ ]={'N','i','n','a',''}
Как объявить указатель на структуру?
(1) struct student *new_student
(2) student
(3) struct
Как еще можно инициализировать целые n
, x
, y
, k
при построении матрицы А(15х15)
?
(1) int n=1,x=6,y=6,k=1;
(2) int n=k=1; int x=y=6;
(3) int n=1; int x=6; int y=6; int k=1;
(4) int n,x,y,k; n=1; x=6;y=6;k=1;
Укажите неправильные варианты
(1) #define NO Нет
(2) #define NO! «Нет»
(3) #define YES «Да»
Каково значение целой переменной x=(12+6)/2*3?
(1) 27
(2) 3
(3) 27.0
(4) 3.0
Есть ли ошибка в фрагменте программы:
char name[30] =»Интернет-Университет»;
printf(«%c Информационных Технологийn», name);
(1) ошибок нет
(2) вместо %с должно быть %s
(3) в управляющей строке лишний символ n
(4) вместо %с должно быть %d
Дано описание int i;
. Верен ли синтаксически фрагмент выражения (char)i
, и что означает запись?
(1) фрагмент выражения записан синтаксически неверно
(2) фрагмент выражения записан синтаксически верно. Такая запись означает, что результат вычисления переменной i
будет приведен к типу char
(3) фрагмент выражения записан верно и означает примечание
(4) фрагмент записан синтаксически верно, и означает, что переменная целого типа неявно преобразуется к переменной символьного типа
Что делает функция putchar(ch)
?
(1) выводит символ ch
в стандартный вывод (stdout) программы
(2) читает из stdin
один символ и сохраняет его в переменной ch
(3) переключает стандартный вывод на ввод
(4) заменяет EOF на символ ch
Определить, какие выражения ложны:
‘a’ > ‘c’
100>3 && ‘a’>’c’
!(100 > 3)
!(101 >= 99)
(1) все выражения ложны
(2) ложно только !(100>3)
(3) ложно только !(101>=99)
(4) все выражения истинны
Что будет получено на выходе в результате работы следующего цикла
for(int value = 36; value > 0; value /= 2)
printf(«%3d»,value)
(1) 36 18 9 4 2 1
(2) 36 36 18 9 4
(3) 36
(4) 36 18 9
Укажите правильный вариант функции, возвращающей сумму двух вещественных чисел:
(1)
float sum(float j, float k)
{
return(j+k);
}
(2)
sum(float j, float k)
{
return(j+k);
}
(3)
sum( )
{
float j, float k;
return(j+k);
}
(4)
int sum( )
{
float j, k;
return(j+k);
}
Требуется напечатать всю таблицу расширенного ASCII (символы с кодами 1-255 включительно).
Какой из примеров справится с этой задачей?
(1) char c; for(c = 1; c < 255; printf("%c ", c++))
(2) int c; for(c = 0; c < 255; printf("%c ", c++))
(3) char c; for(c = 0; c < 255; printf("%c ", ++c))
(4) int c; for(c = 0; c < 255; printf("%c ", ++c))
Где, когда и кем был создан язык Си?
(1) язык Си был создан Н. Виртом
(2) язык Си был создан Б. Страуструпом
(3) язык Си был создан в США в 1972 году сотрудником фирмы Bell Labs Денисом Ритчи
(4) язык Си был создан в Японии в 1972 году группой разработчиков фирмы Panasonic под руководством Кена Томпсона
Для чего используется регистровая память?
(1) для замедления работы программы
(2) для повышения скорости работы программы
(3) для экзотики
(4) из-за лени программиста
Как определить макрофункцию, которая возвращает минимальное из двух значений?
(1) MIN(X,Y) ((X)<(Y) ? (X)<Y)
(2) #define MIN(X,Y) ((X)<(Y) ? (X) : (Y))
(3) #define MIN(X,Y) ((X)>(Y) ? (X) : (Y))
(4) #DEFINE MIN(X,Y) ((X)<(Y) ? (X) : (Y))
Как получить адрес переменной?
(1) использовать операцию &
(2) использовать операцию *
(3) использовать операцию #
(4) использовать операцию ?
Какой функцией можно прочитать строку из входного потока?
(1) fgets( )
(2) getfile( )
(3) fputs( )
(4) puts( )
Каково назначение функции fseek( )?
(1) перемещает указатель чтения или записи в потоке
(2) открывает потоковый файл с указанным дескриптором
(3) повторно использует указатель потока для ссылки на новый файл
(4) открывает поток для чтения
Какой вариант синтаксически правильный?
(1) float g=e21;
(2) float g=1.0e21;
(3) float g=1.0E+21;
Каковы значения целых x
и y
в выражении y=3+2*(x=7/2);
?
(1) x=3, y=3
(2) x=3.5, y=3
(3) x=4, y=9
(4) x=3, y=9
Что такое выражение в языке Си?
(1) это любая последовательность символов
(2) это совокупность операций и операндов
(3) это математические формулы
(4) это перечень идентификаторов
Задан ряд имен типов: int, double, float, char, short, long. Как правильно составить последовательность имен типов, упорядоченных от высшего типа к низшему?
(1) double, float, long, int, short, char
(2) char, short, int, long, float, double
(3) float, double, long, int, short, char
(4) long, double, float, int, short, char
Какое из выражений правильное?
(1) putchar(getchar( ))
(2) getchar(putchar( ))
(3) getchar( EOF)
(4) getchar(>)
Значение number лежит между 2 и 8, но не равно 5, где записано правильно?
(1) number > 2 && number <8 && number !=5
(2) number !=5 && (unsigned)(number — 2 <
(3) number — 2 < 6 && number !=5
(4) number < 2 && number>8 &&number !=5
Пусть int n=3;
, какой цикл выведет на печать цифры?
(1) while(n > 2 && n <8 && n != 5){printf("%dn",n++);}
(2) while(n != 5 && n < 8 && n > 2){printf("%dn",n++);}
(3) while(n < 8 && n > 2 && n != 5){printf("%dn",n++);}
(4) while(n < 2 && n > 8 &&n != 5){printf("%dn",n++);}
Какое различие между формальными и фактическими аргументами функций?
(1) нет различий
(2) формальные различия
(3) формальные аргументы являются переменными, используемыми функцией, а фактические аргументы являются значениями,поступающими из вызывающей функции
(4) формальные аргументы — это адреса, а фактические — указатели
Какого типа язык Си?
(1) компилируемого типа
(2) интерпретируемого типа
(3) компилируемо-интерпретируемого типа
(4) интерпретируемого-компилируемого типа
Имеется следующее объявление: int x, j = 1;
. Какой вариант макроопределения приведет к ответу 9 в результате вызова x = NEW(j << 2);
?
(1) #define new(x) x+5
(2) #define NEW(x) x+5
(3) #define NEW (x) x+5
(4) #define NEW(X) ((X)+5)
Как получить значение, ссылаясь на указатель?
(1) использовать операцию &
(2) использовать операцию *
(3) использовать операцию #
(4) использовать операцию ?
Какой функцией можно записать строку в стандартный поток вывода stdout?
(1) fgets( )
(2) gets( )
(3) puts( )
Как обратиться к элементу массива структур?
(1) a[0].sex
(2) a[1].name
(3) a[5].id
(4) a[0].age
Можно ли создать список, все поля которого являются указателями?
(1) да, если список создается для хранения адресов
(2) нет
(3) только поля целого типа
(4) только поля указателей
Какой тип наиболее подойдет для хранения и обработки данных о количестве жителей Москвы?
(1) unsigned long
(2) unsigned double
(3) float
Каково значение int x
после выполнения выражения x=(int)3.8+3.3;
?
(1) x=6
(2) x=7.1
(3) x=7
(4) x=3
Что такое операнд?
(1) это величина, над которой выполняется операция
(2) это описание действий
(3) это описание констант
(4) это описание переменной
Что делает применение ключевого слова unsigned c рангом соответствующего типа данных со знаком?
(1) повышает ранг соответствующего типа
(2) остается незамеченным
(3) понижает ранг соответствующего типа
(4) меняет тип на тип unsigned int
Что произойдет в результате выполнения оператора putchar(’07’);?
(1) печать цифры 7
(2) шаг назад на одну позицию
(3) переход на новую строку на устройстве вывода
(4) сработает громкоговоритель
Значение переменной сh
не равно символам q
и k
. Какие выражения записаны неверно?
(1) сh !='q' && ch !='k'
(2) ch != q && ch !=k
(3) 'ch' !=q && 'ch' !=k
Выберите правильные фрагменты кода
(1) for(;;)
(2) int i=0; for(; i++);
(3) for(int i=0;i<10;i++)
(4) for(int i=0;i<100;i=i+10)
Укажите правильное объявление функции с двумя аргументами:
(1) int sum() {int a,b; /* тело функции */ }
(2) int sum(int a, int b) { /* тело функции */ }
(3) int sum(int a, int b); { /* тело функции */ }
Что было бы напечатано, если бы данные операторы являлись частью полной программы?
int n;
n=5;
printf(«%d+%d=%d», n, n, n+n);
(1) 5+5=10
(2) 5
(3) 10
(4) 5+5
Какие классы памяти определяются вне функции?
(1) внешний, продолжительность существования — постоянно, область действия глобальная (все файлы)
(2) внешний статический, продолжительность существования — постоянно, область действия — глобальная (один файл)
(3) автоматический, продолжительность существования — временно, область действия локальная
(4) регистровый , продолжительность существования — временно, область действия локальная
Что лучше использовать: макроопределение или функцию?
(1) на этот счет нет строгих правил
(2) выбор макроопределения приводит к увеличению объема памяти
(3) выбор функции — к увеличению времени работы программы
(4) не использовать ни того ни другого
Что возвращает оператор sizeof
?
(1) размер операнда, в байтах
(2) количество элементов в структуре, указанной в качестве операнда
(3) количество операций содержит операнд
(4) палиндром выражения, указанного в качестве операнда
Как сообщить компилятору размер массива символьных строк?
(1) нужно описать массив статическим и инициализировать массив при помощи строковой константы
(2) нужно описать массив внешним и инициализировать массив при помощи строковой константы
(3) нужно задать размер массива больше 256
(4) нужно описать массив автоматическим и инициализировать массив при помощи строковой константы
Что понимается под модульным программированием?
(1) организация программы в виде совокупности модулей со строгим соблюдением правил их взаимодействия
(2) организация программы в виде совокупности модулей со строгим соблюдением правил их взаимодействия, описания интерфейса и описания реализации
(3) организация программы в виде совокупности модулей со строгим соблюдением правил их взаимодействия, простейшим модулем является функция
(4) организация программы в виде совокупности строк с соблюдением правил их взаимодействия
Как можно представить данные при вычислении с двойной точностью?
(1) описать данные типа double
(2) описать данные типа float
(3) описать данные типа long
(4) описать данные типа unsigned double float
Для чего используется функция printf( )?
(1) для вывода данных из потока в консоль
(2) дает возможность прерывать работу программы
(3) дает возможность вводить значение данных в программу
К какому типу преобразуется операнд арифметического выражения, если хотя бы один из операндов имеет тип double?
(1) к типу double
(2) к типу float
(3) к типу int
(4) к типу short
Отметьте правильные утверждения о символе EOF
(1) это должен быть символ, который не может появиться где-то в середине файла
(2) так называется символ, заканчивающий файл
(3) общеупотребительным является определение #define EOF -1
(4) так называется признак конца строки
Где используется default?
(1) default используется в операторе if
(2) default используется в операции условия ?:
(3) default используется в операторе while
(4) default используется в операторе switch
Каким циклом является цикл do?
(1) Циклом со счетчиком
(2) Циклом с предусловием
(3) Циклом с постусловием
(4) Простым циклом
Все ли функции могут быть рекурсивными?
(1) все функции могут быть рекурсивными
(2) функции могут быть рекурсивными только типа void
(3) функции могут быть рекурсивными только типа unsigned
(4) функции могут быть рекурсивными только типа unsigned int
Укажите строки, не содержащие ошибок синтаксиса:
(1) printf("Hello, World!"n);
(2) printf("Hello, World!n");
(3) printf(%d Hello, n Hello, World!?);
(4) printf("Hello,n World!n");
Где может находиться программная строка #include?
(1) программная строка #include может находиться в середине файла исходного текста
(2) программная строка #include может находиться в начале файла исходного текста
(3) программная строка #include может находиться в конце файла исходного текста
Что означает функция malloc?
(1) функция возвращает указатель на созданный динамический объект
(2) функция подсчитывает объем памяти для хранения выражения
(3) функция возвращает размер созданного динамического объекта
(4) функция уничтожает динамический объект
Какой заголовочный файл содержит данные о строках?
(1) <setjmp.h>
(2) <getopt.h>
(3) <string.h>
(4) <strings.h>
Что понимается под буферизацией?
(1) под буферизацией мы понимаем то, что вводимые и выводимые данные запоминаются во временной области памяти, называемой буфером
(2) под буферизацией мы понимаем то, что вводимые и выводимые данные запоминаются на дисковой памяти
(3) под буферизацией мы понимаем то, что вводимые и выводимые данные запоминаются на одной области памяти
(4) под буферизацией мы понимаем то, что вводимые и выводимые данные запоминаются на внешней памяти
Что понимают в языке Си под символьной строкой?
(1) символьная строка — это последовательность (возможно пустая) символов, заканчивающихся нулевым символом
(2) символьная строка — это последовательность (возможно пустая) символов заключенная в квадратные скобки
(3) это абстрактный объект строкового типа — string <имя строки>
Как округляется результат деления целых чисел?
(1) округляется до ближайшего целого
(2) в нем отбрасывается дробная часть
(3) округляется до ближайшего большего целого числа
(4) округляется до меньшего целого числа, если дробная часть результата больше 0,5
К какому типу преобразуется операнд арифметического выражения, если хотя бы один из операндов имеет тип long
?
(1) к типу long
, результат имеет тип long
(2) к типу double
(3) к типу int
(4) к типу short
Отметьте правильные утверждения, касающиеся EOF
(1) EOF = 1
(2) EOF = -1
(3) он описан в файле <stdio.h>
(4) нужно подключить файл <stdio.h>
Где используется case?
(1) case используется в операторе if
(2) case используется в операции условия ?:
(3) case используется в операторе while
(4) case используется в операторе switch
В качестве результата может ли функция возвращать массив или функцию? (Отметьте все верные утверждения.)
(1) в качестве результата функция не может возвращать массив
(2) в качестве результата функция может возвращать указатель на массив
(3) в качестве результата функция не может возвращать функцию
(4) в качестве результата функция может возвращать указатель на функцию
Какие имена правильно написаны на языке Си?
(1) Name
(2) name_
(3) +name
(4) {name}
Как задается пустая директива?
(1) #
(2) #pragma
(3) #empty
Функция calloc
:
(1) возвращает указатель на созданный динамический объект
(2) подсчитывает объем памяти для хранения выражения
(3) возвращает размер созданного динамического объекта
(4) уничтожает динамический объект
Какую функцию нужно использовать чтобы присоединить к одной строке заданное количество символов от другой строки?
(1) strcat
(2) strncat
(3) cat
(4) strcmp
Что называется переменной структурой?
(1) в языке Си имеется тип данных, называемый переменной структурой, которая реализуется с использованием комбинации структуры и объединения
(2) в языке Си имеется тип данных, называемый переменной структурой, которая реализуется с использованием комбинации структуры и массива
(3) в языке Си имеется тип данных, называемый переменной структурой, которая реализуется с использованием комбинации структуры и перечисления
(4) в языке Си имеется тип данных, называемый переменной структурой, которая реализуется с использованием комбинации структуры и строки
Что понимают под термином «язык»?
(1) естественная или искусственная знаковая система для общения и передачи информации
(2) естественная или искусственная знаковая система для нажатия клавиши
(3) естественная или искусственная знаковая система для ввода с клавиатуры
(4) естественная или искусственная знаковая система для сбора знаний
Каков порядок вычисления операндов операции сравнения?
(1) справа налево
(2) слева направо
(3) результат не зависит от порядка вычисления
Входят ли функции printf()
и scanf()
в стандартную библиотеку языка Си?
(1) нет
(2) входят
(3) функция printf()
входит в описание языка Си, а функция scanf()
не входит
(4) функция scanf()
входит в описание языка Си, а функция printf()
не входит
К какому типу преобразуется операнд арифметического выражения, если хотя бы один из операндов имеет тип unsigned?
(1) к типу unsigned , результат имеет тип unsigned
(2) к типу unsigned float
(3) к типу unsigned short
Что называется стандартным вводом?
(1) стандартным вводом называется устройство, принятое в качестве обычного средства ввода данных в машину
(2) это устройство чтения данных с магнитной ленты телетайпа
(3) это ввод с клавиатуры
Можно ли написать оператор switch без оператора break?
(1) нет
(2) да, если после выполнения блока операторов следует выйти из функции
(3) да, если нужно выполнить и последующие альтернативы
(4) да, если нужно выполнить оператор default
Чем должно завершаться определение функции, возвращающей значение?
(1) определение функции, возвращающей значения, обязано завершаться оператором return
с операндом соответствующего объявлению типа
(2) определение функции, возвращающей значения, обязано завершаться оператором return
без операнда
(3) определение функции, возвращающей значения должно иметь пустое тело
(4) определение функции, возвращающей значения должно иметь оператор перехода goto
Продолжительность существования переменной — постоянно, а область действия — глобальна (один файл). Какой класс памяти нужно использовать?
(1) внешний статический
(2) внешний
(3) автоматический
(4) статический
Как определить символьную константу DOG директивой #define?
(1) #define DOG ‘5’
(2) #define DOG = 5
(3) #define(DOG)
(4) #define 5! = DOG
Пусть описан массив int a[ ]. Можно ли обращаться к массиву только по имени, без указания индекса?
(1) да, будет возвращен указатель на первый элемент
(2) да, будет возвращено значение первого элемента
(3) да, будет возвращен размер элемента
(4) нет, это приведет к синтаксической ошибке. Обращение к массиву можно производить только с явным указанием индекса
Какой функцией можно прочитать строку из стандартного файла stdin?
(1) gets( )
(2) fputs( )
(3) puts( )
Каково назначение потоковой функции fwrite( )?
(1) читает блок данных из потока
(2) закрывает поток
(3) записывает блок данных в поток
(4) записывает форматированные данные в поток
Может ли struct List при создании списка иметь поле int mas[15 ][15]?
(1) да
(2) нет
(3) только mas[][]
(4) только mas[]
Какие из значений констант написаны верно?
(1) 176
(2) 176L
(3) 0x121
(4) 0XA3L
Каково значение x
после выполнения оператор-выражений x=0; x++;
?
(1) x=0
(2) x=1
(3) x=2
(4) x=3
Как вычисляется значение выражения?
(1) слева направо
(2) справа налево
(3) в соответствии с порядком старшинства операций
(4) с первого целого в выражении
Какой процесс называется повышением типа?
(1) подстановка ключевого слова unsigned к каждому операнду
(2) перестановка операндов в выражении согласно последовательности упорядоченных от высшего типа к низшему
(3) явным преобразованием всех типов операндов выражения к типу void
(4) если операция выполняется над данными двух различных типов, обе величины приводятся к высшему типу из двух типов
Что не произойдет в результате выполнения оператора putchar('H');
?
(1) переход на новую строку на устройстве вывода
(2) шаг назад на одну позицию
(3) печать буквы H
(4) вывод символа '007'
, в результате чего сработает громкоговоритель
Значение number не лежит между 3 и 6. Какое выражение возвращает истину?
(1) number > 3 && number < 6
(2) !(number > 3 && number < 6)
(3) !( number< 6 || number>3)
Пусть int n=0;
, какой цикл написан синтаксически правильно?
(1) while(n > 3 && ) n++;
(2) while(n > 3 && n < 6) n++;
(3) while(&&) n++;
(4) while(n < 0) n++;
Где необходимо описывать локальные переменные в функции?
(1) в вызывающей программе
(2) после первой фигурной скобки
(3) после оператора return
(4) после имени функции и перед первой фигурной скобкой
Какой из приведенных циклов не выполнится ни разу?
(1) unsigned char s = '0'; while(!('9' - s < 0)) printf("%cn", s++)
(2) char c = 255; do { printf("%dn", c--); } while (c > 200)
(3) signed char c = 255; while (c > 200) { printf("%dn", c--); }
(4) for(short i=0; ++i > 0; printf("%dn", i))
Можно ли на языке Си написать компилятор с языка Си при условии, что в наличии уже имеется другой компилятор с языка Си?
(1) да
(2) нет
(3) только при совместном использовании с C#
(4) только при совместном использовании с C++
К каким переменным неприменима операция получения адреса & ?
(1) к внешним переменным
(2) статическим переменным
(3) автоматическим переменным
(4) регистровым переменным
Отметьте правильные варианты включения файлов в код программы?
(1) #include <stdio.h>
(2) #include «stdio.h»
(3) #include «nina.h»
(4) #include «a:nina.h»
Какие операции можно применять для переменных типа указатель?
(1) присваивание
(2) определение значения
(3) получение адреса указателя
(4) увеличение указателя
Какая функция возвращает длину строки?
(1) strlen( )
(2) strchr( )
(3) strrchr( )
(4) strcspn( )
Каким типом будете пользоваться для хранения и обработки данных о количестве членов вашей семьи?
(1) short
(2) float
(3) long
Как сформировать составной оператор?
(1) при помощи функции scanf( )
(2) при помощи функции printf( )
(3) только при совместном использовании функций scanf( ) и printf( )
(4) нужно заключить последовательность операторов в фигурные скобки
Какие типы могут быть явно преобразованы в тип void?
(1) все типы могут быть явно преобразованы в тип void
(2) в тип void могут быть явно преобразованы только типы long и int
(3) в тип void может быть преобразован только тип unsigned
(4) нет, явно в тип void преобразовывать нельзя
Какая из приведенных команд позволит направить данные из файла words
программе get_put
так, как будто они были введены в интерактивном режиме?
(1) get_put < words
(2) get_put > words
(3) get_put words
Дан фрагмент программы:
switch(letter)
{
case ‘a’: printf(«Отпусти свой ум. n»); break;
case ‘e’: printf(«Наблюдайте за вашим телом, если хотите, чтобы ваш ум
работал правильно.n»); break;
case ‘c’: printf(«Мудрость не скажет того, что противно природе.n»); break;
case ‘n’: printf(» Удача — это постоянная готовность использовать
шанс.n»);break;
default: printf(«Юмор — это спасательный круг на волнах жизни.n»);
}
Что будет напечатано, если letter примет значение ‘a’?
(1) Отпусти свой ум.
(2) Юмор — это спасательный круг на волнах жизни.
(3) Удача — это постоянная готовность использовать шанс.
(4) Мудрость не скажет того, что противно природе.
Дан фрагмент программы:
switch(i)
{
case 1: printf(«Попытаемся проанализировать, что сейчас происходит: n»); break;
case 2: printf(«расчистка площади под что-то новое в экономике, n»); break;
case 3: printf(«где могут проклюнуться ростки этого нового, n»); break;
case 4: printf(«или это разрушение, n»);break;
default: printf(«болото, и ничего больше?. n»);
}
Что будет напечатано, если i примет значение 1?
(1) Попытаемся проанализировать, что сейчас происходит:
(2) расчистка площади под что-то новое в экономике,
(3) где могут проклюнуться ростки этого нового,
(4) или это разрушение.
Зачем используют оператор return?
(1) чтобы задержать работу программы
(2) чтобы организовать цикл
(3) чтобы ввести в программу новые значения
(4) функция, в которой он содержится, завершает свое выполнение и управление возвращается в вызывающую функцию
Есть ли у языка Си собственный редактор?
(1) да
(2) нет
(3) только в OС UNIX
(4) только в OС WINDOWS
Какие переменные в блоке не могут быть определены как статические?
(1) формальные параметры функции
(2) возвращаемая переменная функции
(3) фактические параметры функции
(4) символьная переменная
Какие операции нельзя применять для переменных типа указатель?
(1) деление
(2) умножение
(3) деление нацело
Какой файл нужно включить в программу для обработки строк?
(1) #include <string.h>
(2) #include <dos.h>
(3) #include <math.h>
(4) #include <graphics.h>
Как передать в функцию f
указатель на структуру healt_record
?
(1) передать указатель на структуру: f(&healt_record)
(2) передать непосредственно структуру (но только с поверхностным копированием): f (healt_record)
(3) с помощью взятия адреса функции с передачей непосредственно структуры: &f(healt_record)
(4) обратиться к функции как к записи структуры: healt_record.f
На что проверяется условие в цикле while(ch!=EOF)
?
(1) на конец файла
(2) на начало файла
(3) на конец строки
(4) на начало строки
Какова последовательность выполнения операций: *
(умножение), /
,%
?
(1) операции последовательно выполняются слева направо в порядке расположения их в выражении
(2) первой выполняется операция %
(3) первой выполняется операция *
(4) первой выполняется операция /
Как формируется оператор while?
(1) while (проверка условия) оператор
(2) while (проверка условия) {составной оператор}
(3) while оператор (проверка условия)
(4) while составной оператор {проверка условия}
Почему понижение типа может привести к затруднениям?
(1) причина этого проста: все число целиком может не поместиться в элементе данных низшего типа
(2) сложно явно переводить типы к более низкому типу
(3) нарушается структура программы
(4) нарушается баланс скобок в выражении
Есть программа, которая подсчитывает число символов в файле, выполняемый код помещен в файле с именем count. Какая из команд будет производить подсчет числа символов в файле essay, а результат будет помещен в файл essayct?
(1) count > essayct < essay
(2) count < essay
(3) essay > essay
Какое значение lеtter нужно задать, чтобы напечатать «Наблюдайте за вашим телом, если хотите, чтобы ваш ум работал правильно»?
switch(letter)
{
case ‘a’: printf(«Отпусти свой ум. n»); break;
case ‘e’: printf(«Наблюдайте за вашим телом, если хотите, чтобы ваш ум
работал правильно. n»); break;
case ‘c’: printf(«Мудрость не скажет того, что противно природе. n»); break;
case ‘n’: printf(» Удача — это постоянная готовность использовать
шанс.n»);break;
default: printf(«Юмор -это спасательный круг на волнах жизни. n»);
}
(1) letter = ‘e’
(2) letter = e
(3) letter =’c’
(4) letter =’k’
Что будет напечатано, если i
примет значение 3
и будет убран оператор break
в операторе case 3:
?
switch(i)
{
case 1: printf(«Попытаемся проанализировать, что сейчас происходит: n»); break;
case 2: printf(«расчистка площади под что-то новое в экономике, «); break;
case 3: printf(«где могут проклюнуться ростки этого нового, «); break;
case 4: printf(«или это разрушение, n»);break;
default: printf(«болото, и ничего больше?n»);
}
(1) где могут проклюнуться ростки этого нового, или это разрушение,
(2) где могут проклюнуться ростки этого нового,
(3) болото, и ничего больше?
(4) или это разрушение,
Зачем используют оператор return( )
?
(1) чтобы приостановить работу программы
(2) чтобы организовать цикл
(3) чтобы перейти по произвольному адресу в программе
(4) чтобы вернуть произвольное значение, указанное в качестве операнда return
, в вызывающую функцию
Что будет напечатано?
printf(«Что ?n мешает/n вам работать n»);
(1)
Что ?
мешает/n вам работать
(2)
Что ?
мешает
вам работать
(3)
Что ? мешает /n вам работать
(4)
Что? мешает вам работать
Какую возможность предоставляют классы памяти?
(1) создавать объекты с быстрым доступом
(2) создавать объекты, хранящие значение при повторном вызове функции
(3) описывать объекты, распределенные в других единицах компиляции
(4) ограничивать область действия идентификатора единицей компиляции
Каково назначение препроцессора?
(1) назначение препроцессора — обработка исходного текста программы до ее компиляции
(2) назначение препроцессора — подготовка программиста к серьезной работе
(3) назначение препроцессора — облегчить работу программиста по созданию описания программы
(4) назначение препроцессора — для сокращения времени работы компилятора
Как можно найти в строке первое вхождение определенного символа?
(1) при помощи цикла со счетчиком for
, проверяя каждую литеру строки на совпадение с заданной
(2) при помощи цикла с предусловием while
, проверяя каждую литеру строки на совпадение с заданной
(3) при помощи функции pos
(4) при помощи функции strchr
Какие данные объединяет структура?
(1) структура объединяет логически связанные данные разных типов
(2) структура объединяет логически связанные данные только одинаковых типов
(3) структура объединяет логически связанные данные только целых типов
(4) структура объединяет логически связанные данные только неотрицательных целых типов
Что называется меткой?
(1) идентификатор или номер, приписанный оператору программы и используемый в других частях программы для обращения к этому оператору
(2) файл или запись в начале тома диска, содержащие служебную информацию
(3) метка — маркировка
(4) метка — идентификатор
В какой поток помещается результат работы препроцессора?
(1) stdout
(2) stdin
(3) output
(4) input
Над какими типами возможна унарная операция ++?
(1) int
(2) unsigned
(3) long
(4) указатель
Как можно напечатать данные таблицей?
(1) это обеспечивается заданием фиксированной ширины полей
(2) это обеспечивается заданием не фиксированной ширины полей
(3) это обеспечивается анализом и отбором одинаковых по размеру данных
(4) это обеспечивается печатью в столбик
Каким образом может быть преобразовано выражение E явно?
(1) (имя-типа) E
(2) E (имя-типа)
(3) E имя-типа
(4) имя-типа E
Какие формы управления процессом выполнения программ должен обеспечивать язык программирования?
(1) выполнение последовательности операторов
(2) выполнение определенной последовательности операторов до тех пор, пока некоторое условие истинно
(3) использование проверки истинности условия для выбора между различными возможными способами действия
(4) выполнение последовательности операторов с указанного места
Для чего в цикле for можно использовать «запятую»?
(1) Запятая увеличивает гибкость использования цикла for
(2) Запятая позволяет включить в спецификацию цикла for несколько инициализирующих выражений
(3) Запятая позволяет включить в спецификацию цикла for несколько корректирующих выражений
(4) Запятая позволяет сократить число повторений в цикле
Может ли функция содержать более одного оператора return?
(1) функция может содержать более одного оператора return
, если она не возвращает значения
(2) функция может содержать более одного оператора return
, только если тип ее void
(3) функция может содержать более одного оператора return
, только если тип ее short
(4) функция может содержать произвольное количество операторов return
независимо от типа возвращаемого значения
Каким символом должен заканчиваться оператор?
(1) символом «точка с запятой» — ‘;’
(2) символом «точка» — ‘.’
(3) символом «запятая» — ‘,’
(4) символом «двоеточие» — ‘:’
К каким переменным применима операция получения адреса?
(1) операция получения адреса применима к глобальным переменным
(2) операция получения адреса применима к автоматическим переменным
(3) операция получения адреса применима к статическим переменным
(4) операция получения адреса применима к регистровым переменным
Из каких стадий состоит препроцессорная обработка?
(1) все системно-зависимые обозначения перекодируются в стандартные коды
(2) каждая пара из символов » и «конец строки» вместе с пробелами между ними убираются, и тем самым следующая строка исходного текста присоединяется к строке, в которой находилась эта пара символов
(3) в тексте распознаются директивы и лексемы препроцессора, а каждый комментарий заменяется одним символом пустого промежутка
(4) выполняются директивы препроцессора и производятся макроподстановки
Какая связь существует между указателями и массивами?
(1) имя каждого массива может рассматриваться как указатель на первый элемент массива
(2) имя каждого массива может рассматриваться как адрес первого элемента массива
(3) элемент массива a[i] есть элемент, на который указывает значение a+i
Как можно найти в строке последнее вхождение определенного символа?
(1) при помощи цикла со счетчиком for
, проверяя каждую литеру строки на совпадение с заданной
(2) при помощи цикла с предусловием while
, проверяя каждую литеру строки на совпадение с заданной
(3) при помощи функции pos
(4) при помощи функции strrchr
Чем отличается структура от массива?
(1) в отличии от массива, который является однородным объектом, структура может быть неоднородной
(2) структура это составной объект, в который входят компоненты любых типов, за исключением функций, а массив является однородным объектом
(3) структура от массива ничем не отличается
(4) в отличие от массива, для хранения структуры может потребоваться больше места, чем для хранения всех её членов по отдельности
Директиву #define можно использовать для определения символьных и строковых констант, какое использование верно?
(1) #define NULL »
(2) #define NULL ‘0’
(3) #define * «30»
Над какими типами возможна унарная операция — ?
(1) int
(2) long
(3) указатель
В каких случаях используется составной оператор?
(1) чтобы сгруппировать несколько логических связанных операторов в один оператор
(2) в качестве тела функции
(3) для ограничения видимости определенной части программы
(4) для локализации действия описаний
В какой тип можно преобразовать тип void ?
(1) double
(2) float
(3) int
(4) Тип void нельзя преобразовать в какой-либо другой тип
Входит ли ‘n’ в число символов в строке?
(1) да
(2) нет
(3) не обязательно
Что позволяет выбрать простая форма оператора if?
(1) простая форма оператора if позволяет выбрать простой оператор или пропустить его
(2) простая форма оператора if позволяет выбрать составной оператор или пропустить его
(3) простая форма оператора if позволяет выбрать любой из двух составных операторов
(4) простая форма оператора if позволяет выбрать любой из двух простых операторов
Какие циклы называются вложенными циклами?
(1) Вложенным называется цикл, находящийся внутри другого цикла
(2) Вложенным называется цикл чаще всего использующийся
(3) Вложенным называется цикл не содержащий ключевых слов
(4) Вложенным называется цикл, тело которого является составным оператором
Где должно быть помещено описание функции?
(1) до или одновременно с ее определением
(2) после ее определения
(3) после всех директив #include
(4) только в конце программы
Какие имена переменных правильно написаны на языке Си?
(1) Dinner
(2) 2Dinner
(3) week_days
(4) week_daysssssssssssss
Каковы действия обработки директив препроцессора?
(1) замена идентификаторов заранее подготовленными последовательностями символов
(2) включение в программу текстов из указанных файлов
(3) исключение из программы отдельных частей ее текста, условная компиляция
(4) макроподстановка, то есть замена обозначения параметризованным текстом
Что понимают в языке Си под строками?
(1) строки — это произвольный массив знаков
(2) строки — это произвольный набор символов
(3) строки — это последовательность символов, заканчивающаяся символом с нулевым кодом
(4) строки — это упорядоченный набор знаков
Какой функцией можно выделить из строки лексемы, разделенные любым из множества символов, входящих во вторую заданную строку?
(1) pos
(2) cat
(3) lengst
(4) strtok
Может ли функция входить в структуру?
(1) да
(2) нет
(3) да, но только типа void
(4) да, но только типа int
Что понимаем под линейной программой?
(1) программа, не содержащая переходов
(2) программа, содержащая переходы
(3) программа из одного оператора
(4) программа, не содержащая оператора break
Какой символ продолжает макроопределение на вторую строку?
Зачем применяют отступы от поля в строках?
(1) чтобы сделать структуру программы наглядной
(2) чтобы сделать структуру программы не наглядной
(3) чтобы быстрее писать программу
(4) чтобы быстрее прошла компиляция
Предположим , что даны следующие определения и описания
int i;
char *pc, *name;
char *my_calloc( ), *my_strcpy( );
Какие явные преобразования будут верны?
(1) (char)i
(2) pc=(char *) 0777
(3) (emp *) my_calloc(1,sizeof(emp))
(4) (void) my_strcpy(name,"gehani")
Что является файлом в языке Си?
(1) множество однотипных записей
(2) поименованная целостная совокупность данных на носителе
(3) упаковка данных
Отметьте управляющие операторы:
(1) break
(2) continue
(3) default
(4) case
Может ли быть в описании функции не указан класс памяти?
(1) нет
(2) да, при этом если в описании не указан класс памяти, то по умолчанию, предполагается extern
(3) да, при этом если в описании не указан класс памяти, то по умолчанию, предполагается static
Может ли переменная одновременно принадлежать к разным классам памяти?
(1) нет
(2) к статическому и автоматическому
(3) к статическому и регистровому
(4) к внешнему и автоматическому
Пусть есть двумерный массив. Какой адрес записан верно?
(1) &grid[ ][ ]
(2) grid[0]
(3) *grid[0]
Как можно скопировать строку s2
в строку s1
?
(1) s1 = s2
(2) strcpy(s1,s2)
(3) strncpy(s1,s2,1)
(4) strncpy(s1,s2,strlen(s2))
Какое служебное слово у объединения?
(1) unoins
(2) union
(3) join
(4) collect
Какая из операций написана неверно?
(1) <=
(2) =>
(3) >=
(4) =
Как вычисляются выражения со смешанными типами данных?
(1) с помощью автоматического преобразования типов
(2) выражение обнуляется
(3) группируются однотипные операции
(4) все переводится в целый тип данных
При вычислении выражения со смешанными типами данных с помощью автоматического преобразования и явного преобразования типов могут ли быть разные результаты?
(1) да
(2) нет
(3) да, если первый операнд преобразуется явно, а последующие неявно
(4) да, если выражение не имеет функции
Какое значение нужно задать letter, чтобы напечатать фразу: «Юмор — это спасательный круг на волнах жизни»?
switch(letter)
{
case ‘a’: printf(«Отпусти свой ум. n»); break;
case ‘e’: printf(«Наблюдайте за вашим телом, если хотите, чтобы ваш ум
работал правильно. n»); break;
case ‘c’: printf(«Мудрость не скажет того, что противно природе. n»); break;
case ‘n’: printf(» Удача — это постоянная готовность использовать
шанс.n»);break;
default: printf(«Юмор -это спасательный круг на волнах жизни. n»);
}
(1) letter = ‘k’
(2) letter = ‘f’
(3) letter = ‘v’
(4) letter = ‘w’
Какое значение нужно задать i
, чтобы напечатать фразу «болото, и ничего больше?» ?
switch(i)
{
case 1: printf(«Попытаемся проанализировать, что сейчас происходит: n»); break;
case 2: printf(«расчистка площади под что-то новое в экономике, n»); break;
case 3: printf(«где могут проклюнуться ростки этого нового, n»); break;
case 4: printf(«или это разрушение, n»);break;
default: printf(«болото, и ничего больше?. n»);
}
(1) i = 100
(2) i = 200
(3) i = 400
(4) i = 1
Может ли функция не иметь аргументов?
(1) да
(2) нет
(3) только если функция возвращает значение типа void
Какое значение будет иметь переменная i
после выполнения следующего цикла:
char i=0; while (i < 255) printf(«Current value: %dn», i++)
(1) 255
(2) 256
(3) тело цикла не выполнится ни разу, следовательно значение i
будет равно нулю
(4) это бесконечный цикл, значение i
не может быть определено
Главная /
Основы программирования на языке C /
Укажите строки, не содержащие ошибок синтаксиса:
Укажите строки, не содержащие ошибок синтаксиса:
вопрос
Правильный ответ:
printf("Hello, World!"n);
printf("Hello, World!n");
printf(%d Hello, n Hello, World!?);
printf("Hello,n World!n");
Сложность курса: Основы программирования на языке C
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Спасибо за оценку!
Комментарии:
Другие ответы на вопросы из темы программирование интуит.
-
#
Как обратиться к элементу массива структур?
-
#
Какой процесс называется повышением типа?
-
#
Какое из выражений правильное?
-
#
Что будет напечатано, если i примет значение 3 и будет убран оператор break в операторе case 3:?
switch(i)
{
case 1: printf(«Попытаемся проанализировать, что сейчас происходит: n»); break;
case 2: printf(«расчистка площади под что-то новое в экономике, «); break;
case 3: printf(«где могут проклюнуться ростки этого нового, «); break;
case 4: printf(«или это разрушение, n»);break;
default: printf(«болото, и ничего больше?n»);
} -
#
Может ли функция не иметь аргументов?
Язык разметки Markdown широко распространён в вебе. На нём пишут readme-файлы и документацию, а его принципы работы используют для оформления сообщений и публикаций в мессенджерах и социальных сетях.
Markdown легко конвертируется в HTML, открывается во всех текстовых редакторах и легко читается даже в виде исходного кода. При этом писать на нём куда проще, чем на других языках разметки: HTML, XML, TeX и так далее.
Гайд по синтаксису языка разметки Markdown:
- Диалекты и редакторы
- Параграфы и разрывы строк (paragraphs and line breaks)
- Заголовки (headings)
- Выделение текста (emphasis)
- Курсив (italic)
- Жирный (bold)
- Жирный курсив (bold and italic)
- Зачёркнутый (strikethrough)
- Подчёркнутый (underline)
- Разделители (horizontal rules)
- Цитаты (blockquotes)
- Списки (lists)
- Нумерованные (ordered)
- Ненумерованные (unordered)
- Чекбоксы (checkboxes)
- Вложенные (nested)
- Другие элементы внутри списков
- Ссылки (links)
- Картинки (images)
- Вставка кода (code)
- Таблицы (tables)
- Экранирование (escaping characters)
- Как использовать Markdown в мессенджерах
- Резюмируем
Базовым Markdown уже мало кто пользуется. Зато у него существуют спецификации и диалекты, которые добавляют в язык новые функции: встраивание HTML-тегов, создание таблиц и чекбоксов, зачёркивание текста, разные варианты переноса строки.
Разные редакторы Markdown могут поддерживать или не поддерживать часть новых функций — учтите это при выборе платформы, на которой будете работать.
Самый распространённый Markdown — диалект GitHub Flavored Markdown, основанный на спецификации CommonMark. В этой статье мы пользуемся редактором Markdown Editor, который поддерживает практически все инструменты этой парочки (кроме чекбоксов).
Чтобы поделить текст на параграфы, между ними нужно оставить пустую строку. Строка считается пустой, даже если в ней есть пробелы и табуляции. Если же строки находятся рядом, то они автоматически склеиваются в одну.
Первый параграф Второй параграф Продолжение второго параграфа
Скриншот: Skillbox Media
Для переноса строки внутри одного параграфа есть три метода:
- поставить в конце строки два или больше пробела ;
- поставить в конце строки обратную косую черту ;
- использовать HTML-тег <br>.
Перенос с помощью пробелов Перенос с помощью обратного слеша Перенос с помощью тега <br> Последняя строка
Скриншот: Skillbox Media
Обратите внимание, что у каждого из методов есть свои недостатки:
- пробелы в конце строки бывает трудно заметить, и это может запутать читателя;
- обратный слеш вводится в стандарте CommonMark и может поддерживаться не всеми редакторами;
- HTML-теги в Markdown также поддерживаются не всеми редакторами.
В синтаксисе Markdown есть шесть уровней заголовков: от H1 (самого большого) до H6 (самого маленького). Для их выделения используют решётки #, при этом есть несколько тонкостей:
- решётки можно ставить как перед заголовком, так и с двух сторон от него (на уровень заголовка влияют только те #, которые находятся перед ним);
- количество решёток соответствует уровню заголовка: одна для первого уровня, две для второго и так далее;
- между решёткой и текстом ставится пробел.
# Заголовок первого уровня ## Заголовок второго уровня ## ### Заголовок третьего уровня #### Заголовок четвёртого уровня # ##### Заголовок пятого уровня ############ ###### Заголовок шестого уровня
Скриншот: Skillbox Media
У заголовков первого и второго уровня есть альтернативный способ выделения: на следующей строке после них нужно поставить знаки равенства = или дефисы —. Вот несколько правил:
- знак = применяется для заголовков H1;
- дефис применяется для заголовков H2;
- если в одной строке поставить оба знака, то работать ничего не будет;
- можно ставить любое количество знаков, и на тип заголовка это не повлияет;
- между заголовком и знаками не должно быть пустых строк.
Заголовок первого уровня = Заголовок первого уровня ========= Заголовок второго уровня - Заголовок второго уровня ----------
Скриншот: Skillbox Media
Чтобы изменить начертание текста, нужно выделить его с двух сторон спецсимволами следующим образом: <спецсимвол>текст<спецсимвол>.
Для выделения текста курсивом нужно использовать одну звёздочку * или нижнее подчёркивание _.
*Текст курсивом* _Текст курсивом_
Для выделения текста жирным нужно использовать две звёздочки ** или два нижних подчёркивания __.
**Жирный текст** __Жирный текст__
Скриншот: Skillbox Media
Для выделения текста сразу обоими стилями нужно использовать три звёздочки *** или три нижних подчёркивания ___.
***Текст жирным курсивом*** ___Текст жирным курсивом___
Скриншот: Skillbox Media
Обратите внимание, что если вы хотите выделить фрагмент внутри слова, то это корректно сработает только при использовании звёздочек.
Кор*рек*тно, кор**рек**тно, кор***рек***тно Некор_рек_тно, некор__рек__тно, некор___рек___тно
Скриншот: Skillbox Media
Чтобы зачеркнуть текст, нужно использовать две тильды ~~. Такая опция есть только в диалекте GitHub Flavored Markdown.
~~Зачёркнутый текст~~
Скриншот: Skillbox Media
В синтаксисе Markdown нет встроенного способа подчеркнуть текст. Но если ваш редактор поддерживает HTML, то можно использовать теги:
<u>Подчёркнутый текст</u>
Скриншот: Skillbox Media
Чтобы оформить горизонтальный разделитель, нужно поставить три или больше специальных символа: звёздочки *, дефиса — или нижних подчёркивания _. Они должны находиться на отдельной строке, и между ними можно ставить любое количество пробелов и табуляций.
Если ваш редактор поддерживает HTML-теги, то для разметки можно также использовать тег <hr>.
*** --- ___ * * **
Скриншот: Skillbox Media
Чтобы параграф отобразился как цитата, нужно поставить перед ним закрывающую угловую скобку >.
> Оформление цитатой последовательных строк внутри одного параграфа
Скриншот: Skillbox Media
Внутрь одного блока цитаты можно поместить сразу несколько параграфов и использовать любые элементы оформления. Например, заголовки и другие цитаты. Чтобы сделать это, нужно поместить закрывающую угловую скобку перед началом каждой строки.
> # Заголовок > Первый параграф > > Второй параграф > > > Вложенная цитата > > > Цитата третьего уровня > > Продолжение основной цитаты
Скриншот: Skillbox Media
В синтаксисе Markdown есть несколько видов списков. Для их оформления перед каждым пунктом нужно поставить подходящий тег и отделить его от текста пробелом.
Для создания нумерованного списка перед пунктами нужно поставить число с точкой. При этом нумерация в разметке — ленивая. Неважно, какие именно числа вы напишете: Markdown пронумерует список автоматически.
1. Первый пункт 2. Второй пункт 3. Третий пункт 1. Первый пункт 1. Второй пункт 1. Третий пункт 1. Первый пункт 73. Второй пункт 5. Третий пункт
Скриншот: Skillbox Media
Список можно начинать и не с единицы. Для нумерации важно только то число, которое стоит перед первым пунктом.
27. Первый пункт 27. Второй пункт 27. Третий пункт
Скриншот: Skillbox Media
Обратите внимание, что между двумя нумерованными списками, идущими подряд, нужно отбить две пустые строки. Если отбить только одну, то Markdown воспримет два списка как один. Некоторые редакторы в таком случае увеличивают интервал между пунктами.
1. Первый пункт 2. Второй пункт 3. Третий пункт 1. Четвёртый пункт 2. Пятый пункт 3. Шестой пункт
Скриншот: Skillbox Media
Для создания ненумерованного списка нужно поставить перед каждым пунктом звёздочку *, дефис — или плюс +.
* Первый пункт * Второй пункт * Третий пункт - Первый пункт - Второй пункт - Третий пункт + Первый пункт + Второй пункт + Третий пункт
Скриншот: Skillbox Media
Обратите внимание, что Markdown относит к разным спискам пункты, перед которыми стоят разные маркеры. Даже несмотря на то, что мы не оставляем пустых строк между списками.
Если же два списка идут подряд, а перед их пунктами стоят одинаковые маркеры, тогда между ними нужно отбить две пустые строки (как в случае с нумерованными списками).
Чтобы сделать чекбоксы, нужно использовать маркированный список, но между маркером и текстом поставить [x] для отмеченного пункта и [] — для неотмеченного.
Чекбоксы доступны в диалекте GitHub Flavored Markdown (тот самый, который умеет зачёркивать текст) и поддерживаются не всеми редакторами Markdown. Например, нам для демонстрации примера пришлось открывать другой.
- [x] Отмеченный пункт - [ ] Неотмеченный пункт
Скриншот: Skillbox Media
Чтобы создать вложенный список, нужно поставить перед его пунктами табуляцию или несколько пробелов. В Markdown одна табуляция соответствует четырём пробелам.
Список одного вида можно вкладывать в любой другой.
1. Пункт 1. Подпункт 1. Подподпункт - Пункт - Подпункт - Подподпункт 1. Пункт - Подпункт * Подподпункт + Пункт 1. Подпункт - Пункт - [x] Отмеченный подпункт - [ ] Неотмеченный подпункт 1. Подподпункт
Скриншот: Skillbox Media
На самом деле количество пробелов, которые нужно поставить для корректного отступа, рассчитывается чуть сложнее. Берётся количество символов в маркере (один для *, — и +, два для 1., три для 10.) и к нему прибавляется любое число от 1 до 4.
Таким образом, если в маркере 1 символ, нужно поставить от 2 до 5 пробелов, если 2 символа — от 3 до 6, если 3 символа — от 4 до 7.
В пункты списков можно добавлять другие элементы оформления. Например, параграфы или цитаты. Для этого нужно сделать отступ, как если бы вы добавляли вложенный список.
1. Первый пункт > Цитата внутри первого пункта 1. Второй пункт Параграф внутри второго пункта 1. Третий пункт
Скриншот: Skillbox Media
Самый лёгкий способ поместить ссылку в Markdown — заключить её в угловые скобки. Несмотря на простоту, он не является основным и был добавлен только в спецификации CommonMark.
<https://skillbox.ru/media/code/>
Скриншот: Skillbox Media
Чтобы оформить ссылкой часть текста, используется такой синтаксис: [текст](ссылка). Можно сделать всплывающую подсказку при наведении курсора. Для этого в круглых скобках после ссылки нужно поставить пробел и написать текст подсказки в кавычках.
[Skillbox Media](https://skillbox.ru/media/) без подсказки [Skillbox Media](https://skillbox.ru/media/ "Всплывающая подсказка") с подсказкой
Скриншот: Skillbox Media
Ещё один способ оформить ссылку — справочный. Он работает как сноски в книгах: [текст][имя сноски]. При таком способе организации ссылок в конце документа нужно также написать и оформить саму сноску: [имя сноски]: ссылка. При желании после ссылки можно добавить подсказку — точно так же, как в предыдущем методе.
Имя сноски может быть любым сочетанием символов: цифрами, буквами и даже знаками препинания. На одну и ту же сноску в тексте можно ссылаться сколько угодно раз.
Ссылки, оформленные справочным методом, выглядят и работают точно так же, как и в предыдущем способе. Сами сноски в отформатированном документе не отображаются.
[Skillbox Media][1] [Раздел «Код»][code] [1]: https://skillbox.ru/media "Всплывающая подсказка" [code]: https://skillbox.ru/media/code/
Скриншот: Skillbox Media
Изображения в Markdown оформляются по принципу, схожему с принципом оформления ссылкок, только перед квадратными скобками нужно поставить восклицательный знак: ![текст](путь к изображению). Здесь также можно сделать всплывающую подсказку.
![Изображение](https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Markdown-mark.svg/1920px-Markdown-mark.svg.png "Логотип Markdown")
Скриншот: Skillbox Media
Можно использовать и справочный метод: ![текст][имя сноски]. Сноски оформляются так же, как и в ссылках: [имя сноски]: путь к изображению — в них тоже можно добавлять подсказки.
![Изображение][1] [1]: https://upload.wikimedia.org/wikipedia/commons/thumb/4/48/Markdown-mark.svg/1920px-Markdown-mark.svg.png "Логотип Markdown"
Такая разметка выведет тот же результат, что и предыдущая.
В Markdown есть несколько способов выделить исходный код:
- если надо отобразить фрагмент кода внутри строки с каким-то текстом, нужно с двух сторон выделить этот код одним или несколькими обратными апострофами (`; их ещё называют бэктиками);
- чтобы выделить фрагмент из нескольких строк, нужно с двух сторон выделить его тремя обратными апострофами;
- также перед фрагментом кода можно поставить табуляцию или четыре пробела, при этом предыдущая строка должна быть пустой.
Функция `print (x)` выводит содержимое переменной ```x```. ``` #include <stdio.h> int main() { printf("Hello, World!"); return 0; } ``` let x = 12; let y = 6; console.log(x + y);
Скриншот: Skillbox Media
Если обрамлять код тремя обратными апострофами, то после первой тройки можно указать язык программирования — тогда Markdown правильно подсветит элементы кода.
```python if x > 0: print (x) else: print ('Hello, World!') ``` ```c #include <stdio.h> int main() { printf("Hello, World!"); return 0; } ``` ```javascript let x = 12; let y = 6; console.log(x + y); ```
Скриншот: Skillbox Media
Возможность вставлять блоки кода тремя обратными апострофами появилась в спецификации CommonMark, но там не указан список псевдонимов: как правильно называть языки, чтобы Markdown понял, о чём речь.
Поэтому каждая реализация ведёт свой собственный список языков и их псевдонимов. Так как их очень много, да ещё и новые время от времени добавляются, то удобных таблиц обычно не делают. Предлагают сразу ознакомиться с конфигурационным файлом.
Вот такой список языков, например, поддерживает диалект GitHub Flavored Markdown.
В уже упомянутом выше диалекте GitHub Flavored Markdown (и некоторых других тоже) есть возможность оформлять таблицы. Столбцы разделяются вертикальными линиями |, а строка с шапкой отделяется от остальных дефисами —, которых можно ставить сколько угодно.
|Столбец 1|Столбец 2|Столбец 3| |-|--------|---| |Длинная запись в первом столбце|Запись в столбце 2|Запись в столбце 3| |Кртк зпс| |Слева нет записи|
Скриншот: Skillbox Media
Чтобы выровнять весь столбец по правому краю, в строке с дефисами сразу после дефисов можно поставить двоеточие :. Чтобы выровнять содержимое по центру, надо поставить двоеточия с обеих сторон.
|Столбец 1|Столбец 2|Столбец 3| |:-|:-:|-:| |Равнение по левому краю|Равнение по центру|Равнение по правому краю| |Запись|Запись|Запись|
Скриншот: Skillbox Media
Многие символы в Markdown выполняют роль служебных. Если они встречаются в вашем тексте сами по себе, то для корректного отображения их стоит экранировать (иначе они просто не только не отобразятся сами, но и добавят вашему тексту какое-нибудь ненужное форматирование). Для этого перед ними ставится обратная косая черта .
Вот список символов, которые нужно экранировать: `*_{}[]<>()#+-.! |. Делать это постоянно необязательно — достаточно ставить экран только в тех случаях, когда Markdown может воспринять эти символы как служебные. Например, если строка начинается с символа #, то экранировать её надо — потому что программа может решить, что вы хотите сделать заголовок. А вот если решётка находится где-то в центре строки, то экранировать ничего не надо — редактор поймёт, что тут она просто часть текста.
Как мы уже писали, принципы Markdown используются при разметке текста во многих мессенджерах. Обычно он используется для выделения текста, при этом синтаксис у каждой платформы свой.
Жирный:
- Telegram и Discord — **две звёздочки с двух сторон**;
- WhatsApp и Viber — *одна звёздочка с двух сторон*.
Курсив:
- Telegram — __два нижних подчёркивания с двух сторон__;
- WhatsApp и Viber — _одно нижнее подчёркивание с двух сторон_;
- Discord — *одна звёздочка с двух сторон* или _одно нижнее подчёркивание с двух сторон_.
Подчёркнутый:
- Discord — __два нижних подчёркивания с двух сторон__.
Зачёркнутый:
- WhatsApp и Viber — ~одна тильда с двух сторон~;
- Discord — ~~две тильды с двух сторон~~.
Моноширинный (используется для вставки кода):
- Telegram, WhatsApp, Viber и Discord — «`три обратных апострофа с двух сторон«`;
- в Discord точно так же, как и в Markdown, можно указывать язык программирования для подсветки синтаксиса.
Спойлер:
- Telegram и Discord — ||две вертикальные черты с двух сторон||.
Этой шпаргалки по разметке Markdown будет достаточно для создания полноценного документа. А там, где встроенных возможностей языка не хватит, можно встраивать HTML-код.
Синтаксис Markdown простой, гибкий и нетребовательный. У него есть несколько реализаций, благодаря которым в нём можно:
- выделять параграфы и переносить строки,
- оформлять заголовки,
- изменять начертание текста,
- ставить горизонтальные разделители,
- выделять цитаты,
- составлять списки,
- прикреплять ссылки,
- вставлять картинки и исходный код,
- делать таблицы.
И ещё одно небольшое примечание. Если вы форматируете текст с помощью HTML-тегов или форматируете код тремя обратными апострофами, то Markdown будет автоматически пытаться искать закрывающий символ — то есть будет придумывать, куда его поставить, даже если у вас его нет. Остальные симметричные символы (*_~`) работают в пределах одной строки.
Если программа на Python написана синтаксически некорректно, то интерпретатор выводит на экран соответствующее сообщение. Также он указывает на файл и строчку, где произошла ошибка.
Синтаксическая ошибка возникает в том случае, когда код записали с нарушением грамматических правил. В естественных языках грамматика важна, но текст с ошибками обычно можно понять и прочитать. В программировании все строго. Мельчайшее нарушение — и программа даже не запустится. Примером может быть забытая ;
, неправильно расставленные скобки и другие детали.
Вот пример кода с синтаксической ошибкой:
print('Hodor)
Если запустить код выше, то мы увидим следующее сообщение:
$ python index.py
File "index.py", line 1
print('Hodor)
^
SyntaxError: EOL while scanning string literal
С одной стороны, ошибки синтаксиса — самые простые, потому что они связаны с грамматическими правилами написания кода, а не со смыслом кода. Их легко исправить: нужно лишь найти нарушение в записи. С другой стороны, интерпретатор не всегда может четко указать на это нарушение. Поэтому бывает, что забытую скобку нужно поставить не туда, куда указывает сообщение об ошибке.
Задание
Это задание не связано с уроком напрямую. Но будет полезным потренироваться с выводом на экран.
Выведите на экран:
What Is Dead May Never Die
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет 🤨
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя 🤔
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно 🙄
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
-
Виды ошибок в Python
Определения
-
Синтаксическая ошибка — нарушение грамматических правил языка программирования.
-
SyntaxError (ошибка парсинга) — тип ошибок в Python, возникающих при наличии синтаксических ошибок в коде.
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics