Experimento 2 del curso de diseño de algoritmos y lenguaje C: tipos de datos, operadores y entrada y salida simples

Experimento 2 del curso de diseño de algoritmos y lenguaje C: tipos de datos, operadores y entrada y salida simples

inserte la descripción de la imagen aquí

1. Propósito del experimento

inserte la descripción de la imagen aquí

  • (1) Dominar los tipos de datos del lenguaje C y comprender la relación interna entre los datos de caracteres y los datos enteros.
  • (2) Dominar los métodos de entrada correctos para varios datos numéricos.
  • (3) Aprenda a usar los operadores aritméticos relevantes de C, así como las expresiones que contienen estos operadores, especialmente el uso de operadores de autoincremento ( + + ) y autodecremento (- -).
  • (4) Aprenda a escribir y ejecutar aplicaciones simples.
  • (5) Familiarizarse más con el proceso de edición, compilación, enlace y ejecución de programas C.

2. Contenido experimental

2.1 Ingrese y ejecute el programa dado en el Capítulo 3, Pregunta 4 del libro de texto:

(1) Ingrese y ejecute el programa dado en el Capítulo 3, Pregunta 4 del libro de texto de la siguiente manera:

#include <stdio.h>

int main()
{
    
    
	char cl, c2;
	cl = 97;
	c2 = 98;
	printf("%c %c\n"cl, c2);
	printf("%d %d\n", cl, c2);
	return 0;
}
  • ① Ejecute el programa anterior y analice por qué se emite la información.

  • ②Si cambia las líneas 4 y 5 del programa a

cl = 197;
c2 = 198;

¿Qué información se generará cuando se ejecute? ¿Por qué?

  • ③ Si la tercera línea del programa se cambia a
int cl,c2;

¿Qué información se generará cuando se ejecute? ¿Por qué?

2.2 Ingrese al programa del Capítulo 3, Pregunta 5

(2) Ingrese el programa en el Capítulo 3, Pregunta 5. Es decir:
use la siguiente función scanf para ingresar datos para hacer a = 3, b = 7, x = 8.5, y = 71.82, cl = 'A' , c2 = 'a'. Preguntar cómo escribir en el teclado?

#include <stdio.h>
int main()
{
    
    
	int a, b;
	float x, y;
	char c1, c2;
	scanf("a=%d b=%d", &a, &b);
	scanf("%f %e", &x, &y);
	scanf("%c%c", &c1, &c2);
	return 0;
}

Al ejecutar, ingrese datos de las siguientes maneras, observe los resultados de salida y analice las razones.
inserte la descripción de la imagen aquí

A través de esta pregunta, resuma las reglas de los datos de entrada y los lugares que son propensos a errores.

2.3 Ingrese al siguiente programa:

Ingresa al siguiente programa:

#include <stdio.h>	
int main()
{
    
    
	int i, j, m, n;
	i = 8;
	j = 10;
	m = ++i; n = j ++;
	printf("%d, %d, %d, %d\n", i, j, m, n);
	return 0;
}

① Compile y ejecute el programa, preste atención a los valores de las variables i, j, m, n.
② Cambie las líneas 6 y 7 a

m = i++;
n = ++j;

Luego compile y ejecute, y analice los resultados.
③ Programa cambiado a

#include <stdio.h>
int main()
{
    
    
	int i, j;
	i = 8;
	j = 10;
	printf("%d,%d\n", i++, j ++);
}

Luego compile y ejecute, y analice los resultados.
④ Sobre la base de ③, cambie la instrucción printf a

printf("%d, %d\n", ++i, ++j);

Compilar y ejecutar de nuevo.
⑤ Cambie la instrucción printf a

printf("%d, %d, %d, %d\n", i, j, i++, j++);

Luego compile y ejecute, y analice los resultados.
⑥ El programa se cambia a:

#include <stdio.h>
int main()
{
    
    
	int i, j, m = 0, n = 0;
	i = 8;
	j = 10;
	m += i ++; n -= --j;
	printf("i= %d,j= %d,m= %d,n= %d\n", i, j, m, n);
	return 0;
}

