初识C语言

这篇博客介绍了C语言的基本概念和操作,包括输出、加法运算、scanf和puts函数的使用、取模、求平均值、数据类型、转换说明符、类型转换等。通过实例展示了不同数据类型的操作和格式化输出的方法,帮助初学者理解C语言的基础知识。

1.输出你好:

#include<stdio.h>
int main (void)
{
    printf("hello world!");
    return 0;
}

2.加法运算

printf("%d",15+36);

3.scanf格式化输入函数的运用 

int f;
	printf("%d",f);scanf("%d",&f);

注:变量名前必须加上一个特殊符号&

4.puts输出函数

int n1,n2;
	puts("请输入两个整数:");
	printf("整数1:");scanf("%d",&n1);
	printf("整数2:");scanf("%d",&n2);
	printf("他们两数之和是:%d",n1+n2);

注:puts函数可以顺序输出作为实参的字符串,并在结尾换行。也就是说puts("...")与printf("...\n")的功能基本相同。在需要换行且不用格式化输出的时候,可以用puts代替printf函数。

5.取模

int n1,n2;
	n1=20,n2=3;
	printf("n1%%n2=%d",n1%n2);

注:求余数!!!前面两个百分号。

6.取两个整数,求它们的平均值

#include<stdio.h>
int main (void)
{
 	int na,nb;
 	
 	puts("请输入两个整数:");
	printf("整数A:"); scanf("%d",&na);
	printf("整数B:"); scanf("%d",&nb); 
	
	printf("它们的平均值是:%d",(na+nb)/2);
 
 	return 0;
}

运行结果截图:

 注:遵从先乘除后加减的运算法则,有括号先计算。

7.转换说明符

%c单个字符
%d十进制整数int
%ld十进制整数long
%f十进制浮点数float
%lf十进制浮点数double
%o八进制数
%s字符串char
%u无符号十进制数DWORD
%x十六进制数

oxooooD

8.int类型和double类型之间的区别

#include<stdio.h>
int main (void)
{
 	int    nx; /*整数*/ 
 	double dx;/*浮点数*/ 
 	
 	nx=9.99;
 	dx=9.99;
 	
	printf("int型变量nx的值:%d\n",nx);          /*		9		*/
	printf("		 nx / 2:%d\n",nx/2);		/*		9/2		*/
	
	printf("double型变量dx的值:%f\n",dx);		/*		9.99	*/
	printf("		 dx / 2.0:%f\n",dx/2.0);	/*	9.99/2.0	*/
	
	return 0;
}

注:在使用printf函数输出double型值时,转换说明不能使用"%d",而要使用"%f"。这些数据类型都有一些固定的属性,继承了这些属性而创建出来的实体变量被称为对象。换句话说,对象就是依照某种模具(数据类型)做出来的产品(变量也就是对象)。

9.整数常量和浮点数常量

double类型的运算

#include<stdio.h>
int main (void)
{
 	double vx,vy;
 	
 	puts("请输入两个数:");
 	printf("实数vx:");  scanf("%lf",&vx) ;
 	printf("实数vy:");  scanf("%lf",&vy) ;
 	
 	printf("vx+vy=%f\n",vx+vy);
 	printf("vx-vy=%f\n",vx-vy);
 	printf("vx*vy=%f\n",vx*vy);
 	printf("vx/vy=%f\n",vx/vy);
	 
	return 0;
}

运行截图:

 转换说明

int类型double类型
printfprintf("%d",no)printf("%f",no)
scanfscanf("%d",&no)scanf("%lf",&no)

10.数据类型和运算

验证数据类型和运算

#include<stdio.h>
int main (void)
{
 	int n1,n2,n3,n4;
 	double d1,d2,d3,d4;
 	
 	n1=5    /  2;				/*n1←2*/
 	n2=5.0  /  2.0;				/*n2←2.5(赋值时舍弃小数点以后的部分)*/
 	n3=5.0  /  2;				/*n3←2.5(赋值时舍弃小数点以后的部分)*/
 	n4=5    /  2.0;				/*n4←2.5(赋值时舍弃小数点以后的部分)*/
 	
 	d1=5    /  2;				/*	d1←2	*/
 	d2=5.0  /  2.0;				/*	d2←2.5	*/
 	d3=5.0  /  2;				/*	d3←2.5	*/
 	d4=5    /  2.0;				/*	d4←2,5 */
 	
 	printf("n1=%d\n",n1);
 	printf("n2=%d\n",n2);
 	printf("n3=%d\n",n3);
 	printf("n4=%d\n",n4);
 	
 	printf("d1=%f\n",d1);
 	printf("d2=%f\n",d2);
 	printf("d3=%f\n",d3);
 	printf("d4=%f\n",d4);
	 
	return 0;
}

运行结果:

 11. 类型转换

读取两个整数并用浮点数显示它们的平均值:

#include<stdio.h>
int main (void)
{
 	int na,nb;

 	puts("请输入两个整数:");
	printf("整数A:"); scanf("%d",&na);	
	printf("整数B:"); scanf("%d",&nb);

	printf("它们的平均值是:%f",(na+nb)/2.0);
	 
	return 0;
}

运行结果:

注:我们可以看到,在这里进行的运算是(整数+整数)/浮点数=浮点数。

读取两个整数并用实数显示它们的平均值:

