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

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

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

п. 1.1.2. Ввод в языках Си/С++. Варианты тестов

Ниже приведены варианты фрагмента программного кода, содер­ жащего определения некоторых переменных. В комментариях к опреде­ лениям переменных указано, какие значения переменных нужно ввести.

Написать фрагмент программы, обеспечивающий:

открытие файла (потока Си) '4npuf^ для работы с файлом операцион­ ной системы "Test2.m'^;

ввод из этого файла (потока Си) значений переменных, указанных в комментариях к программному фрагменту соответствующего вари­ анта;

закрытие файла (потока Си).

Указать, как при этом будут выглядеть строки исходных дан­ ных в файле операционной системы ^^Test2Jn^^ (сделайте это обяза­ тельно, иначе Ваш ответ нельзя будет проверить).

Предусмотреть контроль корректности значений, возвращае­ мых функциями библиотеки Си ^^foperC\ ^^fscanf\ Подключить необходимые стандартные заголовочные файлы.

Вариант

7.

 

 

double

 

d;

/ /

4. 7

char

 

s[ 3 ];

/ /

"Ой

unsigned

long

uli;

/ /

31

short

 

si;

/ /

12

char

 

c;

//

'r'

xnt

 

1;

//

-21

Вариант^ 2.

long

double

b;

 

//4.7

char

s[

3 ];

//

"Я"

long

 

i;

;

//

-1

short

j

 

//12

Вариант

3.

 

 

 

long double

b;

//

4.7e2

char

s[

20 ];

//

"4"

int

i;

;

//

12

unsigned

j

//

0x21

Вариант

4.

 

 

double

b;

//

//4.7

char

s[ 20 ];

"Отлично'

long int

i;

//

-21

330

unsxgned. long-

J/

 

 

//

0x12

 

Вариант

5.

 

 

 

 

float

 

<a.

 

 

//

1.5

±nt

 

b ;

 

 

//

14. 7

 

if

 

 

//

-21

char

 

J/

 

 

//

12

 

Clr

 

 

//

'y'

 

 

c2.

,

 

//

'P'

 

 

c3

 

//

'a '

 

 

c4.

 

 

//

' / '

 

 

s[20];

 

//

"Прочитa иная-строка

 

Вариант

6.

 

 

 

 

float

 

b;

 

 

//

14.0

±nt

 

J/

 

 

//

12

unstgnedL

u;

 

 

//

21

cbeir

 

c4.

 

 

//

'P'

 

 

s[20];

 

//

"Зимний-вeчер"

 

Вариант

7.

 

 

 

 

double

 

d;

 

 

//

2.0

float

 

a.

 

 

//

1.5

 

 

b;

 

 

//

12.21

Int

 

i/

 

 

//

-21

unsigned

J/

 

 

//

0x12

char

 

Clr

 

 

//

'1 '

 

 

c2.

,

 

//

'2'

 

 

c3

 

//

'3'

 

 

c4.

 

 

//

'4'

 

 

s[20]

;

//

n n It

 

 

 

 

Вариант

8.

 

 

 

 

long

double

d;

 

 

//

1.5

float

 

a;

 

 

//

1.5

long

±nt

±;

 

 

//

-1

unsigned

j r

 

 

//

13

char

 

Clr

 

;

//

'4'

 

 

s[20]

//

ngn

 

 

 

 

 

 

 

Вариант

9.

 

 

 

 

float

 

a;

 

 

//

1.5

int

 

i r

 

 

//

21

char

 

J/

 

 

//

-12

 

Clr

 

 

//

'в'

 

 

c2r

 

 

//

'e'

^ 1

 

 

s[20];

//

"Прочмтанная-строка'

 

Варит чт 10.

 

 

float

 

br

//

5.0

long^

±nt

k;

//

15,123

a;

//

27

char

 

Clr

//

' B '

 

 

s[20] ;

/ /

"Строка

Вариант 11, Имеется следующий фрагмент Си-программы:

float

а,

Ь;

±nt

clr

s[20]

char

 

 

 

Строки исходных данных в файле

(потоке

Си)- ''stdin''

имеют

следующий вид (каждая клетка содержит один символ):

 

 

 

 

 

+

+