Luego compile y ejecute, y analice los resultados.

2.4 Pregunta de diseño del programa: si la tasa de crecimiento anual del PNB de mi país es del 9%, calcule el aumento porcentual del PNB de mi país dentro de 10 años. Programación.

(4) Si la tasa de crecimiento anual del PNB de mi país es del 9%, calcule el aumento porcentual del PNB de mi país dentro de 10 años. Escribe un programa (Capítulo 3, Pregunta 1)
La fórmula de cálculo es:inserte la descripción de la imagen aquí

r es la tasa de crecimiento anual, n es el número de años y p es el múltiplo comparado con el presente.

  • ① Ingrese el programa compilado por usted mismo, compile y ejecute, y analice los resultados de la ejecución.
  • ② La tasa de crecimiento anual no se especifica en el programa; en su lugar, use la función scanf para ingresar e ingrese 7%, 8% y 10% respectivamente. Resultados de la observación.
  • ③ Agregue la declaración de la función printf en el programa para indicar qué datos ingresar y explicar qué datos generar.

3. Pasos experimentales

inserte la descripción de la imagen aquí

3.1 Tipos de datos, operadores y entrada y salida simple Experimento Tema 1: Ingrese y ejecute el programa dado en el Capítulo 3, Pregunta 4 del libro de texto:

(1) Ingrese y ejecute el programa dado en el Capítulo 3, Pregunta 4 del libro de texto de la siguiente manera:

#include <stdio.h>

int main()
{
    
    
	char cl, c2;
	cl = 97;
	c2 = 98;
	printf("%c %c\n"cl, c2);
	printf("%d %d\n", cl, c2);
	return 0;
}
  • ① Ejecute el programa anterior y analice por qué se emite la información.

Ejecute el programa anterior, la salida de esta información es la siguiente

inserte la descripción de la imagen aquí

 error C2146: 语法错误: 缺少“)(在标识符“cl”的前面)
 warning C4473: “printf”: 没有为格式字符串传递足够的参数
 message : 占位符和其参数预计 2 可变参数,但提供的却是 0 参数
 message : 缺失的可变参数 1 为格式字符串“%c”所需
 error C2059: 语法错误:)2>已完成生成项目“2-数据类型、运算符和简单的输入输出.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 1 个,失败 1 个,跳过 0==========

El motivo del error es que printf("%c %c\n"cl, c2);falta una coma delante de c1.
ha sido cambiado para verse así

printf("%c %c\n", cl, c2);

La operación de compilación puede pasar, como se muestra a continuación

inserte la descripción de la imagen aquí

  • ②Si cambia las líneas 4 y 5 del programa a
cl = 197;
c2 = 198;

¿Qué información se generará cuando se ejecute? ¿Por qué?

Si cambia las líneas 4 y 5 del programa a
cl = 197;
c2 = 198;
los resultados de ejecución son los siguientes

inserte la descripción de la imagen aquí

Puedes ver que la salida es
??
-59 -58

  • ③ Si la tercera línea del programa se cambia a
int cl,c2;

¿Qué información se generará cuando se ejecute? ¿Por qué?

Si la tercera línea del programa se cambia a
int cl, c2,
el resultado de salida es el siguiente

inserte la descripción de la imagen aquí

Cambie la línea 3 a
int cl, c2;
el resultado de salida es
ab
97 98

3.2 Tipos de datos, operadores y entrada y salida simple Experimento Tema 2: Entrada al programa del Capítulo 3, Pregunta 5

(2) Ingrese el programa en el Capítulo 3, Pregunta 5. Es decir:
use la siguiente función scanf para ingresar datos para hacer a = 3, b = 7, x = 8.5, y = 71.82, cl = 'A' , c2 = 'a'. Preguntar cómo escribir en el teclado?

#include <stdio.h>
int main()
{
    
    
	int a, b;
	float x, y;
	char c1, c2;
	scanf("a=%d b=%d", &a, &b);
	scanf("%f %e", &x, &y);
	scanf("%c%c", &c1, &c2);
	printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n", a, b, x, y, c1, c2);
	return 0;
}

