Top 100 perguntas da entrevista de programação C & Respostas

Anonim

baixar PDF

1) Como você constrói uma instrução de incremento ou instrução de 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 declaração "x ++" significa aumentar o valor de x em 1. Da mesma forma, a declaração "x -" significa diminuir o valor de x em 1. Outra maneira de escrever declarações de incremento é usar o + mais convencional sinal ou - sinal de menos. No caso de "x ++", outra forma de escrevê-lo é "x = x +1".

2) Qual a diferença entre Call by Value e Call by Reference?

Ao usar Call by Value, você está enviando o valor de uma variável como parâmetro para uma função, enquanto Call by Reference envia o endereço da variável. Além disso, em Call by Value, o valor no parâmetro não é afetado por qualquer operação que ocorre, enquanto no caso de Call by Reference, os valores podem ser afetados pelo processo dentro da função.

3) Alguns codificadores depuram seus programas colocando símbolos de comentário 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, basta remover os símbolos de comentário e continuar. Ele também economiza tempo e esforço em ter que redigitar os códigos, caso você os tenha excluído em primeiro lugar.

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, aqueles na 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 formas. Um arquivo de acesso sequencial é aquele em 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 de cada vez, até que o correto seja alcançado.

7) O que é inicialização de variável e por que é importante?

Isso se refere ao processo em que uma variável recebe um valor inicial antes de ser usada no programa. Sem a inicialização, uma variável teria um valor desconhecido, o que pode levar a saídas imprevisíveis quando usado em cálculos ou outras operações.

8 O que é programação espaguete?

A programação espaguete se refere a códigos que tendem a se emaranhar e se sobrepor 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 um programa complexo e difícil de analisar os códigos e, portanto, deve ser evitada tanto quanto possível.

9) Diferencie os códigos-fonte dos códigos-objeto

Códigos-fonte são códigos que foram escritos pelo programador. É composto de comandos e outras palavras-chave semelhantes ao inglês que devem instruir o computador sobre o que fazer. No entanto, os computadores não seriam capazes de entender os códigos-fonte. Portanto, os códigos-fonte são compilados usando um compilador. As saídas resultantes são códigos de objeto, que estão em um formato que pode ser entendido pelo processador do computador. Na programação C, os códigos-fonte são salvos com a extensão de arquivo .C, enquanto os códigos de 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 de um caractere '\ 0'?

É 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 = é freqüentemente 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 de módulo?

O operador de módulo produz o restante de uma divisão. Faz uso do símbolo de porcentagem (%). Por exemplo: 10% 3 = 1, o que significa que 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. Colocando em outro sentido, você tem um loop interno que está dentro de um loop externo. Nesse cenário, o loop interno é executado várias 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 esse operador seja interpretado corretamente como "diferente de" ao escrever declarações condicionais, ele não é o operador adequado a ser usado na 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 intérpretes geralmente lidam com a forma como os códigos de programa 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 intérpretes, 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ó continuarão 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 pode conter apenas um valor de caractere por vez. Ao criar uma matriz de caracteres, você pode armazenar valores de string nela. Exemplo: "char MyName [50];" declara uma variável de string chamada MyName que pode conter no máximo 50 caracteres.

18) As chaves {} podem ser usadas para incluir 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 forem usadas para uma única linha. Alguns programadores preferem esse método como uma forma de organizar códigos para torná-los mais claros, especialmente em declaraçõ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 protótipos de funções que estão sendo usadas em um programa. Simplificando, os comandos que você usa na programação C são, na verdade, funções definidas a partir de 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. Pode ser um comando que foi digitado incorretamente ou um comando que deve ter sido inserido no modo de minúsculas, mas foi inserido com um caractere em maiúsculas. 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 de que forma é diferente das constantes?

Variáveis ​​e constantes podem parecer à primeira vista 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 em todo o programa e podem ser usados ​​na maioria das operações e cálculos. Constantes recebem valores de uma só vez, colocados 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 um 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?

Os arrays contêm vários elementos, dependendo do tamanho que você forneceu durante a declaração da variável. Cada elemento é atribuído a um número de 0 a um 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? Porque?

