SóProvas



Questões de C


ID
110707
Banca
CESGRANRIO
Órgão
IBGE
Ano
2010
Provas
Disciplina
Programação
Assuntos

Para os recursos presentes na linguagem de programação C, são feitas as afirmativas abaixo.
I - Permite acesso de baixo nível através da introdução de código Assembly no programa C.
II - A passagem de parâmetros por referência para funções pode ser simulada através da utilização de ponteiros.
III - O tipo de dados typedef são estruturas variáveis que permitem que dados relacionados sejam combinados e manipulados como um todo.

Está(ão) correta(s) a(s) afirmativa(s)

Alternativas
Comentários
  • typedef não é um tipo de dados, é uma forma de definir um novo tipo de dados.

     

    Usa-se muito com structs:

     

    typedef struct{

            char nome[251];

             int idade;

    }Pessoa;


    Depois pode-se utilizar como se fosse um tipo de dados:

    Pessoa p;strcpy(p.nome, "Thalles");p.idade = 22;Ou ponteiro:Pessoa * p = (Pessoa *) malloc(sizeof(Pessoa));strcpy(p->nome,"Thalles");p->idade = 22;


    Quando é ponteiro, utiliza-se o operador "->" para acessar os membros da estrutura.
  • O item III se refere à definição de structs. No livro Informática-Conceitos básicos, de Fernando de Castro Veloso, esse conceito é listado como sendo uma das características da linguagem C, além dessas temos:

  • Uma linguagem extremamente simples, com funcionalidades não-essenciais, tais como funções matemáticas ou manuseamento de ficheiros (arquivos), fornecida por um conjunto de bibliotecas de rotinas padronizada
  • A focalização no paradigma de programação procedural
  • Um sistema de tipos simples que evita várias operações que não fazem sentido
  • Uso de uma linguagem de pré-processamento, o pré-processador de C, para tarefas tais como a definição de macros e a inclusão de múltiplos ficheiros de código fonte
  • Ponteiros dão maior flexibilidade à linguagem
  • Acesso de baixo nível, através de inclusões de código Assembly no meio do programa C
  • Parâmetros que são sempre passados por valor para as funções e nunca por referência (É possível simular a passagem por referência com o uso de ponteiros)
  • Definição do alcance lexical de variáveis
  • Estruturas de variáveis, (structs), que permitem que dados relacionados sejam combinados e manipulados como um todo
  • I- Alguém já viu código assembly em programas em C?

  • Sim, Mário.

    Eu mesmo já escrevi códigos como:

    #include

    int main() {

        __asm__ (   "movl $42, %eax;"

                          "movl $42, %ebx;"

                          "addl %ebx, %eax;" );

        return 0 ;

    }


ID
128803
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Programação
Assuntos

Considerando as características das principais linguagens de programação, é correto afirmar que

Alternativas
Comentários
  • a. são linguagens orientadas a objetos;

    b. Assembly é classificado como baixo nível

    c. C é alto nível;

    e. são fortemente ligadas ao processador

  • "Não necessidade de conhecimento do processador". A forma como é escrito, chega a ser engraçado.  Melhor escrevendo seria - Não necessidade de programação em processador; ou - conhecimento de linguagem de baixo nível...

ID
130048
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Com relação às linguagens, julgue os itens a seguir.

As linguagens procedurais, como Cobol, Algol e C, têm como característica serem modulares e permitirem a reutilização de um mesmo código repetidamente em outras partes do programa, sem, necessariamente, copiá-lo.

Alternativas
Comentários
  • Correto.

    A programação procedural é geralmente uma escolha melhor que programação sequencial e não estruturada em muitas situações que envolvem uma complexidade média e requerem facilidade de manutenção. Possíveis benefícios são:

    • A habilidade de reutilizar o mesmo código em diferentes lugares no programa sem copiá-lo
    • Uma forma mais fácil de organizar o fluxo do programa que uma coleção de comandos "goto (programação)" ou "jump" (que podem transformar um programa grande e complicado no assim chamado Código espaguete)
    • A habilidade de ser fortemente modular e estruturado
    http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_procedural
  • Essas linguagens são estruturais e o Cobol, por exemplo, tem um comando procedimental(procedural é uma palavra que não existe no nosso dicionário) que é o GOTO que você pode chamar outra parte do código, que não esteja, necessariamente em sequencia.

    Evita-se usar esses procedimentos, pois são procedimentos que causam o código espaguete, que é de difícil compreensão e isso afeta a manutenção.

    Como não entraram com recurso. Ficou como certa.


ID
149953
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Programação
Assuntos

Com relação a aspectos de linguagem de programação,
programação estruturada, programação orientada a objetos e
conceitos associados, julgue os itens de 106 a 113.

A sobrecarga de operadores, recurso presente nas linguagens C++ e C#, pode ser considerada uma técnica de uso de polimorfismo.

Alternativas
Comentários
  • A sobrecarga de operadores se enquadra na categoria de polimorfismo ad hoc. Polimorfismo este definido em tempo de execução de acordo com os parâmetros passados para a chamada do método.

ID
226285
Banca
CESGRANRIO
Órgão
EPE
Ano
2010
Provas
Disciplina
Programação
Assuntos

Determinado órgão público federal deseja implantar um sistema de consulta na Internet. A plataforma utilizada será ASP.NET e a linguagem de programação, C#. Na modelagem orientada a objetos desse sistema, é importante considerar que a linguagem adotada

Alternativas
Comentários
  • E se for uma Interface? Permite sim uma herança múltipla!

  • Gabarito: E

    Os namespaces servem para organizar as classes de uma biblioteca, e não associá-las.


ID
249421
Banca
CESPE / CEBRASPE
Órgão
DETRAN-ES
Ano
2010
Provas
Disciplina
Programação
Assuntos

A respeito da orientação a objetos e das respectivas linguagens de
programação, julgue os itens subsequentes.

O C# oferece suporte à sobrecarga tanto de métodos quanto de operadores e permite a realização de conversão implícita de inteiros, ponteiros nulos e enumerações.

Alternativas
Comentários
  • Apenas complementando, a primeira parte da afirmativa está correta. C# realmente permite sobrecarga tanto de métodos quanto de operadores (http://www.50minutos.com.br/post/Sobrecarga-de-Operadores-Aritmeticos-em-C.aspx)

ID
287608
Banca
INSTITUTO CIDADES
Órgão
UNIFESP
Ano
2009
Provas
Disciplina
Programação
Assuntos

Acerca da linguagem de programação Java, analise as seguintes informações:

I. A linguagem de programação Java é baseada em classes e orientada a objetos (OO).

II. A linguagem de programação Java tem relação com C e C++, mas é organizada de maneira diferente, com vários aspectos de C e C++ omitidos e algumas idéias de outras linguagens incluídas.

III. Java 2 Standard Edition (J2SE) é uma plataforma voltada para pequenos dispositivos (telefones celulares, televisores, aparelhos eletrônicos em geral).

Podemos afirmar corretamente que:

Alternativas
Comentários
  • J2ME que é voltada para pequenos dispositivos etc.


ID
320827
Banca
CESPE / CEBRASPE
Órgão
INMETRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Em relação ao processo de geração de código executável, assinale a opção correta.

Alternativas
Comentários
  • (d) o correto seria: ...durante a análise léxica.
  • e) CORRETA Em programas que usam funções disponíveis em bibliotecas, as referências a estas funções serão resolvidas pelo ligador. No caso de bibliotecas estáticas, o código objeto das funções é integrado ao módulo executável durante o processo de ligação.

    Na ciência da computação, biblioteca é uma coleção de subprogramas utilizados no desenvolvimento de software. Bibliotecas contém código e dados auxiliares, que provém serviços a programas independentes, o que permite o compartilhamento e a alteração de código e dados de forma modular. Alguns executáveis são tanto programas independentes quanto bibliotecas, mas a maioria das bibliotecas não são executáveis. Executáveis e bibliotecas fazem referências mútuas conhecidas como ligações, tarefa tipicamente realizada por um ligador.

    Bibliotecas compartilhadas

    Além de poderem ser carregadas estaticamente ou dinamicamente, bibliotecas também são classificadas de acordo com como são compartilhadas pelos programas. Bibliotecas dinâmicas quase sempre fornecem alguma forma de compartilhamento, permitindo que sejam utilizadas por diferentes programas ao mesmo tempo. Por definição, bibliotecas estáticas não podem ser compartilhadas pois são ligadas individualemente a cada programa.

    Bibliotecas estáticas permitem que os usuários liguem os programas sem ter que recompilar o seu código, economizando tempo de recompilação. Note que tempo de recompilação é menos importante tendo em vista a maior velocidade dos compiladores atuais, então este motivo não é tão forte quanto já foi um dia. Bibliotecas estáticas freqüentemente são úteis para desenvolvedores se eles desejam permitir que os programadores liguem à sua biblioteca, mas não querem dar o código fonte da mesma (o que é uma vantagem para o vendedor, mas obviamente não é uma vantagem para o programador que tenta usar a biblioteca).

    Fonte:
    http://www.las.ic.unicamp.br/~felipe/plh/Program-Library-HOWTO/x26.html
    http://pt.wikipedia.org/wiki/Biblioteca_%28computa%C3%A7%C3%A3o%29
  • a) Não é parte do programa, precisa do ligador, que fará referência única e exclusivamente às funções utilizadas pelo código.

    b) Código executável não; código objeto, uma vez que devemos manter a portabilidade.

    c) Carregadores são utilizados por linguagens de baixo nível também.

    d) Totalmente possível, em Java, declararmos uma variável com o nome de 7g.

    e) CORRETA


ID
391453
Banca
VUNESP
Órgão
FUNDAÇÃO CASA
Ano
2010
Provas
Disciplina
Programação
Assuntos

Assinale a alternativa que apresenta, na linguagem de programação C#, o operador utilizado para localizar identificadores.

Alternativas

ID
391459
Banca
VUNESP
Órgão
FUNDAÇÃO CASA
Ano
2010
Provas
Disciplina
Programação
Assuntos

Na linguagem de programação C#, a definição de class, struct ou interface pode ser dividida em vários arquivos por meio da

Alternativas

ID
459502
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Programação
Assuntos

Acerca da linguagem C, julgue os itens subseqüentes.

O comando Scanf(“%c”, &car); faz a leitura de um dado do tipo inteiro.

Alternativas
Comentários
  • Tipo char. Leitura do tipo inteiro seria %d.

  • Gabarito Errado

    Questão dada... C de char "%c".

     

    Vamos na fé !

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
459505
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Programação
Assuntos

Acerca da linguagem C, julgue os itens subseqüentes.

O comando#include inclui a biblioteca padrão de entrada/saída do C (standard input output).

Alternativas
Comentários
  • O comando #include é utilizado para adicionar uma biblioteca no código. 
    A questão afirma que esse comando é usado para inserir a biblioteca padrão de entrada/saída do C(stdio.h).
    O comando correto para esse caso não seria #include<stdio.h>?
  • A diretiva #include sem o nome do arquivo entre <> ou "" gera um erro de compilação. A diretiva #include sozinha não inclui automaticamente a biblioteca stdio.h. A reposta para questão é Errado.

ID
459508
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Programação
Assuntos

Acerca da linguagem C, julgue os itens subseqüentes.

O comando float ra, ar; define as variáveis ra e ar como ponto flutuante.

Alternativas
Comentários
  • Gabarito Certo

    A palavra-chave float indica um tipo simples que armazena valores de ponto flutuante de 32 bits.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
459511
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Programação
Assuntos

Acerca da linguagem C, julgue os itens subseqüentes.

*define cons 100 define uma constante de valor 100.

Alternativas
Comentários
  • O correto seria

    #define nome_da_constante valor

    #define CONS 100

    Há uma recomendação de definir uma constante com letra maiuscula para melhor diferencia-la de outras variáveis no có


ID
459604
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Programação
Assuntos

Com base nos conceitos de linguagens de programação e
linguagens de scripts, julgue os próximos itens.

Na linguagem C, para declarar uma função contendo um número indeterminado de argumentos, deve-se adicionar, no lugar do último argumento, um conjunto de três pontos suspensivos, como no exemplo a seguir: int a_function (int x, ...).

Alternativas
Comentários
  • parecido com o vargargs de Java


ID
611296
Banca
CONSULPLAN
Órgão
Prefeitura de Natal - RN
Ano
2006
Provas
Disciplina
Programação
Assuntos

Analise as afirmativas abaixo colocando V para as afirmativas verdadeiras e F para as falsas:

( ) Uma linguagem de programação pode ser convertida ou traduzida em código de máquina por compilação ou interpretação.

( ) Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar o programa, então diz-se que o programa foi interpretado.

( ) Se o texto do programa é traduzido à medida em que vai sendo executado, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi compilado.

( ) Pascal e C são linguagens de Programação em que os programas são compilados antes de serem executados.

A seqüência está correta em:

