C语言编程实例
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
C语言编程实例 /*格式化输入输出 */ #include "stdio.h" void main() { int int_a,int_x; /*变量数据类型定义*/ unsigned int uint_d; char char_e; float float_pi,float_y; double double_pi,double_z; char string[]="This is Turbo C"; int_a=1024; /*变量赋值*/ char_e='z'; float_pi=3.14159; double_pi=3.1415926535898; printf("int_a=%d\n",int_a); /*变量数据不同格式输出*/ printf("int_a=%#o\n",int_a); //8进制输出 printf("int_a=%#x\n",int_a); //16进制输出 printf("char_e=%c\n",char_e); //字符型输出 printf("float_pi=%f\n",float_pi); //浮点型输出 printf("double_g=%15.14g\n",double_pi); //15位双精度输出 printf("string=%s\n",string); //字符串型输出 printf("int_a=%7d\n",int_a); //7位格式输出,左补空 printf("int_a=%e\n",int_a); //指数类型输出 uint_d=42000; printf("uint_d=%u\n",uint_d); //无符号整型输出 printf("float_pi=%f\n",float_pi); //标准浮点型输出 printf("float_pi=%12f\n",float_pi); //12位浮点型输出,左补空 printf("float_pi=%12.5f\n",float_pi); //12位浮点型输出,5位小数,左补空 puts("Please enter a int number:");//输出一行字符串并换行 scanf("%d",&int_x); //输入不同类型数据 puts("Please enter a float number:"); scanf("%f",&float_y); puts("Please enter a double number:"); scanf("%lg",&double_z); printf("int_x=%d\n",int_x);//以不同格式输出 printf("float_y=%f\n",float_y); printf("double_z=%g\n",double_z); } /* 编程使用宏定义可增加程序的可读性,也便于修改。如在程序中的多个 循环体内需要使用同一个数值时,而要修改此数值时通过修改一次宏定义 的值即可。另外使用宏定义可以增加程序的运行速度,无需在调用时重复 使用堆栈,所以在单片机编程要求速度快时常使用宏定义 */ #include "stdio.h" #define wrong_squr(A) A*A //错误的宏定义 #define right_squr(A) (A)*(A)//正确的宏定义 #define wrong_add(A) (A)+(A) #define right_add(A) ((A)+(A)) #define Max(x,y) (((x)>(y))?(x):(y))//去二值较大者 #define start 1 #define stop 3 #define step 1 void main() { int i,offset=2; for(i=start;i<=stop;i+=step) { //输出正确平方结果 printf("The right square of %d=%d\n",i+offset,right_squr(i+offset)); //输出错误平方结果 printf("The wrong square of %d=%d\n",i+offset,wrong_squr(i+offset)); } for(i=start;i<=stop;i+=step) { //输出错误和正确的求和结果 printf("Error add =%d,right add=%d\n",4*wrong_add(i),5*right_add(i)); } //输出二值最大者 printf("Maximum of 2.8 and 3.2 is %f\n",Max(2.8,3.2)); //预处理判断C编译器是否定义_STDC_ #ifdef _STDC_ printf("ANSI C compliance\n"); #else printf("Not in ANSI C mode\n"); #endif } /*位运算只能用于整型变量,并且多用于无符号整型。位运算常用在硬件开关量控制、通信信号控制、加密解密运算等环境下,另外大部分的C编译器提供了循环左移函数_rotl()和循环右移函数_rotr(),而"<<"和">>"移位补零 */ #include "stdio.h" #include "stdlib.h" #define MASK 0xffL //宏定义MASK,带上‘L’为声明一个长整型数值 void main() { unsigned long IP_address;//定义一个IP地址变量 unsigned int HighByte,SecondByte,ThirdByte,LastByte;//定义IP定制的四部分整型变量 unsigned int_a=0x01; printf("Please enter hex IP address:"); scanf("%lx",&IP_address);//输入一个长整型十六进制的IP地址 //将IP地址的第31-24位右移24位至7-0位上,保留低八位值并赋给变量HighByte HighByte=(IP_address>>24)&MASK; //将IP地址的第23-16位右移16位至7-0位上,保留低八位值并赋给变量SecondByte SecondByte=(IP_address>>16)&MASK; //将IP地址的第15-8位右移8位至7-0位上,保留低八位值并赋给变量ThirdByte ThirdByte=(IP_address>>8)&MASK; //将IP地址的第7-0位,保留低八位值并赋给变量LastByte LastByte=(IP_address&MASK); //输出长度为8的十六进制数 printf("Your enter %#08lx\n",IP_address); //显示移位得到的IP四个整型数值 printf("The IP address is:%d.%d.%d.%d\n",HighByte,SecondByte,ThirdByte,LastByte); //循环左移 printf("%u rotated left twice=%u\n",int_a,_rotl(int_a,2)); //循环右移 printf("%u rotated right one=%u\n",int_a,_rotr(int_a,1)); } 本文来源:https://www.wddqw.com/doc/d762fa0ff12d2af90242e69b.html