Não. 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 você não pretende armazenar valores negativos.

24) Dois ou mais operadores, como \ ne \ t, podem ser combinados em uma única linha de código de programa?

Sim, é perfeitamente válido combinar operadores, especialmente se for necessário. Por exemplo: você pode ter um código como "printf (" Hello \ n \ n \ 'World \' ")" para produzir o texto "Hello" na primeira linha e "World" entre aspas simples para aparecer na próxima 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á naquele programa. Como cada arquivo de cabeçalho contém diferentes definições de função e protótipo, você usaria apenas os arquivos de cabeçalho que conteriam as funções de que você precisa. 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 aquela função retornaria um valor ou não. Se essa função não retornar um valor, como quando o propósito de uma função é exibir algumas saídas na tela, "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?

As instruções compostas são feitas de duas ou mais instruções do programa executadas juntas. Isso geralmente ocorre durante o tratamento de condições em que uma série de instruções são executadas quando um TRUE ou FALSE é avaliado. As instruções compostas também podem ser executadas em um loop. Os colchetes {} são colocados antes e depois das instruções compostas.

28) Qual é a importância de um algoritmo para a programação C?

Antes que um programa possa ser escrito, um algoritmo deve ser criado primeiro. Um algoritmo fornece um procedimento passo a passo sobre como uma solução pode ser derivada. Ele também atua como um plano de como um programa começará e terminará, incluindo quais processos e cálculos estão envolvidos.

29) Qual é a vantagem de um array sobre as variáveis ​​individuais?

Ao armazenar vários dados relacionados, é uma boa ideia usar matrizes. Isso ocorre porque os arrays são nomeados usando apenas 1 palavra seguida por um número de elemento. Por exemplo: para armazenar os 10 resultados do teste de 1 aluno, pode-se usar 10 nomes de variáveis ​​diferentes (série 1, 2ª série, 3ª série ... série 10). Com matrizes, apenas 1 nome é usado, os demais são acessíveis por meio do nome do índice (grau [0], grau [1], grau [2] ... grau [9]).

30) Escreva uma instrução de loop que mostre 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");}

31) O que há de errado nesta afirmação? scanf ("% d", qual número);

Um E comercial & símbolo deve ser colocado 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 para programadores, geralmente 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 comando rand (). 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 () está sendo relatado pelo compilador C como indefinido?

A razão mais provável por trás desse 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 para 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 você os insere em um programa C?

Os 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 trata, ou uma descrição de por que um determinado código ou função foi colocado lá em primeiro lugar. Os comentários começam com / * e terminam com * / caracteres. Os comentários podem ser uma única linha ou podem até 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 em que 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 as condições, 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, qual comando ou código pode ser usado para determinar se um número de ímpar ou par?

Não há um único comando ou função em C que possa 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 escrever em código como:

if (num % 2 == 0)printf("EVEN");elseprintf("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 atribuídos 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, ele alocaria 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, os caracteres de espaço adicionais serão inseridos antes do número de saída real. O número após o ponto decimal 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, lidam com comandos incorretos que são digitados incorretamente ou não são reconhecidos pelo compilador.

40) Quais são os diferentes tipos de estruturas de controle na programação?

Existem 3 estruturas principais de controle 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é que a última etapa seja executada. A seleção lida com declarações condicionais, o que significa que os códigos são executados dependendo da avaliação das condições como sendo TRUE ou FALSE. Isso também significa que nem todos os códigos podem ser executados e que existem fluxos alternativos dentro deles. As repetições também são conhecidas como estruturas de loop e repetirão 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 o operador OR na programação C. Ao usar || para avaliar condições lógicas, qualquer condição avaliada como TRUE tornará toda a declaração de condição TRUE.

42) A função "if" pode ser usada na comparação de strings?

Não. O comando "if" só pode ser usado para comparar valores numéricos e valores de um único caractere. Para comparar valores de string, existe outra função chamada strcmp que lida especificamente com 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 de biblioteca são especificados, o que dependeria das funções a serem usadas no programa. Outro uso das diretivas do pré-processador é a declaração de constantes. As diretivas do 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 &. Ele é seguido pelos operadores matemáticos regulares (*, / e módulo% primeiro, seguido 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 essa 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 declaraçã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 armazenada usando esta instrução: I = strlen (FullName); a variável terei agora o comprimento do caractere do valor da string.

48) É possível inicializar uma variável no momento em que 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 planet [15] = "Earth"; faz duas coisas: declara uma variável de string chamada planeta e a inicializa com o valor "Terra".