Alternativas
Comentários
  • Gabarito C

    1- Verdadeira

    2- Falsa - O certo é Compilado

    3- Falsa - O certo é Interpretado

    4- Verdadeira

     

    Vamos na fé !

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
638149
Banca
FUMARC
Órgão
PRODEMGE
Ano
2011
Provas
Disciplina
Programação
Assuntos

Analise o seguinte programa desenvolvido na linguagem C#:
using System;
namespace prova
{
class Class1
{
static void Main(string[] args)
{
int[,] mat = new int[3,3]
{{1,2,3}, {2,1,3}, {3,2,1}};
int aux=mat[0,0];
mat[0,0]=mat[0,1];
mat[0,1]=aux;
aux=mat[1,1];
mat[1,1]=mat[2,2];
mat[2,2]=aux;
aux=mat[2,1];
mat[2,1]=mat[1,2];
mat[1,2]=aux;
foreach (int num in mat)
Console.Write(num);
}
}
}
Assinale a opção CORRETA que corresponde à saída gerada pelo programa:

Alternativas
Comentários
  • int[,] mat = new int[3,3]
    {{1,2,3}, {2,1,3}, {3,2,1}};

    Esses comandos inicializam o vetor de 2 dimensões mat assim

    mat =  123
                 213
                 321


    int aux=mat[0,0];
            mat[0,0]=mat[0,1];
            mat[0,1]=aux;

    Esses comandos trocam o primeiro elemento da primeira linha (0,0) pelo segundo elemento da mesma linha  (0,1) ficando assim

    mat =  213
                213
                321


     aux=mat[1,1];
            mat[1,1]=mat[2,2];
            mat[2,2]=aux;

    Esses comandos trocam o segundo elemento da segunda linha (1,1) pelo terceiro elemento da terceira linha  (2,2) ficando do mesmo jeito que antes, já que esses elementos são iguais a 1.

    mat =  213
                213
                321


    aux=mat[2,1];
            mat[2,1]=mat[1,2];
            mat[1,2]=aux;


    Esses comandos trocam o terceiro elemento da segunda linha (2,1) pelo segundo elemento da terceira linha  (1,2) ficando assim

    mat =  213
                212
                331


     foreach (int num in mat)
                      Console.Write(num);
    Esses comandos percorrem o array linha por linha imprimindo os valores 213212331 .

    Resposta d.



ID
647596
Banca
FCC
Órgão
TCE-AP
Ano
2012
Provas
Disciplina
Programação
Assuntos

A utilização de números como constantes no meio de um código fonte em uma linguagem de programação, conhecidos por 'números mágicos', é considerada uma prática ruim. Na linguagem de programação C/C++ é possível criar constantes numéricas ou strings que substituirão a constante no código por um nome dado pelo programador. Isso é feito com a utilização da diretiva do preprocessador

Alternativas
Comentários
  • Constantes são o oposto das variáveis, apesar de trabalharem da mesma forma.

    As "variáveis" têm esse nome exatamente porque podem mudar seu valor durante a execução do programa. Já as "constantes" são dados gravados em memória que de forma alguma podem alterar seu valor.
     
    Para criar uma constante, usa-se o pré-processador define. Define é um pré-processador porque todas as constantes devem ser definidas antes do inicio do programa.

    Resposta é a letra "d"
  • #pragma - Passa ordens ao compilador como por exemplo ignorar um erro

    #include - Adiciona outro arquivo externo para ser compilado

    #const - Isso existe?

    #define - X da questão.

    #declare - Acho que isto também não existe em C++. Pelo menos nunca vi.

  • #define -> Esta diretiva é utilizada para substituir um nome dado pelo programador por um "valor", no código-fonte. Acontece a nível de PREPROCESSOR.

    Ex.:

    #include

    #define numberOne 1

    #define numberTwo 2

    int main (){

    printf ("numberOne vale %d\n",numberOne);

    printf ("numberTwo vale %d\n",numberTwo);

    return 0;
    }


ID
700129
Banca
FUNIVERSA
Órgão
PC-DF
Ano
2012
Provas
Disciplina
Programação
Assuntos

Na maioria das linguagens de programação, as estruturas de controle de fluxo são fundamentais para a criação de programas elegantes e de fácil entendimento. Assinale a alternativa correta com relação aos comandos de controle de fluxo da linguagem C, sabendo que o comando for apresenta a seguinte forma geral:

for (inicialização;condição;incremento) declaração;

Alternativas
Comentários
  • O comando de fluxo for só funciona se tiver inicialização, condição e, incremento ou decremento; Ou seja, mesmo se não tiver declaração alguma o programa funciona.

    A resposta certa é letra B

  • O nosso colega caractere$ Sublinhado equivocou-se ao afirmar que o comando de fluxo for funciona se tiver inicialização, condição e incremento.

    Segundo o mestre André Backes em Linguagem C:completa e descomplicada, pág.97:

    "Dependendo da situação em que o comando for é utilizado, podemos omitir qualquer uma de suas cláusulas:

    -Inicialização;

    -Condição;

    -Incremento.

    Independentemente de qual cláusula é omitida, o comando for exige que se coloquem os dois operadores de ponto e vírgula (;)."

    O mestre André Backes demonstra, nesse mesmo livro, alguns exemplos do comando for com cláusulas omissas:

    for ( ;a<=b;a++) ------------- comando for sem inicialização (pág.98).

    for (c=a; ;c++) --------------- comando for sem condição (pág.99).

    for (c=a;c<=b; ) ------------- comando for sem incremento (pág.99).



  • Uma declaração for válida em C poderia ser for( ; ; ) { }

     

    Portanto a correta é a B.

  • Vale acrescentar uma informação sobre o continue:

    "A instrução continue é um comando de desvio incondicional. Sua utilização dentro de um laço faz com que a execução da instrução atual (ou bloco de instruções atual) seja interrompida e passa para a próxima iteração do laço."

    Ou seja, o continue "roda o loop" obrigatoriamente.

    Fonte: linguagemc.com.br


ID
700153
Banca
FUNIVERSA
Órgão
PC-DF
Ano
2012
Provas
Disciplina
Programação
Assuntos

São palavras-chave da linguagem C no padrão ANSI e, portanto, não podem ser utilizadas como nomes para variáveis

Alternativas
Comentários
    • a) typedef, master, core, newline. (perceba que apenas new é palavra reservada)
    • b) union, extern, main, core.
    • c) int, long, static, void.
    • d) Float, Long, Core, Continue.
    • e) signed, unsigned, master, main.

    CURIOSIDADE: do, re, mi, fa, sol, la, si também sao palavras reservadas em C! 

    Bons estudos!!!
  • Lista de palavras reservadas da linguagem C
     
    asm: Indica instruções em assembly.

    auto: Define a classe de armazenamento padrão, ou seja , a variável é criada quando a função é invocada e depois é destruída quando a função termina.

    break: Comando para forçar a saída imediata dos comandos switch, for, while, e , do…while.

    case: Utilizado dentro do comando switch para selecionar uma constante.

    char: Tipo de dados utilizado para armazenar caracteres.

    const: Impede que uma variável seja modificada, criando assim uma constante.

    continue: Força a interrupção dos loops for , while , ou do…while fazendo com que passem para a próxima iteração.

    default: É utilizado dentro de switch…case para tratar valores não definidos anteriormente nas opções case.

    do: Estutura de repetição usada em conjunto com o while . O comando do…while faz com que os comandos do bloco a ser repetido sejam executados no mínimo uma vez.

    double: Tipo de dados numérico de ponto flutuante com precisão dupla.

    else: Indica um bloco de comandos a ser executado quando a condição do comando if for falsa.

    enum: Tipo de dados definido pelo programador que permite a definição de constantes

    extern: Indica que uma variável foi declarada em outro arquivo.

    float: Tipo de dados de ponto flutuante com precisão simples.

    for: Estrutura de repetição que utiliza condições e contador.

    goto: Comando que permite “saltar” incondicionalmente para uma posição do programa pré-deteminada.

    if: Comando condicional que altera o fluxo do programa de acordo com uma condição que pode ser verdadeira ou falsa.

    int: É o tipo de dados mais usado para armazenar valores inteiros.

    long: É um tipo de dados usado para armazenar valores inteiros que possui precisão superior ao tipo int..

    register: Solicita o armazenamento diretamente nos registradores do processador.

    return: Retorna um valor dentro de uma função ou força o abandono da mesma.

    short: É o chamado inteiro curto. Armazena valores inteiros com precisão menor (apenas 2 bytes) do que o tipo int.

    signed: Sinaliza que uma variável pode armazenar tanto valores positivos como negativos.

    sizeof: Comando usado para retornar o tamanho em bytes de um determinado tipo de dados.

    static: Comando que avisa ao compilador para reter o valor de uma determinada variável.

    struct: Cria as chamadas estruturas ou seja registros.

    switch: Comando de seleção usando em conjunto com o comando case, permite escolher entre várias opções.

    typedef: É um comando modificador usado para criar novos nomes para tipos de dados.

    union: Permite que um conjunto de variáveis partilhem o mesmo espaço na memória.

    unsigned: Faz com que a variável apenas aceite valores positivos ou zero.

    void: Comando que indica que a função não retorna nada ou que não tem parâmetros de entrada.

    volatile: Indica que uma variável pode ser alterada.

    while: Estrutura de repetição que executa enquanto uma condição é verdadeira.

    Fonte: http://linguagemc.com.br/lista-de-palavras-reservadas-em-c/


ID
749491
Banca
VUNESP
Órgão
TJM-SP
Ano
2011
Provas
Disciplina
Programação
Assuntos

Em relação à linguagem de programação C#, considere as seguintes afirmações referentes às suas características gerais.

I. Suporta herança múltipla.

II. Um construtor é estático.

III. variant não é uma palavra-reservada.

Sobre as afirmações, está correto o contido em

Alternativas
Comentários
  • Prezados,

    O C# não suporta herança múltipla, entretanto podemos usar várias interfaces para simular a herança múltipla.
    C# possui construtores estáticos.
    No VB existe a variant, que é um tipo que engloba vários tipos de dados , entretanto , não temos mais ele no C#. 


    Portanto a alternativa correta é a letra D

  • Herança Múltipla só existe em C++ e Python.


ID
749494
Banca
VUNESP
Órgão
TJM-SP
Ano
2011
Provas
Disciplina
Programação
Assuntos

Na linguagem de programação C#, para um objeto poder ser utilizado em um bloco using, deve-se, obrigatoriamente, implementar a interface

Alternativas
Comentários
  • Interface IDisposable:


    "Define um método para liberar recursos alocados."

    "Observe que você pode usar a declaração de using (Using no Visual Basic) em vez do padrão de try/finally ."


    Fonte: http://msdn.microsoft.com/pt-br/library/system.idisposable(v=vs.110).aspx

  • Prezados,

    A interface IDisposable fornece um mecanismo para liberar recursos não gerenciados.
    O Using garante que Dispose é chamado, mesmo se ocorrer uma exceção enquanto você está chamando métodos no objeto, portanto, todos os objetos utilizados em um bloco using devem implementar a interface IDisposable.


    Fonte : https://msdn.microsoft.com/pt-br/library/system.id...(v=vs.110).aspx
    https://msdn.microsoft.com/pt-BR/library/yh598w02....

    Portanto a alternativa correta é a letra B.


ID
754492
Banca
Marinha
Órgão
Quadro Complementar
Ano
2011
Provas
Disciplina
Programação
Assuntos

Na linguagem de programação C, o conjunto de inteiros chamados de constantes que especifica todos os valores que uma variável do seu tipo pode ter é denominado de

Alternativas

ID
754960
Banca
VUNESP
Órgão
TJM-SP
Ano
2011
Provas
Disciplina
Programação
Assuntos

Na linguagem de programação C#, quando se deseja formatar para exibição, a hora atual, deve-se utilizar o comando:

Alternativas
Comentários
  • Prezados,

    DateTime. Now serve para obter um objeto DateTime com a data e hora corrente, ajustado para sua timezone.
    Com esse objeto, ao chamar o método toString ele exibe a data atual no formato especificado (24 horas e minutos )

    Fonte : https://msdn.microsoft.com/pt-br/library/zdtaw1bw(v=vs.110).aspx

    Portanto a alternativa correta é a letra D.


ID
771109
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Programação
Assuntos

Em códigos de programas, é muito comum o uso de estruturas condicionais para que determinado código seja executado mediante o atendimento de determinada condição.

Julgue os itens que se seguem, a respeito dessas estruturas.

Na linguagem C, a estrutura for realiza basicamente a seguinte sequência: primeiro, uma variável é inicializada; segundo, uma condição é checada; se a condição é satisfeita, então um trecho de código é executado e, em seguida, a variável é incrementada ou decrementada segundo a declaração do código; então, a condição é checada novamente e o ciclo se repete enquanto a condição for satisfeita.