+

 

+

+

+

+

+

+

+

+

+

+

+

+

 

 

I

I

I

-

I 2

I I

I

1

1 1 .

1

5 1

1 . 1

 

1

1

\п1

 

 

+

+

+

 

+

+

+

+

+

+

+

+

+

+

+

+

 

 

| Э | т | о |

 

| с ! г | р | о | к | а |

 

I

| \ л |

 

 

 

+

+

+

 

+

+

+

+

+

+

+

+

+

+

+

 

 

 

1 1 1 2

1

 

I

I

I \ л |

 

 

 

 

 

 

 

 

 

 

+

+

+

 

+

+

+

+

 

 

 

 

 

 

 

 

 

 

 

Написать фрагмент программы, обеспечивающий чтение из

файла с указателем ''stdin^\

следующих значений:

 

 

 

 

 

а

:

1.5 (должно

быть

прочитано

значение

1.5)

 

 

 

 

 

b

:

14.7

i

:

-21

j

:

12

cl

:

' . '

 

 

 

 

 

S

:

 

"строка"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предусмотреть контроль корректности значений, возвращае­ мых функцией библиотеки Си ^^scanf\ Подключить необходимые стандартные заголовочные файлы.

Вариант 12, Имеется следующий фрагмент Си-программы:

float

a г

b;

 

±nt

ir

j ;

 

char

clr

c2r

c3;

±nt

 

RetCode;

 

 

 

 

RetCode

= fscanf(

stdirir

" %i

%3d %c %c %c %f

%f

",

 

 

&ir &jr

&clr

&c2r Scc3r &br

&a )

;

Строки исходных данных в файле (потоке Си) "stdin" имеют следующий вид (каждая клетка содержит один символ):

332

+

+

+

+

+

+

4-

+

+

+

+

+

+

+

+

I

I

1 - I 7 I 7 I

+

+

| - 1 2 | 4 | 3 1 5 | 5 | 7 | \ л |

+

+

+

+

+

+

+

-|.

+

+

+

-I-

+

I

\ 2 \ .

\ 4 \ e \ 3 \

I

I i

I 4 I

. I

7 I

\ л |

 

+

+

+

+

+

+

+

+

+

+

+

+

+

+

 

I I I 7 I 2 I

I

I \ л |

 

 

 

 

 

 

 

 

+

+

+

+

+

+

+

 

 

 

 

 

 

 

 

Какие

значения

получат

переменные RetCode,

а,

b, /, j ,

cl,

c2,

c3?

Вариант 13, Имеется следующий фрагмент Си - программы:

float

а,

Ь/

 

 

 

 

 

±nt

i,

j ;

c3;

 

 

 

 

chsLx:

cl,

c2,

 

 

 

 

±nt

= fscanf(

RetCode;

%o 2%ld

%c 5%c

%c

%f %f ",

RetCode

stdin,

"

 

 

&i,

&jr

&cl, &c2,

&c3,

&b,

&a ) ;

Строки исходных данных в файле (потоке Си) ''stdin" имеют следующий вид (каждая клетка содержит один символ):

I

I

I

 

1 7 1 7 1

I

I 2 I 4 I 3 I 5 I 5 I 7 I \ л |

+

+

+

 

+

+

+

+

+

+

+

+

+

 

+

-I-

+

I

\ 2

\

.

\

4 \

е \

3 \

I

\ 1

\ 4

\ .

\

7

\

\п\

 

+

+

+

 

+

+

+

+

+

+

+

+

+

 

+

+

 

I I

I 7 I 2

I

I

I

\ л |

 

 

 

 

 

 

 

 

 

+

+

+

 

+

+

+

+

 

 

 

 

 

 

 

 

 

Какие значения получат переменные RetCode,

а,

Ь, i, j , с 1,

с2,

сЗ?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант

 

14, Имеется следующий фрагмент Си - программы:

 

float

 

 

 

а г

Ь;

 

 

 

 

 

 

 

 

 

 

 

±nt

 

 

 

i /

J/

 

 

 

 

 

 

 

 

 

 

 

chstr

 

 

 

clr

s[

20

];

 

 

 

 

 

 

 

 

 

Написать фрагмент программы,

