Задачи на анализ программ, написанных на языке Си 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задачи на анализ программ, написанных на языке Си



Задачи на анализ программ, написанных на языке Си

Задача 1. Какую задачу решает следующая функция

Языка Си?

 

double f(const double * a, int n)

{

int i;

double y = 0;

for (i = 0; i < n; i++)

y += a[i];

return y;

}

Задача 2. Какую задачу решает следующая функция

Языка Си?

 

double f(const double * a, int n)

{

int i;

double y = 1;

for (i = 0; i < n; i++)

y *= a[i];

return y;

}

Задача 3. Какую задачу решает следующая функция

Языка Си?

 

double f(const double * a, int n)

{

int i;

double y = a[0];

for (i = 1; i < n; i++)

if (a[i] > y)

y = a[i];

return y;

}

 

Задача 4. Какую задачу решает следующая функция

Языка Си?

double f(const double * a, int n)

{

int i;

double y = 0;

for (i = 1; i < n; i++)

if (a[i] < 0)

y += a[i];

return y;

}

 

Задача 5. Какую задачу решает следующая функция

Языка Си?

double f(const double * a, int n)

{

int i;

double y = a[0];

for (i = 1; i < n; i++)

if (a[i] < y)

y = a[i];

return y;

}

Задача 6. Какую задачу решает следующая функция

Языка Си?

double f(const double * a, int n)

{

const double * pend = a + n;

double y = *a++;

for (; a!= pend; a++)

if (*a > y)

y = *a;

return y;

}

 

Задача 7. Какую задачу решает следующая функция

Языка Си?

 

int f(const double * a, int n)

{

int i;

int k = 0;

double y = a[0];

for (i = 1; i < n; i++)

if (a[i] > y)

{

k = i;

y = a[i];

}

return k;

}

Задача 8. Какую задачу решает следующая функция

Языка Cи?

int f (const double * a, int n)

{

const double * pend = a + n;

int cnt = 0;

for (a++; a!= pend; a++)

if (*(a - 1) > 0 && *a < 0)

cnt++;

return cnt;

}

Задача 9. Какую задачу решает следующая функция

Языка Cи?

double f(const double * a, int n)

{

int i;

int k = 0;

double y = a[0];

for (i = 1; i < n; i++)

if (a[i] < y)

{

k = i;

y = a[i];

}

return k;

}

 

Задача 10.. Какую задачу решает следующая функция

Языка Си?

double f(const double * a, int n)

{

int i = 0;

double y = 0;

while (i < n && a[i] > 0)

{

y += a[i++];

}

return y;

}

 

Задача 11. Какую задачу решает следующая функция

Языка Си?

 

double f(const double * a, int n)

{

int i = 0;

double y = 0;

while (i < n && a[i] < 0)

{

y += a[i++];

}

return y;

}

Задача 12. Какую задачу решает следующая функция

Языка Си?

 

int f(const double * a, int n)

{

int i;

int y = 0;

for (i = 0; i < n; i++)

{

if (a[i] < 0)

y++;

}

return y;

}

 

Задача 13. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int y = 0;

double * pend = a + n;

for (; a!= pend; a++)

{

if (*a > 0)

y++;

}

return y;

}

 

Задача 14. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int i;

double y = 0;

for (i = 0; i < n; i++)

y += a[i];

return y / n;

}

Задача №15. Какую задачу решает следующая функция

Языка Си?

 

int f(const double * a, double b, double c, int n)

{

int i;

Int

y = 0;

for (i = 0; i < n; i++)

if (a[i] >= b && a[i] <= c)

y++;

return y;

}

 

Задача 16. Какую задачу решает следующая функция

Языка Си?

 

Long f(int n)

{

int i;

long y = 0;

for (i= 0; i < n; i++)

y += i * i;

return y;

}

Задача 17. Какую задачу решает следующая функция

Языка Си?

 

long f(int n)

{

int i;

int y = 1;

for (i = 1; i <= n; i++)

y *= i;

return y;

}

Задача 18. Какую задачу решает следующая функция

Языка Си?

 

int f(int *a, int n, int x)

{

int i;

int b = -1;

for (i = 0; i < n; i++)

if (a[i] == x)

{

b = i;

break;

}

return b;

}