Alternativas
Comentários
  • Gabarito Certo

    By the Book.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
800758
Banca
Exército
Órgão
EsFCEx
Ano
2011
Provas
Disciplina
Programação
Assuntos

Considere a seguinte declaração em linguagem C:
int n = 30;

A instrução printf ( "%d", ++n<<3>>((n>30)?3:1)); irá retornar:

Alternativas
Comentários
  • Basta rodar o codigo abaixo:
    #include
    int main()
    {
        printf ( "%d", ++n<>((n>30)?3:1));
        return 0;
    }

    Resposta: 31

  • Vamos analisar a questão:

    int n = 30; // n é declarado como um inteiro de valor 30;


    ++n << 3 >> ( ( n > 30 ) ? 3 : 1 ) )  ==> n é incrementado em 1 valor ficando com 31;


    ++n << 3 >> ( ( n > 30 ) ? 3 : 1 ) )  ==> em n é executado a operação de carry (deslocamento de 3 posições para esquerda);

     

    ++n << 3 >> ( ( n > 30 ) ? 3 : 1 ) )  ==> é executado um operador ternário, se n for maior que 30, então n recebe o valor de 3, caso contrário, recebe o valor de 1; // Como n é igual a 31, recebe o valor de 3;

     

    ++n << 3 >> 3  ==> em n é executado a operação de carry (deslocamento de 3 posições para direita), pois foi o resultado do operador ternário no passo anterior;

     

    por fim, é impresso o valor de n que é igual a 31;

     

     

    O processo do carry:

    valor 31 em binário, representado com 8 bits:

    0 0 0 1 1 1 1 1

    1 1 1 1 1 0 0 0 ( << 3 ) deslocamento 3 posições esquerda

    0 0 0 1 1 1 1 1 ( >> 3 ) deslocamento 3 posições direita;

     


ID
813031
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Programação
Assuntos

Sobre a linguagem C# assinale a alternativa correta.

Alternativas

ID
813463
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Programação
Assuntos

Sobre a linguagem C, é correto afirmar que

Alternativas

ID
814480
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Programação
Assuntos

Analise o seguinte trecho do código C#:
(...)
01 double x= 1432. 7;
02 int y;
03 y= ( int) x;
(...)
Sobre a linha 03 do código apresentado, é correto afirmar que

Alternativas

ID
814492
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Programação
Assuntos

Em C#, os métodos chamados pelo mecanismo de execução do programa quando o objeto está prestes a ser removido da memoria são denominados de

Alternativas

ID
900883
Banca
CESGRANRIO
Órgão
BNDES
Ano
2013
Provas
Disciplina
Programação
Assuntos

As linguagens de programação C, Haskell e Ruby são, respectivamente, exemplos dos paradigmas

Alternativas

ID
913795
Banca
FCC
Órgão
DPE-SP
Ano
2013
Provas
Disciplina
Programação
Assuntos

Analise o código a seguir retirado de uma aplicação desenvolvida com C#:

interface IDimensions
{
float Length();
float Width();
}
class Box : IDimensions
{
float lengthInches;
float widthInches;
public Box(float length, float width)
{
lengthInches = length;
widthInches = width;
}
float IDimensions.Length()
{
return lengthInches;
}
float IDimensions.Width()
{
return widthInches;
}
public static void Main()
{
Box myBox = new Box(30.0f, 20.0f);
IDimensions myDimensions = (IDimensions) myBox;
System.Console.WriteLine("Length: {0}", myBox.Length());
System.Console.WriteLine("Width: {0}", myDimensions.Width());
}
}


Sobre o código apresentado é correto afirmar que a instrução

Alternativas
Comentários
  • Alguém comenta?

  • Formatação ordinaria de quem transcreveu

  • interface IDimensions

      {

        float Length();

        float Width();

      }

      class Box : IDimensions

      {

        float lengthInches;

        float widthInches;

        public Box(float length, float width)

        {

          lengthInches = length; widthInches = width;

        }

        float IDimensions.Length()

       {

          return lengthInches;

        }

        float IDimensions.Width()

        {

          return widthInches;

        }

        public static void Main()

        {

          Box myBox = new Box(30.0f, 20.0f);

          IDimensions myDimensions = (IDimensions)myBox;

          System.Console.WriteLine("Length: {0}", myBox.Length());

          System.Console.WriteLine("Width: {0}", myDimensions.Width());

        }

      }

    Linha Correta seria: System.Console.WriteLine("Length: {0}", myDimensions.Length());

    Gab D: produzirá um erro de compilação porque um membro de uma interface que é explicitamente implementado não pode ser acessado a partir de uma instância de classe, mas apenas através de uma instância da interface.


ID
928573
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Julgue os itens que se seguem, acerca da programação em
linguagem C.

O seguinte código não tem erros de sintaxe, e sua execução resulta na apresentação dos valores 10, 24 e 18.

#include <stdio.h>
int main(int argc, char *argv[])
{
       int a = 3, b = 2, c;
       c = (a > b) ? a : b;
       while (b < 5) {
           a = 0;
           while (a < 3) {
               a++;
               if (a == 2) continue;
               c++;
       }
       if(b == 4) break;
       b++;
       c++;
}
switch(a) {
       case 1 : b++;
       case 2 : b++;
       case 3 : b++;
case 4 : b++;
}
for (;a < 10; a++) c++;
do {
       b = b + c;
   } while (b < c);
   printf ("%d %d %d\n", a, b, c);
}

Alternativas
Comentários
  • isso não é um erro de sintaxe for (;a < 10; a++) c++; 

    ???Alguém pode comentar?
  • Jovem,

    Não é um erro de sintaxe e te garanto que compila e executa(acabei de testar com a gcc aqui). :)

    A única coisa que o autor desta questão fez foi suprimir o primeiro parametro do FOR, que é o de inicialização. Exemplo for(a=1, a< 10, a++). Se este campo for suprimido, constando apenas o ; no início dos parametros do for ainda sim irá rodar.

    Apenas não há uma atribuição inicial a uma variável. Como elas já vinham sendo alteradas em outras etapas do programa, você precisará calcular o valor de a antes de entrar neste laço.

    Valeu
  • Errei porque vi a ausência do return 0 na função main. Como a declaração é int main, inferi que o retorno era obrigatório, mas o programa compila sem erros.

ID
928576
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Julgue os itens que se seguem, acerca da programação em
linguagem C.

O seguinte código não tem erros de sintaxe e sua execução resulta na apresentação de B, A, Natal e Amparo.

#include <stdio.h>
enum cidades {
      Recife,
      Natal
};
union capitais {
      enum cidades capitalA;
      enum cidades capitalB;
};
typedef struct {
      char *rua;
      enum cidades cidade;
} endereco;
int main(int argc, char *argv[]) {
      char matriz[] = {'A','B'},(*ptrA)[2],*ptrB;
      ptrA = &matriz;
      printf("%c\n", (*ptrA)[1]);
      ptrB = "BRASIL";
      ptrB++;
      ptrB++;
      printf("%c\n",*ptrB);
      union capitais varA;
      varA.capitalA = Natal;
      printf("%d\n", varA.capitalB);
      endereco varB = {"Amparo", Recife}, *ptrC;
      ptrC = &varB;
      printf("%s\n", ptrC->rua);
}

Alternativas
Comentários
  • O seguinte código não tem erros de sintaxe (OK) e sua execução resulta na apresentação de B, A, Natal e Amparo. (ERRADO)

    A saída correta é:
    B,A,1,Amparo

ID
928579
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Julgue os itens que se seguem, acerca da programação em
linguagem C.

O seguinte código não tem erros de sintaxe e sua execução resulta na apresentação dos valores 22, 28 e 34.

#include <stdio.h>
int funcao(int a, int *b) {
     static int c = 5;
     int d = 3;
    *b = *b + 5;
a++, c++, d++;
return (a + *b + c + d);
}
int main(int argc, char *argv[]) {
     int a = 2,b = 4,(*ptr)(int,int*);
     ptr = funcao;
     printf("%d\n",(*ptr)(a,&b));
     printf("%d\n",(*ptr)(a,&b));
     printf("%d\n",(*ptr)(a,&b));
}

Alternativas
Comentários
  • Correto. Repare que a variável c dentro da função foi declarada como static, logo o valor dessa variável é mantido de uma chamada pra outra. Fazendo um tracing do valor das variáveis, antes do return da função:

    Valor de a,b,c,d na 1a chamada: 3     9  6  4
    soma = 22
    Valor de a,b,c,d na 2a chamada: 3   14  7  4   #Veja que o valor de c não foi restaurado (como ocorreu com d), foi mantido em 6 e incrementado para 7
    soma = 28                                                       
    Valor de a,b,c,d  na 3a chamada: 3  19  8  4
    soma = 34

    Assim como ocorre com c, o valor de b não é restaurado, mas o motivo é diverso: o endereço desta variável é passado para a função, fazendo com que as mudanças persistam mesmo após o retorno.
    Obs.: com todo respeito, elevei o comentário para o nível de analista. Se alguém não compreender, posso explicar com mais detalhes.

ID
932977
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Acerca das linguagens C, Python e Perl, julgue os próximos itens.

A diretiva import <Python.h>, quando utilizada na linguagem C, deve ser incluída após todos os cabeçalhos, uma vez que o Python pode resolver definições pré-processáveis contidas nesses cabeçalhos.

Alternativas
Comentários
  • creio que não seja "após todos os cabeçalhos" 

  • ERRADO

    PODE ser incluída

    import sound.effects.echo

    from sound.effects import *


ID
933205
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Acerca das linguagens de programação, julgue os itens subsequentes.

A seguir, mostra-se atribuições corretas para armazenar, na linguagem C, os valores 22 e LCD na 3.a coluna da 6.a linha de uma matriz, considerando a posição zero para as linhas e colunas.

produto eletro[8][4]

eletro[6][3].codigo = 22;

strcpy (eletro[6][3].descrição, "LCD");



Alternativas

ID
933208
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2010
Provas
Disciplina
Programação
Assuntos

Acerca das linguagens de programação, julgue os itens subsequentes.

As linguagens Perl e Python são dinamicamente tipadas, ou seja, o tipo da variável é definido em tempo de execução. As linguagens C e Java são estaticamente tipadas, ou seja, o tipo de variável é definido em tempo de compilação.

Alternativas
Comentários
  • Para quem não entende os comentários sem o gabarito e não tem acesso a resposta.

    Gaba: CERTO

    Java, C♯, Fortran e Cobol são fortemente tipificadas (vc tem q definir o tipo dela antes)

    Exemplo de programa em C: 

    int a; ( declara a variável "a" como inteiro )

    a = 3 + 2; ( soma 3 com 2) 

     

    agora em Python é um pouco diferente, pq vc não precisa declarar a variavel antes, ele "entende" o que vc quer

    "Python são dinamicamente tipadas"

    se vc escrever: 4 ele entende como inteiro, se vc escrever 'teste' ele entende como texto vc nem precisa declarar nada pra ele entender.

  • Linguagens fortemente tipadas (ou linguagens fortemente tipificadas) são aquelas em que todas as variáveis tem um tipo específico e seus tipos são importantes para a linguagem. Java, C♯, Fortran e Cobol são exemplos deste tipo de linguagem. Normalmente as linguagens fortemente tipadas também são estaticamente tipadas, o que significa que uma vez que a variável foi declarada com um tipo ela será até o seu fim do mesmo tipo e também normalmente possuem declaração explicita de tipo onde o tipo da variável deve ser especificado logo na sua declaração.

     

  • Java: Tipagem forte e estática;

    C: Tipagem fraca;

    Python: Tipagem forte e dinâmica;

    Pascal: Tipagem forte;

    C#: Tipagem estática.

    Quanto a classificação:

    Fortemente tipada: Não permite o mesmo dado ser tratado como se fosse outro tipo de dados um int não pode ser tratado como se fosse double, por exemplo;

    Fracamente tipada: Em que a conversão de tipos é implícita;

    Tipagem estática: Possibilita checagem do tipo em tempo de compilação e o tipo de dado é declarado explicitamente;

    Tipagem dinâmica: Seus objetos recebem tipos diferentes durante seu ciclo de  vida e devem sempre esperar qualquer tipo de dados.

    https://tecnologiadacomputacao.wordpress.com/2017/04/08/tipagem-de-linguagens-de-programacao/

  • Assertiva C

    As linguagens Perl e Python são dinamicamente tipadas, ou seja, o tipo da variável é definido em tempo de execução. As linguagens C e Java são estaticamente tipadas, ou seja, o tipo de variável é definido em tempo de compilação.

  • GABARITO CORRETO

    Linguagem de tipagem dinâmica: permite a alteração de tipo de variável durante a execução do código-fonte.

    Linguagem de tipagem forte: não possui a conversão implícita dos tipos de variáveis, anteriormente é necessário a conversão para realizar a ação necessária.

  • Vou explicar o motivo de eu ter marcado 'ERRADO'.

    >o tipo de variável é definido em tempo de compilação.

    >tempo de compilação

    Eu realmente achava que a variável fosse definida no momento de sua declaração e não na compilação. Eu sei o que é uma linguagem tipada forte e uma dinâmica, mas errei por achar que era definida no momento da declaração (ex: int a = 10) e não na compilação (a = 10).

  • Linguagens dinamicamente tipadas não é necessário especificar o tipo da variável para executar o programa.

    Ex: Python => a = 2 a linguagem reconhece o tipo, que nesse caso é int.

    Para descobrir um tipo de uma variável,em Python, basta digitar o comando => print (type(a))

    Linguagens estaticamente tipadas é necessário definir o tipo da variável antes da compilação.

    Ex: java => int x = 2;