49) Por que a linguagem C está sendo considerada uma linguagem de nível médio?

Isso ocorre porque a linguagem C é rica em recursos que a fazem se comportar como uma linguagem de alto nível e, ao mesmo tempo, pode interagir com o hardware usando métodos de baixo nível. O uso de uma abordagem bem estruturada para programação, juntamente com palavras semelhantes ao inglês usadas 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 de 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 a extensão de arquivo .C. Os arquivos de cabeçalho ou de biblioteca têm a extensão de arquivo .H. Sempre que um código-fonte de programa é compilado com êxito, ele cria um arquivo de 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 de linguagem C padrão. Isso significa que as palavras reservadas têm um significado especial e, portanto, não podem ser usadas para finalidades diferentes daquelas originalmente destinadas. Exemplos de palavras reservadas são int, void e return.

52) O que são listas vinculadas?

Uma lista vinculada é composta de nós que estão conectados a outro. 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 em que os primeiros dados armazenados também serão os primeiros acessíveis.

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 tem dois ponteiros, um esquerdo e um direito. Cada lado pode se ramificar para formar nós adicionais, sendo que cada nó também possui dois ponteiros.

55) Nem todas as palavras reservadas são escritas em minúsculas. Verdadeiro ou falso?

FALSO. Todas as palavras reservadas devem ser escritas em 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 ocorreria primeiro na variável a, e o valor resultante seria 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 usado em uma operação, antes que o valor de a seja incrementado. Isso também é conhecido como incremento postfix.

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 ​​NAME, name e Name são todas iguais. Verdadeiro ou falso?

FALSO. A linguagem C é uma linguagem que diferencia maiúsculas de minúsculas. Portanto, NAME, name e Name são três variáveis ​​exclusivamente diferentes.

59) O que é um loop infinito?

Um loop infinito pode significar duas coisas. Uma é que ele foi projetado para fazer um loop continuamente até que a condição dentro do loop seja satisfeita, após o que uma função de interrupção faria com que o programa saísse do loop. Outra ideia de um loop infinito é quando uma condição de loop incorreta foi escrita, fazendo com que o loop fosse executado erroneamente para sempre. Loops infinitos são freqüentemente chamados de loops infinitos.

60) O que é um fluxograma de programa e como ele ajuda a escrever 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 em formas diferentes. Cada forma pode representar uma entidade específica dentro de toda a estrutura do programa, como um processo, uma condição ou mesmo uma fase de entrada / saída.

61) O que há de errado com esta declaração do 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 declaraçã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. Isso é usado para inserir uma nova linha ao exibir dados na tela de saída. Mais espaços podem ser adicionados inserindo mais \ n caracteres. 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 diferente da 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 denominado COMPUTE, digitando-o na linha de comando como COMPUTE> DATA pode aceitar a entrada do usuário, realizar certos cálculos e, em seguida, redirecionar a saída para um arquivo denominado DATA, em vez de mostrá-lo na tela .

66) O que são erros em tempo de execução?

São erros que ocorrem durante a execução do programa. Um exemplo comum em que erros de tempo de execução podem acontecer é quando você está tentando dividir um número por zero. Quando ocorrerem erros de 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 basicamente executam a mesma ação, que é obter o valor absoluto de um determinado valor. Abs () é usado para valores inteiros, enquanto fabs () é usado para números do tipo flutuante. Além disso, o protótipo para abs () está em , enquanto fabs () está em .

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 de chamada. Os valores são substituídos nesses parâmetros formais e usados ​​em quaisquer operações conforme indicado no corpo principal da função chamada.

69) O que são estruturas de controle?

As estruturas de controle assumem o comando em que as 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, em vez disso, algumas partes alternativas podem precisar ser transmitidas ou contornadas, dependendo do resultado das instruções condicionais.