Al ejecutar, ingrese datos de las siguientes maneras, observe los resultados de salida y analice las razones.
inserte la descripción de la imagen aquí

Como ingresar datos

  1. a=3,b=7,x=8.5,y=71.82,A,a gira

Los resultados de entrada y salida son los siguientes

a=3,b=7,x=8.5,y=71.82,A,a
a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=,,c2=b

inserte la descripción de la imagen aquí

  1. a=3 b=7 x=8.5 y=71.82 A

Los resultados de entrada y salida son los siguientes

a=3 b=7 x=8.5 y=71.82 A a
a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=b,c2==

inserte la descripción de la imagen aquí

  1. a=3 b=7 8.5 71.82 A

Los resultados de entrada y salida son los siguientes

a=3 b=7 8.5 71.82 A a
a=3,b=7,x=8.500000,y=71.820000,c1= ,c2=A

inserte la descripción de la imagen aquí

  1. a=3 b=7 8.5 71.82AaEntrar

Los resultados de entrada y salida son los siguientes

a=3 b=7 8.5 71.82Aa
a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a

inserte la descripción de la imagen aquí

  1. 3 7 8.5 71.82AaEntrar

Los resultados de entrada y salida son los siguientes

3 7 8.5 71.82Aa
a=-858993460,b=-858993460,x=3.000000,y=7.000000,c1= ,c2=8

inserte la descripción de la imagen aquí

  1. a=3 b=7 entrar
    8.5 71.82 entrar
    A entrar
    a entrar

Los resultados de entrada y salida son los siguientes

a=3 b=7
8.5 71.82
A
a=3,b=7,x=8.500000,y=71.820000,c1=
,c2=A

inserte la descripción de la imagen aquí

  1. a=3 b=7 Entrar
    8.5 71.82 Entrar
    Aa Entrar

Los resultados de entrada y salida son los siguientes

a=3 b=7
8.5 71.82
Aa
a=3,b=7,x=8.500000,y=71.820000,c1=
,c2=A

inserte la descripción de la imagen aquí
8. a=3 b=7 Entrar
8.5 71.82Aa Entrar

Los resultados de entrada y salida son los siguientes

a=3 b=7
8.5 71.82Aa
a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a

inserte la descripción de la imagen aquí

A través de esta pregunta, resuma las reglas de los datos de entrada y los lugares que son propensos a errores.

  • scanf("a=%d b=%d", &a, &b);Al ingresar, debe a=%d b=%dser consistente con:a=3 b=7
  • scanf("%f %e", &x, &y);Al ingresar, debe %f %eser consistente con:8.5 71.82

3.3 Tipos de datos, operadores y entrada y salida simple Experimento tema 3: Ingrese el siguiente programa:

Ingresa al siguiente programa:

#include <stdio.h>	
int main()
{
    
    
	int i, j, m, n;
	i = 8;
	j = 10;
	m = ++i; n = j ++;
	printf("%d, %d, %d, %d\n", i, j, m, n);
	return 0;
}

① Compile y ejecute el programa, preste atención a los valores de las variables i, j, m, n.

Ejecute el programa anterior, el resultado es el siguiente

inserte la descripción de la imagen aquí

++i es agregar uno a la variable en sí primero y luego asignarlo a la variable m.
j ++ significa que la variable se asigna primero a la variable n, y luego se agrega una a sí misma.
Entonces m=9, n=10

② Cambie las líneas 6 y 7 a

m = i++;
n = ++j;

Luego compile y ejecute el programa anterior, el resultado es el siguiente

inserte la descripción de la imagen aquí

i ++ es asignar la variable a la variable m primero y luego agregar una a sí misma.
++j es agregar uno a la variable en sí primero y luego asignarlo a la variable m.
Entonces m=8, n=11

  • El análisis de 3-6 es similar al análisis de 1-2.

③ Programa cambiado a

#include <stdio.h>
int main()
{
    
    
	int i, j;
	i = 8;
	j = 10;
	printf("%d,%d\n", i++, j ++);
}

Luego compile y ejecute el programa anterior, el resultado es el siguiente

