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

Давыдов В.Г. - Программирование и основы алгоритмизации - 2003

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

Вид выводимых строк (ниже знак ^ обозначает пробел):

[+254]

'^^[''^^^^254]

(^^1234,

б) ^-^

(1.234560Е+03)

/^^'-^^^'^^^^Стр/^^

/м/

Вариант

77. Фрагмент Си-программы:

i n t

d

=

254;

 

float

f

=

1234.56;

 

cha.xr

"^str

= "Строка

символов";

Вид ВЫВОДИМЫХ строк (ниже знак ^ обозначает пробел):

(-^'-^^^1234,5600) ^^ (1234.5600^^^^'') /Стр/^^/м/

 

Вариант 12. Фрагмент Си-программы:

±пЬ

d

=

113;

 

float

f

=

12.34;

 

char

*str

= "Строка

символов";

[ +

Вид ВЫВОДИМЫХ строк (ниже знак ^ обозначает пробел):

113^^^^^]^^[^^^'-^254]

 

(--^+12.3)

 

 

 

/Строка^^^^^/^^/ил/

 

 

 

 

Вариант, 13, Фрагмент Си-программы:

±nt

d

=

254;

 

float

f

=

1234.56;

 

сЪат

*str

= "Строка

символов";

Вид выводимых строк (ниже знак ^ обозначает пробел):

^^^^^254]'^^[^^254^^''^^^^'^^^]

(+1234.

6) ^'^

(^^^^^1.23Е+03)

/ ^ ^ ^ ^ ^Строка/

"^ ^ / ^ "^лов/

Вариант

14. Фрагмент Си-программы:

±nt

d

-

254;

 

float

f

=

1234.56;

 

char

*str

= "Строка

символов";

Вид выводимых строк (ниже знак ^ обозначает пробел):

Y ^ ^ ^ ^ ^+254]^"[254

- ^ - - -

;