ID
946954
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2013
Provas
Disciplina
Programação
Assuntos

Julgue os itens subsecutivos, referentes a tecnologias de desenvolvimento móvel.

Como o iOS não implementa um sistema de garbage collection, o Objective-C mantém um contador de referência para os objetos de forma a viabilizar a liberação de memória de tal objeto.

Alternativas
Comentários
  • https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/MemoryManagement.html

    Garbage collection não está disponível no iOS

  • o iOS não implementa um Garbage Collector, mas o Objective-C possui um Automatic Reference Counting (ARC) para liberar a memória

  • Não é da estrutura do iOS a implementação do Garbage Collection, porém, o Objective-C dispõem de uma (ARC), Automatic Reference Counting, que é usado para a liberação de memória.

    Resposta: Certo

  • Questão desatualizada, fiquem atentos...


ID
947248
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2013
Provas
Disciplina
Programação
Assuntos

Julgue os itens abaixo, referentes à linguagem C.

Por meio da biblioteca ctype.h, utilizando a função toupper em um programa, pode-se converter um caractere minúsculo em maiúsculo.

Alternativas
Comentários
  • Fonte: http://www.tiexpert.net/programacao/c/ctype.php

    Correto. Através da função "toupper" existente na biblioteca CTYPE podemos trabalhar com carateres, transformando 
    minúsculo em maiúsculo na linguagem C e C++. O inverso tambem pode ser feito por meio da função "tolower".

ID
947251
Banca
CESPE / CEBRASPE
Órgão
SERPRO
Ano
2013
Provas
Disciplina
Programação
Assuntos

Julgue os itens abaixo, referentes à linguagem C.

O código abaixo sairá do loop quando o usuário digitar 8.

#include <stdio.h>
#include <conio.h>

int main (void)
{
    int n;
    while (1)
    {
        printf("Digite um numero inteiro: ");
    scanf("%d", &n);
        if (n == 8)
    {
        printf("Saindo do loop...\n");
    }
        printf("Numero: %d\n",n);
  }
  printf("Fim");
  getch();
  return(0);
}

Alternativas
Comentários
  • O bloco while ficara no loop gerando um erro de Timeout pois não existe um "break" para parar o while quando for digitado o número "8",
    so a impressão na tela "
    Saindo do loop...".
  • O cara que elabora uma questão desta, e um c.....

  • errado- a ausência de break faz com que a condição do loop sempre seja V, o que faz com que a condição nunca saia do loop. 


ID
1035364
Banca
CESPE / CEBRASPE
Órgão
PEFOCE
Ano
2012
Provas
Disciplina
Programação
Assuntos

A respeito de linguagens e ambientes de programação, julgue os itens subsequentes.

Em C, as expressões que referenciam locais da memória podem assumir o tipo array, tipos incompletos, e tipos declarados com o atributo const.

Alternativas
Comentários
  • Não existe tipo "array" nem tipo "incompleto" em C.


ID
1043791
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2013
Provas
Disciplina
Programação
Assuntos

Acerca de lógica de programação, algoritmos, tipos de dados e variáveis, julgue os itens a seguir.


Utilizando-se variáveis podem- se armazenar dados de um programa em memória. Na linguagem C, uma variável global pode ser declarada e definida múltiplas vezes dentro e fora do programa.

Alternativas
Comentários
  • "Na linguagem C, uma variável global pode ser declarada e definida múltiplas vezes dentro e fora do programa."

    Variáveis globais podem ser utilizadas por qualquer função. E qualquer função pode alterar o valor, utilizá-la em um processo ou até mesmo atribuir o valor que quiser. Porém são declaradas apenas uma vez!!!


ID
1092238
Banca
CESPE / CEBRASPE
Órgão
INPE
Ano
2008
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, acerca da linguagem C.

return e long são consideradas palavras reservadas.

Alternativas

ID
1092241
Banca
CESPE / CEBRASPE
Órgão
INPE
Ano
2008
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, acerca da linguagem C.

Por não serem consideradas palavras reservadas, longint e struct podem ser utilizadas como nome de variáveis.

Alternativas
Comentários
  • Struct é reservado

  • longint pode ser um variável em c, por que a forma correta dessa palavra chave é "long int", é obrigatório um espaço entre long e int.


ID
1112107
Banca
FCC
Órgão
TRF - 3ª REGIÃO
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considerando a linguagem C# e o programa em C#, é correto afirmar:

Alternativas

ID
1119937
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere as seguintes linguagens de programação:

                          C C++ C# Java VB.NET SmallTalk Python

Dessa lista, a linguagem que não oferece suporte a orientação objetos é :

Alternativas
Comentários
  • Pfvr, caia na minha prova kkkk

  • Muitas das linguagens de programação mais utilizadas atualmente (talvez a maioria) são multi-paradigma com suporte à POO. C++, C#, VB.NET, Java, Object Pascal, Objective-C, Python, SuperCollider, Ruby e Smalltalk são exemplos de linguagens de programação orientadas a objetos. ActionScript, ColdFusion, Javascript, PHP (a partir da versão 4.0), Perl (a partir da versão 5), Visual Basic (a partir da versão 4), VimL (ou Vim script) são exemplos de linguagens de programação com suporte a orientação a objetos. Vivace[3] é um exemplo de linguagem sem suporte à POO.

  • Prezados, 

    A linguagem C ainda é uma linguagem não orientada a objetos. O C++ entrou como linguagem que usa uma sintaxe baseada no C , mas com o suporte a orientação a objetos.

    Portanto a alternativa correta é a letra A



ID
1167817
Banca
FAFIPA
Órgão
UFFS
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considerando a linguagem de programação "C", para uma variável armazenar "números de ponto flutuante", deve ser declarada como:

Alternativas
Comentários
  • Uma variável do tipo real é definida através dos termos double ou float

     

    char: Guarda um caracter;

    int: Guarda um número inteiro;

    float: Guarda um número real com certa precisão;

    double: Guarda um número real com precisão maior que float;

    void: Tipo vazio.


ID
1190305
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Programação
Assuntos

Na linguagem C#, a forma correta para inicializar um array de inteiros de cinco posições, com os números de 1 até 5 é

Alternativas
Comentários
  • outra maneira seria :

    int [ ] Inteiros = new int[5]{1,2,3,4,5};

    e outra :

    int [ ] Inteiros = new int[5];

    array[0] = 1;

    array[1] = 2;

    array[2] = 3;

    array[3] = 4;

    array[4] = 5;


ID
1190308
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere o código escrito na linguagem C# mostrado a seguir

                                          using System.IO;
                                          using System;

                                          public class Veiculo
                                         {   public virtual void mover()  
                                             { Console.Write("Movendo"); 
                                             }
                                         }
                                         public class Automovel:Veiculo 
                                        {    public override void mover()  
                                             { Console.Write("Acelerando"); 
                                             }
                                        }
                                        public class Fusca:Automovel
                                       {    public override void mover() 
                                          {   Console.Write ("Passeando"); 
                                           }
                                        }
                                        class Program
                                       {  static void Main() 
                                           { Veiculo veiculo = new Fusca();  
                                              veiculo.mover(); 
                                           }
                                       }


O resultado produzido pela execução desse código é :

