Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и основы программирования.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.54 Mб
Скачать

Вопрос 37

Варианты описания массивов в языке программирования Си. Аргументы функции main.

Примеры:

int a[2][3]; /* представлено в виде матрицы

a[0][0] a[0][1] a[0][2]

a[1][0] a[1][1] a[1][2] */

float b[10]; /* вектор из 10 элементов имеющих тип double */

int w[3][3] = { { 2, 3, 4 },

{ 3, 4, 8 },

{ 1, 0, 9 } };

В последнем примере объявлен массив w[3][3]. Списки, выделенные в фигурные скобки, соответствуют строкам массива, в случае отсутствия скобок инициализация будет выполнена неправильно.

В языке C заданы два встроенных аргумента функции main: argc и argv.

Выглядит это так:

int main(int argc, char *argv[])

Аргумент argc типа integer содержит в себе количество аргументов командной строки.

Аргумент argv типа char - указатель на массив строк. Каждый элемент массива указывает на аргументы командной строки. Один параметр отделяется от другого пробелами.

argv[0] - полное имя запущенной программы

argv[1] - первая строка записаная после имени программы

argv[2] - вторая строка записаная после имени программы

argv[argc-1] - последняя строка записаная после имени программы

argv[argc] - NULL

Вопрос 38

Основные спецификации форматного ввода/вывода (для функций printf и scanf) в библиотеке stdio языка программирования Си.

Символ

Вводимые данные; тип аргумента

d

десятичное целое: int *

i

целое: int *. Целое может быть восьмеричным (с 0 слева) или шестнадцатеричным (с 0x или 0X слева)

o

восьмеричное целое (с нулем слева или без него); int *

u

беззнаковое десятичное целое; unsigned int *

x

шестнадцатеричное целое (с 0x или 0X слева или без них); int *

c

символы; char *. Следующие символы ввода (по умолчанию один) размещаются в указанном месте. Обычный пропуск символов- разделителей подавляется; чтобы прочесть очередной символ, отличный от символа-разделителя, используйте %1s

s

Строка символов(без обрамляющих кавычек); char *, указывающая на массив символов, достаточный для строки и завершающего символа '\0', который будет добавлен

e, f, g

число с плавающей точкой, возможно, со знаком; обязательно присутствие либо десятичной точки, либо экспоненциальной части, а возможно, и обеих вместе; float *

%

сам знак %, никакое присваивание не выполняется

Символ

Тип аргумента; вид печати

d, i

int; десятичное целое

o

unsigned int; беззнаковое восьмеричное (octal) целое (без нуля слева)

x, X

unsigned int; беззнаковое шестнадцатеричное целое (без 0x или 0X слева), для 10...15 используются abcdef или ABCDEF

u

unsigned int; беззнаковое десятичное целое

c

int; одиночный символ

s

char *; печатает символы, расположенные до знака \0, или в количестве, заданном точностью

f

double; [-]m.dddddd, где количество цифр d задается точностью (по умолчанию равно 6)

e, E

double; [-]m.dddddde±xx или [-]m.ddddddE±xx, где количество цифр d задается точностью (по умолчанию равно 6)

g, G

double; использует %e или %E, если порядок меньше, чем -4, или больше или равен точности; в противном случае использует %f. Завершающие нули и завершающая десятичная точка не печатаются

p

void *; указатель (представление зависит от реализации)

%

Аргумент не преобразуется; печатается знак %