обеспечивающий:

 

 

 

 

открытие файла (потока Си) ''Input"

для работы с файлом

операцион­

ной системы

"Test2.in";

 

 

 

 

 

 

 

 

 

 

 

ввод из этого файла (потока Си) следующих значений указанных ни­ же переменных:

а

1.5

Ь .

4. 7

1

-21

J •

12

с1

t

г

S .

"String

 

 

 

закрытие файла (потока Си).

При этом строки исходных данных в файле операционной сис­ темы "Test2Jn" имеют следующий вид (каждая клетка содержит

333

один символ):

+

+

+

+

+

+

+

+

+

+

+

+

+

+ +

I

I

\ S \ t \ r \ i \ n \ g \

 

\ 1 \ 2 \

1

1 \ л |

I J I . I 5 I

I

\ - \ 2 \ 1 \

I 4 I . I 7 I \ л |

 

+

+

+

+

+

+

+

+

+

+

+

+

+ +

 

I

I -

I .

I -

I

I

\ л |

 

 

 

 

 

 

 

 

++ + + + + +

Предусмотреть контроль корректности значений, возвра­ щаемых функциями библиотеки Си ^^fopen^\ ^^fscanf\ Подклю­ чить необходимые стандартные заголовочные файлы.

Вариант

15. Имеется следующий фрагмент Си-программы:

flo&t

a;

double

Ь;

±nt

i;

unsigned

J r

Написать фрагмент программы, обеспечивающий:

• открытие файла (потока Си) '4npuf для работы с файлом операцион­ ной системы ''Test2.w''\

ввод из этого файла (потока Си) следующих значений указанных ни­ же переменных:

а

:

1.5

b

:

4.7

i

:

-21

j

:

0x12

закрытие файла (потока Си).

При этом строки исходных данных в файле операционной сис­ темы ''Test2An'' имеют следующий вид (каждая клетка содержит один символ):

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

I

I

I

I

I

I

I

\ о

\ к

\ 1

\ 2

\

I

\

\п\

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

\ 1 \ .

\ 5 \

I

\ -

\ 2 \ 1 \

I 4 I . I 7 I \ л |

 

-I-

+

4-

+

+

+

+

+

+

+

+ •

+

+

+

 

Предусмотреть контроль корректности значений, возвра­ щаемых функциями библиотеки Си ^^fopen^\ ^^fscanf\ Подклю­ чить необходимые стандартные заголовочные файлы.

Вариант

16. Имеется следующий фрагмент Си-программы:

flostt

а;

double

Ь;

long int

i;

unsigned long

j ;

Написать фрагмент программы, обеспечивающий:

334

открытие файла (потока Си) "Input'' для работы с файлом операцион­

ной системы "Test2Jn'';

ввод из этого файла (потока Си) следующих значений указанных ни­ же переменных:

а:

1,5

Ь

:

4.7

±:

-21

j

:

0x12

закрытие файла (потока Си).

При этом строки исходных данных в файле операционной систе­ мы "Test2Jn'' имеют следующий вид (каждая клетка содержит один сим­ вол):

-j.

+

+

+

+

-j-

+

+

+

-I-

+

+

+

-I-

+

I

I

I

I

I

I

I

1 0 1 x 1 1 1 2

1

I

I \ л |

I i

1 .

I 3 I

I

1 - I 2 I I I

I 4 I .

I 7 I \ л |

 

+

+

+

+

+

+

+

+

+

+

+

+

+

+

 

Предусмотреть контроль корректности значений, возвра­ щаемых функциями библиотеки Си ^^fopen^\ ^^fscanf\ Подклю­ чить необходимые стандартные заголовочные файлы.

Вариант 17, Имеется следующий фрагмент Си-программы:

float

а г

Ь;

 

 

 

±nt

i,

j , ret

code/

 

 

chcir

cl,

c2 r

c3;

%4d %c %c %c %f %f

",

RetCode

= fscanf(

stdin,

" %i

 

 

&i,

&j, &cl,

&c2, &c3, &ar &b

) ;

При этом строки исходных данных в потоке stdin имеют сле­ дующий вид (каждая клетка содержит один символ):

+

+

+

+

+

+

+

+

+

+

+

 

+