Alternativas
Comentários
  •  

    A primeira impressão é Movendo ai vem um override e "passa por cima" do movendo e vira, Acelerando.

     

    Que por sua vez, vem outro override e volta a "passar por cima do Acelerando, Ficando somente a impressão "Passeando".

     

    public class Veiculo

                                             {   public virtual void mover()  

                                                 { Console.Write("Movendo"); 

                                                 }

                                             }

                                             public class Automovel:Veiculo 

                                            {    public override void mover()  

                                                 { Console.Write("Acelerando"); 

                                                 }

                                            }

                                            public class Fusca:Automovel

                                           {    public override void mover() 

                                              {   Console.Write ("Passeando");


ID
1209316
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Programação
Assuntos

No que se refere às linguagens de programação e a scripts, julgue os itens subsequentes.

O comando em linguagem C apresentado abaixo é um tipo de laço que pode ser finalizado com o comando break; portanto, esse comando não tem garantia de laço infinito.

for (;;) printf ("Exemplo de laço infinito.\n") ;

Alternativas
Comentários
  • jurava q esses parametros opcionais no for eram permitidos somente em Java

  • Gabarito Certo

    O comando break permite um controle adicional sobre os laços de repetição, de forma que ele possa ser interrompido antes da condição ser satisfeita. Este comando normalmente é utilizado após um comando condicional que testa uma segunda condição para o fim do laço. 
     

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
1226809
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Programação
Assuntos

No que se refere à lógica e à programação, julgue os itens que se seguem.

Para que a máquina entenda os comandos de um programa desenvolvido na linguagem C, o programa deve ser compilado e traduzido para a linguagem da máquina.

Alternativas
Comentários
  • Correto. Uma linguagem de programação produz um arquivo de textos que não pode ser executado. Ele precisa ser compilado, transformado em executável, e então ser executado até em máquinas que não possuam a linguagem de programação original.

  • Certo.

    A máquina entender comandos de um programa desenvolvido na linguagem C só poderá acontecer quando esse programa for compilado e traduzido para a linguagem dela (da máquina).


ID
1337227
Banca
FGV
Órgão
TJ-GO
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere a função G a seguir, codificada na linguagem de programação C:

void G (int n, int x, int y)
{
        int i, z;

        printf ("%d %d", x, y);

        i = 0;
        while (i < n-2)
       {

               z = x + y;
               printf (" %d", z);
               x = y;
               y = z;
               i = i + 1;

        }

        printf ("\n");

}


Para que sejam impressos os 10 primeiros termos da Sequência de Fibonacci

0 1 1 2 3 5 8 13 21 34,

a chamada correta para a função G é:

Alternativas
Comentários
  • gabarito letra a (10,0,1)

    os primeiros valores impressos são 0 e 1 que se referem a X e Y.

    quando i = 0, imprime 1
    quando i = 1, imprime 2
    quando i = 2, imprime 3
    quando i = 3, imprime 5
    quando i = 4, imprime 8
    quando i = 5, imprime 13
    quando i = 6, imprime 21
    quando i = 7, imprime 34, a condição de verificação é (ilogo n-2 = 8 => n = 10

  • Outra forma de resolver, bem simples.

    n = quantidade de números. Como são 10 números na sequência, então n = 10.

    x e y são os números iniciais, que são 0 e 1.


ID
1337233
Banca
FGV
Órgão
TJ-GO
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere a função seguinte, codificada na linguagem de programação C:

int F (int a, int b)
{

      while (a > 0 && b > 0)
       {

             if (a > b)
                  a = a – b;
            else
                  b = b – a;

        }

        return a + b;
}

Na execução da função F, o maior número de iterações ocorre com a chamada:

Alternativas
Comentários
  • while (a > 0 && b > 0)

    if (a > b)

    Isso quer dizer que ‘b’ é maior que zero e ‘b’ não pode ser maior que ‘a’ e ‘a’ é maior que zero, ou seja, a > b = 2 > 1

    a = a – b

    a = 1 -1

    a = 0

     

    b =b – a

    b = 1 - 0

    b =1

     

    return = 0 +1

    return = 1

    F (18,1)


ID
1337236
Banca
FGV
Órgão
TJ-GO
Ano
2014
Provas
Disciplina
Programação
Assuntos

Na linguagem C, uma lista sequencial com n elementos pode ser armazenada em um vetor, ocupando as posições cujos índices variam de 0 a n-1. Considere o seguinte algoritmo de pesquisa, denominado busca com sentinela:

int pesquisa (int vet[], int n, int chave)
{

   int ind;

   vet[n] = chave;      /* sentinela */

   ind = 0;
   while (vet[ind] != chave)
        ind = ind + 1;

    if (ind == n)
      return –1;      /* Não encontrou * /
   else
       return ind;   /* Encontrou */
}

Sobre essa implementação do algoritmo de busca com sentinela, analise as afirmativas a seguir:

I. Para que ela funcione corretamente, é necessário que o vetor vet contenha, pelo menos, n+1 posições, sendo as n primeiras (de 0 a n-1) ocupadas pelos elementos e a última, vaga, que abrigará a sentinela.

II. Nesta implementação, o algoritmo tem seu pior desempenho quando o valor de chave não se encontra em nenhuma das posições de 0 a n-1 de vet; em outras palavras, quando chave não pertence à lista.

III. Se o valor de chave se encontra armazenado na posição t de vet, sendo 0 ≤ t < n, são realizadas exatamente t comparações envolvendo chave até localizá-la.

Está correto somente o que se afirma em:

Alternativas
Comentários
  • I - Correta

    II- Correta

    III - Se o valor de chave se encontra armazenado na posição t de vet, sendo 0 ≤ t < n, são realizadas exatamente t comparações envolvendochave até localizá-la.

          Imaginemos que um vetor n de tamanho 5 armazena o valor procudado na ultima posição.

          Posição 0 -> Um valor;Posição 1 -> Um valor; Posição 2 -> Um valor; Posição 3 -> Um valor;Posição 4 ->  VALOR PROCURADO

          Então: 0 ≤ t < n é igual a 0≤4

          Sendo assim, o erro da questão estão em dizer que são realizadas t comparações. O correto seria "t+1 comparações".


ID
1340263
Banca
CESPE / CEBRASPE
Órgão
BACEN
Ano
2013
Provas
Disciplina
Programação
Assuntos

No que se refere a linguagens e ambientes de programação Java, C# e paradigma de programação orientada a objetos, julgue o  item  subsequente.

Em C#, o operador ?? é denominado operador de concentração de nulo e é usado para definir um valor padrão para tipos de valor anulável ou tipos de referência. No exemplo abaixo, caso a variável num seja nula, o valor de x será igual a 1. int x = num ?? 1;

Alternativas
Comentários
  • como se fosse o ternário do Java, é isso?

  • Item correto, abaixo a referência:

    https://msdn.microsoft.com/en-us/library/ms173224.aspx?f=255&MSPPError=-2147217396


  • Gabarito: CERTO

    O operador NULL-COALESCING pode ser usado para substituir valores nulos por outros valores default.

  • uh mais fácil que pegar leão a unha
  • se estamos aqui é porque estamos fazendo oque poucos estão ,ou seja estudando, vamos nessa vontade até passar

ID
1340272
Banca
CESPE / CEBRASPE
Órgão
BACEN
Ano
2013
Provas
Disciplina
Programação
Assuntos

No que se refere a linguagens e ambientes de programação Java, C# e paradigma de programação orientada a objetos, julgue o  item  subsequente.

Considere a seguinte classe desenvolvida em C#.


          class Teste 
          { 
                static void Main() 
               { 
                   int num = 1; 
                  while (num++ < 6) 
                  { 
                    Console.WriteLine ("num é = {0}", num); 
                   } 
                }
           }



Nessa situação, essa classe produz o seguinte resultado:
num é = 1
num é = 2
num é = 3
num é = 4
num é = 5

Alternativas
Comentários
  • Já no primeiro teste do while  a variável num vai ser incrementada para 2 no num++.

    Então a primeira saída do resultado não poderia nunca ser 1.

  • Como o incremento está do lado direito da variável, o programa compara depois incrementa.

    O resultado será:

    num é = 2 

    num é = 3 

    num é = 4 

    num é = 5

    num é = 6

  • A malícia da questão está no fato de que dentro de um bloco for a saída seria exatamente a exibida na questão.

    Por exemplo, vejam o seguinte trecho de código:

     for(int i = 1; i < 6; i++) {
        System.out.println("num é = " + i); }

    A saída é:

    num é = 1
    num é = 2
    num é = 3
    num é = 4
    num é = 5

    A diferença é que o operador de incremento posterior num++ dentro de um bloco while será computado logo após o teste ser realizado e as instruções do bloco já conterão o valor incrementado. Já o mesmo operador, dentro de um bloco for, devido à natureza do próprio comando será avaliado somente APÓS as instruções dentro do bloco for serem executadas. Isso é tão verdade que se mesmo utilizando um operador pré incremento, o resultado seria o mesmo. Vejam o exemplo:

    for(int i = 1 (1° PASSO ÚNICO) ; i < 6 (2° PASSO); ++i (4° PASSO)) {
     System.out.println("for   ==> num é = " + i); (3° PASSO)  }

    A saída é:

    num é = 1
    num é = 2
    num é = 3
    num é = 4
    num é = 5

    Ou seja, o mesmo resultado. Reparem na ordem de execução do bloco for mostrada acima. Por este motivo, utilizar um operador de pré ou pós incremento tanto faz dentro de um bloco for com esta estrutura demonstrada. Os passos 2, 3 e 4 se repetem, na mesma ordem, de acordo com a quantidade de condições a serem avaliadas. Por último, se quisséssemos o mesmo resultado dentro de um bloco while, utilizar um operador de pré incremento nos levaria à mesma saída exibida na questão, tendo apenas que alterar o valor de entrada da variável num para zero. Vejam:

    int num = 0;
    while (++num < 6)
    {  System.out.println("while ==> num é = " + num);  }

    A saída é:

    num é = 1
    num é = 2
    num é = 3
    num é = 4
    num é = 5

    Isso acontece porque no while o incremento será realizado antes da avaliação da condição, depois a condição será avaliada e por ultimo as instruções dentro do próprio bloco.


ID
1347019
Banca
FGV
Órgão
TJ-GO
Ano
2014
Provas
Disciplina
Programação
Assuntos

A função XOR a seguir, codificada na linguagem de programação C, calcula um byte de verificação para um dado pacote de tam bytes:


                      typedef unsigned char uchar;

                      uchar XOR (uchar pacote[ ], int tam)
                      { 
                          int i;    
                          uchar b = 0; 

                          for (i = 0; i < tam; i++) 
                              b = b ^ pacote[i]; /* ^ é OU EXCLUSIVO */ 

                          return b;
                      }



Um pacote de dois bytes, sendo o primeiro deles 2F (em hexadecimal), é submetido à função XOR, que produz o byte FF como resultado. Logo, o segundo byte do pacote é:

Alternativas
Comentários
  • Alguém entendeu a lógica da questão?

  • Não tenho ideia

  • Por engenharia reversa, meu raciocínio foi o seguinte:
    XOR tabela verdade
    0 0 - 0

    0 1 - 1

    1 0 - 1

    1 1 - 0

    Logo, 2F X ?? => FF 
    2F: 0010 1111 X ?? = 1111 1111
    Para que o resultado fosse FF, o ??, utilizando a tabela verdade XOR( resultado =1 se números forem diferentes), teria que utilizar algum byte que tivesse todos os bits diferentes do 2F:
    0010 1111 2F

    1101 0000 D0

    Logo 2F x D0 = FF

  • 2F => DECIMAL  => 47

    FF => DECIMAL => 255 

    Diante disso subtraimos o resultado gerado pelo valor do primeiro pacote:

    255 - 47 = 208 => HEXADECIMAL => D0

  • Essa questão não tem pé nem cabeça. A questão é omissa em dizer qual é o conteúdo do segundo byte do argumento pacote[ ], daí, poderia sair qualquer coisa!!!


ID
1398016
Banca
VUNESP
Órgão
PRODEST-ES
Ano
2014
Provas
Disciplina
Programação
Assuntos

Na linguagem de programação C#, a sintaxe correta para declarar um objeto do tipo Carro e produzir uma nova instância desse objeto é:

Alternativas

ID
1403959
Banca
FGV
Órgão
TJ-BA
Ano
2015
Provas
Disciplina
Programação
Assuntos

Observe o trecho inicial, criado no Visual Studio 2010 Ultimate, para uma aplicação de console escrita em C#.

                  using System;
                  using System.Collections.Generic;
                  using System.Linq;
                  using System.Text;

                  namespace ConsoleApplication1
                  {
                        class Program
                        {
                              static void Main(string[] args)
                              {
                              }
                        }
                  }

A diretiva using.System.Linq refere-se a um conjunto de padrões e artefatos destinados à:

Alternativas
Comentários
  • O namespace System.Linq fornece classes e interfaces que suportam consultas que utilizam Language-Integrated Query (LINQ).

    Fonte: https://msdn.microsoft.com/pt-br/library/system.linq%28v=vs.110%29.aspx


ID
1403962
Banca
FGV
Órgão
TJ-BA
Ano
2015
Provas
Disciplina
Programação
Assuntos

O comando switch da linguagem de programação C é, na linguagem Visual Basic .NET, semelhante ao comando:

Alternativas

ID
1403968
Banca
FGV
Órgão
TJ-BA
Ano
2015
Provas
Disciplina
Programação
Assuntos

Na linguagem C, considere que as variáveis A e B contenham os valores 60 e 13, cujas respectivas representações binárias são mostradas a seguir.

                  A = 0011       1100
                  B = 0000       1101

Nesse caso, as expressões

                  A&B
                  A|B

têm por valores, respectivamente:

Alternativas
Comentários
  • Relmente não estou entendendo pq o gabarito seria C.


    A=00111100 = 32+16+8+4 = 60

    B=00001101 = 8+4+1=13

    =====================

    A&B=00001101

    A|B=00111101

     Na minha visão resposta D

  • A     B    A&B          A     B     A|B

    0     0     0                0     0     0

    0     0     0                0     0     0

    1     0     0                1     0     1

    1     0     0                1     0     1

    1     1     1                1     1     1

    1     1     1                1     1     1

    0     0     0                0     0     0

    0     1     0                0     1     1


    A&B = 0000 1100

    A|B = 0011 1101

  • A resposta certa deve ser D, 00001100 00111101

  • Sem o menor pudor, pegaram o exemplo deste site aqui...Gabarito D 

    https://www.tutorialspoint.com/cprogramming/c_operators.htm

  • Concordo com os comentários já postados... Gabarito "D"

  • como se faz para chegar no A&B e no A|B


ID
1429267
Banca
CESGRANRIO
Órgão
IBGE
Ano
2013
Provas
Disciplina
Programação
Assuntos

using System;

public class Prova
 {
     public static void Main ( )
     {

          int [ ] a =new int[10];
          int i =0;

          while ( i<10) {
                a [i] = i + ( i >0 ? a[i-1] : 0);
                 i ++ ;
          }

          Console.WriteLine (a [ 9] );
   }
}

O que ocorre com o programa C#, apresentado acima, quando é compilado e posteriormente executado?

Alternativas
Comentários
  • Gabarito: A

    Esta é uma ótima questão para relembrarmos o funcionamento dos arrays e do operador condicional ternário.

    Primeiramente é declarado um array ‘a’ de inteiros, com 10 posições;

    Em seguida é declarada a variável auxiliar ‘i’ também inteiro e inicializada com o valor 0 (Lembre-se que o primeiro índice dos vetores é 0 e não 1, então o vetor de tamanho dez irá de a[0] até o a[9]). O loop while irá preencher o vetor ‘a’.

    A expressão do ternário é a seguinte: i > 0 ? a[i-1] : 0.

    Então na primeira iteração, o resultado é falso, será retornado o valor da segunda expressão 0.

    a[0] = 0 + 0 => 0.

    Nas próximas iterações, a condição do ternário será verdadeira (i>0), o vetor receberá o valor do índice somado ao valor guardado na posição anterior a[i-1].

    a[1] = 1 + a[0] = 1 + 0 => 1.

    a[2] = 2 + a[1] = 2 + 1 => 3.

    a[3] = 3 + a[2] = 3 + 3 => 6.

    a[4] = 4 + a[3] = 4 + 6 => 10.

    a[5] = 5 + a[4] = 5 + 10 => 15.

    a[6] = 6 + a[5] = 6 + 15 => 21.

    a[7] = 7 + a[6] = 7 + 21 => 28.

    a[8] = 8 + a[7] = 8 + 28 => 36.

    a[9] = 9 + a[8] = 9 + 36 => 45.

    O array está completo, e o loop while chega ao fim (i=10). E o valor impresso será o valor de a[9] = 45.


ID
1460647
Banca
CESGRANRIO
Órgão
PETROQUÍMICA SUAPE
Ano
2012
Provas
Disciplina
Programação
Assuntos

A estrutura a seguir é usada para guardar os dados cadastrais dos alunos de uma turma.

typedef struct aluno
{
           int matric;
           char nome [31];
            float media;
} Aluno;


Considere que um determinado sistema de informação necessite de uma função que realize uma busca em um vetor de alunos que esteja ordenado descendentemente pelo campo nome da estrutura anterior (variável nome). Dado que o vetor se encontra ordenado, a função em questão deverá implementar o algoritmo de busca binária. O cabeçalho dessa função deverá ser o seguinte:

int busca(Aluno la[],char nm,int ini, int fin);

A função irá receber o vetor ordenado de alunos (variável la) e o nome de um aluno qualquer (variável nm). Caso exista no vetor um aluno com o nome passado como parâmetro (variável nm), a função deverá retornar a sua posição no vetor de alunos, caso contrário a função deverá retornar o inteiro -1.
Qual implementação atinge os objetivos descritos acima?

Alternativas
Comentários
  • Alguém saberia informar qual foi o erro da Alternativa B?


ID
1460650
Banca
CESGRANRIO
Órgão
PETROQUÍMICA SUAPE
Ano
2012
Provas
Disciplina
Programação
Assuntos

No programa C abaixo, a expressão val<<2 realiza um deslocamento à esquerda (shift left) de dois bits.

# include< stdio.h >
int main (void)
{
         char val = 40 ;
        val = val<<2 ;
        printf ("%d \n",val) ;
        return 0 ;
}


Sabendo-se que esse programa será executado por um processador cuja Unidade Lógica e Aritmética representa números inteiros através da técnica de complemento de dois, o que será exibido no console quando da sua execução?

Alternativas
Comentários
  • 40 em binário = 00101000

    Deslocamento  2 bits a esquerda 40 << 2 =  10100000 (160)

    Porém o examinador menciona que a ULA trabalha com complemento de dois, ou seja, 10100000(160) vira 11100000(- 96), em complemento de dois, lembrando que o número é negativo, pois o bit mais significativo, sinal magnitude, (  11100000) é 1 ( nr negativo) 0 (nr positivo).

    Gabarito alternativa E.


ID
1504012
Banca
FGV
Órgão
TJ-BA
Ano
2015
Provas
Disciplina
Programação
Assuntos

Na linguagem C, as strings “%d”, “%f” e “%s” estão usualmente associadas ao uso da função:

Alternativas
Comentários
  • outra função que também recebe esses parametros é o scanf

  • GABARITO: B

    printf (print formatted) é um comando em sistemas operacionais unix-like, que imprime uma mensagem na tela. Ela é parecida com a linguagem de programação C, porém não idênticas. As strings com aspas simples e duplas são lidados de diferentes formas nos scripts de shell em comparação aos programas em C.[1]

    O primeiro parâmetro é uma string de formatação que descreve como os itens impressos que serão representados. Um exemplo é o uso do código %d que mostra um número inteiro e o %f que mostra um número de ponto flutuante. Ás vezes, printf é utilizado para fazer o redirecionamento de uma variável ou alguma entrada imutável feito por um comando.[1]


  • Formatações possíveis do printf

    Código -> Formato

    • %c -> Caractere.
    • %d -> Inteiros decimais com
    • %i -> Mesmo que %d
    • %e -> Notação científica (e minúsculo).
    • %E -> Notação científica (E maiúsculo).
    • %f -> Ponto flutuante decimal
    • %g -> Usa o menor entre %e e %f
    • %G -> Usa o menor entre %E e %F
    • %o -> Octal sem sinal (somente positivos)
    • %s -> String de caracteres.
    • %u -> Inteiros decimais sem sinal.
    • %x -> Hexadecimal sem sinal (letras em minúsculo).
    • %X -> Hexadecimal sem sinal (letras em maiúsculo).
    • %p -> Apresenta um ponteiro.
    • %n -> O argumento associado deve ser um ponteiro para inteiro. Armazena o número de caracteres até o %n no inteiro passado como argumento.
    • %% -> Imprime o símbolo %

    Fonte: Estratégia Concursos


ID
1523599
Banca
FEMPERJ
Órgão
TCE-RJ
Ano
2012
Provas
Disciplina
Programação
Assuntos

O código a seguir, escrito para o Microsoft Visual C# 2008 Express Edition, tem um erro na linha 8.


            1. public interface Poligono
            2. {
            3.       void perimetro( );
            4. }
            5.
            6. class PoligonoIrregular : Poligono
            7. {
            8.       void perimetro( )
            9.       {
            10.   }
            11. }

O trecho de código certo para substituir a linha e corrigir o erro é:

Alternativas
Comentários
  • Prezados,

    A classe PoligonoIrregular implementa a interface Poligono, portanto, ao sobrescrevermos o método perimetro(), temos que chamar ele explicitamente de Poligono.perimetro().

    Portanto a alternativa correta é a letra A.

ID
1523602
Banca
FEMPERJ
Órgão
TCE-RJ
Ano
2012
Provas
Disciplina
Programação
Assuntos

Observe o trecho de código a seguir, construído para o Microsoft Visual C# 2008 Express Edition.

            1.       class Retorna
            2.       {
            3.                public int retorna( )
            4.                {
            5.                         return 1;
            6.                 }
            7.                 public Single retorna( )
            8.                 {
            9.                         return 3.7f;
            10.                }
            11.       }

Esse trecho de código:

Alternativas
Comentários
  • Prezados,

    Dentro de uma mesma classe, se desejarmos ter 2 métodos com o mesmo nome, eles tem que ter assinaturas diferentes, ou seja, o nome do método pode até ser igual, mas os parâmetros tem que ser diferentes.

    Portanto a alternativa correta é a letra A

ID
1523605
Banca
FEMPERJ
Órgão
TCE-RJ
Ano
2012
Provas
Disciplina
Programação
Assuntos

Considere o trecho de código abaixo, escrito para o Microsoft Visual C# 2008 Express Edition.

Int32 numero;
numero = Convert.ToInt16(!(21 > 21));

O valor fnal da variável “numero” será:

Alternativas
Comentários
  • Em c# temos, TRUE=1 e FALSE=0.

    Sobre a questão o convert.toInt16 está somente para complicar nossa visão, deixando ele de lado...

    O número 21 é mairo que o número 21  ? (21 > 21) FALSE=0, MAS CUIDADO temos um sinal de exclamação na frente, que inverte os valores booleanos

    !(21 >21) => !(0) => 1

    Ou seja, gabarito alternativa C

  • Prezados,

    O método ToInt16, ao receber um booleano, faz a conversão dele para o inteiro de 16 bits equivalente.
    É passado para o método 21 > 21 , que é Falso , negando o falso ( sinal ! ) , temos verdadeiro, que é representado pelo inteiro 1.

    Portanto a alternativa correta é a letra C.


    Fonte :https://docs.microsoft.com/pt-br/dotnet/api/system.convert.toint16?view=netframework-4.8 

ID
1525642
Banca
COMPERVE
Órgão
UFRN
Ano
2015
Provas
Disciplina
Programação
Assuntos

Imagine que um técnico em TI esteja escrevendo um programa em C para controlar a entrada de torcedores em um estádio que comporta 50.000 pessoas. Sabendo que o programa vai ser executado em uma máquina com arquitetura de 32 bits, o tipo de dados que o técnico deverá usar para declarar uma variável para guardar o número de torcedores pagantes, caso queira ser o mais econômico possível no uso da memória, será

Alternativas
Comentários
  •  a) short int.  16 bits, porém com sinal o espaço amostral (range) = -32768 até 32767

     b) unsigned short int. GABARITO, tamanho = 16 bits, range = 0 até 65535

     c) int. Tamanho 32 bits 

     d) unsigned int. 32 bits , porém com range menor do int com sinal.