inserte la descripción de la imagen aquí

④ Sobre la base de ③, printfcambie la declaración a

printf("%d, %d\n", ++i, ++j);

Luego compile y ejecute el programa anterior, el resultado es el siguiente

inserte la descripción de la imagen aquí

⑤ Cambie la instrucción printf a

printf("%d, %d, %d, %d\n", i, j, i++, j++);

Luego compile y ejecute el programa anterior, el resultado es el siguiente

inserte la descripción de la imagen aquí

⑥ El programa se cambia a:

#include <stdio.h>
int main()
{
    
    
	int i, j, m = 0, n = 0;
	i = 8;
	j = 10;
	m += i ++; n -= --j;
	printf("i= %d,j= %d,m= %d,n= %d\n", i, j, m, n);
	return 0;
}

Luego compile y ejecute el programa anterior, el resultado es el siguiente

inserte la descripción de la imagen aquí

3.4 Tipos de datos, operadores y experimentos simples de entrada y salida Tema 4: Pregunta de diseño del programa: Si la tasa de crecimiento anual del PNB de mi país es del 9%, calcule el porcentaje de aumento del PNB de mi país dentro de 10 años. Programación.

(4) Si la tasa de crecimiento anual del PNB de mi país es del 9%, calcule el aumento porcentual del PNB de mi país dentro de 10 años. Escribe un programa (Capítulo 3, Pregunta 1)
La fórmula de cálculo es:inserte la descripción de la imagen aquí

r es la tasa de crecimiento anual, n es el número de años y p es el múltiplo comparado con el presente.

  • ① Ingrese el programa compilado por usted mismo, compile y ejecute, y analice los resultados de la ejecución.

3.4.1 Escribir programas

Escriba el programa de la siguiente manera

3.4.1.1, el porcentaje de cálculo del método de bucle for es el siguiente

	//for 循环方式计算
	for (int i = 0; i < n; i++)
	{
    
    
		p = p * (1 + r);
	}

	printf("%.3lf\n", p);

3.4.1.2 El método para llamar a la función matemática para calcular el porcentaje es el siguiente

	// 调用math函数方式
	p = 1.0;
	r = 0.09;
	n = 10;

	p = pow(1 + r, n);
	printf("%.3lf\n", p);

3.4.1.3, el método de bucle for y el método de llamar a la función matemática para calcular el porcentaje para formar un programa integral es el siguiente

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    
    
	system("color 3E");

	double p, r;
	int n;

	p = 1.0;
	r = 0.09;
	n = 10;

	// for 循环方式
	for (int i = 0; i < n; i++)
	{
    
    
		p = p * (1 + r);
	}

	printf("%.3lf\n", p);
	
	// 调用math函数方式
	p = 1.0;
	r = 0.09;
	n = 10;

	p = pow(1 + r, n);
	printf("%.3lf\n", p);

	system("pause");
	return 0;
}

El resultado de la compilación del programa es el siguiente

inserte la descripción de la imagen aquí

  • ② La tasa de crecimiento anual no se especifica en el programa; en su lugar, use la función scanf para ingresar e ingrese 7%, 8% y 10% respectivamente. Resultados de la observación.

3.4.2 Cambiar la tasa de interés anual al método de entrada

El procedimiento es el siguiente

	p = 1.0;
	//r = 0.09;
	n = 10;

	scanf("%lf", &r);

	// for 循环方式
	for (int i = 0; i < n; i++)
	{
    
    
		p = p * (1 + r);
	}

	printf("%.3lf\n\n", p);
	
	// 调用math函数方式
	p = 1.0;
	//r = 0.09;
	n = 10;
	
	scanf("%lf", &r);

	p = pow(1 + r, n);
	printf("%.3lf\n", p);

Ingrese 7%,8%,10%los resultados de ejecución respectivamente de la siguiente manera

  1. 7%

inserte la descripción de la imagen aquí
2. 8%

inserte la descripción de la imagen aquí

  1. 10%

inserte la descripción de la imagen aquí

3.4.3 Agregar declaración de la función printf en el programa

