As 100 principais perguntas e respostas da entrevista sobre programação C (PDF)
Aqui estão as perguntas e respostas da entrevista de programação C para candidatos mais novos e experientes para conseguir o emprego dos sonhos.
Perguntas e respostas básicas da entrevista sobre programação C para calouros
1) Como você constrói uma instrução de incremento ou decremento em C?
Na verdade, existem duas maneiras de fazer isso. Uma é usar o operador de incremento ++ e o operador de decremento –. Por exemplo, a instrução “x++” significa aumentar o valor de x em 1. Da mesma forma, a instrução “x –” significa decrementar o valor de x em 1. Outra maneira de escrever instruções de incremento é usar o sinal convencional + mais ou – sinal de menos. No caso de “x++”, outra forma de escrevê-lo é “x = x +1”.
👉 Download gratuito de PDF: Perguntas e respostas da entrevista sobre programação C >>
2) Qual a diferença entre Chamada por Valor e Chamada por Referência?
Ao usar Chamada por Valor, você está enviando o valor de uma variável como parâmetro para uma função, enquanto Chamada por Referência envia o endereço da variável. Além disso, em Chamada por Valor, o valor no parâmetro não é afetado por qualquer operação que ocorra, enquanto no caso de Chamada por Referência, os valores podem ser afetados pelo processo dentro da função.
3) Alguns codificadores depuram seus programas colocando símbolos de comentários em alguns códigos em vez de excluí-los. Como isso ajuda na depuração?
Colocar símbolos de comentário /* */ ao redor de um código, também conhecido como “comentar”, é uma forma de isolar alguns códigos que você acha que podem estar causando erros no programa, sem excluir o código. A ideia é que se o código estiver de fato correto, você simplesmente remova os símbolos de comentário e continue. Isso também economiza tempo e esforço ao ter que redigitar os códigos, caso você os tenha excluído.
4) Qual é o código equivalente da seguinte instrução no formato WHILE LOOP?
for (a=1; a<=100; a++) printf ("%d\n", a * a);
Responda:
a=1; while (a<=100) { printf ("%d\n", a * a); a++; }
5) O que é uma pilha?
Uma pilha é uma forma de estrutura de dados. Os dados são armazenados em pilhas usando a abordagem FILO (First In Last Out). Em qualquer instância específica, apenas o topo da pilha está acessível, o que significa que, para recuperar os dados armazenados dentro da pilha, os da parte superior devem ser extraídos primeiro. O armazenamento de dados em uma pilha também é conhecido como PUSH, enquanto a recuperação de dados é chamada de POP.
6) O que é um arquivo de acesso sequencial?
Ao escrever programas que irão armazenar e recuperar dados em um arquivo, é possível designar esse arquivo em diferentes formatos. Um arquivo de acesso sequencial é tal que os dados são salvos em ordem sequencial: um dado é colocado no arquivo após o outro. Para acessar um dado específico dentro do arquivo de acesso sequencial, os dados devem ser lidos um dado por vez, até que o correto seja alcançado.
7) O que é inicialização de variável e por que ela é importante?
Isso se refere ao processo em que uma variável recebe um valor inicial antes de ser usada no programa. Sem inicialização, uma variável teria um valor desconhecido, o que pode levar a resultados imprevisíveis quando usada em cálculos ou outras operações.
8 O que é programação espaguete?
A programação espaguete refere-se a códigos que tendem a ficar emaranhados e sobrepostos ao longo do programa. Essa abordagem não estruturada de codificação é geralmente atribuída à falta de experiência por parte do programador. A programação espaguete torna o programa complexo e a análise dos códigos difícil e, portanto, deve ser evitada tanto quanto possível.
9) Diferencie códigos-fonte de códigos-objeto
Os códigos-fonte são códigos que foram escritos pelo programador. É composto de comandos e outras palavras-chave em inglês que supostamente instruem o computador sobre o que fazer. No entanto, os computadores não seriam capazes de compreender os códigos-fonte. Portanto, os códigos-fonte são compilados usando um compilador. As saídas resultantes são códigos-objeto, que estão em um formato que pode ser compreendido pelo processador do computador. Em Programação C, os códigos-fonte são salvos com a extensão de arquivo .C, enquanto os códigos-objeto são salvos com a extensão de arquivo .OBJ
10) Na programação C, como você insere aspas (' e “) na tela de saída?
Este é um problema comum para iniciantes porque as aspas normalmente fazem parte de uma instrução printf. Para inserir o caractere de aspas como parte da saída, use os especificadores de formato \' (para aspas simples) e \” (para aspas duplas).
11) Qual é a utilidade do caracter '\0'?
Ele é conhecido como caractere nulo de terminação e é usado principalmente para mostrar o final de um valor de string.
12) Qual é a diferença entre o símbolo = e o símbolo ==?
O símbolo = é frequentemente usado em operações matemáticas. É usado para atribuir um valor a uma determinada variável. Por outro lado, o símbolo ==, também conhecido como “igual a” ou “equivalente a”, é um operador relacional usado para comparar dois valores.
13) Qual é o operador módulo?
O operador módulo gera o restante de uma divisão. Faz uso do símbolo de porcentagem (%). Por exemplo: 10% 3 = 1, ou seja, quando você divide 10 por 3, o resto é 1.
14) O que é um loop aninhado?
Um loop aninhado é um loop executado dentro de outro loop. Em outras palavras, você tem um loop interno que está dentro de um loop externo. Neste cenário, o loop interno é executado um número de vezes conforme especificado pelo loop externo. Para cada volta no loop externo, o loop interno é executado primeiro.
15) Qual dos seguintes operadores está incorreto e por quê? ( >=, <=, <>, ==)
<> está incorreto. Embora este operador seja corretamente interpretado como “diferente de” ao escrever instruções condicionais, ele não é o operador adequado para ser usado em Programação C. Em vez disso, o operador! = deve ser usado para indicar a condição “diferente de”.
16) Compare e contraste compiladores de intérpretes.
Compiladores e interpretadores geralmente lidam com a forma como os códigos dos programas são executados. Os intérpretes executam os códigos do programa uma linha por vez, enquanto os compiladores pegam o programa como um todo e o convertem em código-objeto antes de executá-lo. A principal diferença aqui é que, no caso de interpretadores, um programa pode encontrar erros de sintaxe no meio da execução e irá parar a partir daí. Por outro lado, os compiladores verificam a sintaxe de todo o programa e só prosseguirão com a execução quando nenhum erro de sintaxe for encontrado.
17) Como você declara uma variável que conterá valores de string?
A palavra-chave char só pode conter o valor de 1 caractere por vez. Ao criar uma matriz de caracteres, você pode armazenar valores de string nela. Exemplo: “char MeuNome[50]; ”declara uma variável de string chamada MyName que pode conter no máximo 50 caracteres.
18) As chaves { } podem ser usadas para delimitar uma única linha de código?
Embora as chaves sejam usadas principalmente para agrupar várias linhas de códigos, elas ainda funcionarão sem erros se você as usar para uma única linha. Alguns programadores preferem esse método como forma de organizar códigos para torná-los mais claros, especialmente em instruções condicionais.
19) O que são arquivos de cabeçalho e quais são seus usos na programação C?
Os arquivos de cabeçalho também são conhecidos como arquivos de biblioteca. Eles contêm duas coisas essenciais: as definições e os protótipos das funções usadas em um programa. Simplificando, os comandos que você usa na programação C são, na verdade, funções definidas em cada arquivo de cabeçalho. Cada arquivo de cabeçalho contém um conjunto de funções. Por exemplo: stdio.h é um arquivo de cabeçalho que contém definições e protótipos de comandos como printf e scanf.
20) O que é erro de sintaxe?
Erros de sintaxe estão associados a erros no uso de uma linguagem de programação. Talvez seja um comando digitado incorretamente ou um comando que deve ter sido inserido em modo minúsculo, mas em vez disso foi inserido com um caractere maiúsculo. Um símbolo mal colocado, ou falta de símbolo, em algum lugar dentro de uma linha de código também pode levar a um erro de sintaxe.
21) O que são variáveis e como elas se diferenciam das constantes?
Variáveis e constantes podem, à primeira vista, parecer semelhantes, no sentido de que ambas são identificadores compostos de um ou mais caracteres (letras, números e alguns símbolos permitidos). Ambos também terão um valor específico. Os valores mantidos por uma variável podem ser alterados ao longo do programa e podem ser usados na maioria das operações e cálculos. As constantes recebem valores apenas uma vez, colocadas no início de um programa. Este valor não é alterado no programa. Por exemplo, você pode atribuir uma constante chamada PI e atribuir a ela o valor 3.1415 . Você pode então usá-lo como PI no programa, em vez de ter que escrever 3.1415 cada vez que precisar.
22) Como você acessa os valores dentro de um array?
Arrays contêm vários elementos, dependendo do tamanho que você atribuiu durante a declaração da variável. Cada elemento recebe um número de 0 ao número de elementos-1. Para atribuir ou recuperar o valor de um elemento específico, consulte o número do elemento. Por exemplo: se você tem uma declaração que diz “intscores[5];”, então você tem 5 elementos acessíveis, a saber: pontuações[0], pontuações[1], pontuações[2], pontuações[3] e pontuações[4 ].
23) Posso usar o tipo de dados “int” para armazenar o valor 32768? Por que?
O tipo de dados “int” é capaz de armazenar valores de -32768 a 32767. Para armazenar 32768, você pode usar “long int”. Você também pode usar “unsigned int”, assumindo que não pretende armazenar valores negativos.
24) Dois ou mais operadores como \n e \t podem ser combinados em uma única linha de código de programa?
Sim, é perfeitamente válido combinar operadores, principalmente se houver necessidade.
Por exemplo: você pode ter um código como printf (“Hello\n\n\’World\'”)
para gerar o texto “Hello” na primeira linha e “World” entre aspas simples para aparecer nas próximas duas linhas.
25) Por que nem todos os arquivos de cabeçalho são declarados em todos os programas C?
A escolha de declarar um arquivo de cabeçalho no topo de cada programa C dependeria de quais comandos/funções você usará nesse programa. Como cada arquivo de cabeçalho contém diferentes definições de função e protótipos, você usaria apenas os arquivos de cabeçalho que conteriam as funções necessárias. Declarar todos os arquivos de cabeçalho em cada programa apenas aumentaria o tamanho geral do arquivo e a carga do programa e não é considerado um bom estilo de programação.
26) Quando a palavra-chave “void” é usada em uma função?
Ao declarar funções, você decidirá se essa função retornará um valor ou não. Se essa função não retornar um valor, como quando o objetivo de uma função é exibir algumas saídas na tela, então “void” deve ser colocado na parte mais à esquerda do cabeçalho da função. Quando um valor de retorno é esperado após a execução da função, o tipo de dados do valor de retorno é colocado em vez de “void”.
27) O que são declarações compostas?
Instruções compostas são compostas de duas ou mais instruções de programa executadas juntas. Isso geralmente ocorre ao lidar com condições em que uma série de instruções são executadas quando TRUE ou FALSE é avaliado. Instruções compostas também podem ser executadas dentro de um loop. Colchetes { } são colocados antes e depois de instruções compostas.
28) Qual é o significado de um algoritmo para a programação C?
Antes que um programa possa ser escrito, primeiro é necessário criar um algoritmo. Um algoritmo fornece um procedimento passo a passo sobre como uma solução pode ser derivada. Ele também atua como um modelo de como um programa será iniciado e finalizado, incluindo quais processos e cálculos estão envolvidos.
29) Qual é a vantagem de um array sobre variáveis individuais?
Ao armazenar vários dados relacionados, é uma boa ideia usar arrays. Isso ocorre porque os arrays são nomeados usando apenas uma palavra seguida por um número de elemento. Por exemplo: para armazenar os 1 resultados de testes de 10 aluno, podem-se usar 1 nomes de variáveis diferentes (nota10, nota1, nota2… nota3). Com arrays, apenas 10 nome é usado, os demais são acessíveis através do nome do índice (nota[1], nota[0], nota[1]… nota[2]).
30) Escreva uma instrução de loop que mostrará a seguinte saída:
1
12
123
1234
12345
Responda:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
Perguntas e respostas da entrevista de programação C para experientes
31) O que há de errado nesta afirmação? scanf(“%d”,qualnúmero);
Um e comercial e um símbolo devem ser colocados antes do nome da variável whatnumber. Colocar & significa que qualquer valor inteiro inserido pelo usuário é armazenado no “endereço” do nome da variável. Este é um erro comum dos programadores, muitas vezes levando a erros lógicos.
32) Como você gera números aleatórios em C?
Números aleatórios são gerados em C usando o rand() command
. Por exemplo: anyNum = rand()
irá gerar qualquer número inteiro começando em 0, assumindo que anyNum é uma variável do tipo inteiro.
33) Qual poderia ser o problema se um nome de função válido como tolower() estiver sendo relatado pelo compilador C como indefinido?
A razão mais provável para esse erro é que o arquivo de cabeçalho dessa função não foi indicado na parte superior do programa. Os arquivos de cabeçalho contêm a definição e o protótipo de funções e comandos usados em um programa C. No caso de “tolower()”, o código “#include ”deve estar presente no início do programa.
34) O que são comentários e como inseri-los em um programa C?
Comentários são uma ótima maneira de colocar alguns comentários ou descrições em um programa. Ele pode servir como um lembrete sobre o que é o programa ou uma descrição do motivo pelo qual um determinado código ou função foi colocado lá. Os comentários começam com /* e terminam com */ caracteres. Os comentários podem ter uma única linha ou até mesmo abranger várias linhas. Ele pode ser colocado em qualquer lugar do programa.
35) O que é depuração?
A depuração é o processo de identificação de erros em um programa. Durante a compilação do programa, os erros encontrados impedirão a execução completa do programa. Nesse estado, o programador examinaria as possíveis partes onde ocorreu o erro. A depuração garante a remoção de erros e desempenha um papel importante para garantir que a saída esperada do programa seja atendida.
36) O que o operador && faz em um código de programa?
O && também é conhecido como operador AND. Ao usar este operador, todas as condições especificadas devem ser TRUE antes que a próxima ação possa ser executada. Se você tiver 10 condições e todas, exceto 1, não forem avaliadas como TRUE, toda a instrução da condição já será avaliada como FALSE
37) Na programação C, que comando ou código pode ser usado para determinar se um número é ímpar ou par?
Não existe um comando único ou função em C que pode verificar se um número é ímpar ou par. No entanto, isso pode ser feito dividindo esse número por 2 e verificando o restante. Se o resto for 0, então esse número é par, caso contrário, é ímpar. Você pode escrevê-lo em código como:
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) O que significa o formato% 10.2 quando incluído em uma instrução printf?
Este formato é usado para duas coisas: para definir o número de espaços alocados para o número de saída e para definir o número de casas decimais. O número antes da vírgula decimal é para o espaço alocado; neste caso, seriam alocados 10 espaços para o número de saída. Se o número de espaço ocupado pelo número de saída for menor que 10, caracteres de espaço adicionais serão inseridos antes do número de saída real. O número após a vírgula define o número de casas decimais, neste caso são 2 casas decimais.
39) O que são erros lógicos e como eles diferem dos erros de sintaxe?
Programas que contêm erros lógicos tendem a passar no processo de compilação, mas a saída resultante pode não ser a esperada. Isso acontece quando uma fórmula errada foi inserida no código ou uma sequência errada de comandos foi executada. Os erros de sintaxe, por outro lado, tratam de comandos incorretos, digitados incorretamente ou não reconhecidos pelo compilador.
40) Quais são os diferentes tipos de estruturas de controle na programação?
Existem 3 estruturas de controle principais na programação: Sequência, Seleção e Repetição. O controle sequencial segue um fluxo de cima para baixo na execução de um programa, de modo que a etapa 1 seja executada primeiro, seguida pela etapa 2, até a última etapa ser executada. A seleção trata de declarações condicionais, o que significa que os códigos são executados dependendo da avaliação das condições como sendo VERDADEIRAS ou FALSAS. Isso também significa que nem todos os códigos podem ser executados e que existem fluxos alternativos. As repetições também são conhecidas como estruturas de loop e repetem uma ou duas instruções do programa definidas por um contador.
41) O que é || operador e como ele funciona em um programa?
O || também é conhecido como operador OR na programação C. Ao usar || para avaliar condições lógicas, qualquer condição avaliada como TRUE renderizará toda a instrução da condição como TRUE.
42) A função “if” pode ser usada na comparação de strings?
O comando “if” só pode ser usado para comparar valores numéricos e valores de um único caractere. Para comparar valores de strings, existe outra função chamada strcmp que trata especificamente de strings.
43) O que são diretivas de pré-processador?
As diretivas do pré-processador são colocadas no início de cada programa C. É aqui que os arquivos da biblioteca são especificados, o que dependeria de quais funções serão usadas no programa. Outro uso das diretivas de pré-processador é a declaração de constantes. As diretivas de pré-processador começam com o símbolo #.
44) Qual será o resultado da seguinte declaração condicional se o valor da variável s for 10?
s >=10 && s < 25 && s!=12
O resultado será VERDADEIRO. Como o valor de s é 10, s >= 10 é avaliado como VERDADEIRO porque s não é maior que 10, mas ainda é igual a 10. s< 25 também é VERDADEIRO, pois 10 é menor que 25. Da mesma forma, s!=12 , o que significa que s não é igual a 12, é avaliado como TRUE. O && é o operador AND e segue a regra de que se todas as condições individuais forem VERDADEIRAS, toda a instrução será VERDADEIRA.
45) Descreva a ordem de precedência em relação aos operadores em C.
A ordem de precedência determina qual operação deve ocorrer primeiro em uma instrução de operação ou instrução condicional. No nível mais alto de precedência estão os operadores unários!, +, – e &. É seguido pelos operadores matemáticos regulares (*, / e módulo % primeiro, seguidos por + e -). Em seguida estão os operadores relacionais <, <=, >= e >. Isso é seguido pelos dois operadores de igualdade == e! =. Os operadores lógicos && e || são avaliados em seguida. No último nível está o operador de atribuição =.
46) O que há de errado com esta afirmação? meuNome = “Robin”;
Você não pode usar o sinal = para atribuir valores a uma variável de string. Em vez disso, use a função strcpy. A afirmação correta seria: strcpy(myName, “Robin”);
47) Como você determina o comprimento de um valor de string que foi armazenado em uma variável?
Para obter o comprimento de um valor de string, use a função strlen(). Por exemplo, se você tiver uma variável chamada FullName, poderá obter o comprimento do valor da string armazenado usando esta instrução: I = strlen(FullName); a variável I agora terá o comprimento de caracteres do valor da string.
48) É possível inicializar uma variável no momento em que ela foi declarada?
Sim, você não precisa escrever uma instrução de atribuição separada após a declaração da variável, a menos que planeje alterá-la posteriormente. Por exemplo: char planeta[15] = “Terra”; faz duas coisas: declara uma variável string chamada planeta e a inicializa com o valor “Terra”.
49) Por que a linguagem C é considerada uma linguagem de nível médio?
Isso ocorre porque a linguagem C é rica em recursos que fazem com que ela se comporte como uma linguagem de alto nível e, ao mesmo tempo, possa interagir com o hardware usando métodos de baixo nível. O uso de uma abordagem de programação bem estruturada, aliada a palavras semelhantes ao inglês utilizadas em funções, faz com que ela atue como uma linguagem de alto nível. Por outro lado, C pode acessar diretamente estruturas de memória semelhantes às rotinas da linguagem assembly.
50) Quais são as diferentes extensões de arquivo envolvidas na programação em C?
Os códigos-fonte em C são salvos com extensão de arquivo .C. Arquivos de cabeçalho ou arquivos de biblioteca têm a extensão de arquivo .H. Cada vez que o código-fonte de um programa é compilado com êxito, ele cria um arquivo objeto .OBJ e um arquivo .EXE executável.
51) O que são palavras reservadas?
Palavras reservadas são palavras que fazem parte da biblioteca padrão da linguagem C. Isto significa que as palavras reservadas têm um significado especial e, portanto, não podem ser utilizadas para fins diferentes daqueles a que se destinam originalmente. Exemplos de palavras reservadas são int, void e return.
52) O que são listas vinculadas?
Uma lista vinculada é composta por nós que estão conectados uns aos outros. Na programação C, listas vinculadas são criadas usando ponteiros. Usar listas vinculadas é uma maneira eficiente de utilizar memória para armazenamento.
53) O que é FIFO?
Na programação C, existe uma estrutura de dados conhecida como fila. Nessa estrutura, os dados são armazenados e acessados no formato FIFO, ou First-In-First-Out. Uma fila representa uma linha onde os primeiros dados armazenados serão os primeiros acessíveis também.
54) O que são árvores binárias?
As árvores binárias são na verdade uma extensão do conceito de listas vinculadas. Uma árvore binária possui dois ponteiros, um esquerdo e outro direito. Cada lado pode ramificar ainda mais para formar nós adicionais, cada nó tendo também dois ponteiros. Aprender mais sobre Árvore binária na estrutura de dados se você estiver interessado.
55) Nem todas as palavras reservadas são escritas em letras minúsculas. Verdadeiro ou falso?
FALSO. Todas as palavras reservadas devem ser escritas em letras minúsculas; caso contrário, o compilador C interpretaria isso como não identificado e inválido.
56) Qual a diferença entre a expressão “++a” e “a++”?
Na primeira expressão, o incremento aconteceria primeiro na variável a, e o valor resultante será aquele a ser utilizado. Isso também é conhecido como incremento de prefixo. Na segunda expressão, o valor atual da variável a seria aquele a ser utilizado em uma operação, antes do próprio valor de a ser incrementado. Isso também é conhecido como incremento pós-fixado.
57) O que aconteceria com X nesta expressão: X += 15; (assumindo que o valor de X é 5)
X +=15 é um método curto de escrever X = X + 15, portanto, se o valor inicial de X for 5, então 5 + 15 = 20.
58) Na linguagem C, as variáveis NOME, nome e Nome são todas iguais. Verdadeiro ou falso?
FALSO. A linguagem C é uma linguagem que diferencia maiúsculas de minúsculas. Portanto, NOME, nome e Nome são três variáveis exclusivamente diferentes.
59) O que é um loop infinito?
Um loop infinito pode significar duas coisas. Uma delas é que ele foi projetado para fazer um loop contínuo até que a condição dentro do loop seja atendida, após o que uma função break faria com que o programa saísse do loop. Outra ideia de loop infinito é quando uma condição de loop incorreta foi escrita, fazendo com que o loop seja executado erroneamente para sempre. Loops infinitos são muitas vezes chamados de loops infinitos.
60) O que é um fluxograma de programa e como ele ajuda na escrita de um programa?
Um fluxograma fornece uma representação visual do procedimento passo a passo para resolver um determinado problema. Os fluxogramas são feitos de símbolos, com cada símbolo tendo formas diferentes. Cada forma pode representar uma entidade específica dentro de toda a estrutura do programa, como um processo, uma condição ou até mesmo uma fase de entrada/saída.
61) O que há de errado com esta declaração de programa? vazio = 10;
A palavra void é uma palavra reservada na linguagem C. Você não pode usar palavras reservadas como uma variável definida pelo usuário.
62) Esta declaração do programa é válida? INT = 10.50;
Supondo que INT seja uma variável do tipo float, esta afirmação é válida. Pode-se pensar que INT é uma palavra reservada e não deve ser usada para outros fins. No entanto, lembre-se de que as palavras reservadas são expressas em letras minúsculas, portanto o compilador C não interpretará isso como uma palavra reservada.
63) Quais são os argumentos reais?
Ao criar e usar funções que precisam executar uma ação em alguns valores fornecidos, você precisa passar esses valores fornecidos para essa função. Os valores que estão sendo passados para a função chamada são chamados de argumentos reais.
64) O que é uma sequência de escape de nova linha?
Uma sequência de escape de nova linha é representada pelo caractere \n. Isto é usado para inserir uma nova linha ao exibir dados na tela de saída. Mais espaços podem ser adicionados inserindo mais caracteres \n. Por exemplo, \n\n inseriria dois espaços. Uma sequência de escape de nova linha pode ser colocada antes ou depois da expressão de saída real.
65) O que é redirecionamento de saída?
É o processo de transferência de dados para uma fonte de saída alternativa que não seja a tela de exibição. O redirecionamento de saída permite que um programa tenha sua saída salva em um arquivo. Por exemplo, se você tiver um programa chamado COMPUTE, digitar isso na linha de comando como COMPUTE >DATA pode aceitar a entrada do usuário, realizar determinados cálculos e, em seguida, ter a saída redirecionada para um arquivo chamado DATA, em vez de mostrá-la na tela .
66) O que são erros de tempo de execução?
São erros que ocorrem durante a execução do programa. Um caso comum em que podem ocorrer erros em tempo de execução é quando você tenta dividir um número por zero. Quando ocorrem erros em tempo de execução, a execução do programa será pausada, mostrando qual linha do programa causou o erro.
67) Qual é a diferença entre as funções abs() e fabs()?
Essas 2 funções realizam basicamente a mesma ação, que é obter o valor absoluto de um determinado valor. Abs() é usado para valores inteiros, enquanto fabs() é usado para números de tipo flutuante. Além disso, o protótipo para abs() está sob , enquanto fabs() está abaixo .
68) O que são parâmetros formais?
Ao usar funções em um programa C, os parâmetros formais contêm os valores que foram passados pela função chamadora. Os valores são substituídos nestes parâmetros formais e utilizados em quaisquer operações indicadas no corpo principal da função chamada.
69) O que são estruturas de controle?
As estruturas de controle se encarregam de quais instruções devem ser executadas em um programa. Isso significa que o fluxo do programa pode não necessariamente passar de uma instrução para a próxima, mas sim algumas partes alternativas podem precisar ser passadas ou ignoradas, dependendo do resultado das instruções condicionais.
70) Escreva um fragmento de código simples que irá verificar se um número é positivo ou negativo
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) Quando uma declaração “switch” é preferível a uma declaração “if”?
O instrução switch é melhor usado ao lidar com seleções baseadas em uma única variável ou expressão. No entanto, as instruções switch só podem avaliar tipos de dados inteiros e de caracteres.
72) O que são variáveis globais e como você as declara?
Variáveis globais são variáveis que podem ser acessadas e manipuladas em qualquer lugar do programa. Para tornar uma variável global, coloque a declaração da variável na parte superior do programa, logo após a seção de diretivas do pré-processador.
73) O que são tipos enumerados?
Os tipos enumerados permitem ao programador usar palavras mais significativas como valores para uma variável. Cada item na variável de tipo enumerado está, na verdade, associado a um código numérico. Por exemplo, pode-se criar uma variável de tipo enumerado chamada DAYS cujos valores são Monday, terça… domingo.
74) O que a função topper() faz?
É usado para converter qualquer letra para o modo maiúsculo. O protótipo da função Toupper() é declarado em . Observe que esta função converterá apenas um único caractere e não uma string inteira.
75) É possível ter uma função como parâmetro em outra função?
Sim, isso é permitido na programação C. Você só precisa incluir todo o protótipo da função no campo de parâmetro da outra função onde ele será usado.
76) O que são arrays multidimensionais?
Matrizes multidimensionais são capazes de armazenar dados em uma estrutura bidimensional ou mais. Por exemplo, você pode usar uma matriz bidimensional para armazenar a posição atual das peças em um jogo de xadrez ou a posição dos jogadores em um programa de jogo da velha.
77) Qual função em C pode ser usada para anexar uma string a outra string?
A função strcat. São necessários dois parâmetros, a string de origem e o valor da string a serem anexados à string de origem.
78) Qual é a diferença entre as funções getch() e getche()?
Ambas as funções aceitarão um valor de entrada de caractere do usuário. Ao usar getch(), a tecla que foi pressionada não aparecerá na tela, sendo automaticamente capturada e atribuída a uma variável. Ao utilizar getche(), a tecla que foi pressionada pelo usuário aparecerá na tela, ao mesmo tempo em que será atribuída a uma variável.
79) Essas duas instruções de programa executam a mesma saída? 1) scanf(“%c”, &letra); 2) letra=getchar()
Sim, ambos fazem exatamente a mesma coisa, que é aceitar a próxima tecla pressionada pelo usuário e atribuí-la à variável chamada letra.
80) Quais são os tipos de estrutura em C?
Os tipos de estrutura são usados principalmente para armazenar registros. Um registro é composto de campos relacionados. Isso torna mais fácil organizar um grupo de dados relacionados.
81) O que significam os caracteres “r” e “w” ao escrever programas que farão uso de arquivos?
“r” significa “ler” e abrirá um arquivo como entrada onde os dados serão recuperados. “w” significa “escrever” e abrirá um arquivo para saída. Os dados anteriores armazenados nesse arquivo serão apagados.
82) Qual é a diferença entre arquivos de texto e arquivos binários?
Os arquivos de texto contêm dados que podem ser facilmente compreendidos por humanos. Inclui letras, números e outros caracteres. Por outro lado, os arquivos binários contêm 1s e 0s que somente computadores podem interpretar.
83) é possível criar seus próprios arquivos de cabeçalho?
Sim, é possível criar um arquivo de cabeçalho personalizado. Basta incluir nele os protótipos de função que você deseja usar em seu programa e usar a diretiva #include seguida do nome do seu arquivo de cabeçalho.
84) O que é estrutura de dados dinâmica?
A estrutura de dados dinâmica fornece um meio de armazenar dados de forma mais eficiente na memória. Usando Usando alocação de memória dinâmica, seu programa acessará os espaços de memória conforme necessário. Isto contrasta com a estrutura de dados estática, em que o programador deve indicar um número fixo de espaço de memória a ser usado no programa.
85) Quais são os diferentes tipos de dados em C?
O básico tipos de dados em C são int, char e float. Int é usado para declarar variáveis que armazenarão valores inteiros. Float é usado para armazenar números reais. Char pode armazenar valores de caracteres individuais.
86) Qual é a forma geral de um programa C?
O programa AC começa com as diretivas do pré-processador, nas quais o programador especificaria qual arquivo de cabeçalho e quais constantes (se houver) serão usadas. Isto é seguido pelo título da função principal. Dentro da função principal está a declaração da variável e a instrução do programa.
87) Qual a vantagem de um arquivo de acesso aleatório?
Se a quantidade de dados armazenados em um arquivo for bastante grande, o uso do acesso aleatório permitirá que você pesquise mais rapidamente. Se fosse um arquivo de acesso sequencial, você teria que passar por um registro por vez até chegar aos dados de destino. Um arquivo de acesso aleatório permite ir diretamente para o endereço de destino onde os dados estão localizados.
88) Em uma instrução switch, o que acontecerá se uma instrução break for omitida?
Se uma instrução break não foi colocada no final de uma parte específica do caso? Ele passará para a próxima parte do caso, possivelmente causando saída incorreta.
89) Descreva como arrays podem ser passados para uma função definida pelo usuário
Uma coisa a notar é que você não pode passar o array inteiro para uma função. Em vez disso, você passa para ele um ponteiro que apontará para o primeiro elemento do array na memória. Para fazer isso, indique o nome do array sem colchetes.
90) O que são ponteiros?
Ponto de ponteiro para áreas específicas da memória. Os ponteiros contêm o endereço de uma variável, que por sua vez pode conter um valor ou mesmo um endereço para outra memória.
91) Você consegue passar uma estrutura inteira para funções?
Sim, é possível passar uma estrutura inteira para uma função em um estilo chamada por método. No entanto, alguns programadores preferem declarar a estrutura globalmente e depois passar uma variável desse tipo de estrutura para uma função. Este método ajuda a manter a consistência e uniformidade em termos de tipo de argumento.
92) O que é a função get()?
O gets() function
permite uma entrada de dados de linha completa do usuário. Quando o usuário pressiona a tecla Enter para finalizar a entrada, toda a linha de caracteres é armazenada em uma variável de string. Observe que a tecla Enter não está incluída na variável, mas em vez disso, um terminador nulo \0 é colocado após o último caractere.
93) O símbolo % tem um uso especial em uma instrução printf. Como você colocaria esse personagem como parte da saída na tela?
Você pode fazer isso usando %% na instrução printf. Por exemplo, você pode escrever printf(“10%%”) para que a saída apareça como 10% na tela.
94) Como você pesquisa dados em um arquivo de dados usando o método de acesso aleatório?
Use o fseek()
função para realizar entrada/saída de acesso aleatório em um arquivo. Após o arquivo ser aberto pela função fopen(), o fseek exigiria três parâmetros para funcionar: um ponteiro de arquivo para o arquivo, o número de bytes a serem pesquisados e o ponto de origem no arquivo.
95) Os comentários são incluídos durante a fase de compilação e também colocados no arquivo EXE?
Não, os comentários encontrados pelo compilador são desconsiderados. Os comentários são principalmente para orientação do programador e não têm qualquer outro uso significativo na funcionalidade do programa.
96) Existe uma função interna em C que pode ser usada para classificar dados?
Sim, use o qsort()
função. Também é possível criar funções definidas pelo usuário para classificação, como aquelas baseadas no algoritmo de classificação por balão e classificação por bolha.
97) Quais são as vantagens e desvantagens de uma pilha?
O armazenamento de dados no heap é mais lento do que seria necessário ao usar a pilha. No entanto, a principal vantagem de usar o heap é a sua flexibilidade. Isso ocorre porque a memória nesta estrutura pode ser alocada e removida em qualquer ordem específica. A lentidão no heap pode ser compensada se um algoritmo for bem projetado e implementado.
98) Como você converte strings em números em C?
Você pode escrever suas próprias funções para fazer conversões de string em número ou, em vez disso, usar funções integradas em C. Você pode usar atof para converter em um valor de ponto flutuante, atoi para converter em um valor inteiro e atol para converter em um valor inteiro longo.
99) Crie um fragmento de código simples que irá trocar os valores de duas variáveis num1 e num2.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Qual é o uso de ponto e vírgula (;) no final de cada instrução de programa?
Tem a ver com o processo de análise e compilação do código. Um ponto e vírgula atua como um delimitador, para que o compilador saiba onde cada instrução termina e possa dividir a instrução em elementos menores para verificação de sintaxe.
Essas perguntas da entrevista também ajudarão em sua viva (oral)