Red de conocimiento informático - Conocimiento de la instalación - Ayuda sobre el lenguaje C.

Ayuda sobre el lenguaje C.

Conceptos básicos del lenguaje C (01-Introducción y conocimientos preparatorios): El lenguaje C es un potente lenguaje de programación y también es la base del lenguaje C++. El lenguaje C es un lenguaje intermedio. El nivel medio mencionado aquí es relativo al hardware subyacente de la computadora. El lenguaje ensamblador es el lenguaje de nivel más bajo que puede interactuar directamente con el hardware. Los lenguajes de alto nivel incluyen Pascal, Basic, Fortran, etc. Una declaración en un lenguaje de alto nivel corresponde a muchas declaraciones en un lenguaje de bajo nivel. Cualquier programa escrito en un lenguaje de alto nivel debe ser compilado y conectado por un compilador para convertirse en un programa ejecutable. El proceso de compilación y conexión es el proceso de traducir el lenguaje de alto nivel al lenguaje de máquina (código de máquina binario), y el lenguaje ensamblador es un lenguaje que básicamente corresponde al lenguaje de máquina uno a uno. Este proceso de traducción lo completa automáticamente el compilador. Hay una razón para designar el lenguaje C como un lenguaje intermedio, porque el lenguaje C no solo tiene la capacidad del lenguaje ensamblador para acceder al hardware subyacente, sino que también tiene muchas características de un lenguaje de alto nivel. Una vez que domine el lenguaje C, debería ser muy fácil aprender otros lenguajes de programación.

El formato de escritura del lenguaje C:

1) Un programa fuente escrito en lenguaje C debe tener un programa principal (llamado función main(), y en lenguaje C, la subrutina es llamado Es una "función" (claro, no lo entiendas como una "función" en matemáticas), pero nunca puede haber más de una función principal (es decir, solo puede haber una)

2) El bloque de declaración de función usa '{. Comienza con ' corchete y termina con '}' corchete posterior. Estas llaves deben aparecer en pares.

3) Las expresiones se escriben entre paréntesis, comenzando con '(' corchetes y terminando con ')' entre corchetes.

4) Las funciones no se pueden anidar, es decir, las funciones no se pueden anidar dentro de funciones. (Cada función es un módulo de función que completa una función específica)

Composición del lenguaje C:

El lenguaje C se compone de muchas funciones. Sólo hay una función principal (función principal()). Cuando se ejecuta un programa en C, siempre comienza desde '{' de la función principal y termina en la llave inversa '}' de la función principal. Por supuesto, existen otras reglas con las que se familiarizará en futuros estudios.

Reglas de escritura del lenguaje C:

El lenguaje C tiene sus propias características al escribir: el formato de escritura es relativamente libre, se pueden escribir varias declaraciones en una línea y una declaración también puede ser dividido en Escrito en varias líneas. Aun así, al escribir programas fuente, es necesario prestar atención a lo que se puede escribir libremente y a lo que se debe escribir de acuerdo con las reglas de escritura.

A continuación se escriben algunas reglas:

1) Puede escribir varias declaraciones en una línea, y se recomienda que no haya más de dos declaraciones en una línea

; p>

2) Una declaración se puede escribir en varias líneas;

3) Las declaraciones C no requieren etiquetas de línea;

4) Se debe escribir un punto y coma después de cada declaración y definición de datos para indicar el final de la declaración;

5) Los comentarios en lenguaje C están representados por /* */

6) Se recomienda utilizar el formato de sangría al escribir; /p>

7) Flor Los paréntesis y los paréntesis aparecen en pares.

Escribir el programa C más simple:

/* Código de programa*/ /* Parte del comentario*/

main() /*main es el nombre de la función principal . Los paréntesis que siguen inmediatamente a main son para parámetros.

Los corchetes vacíos indican que la función principal no requiere parámetros*/

{ /*Las llaves ortográficas indican que la función principal comienza desde aquí*/

} /*Las llaves invertidas indican que la función principal termina aquí*/

Nota: dado que es un programa de demostración, no hay declaraciones ejecutables en el cuerpo de la función, lo que significa que no hay nada en este programa. No lo hagas.