70) Escreva um fragmento de código simples que verificará se um número é positivo ou negativo .

If (num>=0)printf("number is positive");elseprintf ("number is negative");

71) Quando uma declaração "switch" é preferível a uma declaração "if"?

A instrução switch é melhor usada ao lidar com seleções baseadas em uma única variável ou expressão. No entanto, as instruções switch podem avaliar apenas 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 que o programador use palavras mais significativas como valores para uma variável. Cada item na variável de tipo enumerado está realmente associado a um código numérico. Por exemplo, pode-se criar uma variável de tipo enumerada chamada DAYS, cujos valores são segunda, terça… domingo.

74) O que a função toupper () faz?

É usado para converter qualquer letra em seu 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 deve ser usado.

76) O que são matrizes 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 e é automaticamente capturada e atribuída a uma variável. Ao usar getche (), a tecla que foi pressionada pelo usuário aparecerá na tela, ao mesmo tempo em que é atribuída a uma variável.

79) Essas duas instruções do programa executam a mesma saída? 1) scanf ("% c", & letter); 2) letter = getchar ()

Sim, os dois fazem exatamente a mesma coisa, que é aceitar a próxima tecla pressionada pelo usuário e atribuí-la à variável chamada letter.

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 facilita a organização de 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 "lido" e abrirá um arquivo como entrada em que os dados devem ser 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 entendidos por humanos. Inclui letras, números e outros caracteres. Por outro lado, os arquivos binários contêm 1s e 0s que apenas os computadores podem interpretar.

83) é possível criar seus próprios arquivos de cabeçalho?

Sim, é possível criar um arquivo de cabeçalho personalizado. Apenas inclua nele os protótipos de função que você deseja usar em seu programa e use a diretiva #include seguida pelo nome de seu arquivo de cabeçalho.

84) O que é estrutura de dados dinâmica?

A estrutura de dados dinâmica fornece um meio para armazenar dados com mais eficiência na memória. Usando a alocação de memória dinâmica, seu programa acessará os espaços de memória conforme necessário. Isso está em contraste com a estrutura de dados estáticos, 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?

Os tipos de dados básicos 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) a serem usadas. Isso é seguido pelo cabeçalho da função principal. Dentro da função principal está a declaração da variável e a declaraçã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 de 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 que você vá 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 uma saída incorreta.

89) Descreva como os arrays podem ser passados ​​para uma função definida pelo usuário

Uma coisa a ser observada é que você não pode passar todo o array para uma função. Em vez disso, você passa para ele um ponteiro que aponta para o primeiro elemento do array na memória. Para fazer isso, você indica o nome da matriz sem os colchetes.

90) O que são ponteiros?

Os ponteiros apontam 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 de chamada por método. No entanto, alguns programadores preferem declarar a estrutura globalmente e, em seguida, 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 gets ()?

A função gets () permite uma entrada de dados de linha completa do usuário. Quando o usuário pressiona a tecla enter para encerrar 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ê busca dados em um arquivo de dados usando o método de acesso aleatório?

Use a função fseek () para realizar entrada / saída de acesso aleatório em um arquivo. Depois que o arquivo foi 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 pesquisar e o ponto de origem no arquivo.

95) Os comentários são incluídos durante a fase de compilação e colocados no arquivo EXE também?

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 nenhum outro uso significativo na funcionalidade do programa.

96) Existe uma função embutida em C que pode ser usada para classificar dados?

Sim, use a função qsort (). Também é possível criar funções definidas pelo usuário para classificação, como aquelas baseadas na classificação por balão e no algoritmo de classificação por bolha.

97) Quais são as vantagens e desvantagens de um heap?

O armazenamento de dados no heap é mais lento do que levaria ao usar a pilha. No entanto, a principal vantagem de usar o heap é sua flexibilidade. Isso ocorre porque a memória nessa estrutura pode ser alocada e removida em qualquer ordem específica. A lentidão no heap pode ser compensada se um algoritmo foi 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 strings para números ou, em vez disso, usar as funções integradas de 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 um ponto e vírgula (;) no final de cada instrução do 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 continuar a dividir a instrução em elementos menores para verificação de sintaxe.