#include<stdio.h>
int main (void)
{
 	int na,nb;
 	
	puts("请输入两个整数:");
	printf("整数A:"); scanf("%d",&na);	
	printf("整数B:"); scanf("%d",&nb);
	
	printf("它们的平均值是:%f",(double)(na+nb)/2);  /*类型转换 */
	 
	return 0;
}

运行截图:

 注:通常“(数据类型)表达式”形式的表达式,会把表达式的值转化为该数据类型对应的值。这样的显示转换被称为类型转换。()被称为类型转换运算符。(double)(na+nb)把na+nb的值转换为double类型的值。     

12.转换说明

读取三个整数并显示它们的合计值和平均值   

#include<stdio.h>
int main (void)
{
 	int na,nb,nc;
	int sum;
	double ave;
	
	puts("请输入三个整数:");
	printf("整数A:");scanf("%d",&na);
	printf("整数B:");scanf("%d",&nb);
	printf("整数C:");scanf("%d",&nc);
	
	sum=na+nb+nc;
	ave=(double)sum/3;          /*类型转换*/
	
	printf("它们的合计值是:%5d",sum) ;
	printf("它们的平均值是:%5.1f",ave) ;
		 
	return 0;
}

运行截图:

注:其中,%5d显示至少5位十进制整数。%5.1f显示至少5位的十进制整数,但是小数点后只显示1位。%05d就是在前面补零。

 最小字段宽度:

int main (void)
{
 	
	printf("[%d]\n",        123);                /*[123]*/
	printf("[%.4d]\n",      123);                /*[0123]*/
	printf("[%4d]\n",       123);                /*[ 123]*/
	printf("[%04d]\n",      123);                /*[0123]*/
	printf("[%-4d]\n\n",      123);              /*[123 ]*/
	
	printf("[%d]\n",          12345);                /*[12345]*/
	printf("[%.3d]\n",        12345);                /*[12345]*/
	printf("[%3d]\n",         12345);                /*[12345]*/
	printf("[%03d]\n",        12345);                /*[12345]*/
	printf("[%-3d]\n\n",        12345);              /*[12345]*/
	
	printf("[%f]\n",           123.13);                /*[123.130000]*/
	printf("[%.lf]\n",         123.13);                /*[123]*/
	printf("[%6.lf]\n\n",        123.13);              /*[ 123]*/
	
	printf("[%f]\n",           123.13);                /*[123.130000]*/
	printf("[%.lf]\n",         123.13);                /*[123]*/
	printf("[%4.lf]\n",        123.13);                /*[123]*/
		 
	return 0;
}

运行截图:

 注:如果设定了“-”,数据会左对齐显示,未设定则右对齐显示。%4.1d中的“1”是指定显示的最小位数,如果不指定,则整数的时候默认为1,浮点数的时候默认为六。

### C语言基础知识概述 C语言是一种功能强大且灵活的编程语言,具有丰富的表达能力、高效性以及广泛的适用范围[^1]。它不仅可以用于开发应用软件,还可以用来编写驱动程序、操作系统等底层系统软件。以下是一些C语言的基础知识和入门指南: #### 1. 变量声明与定义 在C语言中,变量需要先声明后使用。变量的声明包括指定数据类型和变量名。例如: ```c int myNumber; // 声明并定义了一个整型变量myNumber ``` 变量可以进行赋值操作,例如: ```c myNumber = 10; // 给变量赋值 ``` 此外,还可以通过`printf`函数输出变量的值: ```c printf("The value of myNumber is: %d\n", myNumber); // 输出变量的值 ``` #### 2. 指针的概念与使用 指针是C语言中的重要概念,用于存储变量的内存地址。定义一个指针变量时,需要指定其指向的数据类型。例如: ```c int num = 10; int *p; // p为一个整形指针变量 p = &num; // 将num的地址赋值给p ``` 可以通过指针修改其所指向的变量值: ```c *p = 20; // 通过指针修改num的值 ``` #### 3. 指针的大小 指针变量的大小取决于平台的位数。在32位平台上,指针大小为4字节;而在64位平台上,指针大小为8字节[^2]。例如: ```c #include <stdio.h> int main() { printf("%zu\n", sizeof(char *)); // 输出char指针的大小 printf("%zu\n", sizeof(int *)); // 输出int指针的大小 return 0; } ``` #### 4. 结构体的使用 结构体是C语言中用于描述复杂数据类型的重要工具。通过结构体,可以将不同类型的数据组合在一起。例如,定义一个学生结构体: ```c struct Student { char name[50]; // 学生名字 int age; // 学生年龄 char gender; // 学生性别 int id; // 学生学号 }; ``` 可以通过创建结构体变量来存储具体的学生信息: ```c struct Student student1; strcpy(student1.name, "Alice"); student1.age = 20; student1.gender = 'F'; student1.id = 1001; ``` #### 5. 程序的基本结构 一个完整的C语言程序通常包括头文件包含、函数定义和主函数部分。例如: ```c #include <stdio.h> // 包含标准输入输出库 int main() { // 主函数 int myNumber = 10; // 定义并初始化变量 printf("The value of myNumber is: %d\n", myNumber); return 0; // 返回0表示程序正常结束 } ``` ### 总结 C语言的基础知识涵盖了变量声明与定义、指针的使用、结构体的设计以及程序的基本结构等内容。掌握这些内容是学习C语言的第一步,同时也是进入编程世界的必修课。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ecstatic123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值