Este programa es muy simple: escrito en una línea es main() { }

Ingresas este código en el entorno de edición de TC, presionas la tecla F9 para compilar y conectar. CTRL_F5 para ejecutarse, debe ser normal. Pero no habrá resultados porque no hay código en la función principal.

El siguiente es otro ejemplo que puede generar un mensaje en la pantalla:

main()

{

printf("Este ¡Es un programa escrito en lenguaje C!"); /*La función de esta declaración es mostrar un mensaje en la pantalla

"¡Este es un programa escrito en lenguaje C!"*/

}

En este programa, la función principal tiene solo una declaración: printf ("¡Este es un programa escrito en lenguaje C!"); la pantalla. Hablaremos de esta afirmación más adelante. A lo que debemos prestar atención ahora es a cómo está compuesto el marco de un programa en lenguaje C.

Varios formatos de archivo de programas en lenguaje C:

1. Programa fuente---La entrada de texto del programa en el entorno integrado TC se denomina programa fuente. Un programa fuente es un archivo de texto. Es un documento que podemos ver y reconocer. Su extensión es .C. Por ejemplo, si guarda el archivo como TEST, debería ver el archivo TEST.C en el disco. Estos archivos se pueden abrir con el Bloc de notas.

2. Archivo binario---Después de escribir el programa fuente, lo siguiente que debe hacer es compilar este archivo. En el entorno integrado de TC, presione la tecla ALT_F9. Después de la compilación, se genera un archivo binario. Este archivo binario se denomina TEST.OBJ, que es el archivo de destino con la extensión OBJ.

3. Ejecute el archivo. El último paso es crear (o vincular). En el entorno integrado de TC, presione la tecla F9 para crear y luego generar un archivo que se pueda ejecutar en DOS. la extensión EXE. Como TEST.EXE. Este archivo EXE se genera a partir del archivo OBJ en el paso 2. Aunque el archivo OBJ es un archivo binario y la computadora puede ejecutar archivos binarios, ¿por qué necesitamos vincular el archivo OBJ a un archivo EXE para ejecutarlo? Hay bastante conocimiento aquí y no puedo entrar en demasiados detalles aquí. Pero debe comprender que en DOS, solo tiene un archivo binario y no se puede ejecutar, porque el sistema operativo necesita planificar estos archivos binarios y colocar los datos y el código del programa correspondientes en la ubicación de la memoria donde deben colocarse. planificación y Sólo se pueden ejecutar binarios organizados. Y estas tareas sólo se completan en el archivo EXE generado.

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

Preguntas de tarea:

1. El error de formato en el siguiente programa es ( ).

A. main() B. int a,b,z;

C. a=2:b=3; D. z=a+b;

Análisis: No hay errores en A, B y D. En C, debe haber un punto y coma después de a=2 en lugar de ":"

Respuesta: C

2. El lenguaje C permite escribir una declaración en dos líneas. las siguientes afirmaciones son incorrectas

A. int a,

B;

B. int a

,b;

p>

C. int

a,b

D. int a,b

;

Análisis: C idioma Especifica que las líneas se pueden dividir en cualquier delimitador o espacio en la declaración. Entre las cuatro opciones anteriores, D. es problemática porque no hay un delimitador al final de la primera línea en D., mientras que la segunda línea solo tiene un punto y coma, lo que puede considerarse como una declaración.

Entonces, el error en D es: la primera línea es una declaración independiente, pero falta un punto y coma.

Respuesta: D

3. Cuando no puedes escribir una línea en lenguaje C, puedes

A. Usar comas para ajustar la línea B. Usar punto y coma para ajustar la línea

C. Salto de línea en cualquier espacio D. Salto de línea con retorno de carro

Análisis: el lenguaje C puede saltar la línea en cualquier delimitador o espacio, por lo que la respuesta correcta a esta pregunta es C

p>

Respuesta: C

4. ¿Cuál de los siguientes segmentos del programa es la forma incorrecta de comentar?

A.#in/*include*/clude

void main()

{

}

B.#include

void main/* */(/*función principal*/)

{

}

C. #include

void main()

{ int x/*inicialización*/=10;

/*Imprimir*/printf("%d",x);

}