Задача 19. Какую задачу решает следующая функция

Языка Си?

 

int f(const int * a, int n, i nt x)
{

int i;

int k = 0;

for (i=0; i < n; i++)

if (a[i] == x)

k++;

return k;

}

Задача 20. Какую задачу решает следующая функция

Языка Си?

 

double f(const double * a, int n)

{

int i;

double b1, b2;

b1 = a[0];

b2 = b1;

for (i=1; i < n; i++)

{

if (a[i] > b1)

b1 = a[i];

if (a[i] < b2)

b2 = a[i];

}

return (b1 – b2);

}

Задача 21. Какую задачу решает следующая функция

Языка Си?

void f (double *a, int n)

{

int i;

double b = a[0];

for (i = 1; i < n; i++)

if (a[i] > b)

b = a[i];

for (i = 0; i < n; i++)

a[i] /= b;

}

Задача 22. Какую задачу решает следующая функция

Языка Си?

 

double f(const double * a, int n)

{

int i;

double y = a[0];

for (i = 1; i < n; i++)

if (fabs(a[i]) > fabs(y))

y = a[i];

return y;

}

Задача 23. Какую задачу решает следующая функция

Языка Си?

int f ( FILE* in_file, double *out )
{

double a, b;

if (fscanf(in_file, “%lg”, &a) == EOF)

{

out = NULL;

return EOF;

}

while (!feof(in_file))

{

fscanf(in_file, “%lg”, &b);

if (b > a)

a = b;

}

*out = a;

return 0;

}

 

Задача 24. Какую задачу решает следующая функция

Языка Си?

int f(FILE* in_file, double* out)

{

double a, b;

if (fscanf(in_file, “%lg”, &a) == EOF)

{

out = NULL;

return EOF;

}

while (!feof(in_file))

{

fscanf(in_file, “%lg”, &b);

if (b < a)

a = b;

}

*out = a;

return 0;

}

Задача 25. Какую задачу решает следующая функция

Языка Си?

 

int f(FILE* in_file, long * out)

{

double a;

long c = 0;

if (fscanf(in_file, “%lg”, &a) == EOF)

{

out = NULL;

return EOF;

}

while (!feof(in_file))

{

if (a < 0)

c++;

fscanf(in_file, “%lg”, &a);

}

*out = a;

return 0;

}

Задача 26. Какую задачу решает следующая функция

Языка Си?

int f(FILE* in_file, long * out)

{

double a;

long c = 0;

if (fscanf(in_file, “%lg”, &a) == EOF)

{

out = NULL;

return EOF;

}

 

while (!feof(in_file))

{

if (a > 0)

c++;

fscanf(in_file, “%lg”, &a);

}

return 0;

}

 

Задача 27. Какую задачу решает следующая функция

Языка Си?

int f ( FILE* in_file, double b, int * out)

{

int c;

double a, b, c;

if (fscanf(in_file, “%lg”, &a) == EOF ||

fscanf(in_file, “%lg”, &b) == EOF))

{

out = NULL;

return EOF;

}

 

while (!feof(in_file))

{

if (a > b)

c++;

a = b;

fscanf(in_file, “%lg”, &b);

}

*out = c;

return 0;

}

Задача 28. Какую задачу решает следующая функция

Языка Си?

 

int f ( FILE* in_file, double b, int * out)

{

int c;

double a, b, c;

if (fscanf(in_file, “%lg”, &a) == EOF ||

fscanf(in_file, “%lg”, &b) == EOF)

{

out = NULL;

return EOF;

}

 

while (!feof(in_file))

{

if (a < b)

c++;

a = b;

fscanf(in_file, “%lg”, &b);

}

*out = c;

return 0;

}

Задача 29. Какую задачу решает следующая функция

Языка Си?

 

int f(FILE* in_file, double b, double * out)

{

double a;

double c = 0;

if (fscanf(in_file, “%lg”, &a) == EOF)

{

out = NULL;

return EOF;

}

while (!feof(in_file))

{

if (a < b)

c += a;

fscanf(in_file, “%lg”, &a);

}

*out = c;

return 0;

}

 

Задача 30. Какую задачу решает следующая функция

Языка Си?

void f(double * a, double * b)

{

double t = *a;

*a = *b;

*b=t;

}

