Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Нейбауер А. - Моя первая программа на С C++ - 2002

.pdf
Скачиваний:
322
Добавлен:
13.08.2013
Размер:
5.88 Mб
Скачать

{

puts("Как можно заразиться солитером?\n"); puts("Для получения правильного ответа

нажмите Enter\n");

pause=getchar();

puts("Если есть недожаренное мясо\n"); return;

}

quest3()

{

puts("Назовите основные группы крови.\n"); puts("Для получения правильного ответа

нажмите Enter\n");

pause=getchar();

puts("Основных групп крови четыре A, B, AB и O\n"); return;

}

quest4()

{

puts("Как будет по-французски море?\n"); puts("Для получения правильного ответа

нажмите Enter\n");

pause=getchar();

puts("По-французски море называется la mer\n"); return;

}

2.Напишите программу, в которой вводится число, а затем вызывается функция для расчета и отображения четвертой степени этого числа.

main()

{

int number;

printf("Введите целое число: "); scanf("%d", &number); tothefourth(number);

}

tothefourth(value) int value;

{

int power; power=value*value*value*value;

printf("Четвертая степень числа %d равна %d",

value, power);

return;

Ⱦɚɧɧɚɹ ɜɟɪɫɢɹ ɤɧɢɝɢ ɜɵɩɭɳɟɧɚ ɷɥɟɤɬɪɨɧɧɵɦ ɢɡɞɚɬɟɥɶɫɬɜɨɦ %RRNV VKRS Ɋɚɫɩɪɨɫɬɪɚɧɟɧɢɟ ɩɪɨɞɚɠɚ ɩɟɪɟɡɚɩɢɫɶ ɞɚɧɧɨɣ ɤɧɢɝɢ ɢɥɢ ɟɟ ɱɚɫɬɟɣ ɁȺɉɊȿɓȿɇɕ Ɉ ɜɫɟɯ ɧɚɪɭɲɟɧɢɹɯ ɩɪɨɫɶɛɚ ɫɨɨɛɳɚɬɶ ɩɨ ɚɞɪɟɫɭ piracy@books-shop.com

}

3.Внесите изменения в программу из упражнения 2 так, чтобы функция вычисляла четвертую степень числа, а затем передавала результат в main() для вывода на дисплей.

main()

{

int number, fourth; printf("Введите целое число: "); scanf("%d", &number);

fourth = tothefourth(number);

printf("Четвертая степень числа %d равна %d",

number, fourth);

}

int tothefourth(value) int value;

{

return(value*value*value*value);

}

4.Объясните, почему следующая программа написана неверно: dothis()

{

puts("Это первое"); main();

return(0);

}

main()

{

puts("Это второе"); return();

}

Собственная функция может помещаться только после функции main(), а не перед ней. Собственная функция не может вызывать main(). Программа должна быть отредактирована следующим образом:

main()

{

puts("Это первое"); dothis();

return(0);

}

dothis()

{

puts("Это второе");

www.books-shop.com

return(0);

}

Глава 8

1.Напишите программу, в которой вводится числовое значение, а затем выдается сообщение, четное или нечетное число было введено.

main()

{

int number, remain; printf("Введите число: "); scanf("%d", &number); remain=number % 2; if(remain==0)

puts("Введено четное число");

else

puts("Введено нечетное число");

}

2.Напишите программу, в которой вводится число и затем выдается сообщение, находится ли значение числа в пределах от 1 до 100.

main()

{

int number; printf("Введите число: "); scanf("%d", &number);

if(number > 0 && number <= 100)

puts("Значение числа находится в пределах от 1 до 100");

}

3.Напишите программу, в которой вводится целое число, а затем выдается сообщение, в каком интервале находится значение числа: меньше 0, от 0 до 50, от 51 до 100, от 101 до 150, больше 150.

main()

{

int number; printf("Введите число: "); scanf("%d", &number); if(number < 0)

puts("Введено отрицательное число");

else

if(number > 0 && number < 51)

puts("Число находится в пределах от 0 до 50");

else

if(number > 50 && number <= 101) puts("Число находится в пределах от 51 до 100");

www.books-shop.com

else

if(number > 101 && number < 151) puts("Число находится в пределах от 101 до 150");

else

puts("Введенное число больше 150");

}

4.Напишите программу, которая просит пользователя ввести числовые значения в переменные lownum и highnum. Значение lownum должно быть меньше чем highnum. Если числа введены не в соответствии с этим условием, программа должна поменять значения, поместив меньшее число в lownum, а большее— в highnum. Значения переменных должны быть выведены на экран.

main()

{

int lownum, highnum, temp;

puts("Введите два числа. Первое число \n"); puts("должно быть меньше, чем второе.\n"); printf("Введите меньшее число: "); scanf("%d", &lownum);

printf("Введите большее число: "); scanf("%d", &highnum); putchar('\n');

if(lownum < highnum)

puts("Вы ввели числа в правильном порядке.\n");

else

{

temp = highnum; highnum = lownum; lownum = temp;

puts("Вы ввели числа неправильно.\n"); puts("Придется исправить Вашу ошибку.\n");

}

printf("Значение переменной lownum

равно %d\n", lownum); printf("Значение переменной highnum

равно %d\n", highnum);

}

5.Объясните, почему следующая программа написана неверно: main()

{

int age;

printf(Укажите Ваш возраст); scanf("%f", &age);

www.books-shop.com

if age < 18 then

puts("Вы не можете участвовать в выборах"); else

if age > 18 then

puts("Вы можете участвовать в выборах");

В первой инструкции printf() литерал не заключен в кавычки. Переменная age, определенная с типом int, вводится с помощью функции scanf() как float. Условие в инструкции if не заключено в круглые скобки. Слово then лишнее.

Программа не выведет никакого сообщения в том случае, если будет указан возраст ровно 18 лет.

Глава 9

1.Отредактируйте текст программы из Листинга 8.10 (глава 8) таким образом, чтобы она повторялась до тех пор, пока пользователь не пожелает прекратить ввод данных.

main()

{

float rate, hours, total, regular, extra, d_time, overtime;

int moredata; do

{

printf("Введите оплату часа работы: "); scanf("%f", &rate);

printf("Введите количество отработанных часов: ");

scanf("%f", &hours); d_time=rate * 2;

if (hours <= 40)

{

regular = hours * rate; extra = 0.0;

overtime = 0.0; total = regular;

}

else

{

regular = 40 * rate; extra = hours - 40;

overtime = extra * d_time;

www.books-shop.com

total = regular + overtime;

}

putchar('\n');

printf("Ваш обычный недельный заработок равен %.2f\n", regular);

printf("Вы отработали %.2f часов сверхурочно\n", extra);

printf("Оплата 1 часа сверхурочных равна $%.2f\n", d_time);

printf("Заработок за сверхурочные часы равен %.2f\n", overtime);

printf("Итого, Ваш недельный заработок составляет %.2f\n", total);

printf("Желаете продолжить расчет? Y or N: ");

moredata = getchar(); putchar('\n');

}

while(moredata=='y' || moredata=='Y');

}

2.Напишите программу, которая рассчитывает сумму 6-процентного налога на продажи для товаров, имеющих стоимость в пределах от 1 до 50 долларов, и выводит информацию на экран монитора в виде таблицы

Цена

Налог

Итого

 

1

 

$.06

$1.06

2

 

$.12

$2.12

main()

{

int cost;

float shipping, total; puts("Цена\tНалог\tИтого\n"); for(cost=1;cost<51;cost++)

{

shipping = cost * 0.06; total = cost + shipping;

printf("$%d\t$%.2f\t\t$%6.2f\n",cost, shipping, total);

}

}

3.Напишите программу, которая вводит десять чисел в пределах от 0 до 25. main()

{

int count, number;

www.books-shop.com

for(count=1;count<11;count++)

{

printf("Введите значение N%d", count); putchar('\n');

do

{

printf("Вводите числа в пределах от 0 до 25: "); scanf("%d",&number);

}

while(number<0 || number > 25); putchar('\n');

}

}

4.Напишите программу, которая выводит на дисплей следующий график:

** * * *

** * *

** *

**

*

**

** *

** * *

** * * *

main()

{

int outer,inner; for(outer=5;outer>0;outer--)

{

for(inner=1;inner<=outer;inner++)

printf("*");

putchar('\n');

}

for(outer=2;outer<6;outer++)

{

for(inner=1;inner<=outer;inner++)

printf("*");

putchar('\n');

}

}

5.Объясните, почему следующая программа написана неправильно: main()

www.books-shop.com

{

float row, column; puts("\t\tТаблица Пифагора\n\n"); for (row = 1; row <= 10; row++

{

for (column = 1; column <= 10; column+ printf("%d", row * column);

}

putchar('\n');

}

Переменные row и column определены с типом float, но если вы хотите использовать их в цикле, они должны относиться к типу int. Инструкция putchar('\n') помещена таким образом, что она будет выполнена только один раз. Таблица, таким образом, будет выведена в одну линию. Поместите инструкцию на одну строку выше, перед закрывающей фигурной скобкой.

Глава 10

1.Напишите программу, в которой массивы используются для хранения имен, адресов и номеров телефонов 20 человек.

main()

{

char names[20][20], street[20][20], city[20][20];

char state[20][3], zip[20][6], phone[20][13], lookfor[20];

int count; for(count=0;count<20;count++)

{

puts("Введите имя"); gets(names[count]); puts("Введите название улицы"); gets(street[count]); puts("Введите город"); gets(city[count]);

puts("Введите штат"); gets(state[count]); puts("Введите индекс"); gets(zip[count]);

puts("Введите номер телефона");

www.books-shop.com

gets(phone[count]);

}

}

2.Внесите в программу из упражнения 1 изменения так, чтобы иметь возможность ввода имени и последующего просмотра массива в поисках номера телефона соответствующего человека.

main()

{

char names[20][20], street[20][20], city[20][20];

char state[20][3], zip[20][6], phone[20][13], lookfor[20];

int count; for(count=0;count<20;count++)

{

puts("Введите имя: "); gets(names[count]);

puts("Введите название улицы: "); gets(street[count]);

puts("Введите город: "); gets(city[count]); puts("Введите штат: "); gets(state[count]); puts("Введите индекс: "); gets(zip[count]);

puts("Введите номер телефона: "); gets(phone[count]);

}

puts("Введите имя: "); gets(lookfor);

for(count=0; count<20;count++)

{

if(strcmp(names[count],lookfor)==0) printf("%s %s\n", names[count],

phone[count]);

}

}

3.Объясните, почему следующая программа написана неправильно: main()

{

int temps(31); int index, total;

for (index = 0; index < 31; index++)

{

printf("Введите значение

www.books-shop.com

температуры #%d: ", index); scanf("%d", &temps(index));

}

high = temps(0);

low = temps(0); index = 1; while (index < 31)

{

if (temps(index) > high)

high = temps(index);

else

low = temps(index);

index++;

}

printf("Минимальное значение

температуры равно %d\n", low); printf("Максимальное значение

температуры равно %d\n", high);

}

Индексы всех элементов массива temps заключены в круглые скобки, вместо квадратных. Переменные high и low не определены. Переменная total определена, но не используется в программе. Конструкция if...else написана с ошибкой: если рассматриваемое значение не превышает текущее значение переменной high, это не

значит, что оно непременно меньше текущего значения переменной low.

Глава 11

1.Напишите программу, в которой структура используется для составления инвентарной описи. Информация включает в себя название продукта, цену, количество, имя поставщика.

struct product

{

char name[20]; float cost;

int quantity; char vendor[20]; } item;

main()

{

puts("Введите сведения о товаре\n\n"); printf("Введите наименование:");

www.books-shop.com

Соседние файлы в предмете Программирование на C++