D. void main()

{

int x=10;

printf("%d",x);

/* Imprimir el valor de Comentarios se puede insertar. Entre los cuatro segmentos del programa anteriores, solo A inserta comentarios en el medio del identificador

Respuesta: A

5. el programa se compone de ( )?

Respuesta: Un programa en C se compone de funciones

6. ¿Qué archivo se ejecuta cuando se ejecuta un programa en C?

Es necesario procesar una gran cantidad de datos en el programa. Estos datos se dividen en varios tipos de datos básicos según sus características son:

1, tipo entero 2,. tipo de carácter 3, tipo real

Existen otros tipos de datos extendidos, pero primero debes estar familiarizado con estos tres tipos de datos básicos cuando comiences a aprender

Estos tipos de datos en lenguaje C son representado por símbolos de la siguiente manera:

Tipo de datos enteros int /* generalmente se refiere a números con los que se puede operar, como números naturales, que son tipos de datos enteros*/

Datos de caracteres el tipo char /* generalmente se refiere a texto, como los tipos de caracteres en inglés son '1''2''3''4', etc.*/

El tipo real float /* también se llama flotante; tipo de punto, recuerde que todos los números de tipo flotante tienen decimales, como 425.23*/

Constantes y variables:

Constante: una cantidad cuyo valor no cambia durante la ejecución del programa, por ejemplo, un número entero 134, un carácter 'a'

Variable: una cantidad cuyo valor puede cambiar durante la ejecución del programa, como int a; entonces a y b son ambos; variables.

Constante simbólica - Una "constante" representada por un "símbolo" se denomina "constante simbólica".

¿Cuáles son los beneficios de las constantes simbólicas? Al nombrar constantes simbólicas, el nombre dado según la costumbre es consistente con el significado real, por lo que puede "conocer el significado viendo el nombre"; necesitas modificar el valor de la constante. A veces, solo necesitas modificar la parte de definición de la constante simbólica, lo cual es muy conveniente.

Cómo definir constantes simbólicas - #define constantes simbólicas

Ejemplo: #define NÚMERO 30 /* define una constante simbólica Aquí, el símbolo NÚMERO se utiliza para representar el número entero 30. A partir de ahora en el programa, puedes

usar el símbolo NÚMERO en lugar del número entero 30 para realizar cálculos*/

main()

{

int a= 20; /* Asignar la constante 20 a la variable entera a*/

int c /* Definir la variable entera c*/

c; =NÚMERO+a; /* El valor de la variable c es 50 en este momento, y la constante simbólica NÚMERO participa en la operación*/

}

Cómo definir una variable - agregue el tipo de datos de la variable delante del nombre de la variable, para ilustrar qué tipo de datos se pueden usar para almacenar las variables definidas.

Ejemplo: int a; /* define una variable entera, que solo puede almacenar números de tipo entero en el futuro*/

char b;* define una variable de tipo carácter, en en el futuro, esta variable solo podrá almacenar datos de tipo carácter*/

Cómo asignar un valor constante a una variable definida: use un signo = para asignar el valor.

Ejemplo: int a; /* define una variable entera a*/

char b;* define una variable de carácter b*/

a=20 /* Utilice el signo = para completar la asignación. Después de la asignación, el valor de la variable a ahora es 20*/

b='d' /* Asigne el carácter constante 'd' a la variable b. , En este momento, el valor de la variable b es el carácter 'd'*/

Un método más flexible para la asignación de variables: se pueden asignar múltiples variables del mismo tipo de datos en una línea, usando comas entre variables separadas.

Ejemplo: int a,b,c,d; /* Se definen 4 variables enteras*/

char e,f,g /* Se definen 3 caracteres de tipo variable*; /

Comprensión profunda de las variables: 1) Una variable debe tener un nombre de variable. 2) La variable debe tener su tipo de datos especificado

3) Una vez que se define una variable, ocupa una ubicación en la memoria, que se llama dirección de la variable.

4) Cada variable tiene su valor correspondiente.

l Asegúrese de tener en cuenta estas cuatro características de las variables.

Precauciones al usar variables - 1) Las variables deben definirse antes de su uso. Es incorrecto utilizar una variable no definida.

2) Las variables deben definirse al inicio de una función. (Esta restricción no existe en C++)

Ejemplo: Escribe un programa para sumar 2 números enteros.

/* Ideas para resolver problemas: para sumar 2 números enteros, primero debes definir 2 variables para almacenar estos 2 números, y también necesitas 1 variable para almacenarlos

La suma de Además, entonces ***es necesario definir 3 variables enteras*/

/* Tenga en cuenta que debe prestar atención al formato de escritura cada vez que escribe un programa en C*/

main ()

{

int a,b,c;

a=20,b=30 /* Especifique el valor de la variable aquí, porque Aún no he hablado de las funciones de entrada y salida, eso es todo. */

c=a+b;

}

Piénselo, una pregunta tan simple requiere mucho conocimiento. ¿Qué conocimientos mencionados anteriormente se utilizaron?

Funciones de biblioteca en lenguaje C: cuando escribimos programas en lenguaje C, necesitamos escribir una gran cantidad de código. Estos códigos se componen de declaraciones básicas del programa, como operadores, expresiones y varias estructuras de declaraciones. Estas declaraciones forman múltiples funciones diferentes y múltiples funciones forman un programa completo.

De hecho, si usted mismo tiene que escribir todas las declaraciones en el programa, la carga de trabajo será enorme. Y hay algunas funciones que completan tareas básicas, como funciones de entrada y salida, que se utilizan con frecuencia. Muchas de estas funciones de uso común que completan tareas básicas han sido escritas para nosotros por empresas que proporcionan compiladores. Estas funciones ya escritas se colocan en los archivos del compilador TC o BC. La llamada "función de biblioteca" es un "almacén" que almacena "funciones". En TC, ¿dónde está el "almacén" de funciones? En el directorio .\LIB de TC. Al escribir un programa, si necesitamos utilizar una determinada función de biblioteca, debemos indicar dónde se almacena la función de biblioteca al comienzo del programa para que el compilador pueda encontrarla aquí. Esta declaración que especifica la ruta a una función de biblioteca se llama declaración "incluir" y se escribe #include. El método de escritura completo es:

#include

#include significa inclusión, indica que la función de biblioteca a utilizar está en stdio.h Hay instrucciones en el archivo. Se requieren corchetes angulares <>. De hecho, el compilador puede encontrar el código relevante en el archivo LIB en el directorio .\LIB según el nombre de la función de la biblioteca en el archivo stdio.h y escribirlo en el programa. Al usar diferentes funciones de biblioteca, necesita usar diferentes inclusiones. Para saber cómo usar #include, puede consultar la ayuda de la función de biblioteca.

Con numerosas funciones de biblioteca, aporta una gran comodidad a la hora de escribir programas. Como construir una casa con ladrillos y tejas. Si no hubiera ladrillos ni tejas, habría que excavar la tierra y hornear los ladrillos para construir una casa. Puedes imaginar lo difícil que sería construir una casa de esa manera. Lo mismo ocurre con la escritura de programas. Cuando necesita completar ciertas tareas, simplemente puede encontrar la función de biblioteca correspondiente y llamarla. No necesita escribir el código poco a poco. Mientras aprende a programar, debe aprender más sobre las características y el uso de algunas funciones de la biblioteca, lo que será de gran beneficio para escribir programas.

(Al escribir programas en Windows, necesita conocer más "funciones de biblioteca". Se puede decir que si no comprende las funciones de la biblioteca, no sabrá cómo programar. Se utiliza MFC en VC, y API se usa en Win32, todas son bibliotecas de funciones)

Primero comprenda las dos funciones de la biblioteca: 1. función scanf /*Formatear función de entrada de consola*/

Función prototipo: int scanf(control_string ....); /*Parece complicado. No importa, lo entenderás más tarde*/

Ejemplo de uso:

void main()

{

int a,b, c; /*Se definen tres variables enteras*/

scanf("%d%d",&a,&b); /

c=a+b; /*Enviar la suma de las variables a y b a la variable c*/

}

Hablemos de ello en detalle Uso de cada parámetro de la función scanf:

Puedes ver que hay dos %d entre paréntesis, seguidos de dos variables a y b. Dos %d se escriben como "%d%d". Tenga en cuenta que todos estos símbolos deben escribirse entre comillas dobles, mientras que las variables deben escribirse fuera de comillas dobles y separadas por comas. Este %d se llama especificador de formato. El primer %d se usa para describir la primera variable a y el segundo %d se usa para describir la segunda variable b. Este orden es una correspondencia uno a uno. El carácter de formato %d indica que el valor de la variable ingresado más tarde es un número entero.

Otra cosa a tener en cuenta es que los dos %d son %d%d que están muy juntos. En esta forma de escribir, al ingresar un número, se usa la "tecla de espacio" para separar los dos números. . para lograr. Por ejemplo, los dos números 30 y 50 se ingresan en la forma 30 50. Si los dos %ds se escriben como %d y hay una coma en medio de %d, entonces al ingresar los datos, también debe agregue una coma entre los números ingresados, como 30, 50.

Echemos un vistazo a cómo se escriben las variables. Puede ver que hay un signo delante de cada nombre de variable. Este signo significa tomar la dirección de la variable. Luego, &a se escribe junto con la dirección de la variable a. ,&b escritos juntos es la dirección de la variable b.

La función de la función scanf anterior es enviar los dos números enteros ingresados ​​desde el teclado a las direcciones de la variable a y la variable b respectivamente. Este signo comercial es muy importante, no te lo pierdas.

El especificador de formato de la función scanf (el especificador de formato describe qué tipo de datos se leerán a continuación)

El significado del código de formato

%c leer un solo carácter

%d lee un número entero

%i lee un número de punto flotante

%e lee un número de punto flotante

%f Leer un número de coma flotante

%g Leer un número de coma flotante

%o Leer un número octal

%s Leer una cadena

%x lee un número hexadecimal

%p lee un puntero

%n lee un puntero y recibe un número entero igual al número de caracteres ingresados ​​hasta el momento

%u Leer un entero sin signo

%[] Escanear un conjunto de caracteres

Ejemplo: Ingrese dos caracteres desde el teclado, uno en mayúscula y otro en minúscula, y luego conviértalo a minúsculas Los caracteres se convierten a mayúsculas y los caracteres en mayúsculas se convierten a minúsculas.

#include /*Debido a que la función de biblioteca scanf se usa en el programa, debe incluirse #include*/

void main( )

{

char ch,chh; /*Se definen dos variables de caracteres*/

scanf("%c%c",&ch,&chh ) /*Ingresa dos caracteres del teclado, uno en mayúscula y otro en minúscula*/

ch=ch+32 /*Convierte mayúsculas a minúsculas*/

chh=chh - 32; /*Convertir minúsculas a mayúsculas*/

}

2. función printf /*Formatear función de salida*/

Prototipo de función: int printf (const char *control_string...);

Explicación: printf envía el valor de una variable o una cadena constante a la consola (normalmente una pantalla de visualización)

Ejemplo de uso: < / p>

#include

void main()

{

int a,b,c

<; p> scanf("%d%d",&a,&b);

c=a+b;

printf("Resulta la suma de dos números enteros") /*; Constantes de cadena de salida, aquí no se utilizan especificadores de formato*/

printf("%d",c); /*Emite el valor de la variable c en formato entero, aquí % d es un especificador de formato entero* /

}

Si hay varios valores de variables para generar, utilice este formulario: printf("%d %d %d", a,b,c );

Se puede ver en el formato de esta salida de printf que cada carácter de formato corresponde a una variable, y el orden correspondiente también es uno a uno. El primer %d corresponde a la primera variable. a, y así sucesivamente. Tenga en cuenta que en la función printf, no agregue el signo comercial delante de la variable.

Tenga en cuenta que hay algunos espacios entre los distintos %ds en la función printf. El uso aquí es un poco diferente al de scanf. Cuántos espacios quedan entre los caracteres de formato en la función printf y cuántos espacios quedan entre cada valor de salida al generar. Por ejemplo, printf("%d %d %d",a,b,c); el resultado es: 20 30 50 (los números aquí son hipotéticos).

Si se escribe como printf("%d,%d,%d",a,b,c);, el formato de salida es 20, 30, 50

El símbolo de formato de la función printf:

Formato de código de formato

%c carácter único

%d número decimal

%i número decimal

%e representación del método científico

%E notación científica

%f número de coma flotante decimal

%g Utilice el más corto de %e o %f (si es %e, usa e minúscula)

%G usa el más corto de %e o %f (si es %E, usa E mayúscula)

%o se genera en octal formulario

%s cadena

%u número decimal sin signo

%x número hexadecimal (minúscula)

%X diez número hexadecimal ( mayúsculas)

%p muestra un puntero

%n La variable relacionada es un puntero entero, que almacena el número total de caracteres que se escribirán hasta el momento

%% imprime un signo %

Ejemplo de uso de la función Printf:

1) char ss="abcdefghijk"; printf("%s",ss); "abcdefghijk" se muestra en la pantalla*/

2) unsigned int a=65535; printf("%u",a /*Emite un número sin firmar en formato hexadecimal, mostrado como ffff*/

3) int a=123,b=456,c=687; printf("%d\t%d\n%d",a,b,c) ;

El formato de salida es:

123 456 /*'\t' es un carácter de tabulación, por lo que una tabulación debe moverse tantos espacios*/

687 /* '\n' es el carácter de escape de nueva línea, que se mencionó en las constantes de caracteres anteriores. Por lo tanto, debe cambiar una línea y luego generar 687*/

Conceptos básicos del lenguaje C (05-Operadores y expresiones): Operador (también llamado operador): un operador es una representación de una función matemática o símbolo de operación lógica. Por ejemplo, el signo '+' representa una operación de suma; el signo '&&' representa una operación lógica 'Y'. Los operadores conectan varias cantidades (constantes o variables) que deben operarse para formar una expresión.

De lo que vamos a hablar a continuación son de los operadores estándar. Hay otros operadores en C++.

Comentarios sobre la categoría de la operación realizada por el operador

[ ] Signo de puntuación espaciador

( ) Signo de puntuación espaciador

· Operador binario de selección directa de componentes< / p>

-> Operador binocular de selección de componente indirecto

++ Operador unario pre-incremento, post-incremento

-- Operador unario de cantidad pre-decremento, post-decremento

+ Agregar operador binario, operador unario

- Restar operador binario, operador unario

* 1 ) multiplicado por 2) operador binario de referencia indirecta, operador unario