③ Agregue la declaración de la función printf en el programa para indicar qué datos ingresar y explicar qué datos generar.
Agrega printfla siguiente declaración

	printf("输入年利率: ");
	printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p);

El resultado de ejecutar el programa es el siguiente

inserte la descripción de la imagen aquí

4. Resumen experimental

inserte la descripción de la imagen aquí

Esta vez, aprobé el experimento 2 del curso de lenguaje C y diseño de algoritmos: tipos de datos, operadores y entrada y salida simple. Domina los siguientes puntos.

  • (1) Dominar los tipos de datos del lenguaje C y comprender la relación interna entre los datos de caracteres y los datos enteros.
  • (2) Dominar los métodos de entrada correctos para varios datos numéricos.
  • (3) Aprenda a usar los operadores aritméticos relevantes de C, así como las expresiones que contienen estos operadores, especialmente el uso de operadores de autoincremento ( + + ) y autodecremento (- -).
  • (4) Aprenda a escribir y ejecutar aplicaciones simples.
  • (5) Familiarizarse más con el proceso de edición, compilación, enlace y ejecución de programas C.

5. El procedimiento completo del experimento.

inserte la descripción de la imagen aquí

5.1 Tipos de datos, operadores y entrada y salida simple Experimento Tema 1: Ingrese y ejecute el programa completo del programa dado en el Capítulo 3, Pregunta 4 del libro de texto

El programa completo es el siguiente

#include <stdio.h>

int main()
{
    
    
	/*char cl, c2;*/
	int cl, c2;
	cl = 97;
	c2 = 98;
	printf("%c %c\n", cl, c2);
	printf("%d %d\n", cl, c2);
	return 0;
}

5.2 Tipos de datos, operadores y entrada y salida simple Experimento Tema 2: Ingrese el programa completo del programa en el Capítulo 3, Pregunta 5

El programa completo es el siguiente

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
int main()
{
    
    
	int a, b;
	float x, y;
	char c1, c2;
	scanf("a=%d b=%d", &a, &b);
	scanf("%f %e", &x, &y);
	scanf("%c%c", &c1, &c2);
	printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n", a, b, x, y, c1, c2);
	return 0;
}


5.3 Tipos de datos, operadores y experimentos simples de entrada y salida Tema 3: Ingrese el programa completo del siguiente programa

El programa completo es el siguiente

#include <stdio.h>	
int main()
{
    
    
	//int i, j, m, n;
	//i = 8;
	//j = 10;
	///*m = ++i; n = j++;*/
	//m = i++;
	//n = ++j;
	//printf("%d, %d, %d, %d\n", i, j, m, n);

	/*int i, j;
	i = 8;
	j = 10;*/
	/*printf("%d,%d\n", i++, j++);*/
	/*printf("%d, %d\n", ++i, ++j);*/
	/*printf("%d, %d, %d, %d\n", i, j, i++, j++);*/

	int i, j, m = 0, n = 0;
	i = 8;
	j = 10;
	m += i++; n -= --j;
	printf("i= %d,j= %d,m= %d,n= %d\n", i, j, m, n);
	return 0;
}

5.4 Tipos de datos, operadores y experimentos simples de entrada y salida Tema 4: Pregunta de diseño del programa: Si la tasa de crecimiento anual del PNB de mi país es del 9%, calcule el porcentaje de aumento del PNB de mi país dentro de 10 años. Programa completo para escribir programas.

El programa completo es el siguiente

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    
    
	system("color 3E");

	double p, r;
	int n;

	p = 1.0;
	//r = 0.09;
	n = 10;

	printf("输入年利率: ");
	scanf("%lf", &r);

	// for 循环方式
	for (int i = 0; i < n; i++)
	{
    
    
		p = p * (1 + r);
	}

	printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p);


	// 调用math函数方式
	p = 1.0;
	//r = 0.09;
	n = 10;
	
	printf("输入年利率: ");
	scanf("%lf", &r);

	p = pow(1 + r, n);
	printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p);

	system("pause");
	return 0;
}


inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/m0_47419053/article/details/128507253
Recomendado
Clasificación