ID
1525648
Banca
COMPERVE
Órgão
UFRN
Ano
2015
Provas
Disciplina
Programação
Assuntos

Considere o seguinte programa escrito em C:

                         int main()
                        {
                              int x = 25, y = 5, z;
                              for (z = 0; x >= y; x = x - y, z++);
                              printf("x=%d, y=%d, z=%d\n", x, y, z);
                              return 0;
                         }

Após a execução do programa, o que aparecerá na tela será

Alternativas
Comentários
  • iteracao -> 0  ,  valor x:25 , valor y:5 
    iteracao -> 1  ,  valor x:20 , valor y:5 
    iteracao -> 2  ,  valor x:15 , valor y:5 
    iteracao -> 3  ,  valor x:10 , valor y:5 
    iteracao -> 4  ,  valor x:05 , valor y:5 
    Resposta certa -> x=0, y=5, z=5

  • Acertei pela lógica, mas que a pergunta está mal feita está!

ID
1525651
Banca
COMPERVE
Órgão
UFRN
Ano
2015
Provas
Disciplina
Programação
Assuntos

Considere a seguinte função busca escrita em linguagem C:

                        bool busca(int vetor[ ], int n, int tam)
                        {
                              int ini=0, mid;
                              while (ini <= tam)
                              {
                                      mid = (ini + tam)/2;
                                      if (vetor[mid] == n)
                                            return true;
                                     else
                                            if (n > vetor[mid])
                                                  ini = mid+1;
                                            else
                                                  tam = mid-1;
                              }
                              return false;
                        }

Essa função implementa o algoritmo de busca