/ operador binario de división

% operador binario restante

& 1) Bit 'AND' 2) Operador binario de dirección, operador unario

! Operador unario lógico 'NO'

&& Operador de operación binocular 'Y' lógico

|| Operador binario 'O' lógico

<< Operador binario de desplazamiento a la izquierda

>Operador binario de desplazamiento a la derecha

>Operador binario mayor

== Operador igual a binario

p>

!= Sin operador binario igual

^ Operador binario 'XOR' de bit

+= y operador binario de asignación

-= Binario de asignación de diferencia Operador Operador

*= Operador binario de asignación de multiplicación

/= Operador binario de asignación de cociente

<<= Operador binario de asignación de desplazamiento a la izquierda

>>= Operador binario de asignación de desplazamiento a la derecha

&= Operador binario de asignación 'AND' bit a bit

^= Operador de objeto doble de asignación XOR bit a bit

|= OR bit a bit operador binario de asignación

%= Operador binario de asignación de módulo

= Operador binario de asignación: presione Operador binario de valor condicional

, signo de puntuación separador

# Signo de puntuación de símbolo de preprocesamiento

## Signo de puntuación de símbolo de preprocesamiento

sizeof encuentra el número de bytes

~ negación bit a bit

| bit 'o'

: separator

; Spacer