(1234.

5 -

- - - - ; ^ ^ ( ^ 1 . 2 3 4 Е + 0 3 )

/Стр

- - ' - - -

/ ' - ^/мв/

 

 

340

Вариант 15. Фрагмент Си-программы:

±пЬ

d

=

254;

 

float,

f

=

1234.5 6;

символов";

char

*str

= "Строка

Вид выводимых строк (ниже знак ^ обозначает пробел):

[-254^^^^^]^^[^^^^^+254] (^^^+1234.5600)

/Строка симв^^^^/^^/т/

Вариант 16. Фрагмент Си-программы:

xnt

d

=

123;

 

float

f

=

1234.56;

строка";

char

*str

= "Прочитанная

Вид ВЫВОДИМЫХ строк (ниже знак ^ обозначает пробел):

[^-^^^^^123]^^[1234.

 

6-^^^^^]

 

(123-----)

 

 

 

 

/^^^^^^^^^^Просто/

 

 

 

 

Вариант

17. Фрагмент Си-программы:

±Tit

d

=

123;

 

float

f

=

1234.56;

 

char

*str

= "Прочитанная

строка";

Вид выводимых строк (ниже знак ^ обозначает пробел):

[----- + 123]--[ + 1234.

6-----J

(-----123.)

 

Вариант

18. Фрагмент Си-программы:

±nt

d

=

254;

 

 

float

f

=

1234.56;

 

 

char

*str

= "Строка

символов";

Вид ВЫВОДИМЫХ строк (ниже знак ^ обозначает пробел):

[+254]--[-----254]

 

 

 

 

(--1234. 6) --

(1.234560Е+03)

 

 

/^^^^^-^^^^^Стр/--

/м/

 

 

Вариант

19. Фрагмент Си-программы:

int

d

=

123;

 

 

float

f

=

1234.56;

 

 

char

*str

= "Прочитанная

строка";

341

Вид выводимых строк (ниже знак ^ обозначает пробел):

(123 ;

Вариант 20. Фрагмент Си-программы:

±пЬ

d =

123;

float

f =

1234.56;

сЪ.а.х:

*str

= "Прочитанная строка";

Вид ВЫВОДИМЫХ строк (ниже знак ^ обозначает пробел):

[^^^^-^ + 123] ^^[ + 1234. 6^^^^^] (^^^^^123,)

* П.1.1.4. Простейшие ветвления. Варианты тестов

Вариант 1. С помощью операторов ветвлений и присваивания записать фрагмент программы, вычисляющий значение переменной п по следующему правилу:

[

л+1

при 1=1 или 1=5^

п := [ а+Ь

при 1=7 или 1=12,

[

а-Ь

в остальных случаях

Вариант 2. С помощью операторов ветвлений и присваивания записать фрагмент программы, вычисляющий значение переменной п по следующему правилу:

[ п+1

при а>0

и Ь=0,

п := [ а-^Ь

при а<=0

и Ь=0,

[ а-Ь

в остальных случаях

Вариант 3. Изобразить фрагмент схемы алгоритма, соответст­ вующий следующему фрагменту программы:

±f ( с < 3 ) ±f ( с == 2 ) а++; else b-h-h; а += 1;

Вариант 4. Изобразить фрагмент схемы алгоритма, соответст­ вующий следующему фрагменту программы:

±f ( с < 3 ) ±£ ( с -== 2 ) а + + ; Ь++; а += 1;

Вариант 5. С помощью операторов ветвлений и присваивания записать фрагмент программы, вычисляющий значение переменной п по следующему правилу:

342

[

1

при

i=l или

2 или 1,

л := [ 2

при

1=10,

случаях

[

О

в остальных

Вариант 6. Изобразить фрагмент схемы алгоритма, соответст­ вующий следующему фрагменту программы:

±f( с

== 1 ) а + + ; else ±f( с == 2 ) а-~; else ±f( с === 3 )

а

-h= 1/

Вариант 7. С помощью операторов ветвлений и присваивания записать фрагмент программы, вычисляющий значение переменной п по следующему правилу:

[

л+1

при

1=4,

7 или 9,

л := [ а+Ь

при

1=1 или

[

а-Ь

в остальных

случаях

Вариант 8. С помощью операторов ветвлений и присваивания записать фрагмент программы, вычисляющий значение переменной Z по следующему правилу:

[ х+5 при а>2 и Ь=0, Z := [ а+Ь при а<0,

[ X в остальных случаях

Вариант 9. Изобразить фрагмент схемы алгоритма, соответст­ вующий следующему фрагменту программы:

±f( с

< 3

) ±£( с == 2 ) а + + / else b++/ ±f( с < 2 ) C+ +;

а

+=

1;

Вариант 10. Записать фрагмент программы, соответствующий следующему фрагменту схемы программы (рис. 101):

у

 

 

 

: > ^ Да

R:=X;

P:=Y;

Q:=1;

 

Нет

 

 

i к

 

R:=Y;

Р:=Х:

 

Рис. 101. Фрагмент схемы программы

Вариант 11. Записать фрагмент программы, соответствующий следующему фрагменту схемы программы (рис. 102):

343

X>Y

Да

Q:=1;

 

Нет

 

 

 

 

R:=Y; P:=X;

Рис. 102. Фрагмент схемы программы

Вариант 12. Изобразить фрагмент схемы алгоритма, соответ­ ствующий следующему фрагменту программы:

±£( с < 3

)

±f(

с

== 2

) a-h + ;

else

b+-h;

±f( с < 2

)

c+-h/

else

a

+=^ 1;

{

C+ + /

b+ +;

}

 

 

 

 

Вариант

13. Изобразить фрагмент схемы алгоритма,

соответ­

ствующий следующему фрагменту программы:

 

 

 

 

 

 

 

 

Z :=

[ х+5

при

1 = 1 , 3 , 5 ;

 

 

 

 

 

 

 

 

[ а-\-Ь

при

1 = 2 , 4 , 6 ;

случаях

 

 

 

 

 

 

 

[ к

в остальных

Вариант

14. Записать фрагмент программы, соответствующий

следующему фрагменту схемы программы (рис. 103):

 

 

^а<=Ь^

Да

 

 

 

 

 

 

a:=d;

 

 

Нет

R:=X; P:=Y;

Рис. 103. Фрагмент схемы программы

Вариант 15. Изобразить фрагмент схемы алгоритма, соответ­ ствующий следующему фрагменту программы:

±f( с <= 1 ) а + + ; else ±f( с == 5 ) а--; else

а *= 2;

Вариант 16. Записать фрагмент программы, соответствующий следующему фрагменту схемы программы (рис. 104):

V"^""

a:=d;

уДа

i L

 

R:=X; P:=Y;

Рис. 104. Фрагмент схемы программы

344

Вариант 17, С помощью операторов ветвлений и присваива­ ния записать фрагмент программы, вычисляющий величину i ( i >= О ) по следующему правилу:

 

л :=

[ л+1 при

1=0,

т.д.

 

[ а+Ь

при

1=2,4,6,8,10 и

 

 

[ а-Ь

в остальных случаях

Вариант

18. Изобразить фрагмент схемы алгоритма,

соответ­

ствующий следующему фрагменту программы:

 

±£( с < 5 ) ±f(

с == 1 )

а + + ;

Ь-

-= 1;

 

Вариант 19. С помощью операторов ветвлений и присваива­ ния записать фрагмент программы, вычисляющий значение пере­ менной Z по следующему правилу:

[

х-ь5

при

а>2 и Ь=0,

Z := [

а+Ь

при

а<=2,

[

X

в остальных случаях

Вариант 20. Записать фрагмент программы, соответствующий следующему фрагменту схемы программы (рис. 105):

V^^

R:=X;

P:=Y;

у

 

i i

Нет

 

 

 

Рис. 105. Фрагмент схемы программы

П.1.1.5. Циклы. Варианты тестов

Вариант 1. Задан массив:

float

а[ 34 ];

Написать фрагмент программы, который напечатает с новой строки значения элементов массива по пять элементов в строке и по пятнадцать позиций на элемент. Печатаемые значения прижимать к левой границе поля вывода, а положительные значения печатать со знаком плюс. Решить задачу с помощью цикла/Ьг.

345

Вариант

2. Задан массив:

double

а[ 104 ];

Написать фрагмент программы, который напечатает с новой строки значения элементов массива по пять элементов в строке и по пятнадцать позиций на элемент. Печатаемые значения прижимать к правой границе поля вывода, а положительные значения печатать со знаком плюс. Решить задачу с помощью цикла do-while.

Вариант

J. Задан массив:

dLovible

а[ 43 ] ;

Написать фрагмент программы, который напечатает с новой строки значения элементов массива по четыре элемента в строке и по девятнадцать позиций на элемент. Печатаемые значения прижи­ мать к левой границе поля вывода, положительные значения печа­ тать со знаком плюс, а в дробной части печатать три цифры. Решить задачу с помощью цикла while.

Вариант

4, Задан массив:

воллЫе

а[ 50 ];

Написать фрагмент программы, который напечатает с новой строки значения элементов массива по четыре элемента в строке и по двадцать позиций на элемент. Печатаемые значения прижимать к правой границе поля вывода, а в дробной части печатать 6 цифр. Решить задачу с помощью цикла do..while.

Вариант

5. Задан массив:

double

а[ 50 ];

Написать фрагмент программы, который напечатает в уже от­ крытый поток ''Output с новой строки значения элементов массива по четыре элемента в строке и по двадцать позиций на элемент. Печатаемые значения прижимать к правой границе поля вывода, а в дробной части печатать шесть цифр. Решить задачу с помощью цик­ ла do..while. Использовать только один цикл.

Подключить необходимые стандартные заголовочные файлы.

Вариант 6, Дано следующее определение:

±пЬ к;

346

При каких исходных значениях к приведенный ниже цикл бу­ дет выполняться бесконечно?

wb±le ( к < 5 ) k+'h;

Возможные варианты ответов: при к <= ..., или при к >= ..., или таких к не существует.

Вариант 7. Пусть определены переменные

±пЬ

к, п;

Укажите, что напечатает следующий фрагмент программы (ни­ же знак ^ обозначает пробел):

prlntf(

 

"\n\n^%-2s-\n"r

"

" ) ;

 

for(

к =

7;

к

>= 5;

к— ;

 

 

I

 

 

 

 

 

 

 

printf(

 

"\п\п" )

;

 

 

п

=

6 -

к;

printf(

"%i--%-h3d-%5s--'\

к, л , " - " ) ;

}

 

 

 

 

 

 

 

 

Вариант

8. Дано следующее определение:

int

 

 

 

к;

 

 

 

При каких исходных значениях к приведенный ниже цикл бу­ дет выполняться бесконечно?

Willie ( к >^ 15 ) к+ + ;

Возможные варианты ответов: при А: <= ..., или при к >— ..., или таких к не существует.

Вариант 9. Пусть определены переменные:

int

к, п;

Укажите, что напечатает следующий фрагмент программы (ни­ же знак ^ обозначает пробел):

printf(

 

"\n\n\t^%-2s-\n"r

"12345" ) ;

for(

к =

5;

к

> 5;

к++

)

{

 

 

"\л\л"

; /

 

printf(

 

"%±-^%4d^%2s^^", кг п, "-" ) ;

п

=

б -

к/

pr±ntf(

}

Вариант 10. Дано следующее определение:

347

±nt

к;

При каких исходных значениях к приведенный ниже цикл бу­ дет выполняться бесконечно?

do

{

к+ + ;

} while ( к > 10 ) ;

Возможные варианты ответов: при к <= ..., или при к >= ..., или таких к не существует.

Вариант 11, Пусть определены переменные:

±пЬ

 

 

 

 

к,

п;

 

 

 

 

 

Укажите, что напечатает следующий фрагмент программы (ни­

же знак ^ обозначает пробел):

 

 

 

printf(

 

"\n%-3.2s\n",

 

"*****"

) ;

 

foi:(

к

=

5;

к

> 5;

к--

)

 

 

 

{

^

6

-

к;

printf(

"%i--%04d-%2s--",

к, л , " - " ) ;

п

}

 

 

 

 

 

 

 

 

 

 

 

Вариант

12. Дано следующее определение:

int

 

 

 

 

к;

 

 

 

 

 

 

При каких исходных значениях к приведенный ниже цикл бу­

дет выполняться бесконечно?

 

 

 

do

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

к++ ;

к

>

-5 )

;

 

 

 

 

} while

(

 

 

 

 

 

Возможные варианты ответов: при к <= ..., или при к >= ..., или

таких к не существует.

 

 

 

 

Вариант

13. Пусть определены переменные:

int

 

 

 

 

к,

п;

 

 

 

 

 

Укажите, что напечатает следующий

фрагмент программы (ни­

же знак ^ обозначает пробел):

 

 

 

printf(

 

"\n\n-%-5s-\n",

 

"

"

; /

 

348

fojc(

к ^

5;

к

>= 5;

к— ;

 

(

 

 

 

 

 

 

printf(

 

"\п\п"

) ;

 

п

=

6 -

к;

printf(

"%l--%4d-%2s--",

к, л , " - " ) ;

}

 

 

 

 

 

 

 

Вариант

14. Дано следующее определение:

±nt

 

 

 

к;

 

 

При каких исходных значениях к приведенный ниже цикл бу­ дет выполняться бесконечно?

while(

к < 12 ) к++;

Возможные варианты ответов: при к <= ..., или при к >= ..., или таких к не существует.

Вариант 15. Пусть определены переменные:

±пЬ

кг п;

Укажите, что напечатает следующий фрагмент программы (ни­ же знак ^ обозначает пробел):

printf(

к =

"\n%3s\n",

" - "

) ;

 

for(

5;

к

> 5;

к--

)

 

{

=

б -

к;

printf(

 

"%i--%4d-%2s--",

к, л , " - " ) ;

п

 

}

Вариант 16. Сколько раз будет выполнено тело приведенного ниже цикла?

for( ±nt к=4; к<17; к+=3 ) /

Возможные варианты ответов: тело цикла будет выполнено ...

раз или цикл будет выполняться бесконечно.

Вариант 17. Пусть определены переменные:

±пЬ

к, п;

Укажите, что напечатает следующий фрагмент программы (ни­ же знак ^ обозначает пробел):

printf(

"\n%3s\n",

"-12345"

) ;

for(

к = 5; к >= 1;

к— ;

 

(

 

 

 

349