+

+

+

I

I

1 1 1 7 1

\

1 \

2 \

3 \

4 \

5 \

6

\

1 \

\

\п\

+

+

+

+

+

+

+

+

+

+

+

 

4-

+

+

+

\ 2 \ . \ 4 \ е \ 2 \

1 1 I 7 I 2 I

+

|

1 | . | 5 | \ л |

+

+

+

+

+

+

+

+

+

+

 

+

+

+

+

Какие значения получат переменные RetCode, а, Ь, i, j , cl, с2,

сЗ?

 

 

Вариант

18. Имеется следующий фрагмент Си-программы:

float

а,

b;

±nt

^r

J /

cha.r

cl,

s[ 20 ];

Написать фрагмент программы, обеспечивающий:

открытие файла (потока Си) '4npuf' для работы с файлом операцион­ ной системы ''Test2dn''\

335

ввод из этого файла (потока Си) следующих значений указанных ни­ же переменных:

а

:

1.5

b

:

14.7

1

:

1

j

:

12

cl:

 

' .'

s

:

"Это хорошо"

закрытие файла (потока Си).

При этом строки исходных данных в файле операционной систе­ мы "Test2.iii" имеют следующий вид (каждая клетка содержит один символ):

+

+

+

+

+

+

+

-1-

+

+

-I-

+

+

+

+

\

Э \

т \ о \

 

\ к \ о \ р \ о \ ш \ о \

 

I

 

| 1 1 \

1

1

1

. 1 5

1

+

I 1 I 2

I

+

I

I

1 . 1 I

I \ л

+

+

+

+

+

+

+

 

+

+

+

+

+

\ 1 \ 4 \ . \ 7 \

I

I

I

 

I

I

!

I

I \ л |

+

+

+

+

+

+

+

+

 

+

+

+

+

+

+

Предусмотреть контроль корректности значений, возвра­ щаемых функциями библиотеки Си ^^fopen^\ ^^fscanf\ Подклю­ чить необходимые стандартные заголовочные файлы.

Вариант

19, Имеется следующий фрагмент Си-программы:

float

b;

retcode;

±nt

J,

unsigned.

u;

 

char

c4,

s[ 20 ]

Написать фрагмент программы, обеспечивающий:

открытие файла (потока Си) "Input'' для работы с файлом операцион­ ной системы "Test2»in";

ввод из этого файла (потока Си) следующих значений указанных ни­ же переменных:

и

:

21

b

:

14.7

j

:

12

 

 

 

с4:

 

'р'

S

:

"Зима-вечер"

закрытие файла (потока Си).

При этом строки исходных данных в файле операционной систе­ мы "Test2.in" имеют следующий вид (каждая клетка содержит один сим­ вол):

336

+

 

+

+

+

+

 

+

 

+

+

+

+

 

+

+

+

+

+

I

S

l M

l M

l

a l

-

l

B

l

e l ^

J l e

l

p

I

 

\ p \

\

\n\

+

 

+ - - - +

+

+

 

+

 

+

+

+

+

 

+

+

+

+

+

I

 

I

1

I

1

1

1

2

1

I

I

\

2

\ 1

\

\

\n\

 

+

 

+

+

-f

+

 

+

 

+

-I-

-f

+

 

4-

-I-

4-

+

 

I

i

I 4

I .

I 7 I

 

I

 

I

I

1

I

 

I

I

I \ л |

 

H

 

+

+

+

+

 

+

 

+

H +

+

 

+

+

+

+

 

Предусмотреть контроль корректности значений, возвра­ щаемых функциями библиотеки Си ^^fopen^\ ^^fscanf\ Подклю­ чить необходимые стандартные заголовочные файлы.

Вариант

20. Имеется следующий фрагмент Си-программы:

float

Ь;

retcode;

a n t

jr

unsigned.

и;

 

ciiajT

c4,

s[ 20 ];

Написать фрагмент программы, обеспечивающий:

открытие файла (потока Си) ''Input" для работы с файлом операцион­

ной системы "Test2Jn";

ввод из этого файла (потока Си) следующих значений указанных ни­ же переменных:

и

:

21

Ь .

14. 7

1

12

 

"Ура-вечер"

с4:

 