... Spacer

No es fácil clasificar cuidadosamente los operadores en la tabla, porque el mismo operador tiene diferentes significados en diferentes lugares. Por ejemplo, el operador * es un operador binario cuando se usa como operación de multiplicación (el llamado operador binario significa que la operación requiere dos operandos. Por ejemplo, 3 * 6, luego 3 y 6 tienen un total de dos operandos). . Cuando se utiliza como operación de valor, es un operador unario (el llamado operador unario requiere solo un operando. Por ejemplo, para negar un número: !a, solo hay un operando a).

Hay dos características de los operadores para recordar. Una es el operando del operador y la otra es la prioridad del operador. Entre ellos, el nivel de prioridad de los operadores es el más difícil de determinar y el lugar más propenso a errores.

Antes de hablar de operadores, hablemos del concepto de “expresión”: la llamada expresión consiste en utilizar operadores para conectar cada operando en una expresión que cumple con las reglas de sintaxis de C. Las "reglas de sintaxis de C" mencionadas aquí también son muy importantes. Por ejemplo, a+b+5 es una expresión relacionada con operadores aritméticos.

1. Operadores aritméticos: +, -, *, /, %

1) +, -, *, / son suma, resta, multiplicación y división respectivamente. p>

2) % Encuentra el módulo de dos operaciones numéricas. El llamado módulo consiste en encontrar el resto después de dividir dos números. Ejemplo: El resto de 25/3 es 1. Se puede decir que el módulo de 25%3 es 1. Cabe señalar que los dos operandos deben ser números enteros durante la operación del módulo. Si encuentra 25,3/3,1, no se puede calcular.

