PProg_cw_04.pdf
(
127 KB
)
Pobierz
235976514 UNPDF
Podstawyprogramowania
IrokAutomatykaiRobotykaPWr
wiczenia–Zestaw4
Zakresmateriału
Analizapoprawno±cikonstrukcji,wyliczaniewyra»e«zwska¹nikamiitablicami,r¦cznasymulacja,
opracowywaniefunkcjiprogramu.
Zadania
1.Maj¡czdefiniowanewprogramie
int
i=7,
p=&i,
t[10],
q1;
odpowiedznaponi»szepytania.
•
Którezpodstawie«s¡poprawne:
a)
q1=&i;
b)
q1=&&i;
c)
q1=p;
d)
q1=&p;
e)
q1=*t[5];
f)
q1=&t[5];
g)
q1=&t;
h)
q1=t;
•
Czypowykonaniu
q1=t;q1++;
warto±ci
t[1]
i
*q1
s¡równe?Czywynosz¡one7?
2.Załó»my,»emamynast¦puj¡cedeklaracje:
#defineROZMIAR5
intliczby[ROZMIAR]=
{
3
|{z}
a
2
,
10
|{z}
a
3
|{z}
a
4
,
9
|{z}
a
5
−
adresy
}
;
int*wsk1,*wsk2;
wsk1=liczby;
wsk2=&liczby[3];
okre±lka»d¡zponi»szychinstrukcji:
a)
liczby+2==&liczby[2]
b)
*(liczby+2)==liczby[2]
c)
*(liczby+1)
d)
*liczby+2
e)
liczby
f)
*wsk1
g)
printf("%d,%p",*wsk1++,wsk1)
h)
printf("%d,%p",*++wsk1,wsk1)
1
|{z}
a
1
,
8
,
3
Podstawyprogramowania,IrokAutomatykaiRobotykaPWr 2
i)
(*wsk2)++
j)
wsk1+4==&liczby[4]
k)
wsk2-2!=&liczby[1]
l)
*--wsk2
m)
wsk2-wsk1
n)
wsk2==wsk1
o)
*wsk2==*wsk1
3.Jakajestwarto±¢
*wsk
i
*(wsk+2)
wka»dymprzypadku?
a)
int*wsk;
intkulki[2][2]={12,14,16}
wsk=kulki[0]
b)
int*wsk;
intpilki[2][2]={{12},{14,16}}
wsk=pilki[0]
4.Ilewynosi
**wsk
i
**(wsk+1)
wka»dymprzypadku?
a)
int(*wsk)[2];
intkulki[2][2]={12,14,16}
wsk=kulki
b)
int(*wsk)[2];
intpilki[2][2]={{12},{14,16}}
wsk=pilki
5.Zadeklarowanozmienne:
chara[10]="0123456789";
char*pa;
charx,y,z;
Którezponi»szychinstrukcjis¡poprawne?Je±lis¡poprawne,jakib¦dzieefektichdziałania.
pa=a;
pa++;
a++;
a=pa;
*pa++;
(*pa)++;
x=*pa;
y=*pa++;
z=*++pa;
printf("%c%c%c\n",x,y,z);
printf("%s\n",pa-2);
6.Podajró»nicepomi¦dzyponi»szymidefinicjamizmiennej
napis
charnapis[80]="Alamakota";
charnapis[] ="Alamakota";
char*napis ="Alamakota";
Podstawyprogramowania,IrokAutomatykaiRobotykaPWr 3
7.Przydefinicjach:
int*zPtr;
int*aPtr=0;
void*sPtr=0;
intliczba,i;
intz[5]={1,2,3,4,5};
sPtr=z;
wyka»bł¦dywponi»szychfragmentachprogramuiopiszwjakisposóbmo»najepoprawi¢.
a)
++zPtr;
b)Abypobra¢pierwszyelementtablicy,nale»yskorzysta¢zekonstrukcji
liczba=zPtr;
c)Przypisanietrzeciegoelementutablicy(owarto±ci3)zmiennej
liczba
uzyskujesi¦przez
liczba=*zPtr[2];
d)Nawydrukowaniecałejzawarto±citablicy
z
pozwalaj¡instrukcje
for(i=0;i<=5;i++)
printf("%d\n",zPtr[i]);
e)Przypisaniewarto±ciwskazywanejprzez
sPtr
zmiennej
liczba
numer=*sPtr;
f)
++z;
8.Załó»my,»eliczbyzmiennoprzecinkowepojedynczejprecyzjiprzechowywanes¡w4bajtach,
natomiastpierwszyelementtablicyznajdujesi¦podadresem1002500.Wykonajnast¦puj¡ce
operacje:
a)Zadeklarujtablic¦liczbtypu
float
zawieraj¡c¡10elementów,onazwie
liczby
,iza-
inicjowa¢j¡warto±ciami:0
.
0,1
.
1,2
.
2,...9
.
9.Załó»my,»estałejsymbolicznej
ROZMIAR
zostałanadanawarto±¢10.
b)Zadeklarujwska¹nik
nPtr
wskazuj¡cynaobiektutypu
float
.
c)Wydrukujnastandardowymwyj±ciuzawarto±¢tablicy
liczby
posługuj¡csi¦indeksem.
Posłu»si¦instrukcj¡
for
,zakładaj¡c,»ezostałazdefiniowanakontroluj¡caj¡zmienna
całkowita
i
.Ka»dyzelementówtablicypowinienby¢wydrukowanyzjednymmiejscem
poprzecinku.
d)Podajprzykładdwóchró»nychwyra»e«,przypisuj¡czmiennej
nPtr
adrestablicy
liczby
.
e)Wydrukujzawarto±¢tablicy
liczby
korzystaj¡cznotacjiwska¹nik/przesuni¦cieorazze
wska¹nika
nPtr
.
f)Wydrukujzawarto±¢tablicy
liczby
korzystaj¡cznotacjiwska¹nik/przesuni¦cie,je»eli
funkcj¦wska¹nikapełninazwatablicy.
g)Wydrukujzawarto±¢tablicy
liczby
indeksuj¡cwska¹nik
nPtr
.
h)Poka»czwartyelementtablicy
liczby
posługuj¡csi¦metod¡indeksowaniatablicy,nota-
cj¡wska¹nik/przesuni¦cie,je»elifunkcj¦wska¹nikapełninazwatablicy,metod¡indekso-
waniawska¹nikaoraznotacj¡wska¹nik/przesuni¦cie,je»elifunkcj¦wska¹nikapełni
nPtr
.
i)Zakładaj¡c,»e
nPtr
wskazujepocz¡tektablicy
liczby
,jakiadresjestokre±lanyprzez
nPtr+8
?Jakaznajdujesi¦tamwarto±¢?
j)Zakładaj¡c,»e
nPtr
wskazujena
liczby[5]
,jakiadresb¦dziewskazywanyprzez
nPtr
powykonaniuoperacji
nPtr-=4
?Wjakisposóbjestprzechowywanawarto±¢podtym
adresem?
Podstawyprogramowania,
IrokAutomatykaiRobotykaPWr 4
9.Czynast¦puj¡cyfragmentkodujestpoprawny?
int
main()
{
int
st;
st=&st;
return
0;
}
10.Cojestniepoprawnegownast¦puj¡cymfragmenciekoduijakmo»natopoprawi¢?
int
main()
{
int
st;
st=100;
printf(”%d
\
n”,
st);
return
0;
}
11.Pracujeszpewnieju»długo.Odpocznijchwil¦:)
12.Czynast¦puj¡cyfragmentkodupoprawnieskompilujesi¦iwykona?Je»elitak,tocozostanie
wy±wietlonenaekranie?
int
main()
{
int
a=5;
a=
&
&
&
&a;
printf(”awynosi%d
\
n”,a);
return
0;
}
13.Czynast¦puj¡cyfragmentkodupoprawnieskompilujesi¦iwykona?
int
main()
{
int
a=5;
a=
&&a;
printf(”awynosi%d
\
n”,a);
return
0;
}
14.Jakiwynikdanast¦puj¡cyprogram?
int
main()
{
char
p;
for
(p=”WNT”;
p;p++)printf(”%c”,
p
−
1);
printf(”
\
n”);
return
0;
}
15.Napiszfunkcjeint
strlen(char*str)
i
intstrlen(charstr[])
,którezwracaj¡długo±¢
stringu.
16.Napiszprogram,którywdanejtablicyliczbcałkowitychwyszukaelementnajwi¦kszy.Wsz¦-
dzie,gdzietojestmo»liwewykorzysta¢wska¹niki.
17.Jeszczejednachwilarelaksuniezaszkodzi.Tymbardziej,»eponi»ejmo»eby¢ci¦»ko:)
18.Napiszfunkcj¦
voiddopisz(char*p,char*q)
któradopisujeci¡gznakówwskazywany
przez
q
doci¡guznakówwskazywanegoprzez
p
.Przyj¡¢,»edługo±¢strukturdanychsłu-
»¡cychdoprzechowywaniaci¡gówwskazywanychprzez
p
i
q
jestokre±lonastał¡
LENGTH
.
Zaproponowa¢przebiegtestówfunkcji.
Podstawyprogramowania,
IrokAutomatykaiRobotykaPWr 5
19.Przeanalizujponi»szyprogram,anast¦pnieodpowiedznapytania.Odpowiedziuzasadnij.
#include
<
stdio.h
>
int
main()
{
int
i, ti[15],
tp1[15],
tp2[15],
tp3[15],
tp4[15];
for
(i=0;i
<
=14;i++)
{
ti[i]=i;
tp1[i]=i;
tp2[i]=&i;
tp3[i]=&ti[i];
tp4[14
−
i]=ti+i;
}
printf(”%d
\
n”,tp1[10]);
printf(”%p
\
n”,tp1[10]);
printf(”%d
\
n”,
(tp1[10]));
/
TEST
/
return
1;
}
a)Któreliniezawieraj¡poleceniapowoduj¡cebł¡dkompilacji?Któreliniezawieraj¡pole-
cenia,któremog¡powodowa¢bł¡dwczasiewykonywaniaprogramu?
b)Jak¡warto±¢maj¡
tp_2[5]
,
*tp_2[5]
wlinii18?
c)Jak¡warto±¢maj¡
tp_3[5]
,
*tp_3[5]
wlinii18?
d)Cozostaniewypisanewlinii14?Acowlinii15?
e)Czypolecenie
printf(”%d
\
n”,
(ti+
tp4[
(ti+3)]));
jestpoprawne?Je±litak,tocozostałobywypisanepoumieszczeniugowlinii18?
20.Programistamiałnapisa¢gr¦wprzesuwank¦naplanszy5x5(naplanszyznajduj¡si¦24
elementyponumerowaneod1do24,jednopolejestpuste,grapoleganauło»eniuelementów
wkolejno±ci).Jakosposóbreprezentacjidanychprzyj¡łtablic¦jednowymiarow¡zdefiniowan¡
jako
intplansza[25];
Przyj¡łtak»enast¦puj¡ceoznaczeniakierunkówprzesuwaniasi¦
wolnegopolanaplanszy:1–góra,2–prawo,4–dół,8–lewo.Pomó»muzdefinowa¢funkcje:
a)
z1d_na2d
,którejpierwszymargumentemb¦dzieindekswtablicy,ab¦dziezwraca¢par¦
liczbb¦d¡cychwspółrz¦dnymi(x,y)elementu;
b)
z2d_na1d
,któranapodstawiewspółrz¦dnych(x,y)wyliczyindekstablicy;
c)
ruch
,któranapodstawieaktualnegoindeksuwolnegomiejscaorazkierunkuwyliczynowe
poło»eniewolnegomiejsca.
21.Niematojaklistazawieraj¡cadwudzie±ciajedenzada«.Naszcz¦±cietozadaniete»pozwala
nachwil¦relaksu.Zwłaszcza,»etoju»koniec(takieinfonawszelkiwypadek,dlatychconie
zauwa»yli:).
Plik z chomika:
fiodor1005
Inne pliki z tego folderu:
PProg_cw_07.pdf
(43 KB)
PProg_cw_06.pdf
(54 KB)
PProg_cw_05.pdf
(63 KB)
PProg_cw_04.pdf
(127 KB)
PProg_cw_03.pdf
(95 KB)
Inne foldery tego chomika:
ANALIZA MATEMATYCZNA 2.3
EGZAMIN
E-NOTATKI
fizpolprzewod
HASZÓWKI
Zgłoś jeśli
naruszono regulamin