Alternativas
Comentários
  • //Implementação Iterativa:

     

    int PesquisaBinaria (int vet[], int chave, int Tam)

    {

         int inf = 0;     // limite inferior (o primeiro índice de vetor em C é zero)

         int sup = Tam-1; // limite superior (termina em um número a menos. 0 a 9 são 10 números)

         int meio;

         while (inf <= sup)

         {

              meio = (inf + sup)/2;

              if (chave == vet[meio])

                   return meio;

              if (chave < vet[meio])

                   sup = meio-1;

              else

                   inf = meio+1;

         }

         return -1;   // não encontrado

     

     

    Fonte: https://pt.wikipedia.org/wiki/Pesquisa_bin%C3%A1ria

  • LETRA B
    bool busca(int vetor[ ], int n, int tam) 
        { 
            int ini=0, mid; 
            while (ini <= tam) -> A Recursividade geralmente é usada para eliminar laço FOR ou WHILE(menos frequente), logo temos um iteração
                {
                    mid = (ini + tam)/2; - Aqui nós temos a divisão do Vetor, logo não há como ser sequencial
                    if (vetor[mid] == n) 
                        return true; 
                    else 
                        if (n > vetor[mid]) 
                            ini = mid+1; 
                        else 
                        tam = mid-1; 
               }
                    return false; 
        } 


ID
1529215
Banca
FUNDEP (Gestão de Concursos)
Órgão
IF-SP
Ano
2014
Provas
Disciplina
Programação
Assuntos

Assinale a alternativa que apresenta CORRETAMENTE a forma em C de recuperar o endereço de memória de uma variável.

Alternativas
Comentários
  • O operador & extrai o endereço de memória de uma determinada variável, que pode ser usado para uma grande variedade de coisas.


ID
1529218
Banca
FUNDEP (Gestão de Concursos)
Órgão
IF-SP
Ano
2014
Provas
Disciplina
Programação
Assuntos

Assinale a alternativa que apresenta CORRETAMENTE a forma de se declarar uma função na linguagem C

Alternativas
Comentários
  • A linguagem C permite o uso de parâmetros. Este parâmetros possibilitam que se definida sobre quais dados a função deve operar.

    Para definir os parâmetros de uma função o programador deve explicitá-los como se estive declarando uma variável, entre os parênteses do cabeçalho da função. Caso precise declarar mais de um parâmetro, basta separá-los por vírgulas. No exemplo a seguir temos a função SOMA que possui dois parâmetros, sendo o primeiro um float e o segundo um int.

    void SOMA(float a, int b)  // basta separar por vírgulas
    {
      float result;  // a declaração de variáveis é igual ao que 

      // se faz na função main 
      result = a+b;
      printf("A soma de %6.3f com %d é %6.3f\n, a,b,Result); 


ID
1530418
Banca
FGV
Órgão
SUSAM
Ano
2014
Provas
Disciplina
Programação
Assuntos

Analise, a seguir, um pequeno programa desenvolvido em C.

                        #include
                        intfuncao (int j);
                        int main( )
                        {
                         int i;
                         intsaida;
                         i = 1;
                         saida = 0;
                         while (i <10)
                         {
                                   saida = saida + funcao(i);
                                    i = i + 1;
                         }
                         printf("%d", saida);
                        }
                         intfuncao (int j)
                        {
                          if (j % 2 == 0)
                                     return 0;
                          else
                                      return j;
                        }

A valor da variável saída que é impresso na tela ao final da execução do programa é

Alternativas
Comentários
  • dentro do while vai fazer saída=1+3+5+7+9. A função intfuncao vai retornar o valor dele quando for ímpar


ID
1561027
Banca
Exército
Órgão
EsFCEx
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C:

# include <stdio.h>

int main ()

{

int a[ ][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

int i;

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

   printf ( "%d", *(a[i]+1));

}

O resultado impresso será:


Alternativas
Comentários
  • int a[i ] + 1    =   Vetor i - Linha ; 1 seria a coluna

     

     

    {1,2,3,4,5,6,7,8,9,10,11,12}

     

           0       1       2     3     

        1       2       3     4

    1     5       6       7     8

    2     9      10     11    12

     

    for (i=0;i<3;++i)  =   i dever ir até menor que 3, ou seja 2.

     

    a [0] + 1

    a [1] + 1

    a [2] + 1

     

    Ou seja, Linha 0 coluna 1; Linha 1 Coluna 1; Linha 2 Coluna 1 =  2610 (imprimiu tudo junto).

  • Fala galerinha, vamos a resposta !!!

    Nesta questão tempo a mistura de MATRIZ e PONTEIRO.

    A cada passada no IF é adicionado +1 a linha. Como não é indicado a coluna somente a linha que se repete.

    loop 1° = [0] [1]

    loop 2° = [1] [1]

    loop 3° = [2] [1]

    Como o IF para em <3 a linha 3 não é executada.

    c0 c1 c2 c3

    l0 1 2 3 4

    l1 5 6 7 8

    l2 9 10 11 12

    loop 1° = [0] [1] = 2

    loop 2° = [1] [1] = 6

    loop 3° = [2] [1] = 10

    R= 2610


ID
1561030
Banca
Exército
Órgão
EsFCEx
Ano
2014
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C:


# include < stdio.h >


int main ()

{

int i=9;

i^=15;

i>>=1;

i<<=2;

printf ("%d",i);

}


O resultado impresso será:

Alternativas
Comentários
  • SOLUÇÃO:

    i^=15; → i = i^15; i = 9^15 (^ é um “OU Exclusivo” de bits)

    9(base 2) = 1001, e 15(base 2) = 1111, logo 1001 ^ 1111 = 0110

    então:

    i>>=1 (1 shift right em 0110) → 011;

    i<<=2 (2 shift left em 011) → 01100

     

    01100(base10)  = 12

  • Fazendo tudo direto em binário

     

    8        4           2          1

    1          0              0             1      = 9          (i começa com 9)    int i=9;

    1          1              1             1      =15         (depois i recebe 15 com porta XOR)        i^=15;

    0          1              1             0      =6           (resultado  do cáculo XOR do 9 e do 15)

    0          0              1             1     =3            (repare que 1 bit é deslocado para a direita)        i>>=1;

    1          1              0             0     =12          (para finalizar 2 bits são deslocados para a esquerda e sai o resultado)     i<<=2;

  • Melhor explicação.


ID
1565335
Banca
Exército
Órgão
EsFCEx
Ano
2013
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C e marque a alternativa correta acerca do resultado a ser impresso.


                   #include  <stdio.h>
                   int main () {

                       int numero = 20;
                       printf ("%o + %x = %04d", numero, numero, numero * 5);
                   } 

Alternativas
Comentários
  • Alternativa correta, letra c) 24 + 14 = 0100

    Primeiramente, converto o número 20 para binário:

    20 =      1    0  1 0  0 (número em binário)   

                  16  8 4  2 1

    ------------------------------------------------------------------

    Convertendo para base 8:   2                4 =>24

                                                 0 1  0  |    1 0 0 

    ------------------------------------------------------------------

    Convertendo para base 16:     1            4=> 14

                                                  0 0 0 1  | 0 1 0 0 

    ------------------------------------------------------------------

    Número binário de 4 posições: 0100

    Selva!

     

  • printf ("%o + %x = %04d", numero, numero, numero * 5); 

    %o (base octal ) = 20 octal -> 24

    %x (base hexadecimal) = 20 hexadecimal = 14

    20*5 = 100 -> %04d = 4 inteiros = 0100

    c) 24 + 14 = 0100


ID
1565338
Banca
Exército
Órgão
EsFCEx
Ano
2013
Provas
Disciplina
Programação
Assuntos

. Considere o programa escrito em linguagem C e marque a alternativa correta acerca do resultado a ser impresso.


                                #include <stdio.h>
                                int main ( ) {
                                            int v [ ] = {20, 35, 76, 80};
                                             int *a;
                                             a = &v [1];
                                             --(*++a);
                                             (*a--)= (*++a) + 1;
                                             (*a) = --(*--a);
                                             printf ("%d, %d, %d, %d\n", v[0], v[1], v[2], v[3]);
                                 } 

Alternativas
Comentários
  • Não há resposta correta, o ultimo printf será: 20, 34, 76, 80. A que mais se aproxima é letra A.

  • Rayssa Soares então a questão seria no caso passível de recurso? Deveria ser anulada?

  • Prezada Rayssa Soares,

    Concordo que não há opção que apresente a saída correta.

    Entretanto, discordo do resultado encontrato por você.

    A saída exibida pelo programa é: "20, 34, 75, 81".

  • Resultados encontrados

    GCC 5.3.0 - 20, 34, 76, 80

    GCC >= 7.2.0 - 20, 34, 75, 81

    https://www.jdoodle.com/c-online-compiler


ID
1565344
Banca
Exército
Órgão
EsFCEx
Ano
2013
Provas
Disciplina
Programação
Assuntos

 Analise as afirmativas abaixo e, em seguida, assinale a opção correta.


São palavras reservadas da linguagem C no padrão ANSI e, portanto, não podem ser utilizadas como nomes de variáveis em programas inscritos nesta linguagem: 

I. overall.

II. union.

III. extern.

IV.signed.

V. code


Alternativas
Comentários
  • Lista de palavras reservadas da linguagem C

     asm: Indica instruções em assembly.

    auto: Define a classe de armazenamento padrão, ou seja , a variável é criada quando a função é invocada e depois é destruída quando a função termina.

    break: Comando para forçar a saída imediata dos comandos switch, for, while, e , do…while.

    case: Utilizado dentro do comando switch para selecionar uma constante.

    char: Tipo de dados utilizado para armazenar caracteres.

    const: Impede que uma variável seja modificada, criando assim uma constante.

    continue: Força a interrupção dos loops for , while , ou do…while fazendo com que passem para a próxima iteração.

    default: É utilizado dentro de switch…case para tratar valores não definidos anteriormente nas opções case.

    do: Estutura de repetição usada em conjunto com o while . O comando do…while faz com que os comandos do bloco a ser repetido sejam executados no mínimo uma vez.

    double: Tipo de dados numérico de ponto flutuante com precisão dupla.

    else: Indica um bloco de comandos a ser executado quando a condição do comando if for falsa.

    enum: Tipo de dados definido pelo programador que permite a definição de constantes

    extern: Indica que uma variável foi declarada em outro arquivo.

    float: Tipo de dados de ponto flutuante com precisão simples.

    for: Estrutura de repetição que utiliza condições e contador.

    goto: Comando que permite “saltar” incondicionalmente para uma posição do programa pré-deteminada.

    if: Comando condicional que altera o fluxo do programa de acordo com uma condição que pode ser verdadeira ou falsa.

    int: É o tipo de dados mais usado para armazenar valores inteiros.

    long: É um tipo de dados usado para armazenar valores inteiros que possui precisão superior ao tipo int..

    register: Solicita o armazenamento diretamente nos registradores do processador.

    return: Retorna um valor dentro de uma função ou força o abandono da mesma.

    short: É o chamado inteiro curto. Armazena valores inteiros com precisão menor (apenas 2 bytes) do que o tipo int.

    signed: Sinaliza que uma variável pode armazenar tanto valores positivos como negativos.

    sizeof: Comando usado para retornar o tamanho em bytes de um determinado tipo de dados.

    static: Comando que avisa ao compilador para reter o valor de uma determinada variável.

    struct: Cria as chamadas estruturas ou seja registros.

    switch: Comando de seleção usando em conjunto com o comando case, permite escolher entre várias opções.

    typedef: É um comando modificador usado para criar novos nomes para tipos de dados.

    union: Permite que um conjunto de variáveis partilhem o mesmo espaço na memória.

    unsigned: Faz com que a variável apenas aceite valores positivos ou zero.

    void: Comando que indica que a função não retorna nada ou que não tem parâmetros de entrada.

    volatile: Indica que uma variável pode ser alterada.

    while: Estrutura de repetição que executa enquanto uma condição é verdadeira.
    Fonte: http://linguagemc.com.br/lista-de-palavras-reservadas-em-c/


ID
1565350
Banca
Exército
Órgão
EsFCEx
Ano
2013
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C e marque a alternativa correta acerca do resultado a ser impresso para a variável vetor


                                 #include <stdio.h>
                                 int funcao (int *x, int y)
                                 {
                                  if (y > 9)
                                    return (1);
                                  else
                                      if (x [y] > 3)
                                        return (x [y] + funcao (x, y+1 ));
                                  else
                                      return (x [y] * funcao (x, y+1));
                                }
                                int main ()
                                {
                                    int vetor [ ] = {1,1,2,3,4,5,6,7,8,9};
                                    int resultado = funcao (vetor, 0);
                                    for (int i=0; i < 10; ++i) {
                                        printf ("%d" , vetor [i]);
                                        if (i<9)
                                        printf (",");
                                    }
                                }


Alternativas
Comentários
  • A função não é usada para imprimir nada!

     

  • Prezados,

    Embora a lógica recursiva dentro de estruturas condicionais seja de difícil acompanhamento de seu processamento, nenhuma instrução altera o conteúdo da variável "vetor", após sua inicialização.

    O conteúdo do "vetor" foi utilizado para processar os resultados da função sem que a esse fosse atribuído um novo valor.

  • Questão para eliminar candidato ansioso !!!


ID
1565443
Banca
Exército
Órgão
EsFCEx
Ano
2012
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C:


#include <stdio.h>

#include <conio.h>


int main () {

int a = 2;

printf ("%d", (a%2 == 0 ? (a*=2,a++):(a/2,--a)));

}


O resultado impresso será



Alternativas
Comentários
  • A condição "a%2 == 0" retorna "true", então será executada o código "(a*=2,a++)", onde o valor do inteiro "a" será multiplicado por 2 que tem como resultado 4.

    Obs: Apenas o resultado 4 será exibido nesse printf porque o "a++" só irá somar +1 na proxima linha. 


ID
1565446
Banca
Exército
Órgão
EsFCEx
Ano
2012
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C:


#include <stdio.h>

#include <conio.h>

int main () {

int x,y,z;

x=(y=2,z=2*y,z+4);

printf ("%d", x);

}


O resultado impresso será

Alternativas
Comentários
  • x=(y=2,z=2*y,z+4);

    x=(z=2*2,z+4);

    x=(z=4,z+4);

    x=(4+4);

    x=(8)


ID
1565449
Banca
Exército
Órgão
EsFCEx
Ano
2012
Provas
Disciplina
Programação
Assuntos

Considere o programa escrito em linguagem C:


#include <stdio.h>

#include <conio.h>


int main () {


int vetor[ ] = {1, 4, 5, 11, 17};

int *p1, *p2;

p1 = &vetor[2];

p2 = vetor;

printf("%d\n", p1 - p2 );


}


O resultado impresso será

Alternativas
Comentários
  • Eu entendi que a variável p1 recebe o endereço do vetor (&vetor[2]) e a variável p2 aponta para o início do vetor(&vetor[0]).

    No momento da subtração ele pega o endereço de p1 (&vetor[2]) - p2(&vetor[0]), e não o valor que está no endereço de p1 e p2.

  • Complementando a resposta do colega.

    int vetor[ ] = {1, 4, 5, 11, 17};

    Posições -> 0, 1, 2, 3, 4

    p1 = &vetor[2]; // O ponteiro p1 recebe o endereço da posição 2 do vetor

    p2 = vetor; // O ponteiro p2 recebe o endereço da posição atual do vetor, ou seja posição 0

    printf("%d\n", p1 - p2 ); // Efetua a subtração dos endereços de memória e apresenta como valor inteiro

    Poderíamos converter para endereços aleatórios de memória considerando o tamanho de alocação de um inteiro, mas como o código quer apresentar o valor inteiro, que é o mesmo formato do vetor, podemos fazer apenas a subtração dos valores das posições, ou seja:

    2 - 0 = 2

    Gabarito: A


ID
1578481
Banca
FCC
Órgão
TCE-CE
Ano
2015
Provas
Disciplina
Programação
Assuntos

Considere o código fonte em linguagem C, abaixo, que utiliza controle de fluxo por meio de um laço de repetição while e do comando de tomada de decisão if, com objetivo de imprimir uma sequência de números terminada pela palavra

                              #include <stdio.h>
                               int main (void)
                               {
                                   int cont = 0;
                                   while (cont < 10)
                                   {   
                                         if (cont == 5) continue;
                                         printf("%d ", cont);
                                         cont=cont+1;
                                   }
                                   printf("fim\n");
                                   return 0;
                               } 



É correto afirmar que o programa está 


Alternativas
Comentários
  • O continue irá fazer com que o LOOP nunca execute a linha  cont=cont+1, tornando o laço infinito.


    Bons estudos!
  • O comando continue ignora todo o código abaixo dele e volta novamente ao início do laço. Quando isso acontecer, de acordo com o código, quando count == 5  ele sempre irá voltar ao início do laço e nunca mais sair, gerando um laço infinito.


ID
1664197
Banca
IESES
Órgão
TRE-MA
Ano
2015
Provas
Disciplina
Programação
Assuntos

 Assumindo o código abaixo:

 public static void main(String[] args) {

        int valor0 = 12;

        int valor1 = 4;

        float resultado = valor0++ / valor1--;

       System.out.println(resultado);

}

Qual será o resultado impresso?

Alternativas
Comentários
  • Como o incrementador (++ e --) está posposto, primeiro o valor é atribuído (neste caso usado para a divisão), depois a variável é incrementada

  • Eu fiz desta forma.... 
    Primeiro faz a divisão ... 12/4 tem o resultado = 3
    agora o incremento ++...  6  e em seguida o decremento --  = 3

    ( não estou lembrado se incremento é o valor+"o valor" OU se é o valor+"um" )

  • Na verdade como. Não nenhum loop  não haverá incremento

  • ++ soma um valor unitário à variável.

    Na linguagem C e também em algumas outras, há diferença entre fazer essa operação com a notação anterior ou posterior à variável, exemplo:

    No C, é possível realizar essa operação:

    int x = 2;

    printf("%d", x++);

    Isso irá imprimir na tela o valor 2, pois a soma só ocorrerá após a execução da linha.

    Também é possível realizar essa operação:

    int x = 2;

    printf("%d", ++x);

    Isso irá imprimir na tela o valor 3, pois a soa ocorre antes da execução da linha.


ID
1703662
Banca
FGV
Órgão
TCE-SE
Ano
2015
Provas
Disciplina
Programação
Assuntos

Analise o código C# mostrado abaixo.

namespace ConsoleApplication1 

{

     class Program

     {

         static IEnumerable<int>

            XPTO(int from, int to) {

             for (int i = from; i < to; i+=3) {

                yield return i;

             }

             yield break;

         }

         static void Main()

         {

             foreach (int x in XPTO(-10, 10) {

                 Console.WriteLine(x);

              }

          }

     }



O resultado exibido pelo programa é: 

Alternativas
Comentários
  • from = -10
    to = 10

    não pode esquecer que começa imprimindo o -10, por isso errei na prova.

    quando i = 11 -> i+=3 -> 8+3

    11 < 10 ? sai do loop e entra no break. Por isso a impressão termina no 8


ID
1728973
Banca
FGV
Órgão
DPE-RO
Ano
2015
Provas
Disciplina
Programação
Assuntos

Observe o seguinte trecho de código C##.
bool x = true;
int m = 0;
for (int a = 1; x; a++)
{
m++;
if (m % 10 == 0)
{ x = false;
}
}
Console.WriteLine(m);
O valor apresentado pelo comando Writeline é:

Alternativas

ID
1770463
Banca
FGV
Órgão
PGE-RO
Ano
2015
Provas
Disciplina
Programação
Assuntos

No contexto do comando switch e do uso do comando break em seu interior, na linguagem de programação C, é correto afirmar que:

Alternativas
Comentários
  • A) Pode utilizar o comando continue , não somente o break.

    B) Default é executado somente se nenhum case for atendido.

    C) Constantes e/ou literais.

    E) É possível

  • Complementando a alternativa A, o comando break NÃO É NECESSARIO,  então o correto seria "pode conter um comando break"

  • d-

    switch é usado quando se deseja testar varias possibilidades, com default caso nenhuma opção seja selecionada e break; para sair do case { }

  • Complementando a C.

    C) Literais, String, char e Enum

    https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

  • BOA NOITE !

    LETRA - D -