Escribe un ejemplo a continuación:

#include /*Las funciones de la biblioteca de entrada y salida se utilizan en el programa, por lo que se incluye stdio.h*/

void main()

{

int a=10,b=20,c=30 /*Se definen e inicializan tres variables enteras al mismo tiempo. Asignación*/

a=a*b+c; /*a*b+c forma una expresión aritmética, el resultado después de la operación es 230 y el valor*/

/* Asignar a la variable a*/

printf("%d",a); /*Emite el valor de la variable a en formato entero. El resultado aquí es 230*/

a=a%b; /*Realizar el cálculo del módulo. Como no hay resto, el módulo final es 0*/

printf("%d",a /*Emite el valor de la variable a). Aquí el resultado es 0*/

}

El siguiente es un ejemplo de cómo tener en cuenta la prioridad del operador:

#include

void main()

{

int a=10,b=20,c=30;

a=c-a*b; /* Aquí se debe considerar la prioridad del operador. La prioridad del operador * es mayor que la del operador - */

/*, por lo que la operación de multiplicación se realiza primero. El resultado final aquí es -170*/

}

Como puede ver en el ejemplo anterior, la prioridad de los operadores debe considerarse en una expresión conectada por múltiples operadores. , este ejemplo es muy simple. El concepto de prioridad de operador en realidad existe en las operaciones aritméticas de los estudiantes de primaria, pero aquí hay más operadores y la situación a considerar es más complicada.

Si se reescribe esta fórmula, se escribirá como: a=(c-a)*b; durante la operación, las operaciones entre paréntesis tendrán prioridad.

Varias expresiones de operación simplificadas:

En los programas de lenguaje C, a menudo vemos operaciones como: i++ o k--; Este es el símbolo de operación Escritura simplificada.

1. La abreviatura de agregar 1 operación

Cuando una variable se agrega mediante 1 operación, como a = a + 1, esta es la variable en sí más 1, abreviada como a ++; ;

p>

2. La abreviatura de operación de resta por 1

Cuando una variable se resta por 1 operación, como a=a-1; en sí restando 1, la abreviatura es a--;

3 La abreviatura de sumar una operación constante

Cuando se suma una variable a una constante, como a = a + 5. ; esta es la variable que suma 5 a sí misma, y ​​la abreviatura es a+=5 ;

4. Abreviatura para restar una operación constante

Cuando una variable se resta de una constante, tal. como a=a-5; esta es la variable misma restando 5, abreviada como -=5;

Abreviatura para multiplicar una operación constante

Cuando una variable se multiplica por. una constante, como a = a * 5, la variable en sí se multiplica por 5. La abreviatura es a * = 5;

6 La abreviatura de dividir una operación constante

. Cuando una variable se divide por una constante, como a=a/5; esta es la variable misma Dividir por 5, abreviada como a/=5;

Asociatividad de operadores (o asociatividad)

En una expresión compleja, a menudo hay muchos operadores y variables, entonces debemos juzgar los dos factores de prioridad y asociatividad.

Ejemplo: -5+7; dicha expresión se juzga por asociatividad, porque los operadores '-' y '+' son asociativos 'izquierdos' con respecto al número en el que operan, por lo que hay ' -5' y '+7' por lo que el resultado de la operación es 2.

A través de este ejemplo, necesita saber qué son la "asociatividad izquierda" y la "asociatividad derecha".

Asociatividad izquierda: las variables (o constantes) se combinan con el operador de la izquierda

p>

Asociatividad derecha: las variables (o constantes) se combinan con el operador de la derecha

Tabla de precedencia de operadores y asociatividad

Operadores de prioridad (alta ------→Bajo) Tipo de operador asociativo

Alto ( ) [ ] -> . Operador binario de izquierda a derecha

! - * & Operador unario de derecha a izquierda

* / % Operador binario de izquierda a derecha

+ - Operador binario de izquierda a derecha

<< >> Operador binario de izquierda a derecha

< <= > >= Operador binario de izquierda a derecha

== != Operador binario de izquierda a derecha

& Operador binario de izquierda a derecha

^ Operador binario de izquierda a derecha

| Operador binario de izquierda a derecha

&& Operador binario de izquierda a derecha

|| Operador binario de izquierda a derecha

?: Operador ternario de derecha a izquierda

Bajo= += -= *= /= %= &= ^= | = <<= >>= Operador binario de izquierda a derecha

Alto-------------→ Bajo

Se puede ver una regla desde todos los operadores unarios son "asociativos por la derecha". Uno de los operadores ?: es un operador ternario y es asociativo derecho. Recuerde esta regla y dominará la asociatividad de los operadores.

Si hay muchos operadores en una línea de código, use paréntesis para determinar el orden de las operaciones de expresión y evite usar la precedencia predeterminada.

Dado que es difícil memorizar tablas, para evitar ambigüedades y mejorar la legibilidad, se deben utilizar paréntesis para determinar el orden de las operaciones de expresión. Por ejemplo:

d = (high << 8) | low /*Use paréntesis para encerrar los elementos que deben calcularse primero*/

if ((a | b) && (a & c)) /*Utilice paréntesis para encerrar lo que debe calcularse primero*/

Ejemplo:

El resultado de salida del siguiente programa es

#include

void main()

{

int a=2;

a%= 4-1;

printf("%d",a);

a+=a*=a-=a*=3;

printf( "\n%d", a);

}

A 2,0 B. 1,0

C. 2,12

Análisis: Dado que el operador %= tiene una prioridad menor que el operador -, a%=4-1 es a%=3, lo que equivale a a=a%3, que es a=2%3=2, entonces las opciones B y C son incorrectas.

La expresión a+=a*=a-=a*=3 Al calcular, tenga en cuenta que el valor de la expresión de asignación y el valor de la variable se actualizan en cualquier momento. Al calcular el valor de la expresión, a=2. al principio, la asignación de expresión es de izquierda a derecha, la expresión a*=3 hace a=6, y el valor de esta expresión también es 6, por lo que la expresión a-=a*=3 es equivalente a a -=6=6-6=0, el valor de a es 0, no es necesario realizar cálculos posteriores, por lo que el valor de a es finalmente 0.

Respuesta: A

La siguiente afirmación es incorrecta

A.x=sizeof int;

B.x=sizeof 3.14

C.printf("%d",a=a+1,b--,c+1);

D.printf("%d",++x,x++); /p>

Análisis: La opción A de esta pregunta se utiliza para probar el número de bytes de memoria ocupados por el tipo int. Debido a que el símbolo de tipo debe estar entre paréntesis, la falta de paréntesis es un error.

La opción B es correcta.

La opción C parece más complicada en la superficie, pero a=a+1,b--,c+1 es una expresión de coma que el lenguaje C permite este tipo de expresión, por lo que D también es correcta.

Respuesta: A

En la siguiente declaración, la declaración de asignación que se ajusta a la sintaxis del lenguaje C es

A.a=7+b+c=a+7 ; B.a =7+b++=a+7;

C.a=7+b,b++,a+7; D.a=7+b;c=a+7;

Análisis : General En este caso, la expresión no se puede colocar en el lado izquierdo del número de asignación, por lo que