KURZUS: Programozás alapjai

MODUL: Melléklet

Minta vizsgasor

1. Döntse el az alábbi állításokról, hogy igazak-e!
Az előfeldolgozó feladata a tárgymodul előállítása.
A long típusú változók nagyobb számok tárolását teszik lehetővé, mint a long int.
Többirányú elágazás megvalósítható if-else utasításokkal.
A logikai és művelet során a második operandus nem mindig kerül kiértékelésre.
A globális errno változó vizsgálatával lehet kideríteni, mi okozta a malloc függvény futása során a hibát.
Az strcat függvény nem ellenőrzi, hogy az eredmény karakterlánc el fog-e férni a neki szánt helyen.
Ajánlott a függvénynek egy struktúra helyett a struktúrát címző mutatót átadni.
A struktúra tagjait tartalmazó kapcsos zárójelpár után tilos pontosvesszőt tenni.
2. A mellek függvény a paraméterként átadott, statikusan allokált, N sorból és oszlopból álló kétdimenziós tömbben a mellékátló elemeit 1-re, az összes többit 0-ra állítja. A függvény hiányos. Jelölje meg azt a sort, amellyel helyesen fog működni a függvény!

#define N 3
void mellek(double mtx[N][N]) {
  int i, j;
  for(i=0; i<N; i++)
    for(j=0; j<N; j++)
      /* Hiányzó sor. */
mtx[i][j] = j==i-N-1 ? 1. : 0.; }
mtx[i][j] = j==i-N ? 1. : 0.; }
mtx[i][j] = j==i-N+1 ? 1. : 0.; }
mtx[i][j] = j==N-1-i ? 1. : 0.; }
mtx[i][j] = j==N-i ? 1. : 0.; }
mtx[i][j] = j==N+1-i ? 1. : 0.; }
3. Az msh függvény visszaadja a karakterlánc paraméterében lévő mássalhangzók számát. A függvény hiányos. Jelölje meg azt a sort, mellyel a függvény helyesen fog működni!

#include<string.h>
int msh(const char *s) {
  char b[] = "euioa";
  int n=0;
  for(; *s; s++)
    /* Hiányzó sor. */
  return n; }
if(isalpha(s)&&strchr(b, s)) n++;
if(isalpha(*s)&&strchr(b, *s)) n++;
if(isalpha(s)&&strchr(*b, s)) n++;
if(isalpha(*s)&&strchr(*b, *s)) n++;
if(isalpha(s)&&!strchr(b, s)) n++;
if(isalpha(*s)&&!strchr(b, *s)) n++;
if(isalpha(s)&&!strchr(*b, s)) n++;
if(isalpha(*s)&&!strchr(*b, *s)) n++;
4. A lebege függvény ellenőrzi, hogy a paraméter karakterlánc való szám-e. A függvény hiányos. Jelölje meg azt a sort, mellyel a függvény helyesen fog működni!

int lebege(char *s){
  char *tmp;
  while(isspace(*s)) s++;
  if(*s=='+'||*s=='-') s++;
  tmp=s;
  while(isdigit(*s)) s++;
  if(*s=='.') s++;
  while(isdigit(*s)) s++;
  /* Hiányzó sor. */
  if(*s=='E'||*s=='e'){
    s++;
    if(*s=='+'||*s=='-') s++;
    if(!isdigit(*s))return 0;
    while(isdigit(*s)) s++;}
  if(!*s||isspace(*s))return(1);
  else return(0); }
if((s==tmp||tmp+1==s)&&*tmp=='.')return 0;
if(s==tmp||tmp+1==s&&*tmp=='.')return 0;
if((s==tmp||tmp+1==s)&&*tmp=='.')return 1;
if(s==tmp||tmp+1==s&&*tmp=='.')return 1;
5. Az egesze függvény ellenőrzi, hogy a paraméterként kapott karakterlánc formátuma megfelelő-e. Ha igen, 1 értékkel, különben 0-val tér vissza. A függvény hiányos. Jelölje meg azt a sort, mellyel a függvény helyesen fog működni!

/* Hiányzó sor. */
#define HSZ sizeof(int)/sizeof(short)*5
int egesze(const char *s){
  int i = 0;
  const char* kezd;
  while(isspace(*s)) ++s;
  if(*s=='+' || *s=='-') ++s;
  kezd = s;
  while(isdigit(*s) && s-kezd<HSZ) ++s;
  if(kezd==s || !isspace(*s)&&s[i]!=0) return 0;
  else return 1; }
#define <stdio.h>
#define <string.h>
#define <ctype.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
6. A paros függvény feladata megszámolni és visszaadni, hogy a paraméterként kapott n elemű tömbben hány páros szám szerepel. A függvény hiányos. Jelölje meg azt a sort, mellyel a függvény helyesen fog működni!

int paros(const int *t, int n) {
  int db = 0, i;
  for(i=0; i<n; i++)
    /* Hiányzó sor. */
  return db; }
if(!t[i]%2) db++;
if(!(t[i]%2)) db++;
if(!t[i]/2) db++;
if(!(t[i]/2)) db++;
7. A program bekér öt lottószámot. Ha valamelyiket korábban már megadták, újat kér helyette, de ezen kívül mást nem ellenőriz. A program hiányos. Jelölje meg azt a sort, amivel helyesen fog működni!

#include<stdio.h>
void main(void) {
  /* Hiányzó sor. */
  int uj, i;
  for(i=1; i<=5; i++) {
    do {
      printf("Kerem a %d. szamot! ", i);
      scanf("%d", &uj);
      if(szamok[uj]) printf("Ez mar volt!\n");
    } while(szamok[uj]);
    szamok[uj]=1; } }
int szamok[90];
int szamok[90] = {0};
int szamok[91];
int szamok[91] = {0};
8. A szamtani függvény minden hívása visszaadja annak a számtani sorozatnak a következő elemét, melynek első eleme elso, és az elemek közötti különbség kul. A függvény hiányos. Jelölje meg azt a sort, mellyel a függvény helyesen fog működni!

double szamtani(double elso, double kul) {
  static double kov = DBL_MAX;
  /* Hiányzó sor. */
  else return kov = kov+kul; }
if(kov == elso) return kov;
if(elso == DBL_MAX) return kov;
if(kov == DBL_MAX) return kov = elso;
if(kov == DBL_MAX) return elso;
if(kov == kul) return elso = kov;
if(kov == elso) return kov = DBL_MAX;
9. Olyan makróra van szükség, amely megbízhatóan képes paramétere négyzetét szolgáltatni. Jelölje meg az erre alkalmasat!
#define sqr(x) ((x)*(x));
#define sqr(x) ((x)*(x))
#define sqr (x) ((x)*(x))
#define sqr(double x) ((x)*(x))
10. A getline függvény beolvas az s karaktertömbbe legfeljebb lim darab karaktert, majd a beolvasott karakterek számával tér vissza. A függvény hiányos. Jelölje meg azt a sort, mellyel a függvény helyesen fog működni!

#include<stdio.h>
int gl(char *s, int lim){
  int c;
  char *t=s;
  /* Hiányzó sor. */
  *s='\0';
  while(c!=EOF&&c!='\n') c=getchar();
  return(s-t); }
while(lim-->0&&((c=getchar())!=EOF||c!='\n'))*s++=c;
while(--lim>0&&((c=getchar())!=EOF||c!='\n'))*s++=c;
while(lim-->0&&(c=getchar())!=EOF&&c!='\n')*s++=c;
while(--lim>0&&(c=getchar())!=EOF&&c!='\n')*s++=c;