You are on page 1of 3

ПИК1 – Примерно задание за контролно

I. Запишете какво ще изведе следната програма като дадете обяснение за всеки получен
резултат:
#include<stdio.h>
short f(short a,short *b) 1:14 14 28
{--a;(*b)--;return a+*b;} 2:6 3
int main () 3:1 0 1 0
{ 4:6 5
short x,y,z,arr[]={9,4,2,1,5},*p=arr; 5:10 5 0
float k;char m[]="kgfhgigftu"; 6:6 7 0
y=z=13;x=(++y);z=x+y;printf("1:%d %d %d\n",x,y,z); 7:3 3
x=2;x*=(y=3);printf("2:%d %d\n",x,y); 7:4 4
x=0;y=5;z=4;printf("3:%d %d %d %d\n",x||y,x&&y,x<y||z,!z); 7:5 5
y=5;if(y)x=6;else x=8;printf("4:%d %d\n",x,y); 8:4 3 6
y=4;if(z=(y++>4))x=3;else x=10;printf("5:%d %d %d\n",x,y,z); 9:9.94
x=y=6;while(y++<4)x+=y;printf("6:%d %d %d\n",x,y,z); 10:kgfhgigftu g
for(x=y=3;y<6;x=++y)printf("7:%d %d\n",x,y);
x=y=4;z=f(x,&y);printf("8:%d %d %d\n",x,y,z);
k=7.936;printf("9:%.2f\n",k+2.0);
printf("10:%s %c\n",m,*(m+4));
return 0;
}

II. Отговорете на следните тестови въпроси:


1. Запишете оператор за четене на една цяла стойност от клавиатурата и записа й в променлива
с името а1. Декларирайте променливата.
int a1;
scanf(“%d”,&a1);
2. Запишете оператор за извеждане на стойност на променлива с името b1 върху монитора.
Извеждането на стойността да е в три позиции върху екрана.
printf(“b1=%3d\n”,b1);
3. Кой форматен спецификатор се използва за извеждане на символни последователности
върху екрана на монитора?
%s
4. Декларирайте указател с името р към цял тип.
int *p;
5. Зададен с следния код:
float x=72.3;
float *pp;
Запишете оператор за насочване на указателя рр към променливата х.
pp=&x;

1
6. Запишете оператор за отпечатване на стойността на променливата х от въпрос 5 чрез
указателя рр, който е насочен към нея:
printf(“x=%f\n”,*pp);
7. Декларирайте едномерен масив с името mas с 10 цели числа.
int mas[10];
8. Запишете цикъл за разпечатване на стойностите масива mas от въпрос 7 върху екрана на
монитора. За управлението на цикъла използвайте променливата i:
int i;
for(i=0;i<10;i++)
print(“%d\n”,a[i]);
9. Декларирайте функция с името f1, която има три параметъра (а – цяло число, b – реално
число, c – указател към цял тип). Функцията не връща резултат.
void f1(int a, float b, int *c);
10. Извикайте функцията от въпрос 9 със следните фактически параметри x – цяло число, y –
реално число, z – цяло число.
f1(x,y,&c)

III. Напишете програма на езика С за следното задание:


В текстовия файл Kapa.txt са въведени цели числа, записани по едно на ред. Напишете
програма с три функции:
a)int main(), която отваря файла, извиква другите две функции, извежда получения резултат на
екрана и затваря файла;
b)int sum(FILE *) за изчисляване на сумата от числата във файла в интервала [10,100];
c)void broi(FILE *) за определяне колко пъти се среща във файла символ, въведен с параметъра
ch.
#include<stdio.h> Kapa.txt
int sum(FILE *f); 23
45
void broi(FILE *f);
666
int main() 7
{ 11
20
FILE *f;
if(!(f=fopen("Kapa.txt","rt"))){
printf("Failat ne moje da se otvori!\n");
return 1; Failat e otvoren uspeshno!
suma=99
} Vavedete simvol ch=6
printf(“Failat e otvoren uspeshno!\n”); broi=3
printf("suma=%d\n",sum(f));

2
rewind(f);
broi(f);
fclose(f);
return 0;
}
int sum(FILE *f)
{
int s=0,next;
while(fscanf(f,"%d",&next)!=EOF) //четене на числа
if ((next>=10)&&(next<=100))
s=s+next;
return s;
}
void broi(FILE *f)
{
int num=0,next;char ch;
printf("Vavedete simvol ch=");
scanf("%c",&ch);
while((next=fgetc(f))!= EOF) //четене на символи
if (next==ch) num++;
printf("broi=%d\n",num);
}

You might also like