Задача 31. Какую задачу решает следующая функция

Языка Си?

void f(FILE* f1, FILE* f2, FILE* f3)

{

double x;

while (fscanf(f1, “%lg”, &x)!= EOF)

{

if (x > 0)

fprintf(f2, “%10.2f\n”, x);

Else

fprintf(f3, “%10.2f\n”, x);

}

}

Задача 32. Какую задачу решает следующая функция

Языка Си?

void f (const double *a1, double * a2, double * a3, int

n1, int * n2, int * n3)

{

double x;

int i;

*n2 = *n3 = 0;

for (i = 0; i < n1; i++)

{

x = a1[i];

if (x>0)

a2[(*n2)++] = x;

Else

a3[(*n3)++] = x;

}

}

Задача 33. Какую задачу решает следующая функция

Языка Си?

void f(const double * a1, double * a2, int n1, int * n2)

{

int i;

*n2 = 0;

for (i = 0; i < n1; i++)

if (a1[i] > 0)

a2[(*n2)++] = a1[i];

}

Задача 34. Какую задачу решает следующая функция

Языка Си?

void f(double * a, int n)

{

int i;

for (i = 0; i < n; i++)

if (a[i] < 0)

a[i] = 0;

}

Задача 35. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int i, ind = -1;

for (i = 0; i < n; i++)

if ((a[i] < 0) &&(ind == -1 || a[i] > a[ind]))

ind = i;

return ind;

}

Задача 36. Какую задачу решает следующая функция

Языка Си?

Int f(const double * a, int n)

{

int i, ind = -1;

for (i = 0; i < n; i++)

if (a[i] > 0 &&(ind = -1 || a[i] < a[ind]))

ind:= I;

return ind;

}

Задача 37. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int i = 0;

int ind = -1;

while (i!= n)

{

if (a[i] > 0)

{

ind = i;

break;

}

i++;

}

return ind;

}

Задача 38. Какую задачу решает следующая функция

Языка Сиl?

int f(const double * a, int n)

{

int i = 0;

int ind = -1;

while (i!= 0)

{

if (a[i] < 0)

{

ind = i;

break;

}

i++;

}

return ind;

}

Задача 39. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int i, c = 0;

for (i = 1; i < n; i++)

if (a[i – 1] < a[i])

c++;

return c;

}

Задача 40. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int i, c = 0;

for (i = 1; i < n; i++)

if (a[i – 1] > a[i])

c++;

return c;

}

Задача 41. Какую задачу решает следующая функция

Языка Си?

int f(const double * a, int n)

{

int c = 0;

const double * p = a;

const double * pend = p + n – 1;

while (p!= pend)

if (*p < *++p)

c++;

return c;

}

Задача 42. Какую задачу решает следующая функция

Языка Си?

int f(const char * s)
{

const char * t = s;

while (*s++)

continue;

return (s – t -1);

}

 

Задача 43. Какую задачу решает следующая функция

Языка Си?

int f(const char * s)
{

int c = 0;

while (*s++)

c++;

return c;

}

 

Задача 44. Какую задачу решает следующая функция

Языка Си?

 

char* f(char * s1, const char * s2)

{

char * t = s1;

while (*t++ = *s2++)

continue;

return s1;

}

 

Задача 45. Какую задачу решает следующая функция

Языка Си?

 

int f (const char * s)

{

int nw = 0;

if (*s++!= ‘ ‘)

nw = 1;

for (; *s; s++)

if (*s!= ‘ ‘ &&*(s – 1) == ‘ ‘)

nw++;

return nw;

}

 

Задача 46. Какую задачу решает следующая функция

Языка Си?

# define MAXSIZE 20

int f(const char * s, char a[][MAXSIZE])

{

int nw = 0;

char * p = strtok(s, “ “);

while (p)

{

if (p == NULL)

break;

strcpy(a[nw++], p);

p = strtok(NULL, “ “);

}

return nw;

}

 

Задача 47. Какую задачу решает следующая функция

Языка Си?

char *f(char * s1, const char * s2)

{

char * t = s1;

while (*t++)

continue;

t--;

while (*t++ = *s2++)

continue;

return s1;

}

Задача 48. Какую задачу решает следующая функция

Языка Си?

 