ID
1796290
Banca
FCC
Órgão
DPE-SP
Ano
2015
Provas
Disciplina
Programação
Assuntos

Utilizando auto-implemented properties no C#, para declarar em uma classe uma propriedade Saldo com um get e um set públicos para lerem e escreverem no atributo, respectivamente, utiliza-se

Alternativas

ID
1819666
Banca
FUNCAB
Órgão
CRF-RO
Ano
2015
Provas
Disciplina
Programação
Assuntos

Na linguagem C, o cabeçalho de biblioteca stdio.h possui definições de subrotinas relativas às operações de entrada/saída padrão. Uma das funções tratadas na biblioteca, associada a esse cabeçalho, é a função:

Alternativas
Comentários
  • Letra: "C"

    stdio.h é um cabeçalho da biblioteca padrão do C. Seu nome vem da expressão inglesa standard input-output header, que significa "cabeçalho padrão de entrada/saída".

    Possui definições de subrotinas relativas às operações de entrada/saída, como leitura de dados digitados no teclado e exibição de informações na tela do programa de computador. Também possui numerosas definições de constantes, variáveis e tipos. É um dos cabeçalhos mais populares da linguagem de programação C, intensivamente utilizado tanto por programadores iniciantes como por experientes.

    Abaixo temos 4 funções desta biblioteca que são muito utilizadas:

    printf() Função usada para imprimir dados na tela

    scanf() Função usada para capturar dados do usuário

    fprintf() Função usada para imprimir dados em arquivo

    fscanf() Função usada para ler dados de arquivos

     

    Fonte: https://pt.wikipedia.org/wiki/Stdio.h


ID
1820578
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Programação
Assuntos

Acerca de linguagens de programação e ferramentas de desenvolvimento, julgue o item subsecutivo.

Objective-C, linguagem de programação que estende a linguagem C, oferece recursos orientados a objetos, em que os métodos são chamados diretamente em um objeto.


Alternativas
Comentários
  • O Objective-C é uma camada muito fina construída sobre a linguagem C e constitui-se num superconjunto estrito de C. Ou seja, é possível compilar qualquer programa C com um compilador Objective-C. O Objective-C deriva sua sintaxe tanto do C quanto do Smalltalk. A maior parte de sua sintaxe (incluindo pré-processamento, expressões, declaração e chamadas de funções) foi herdada da linguagem C, enquanto a sintaxe para os aspectos orientados a objetos foi criada para habilitar passagem de mensagens no estilo Smalltalk.

     

    O modelo de orientação a objeto do Objective-C é baseado na passagem de mensagens para instâncias de objeto.No Objective-C, não simplesmente se chama um objeto, envia-se uma mensagem. Diferente do modelo de programação estilo Simula usado por C++.A diferença entre estes dois conceitos está na forma como o código referenciado pelo nome de mensagem ou método é executado. Em Smalltalk e Objective-C, o alvo de uma mensagem é resolvido em tempo de execução, com o objetivo de receber-se interpretar a mensagem.

  • Vamos ver se entendi. Baseado no comentário da Mayara, o erro da questão se encontra ao dizer que os métodos são chamados diretamente de um objeto quando na verdade eles seriam baseados na passagem de mensagens para instâncias de objeto?


ID
1827082
Banca
FGV
Órgão
DPE-RO
Ano
2015
Provas
Disciplina
Programação
Assuntos

Para que um programa C# do tipo “Windows Forms Application” receba um ou mais parâmetros da linha de comando, a assinatura do método Main pode ser especificada como:

Alternativas
Comentários
  • Possibilidades

    static void Main(string[] args)
    ou 
    static void Main()


ID
1839160
Banca
VUNESP
Órgão
CRO-SP
Ano
2015
Provas
Disciplina
Programação
Assuntos

Na linguagem de programação C#, o modificador de acesso que permite que os membros de uma classe sejam visíveis por membros de outras classes, derivadas ou não, é o

Alternativas

ID
1839163
Banca
VUNESP
Órgão
CRO-SP
Ano
2015
Provas
Disciplina
Programação
Assuntos

Na linguagem C#, sempre que o operador new falhar ao alocar memória para um objeto, é lançada a exceção

Alternativas
Comentários
  • a) Exceção lançada quando ocorrer um erro de execução;

    b) Exceção será lançada quando não existir espaço suficiente na memória;

    c) Exceção lançada se uma referência null é usada indevidamente;

    d) CORRETA

    e) Exceção lançada quando houver um estouro de pilha( pilha cheia)


ID
1839166
Banca
VUNESP
Órgão
CRO-SP
Ano
2015
Provas
Disciplina
Programação
Assuntos

A linguagem de programação C# oferece as interfaces IEquatable<T> e IComparable<T> para que objetos possam ser comparados com outros objetos. A diferença entre essas interfaces é que apenas

Alternativas
Comentários
  •  IEquatable<T> e IComparable<T>

    Associei aos métodos equals() e compare(). O primeiro retorna true/false se dois objetos são iguais. O segundo retorna um inteiro: -1 se o primeiro objeto é menor do que o segundo, 0 para igual, 1 se o primeiro objeto é maior do que o segundo.


ID
1869232
Banca
FGV
Órgão
CODEBA
Ano
2016
Provas
Disciplina
Programação
Assuntos

Assinale a opção que indica o trecho de programa na linguagem C que está corretamente escrito e que produz a mensagem adequada ao valor da variável inteira x.

Alternativas
Comentários
  • a)Incorreta. Para usarmos o "then" o correto seria ... if expressão1 then sentenças elseif ....

     

    b) Incorreta, para fazermos uma comparação de inteiros usamos == e não o sinal de atribuição = como consta na alternativa (if x%2=0)

     

    c) Incorreta, faltou o  fechamento no primeiro else na última linha }

     

    d) CORRETA, GABARITO DA QUESTÃO

     

    e) Incorreta, a condição do if está 'zuada' o correto seria if(x%2==0) para imprimir os números pares;


ID
1888459
Banca
FCC
Órgão
TRF - 3ª REGIÃO
Ano
2016
Provas
Disciplina
Programação
Assuntos

A maneira correta de se utilizar uma string na linguagem de programação indicada é: 

Alternativas
Comentários
  • Gabarito C

    Questão interessante que compara as 3 linguagens. Vamos ver os erros dos itens.

    (a) Delphi não utiliza a sintaxe Declare X as Tipo e sim X : Tipo; (b) A forma de declaração está certa C# nas 3 primeiras linhas, realmente é “java like” “tipo x = inicialização”. Mas na quarta linha, o tipo é System.String o que é errado, essa é a classe de manipulação de strings. Além disso, a inicialização com ‘@’ antes não é utilizada. O correto seria apenas null, “c:\TRF3R\Processos”, “Tribunal Regional Federal”. System.String.Empty está certo, equivale a “” (vazio); (c) Certo. Sintaxe correta do Visual Basic; (d) Essa é a sintaxe C#. Repare que var no C# indica que o compilador deve definir o tipo, nesse caso string; (e) A sintaxe de declaração Visual Basic está certa. Mas é utilizado aspa simples, o correto é aspas duplas. Além disso, o comando Middle não existe na biblioteca String, apenas em sql. A função equivalente seria Substring. Mais um detalhe é que ele utiliza uma variável TestString não declarada no trecho.

    "Retroceder Nunca Render-se Jamais !"

    Força e Fé !

    Fortuna Audaces Sequitur !

  • Prezados,

    A alternativa A e D estão erradas, a forma de se declarar uma string em Delphi ( object pascal ) é var teste: string[200].
    A alternativa B está errada, a forma de se declarar string em C# é string titulo = "teste"
    A alternativa E está errada. Para declarar uma string em VB devemos fazer "Dim teste as string".


    Portanto a alternativa correta é a letra C.


  • Gabarito C

    Informações adicionais...

    Data:

    Você deve colocar um  literal dentro de sinais numéricos (  ).

    Você deve especificar o valor de data no formato M/d/AAAA, por exemplo  

    Hora:

    Você pode especificar o valor de hora em formato de 12 horas ou 24 horas, por exemplo, #1:15:30 PM# ou #13:15:30#. No entanto, se você não especificar os minutos ou os segundos, deverá especificar AM ou PM.

    Variável:

    Uma variável ou constante do  tipo de dados contém a data e a hora. O exemplo a seguir ilustra isto.

    Dim someDateAndTime As Date = #8/13/2002 12:14 PM#

    Fonte:

    https://docs.microsoft.com/pt-br/dotnet/visual-basic/language-reference/data-types/date-data-type


ID
2087272
Banca
IESES
Órgão
TRE-MA
Ano
2015
Provas
Disciplina
Programação
Assuntos

Referente ao comando fork(), do ponto de vista conceitual, é correto afirmar que ele gera uma cópia exata do processo que executou o comando:

Alternativas
Comentários
  • fork() um processo filho separado para lidar com a conversa entre servidor e cliente.

     

  • Fork é executado pelo kernel para duplicar um processo, todos os processos (no linux) surgem a partir de um fork(), e são especializados para algo específico.


ID
2091610
Banca
FGV
Órgão
CONDER
Ano
2013
Provas
Disciplina
Programação
Assuntos

Considere que a função em linguagem C a seguir recebe como parâmetro de entrada a raiz r de uma árvore binária.

voidpercorre (arvore * r) {
if (r != NULL) {
percorre(r->esq);
printf("%d\n", r->conteudo);
percorre(r->dir);
         }

Considere ainda que, para qualquer nó x, x->esq é a raiz da subárvore esquerda de x, que x->dir é a raiz da subárvore direita de x  e  que x->conteudo retorna o conteúdo de um nó. A respeito da função descrita acima, assinale a afirmativa correta.

Alternativas