'Р'

S .

закрытие файла (потока Си).

При этом строки исходных данных в файле операционной систе­ мы "Test2Jn'' имеют следующий вид (каждая клетка содержит один сим­ вол):

+

+

4-

+

+

+

+

+

+

+

+

+

+

+

+

1 " | 3 ^ 1 р | а | - | в ! е | ч | е | р | " |

|

 

| \ л |

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

I ' I р

I ' I

I I

I 2 I

I

I

I 2 I I

I

I \ л |

 

+

+

-|.

4-

+

+

+

+

+

+

Ч-

+

+

+

 

I 1

1 4 I .

I 7 I

I

I

I

I

I

I

I

I \ л |

 

-I-

+

^

+

4-

+

+

+

+

+

+

+

+

+

 

Предусмотреть контроль корректности значений, возвра­ щаемых функциями библиотеки Си ^^fopen^\ ^^fscanf\ Подклю­ чить необходимые стандартные заголовочные файлы.

П. 1.1.3. Вывод в языках Си/С++. Варианты тестов

Ниже приведены варианты фрагмента программного кода, со­ держащего вывод в файл (поток Си) ''stdouf\ Укажите, как будут выглядеть строки вывода в файл (поток Си) ''stdouf после выполне­ ния заданного фрагмента. Для удобства в приведенных вариантах

337

фрагментов программного кода символ "^" обозначает пробельный символ.

Вариант 1.

floett

г;

±пЬ

1 = 17;

г = l,5f

* 2.0elf;

fprlntf

( stdout, "*r=%5.2e^%s'^*l = %—i'd\n*%-3s\n".

Вариант 2.

float

r;

 

±nb

1 = 17/

 

r = 1.5 * 2,Of­

 

fprint

f( stdout,

"*r^%5.2f^%5s^*l=%-+10d\n*%-30s\n",

 

r, " _ " , 1,

"*", );

Вариант 3.

double

r;

int

1 = 17;

r = 1.543 * 2. 0;

fprlntf(

stdoutr "*r=%5.21f'^%-4s^-^l = %- + 10d\n*%-8s\n",

Вариант^ 4.

float

r = 3.0;

int

1 = 17;

fprlntf

( stdoutr

"*r=%5.2f''%5s^*l = %- + 10d\n*%-30s\n",

 

T^ II n

,• II Tic " ) .

Вариант

5.

 

float

r

=

1.5e2;

±nt

1 = 7 ;

fprlntf(

stdout,

"^%30s\n^r=%f^%5s^l=%10d\n", "*", r ,

 

""", 1 );

Вариант 6.

 

float

r =

1.5e2;

int

1 = 5 ;

fprlntf(

stdout,

"^r=%f'^%-5s^l = %+10d\n'^%2.3s",

 

 

 

Гг "*", 1, "строка" );

Ниже приведены варианты фрагментов программного кода, содержащие определения данных и их инициализацию.

338

Написать фрагмент программы, обеспечивающий:

Опфытие файла (потока Си) ^^Outpuf^ для работы с файлом операци­

онной системы ^^ Tests. ouf\

• Вывод в открытый поток ''Outpuf строк заданного вида.

Указание. При выводе максимально использовать указанные в вариан­ тах данные и возможности форматированного вывода.

Закрытие файла (потока Си).

Предусмотреть контроль корректности значений, возвращае­ мых функциями библиотеки Qnfopen п/close. Подключить необходимые стандартные заголовочные файлы.

Вариант

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

long

d

=

254;

double

f

=

1234.56;

cha.r

str[

] = "Строка 1";

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

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

(+1234.6^) (1.234560E-h03^^)

Вариант

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

±nt

d

=

254;

float

f

=

1234.56;

chstr

str[

] = "Строка";

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

[^'^•f-254]'^[254]

(+1234.6'^) (1.234560Е+03)

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

±nt

d

=

254;

float t

f

=

1234.56;

cha.r

str[

] = "Строка

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

[^'^+254]^[254] (+1234.6^) (1.234560Е+03) /^^^-^^^-^^^^Стр/

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

±nt

d

=

254;

 

flosLt

f

=

1234.56;

символов";

сЬлг

*str

= "Строка

339