int f (const char * s)

{

int nw = 0;

for (; *s; s++)

if (*s!= ‘ ‘ && (*(s + 1) == ‘ ‘ || *(s + 1) ==

‘\0’))

nw++;

return nw;

}

 

 

Задача 49. Какую задачу решает следующая функция

Языка Си?

# define MAXSIZE 20

void f(char str[][MAXSIZE], int n, double * a)

{

double s;

double x;

int i = 0;

char * pend;

char * pstart;

for (; i < n; i++)

{

pstart = str[i];

s = 0;

while (1)

{

x = strtod(pstart, &pend);

if (pend == pstart)

break;

s += x;

pstart = pend;

}

a[i] = s;

}

}

Задача 50 Какую задачу решает следующая функция

Языка Си?

int f(char c)

{

if (ch >= ‘0’ && ch <= ‘9’)

return ch – ‘0’;

return -1;

}

 

Задача 51 Какую задачу решает следующая функция

Языка Си?

char * f(char * s)

{

char * t1 = s;

char * t2 = s;

for (; *t1; t1++)

{

if (*t1!= ‘ ‘)

*t2++ = *t1;

}

*t2 = ‘\0’;

return s;

}

Задача 52. Какую задачу решает следующая функция

Языка Си?

int f(const char * s)

{

int i;

for (i = 0; s[i]!= 0; i++)

continue;

return i;

}

 

Задача 53 Какую задачу решает следующая функция

Языка Си?

int f(const char * s1, const char * s2)

{

int i;

for (i = 0; s1[i] == s2[i] && s1[i]!= 0

&& s2[i]!= 0; i++)

continue;

if (s[i] == s2[i])

return 0;

return s1[i] – s2[i];

}

 

Задача 54 Какую задачу решает следующая функция

Языка Си?

int f(const char * s1, const char * s2)

{

for (; *s1 == *s2 && *s1!= 0 && *s2!= 0; s1++, s2++)

continue;

if (*s1 == *s2)

return 0;

return *s1 – *s2;

}

 

Задача 55 Какую задачу решает следующая функция

Языка Си?

char * f(char * s1, const char * s2, int n)

{

const char * pend = s2 + n;

char * cur = s1;

while (s2!= pend && (*cur++ = *s2++))

continue;

if (s2 == pend)

*(cur - 1) = ‘\0’;

return s1;

}

 

Языка Си?

const char * f(const char * s1, const char * s2)

{

int i;

int k1;

int k2;

for (i = 0; s1[i]!= 0; i++)

continue;

k1 = i;

for (i = 0; s2[i]!= 0; i++)

continue;

k2 = i;

if (k1 > k2)

return s1;

return s2;

}

 

Дополнительные задачи на анализ функций языка Си

Языка Си?

# define MAXSIZE 40

# include <stdio.h>

void f(const double a[][MAXSIZE], int n, int m, double * v)

{

double s;

int i;

int j;

for (i = 0; i < n; i++)

{

s = 0;

for (j = 0; j < m; j++)

s += pow(a[i][j], 2);

v[i] = sqrt(s);

}

}

Языка Си?

# define MAXSIZE 40

void f(const double a[][MAXSIZE], int n, int m,

double * v)

{

double s;

int i;

int j;

for (j = 0; j < m; j++)

{

s = 0;

for (i = 0; i < n; i++)

s += pow(a[i][j], 2);

v[j] = sqrt(s);

}

}

 

Указатели на функцию

Языка Си?

typedef double (*fun_t)(double)

void f(double xn, double xk, int n, fun_t v)

{

double x = xn;

double dx;

int i;

 

dx = (xk - xn) / (n - 1);

printf(“%5s%10s%10s\n”, “НОМЕР”, “АРГУМЕНТ”,

“ФУНКЦИЯ”);

for (i = 1; i <= n; i++)

{

printf(“%5d%10.3g%10.3g\n”, i, x, v(x))

x += dx;

}

}

Массивы указателей

Языка Си?

char* f(char * s, char ch)

{

char * cur = s;

for (*cur++!= ‘\0’)

continue;

*--cur = ch;

*++cur = ‘\0’;

return s;

}

 

 

Задачи на анализ программ, написанных на языке Си



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 170; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.249.158 (0.311 с.)