Программирование на языке C в Microsoft Visual Studio 2010 - ответы
Количество вопросов - 681
typedef union pw_union { short int i; char ch[2];} pw;int putw(short int num, FILE *fp);int main(void){ FILE *fp; fp = fopen("g:\\test.tmp", "wb+"); if(fp == NULL) { printf("Файл не открыт.\n"); exit(1); } putw(1025, fp); fclose(fp); return 0;}int putw(short int num, FILE *fp){ pw_union word; word.i = num; putc(word.ch[0], fp); return putc(word.ch[1], fp); }
#include <stdio.h>#include <stdarg.h>int average(int first, ... );int main( void ){ int x; <Вызов фукнции average()>; return 0;}int average( int first, ... ){ int count = 0, sum = 0, i = first; va_list marker; va_start(marker, first); while( i != -1 ) { sum += i; count++; i = va_arg(marker, int); } va_end(marker); return( sum ? (sum / count) : 0 );}В результете какого вызова функции average значение переменной x будет равно 3?
#include <stdio.h>#include <math.h>#include <time.h>#include <string.h>void AddToLog(FILE*, char*);char* GenerateFileName();int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); if( (fp = fopen(strFn, "a+")) == NULL ) printf( "Problem opening the file\n" ); while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0;}void AddToLog(FILE *fp, char *str){ if (fp != NULL) fputs(str, fp);}char* GenerateFileName(){ char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4);}
void Init(struct student*);void Print(struct student*);int main(void){ struct student { char fio[30]; int group; float average; }; struct student s, *st; int i; st = &s; Init(st); Print(st); return 0;}void Init(struct student *st){ printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average);}void Print(struct student *st){ printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f", st->average);}
struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip;} addr_info, binfo;
int sum(int a, int b){ return a+b;}int main(void){ int n=4, m=3, s; s = sum(n,m); printf("%d + %d = %d\n", n, m, s); return 0;}
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};
extern int x, y;extern char ch;static void func1(void){ y = 100;}int func2(int a){ int b; b = a; return b;}extern void func2(void){ x = y/10; ch = 'R';}
int x = 0;loop1: x++; if (x<=5) { printf("%d \n", x); goto loop1; }
int x = 5, y; for(y=1; y<=x; ++y) printf("%d ", y); y = x*2;
int x = 15, y = 2; float z; z = x/y; printf("z = %f\n", z);В результате выполнения каких операций будет выведено значение z = 7.5?
char ch = 'a'; int a; float b; double c = 4.5; double d; printf("Enter a:"); scanf("%d", &a); printf("Enter b:"); scanf("%lf", &b); d = (double)ch + a + b + c;
printf("\n Maximum integer: %d\n ", INT_MAX);
int a = INT_MIN; int b = INT_MAX;
int x; printf("Угадайте число:\n"); for (x=0; x!=123; ) scanf("%d", &x);
int c = 0, n = 100, m; do { printf("Ваш вариант: "); scanf("%d", &m); c++; } while <Условие>c - число попыток, n - задуманное число. Каким должно быть условие завершения игры?
int num; do { scanf("%d", &num); } while (num > 100);
int cond,; cond = (A==5) || ((A>10) && (A<1));
int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x<=5 ? 1 : x==6 ? 2 : 3) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; default: printf("Ошибка! Вы ввели неверное число"); break; }Какое сообщение будет выведено на экран, если в запросе ввода пользователь задаст число 8?
int a, b, res = 0; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция\n"); f = 0; } f = f*2; if (f) printf ("Результат: %d", res);
int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; return; printf("%d\n", n); n++; }
int isqrd = 0, i; printf("Введите число: "); scanf("%d", &i); isqrd = (!(i%2) && i>0) ? i*i : -(i*i); printf("%d в квадрате %d", i, isqrd);
#include <stdio.h>#define N 10#define M 5int main(){ int i; int arr1[N] = {3, 4, 5, 4}; int arr2[M] = {1, 6, 3, 7, 9}; i = sizeof(arr1)/sizeof(arr1[0]) + sizeof(arr2)/sizeof(arr2[0]); printf("i = %d\n", i); return 0; }
#include <stdio.h>#define N 5int main(){ int m, i; int arr[N] = {3, 2, 4, 5, 1}; m = 1; for (i=1; i<N; i++) if (arr[i]<arr[m]) m = i; printf("a[m] = %d", arr[m]); return 0; }
#include <stdio.h>#define N 5#define M 2int main(){ int i, j, sum=0; int arr[N][2] = {0,1,2,3,4,5,6,7,8,9}; for (i=0; i<N; i++) { for (j=0; j<M; j++) if (!(arr[i][j]%2)) sum+=arr[i][j]; } printf("sum = %d\n", sum); return 0;}
int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
int n = 0; char str2[10] = "Lection\0"; n = strlen(str2);
char str1[10] = "Lection"; char str2[10] = "Lection\0";Какое утверждение является верным?
#include <stdio.h>#include <string.h>#define N 10int main(){ int i = 0; char ch; char str1[N] = "test"; char str2[N]; ch= str1[0]; while (ch!='\0') { str2[i] = str1[i]; i++; ch= str1[i]; } return 0;}
char s[5], psw[] = "password"; int i, k= 0; for (i=0; !k && i<3; i++) { printf("Введите пароль: \n"), gets(s); if (!(strcmp(s, psw))) k = 1; } if (k) printf("Добро пожаловать! TRUE"); else printf("Ошибка: Неверный пароль! FALSE");Проверьте правильность этого кода для выполнения поставленной задачи и определите, сколько раз будет выполнен цикл for, если пользователь сразу введет верный пароль password?
int i = 0; char str1[10] = "Test"; char str2[10] = ""; while (str1[i]!='\0') { str2[i] = str1[i]; i++; }
#include <stdio.h>#define N 7int main(){ int i, j, k, buf; char arr[N] = "Lection"; for (i=0; i<N; i++) for (j=0; j<N-1; j++) { if (arr[j] < arr[j+1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } }; for (k=0; k<N; k++) printf("%c ", arr[k]); return 0; }
#include <stdio.h>#include <conio.h>int main(){ int n=0, i=0; char ch, str[30]=""; printf("Введите строку: "); scanf("%s", str); printf("Введите символ: "); ch = _getche(); while(str[i]!='\0') { if(str[i]==ch) n++; i++; } return 0; }
int a=10, b=20, c=30; int *ptr; ptr = &a; c = *ptr; *ptr = 30; b = a;
#include <stdio.h>#include <conio.h>int main(){ int n=0, i=0, j=0; char ch, str[30]=""; char *ptr1, *ptr2; printf("Введите строку: "); scanf("%s", str); printf("Введите символ: "); ch = _getche(); ptr1 = str; while(*ptr1!='\0') { ptr2 = str; while (*ptr2!='\0') { if(*ptr1==*ptr2) n++; ++ptr2; } printf("\n%c - %d", *ptr1, n); n = 0; ++ptr1; } printf("\n"); return 0; }
#include <stdio.h>#include <conio.h>int main(){ char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (*ptr1!='\0') { if (*ptr1=='\0') { *ptr2 = '\0'; break; } *ptr2 = *ptr1; ptr1++; ptr2++; } printf("str2 = %s\n", str2); return 0; }
int x = 10, y = 20, z; int *p1, *p2; p1 = &x; p2 = p1; <Выражение> z = (x==y) ? (x+y) : (y-x);
int x = 88, *ptr1, **ptr2; ptr1 = &x; ptr2 = &ptr1;
int i, N, sum = 0; int arr[] = {3, 2, 4, 5, 1}; int *ptr; N = sizeof(arr)/sizeof(arr[0]); ptr = &arr[1]; for (i=0; i<N-1; i++) { sum += *ptr; ptr++; }
int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, sum = 0; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = m;} sum += *(ptr+i); } printf("n = %d\n", n); printf("k = %d\n", k); for (i=0; i<(n*k); i++) { if (!(*(ptr+i)%2)) sum += *(ptr+i);
int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, el; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = &m[1][1];На какой элемент массива m будет указывать указатель ptr+3?
int arr1[10] = {1,2,3,4,5}; (1) int *arr2 = (int *)calloc(10, sizeof(int)); (2) int *arr3 = (int *)malloc(10*sizeof(int)); (3) int arr4[][3] = {{1,2,3}, {4,5,6}}; (4)
#include <stdio.h>#include <stdlib.h>#define N 10int main(void){ int size1, size2, size3, i, n = 0; int arr1[N] = {1,2,3,4,5}, *arr; size1 = sizeof(arr1); arr = (int *)calloc(N, sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() function. Press any key: "); _getch(); exit(1); }; for (i=0; i<N; i++) { arr[i] = i+1; n++; printf("arr[%d] = %d\n", i, arr[i]); } size2 = N*sizeof(int); arr = (int *)realloc(arr, (N+2)*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } for (i=0, n=0; i<N+2; i++) n++; size3 = n*sizeof(int); free(arr); return 0;}
#include <stdio.h>#include <stdlib.h>#define N 10int main(void){ int i; int *arr; for (i=0; i<N; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } arr = (int *)realloc(arr, (N+2)*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0;}Определите, есть ли в этой программе ошибки?
int i; int **m; m = (int **)calloc(5,sizeof(int *)); for (i=0; i<5; i++) m[i] = (int *)calloc(3,sizeof(int));Как в данном случае освободить выделенную память?
int sq(int a, int x){ int i, res = 1; for (i=0; i<x; i++) res*= a; return res;}int main(void){ int n=4, b = 3, p; p = sq(n,b); printf("%d^%d = %d\n", n, b, p); return 0;}
double max(double a, b){ if (a>b) return a; return b;}int main(void){ double x=-5.00, y=5.12; printf("max = %.2f\n", max(x,y)); return 0;}
int is_in(char *s, char c) (1) { while(*s) (2) if(*s==c) return 1; (3) else s++; (4) return 0; (5) }Чему будет равно значение переменной i в результате вызова int i = is_in("Lection 10", 'a')?
#include <stdio.h>#include <stdarg.h>int average(int first, ... );int main( void ){ int x = average(2, 3, 4, -1); return 0;}int average( int first, ... ){ int count = 0, sum = 0, i = first; va_list marker; va_start(marker, first); while( i != -1 ) { sum += i; count++; i = va_arg(marker, int); } va_end(marker); return( sum ? (sum / count) : 0 );}
#include <stdio.h>#include <conio.h>#include <stdarg.h>void error(int severity, ... );int main( void ){ char err[][30] = {"Сообщение 1", "Сообщение 2"}; int n = -1; printf("Введите степень критичности ошибки (целое число): "); scanf("%d", &n); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0;}void error(int severity, ... ){ va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n");}
#include <stdio.h>#define n 10void fun(int *mas, int k);int main( void ){ int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); return 0;}void fun(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) ++mas[i];}
#include <stdio.h>#include <stdlib.h>#define n 2#define m 3int sum(int *a, int x, int y);int main( void ){ int i, s; int a[n][m] = {{1,2,3}, {4,5,6}}; s = sum(*a, n, m); printf("Сумма элементов а: %d\n", s); return 0;}int sum(int *a, int x, int y){ int i, j, s = 0; for (i=0; i<x; i++) for (j=0; j<y; j++) s += a[i*y+j]; return s;}
#include <stdio.h>#define n 5void fun(int *mas, int k);int sum(int *mas, int k);int main( void ){ int arr[n] = {3,4,1,2}; int i, s; fun(arr, n); s = sum(arr, n); return 0;}void fun(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) ++mas[i];}int sum(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) s += mas[i]; return s;}
int *sum(int A[], int B[], int n){ int i; int *ptr = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) ptr[i] = A[i] + B[i]; return ptr;}В какой программе вызов функции sum выполняется верно?
void PuzSortInc (int*, int );void PuzSortDec (int*, int);int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } if (pFun) { pFun(A,n); printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); }; return 0;}void PuzSortInc (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}void PuzSortDec (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Какой способ объявления указателя pFun является неверным для приведенной программы?
int main (void) { double (*pFunc) (double); int c = 1; double y; while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sin; break; case 2: pFunc = sqrt; break; case 3: pFunc = tan; break; case 0: return; default: continue; } y = pFunc(1.1); printf("f(1.1) = %.2f\n", y); } return 0;}Какое вычисление будет выполнено в том случае, если пользователь в запросе выбора функции задаст число 1?
char *xgets(char *s){ char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p;}Какие вызовы функции являются неверными?
char str[30], i; FILE *fp; if((fp = fopen("g:\\test.txt", "r"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fgets(str, 30, fp); i = strlen(str); fclose(fp);
#include <stdio.h>int main( void ){ FILE *stream; char list[30]; int i, numread, numwritten; if( (stream = fopen("g:\\fread.out", "w+t")) != NULL ) { for ( i = 0; i < 26; i++ ) list[i] = (char)('z' - i); numwritten = fwrite( list, sizeof( char ), 26, stream ); printf( "Wrote %d items\n", numwritten ); fclose( stream ); } else printf( "Problem opening the file\n" ); if( (stream = fopen("g:\\fread.out", "r+t" )) != NULL ) { numread = fread( list, sizeof( char ), 26, stream ); printf( "Number of items read = %d\n", numread ); printf( "Contents of buffer = %.26s\n", list ); fclose( stream ); } else printf( "File could not be opened\n" );}
int main( void ){ FILE *stream; char line[81]; int result; if ( fopen_s( &stream, "g:\\fseek.out", "w+" ) != 0 ) { printf( "The file fseek.out was not opened\n" ); return -1; } fprintf( stream, "Ivanov - 09.06.1980 \n" "Petrov - 10.03.1986 \n" "Sidorov - 08.11.1985\n"); result = fseek( stream, 0L, SEEK_SET); if( result ) perror( "Fseek failed" ); else { fgets( line, 80, stream ); printf( "%s", line ); } fclose( stream ); return 0;}
int main(void){ FILE *fp; char str[30] = "Lection 11"; int k, l, m; if((fp=fopen("g:\\test.txt", "wt+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } k = fwrite(str, sizeof(char), strlen(str)-3, fp); rewind(fp); l = fread(str, sizeof(char), sizeof(str)/sizeof(char), fp); m= l - k; fclose(fp); return 0;}
int main( void ){ FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, -27L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fputs( "5. NEC MultiSync EX231W - 10490 rub.", stream ); printf( "%s", str ); } fclose( stream ); return 0;}
struct A {int a; double x; };struct B {A a; B b; double x; };
struct Account{ int account; char name[30]; int balance;};Каким образом данная структура хранится в памяти?
void PrintStruct(char*, int, int);int main (void){ <Объявление структуры Account и переменных acc1, acc2> acc2 = &acc1; acc1.account = 346578; strcpy(acc1.name, "Ivanov"); acc1.balance = 30000; PrintStruct(acc1.name, acc1.account, acc1.balance); acc2->account = 90005; strcpy(acc2->name, "Pertov"); acc2->balance = 46000; PrintStruct(acc2->name, acc2->account, acc2->balance); return 0; }void PrintStruct(char *str, int a, int b){ printf("Name: %s\n", str); printf("Account: %d\n", a); printf("Balance: %d\n\n", b);}
int main (void){ struct student { char *name; char *birthday; int group; } s1, s2; int s; s1.name = "Ivanov"; s1.birthday = "10.03.1985"; s1.group = 1014; s2.name = "Petrov"; s2.birthday = "08.04.1985"; s2.group = 1309; s2.group = s1.group; if (s2.group == s1.group) printf("Students %s and %s are studying in the same group\n", s1.name, s2.name); else printf("Students %s and %s are not studying in the same group\n", s1.name, s2.name); return 0; }
int main (void){ typedef struct { char nazn[40]; int numb; char time[10]; } train; train tr[3]; int i = 0, sum = 0, ch=0; char str[10], search[10]; while(ch!=121) { printf("\nEnter information about train (Q - quit): \n"); printf("Enter destination of the train: "); gets(tr[i].nazn); printf("Enter number of the train: "); gets(str); tr[i].numb = atoi(str); printf("Enter time of scheduled departure: "); gets(tr[i].time); ++i; printf("Quit? (y/n): "); ch = _getche(); }; printf("\n\nEnter train destination: "); gets(search); for (i=0; i<3; i++) { if (strcmp(tr[i].nazn,search)==0) { printf("\n\tTrain number: %d", tr[i].numb); printf("\n\tTime: %s", tr[i].time); } } if (i>=3) printf("There is no train to this destination"); return 0; }
union hold { int digit; double bigf; char letter;};
enum numbers {two=2, tree, four, ten=10, eleven, last=ten+40};Какое значение будет присвоено константе last?
union hold { int digit; double bigf; char letter;};
union test { char ch1[5]; char ch2[2]; char ch3[1];};int main(void){ union test t; char *str; strcpy(t.ch1, "test"); strcpy(t.ch2, "be"); t.ch3[0] = 'w'; str = t.ch1; return 0;}
typedef union pw_union { short int i; char ch[2];} pw;int putw(short int num, FILE *fp);int main(void){ FILE *fp; fp = fopen("g:\\test.tmp", "wb+"); if(fp == NULL) { printf("Файл не открыт.\n"); exit(1); } putw(1025, fp); fclose(fp); return 0;}int putw(short int num, FILE *fp){ union pw word; word.i = num; putc(word.ch[0], fp); return putc(word.ch[1], fp); }
int main(void){ union pw { int i; double d; char ch[2]; } pw = {121}; printf("pw.ch = %s", pw.ch); return 0;}
int main(void){ enum coin { penny, nickel, dime, quarter, half_dollar, dollar}; enum coin money; char name[][12]={ "penny", "nickel", "dime", "quarter", "half_dollar", "dollar" }; money = half_dollar; printf("%s", name[money]); return 0;}
int main(void){ typedef enum { ERR_READ, ERR_WRITE, ERR_CONVERT} Err; Err error; switch (error) { case ERR_READ: printf("Возникла ошибка чтения (ERR_READ)\n"); break; case ERR_WRITE: printf("Возникла ошибка записи (ERR_WRITE)\n"); break; case ERR_CONVERT: printf("Возникла ошибка преобразования (ERR_CONVERT)\n"); break; default: printf("Возникла неизвестная ошибка\n"); break; }; return 0;}
int main (void) { enum month {january, february, march, april, may, june,july, august, september, october, november, december } aMonth; int days; printf("\n Enter the number of the month (1 - 12): "); scanf_s("%d", &aMonth); switch (aMonth) { case january: case march: case may: case july: case august: case october: case december: days = 31; break; case april: case june: case september: case november: days = 30; break; case february: days = 28; break; default: printf("\n\t Wrong number of the month\n"); days = 0; break; } if (days) printf("\n The number of days of the month: %d\n", days); if (aMonth == 2) printf("\n ... or 29 if it is a leap year\n"); return 0; }
struct fred { char x; int y; float z; char str[10]; } mike;В каком случае функции func() передается адрес отдельного члена структуры?
#define MAX 20double sum(double, double);int main (void) { struct test { char A[MAX+1]; double ax; char B[MAX+1]; double by; }; struct test AB; printf("\nEnter 1st name: "); gets_s(AB.A, MAX); printf("\nEnter the first real number: "); scanf_s("%lf", &AB.ax); _flushall(); printf("\nEnter 2nd name: "); gets_s(AB.B, MAX); printf("\nEnter the second real number: "); scanf_s("%lf", &AB.by); printf("\n\nThe sum of two numbers %1.2f and %1.2f, %s and %s: %1.2f\n", AB.ax, AB.by, AB.A, AB.B, sum(AB.ax, AB.by)); return 0; }double sum(double x, double y) { return (x + y);}
typedef struct { int a, b; char ch;} struct_type;int main(void){ struct_type arg; arg.a = 1000; f1(&arg); return 0;}
typedef struct { char fio[30]; int group; float average;} student;void Init(student*);int main(void){ student s, *st; int i; st = &s; Init(st); <Вывод данных на экран> return 0;}void Init(student *st){ printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average);}Необходимо дополнить программу функцией вывода заданных о студенте данных на экран и вызовом этой функции в программе. Какой вариант описания и вызова функции не выполняет поставленную задачу?
void Init(struct student*);void Print(struct student*);int main(void){ struct student { char fio[30]; int group; float average; }; struct student s, *st; int i; st = &s; Init(&st); Print(st); return 0;}void Init(struct student *st){ printf("\nEnter name: "); scanf("%s", st.fio); printf("\nEnter group: "); scanf("%d", &st.group); printf("\nEnter average mark: "); scanf("%f", &st.average);}void Print(struct student *st){ printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f", st->average);}
struct student { char fio[30]; int group; float average;};struct student Init(char*, int, float);void Print(struct student*);int main(void){ struct student s, *st; int i; st = Init("Ivanov I.", 3801, 5.00); Print(st); return 0;}struct student Init(char* n, int i, float f){ struct student s, *st; st = &s; strcpy(st->fio, n); st->group = i; st->average = f; return s;}void Print(struct student *st){ printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f\n", st->average);}Какие утверждения являются верными для приведенной программы?
typedef struct { char fio[30]; char phone[20]; int age;} note;note Init(char*, char*, int);void Print(note*);void Modify(note);int main(void){ note n[3], *pn; char *strName[3] = {"Ivanov I.", "Pertov P.", "Sidorov S."}; char *strPhone[3] = {"12-34-56", "78-90-12", "34-56-78"}; int i, age = 25; for (i=0; i<3; i++) { n[i] = Init(strName[i], strPhone[i], age+i); pn = &n[i]; Print(pn); } Modify(n[0]); pn = &n[0]; Print(pn); return 0;}note Init(char* f, char* p, int a){ note n, *pn; pn = &n; strcpy(pn->fio, f); strcpy(pn->phone, p); pn->age = a; return n;}void Print(note *pn){ printf("\nName: %s", pn->fio); printf("\nPhone: %s", pn->phone); printf("\nAge: %d\n", pn->age);}void Modify(note n) { strcpy(n.fio, "Vasiliev V."); strcpy(n.phone, "89-01-23"); n.age = 30;}Какая функция не соответсвует поставленной задаче?
typedef struct sale_struct { char *title; int price;} sale;sale Copy(sale);int main(void){ sale s1,s2; struct sale_struct s3, s4; s1.title = "Book"; s1.price = 200; s3.title = "Cake"; s3.price = 60; return 0;}sale Copy(sale s) { sale s1; s1 = s; return s1;}Какие из перечисленных вызов функции Copy являются верными?
typedef struct sale_struct { char *title; int price;} sale;Какая функция выполняет поставленную задачу?
int main(void){ struct Options { unsigned int centerX : 1; unsigned int centerY : 1; unsigned int shadow : 2; unsigned int palette : 4; }; int b; struct Options t, *pt; t.shadow = 12; t.palette = 10; b = t.shadow + t.palette; printf("b = %d\n", b); return 0;}
int main(void){ struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = 3; c = t.b | t.a; printf("c = %d\n", c); return 0;}
int d; int a = 10; int b = 15; a >>= 1; b <<= 1; d = a + b;
int func1(int a);static void func2(void);extern void func3(void);
int c = 9;int sum(int a, int b){ return a+b;}int t = 8;int main(void){ int n=4, m=3, s1, s2; s1 = sum(n,m); s2 = mul(n,m); return 0;}int mul(int a, int b){ return a*b;}
int test();int a = 1;int main (void) { int b, s; extern int x; static int c; s = test(); return 0; }int test() { int t = a; return t;}int x = 4;
int min(int, int);int t;int main(void){ register int x=-5, y=5, m; int *p; p = &x; m = min(x,y); printf("min = %d\n", m); return 0;}int min(register int a, register int b){ int m = (a<b) ? a : b; return m;}
int f();static int d = 5, e = 8;int main(void){ int n = 1, m = 1; int s; s = f(); return 0;}int f(){ int p; static int c = 0; p = c; printf("d = %d",d); return p;}
extern int x, y;extern char ch;void func22(void){ y = 100;}void func23(void){ x = y/10; ch = 'R';}В каком случае выполняется неверное подключение файла second.h в другом файле?
long fact(long n) { return (n>1) ? n * fact(n-1) : 1;}При каком значении завершится рекурсивный процесс?
void fillOnly(int);void free_n(int);void fill_n(int);int main (void) { int n = 1; int in = 1; printf("\n Enter a length of string (naturel number): "); in = scanf_s("%i", &n); if (in != 1 || n < 1 || n > 15) { printf("\n Error input. Press any key to exit: "); _getch(); exit(0); } puts("\n\tResult:"); fill_n(n); printf("\n\n Press any key to exit: "); _getch(); return 0;}void fillOnly(int n) { if (n == 1) printf("\t%+3d\n", 1); else { fillOnly(n-1); printf("\t%+3d\n", n); free_n(n-1); }}void free_n(int n) { if (n == 1) printf("\t%+3d\n", -1); else { fillOnly(n-1); printf("\t%+3d\n", -n); free_n(n-1); }}void fill_n(int n) { if (n == 1) printf("\t%+3d\n", 1); else { if (n == 2) printf("\t%+3d\n\t%+3d\n", 1, 2); else { fillOnly(n-1); printf("\t%+3d\n", n); fill_n(n-2); } }}
#define N 8void step(int, int, int); int map[N][N]; // карта: map[i,j]!=0, если точки i и j соединены int road[N]; // маршрут - номера точек карты int incl[N]; // incl[i]==1, если точка с номером i включена в road int start; // начальная точка маршрута int finish; // конечная точка маршрута int i, j;int main (void) { // инициализация массивов for (i=0; i<N; i++) road[i] = 0; for (i=0; i<N; i++) incl[i] = 0; for (i=0; i<N; i++) for (j=0; j<N; j++) map[i][j] = 0; // ввод значений элементов карты map[1][2] = 1; map[2][1] = 1; map[1][3] = 1; map[3][1] = 1; map[1][4] = 1; map[4][1] = 1; map[3][4] = 1; map[4][3] = 1; map[3][7] = 1; map[7][3] = 1; map[4][6] = 1; map[6][4] = 1; map[5][6] = 1; map[6][5] = 1; map[5][7] = 1; map[7][5] = 1; map[6][7] = 1; map[7][6] = 1; printf("Введите через пробел номер начальной и конечной точек: "); scanf("%d %d", &start, &finish); road[1] = start; // внести точку в маршрут incl[1] = 1; // пометить точку как включенную step(start, finish, 2); return 0;}void step(int s, int f, int p) { int c; // номер точки, в которую делается очередной шаг int i; if (s==f) { printf("Путь: "); for (i=1; i<=p-1; i++) printf("%d ", road[i]); printf("\n"); } else { // выбор очередной точки for (c=1; c<=N; c++) // проверка всех вершин if (map[s][c]!=0 && incl[c]==0) { // точка соединена с текущей и не включена в маршрут road[p] = c; // добавление вершины в путь incl[c] = 1; // пометка вершины как включенной step(c, f, p+1); incl[c] = 0; road[p] = 0; } }}Какие утверждения являются неверными для приведенной программы?
int summa(int N, int a[6]);int main(){ int i,n; int a[6] = {8, 65, 10, 2, 4, 1}; n = sizeof(a)/sizeof(a[0]); printf("Сумма: %d", summa(n-1, a));}int summa(int N, int a[6]){ return a[N]+summa(N-1, a);}
int Sum(int x, int step, int n){ if (n==1) return(x); else return(Sum(x, step, n-1)+step);}int main(){ int x, s, n; int pr; printf("Введите первый член, число элементов и разность прогрессии:"); scanf("%d %d %d", &x, &n, &s); <Вызов функции sum()> printf("pr = %d", pr); return 0;}Пользователь вводит данные для вычисления через пробел в следующей последовательности: первый член арифметической прогрессии, разность прогрессии, количестов элементов. Какая последовательность задания этих параметров является неверной для вызова рекурсивной функии sum()?
#include <stdio.h> #define SQR(x) (x*x)int main(){ int x, y=2; x = SQR(y+1); printf("x = %d", x); return 0;}
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};Файл arr.txt хранится с исполняемым файлом в одном каталоге. Какая программа выполняется поставленную задачу?
extern int x, y;extern char ch;void func22(void){ y = 100;}void func23(void){ x = y/10; ch = 'R';}Каким образом файл second.h должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?
#if VERSION == 1 #define INCFILE "vers1.h"#elseif VERSION == 2 #define INCFILE "vers1.h"#else #define INCFILE "versN.h"#endif#include INCFILEКакие из используемых в заданном фрагменте директив относятся к директивам условной компиляции?
#ifndef HEADER_INCLUDED#include "arr.h"#define HEADER_INCLUDED#enif
int main(int argc, char* argv[]){ char name[30]; FILE *f; f = fopen("g:\\test.txt", "w+"); fprintf(f, "%s\n%s", argv[0], argv[1]); return 0;}Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. На какую строку указывает argv[2]?
#include <stdio.h>#include <conio.h>#include <stdarg.h>#include <stdlib.h>#include <locale.h>void error(int severity, ... );int main(int argc, char* argv[]){ char err[][30] = {"Сообщение1", "Сообщение2"}; int n; setlocale (LC_ALL, "rus"); n = argv[1]; switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0;}void error(int severity, ... ){ va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n");}Программа запускается из командной строки командой Example.exe 0. Какое сообщение будет выведено на экран?
int main(int argc, char* argv[]){ int n1, n2, n3, m, sum; m = argc; n1 = atoi(argv[1]); n2 = atoi(argv[2]); n3 = atoi(argv[3]); sum = n1 + n2 + n3 + m; printf("sum = %d\n", sum); return 0;}Программа запускается из командной строки командой Example.exe 2 3 5. Чему будет равно значение переменной sum?
int main(int argc, char *argv[]){ int disp, count; setlocale (LC_ALL, "rus"); if(argc<2) { printf("В командной строке на задано число\n"); exit(1); } if(argc==3 && !strcmp(argv[2], "display")) disp = 1; else disp = 0; for(count=atoi(argv[1]); count; --count) if(disp) printf("%d ", count); putchar('\a'); printf("Счет закончен"); return 0;}Что будет выведено на экран в результате выполнения приведенной программы, если ее запуск выполняется из командной строки командой Example.exe 5 display?
int main(int argc, char *argv[]){ int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0;}
#include <stdio.h>#include <stdlib.h>#define N 10int main(void){ int i; int *arr = (int *)malloc(N*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() function. Press any key: "); _getch(); exit(1); }; for (i=0; i<N; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } arr = (int *)realloc(arr, (N+2)*sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0;}Какие изменения необходимо внести в программу для ее корректной работы?
int i = 0, k = 0; char str1[10] = "Test"; char str2[10] = "Test1"; if (strlen(str1)>(strlen(str2))) k = 1; if (strlen(str1)<(strlen(str2))) k = -1; if (strlen(str1)==(strlen(str2))) while (str1[i]!='\0') { if (str2[i]!=str1[i]) { k = -1; break; } i++; }
char s[100];int pal(char s[100]);int main(){ printf("\nВведите строку: "); gets(s); if (pal(s)) printf("Строка является палиндромом"); else printf("Строка не является палиндромом"); return 0;}int pal(char s[100]){ int l; char s1[100]; if (strlen(s)<1) return 1; else { l=s[0]==s[strlen(s)-1]; strncpy(s1, s+1, strlen(s)-2); s1[strlen(s)-2]='\0'; return l&&pal(s1); }}Какое граничное условие имеет реализованная в программе рекурсия?
#include <stdio.h> #define DIV(x, y) (x/y)int main(){ float x=2.0, y=2.0; float z; z = DIV(x+1, y+1); printf("x = %.1f", x); return 0;}
#include <stdio.h>#define n 10void fun(int *mas, int k);int main( void ){ int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); return 0;}void fun(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) ++mas[i];}
int main(void){ enum coin { penny, nickel, dime, quarter=100, half_dollar, dollar}; enum coin money; printf("%d ", penny); printf("%d ", nickel); printf("%d ", dime); printf("%d ", quarter); printf("%d ", half_dollar); printf("%d ", dollar); return 0;}
int x=123; printf("Угадайте число:\n"); for (x=0; x==123; ) scanf("%d", &x);
int a = SCHAR_MIN; int b = SCHAR_MAX;
long fact(long n) { return (n>1) ? n * fact(n-1) : 1;}Когда завершится рекурсивный процесс?
extern int x, y;extern char ch;void func22(void){ y = 100;}void func23(void){ x = y/10; ch = 'R';}В каком случае выполняется неверное подключение файла second.h в другом файле?
int main (void) { enum month {january = 1, february, march, april, may, june,july, august, september, october, november, december } aMonth; int days; printf("\n Enter the number of the month (1 - 12): "); scanf_s("%d", &aMonth); switch (aMonth) { case january: case march: case may: case july: case august: case october: case december: days = 31; break; case april: case june: case september: case november: days = 30; break; case february: days = 28; break; default: printf("\n\t Wrong number of the month\n"); days = 0; break; } if (days) printf("\n The number of days of the month: %d\n", days); if (aMonth == 2) printf("\n ... or 29 if it is a leap year\n"); return 0; }
void swap(int *pa, int *pb){ int temp; temp = *pa; *pa = *pb; *pb = temp;}В каком случае вызов функции swap() осуществляется верно?
int main( void ){ int i, j, k, buf; FILE *stream; char str[11] = "Lection 11"; if( (stream = fopen("g:\\fread.txt", "w+t")) == NULL ) printf( "Problem opening the file\n" ); else { k = fwrite(str,sizeof(char), sizeof(str)/sizeof(char), stream); printf("k = %d\n", k); fclose(stream); } return 0; }Какие утверждения являются верными?
char s[5], psw[] = "password"; int i, k= 0; for (i=0; !k && i<3; i++) { printf("Введите пароль: \n"), gets(s); if (strcmp(s, psw)) k = 1; } if (k) printf("Добро пожаловать! TRUE"); else printf("Ошибка: Неверный пароль! FALSE");Проверьте правильность этого кода для выполнения поставленной задачи и определите, сколько раз будет выполнен цикл for, если пользователь сразу введет верный пароль password?
int x; short y;Какие утверждения являются верными при выполнении арифметического выражения x + y?
int a = 15, b = 2; float c = 1.0F; float d; d = c*(a/b);
char FirstName[100], LastName[100]; int Age; printf("Введите Ваши имя, фамилию и возраст: \n"); scanf("%[^,]s %s %d", FirstName, LastName, &Age);
int x; printf("Введите число от 1 до 7: "); scanf_s("%d", &x); switch (x<=5 ? 1 : x==6 ? 2 : 3) { case 1: printf("Сегодня рабочий день"); break; case 2: printf("Сегодня суббота"); break; case 3: printf("Сегодня воскресенье"); break; default: printf("Ошибка! Вы ввели неверное число"); break; }Какое число нужно ввести, чтобы на экран было выведено сообщение Ошибка! Вы ввели неверное число?
int a, b, res; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция"); f = 0; } if (f) printf ("Результат: %d", res);
int num, half, div; printf("Введите число: "); scanf_s("%d", &num); half = num / 2; div = 2; do { if (!(num % div)) printf("%d ", div); div++; } while (div <= half);
#include <stdio.h>#define N 10int main(){ int i, sum; int arr[N] = {3, 4, 5, 4, 4}; for (i = 1, sum = 0; i<N; i++) sum += arr[i]; printf("Сумма элементов: %d\n", sum); return 0; }
#include <stdio.h>#define N 5#define M 2int main(){ int i, j, sum=0; int arr[N][2] = {0,1,2,3,4,5,6,7,8,9}; for (i=0; i<N; i++) { for (j=0; j<M; j++) if (!(arr[i][j]%2)) sum+=arr[i][j]; } printf("sum = %d\n", sum); return 0;}
int n=0, num=10; char str1[10]="", str2[10]="Lection"; _itoa(num, str1, 10); strcat(str2, str1); n = strlen(str2);
char str1[10] = "Lection"; char str2[10] = "lection";Какое утверждение является верным и почему?
#include <stdio.h>#include <string.h>#define N 10int main(){ char strLow[N]; int i; printf("Enter string in low register (%d symbols): \n", N); scanf("%s", strLow); for (i=0; i<strlen(strLow); i++) putchar(strLow[i] - 32); printf("\n"); return 0;}
#include <stdio.h>#include <string.h>#define N 10int main(){ int i = 0; char ch; char str1[N] = "test"; char str2[N] = ""; ch= str1[0]; while (ch!='\0') { str2[i] = str1[i]; i++; ch= str1[i]; } return 0;}
int i = 0; char t1 = 218; char tr = 191; char b1 = 192; char br = 217; char g = 196; char v = 179; printf("%c", t1); for (i=0; i<32; i++) printf("%c",g); printf("%c\n", tr); printf("%c", v); for (i=0; i<32; i++) printf("%c",' '); printf("%c\n", v); printf("%c", b1); for (i=0; i<32; i++) printf("%c",g); printf("%c\n", br);
int x = 99; int *p1, *p2; p1 = &x; p2 = p1;
char a='A', b='B', c='C'; char *pc; pc = &a; c = *pc; *pc = 'C'; b = a;
#include <stdio.h>#include <conio.h>int main(){ char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (*ptr1!='\0') { if (*ptr1=='\0') { *ptr2 = '\0'; break; } *ptr2 = *ptr1; ptr1++; } printf("str2 = %s\n", str2); return 0; }
#include <stdio.h>#include <conio.h>int main(){ char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (ptr1>=str1) { if (ptr1<str1) *ptr2 = '\0'; *ptr2 = *ptr1; ptr1--; ptr2++; } printf("str2 = %s\n", str2); return 0; }
int x = 10, y = 20, z; int *p1, *p2; p1 = &x; p2 = p1; <Выражение> z = (x==y) ? (x+y) : (y-x);
int i, N, sum = 0; int arr[] = {3, 2, 4, 5, 1}; int *ptr; N = sizeof(arr)/sizeof(arr[0]); ptr = arr; for (i=0; i<N; i++) sum += *ptr;Какое действие выполняет данный код?
int m; char month[3], s[8] = ""; char *season[] = { "winter", "spring", "summer", "autumn" }; printf("Enter day of your birthday (MM.DD): "); scanf("%[^.]s", month); m = atoi(month); if ((m==12) || (m<3)) strcpy(s, season[0]); else if ((m>2) && (m<6)) strcpy(s, season[1]); else if ((m>6) && (m<9)) strcpy(s, season[2]); else strcpy(s, season[3]); printf("Your birthday is in %s\n", s);
int arr1[10] = {1,2,3,4,5}; (1) int *arr2 = (int *)calloc(10, sizeof(int)); (2) int *arr3 = (int *)malloc(10*sizeof(int)); (3) int arr4[][3] = {{1,2,3}, {4,5,6}}; (4)
int i; double **m; m = (double **)calloc(10,sizeof(double *)); for (i=0; i<10; i++) m[i] = (double *)calloc(5,sizeof(double));Как в данном случае освободить выделенную память?
int sq(int a, int x){ int i, res = 1; for (i=0; i<x; i++) res*= a; return res;}int main(void){ int n=4, b = 3, p; p = sq(n,b); printf("%d^%d = %d\n", n, b, p); return 0;}
int is_in(char *s, char c) (1) { while(*s) (2) if(*s==c) return 1; (3) else s++; (4) return 0; (5) }Что произойдет при вызове функции is_in("Lection 10", 'i')?
#include <stdio.h>#include <string.h>int search(char *p[], char *name); (1)char *names[] = { "Сергей", "Юрий", "Ольга", "Игорь", NULL}; int main(void){ if(search(names, "Ольга") != -1) (2) printf("Ольга есть в списке.\n"); return 0;}int search(char *p[], char *name) (3){ int t; for(t=0; p[t]; ++t) if(!strcmp(p[t], name)) return t; return -1;}
#include <stdio.h>#define n 10void fun(int *mas, int k);int main( void ){ int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); for (i=0; i<n; i++) printf("arr[%d] = %d\n", i, arr[i]); return 0;}void fun(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) mas[i] *= 2;}
#include <stdio.h>#include <stdlib.h>#define n 2#define m 3int sum(int *a, int x, int y);int main( void ){ int i, s; int a[n][m] = {{1,2,3}, {4,5,6}}; s = sum(a, n, m); printf("Сумма элементов а: %d\n", s); return 0;}int sum(int *a, int x, int y){ int i, j, s = 0; for (i=0; i<x; i++) for (j=0; j<y; j++) s += a[i*y+j]; return s;}
int *sum(int A[], int B[], int n){ int i; int *ptr = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) ptr[i] = A[i] + B[i]; return ptr;}Как вызвать функцию sum?
void PuzSortInc (int*, int );void PuzSortDec (int*, int);int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } if (pFun) { pFun(A,n); printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); }; return 0;}void PuzSortInc (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}void PuzSortDec (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?
void PuzSortInc (int*, int );void PuzSortDec (int*, int);int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; void (*pFun) (int*, int) = NULL; n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } pFun(A,n); printf("\nОтсортированный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); return 0;}void PuzSortInc (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}void PuzSortDec (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}
char str[30], i; FILE *fp; if((fp = fopen("g:\\test.txt", "r"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fgets(str, 30, fp); i = strlen(str); fclose(fp);
int main( void ){ FILE *stream; char line[81]; int result; if ( fopen_s( &stream, "g:\\fseek.out", "w+" ) != 0 ) { printf( "The file fseek.out was not opened\n" ); return -1; } fprintf( stream, "Ivanov - 09.06.1980 " "Petrov - 10.03.1986 \n" "Sidorov - 08.11.1985\n"); result = fseek( stream, 20L, SEEK_SET); if( result ) perror( "Fseek failed" ); else { fgets( line, 80, stream ); printf( "%s", line ); } fclose( stream ); return 0;}
int main( void ){ FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, -24L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fgets( str, 80, stream ); printf( "%s", str ); } fclose( stream ); return 0;}
int main(void){ FILE *fp; char str[30] = "Lection 11"; int k, l, m; if((fp=fopen("g:\\test.txt", "wt+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } k = fwrite(str, sizeof(char), strlen(str)-3, fp); rewind(fp); l = fread(str, sizeof(char), sizeof(str)/sizeof(char), fp); m= k+l; fclose(fp); return 0;}
struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip;} addr_info, binfo;
struct addr{ char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip;};Каким образом данная структура хранится в памяти?
void PrintStruct(char*, int, int);int main (void){ <Объявление структуры Account и переменных acc1, acc2> acc2 = &acc1; acc1.account = 346578; acc1.name = "Ivanov"; acc1.balance = 30000; PrintStruct(acc1.name, acc1.account, acc1.balance); acc2->account = 90005; acc2->name = "Pertov"; acc2->balance = 46000; PrintStruct(acc2->name, acc2->account, acc2->balance); return 0; }void PrintStruct(char *str, int a, int b){ printf("Name: %s\n", str); printf("Account: %d\n", a); printf("Balance: %d\n\n", b);}
int main (void){ struct student { char *name; char *birthday; int group; } s1, s2; int s; s1.name = "Ivanov"; s1.birthday = "10.03.1985"; s1.group = 1014; s2.name = "Petrov"; s2.birthday = "08.04.1985"; s2.group = 1309; s2 = s1; if (s2.group == s1.group) printf("Students %s and %s are studying in the same group\n", s1.name, s2.name); else printf("Students %s and %s are not studying in the same group\n", s1.name, s2.name); return 0; }
int main (void){ struct student { char *name; char *surname; int group; int ses[5]; double av; struct student *p; } st; FILE *fp; int i, sum = 0; st.name = "Ivan"; st.surname = "Ivanov"; st.group = 1024; st.ses[0] = 5; st.ses[1] = 4; st.ses[2] = 5; st.ses[3] = 5; st.ses[4] = 5; for (i=0; i<5; i++) sum +=st.ses[i]; st.av = sum/5; if ((fp = fopen("g:\\marks.txt", "w+t")) == 0) printf("Open file error"); else { fprintf(fp, "Name: %s %s\n", st.surname, st.name); fprintf(fp, "Group: %d\n", st.group); fprintf(fp, "Average mark: %.2f\n\n", st.av); fclose(fp); }; return 0; }
int main (void){ struct train_info { char nazn[40]; int numb; char time[10]; }; typedef struct train_info train; train tr[3]; int i = 0, sum = 0, ch=0; char str[10], search[10]; while(ch!=121) { printf("\nEnter information about train (Q - quit): \n"); printf("Enter destination of the train: "); gets(tr[i].nazn); printf("Enter number of the train: "); gets(str); tr[i].numb = atoi(str); printf("Enter time of scheduled departure: "); gets(tr[i].time); ++i; printf("Quit? (y/n): "); ch = _getche(); }; printf("\n\nEnter train destination: "); gets(search); for (i=0; i<3; i++) { if (strcmp(tr[i].nazn,search)==0) { printf("\n\tTrain number: %d", tr[i].numb); printf("\n\tTime: %s", tr[i].time); } } if (i>=3) printf("There is no train to this destination"); return 0; }
union test { char ch1[5]; char ch2[2]; char ch3[1];};int main(void){ union test t; char *str; strcpy(t.ch1, "test"); t.ch2[0] = 'b'; t.ch3[0] = 'w'; str = t.ch1; return 0;}
int main(void){ union pw { int i; double d; char ch[2]; } pw = {"y"}; printf("pw.d = %.2f", pw.d); return 0;}
int main(void){ enum coin { penny, nickel, dime, quarter=100, half_dollar, dollar}; enum coin money; char name[][12]={ "penny", "nickel", "dime", "quarter", "half_dollar", "dollar" }; money = half_dollar; printf("%s", name[money]); return 0;}
int main(void){ typedef enum { ERR_READ, ERR_WRITE, ERR_CONVERT} Err; Err error; switch (error) { case ERR_READ: printf("Возникла ошибка чтения (ERR_READ)\n"); break; case ERR_WRITE: printf("Возникла ошибка записи (ERR_WRITE)\n"); break; case ERR_CONVERT: printf("Возникла ошибка преобразования (ERR_CONVERT)\n"); break; default: printf("Возникла неизвестная ошибка\n"); break; }; return 0;}
struct fred { char x; int y; float z; char str[10]; } mike;Каким образом члены структуры могут быть переданы в функцию?
#define MAX 20double sum(double, double);int main (void) { struct test { char A[MAX+1]; double ax; char B[MAX+1]; double by; }; struct test AB; printf("\nEnter 1st name: "); gets_s(AB.A, MAX); printf("\nEnter the first real number: "); scanf_s("%lf", &AB.ax); _flushall(); printf("\nEnter 2nd name: "); gets_s(AB.B, MAX); printf("\nEnter the second real number: "); scanf_s("%lf", &AB.by); printf("\n\nThe sum of two numbers %1.2f and %1.2f, %s and %s: %1.2f\n", AB.ax, AB.by, AB.A, AB.B, sum(AB.ax, AB.by)); return 0; }double sum(double x, double y) { return (x + y);}
struct struct_type { int a, b; char ch;} ;int main(void){ struct struct_type arg; arg.a = 1000; f1(arg); return 0;}
typedef struct { char fio[30]; int group; float average;} student;void Init(student*);int main(void){ student s, *st; int i; st = &s; Init(st); return 0;}void Init(student *st){ printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average);}
void Init(struct student*);void Print(struct student*);int main(void){ struct student { char fio[30]; int group; float average; }; struct student s, *st; int i; st = &s; Init(st); Print(st); return 0;}void Init(struct student *st){ printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average);}void Print(struct student *st){ printf("\nName: %s", st.fio); printf("\nGrouproup: %d", st.group); printf("\nAverage mark: %.2f", st.average);}
typedef struct sale_struct { char *title; int price;} sale;sale Copy(sale);int main(void){ sale s1,s2; struct sale_struct s3, s4; s1.title = "Book"; s1.price = 200; s3.title = "Cake"; s3.price = 60; return 0;}sale Copy(sale s) { sale s1; s1 = s; return s1;}Какие из перечисленных вызов функции Copy являются неверными?
typedef struct sale_struct { char *title; int price;} sale;Для выполнения поставленной задачи была создана функция:
sale Copy(char* t, int p) { sale s1; s1.title = t; s1.price = p; return s1;}Какие утверждения являются верными?
int main(void){ struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int b; struct test t, *pt; pt = &t; pt->f1 = 11; t.type = 3439; b = t.f1 + t.type; printf("b = %d\n", b); return 0;}
int main(void){ struct Options { unsigned int centerX : 1; unsigned int centerY : 1; unsigned int shadow : 2; unsigned int palette : 4; }; int b; struct Options t, *pt; t.shadow = 10; t.palette = 12; b = t.shadow + t.palette; printf("b = %d\n", b); return 0;}
void printBits(unsigned int var);int main (void) { unsigned int number1, number2; printf("\n The program on demonstration digit-by-digit operator OR ( | ):\n"); printf("\n\t Enter the unsigned number of N1: "); scanf_s("%u", &number1); printf("\t Enter the unsigned number of N2: "); scanf_s("%u", &number2); printf("\n\t Binary representation of the number of N1 (%u) and\n", number1); printf("\t Binary representation of the number of N2 (%u):\n", number2); printBits(number1); printBits(number2); printBits(number1 | number2); printf("\n\n Press any key: "); _getch(); return 0;}void printBits(unsigned int var) { unsigned int b; unsigned int num = 1 << 31; printf("\n\t %10u = ", var); for (b = 1; b <= 32; ++b) { printf("%c", var & num ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); } }
int main(void){ struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = 3; c = t.b ^ t.a; printf("c = %d\n", c); return 0;}
int main(void){ int date; int year = 26; int month = 12; int day = 31; year = year << 9; month = month << 5; date = day; date = date | month; date = date | year; return 0;}
extern int x, y;extern char ch;static void func1(void){ y = 100;}int func2(int a){ int b; b = a; retun b;}extern void func2(void){ x = y/10; ch = 'R';}
int c = 9;int sum(int a, int b){ return a+b;}int t = 8;int main(void){ int n=4, m=3, s1, s2; s1 = sum(n,m); s2 = mul(n,m); return 0;}int k = 6;int mul(int a, int b){ return a*b;}
int test();int a = 1;int main (void) { int b, s; extern int x; static int c; int a; a = 2; s = test(); return 0; }int test() { int t = a; return t;}
int min(int, int);int t;int main(void){ int x=-5, y=5, m; m = min(x,y); printf("min = %d\n", m); return 0;}int min(int a, int b){ int m = (a<b) ? a : b; return m;}
extern int x, y;extern char ch;void func22(void){ y = 100;}void func23(void){ x = y/10; ch = 'R';}Каким образом файл second.h должен быть подключен для возможности использования описанных в нем переменных и функций в другом файле?
#define N 7void step(int, int, int); int map[N][N]; // карта: map[i,j]!=0, если точки i и j соединены int road[N]; // маршрут - номера точек карты int incl[N]; // incl[i]==1, если точка с номером i включена в road int start; // начальная точка маршрута int finish; // конечная точка маршрута int i, j;int main (void) { // инициализация массивов for (i=0; i<N; i++) road[i] = 0; for (i=0; i<N; i++) incl[i] = 0; for (i=0; i<N; i++) for (j=0; j<N; j++) map[i][j] = 0; // ввод значений элементов карты map[0][1] = 1; map[1][0] = 1; map[0][2] = 1; map[2][0] = 1; map[0][3] = 1; map[3][0] = 1; map[2][3] = 1; map[3][2] = 1; map[2][6] = 1; map[6][2] = 1; map[3][5] = 1; map[5][3] = 1; map[4][5] = 1; map[5][4] = 1; map[4][6] = 1; map[6][4] = 1; map[5][6] = 1; map[6][5] = 1; printf("Введите через пробел номер начальной и конечной точек: "); scanf("%d %d", &start, &finish); road[0] = start; // внести точку в маршрут incl[0] = 1; // пометить точку как включенную step(start, finish, 2); return 0;}void step(int s, int f, int p) { int c; // номер точки, в которую делается очередной шаг int i; if (s==f) { printf("Путь: "); for (i=0; i<p-1; i++) printf("%d ", road[i]); printf("\n"); } else { // выбор очередной точки for (c=0; c<N; c++) // проверка всех вершин if (map[s][c]!=0 && incl[c]==0) { // точка соединена с текущей и не включена в маршрут road[p] = c; // добавление вершины в путь incl[c] = 1; // пометка вершины как включенной step(c, f, p+1); incl[c] = 0; road[p] = 0; } }}
char s[100];int pal(char s[100]);int main(){ printf("\nВведите строку: "); gets(s); if (pal(s)) printf("Строка является палиндромом"); else printf("Строка не является палиндромом"); return 0;}int pal(char s[100]){ int l; char s1[100]; if (strlen(s) = 1) return 1; else { l=s[0]==s[strlen(s)-1]; strncpy(s1, s+1, strlen(s)-2); s1[strlen(s)-2]='\0'; return l&&pal(s1); }}Выполняет ли программа поставленную задачу?
long fact (int n){ if ( n<1 ) return 1; else return n*fact(n-1);}Какой будет последовательность вызов, если в функции main задать long result=fact(3)?
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <locale.h>#ifndef ARR #define ARR #include "..\arr.txt"#endifint main (void) { int i = 0 , j = 0, n; setlocale (LC_ALL, "rus"); printf("Введите количество человек (от 1 до 3): "); scanf("%d", &n); if (n<1 || n>3) { printf("Ошибка ввода данных. Нажмите любую клавишу: "); _getch(); exit(1); } #ifdef ARR for (i=0; i<n; i++) printf("%d. %s %s\n", i+1, names[i], surnames[i]); #endif return 0;}Содержание файла arr.txt:
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};Где должен храниться подключаемый файл?
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <locale.h>#ifndef ARR#define ARR#include "arr.txt"#endifint main (void) { int i = 0 , j = 0, n; setlocale (LC_ALL, "rus"); printf("Введите количество человек (от 1 до 3): "); scanf("%d", &n); if (n<1 || n>3) { printf("Ошибка ввода данных. Нажмите любую клавишу: "); _getch(); exit(1); } #undef ARR #ifdef ARR for (i=0; i<n; i++) printf("%d. %s %s\n", i+1, names[i], surnames[i]); #endif return 0;}Содержание файла arr.h:
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};Определите, будут ли выведены на экран сочетания имён и фамилий из файла arr.h при выполнении приведенной программы? Если не будут, то почему?
int main(int argc, char* argv[]){ char name[30]; FILE *f; f = fopen("g:\\test.txt", "w+"); fprintf(f, "%s\n%s", argv[0], argv[1]); return 0;}Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. На какую строку указывает argv[1]?
int main(int argc, char* argv[]){ int n1, n2, m, sum; m = argc; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 + n2; printf("sum = %d\n", sum); return 0;}Программа запускается из командной строки командой Example.exe 2 3 5. Чему будет равно значение переменной m?
int main(int argc, char *argv[]){ int t, i; for(t=0; t<argc-1; ++t) { i = 0; while(argv[t][i]) { putchar(argv[t][i]); ++i; } printf("\n"); } return 0;}
int main(int argc, char *argv[]){ int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0;}
#include <stdio.h>#include <conio.h>#include <stdarg.h>void error(int severity, ... );int main( void ){ char err[][30] = {"Сообщение 1", "Сообщение 2"}; int n = -1; printf("Введите степень критичности ошибки (целое число): "); scanf("%d", &n); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0;}void error(int severity, ... ){ va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n");}Какое сообщение будет выведено на экран, если пользователь задаст значение n равным 10?
union payment { char card[10]; int sum; double date;};
struct struct_type { int a, b; char ch;} ;int main(void){ struct struct_type arg; arg.a = 1000; f1(&arg); return 0;}
void PuzSortInc (int*, int );void PuzSortDec (int*, int);int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; void (*pFun) (int*, int) = NULL; n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: pFun = PuzSortInc; break; case 2: pFun = PuzSortDec; break; default: printf("ERROR! Такого алгоритма не определено!"); } if (pFun) { pFun(A,n); printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); }; return 0;}void PuzSortInc (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}void PuzSortDec (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}
#include <stdio.h>#include <conio.h>#include <stdlib.h>#include <string.h>int main(void) { int n, m; char *ptr; printf("\nEnter a dimention of character array: "); scanf_s("%d", &n); _flushall(); ptr = (char *)malloc((n+1)*sizeof(char)); if (!ptr) { printf("\nERROR! Out of memmory (error in malloc() function). Press any key..."); _getch(); exit(1); } printf("Enter a character array (not more than %d characters): ", n); gets_s(ptr, n+1); m = strlen(ptr); strcat_s(ptr, m+2, "!"); printf("\nStart line and character \"%c\": %s", '!', ptr); free (ptr); printf("\n\nPress any key: "); _getch(); return 0; }
void PuzSortInc (int*, int );void PuzSortDec (int*, int);int main (void) { int A[] = {56, 34, 2, 0, 1, -21, 6, 8, 7}; int i, n, alg; <Объявление указателя pFun на функции> n = sizeof(A)/sizeof(A[0]); printf("Исходный массив: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); printf("\nВыберите алгоритм сортировки (1 - \"методом пузырька\" по возрастанию,\ 2 - \"методом пузырька\" по убыванию: "); scanf("%d", &alg); switch (alg) { case 1: (*pFun[0])(A, n); break; case 2: (*pFun[1])(A, n); break; default: printf("ERROR! Такого алгоритма не определено!"); } printf("\nSorted array: "); for (i = 0; i < n; i++) printf(" %3d", A[i]); return 0;}void PuzSortInc (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] > arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}void PuzSortDec (int* arr, int size){ int i, j, buf; for (i = 0; i < size - 1; i++ ) { for (j = 0; j < size - 1; j++) { if (arr[j] < arr[j + 1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } } }}Функция PuzSortInc() выполняет сортировку по возрастанию, функция PuzSortDec() - по убыванию. Каким образом должен быть объявлен указатель на функции для его использования в приведенной программе?
typedef struct { char fio[30]; int group; float average;} student;void Init(student*);int main(void){ student s, *st; int i; st = &s; Init(st); <Вывод данных на экран> return 0;}void Init(student *st){ printf("\nEnter name: "); scanf("%s", st->fio); printf("\nEnter group: "); scanf("%d", &st->group); printf("\nEnter average mark: "); scanf("%f", &st->average);}Необходимо дополнить программу функцией вывода заданных о студенте данных на экран и вызовом этой функции в программе. Какой вариант описания и вызова функции выполняет поставленную задачу?
union payment { char card[25]; int sum; double date;};
int f();static int d = 5, e = 8;int main(void){ int n = 1, m = 1; int s; s = f(); return 0;}int f(){ int p; static int c = 0; p = c; printf("d = %d",d); return p;}
int i; char str[10] = "Test", *p1, *p2; p1 = str; p2 = p1; p2--; p1++; i = 2 * (p1 - p2);
char FirstName[100], LastName[100]; int Age; printf("Введите Ваши имя, фамилию и возраст: \n"); scanf("%s %[^,]s %d", FirstName, LastName, &Age); printf("Приятно познакомиться, %s %s!\n", FirstName, LastName);
int x, n = 1; while (n<=10) { x = n*n; printf("%d %d\n", n, x); }
int num; do { scanf("%d", &num);} while (num > 100);
int cond; int A = 1; cond = (A >= 100) && (A <= 150);
int a, b, res = 0; char op; int f = 1; printf("Введите 1й операнд: "); scanf("%d", &a); printf("Введите знак операции: "); scanf("%s", &op); printf("Введите 2й операнд: "); scanf("%d", &b); switch (op) { case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf("Неизвестная операция\n"); f = 0; } if (f) printf ("Результат: %d", res);
int n = 1; (1) while (n<=10) (2) { if (n%2) (3) printf("%d\n", n); (4) n++; (5) printf("%d\n", n); (6) n++; (7) }Как изменить приведенный цикл, чтобы на экран выводились только нечетные числа от 1 до 10?
#include <stdio.h>#define N 5int main(){ int m, i; int arr[N] = {3, 2, 4, 5, 1}; m = 1; for (i=1; i<N; i++) if (arr[i]>arr[m]) m = i; printf("a[m] = %d", arr[m]); return 0; }
int i, j, size; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size = sizeof(arr)/sizeof(arr[0][0]);
char s[5], psw[] = "password"; int i, k= 0; for (i=0; !k && i<3; i++) { printf("Введите пароль: \n"), gets(s); if (strcmp(s, psw)) k = 1; } if (k) printf("Добро пожаловать! TRUE"); else printf("Ошибка: Неверный пароль! FALSE");Проверьте правильность этого кода для выполнения поставленной задачи и определите, сколько раз будет выполнен цикл for, если пользователь не знает верного пароля?
#include <stdio.h>#define N 7int main(){ int i, j, k, buf; char arr[N] = "Lection"; for (i=0; i<N; i++) for (j=0; j<N-1; j++) { if (arr[j] > arr[j+1]) { buf = arr[j]; arr[j] = arr[j+1]; arr[j+1] = buf; } }; for (k=0; k<N; k++) printf("%c ", arr[k]); return 0; }
#include <stdio.h>#include <conio.h>int main(){ int n=0, i=0, j=0; char ch, str[30]=""; printf("Введите строку: "); scanf("%s", str); printf("Введите символ: "); ch = _getche(); for(i=0; i<strlen(str); i++) { for (j=0; j<strlen(str); j++) { if(str[j]==str[i]) n++; } printf("\n%c - %d", str[i], n); n = 0; } printf("\n"); return 0; }
char a='A', b='B', c='C'; char *pc1, *pc2; pc1 = &c; pc2 = pc1; c = b; *pc2 = a;
#include <stdio.h>#include <conio.h>int main(){ int i; char a[10] = "Test", b[10] = ""; char *pa = a; char *pb = b; for (i=0; i<strlen(a); i++) *pb++ = *pa++; printf("a = %s\n", a); printf("b = %s\n", b); return 0;}Какая программа аналогична приведенной?
#include <stdio.h>#include <conio.h>int main(){ char str1[10] = "", str2[10] = ""; char *ptr1, *ptr2; printf("Введите строку: %s", str1); scanf("%s", str1); ptr1 = str1; ptr2 = str2; while (ptr1>=str1) { if (ptr1<str1) *ptr2 = '\0'; *ptr2 = *ptr1; ptr1--; ptr2++; } printf("str2 = %s\n", str2); return 0; }
int x = 100, *ptr1, **ptr2; ptr1 = &x; ptr2 = &ptr1;
int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, el; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = &m[0][0];На какой элемент массива m будет указывать указатель ptr+3?
#include <stdio.h>#include <stdlib.h>#define N 10int main(void){ int i; int *arr; arr = (int *)calloc(N, sizeof(int)); if (!arr) { printf("\nERROR! Out of memory in calloc() function. Press any key: "); _getch(); exit(1); }; for (i=0; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0;}Каким образом можно изменить программу для ее корреткной работы?
#include <stdio.h>#include <stdlib.h>#define N 10int main(void){ int i; int *arr; arr = (int *)realloc(arr, (N+2)*sizeof(int)); for (i=0; i<N; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } if (!arr) { printf("\nERROR! Out of memory in realloc() function. Press any key: "); _getch(); exit(1); }; for (i=N; i<N+2; i++) { arr[i] = i+1; printf("arr[%d] = %d\n", i, arr[i]); } free(arr); return 0;}Какие изменения нужно внести в программу для ее корректной работы?
int is_in(char *s, char c) (1) { while(*s) (2) if(*s==c) return 1; (3) else s++; (4) return 0; (5) }При выполнении какой строки произойдет выход из фукнции при ее вызове is_in("Lection 10", 'i')?
void swap(int *pa, int *pb){ int temp; temp = *pa; *pa = *pb; *pb = temp;}В каком случае вызов функции swap() осуществляется неверно?
#include <stdio.h>#define n 10void fun(int *mas, int k);int main( void ){ int arr[n] = {3,4,5,4,4}; int i; fun(arr, n); for (i=0; i<n; i++) printf("arr[%d] = %d\n", i, arr[i]); return 0;}void fun(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) mas[i] *= 2;}
int main (void) { double (*pFunc) (double); int c = 1; double y; while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sin; break; case 2: pFunc = sqrt; break; case 3: pFunc = tan; break; case 0: return; default: continue; } y = pFunc(1.1); printf("f(1.1) = %.2f\n", y); } return 0;}Какое вычисление будет выполнено в том случае, если пользователь в запросе выбора функции задаст число 2?
#include <stdio.h>#include <math.h>#include <time.h>#include <string.h>void AddToLog(FILE*, char*);char* GenerateFileName();int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); <Открытие файла> while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0;}void AddToLog(FILE *fp, char *str){ if (fp != NULL) fputs(str, fp);}char* GenerateFileName(){ char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4);}
void PrintStruct(char*, int, int);int main (void){ <Объявление структуры Account и переменных acc1, acc2> acc2 = &acc1; acc1.account = 346578; acc1.name = "Ivanov"; acc1.balance = 30000; PrintStruct(acc1.name, acc1.account, acc1.balance); acc2->account = 90005; acc2->name = "Pertov"; acc2->balance = 46000; PrintStruct(acc2->name, acc2->account, acc2->balance); return 0; }void PrintStruct(char *str, int a, int b){ printf("Name: %s\n", str); printf("Account: %d\n", a); printf("Balance: %d\n\n", b);}
int main (void){ struct stud { char *name; char *surname; int age; double av_mark; }; <Объявление структуры group и переменной gr> gr.number = 3; gr.quantity = 21; gr.student.name = "Ivan"; gr.student.surname = "Ivanov"; gr.student.age = 20; gr.student.av_mark = 4.25; printf("Group Number: %d\nThe number of students in the group: %d\n", gr.number, gr.quantity); printf("%s %s - %1.2f", gr.student.surname, gr.student.name, gr.student.av_mark); return 0; }
#define MAX 20double sum(double, double);int main (void) { struct test { char A[MAX+1]; double ax; char B[MAX+1]; double by; }; struct test AB; printf("\nEnter 1st name: "); gets_s(AB.A, MAX); printf("\nEnter the first real number: "); scanf_s("%lf", &AB.ax); _flushall(); printf("\nEnter 2nd name: "); gets_s(AB.B, MAX); printf("\nEnter the second real number: "); scanf_s("%lf", &AB.by); printf("\n\nThe sum of two numbers %1.2f and %1.2f, %s and %s: %1.2f\n", AB.ax, AB.by, AB.A, AB.B, sum(ax, by)); return 0; }double sum(double x, double y) { return (x + y);}
struct struct_type { int a, b; char ch;} ;struct struct_type2 { int a, b; char ch;} ;void f1(struct struct_type2 parm);int main(void){ struct struct_type arg; arg.a = 1000; f1(arg); return 0;}void f1(struct struct_type2 parm){ printf("%d", parm.a);}
typedef struct { char fio[30]; char phone[20]; int age;} note;note Init(char*, char*, int);void Print(note*);void Modify(note);int main(void){ note n[3], *pn; char *strName[3] = {"Ivanov I.", "Pertov P.", "Sidorov S."}; char *strPhone[3] = {"12-34-56", "78-90-12", "34-56-78"}; int i, age = 25; for (i=0; i<3; i++) { n[i] = Init(strName[i], strPhone[i], age+i); pn = &n[i]; Print(pn); } Modify(n[0]); pn = &n[0]; Print(pn); return 0;}note Init(char* f, char* p, int a){ note n, *pn; pn = &n; strcpy(pn->fio, f); strcpy(pn->phone, p); pn->age = a; return n;}void Print(note *pn){ printf("\nName: %s", pn->fio); printf("\nPhone: %s", pn->phone); printf("\nAge: %d\n", pn->age);}void Modify(note n) { strcpy(n.fio, "Vasiliev V."); strcpy(n.phone, "89-01-23"); n.age = 30;}Какие функции соответсвуют поставленной задаче?
void printBits(unsigned int var);int main (void) { unsigned int number, mask; printf("The program on demonstration digit-by-digit operation And ( & )\n"); printf("Enter a whole number of unsigned: "); scanf_s("%u", &number); printf("Enter the number of unsigned-mask: "); scanf_s("%u", &mask); printf("Binary representation of the starting number(%u) and\n", number); printf("Binary representation of the number-masks (%u):\n", mask); printBits(number); printBits(mask); printBits(number & mask); return 0; }void printBits(unsigned int var) { unsigned int b; unsigned int mask = 1 << 15; printf("\n%10u = ", var); for (b = 1; b <= 16; ++b) { printf("%c", var & mask ? '1' : '0'); var <<= 1; if (b % 8 == 0) putchar(' '); }}
int c = 9;int sum(int a, int b){ return a+b;}int t = 8;int main(void){ int n=4, m=3, s1, s2; s1 = sum(n,m); s2 = mul(n,m); return 0;}int k = 6;int mul(int a, int b){ return a*b;}
int main (void) { printf("a = %d; b = %d\n", a, b); printf("Press any key: "); _getch(); return 0; }int a = 33, b = 34;
int test();int a = 1;int main (void) { int b, s; extern int x; static int c; s = test(); return 0; }int test() { int t = a; return t;}int x = 4;
int min(int, int);int t;int main(void){ int x=-5, y=5, m; m = min(x,y); printf("min = %d\n", m); return 0;}int min(int a, int b){ int m = (a<b) ? a : b; return m;}
long fact(long n) { return (n>1) ? n * fact(n-1) : 1;}Какое утверждение является неверным?
long fact (int n){ if ( n<1 ) return 1; else return n*fact(n-1);}Какая последовательность вызовов будет неверной, если в функции main задать long result=fact(3)?
int Sum(int x, int step, int n){ if (n==1) return(x); else return(Sum(x, step, n-1)+step);}int main(){ int x, s, n; int pr; printf("Введите первый член, число элементов и разность прогрессии:"); scanf("%d %d %d", &x, &n, &s); <Вызов функции sum()> printf("pr = %d", pr); return 0;}Пользователь вводит данные для вычисления через пробел в следующей последовательности: первый член арифметической прогрессии, разность прогрессии, количестов элементов. В какой последовательности эти параметры должны быть заданы при вызове рекурсивной функии sum()?
#include <stdio.h> #define SQR(x) (x*x)int main(){ int x, y=2; x = SQR(y+1); printf("x = %d", x); return 0;}
#ifndef HEADER_INCLUDED#include "arr.h"#define HEADER_INCLUDED#enif
#include <stdio.h>#include <conio.h>#include <stdarg.h>#include <stdlib.h>#include <locale.h>void error(int severity, ... );int main(int argc, char* argv[]){ char err[][30] = {"Сообщение1", "Сообщение2"}; int n; setlocale (LC_ALL, "rus"); n = atoi(argv[1]); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0;}void error(int severity, ... ){ va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n");}Программа запускается из командной строки командой Example.exe 0. Какое сообщение будет выведено на экран?
int main(int argc, char* argv[]){ int n1, n2, m, sum; m = argc; n1 = atoi(argv[1]); n2 = atoi(argv[2]); sum = n1 + n2; printf("sum = %d\n", sum); return 0;}Программа запускается из командной строки командой Example.exe 2 3 5. Чему будет равно значение переменной sum?
int main(int argc, char *argv[]){ int disp, count; setlocale (LC_ALL, "rus"); if(argc<2) { printf("В командной строке на задано число\n"); exit(1); } if(argc==3 && !strcmp(argv[2], "display")) disp = 1; else disp = 0; for(count=atoi(argv[1]); count; --count) if(disp) printf("%d ", count); putchar('\a'); printf("Счет закончен"); return 0;}Что будет выведено на экран в результате выполнения приведенной программы, если ее запуск выполняется из командной строки командой Example.exe 5?
int main(void){ typedef enum { ERR_READ, ERR_WRITE, ERR_CONVERT} Err; Err error; switch (error) { case ERR_READ: printf("Возникла ошибка чтения (ERR_READ)\n"); break; case ERR_WRITE: printf("Возникла ошибка записи (ERR_WRITE)\n"); break; case ERR_CONVERT: printf("Возникла ошибка преобразования (ERR_CONVERT)\n"); break; default: printf("Возникла неизвестная ошибка\n"); break; }; return 0;}
int *sum(int A[], int B[], int n){ int i; int *ptr = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) ptr[i] = A[i] + B[i]; return ptr;}В какой программе вызов функции sum выполняется неверно?
#include <stdio.h>#include <conio.h>#define N 10int main(){ int i=0; char arr[N] = ""; printf("Last Name: "); while (i<N) { arr[i] = _getche(); if (arr[i]==13) break; i++; }; printf("\nYou have entered Last Name: %s", arr); return 0; }
int arr1[10] = {1,2,3,4,5}; (1) int *arr2 = (int *)calloc(10, sizeof(int)); (2) int *arr3 = (int *)malloc(10*sizeof(int)); (3)
int main(int argc, char *argv[]){ int disp, count; setlocale (LC_ALL, "rus"); if(argc<2) { printf("В командной строке на задано число\n"); exit(1); } if(argc==3 && !strcmp(argv[2], "display")) disp = 1; else disp = 0; for(count=atoi(argv[1]); count; --count) if(disp) printf("%d ", count); putchar('\a'); printf("Счет закончен"); return 0;}Что будет выведено на экран в результате выполнения приведенной программы, если ее запуск выполняется из командной строки командой Example.exe?
#include <stdio.h>#define n 5void fun(int *mas, int k);int sum(int *mas, int k);int main( void ){ int arr[n] = {3,4,1,2}; int i, s; fun(arr, n); s = sum(arr, n); return 0;}void fun(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) ++mas[i];}int sum(int *mas, int k){ int i, s = 0; for (i=0; i<k; i++) s += mas[i]; return s;}
int cond; int A = 1; cond = (A >= 100) && (A <= 150);
int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size = sizeof(arr)/sizeof(arr[0]);
char str1[10] = "Course"; char str2[] = "Lection"; char str3[7] = "Example";
char str1[10] = "Lection"; char str2[10] = "lection";Какое утверждение является верным?
for (i=0; i<5; i++) free(m[i]); free(m);
int (*p)[10]; p = malloc(40*sizeof(int));
#include <stdio.h>#include <stdarg.h>int average(int first, ... );int main( void ){ int x; <Вызов фукнции average()>; return 0;}int average( int first, ... ){ int count = 0, sum = 0, i = first; va_list marker; va_start(marker, first); while( i != -1 ) { sum += i; count++; i = va_arg(marker, int); } va_end(marker); return( sum ? (sum / count) : 0 );}В результете какого вызова функции average значение переменной x будет равно 2?
#include <stdio.h>#include <conio.h>#include <stdarg.h>void error(int severity, ... );int main( void ){ char err[][30] = {"Сообщение 1", "Сообщение 2"}; int n = -1; printf("Введите степень критичности ошибки (целое число): "); scanf("%d", &n); switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0;}void error(int severity, ... ){ va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n");}Какое сообщение будет выведено на экран, если пользователь задаст значение n равным 0?
char *xgets(char *s){ char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p;}Какие утвержедения являются верными?
char *xgets(char *s){ char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p;}Каким образом можно вызвать эту функцию?
#include <stdio.h>#include <math.h>#include <time.h>#include <string.h>void AddToLog(FILE*, char*);char* GenerateFileName();int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); <Открытие файла> while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0;}void AddToLog(FILE *fp, char *str){ if (fp != NULL) fputs(str, fp);}char* GenerateFileName(){ char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4);}
int main( void ){ FILE *stream; char line[81]; int result; if ( fopen_s( &stream, "g:\\fseek.out", "w+" ) != 0 ) { printf( "The file fseek.out was not opened\n" ); return -1; } fprintf( stream, "Ivanov - 09.06.1980 \n" "Petrov - 10.03.1986 \n" "Sidorov - 08.11.1985\n"); result = fseek( stream, -22L, SEEK_END); if( result ) perror( "Fseek failed" ); else { printf( "File pointer is set to middle of first line.\n" ); fgets( line, 80, stream ); printf( "%s", line ); } fclose( stream );}
int main(void){ FILE *fp; char str[30] = "Lection 11"; if((fp=fopen("g:\\test.txt", "wt+"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fwrite(str, sizeof(char), strlen(str)-3, fp); rewind(fp); fread(str, sizeof(char), sizeof(str)/sizeof(char), fp); fclose(fp); return 0;}
int main( void ){ FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, 0L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fputs( "\n5. NEC MultiSync EX231W - 10490 rub.", stream ); printf( "%s", str ); } fclose( stream ); return 0;}
struct addr { char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip;} addr_info, binfo;
struct Worker{ char fio[30]; int date, code;};Каким образом данная структура хранится в памяти?
int main (void){ struct stud { char *name; char *surname; int age; double av_mark; }; <Объявление структуры group и переменной gr> gr.number = 3; gr.quantity = 21; gr.student.name = "Ivan"; gr.student.surname = "Ivanov"; gr.student.age = 20; gr.student.av_mark = 4.25; printf("Group Number: %d\nThe number of students in the group: %d\n", gr.number, gr.quantity); printf("%s %s - %1.2f", gr.student.surname, gr.student.name, gr.student.av_mark); return 0; }
int main (void){ typedef struct { char nazn[40]; int numb; char time[10]; } train, train_info; train_info ti[3]; train tr[3]; int i = 0, sum = 0, ch=0; char str[10], search[10]; while(ch!=121) { printf("\nEnter information about train (Q - quit): \n"); printf("Enter destination of the train: "); gets(tr[i].nazn); printf("Enter number of the train: "); gets(str); tr[i].numb = atoi(str); printf("Enter time of scheduled departure: "); gets(tr[i].time); ++i; printf("Quit? (y/n): "); ch = _getche(); }; printf("\n\nEnter train destination: "); gets(search); for (i=0; i<3; i++) { if (strcmp(tr[i].nazn,search)==0) { printf("\n\tTrain number: %d", tr[i].numb); printf("\n\tTime: %s", tr[i].time); } } if (i>=3) printf("There is no train to this destination"); return 0; }
union test { char ch1[5]; char ch2[2]; char ch3[1];};int main(void){ union test t; char *str; t.ch3[0] = 'w'; strcpy(t.ch2, "be"); strcpy(t.ch1, "test"); t.ch1[2] = '\0'; str = t.ch2; return 0;}
typedef struct sale_struct { char *title; int price;} sale;Какая функция не выполняет поставленную задачу?
int main(void){ struct test { unsigned int : 3; unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; unsigned int type : 8; unsigned int index : 18; }; int a : 4, b; struct test t; t.type = 3439; b = a + t.type; //printf("t.type = %d\n", t.type); return 0;}
int f();static int d = 5, e = 8;int main(void){ int n = 1, m = 1; int s; s = f(); return 0;}int f(){ int p; static int c = 0; p = c; printf("d = %d",d); return p;}
extern int x, y;extern char ch;void func22(void){ y = 100;}void func23(void){ x = y/10; ch = 'R';}В каком случае подключение файла second.h в другом файле выполняется верно?
int summa(int N, int a[6]);int main(){ int i,n; int a[6] = {8, 65, 10, 2, 4, 1}; n = sizeof(a)/sizeof(a[0]); printf("Сумма: %d", summa(n-1, a));}int summa(int N, int a[6]){ if (N==0) return a[0]; else return a[N]+summa(N-1, a);}
int main(){ char a, b; printf("Введите два символа (через пробел): "); scanf("%c %c", &a, &b); printf("Наибольшим числом является %c", MAX(a, b)); return 0;}
int main(int argc, char *argv[]){ int t, i; for(t=0; t<argc; ++t) { i = 0; while(argv[t][i]) { putchar(argv[t][i]); ++i; } printf("\n"); } return 0;}
int main(int argc, char *argv[]){ int t; for(t=0; t<argc; ++t) printf("%s\n", argv[t]); return 0;}
char str[30], i; FILE *fp; if((fp = fopen("g:\\test.txt", "r"))==NULL) { printf("Ошибка при открытии файла.\n"); exit(1); } fgets(str, 30, fp); i = strlen(str); fclose(fp);
int x; printf("Угадайте число:\n"); for (x=0; x!=123; ) scanf("%d", &x);
int main(int argc, char* argv[]){ char name[30]; FILE *f; f = fopen("g:\\test.txt", "w+"); fprintf(f, "%s\n%s", argv[0], argv[1]); return 0;}Запуск программы выполняется из командной строки с помощью команды Example.exe arg1 arg2. Чему будет равно значение argv[0]?
long fact(long n) { if (n==0 || n==1) return 1; return (n * fact(n-1));}Какое утверждение является верным?
struct addr{ char name[30]; char street[40]; char city[20]; char state[3]; unsigned long int zip;};Какие утверждения в данном случае являются верными?
#include <stdio.h>#define N 11int main(){ int i; int arr[N][2]; for (i=1; i<N; i++) { arr[i][1] = i; arr[i][2] = i*i; } for (i=1; i<N; i++) printf("%d,%d\n", arr[i][1], arr[i][2]); return 0; }
int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
int x = 99, y = 100, z; int *p1, *p2, *p3; p1 = &x; p2 = &y; p3 = p2; x = y; z = *p1 + *p2 + *p3;
int lec = 7, qst = 11; int *const plec = &lec; int *pqst; pqst = &qst; (*plec)++; printf("Number of the next lection is %d\n", lec );Какая ошибка содержится в данном коде?
int x = 10, y = 20, z; int *p1, *p2; p1 = &x; p2 = p1; <Выражение> z = (x==y) ? (x+y) : (y-x);
int m[][5] = {{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; int *ptr; int i, j, n, k, el; n = sizeof(m)/sizeof(m[0]); k = sizeof(m[0])/sizeof(m[0][0]); ptr = &m[0][0];Чему будет равно значение элемента массива m, на который будет указывать указатель ptr+3?
int main (void) { enum month {january = 1, february, march, april, may, june,july, august, september, october, november, december } aMonth; int days; printf("\n Enter the number of the month (1 - 12): "); scanf_s("%d", &aMonth); switch (aMonth) { case january: case march: case may: case july: case august: case october: case december: days = 31; break; case april: case june: case september: case november: days = 30; break; case february: days = 28; break; default: printf("\n\t Wrong number of the month\n"); days = 0; break; } if (days) printf("\n The number of days of the month: %d\n", days); if (aMonth == "february") printf("\n ... or 29 if it is a leap year\n"); return 0; }
int main(void){ struct Options { unsigned int centerX : 1; unsigned int centerY : 1; unsigned int shadow : 2; unsigned int palette : 4; }; int b; struct Options t, *pt; t.shadow = 10; t.palette = 10; b = t.shadow + t.palette; printf("b = %d\n", b); return 0;}
int main(void){ struct test { unsigned int a : 2; unsigned int b : 8; }; int c; struct test t; t.b = 255; t.a = t.b & 3; printf("t.a = %d\n", t.a); return 0;}
int year = 26; year = year << 9;
extern int x, y;extern char ch;void func22(void){ y = 100;}void func23(void){ x = y/10; ch = 'R';}В каком случае подключение файла second.h в другом файле выполняется верно?
char *names[] = {"Иван", "Пётр", "Илья"};char *surnames[] = {"Иванов", "Пётров", "Ильин"};
char ch = 'a'; int a; float b; double c = 4.5;Какой тип получит арифметическое выражение ch + a + b + c?
int x = 15, y = 2; float z; z = x/y; printf("z = %f\n", z);В результате выполнения какой операции будет выведено значение z = 7?
int size1, size2, size3; int arr[5][2] = {0,1,2,3,4,5,6,7,8,9}; size1 = sizeof(arr)/sizeof(arr[0][0]); size2 = sizeof(arr)/sizeof(arr[0]); size3 = sizeof(arr);
#include <stdio.h>#include <string.h>#define N 10int main(){ char ch, strLow[N] = "test"; int i = 0; ch= strLow[0]; while (ch!='\0') { putchar(strLow[i] - 32); i++; ch= strLow[i]; } printf("\n"); return 0;}
#include <stdio.h>int main( void ){ FILE *stream; char list[30]; int i, numread, numwritten; if( (stream = fopen("g:\\fread.out", "w+t")) != NULL ) { for ( i = 0; i < 26; i++ ) list[i] = (char)('z' - i); numwritten = fwrite( list, sizeof( char ), 26, stream ); printf( "Wrote %d items\n", numwritten ); fclose( stream ); } else printf( "Problem opening the file\n" ); if( (stream = fopen("g:\\fread.out", "r+t" )) != NULL ) { numread = fread( list, sizeof( char ), 26, stream ); printf( "Number of items read = %d\n", numread ); printf( "Contents of buffer = %.26s\n", list ); fclose( stream ); } else printf( "File could not be opened\n" );}
int main (void){ struct A { int number; int count; } a1[2], a2[2]; int s; a1[0].number = 1; a1[0].count = 12; a1[1].number = 1; a1[1].count = 12; a2[0] = a1[0]; s = a1[0].count + a2[0].count; return 0; }
struct student { char fio[30]; int group; float average;};struct student Init(char*, int, float);void Print(struct student*);int main(void){ struct student s1, s2, s3, *st; int i; s1 = Init("Ivanov I.", 3801, 5.00); s2 = Init(s1.fio, 4209, 4.50); s3 = Init("Petrov P", s1.group, s2.average); st = &s3; Print(st); return 0;}struct student Init(char* n, int i, float f){ struct student s, *st; st = &s; strcpy(st->fio, n); st->group = i; st->average = f; return s;}void Print(struct student *st){ printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f\n", st->average);}
typedef struct sale_struct { char *title; int price;} sale;sale Copy(sale);int main(void){ sale s1,s2; struct sale_struct s3, s4; s1.title = "Book"; s1.price = 200; s3.title = "Cake"; s3.price = 60; return 0;}sale Copy(sale s) { sale s1; s1 = s; return s1;}Какие из перечисленных вызов функции Copy являются верными?
char t1 = 196; int i = 0; for (i=0; i<10; i++) printf("%c", t1);
int i = 0; char str[10] = "Test"; while (str[i]!='\0') i++;
int m; char month[3], s[8] = ""; char *season[] = { "winter", "spring", "summer", "autumn" }; printf("Enter day of your birthday (MM.DD): "); scanf("%[^.]s", month); m = atoi(month); if ((m==12) || (m<3)) strcpy(s, &season[0]); else if ((m>2) && (m<6)) strcpy(s, &season[1]); else if ((m>6) && (m<9)) strcpy(s, &season[2]); else strcpy(s, &season[3]); printf("Your birthday is in %s\n", s);
#include <stdio.h>#include <conio.h>#include <stdarg.h>#include <stdlib.h>#include <locale.h>void error(int severity, ... );int main(int argc, char* argv[]){ char err[][30] = {"Сообщение1", "Сообщение2"}; int n; setlocale (LC_ALL, "rus"); n = argv[1]; switch (n) { case 0: error(0, "Ошибка!", '\0'); break; case 1: error(0, "Ошибка!", err[0], '\0'); break; default: error(1, "Ошибка!", err[0], err[1], '\0'); } return 0;}void error(int severity, ... ){ va_list ap; va_start(ap, severity); for (;;) { char *p = va_arg(ap, char*); if (p == '\0') break; printf("%s ", p); } va_end(ap); printf("\n");}Программа запускается из командной строки командой Example.exe 0. При этом вместо сообщения Ошибка! на экран выводится сообщение Ошибка! Сообщение1 Сообщение2. С чем это связано?
int a = 2*SCHAR_MAX; int b = UCHAR_MAX;
int n, m; char *ptr; printf(&\nEnter a dimention of character array: &); scanf_s(&%d&, &n); _flushall(); ptr = (char *)malloc((n+1)*sizeof(char)); if (!ptr) { printf(&\nERROR! Out of memmory (error in malloc() function). Press any key...&); _getch(); exit(1); } printf(&Enter a character array (not more than %d characters): &, n); gets_s(ptr, n+1); m = strlen(ptr); printf(&\nStart line: %s&, ptr); ptr = (char *)realloc(ptr, (m+2)*sizeof(char)); if (!ptr) { printf(&\nERROR! Out of memmory (error in realloc() function). Press any key...&); _getch(); exit(1); } strcat_s(ptr, m+2, &!&); printf(&\nStart line and character \&%c\&: %s&, '!', ptr); free (ptr);В запросе размерности массива пользователь задал 80. В запросе ввода строки пользователь ввел строку "Lection 9". Для чего в данном случае будет использована функция realloc()?
struct student { char fio[30]; int group; float average;};<Прототи функции Init>void Print(struct student*);int main(void){ struct student s, *st; int i; s = Init("Ivanov I.", 3801, 5.00); st = &s; Print(st); return 0;}struct student Init(char* n, int i, float f){ struct student s, *st; st = &s; strcpy(st->fio, n); st->group = i; st->average = f; return s;}void Print(struct student *st){ printf("\nName: %s", st->fio); printf("\nGrouproup: %d", st->group); printf("\nAverage mark: %.2f\n", st->average);}
char *xgets(char *s){ char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; default: s[t] = ch; } } s[79] = '\0'; return p;}Каким образом можно вызвать эту функцию?
int main( void ){ FILE *stream; char str[81]; int result; if ( fopen_s( &stream, "g:\\list.txt", "r+" ) != 0 ) { printf( "The file list.txt was not opened\n" ); return -1; } result = fseek( stream, 0L, SEEK_END); if( result ) perror( "Fseek failed" ); else { fputs( "5. NEC MultiSync EX231W - 10490 rub.", stream ); printf( "%s", str ); } fclose( stream ); return 0;}
typedef struct { char fio[30]; char phone[20]; int age;} note;note Init(char*, char*, int);void Print(note*);void Modify(note);int main(void){ note n[3], *pn; char *strName[3] = {"Ivanov I.", "Pertov P.", "Sidorov S."}; char *strPhone[3] = {"12-34-56", "78-90-12", "34-56-78"}; int i, age = 25; for (i=0; i<3; i++) { n[i] = Init(strName[i], strPhone[i], age+i); pn = &n[i]; Print(pn); } Modify(n[0]); pn = &n[0]; Print(pn); return 0;}note Init(char* f, char* p, int a){ note n, *pn; pn = &n; strcpy(pn->fio, f); strcpy(pn->phone, p); pn->age = a; return n;}void Print(note *pn){ printf("\nName: %s", pn->fio); printf("\nPhone: %s", pn->phone); printf("\nAge: %d\n", pn->age);}void Modify(note n) { strcpy(n.fio, "Vasiliev V."); strcpy(n.phone, "89-01-23"); n.age = 30;}
#define N 8void step(int, int, int); int map[N][N]; // карта: map[i,j]!=0, если точки i и j соединены int road[N]; // маршрут - номера точек карты int incl[N]; // incl[i]==1, если точка с номером i включена в road int start; // начальная точка маршрута int finish; // конечная точка маршрута int i, j;int main (void) { // инициализация массивов for (i=1; i<=N; i++) road[i] = 0; for (i=1; i<=N; i++) incl[i] = 0; for (i=1; i<=N; i++) for (j=1; j<=N; j++) map[i][j] = 0; // ввод значений элементов карты map[1][2] = 1; map[2][1] = 1; map[1][3] = 1; map[3][1] = 1; map[1][4] = 1; map[4][1] = 1; map[3][4] = 1; map[4][3] = 1; map[3][7] = 1; map[7][3] = 1; map[4][6] = 1; map[6][4] = 1; map[5][6] = 1; map[6][5] = 1; map[5][7] = 1; map[7][5] = 1; map[6][7] = 1; map[7][6] = 1; printf("Введите через пробел номер начальной и конечной точек: "); scanf("%d %d", &start, &finish); road[1] = start; // внести точку в маршрут incl[1] = 1; // пометить точку как включенную step(start, finish, 2); return 0;}void step(int s, int f, int p) { int c; // номер точки, в которую делается очередной шаг int i; if (s==f) { printf("Путь: "); for (i=1; i<=p-1; i++) printf("%d ", road[i]); printf("\n"); } else { // выбор очередной точки for (c=1; c<=N; c++) // проверка всех вершин if (map[s][c]!=0 && incl[c]==0) { // точка соединена с текущей и не включена в маршрут <Рекурсивный вызов - вариант 1> road[p] = c; // добавление вершины в путь incl[c] = 1; // пометка вершины как включенной <Рекурсивный вызов - вариант 2> incl[c] = 0; road[p] = 0; <Рекурсивный вызов - вариант 3> } }}В каком из отмеченных мест программы необходимо выполнить рекурсивный вызов функции step(c, f, p+1);?
int main (void) { double (*pFunc) (double); int c = 1; double y; while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; break; case 2: pFunc = sin; break; case 3: pFunc = tan; break; case 0: return; default: continue; } y = pFunc(1.1); printf("f(1.1) = %.2f\n", y); } return 0;}Какое вычисление будет выполнено в том случае, если пользователь в запросе выбора функции задаст число 3?