c语言程序大全?c语言编程题经典100例
大家好,如果您还对c语言程序大全不太了解,没有关系,今天就由本站为大家分享c语言程序大全的知识,包括c语言编程题经典100例的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
求C语言库函数大全!请大家帮忙!谢了!
int isalpha(int ch)若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0
int isalnum(int ch)若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')
返回非0值,否则返回0
int isascii(int ch)若ch是字符(ASCII码中的0-127)返回非0值,否则返回0
int iscntrl(int ch)若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)
返回非0值,否则返回0
int isdigit(int ch)若ch是数字('0'-'9')返回非0值,否则返回0
int isgraph(int ch)若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0
int islower(int ch)若ch是小写字母('a'-'z')返回非0值,否则返回0
int isprint(int ch)若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0
int ispunct(int ch)若ch是标点字符(0x00-0x1F)返回非0值,否则返回0
int isspace(int ch)若ch是空格(''),水平制表符('\t'),回车符('\r'),
走纸换行('\f'),垂直制表符('\v'),换行符('\n')
返回非0值,否则返回0
int isupper(int ch)若ch是大写字母('A'-'Z')返回非0值,否则返回0
int isxdigit(int ch)若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,
否则返回0
int tolower(int ch)若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')
int toupper(int ch)若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')
========数学函数(原型声明所在头文件为math.h、stdlib.h、string.h、float.h)===========
int abs(int i)返回整型参数i的绝对值
double cabs(struct complex znum)返回复数znum的绝对值
double fabs(double x)返回双精度参数x的绝对值
long labs(long n)返回长整型参数n的绝对值
double exp(double x)返回指数函数ex的值
double frexp(double value,int*eptr)返回value=x*2n中x的值,n存贮在eptr中
double ldexp(double value,int exp);返回value*2exp的值
double log(double x)返回logex的值
double log10(double x)返回log10x的值
double pow(double x,double y)返回xy的值
double pow10(int p)返回10p的值
double sqrt(double x)返回x的开方
double acos(double x)返回x的反余弦cos-1(x)值,x为弧度
double asin(double x)返回x的反正弦sin-1(x)值,x为弧度
double atan(double x)返回x的反正切tan-1(x)值,x为弧度
double atan2(double y,double x)返回y/x的反正切tan-1(x)值,y的x为弧度
double cos(double x)返回x的余弦cos(x)值,x为弧度
double sin(double x)返回x的正弦sin(x)值,x为弧度
double tan(double x)返回x的正切tan(x)值,x为弧度
double cosh(double x)返回x的双曲余弦cosh(x)值,x为弧度
double sinh(double x)返回x的双曲正弦sinh(x)值,x为弧度
double tanh(double x)返回x的双曲正切tanh(x)值,x为弧度
double hypot(double x,double y)返回直角三角形斜边的长度(z),
x和y为直角边的长度,z2=x2+y2
double ceil(double x)返回不小于x的最小整数
double floor(double x)返回不大于x的最大整数
void srand(unsigned seed)初始化随机数发生器
int rand()产生一个随机数并返回这个数
double poly(double x,int n,double c[])从参数产生一个多项式
double modf(double value,double*iptr)将双精度数value分解成尾数和阶
double fmod(double x,double y)返回x/y的余数
double frexp(double value,int*eptr)将双精度数value分成尾数和阶
double atof(char*nptr)将字符串nptr转换成浮点数并返回这个浮点数
double atoi(char*nptr)将字符串nptr转换成整数并返回这个整数
double atol(char*nptr)将字符串nptr转换成长整数并返回这个整数
char*ecvt(double value,int ndigit,int*decpt,int*sign)
将浮点数value转换成字符串并返回该字符串
char*fcvt(double value,int ndigit,int*decpt,int*sign)
将浮点数value转换成字符串并返回该字符串
char*gcvt(double value,int ndigit,char*buf)
将数value转换成字符串并存于buf中,并返回buf的指针
char*ultoa(unsigned long value,char*string,int radix)
将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char*ltoa(long value,char*string,int radix)
将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char*itoa(int value,char*string,int radix)
将整数value转换成字符串存入string,radix为转换时所用基数
double atof(char*nptr)将字符串nptr转换成双精度数,并返回这个数,错误返回0
int atoi(char*nptr)将字符串nptr转换成整型数,并返回这个数,错误返回0
long atol(char*nptr)将字符串nptr转换成长整型数,并返回这个数,错误返回0
double strtod(char*str,char**endptr)将字符串str转换成双精度数,并返回这个数,
long strtol(char*str,char**endptr,int base)将字符串str转换成长整型数,
并返回这个数,
int matherr(struct exception*e)
用户修改数学错误返回信息函数(没有必要使用)
double _matherr(_mexcep why,char*fun,double*arg1p,
double*arg2p,double retval)
用户修改数学错误返回信息函数(没有必要使用)
unsigned int _clear87()清除浮点状态字并返回原来的浮点状态
void _fpreset()重新初使化浮点数学程序包
unsigned int _status87()返回浮点状态字
============目录函数(原型声明所在头文件为dir.h、dos.h)================
int chdir(char*path)使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成
功返回0
int findfirst(char*pathname,struct ffblk*ffblk,int attrib)查找指定的文件,成功
返回0
pathname为指定的目录名和文件名,如"C:\\WPS\\TXT"
ffblk为指定的保存文件信息的一个结构,定义如下:
┏━━━━━━━━━━━━━━━━━━┓
┃struct ffblk┃
┃{┃
┃ char ff_reserved[21];/*DOS保留字*/┃
┃ char ff_attrib;/*文件属性*/┃
┃ int ff_ftime;/*文件时间*/┃
┃ int ff_fdate;/*文件日期*/┃
┃ long ff_fsize;/*文件长度*/┃
┃ char ff_name[13];/*文件名*/┃
┃}┃
┗━━━━━━━━━━━━━━━━━━┛
attrib为文件属性,由以下字符代表
┏━━━━━━━━━┳━━━━━━━━┓
┃FA_RDONLY只读文件┃FA_LABEL卷标号┃
┃FA_HIDDEN隐藏文件┃FA_DIREC目录┃
┃FA_SYSTEM系统文件┃FA_ARCH档案┃
┗━━━━━━━━━┻━━━━━━━━┛
例:
struct ffblk ff;
findfirst("*.wps",&ff,FA_RDONLY);
int findnext(struct ffblk*ffblk)取匹配finddirst的文件,成功返回0
void fumerge(char*path,char*drive,char*dir,char*name,char*ext)
此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名
存与path中.
int fnsplit(char*path,char*drive,char*dir,char*name,char*ext)
此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相应的变量中.
int getcurdir(int drive,char*direc)此函数返回指定驱动器的当前工作目录名称
drive指定的驱动器(0=当前,1=A,2=B,3=C等)
direc保存指定驱动器当前工作路径的变量成功返回0
char*getcwd(char*buf,iint n)此函数取当前工作目录并存入buf中,直到n个字
节长为为止.错误返回NULL
int getdisk()取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)
int setdisk(int drive)设置要使用的驱动器drive(0=A,1=B,2=C等),
返回可使用驱动器总数
int mkdir(char*pathname)建立一个新的目录pathname,成功返回0
int rmdir(char*pathname)删除一个目录pathname,成功返回0
char*mktemp(char*template)构造一个当前目录上没有的文件名并存于template中
char*searchpath(char*pathname)利用MSDOS找出文件filename所在路径,
,此函数使用DOS的PATH变量,未找到文件返回NULL
===========进程函数(原型声明所在头文件为stdlib.h、process.h)===========
void abort()此函数通过调用具有出口代码3的_exit写一个终止信息于stderr,
并异常终止程序。无返回值
int exec…装入和运行其它程序
int execl( char*pathname,char*arg0,char*arg1,…,char*argn,NULL)
int execle( char*pathname,char*arg0,char*arg1,…,
char*argn,NULL,char*envp[])
int execlp( char*pathname,char*arg0,char*arg1,…,NULL)
int execlpe(char*pathname,char*arg0,char*arg1,…,NULL,char*envp[])
int execv( char*pathname,char*argv[])
int execve( char*pathname,char*argv[],char*envp[])
int execvp( char*pathname,char*argv[])
int execvpe(char*pathname,char*argv[],char*envp[])
exec函数族装入并运行程序pathname,并将参数
arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1
在exec函数族中,后缀l、v、p、e添加到exec后,
所指定的函数将具有某种操作能力
有后缀 p时,函数可以利用DOS的PATH变量查找子程序文件。
l时,函数中被传递的参数个数固定。
v时,函数中被传递的参数个数不固定。
e时,函数传递指定参数envp,允许改变子进程的环境,
无后缀e时,子进程使用当前程序的环境。
void _exit(int status)终止当前程序,但不清理现场
void exit(int status)终止当前程序,关闭所有文件,写缓冲区的输出(等待输出),
并调用任何寄存器的"出口函数",无返回值
int spawn…运行子程序
int spawnl( int mode,char*pathname,char*arg0,char*arg1,…,
char*argn,NULL)
int spawnle( int mode,char*pathname,char*arg0,char*arg1,…,
char*argn,NULL,char*envp[])
int spawnlp( int mode,char*pathname,char*arg0,char*arg1,…,
char*argn,NULL)
int spawnlpe(int mode,char*pathname,char*arg0,char*arg1,…,
char*argn,NULL,char*envp[])
int spawnv( int mode,char*pathname,char*argv[])
int spawnve( int mode,char*pathname,char*argv[],char*envp[])
int spawnvp( int mode,char*pathname,char*argv[])
int spawnvpe(int mode,char*pathname,char*argv[],char*envp[])
spawn函数族在mode模式下运行子程序pathname,并将参数
arg0(arg1,arg2,argv[],envp[])传递给子程序.出错返回-1
mode为运行模式
mode为 P_WAIT表示在子程序运行完后返回本程序
P_NOWAIT表示在子程序运行时同时运行本程序(不可用)
P_OVERLAY表示在本程序退出后运行子程序
在spawn函数族中,后缀l、v、p、e添加到spawn后,
所指定的函数将具有某种操作能力
有后缀 p时,函数利用DOS的PATH查找子程序文件
l时,函数传递的参数个数固定.
v时,函数传递的参数个数不固定.
e时,指定参数envp可以传递给子程序,允许改变子程序运行环境.
当无后缀e时,子程序使用本程序的环境.
int system(char*command)将MSDOS命令command传递给DOS执行
======转换子程序(函数原型所在头文件为math.h、stdlib.h、ctype.h、float.h)========
char*ecvt(double value,int ndigit,int*decpt,int*sign)
将浮点数value转换成字符串并返回该字符串
char*fcvt(double value,int ndigit,int*decpt,int*sign)
将浮点数value转换成字符串并返回该字符串
char*gcvt(double value,int ndigit,char*buf)
将数value转换成字符串并存于buf中,并返回buf的指针
char*ultoa(unsigned long value,char*string,int radix)
将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char*ltoa(long value,char*string,int radix)
将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数
char*itoa(int value,char*string,int radix)
将整数value转换成字符串存入string,radix为转换时所用基数
double atof(char*nptr)将字符串nptr转换成双精度数,并返回这个数,错误返回0
int atoi(char*nptr)将字符串nptr转换成整型数,并返回这个数,错误返回0
long atol(char*nptr)将字符串nptr转换成长整型数,并返回这个数,错误返回0
double strtod(char*str,char**endptr)将字符串str转换成双精度数,并返回这个数,
long strtol(char*str,char**endptr,int base)将字符串str转换成长整型数,
并返回这个数,
int toascii(int c)返回c相应的ASCII
int tolower(int ch)若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')
int _tolower(int ch)返回ch相应的小写字母('a'-'z')
int toupper(int ch)若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')
int _toupper(int ch)返回ch相应的大写字母('A'-'Z')
求大神整理c语言指令符号及用法大全。
编译指令
编译指令
说明
#include
包含另一个文件
#define
定义一个宏(macro)或是常量
#undef
取消一个宏常量的定义
#asm和#endasm
在程序中加入汇编语言的程序
#ifdef、#ifndef、#else、#endif
用于条件式的编译
注解://—单行注解;
基本数据类型(int,float,double,char,void)
数据类型
类型说明
长度(位)
数据长度
bit
位
1
0,1
char
字符
8
—128~127
unsigned char
无符号字符
8
0~255
signed char
有符号字符
8
—128~127
int
整型
16
—32768~32767
short int
短整型
16
—32768~32767
unsigned int
无符号整型
16
0~65535
signed int
有符号整型
16
—32768~32767
long int
长整型
32
—2147483648~2147483647
unsigned long int
无符号长整型
32
0~4294967295
signed long int
有符号长整形
32
—2147483648~2147483647
float
浮点数(实数)
32
0.175e-38~0.402e38
double
双精度浮点
32
0.175e-38~0.402e38
void
空
0
没任何数据
用户自定义数据类型格式
typedef struct{
数据类型变量序列1;
数据类型变量序列1;
...
}自定义数据类型的名称;
保留字
_at_,alien,bdata,break,bit,case,char,code,compact,const,continue,data,
default,do,double,far,else,enum,extern,float,for,goto,if,funcused,idata,int,
inline,interrupt,large,long,pdata,_priority_,reentrant,return,sbit,sfr,sfr16,
short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union,
unsigned,void,volatile,while,xdata
常量表示法
常数
规则
范例
十进制
一般十进制格式
1234567890
二进制
开头加上0b
0b00001110
八进制
开头加上O
O0123
十六进制
开头加上0x
0xFF45
无符号整数常量
结尾加上U
30000U
长整数常量
结尾加上L
299L
无符号长整数常量
结尾加上UL
327800UL
浮点数的常量
结尾加上F
4.234F
字符常量
以单引号括起来
‘a’
字符串常量
以双引号括起来
“hello”
-----------------------------------------------------运算符-----------------------------------------------------
算术运算
运算符
说明
范例
执行结果
+
加
c=a+b;
c等于10
—
减
d=a—b;
d等于6
*
乘
e=a*b;
e等于16
/
除
f=a/b;
f等于4
%
取余数
g=a%b;
g等于0
++
加1
c++;相当于c=c+1;
c等于11
——
减1
d——;相当于d=d—1;
d等于5
=
等于
a=8;
设置a等于8
+=
先相加在等于
e+=5;相当于e=e+5;
e等于21
—=
先相减在等于
f—=5;相当于f=f—5;
f等于—1
*=
先相乘在等于
b*=5;相当于b=b*5;
b等于0
/=
先相除在等于
a/=5;相当于a=a/5;
a等于1
%=
先取余数在等于
a%=5;相当于a=a%5;
a等于3
※假设a等于8,b等于2
比较运算
运算符
说明
范例
执行结果
==
等于
a==5
F
!=
不等于
a!=5
T
<<o:p>
小于
a<5
F
>
大于
a>5
T
<=
小于等于
a<=5
F
>=
大于等于
a>=5
T
※比较运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8
逻辑运算
运算符
说明
范例
执行结果
&&
AND
(a>5)&&(a<10)
T
||
OR
(a<5)||(a>10)
F
!
NOT
!(a>10)
T
※逻辑运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8
位逻辑运算
运算符
说明
范例
执行结果
&
AND
a&0x01
a等于1
|
OR
a|0x80
a等于0x85
~
NOT
~a
a等于0xFA
^
XOR
a^0xFF
a等于0xFA
<<
左移
a<<1
a等于0x0A
>>
右移
a>>1
a等于0x0A
※假设a等于5
----------------------------------------------------控制命令---------------------------------------------------
if语句
if(条件)语句1;
else语句2;
例:if(d==4) d=0;//如果d等于4就设置d等于0
else d++;//否则就将d加1
if(ticks==0){//如果ticks等于0
ticks=1000;//ticks设置成1000
counter[0]++;//counter[0]加1
}
嵌套if语句
例:if(counter[0]==10){
counter[1]++;
counter[0]=0;
if(counter[1]==10){
counter[2]++;
counter[1]=0;
}
}
switch语句
switch(变量){
case常量1:语句1; break;
case常量2:语句2; break;
case常量3:语句3; break;
......
default;语句n;
}
for循环
for(初值,条件,变化值)语句;
例:for(i=0;i<10;i++) x=x+i;
for(i=1;i<10,i++)
for(j=1;j<10,j++)
printf(“%d%d”,i,j);
无穷循环:
for(;;);
while循环
while(条件)语句;
例:while(ch!=!’A’) ch=getche();
无穷循环:
while(1);
do/while循环
do{
语句;
...
} while(条件);
例:do{
ch=getche();
} while(ch!=”A”);
goto语句
loop1:
x++;
if(x<100) goto loop1;
----------------------------------------------------指针和函数------------------------------------------------
指针的定义
数据类型*指针变量的名字;
例: char*p;
int*x;
指针与数组
例: char filename[80];
char*p;
p=filename;//指针p存放filename的开始地址
int x[5]={1,2,3,4,5};
int*p,sum,i;
p=x;//指针p存放数组x的开始地址
for(i=0;i<5;i++)
sum=sum+p[i];//p[i]相当于x[i]
指针的运算
1.针变量前面加上*号就是取得指针所指向位置的内容。
例:int x[5]={1,2,3,4,5};
int*p;
p=x;//指针p存放数组x的开始地址
*p=10;//相当于设置x[0]等于10
2.变量前面加上&符号,可以取得一个变量的位置。
例:int x,y;
int*p;
p=&x;//指针p存放x的地址,相当于p是指向x的指针
*p=1;//相当于设置x等于1
3.&符号也可以加在数组的前面
例:int x[5];
int*p;
p=&x[2];//指针p存放x[2]的地址,相当于p是指向x[2]的指针
*p=50;//相当于设置x[2]等于50
函数
函数类型函数名称(参数序列);
参数说明
{
函数的主体
}
例:void delay(void){//不返回任何数据的函数
unsigned char i,j;//没有任何参数的函数
for(i=0,i<255,i++)
for(j=0,j<255,j++);
}
main()
{
...
delay();//调用函数
}
例:unsigned char sum(unsigned chat a,unsigned chat b)
{
unsigned chat x;
check_GLCD_busyflag();//函数中可以调用另一个函数
x=a+b;
return x;//return会返回x的数据
}
中断服务函数
void中断服务程序的名称(void) interrupt中断号码using寄存器组号码
{
中断服务子程序主体
}
中断号码
#define IE0_VECTOR 0//0x03
#define TF0_VECTOR 1//0x0B
#define IE1_VECTOR 2//0x13
#define TF1_VECTOR 3//0x1B
#define SIO_VECTOR 4//0x23
对于S51有定时器2
#define TF2_VECTOR 5//0x2B
例:static void xint0_isr(void) interrupt IE0_VECTOR(或0) using 1
{
unsigned char i,j=0xFF;
for(i=0,i<16,i++)
{
j++;
P1=j;//将数值输出到P1口
delay_4isr();
}
}
-----------------------------------------------------汇编语言--------------------------------------------------
在C中加入汇编语言
例:void delay100us()
{
#pragma asm
mov r7,#1
more: mov r3,#48
djnz r3,$
djnz r7,more
#pragma endasm
}
----------------------------------------------------宏(macro)----------------------------------------------
宏的定义
%*define(macro名称)(macro的指令)
例:%*define(write_1)(
setb DI
serb SK
clr SK
)
#define宏的名称宏的指令
例:#define uchar unsigned char
C语言中的符号总结
运算符的种类C语言的运算符可分为以下几类;
1.算术运算符
用于各类数值运算,包括加减乘除求余自增自减共七种运算
{(+),(-),(*),(/),(%),(++),(--)}。
2.关系运算符
用于比较运算,包括大于(>),小于(<</span>),等于(==),大于等于(>=),
小于等于(<=),不等于(!=)共六种。
3.逻辑运算符
用于逻辑运算,包括与(&&)或(||)非(!)三种.
4.位操作运算符
参与运算的量,按二进制位进行运算,包括:
位与(&),位或(|),位非(~),为异或(^),左移(<<),右移(>>)共六种。
5.赋值运算符
用于赋值运算,分为:
简单赋值(=)
复合算术赋值(+=,-=,*=,/=,%=)
复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)两种运算。
9.求字节数运算符
用于计算数据类型所占用的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→,.)
1.C的数据类型
基本类型,构造类型,指针类型,空类型
2.基本类型的分类及特点
类型说明符字节数值范围
字符型char 1 C字符集
基本整型int 2-32768~32767
短整型short int 2-32768~32767
长整型 long int 4-214783648~214783647
无符号型 unsigned 2 0~65535
无符号长整型 unsigned long 4 0~4294967295
单精度实型 float 4 3/4E-38~3/4E+38
双精度实型 double 8 1/7E-308~1/7E+308
3.常量后缀
L或l长整型
U或u无符号数
F或f浮点数
4.常量类型
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
5.数据类型转换
a自动转换
在不同类型数据的混合运算中,由系统自动实现转换,由少字节类型向多字节类型转换。不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。
b强制转换
由强制转换运算符完成转换。
6.运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值
7.表达式
表达式是由运算符连接常量、变量、函数所组成的式子。每个表达式都有一个值和类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。
表示输出类型的格式字符格式字符意义
d以十进制形式输出带符号整数(正数不输出符号)
o以八进制形式输出无符号整数(不输出前缀O)
x以十六进制形式输出无符号整数(不输出前缀OX)
u以十进制形式输出无符号整数
f以小数形式输出单、双精度实数
e以指数形式输出单、双精度实数
g以%f%e中较短的输出宽度输出单、双精度实数
c输出单个字符
s输出字符串
标志字符为-、+、#、空格四种,其意义下表所示:
标志格式字符标志意义
-结果左对齐,右边填空格
+输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
#对c,s,d,u类无影响;对o类,在输出时加前
缀o对x类,在输出时加前缀0x;对e,g,f类当结果有小数时才给出小数点
格式字符串
格式字符串的一般形式为:%[*][输入数据宽度][长度]类型其中有方括号[]的项为任选项。各项的意义如下:
1.类型
表示输入数据的类型,其格式符和意义下表所示。
格式字符意义
d输入十进制整数
o输入八进制整数
x输入十六进制整数
u输入无符号十进制整数
f或e输入实型数(用小数形式或指数形式)
c输入单个字符
s输入字符串
转义字符
转义字符是一种特殊的字符常量。转义字符以反斜线”\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符转义字符的意义
\n回车换行
\t横向跳到下一制表位置
\v竖向跳格
\b退格
\r回车
\f走纸换页
\\反斜线符”\”
\’单引号符
\a鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A”,\102表示字母”B”,\134表示反斜线,\XOA表示换行等。转义字符的使用
在C语言中,对变量的存储类型说明有以下四种:
auto自动变量
register寄存器变量
extern外部变量
static静态变量
自动变量和寄存器变量属于动态存储方式,外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后,可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。因此变量说明的完整形式应为:存储类型说明符数据类型说明符变量名,变量名…;例如:
static int a,b;说明a,b为静态类型变量
auto char c1,c2;说明c1,c2为自动字符变量
static int a[5]={1,2,3,4,5};说明a为静整型数组
extern int x,y;说明x,y为外部整型变量
与指针有关的各种说明和意义见下表。
int*p; p为指向整型量的指针变量
int*p[n]; p为指针数组,由n个指向整型量的指针元素组成。
int(*p)[n]; p为指向整型二维数组的指针变量,二维数组的列数为n
int*p() p为返回指针值的函数,该指针指向整型量
int(*p)() p为指向函数的指针,该函数返回整型量
int**p p为一个指向另一指针的指针变量,该指针指向一个整型量。
指针变量的赋值
p可以有以下两种方式:
(1)指针变量初始化的方法 int a;
int*p=&a;
(2)赋值语句的方法 int a;
int*p;
p=&a;
(1)取地址运算符&
(2)取内容运算符*
c语言能编什么软件
首先你需要分清楚编程语言和编程工具,C或者C++是编程语言,与用什么工具编写没有关系。
其次,用C语言可以编写出像WINDOWS那样的界面软件,但是我们不是微软的,所以搞不来。
只能通过C或者C++语言语法结合人家提供的API来写些程序,光学C语言是远远不够的。
你可以首先学习C语言或者C++语法,把基础的东西弄懂了搞扎实了。再学VC中的MFC,ATL,COM,ADO等知识。这样基本可以达成你做出像WINDOWS且带数据库的软件了。但是这要学
习的东西太多了,不是光靠C或者C++语言就能搞定的。
C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。
建议:
学习编程语言基础的时候,可以用Linux环境。基础的要掌握牢固。使用工具:VI,Kate
然后学习VC++相关知识,由于目前市面上的教材很多都是基于VC6.0工具编写的,所以不建议
你上来学习VC++就用VS2010,在xp下装个VC6.0我觉得是学习的最好办法。
推荐:
C或者C++基础的书的话,我觉得C/C++primer第4版,C++程序设计特别版,Linux C程序设计等都是不错的,如果你是自学刚入门的话,给你推荐一本超级不错的书,《C++大学教程》(封面是卡通蚂蚁的那本)。这本书讲的比较详细,实例很多,而且虽然书很厚,但是看着非常轻松,不像C++primer那么深奥!
VC的话可以看看孙鑫的《MFC深入详解》《WINDOWS编程核心内幕》《VC6.0编程技术大全》《Visual C++通用范例—开发金典》
期间还需要掌握一下SQL的知识。
总之努力就可以实现你的想法!编程其实没有那么难!
如果你还想了解更多这方面的信息,记得收藏关注本站。