C语言学习.docx
《C语言学习.docx》由会员分享,可在线阅读,更多相关《C语言学习.docx(31页珍藏版)》请在冰豆网上搜索。
C语言学习
标识符,常量和变量
标识符
定义:
由字母,数字和下划线组成,并且第一个字符必须为字母或下划线的。
下列合法的是:
Elsewhat#$12334aa34a_ba-bif
注意:
在C中大写字母与小写字母被认为是两个不同的字符。
分类:
关键字:
在C中已经定义好了的,不能用作它用的。
如ifdoubleint等等。
预定义标识符:
如printfscanf
用户标识符:
用户根据自己的需求来定义的。
(12)以下选项中,能用作用户标识符的是
A)voidB)8_8_C_0)D)unsigned
(11)以下选项中不合法的标识符是
A)printB)FORC)&aD)_00
常量:
定义:
是指在程序的执行的过程中,其值不会被改变的量。
分类:
整型常量:
没有小数点的常量。
如:
391234等等都是
实型常量:
有小数点的常量。
如:
3.93.03.
字符常量:
由单个字符组成的量。
如:
‘a’‘b’‘3’
字符串常量:
至少由一个字符组成的量如:
”a”“abc”“Beijing”
符号常量:
符号常量的值到底是多少,这是由在来定义符号常量时来决定的。
(13)以下选项中,能用作数据常量的是
A)o115B)0118C)1.5e1.5D)115L
(13)以下选项中不能作为c语言合法常量的是
A)‘cd’B)0.1e+6C)“\a”D)‘\011’
(13)以下选项中不属于字符常量的是
A)‘C’B)“C”C)‘\Xcco’D’\072’
整型常量与实型常量
整型常量的几个表示方法
十进制数:
0~9组成。
八进制数:
以0开头的数字,由0~7组成。
下列合法的八进制数是
A.0B.028C.-077D.01.0
十六进制数:
以0x开头,由0~9和A~F组成。
实型常量123.4
小数形式:
123.4
指数形式:
1.234e2
1.字母e和E之前必须要有数字
2.字母e和E之后的数字必须是整数
3.字母e和数字之间不能有空格
2.607E-10.8103E2-77.77456E-20.1e+61.23E1.2
变量
定义:
在程序的运行过程中其值可以被改变的量,就叫变量。
原则:
变量必须先定义后使用。
变量定义的过程就是给变量开辟存储单元的过程。
分类:
整型变量:
用关键字int来表示
实型变量:
用关键字double和float来表示
float单精度在内存中占4个字节
double双精度在内存中占8个字节
算术表达式
一、基本的算术运算符
+-*/%这些是双目运算符(就是指操作对象有两个)
注意:
除%外,其它的运算符的运算对象可以是整型也可以是实型。
%的操作对象只能是整型。
如10%3=1
+-也可以做为单目运算。
-5.4+4.9
说明:
1.如果双目运算符两边运算数的类型一致,则所得结果为类型与运算数的类型一致。
如1.0、2.0=0.51/2=0
2.如果双目运算符两边运算数的类型不一致,则系统会自动进行类型转换,使两边的类型一致后,再进行运算。
如1.0/2=0.5
3.所有的单精度数据,在运算过程中都以双精度进行运算。
优先级:
由高到低
强制类型转换表达式
格式:
(类型名)(表达式)
例:
(int)(3.234)=3后面的小括号可去掉
(double)10%3=?
(14)表达式:
(int)((double)9/2)-(9)%2的值是
A.0B.3C.4D.5
设变量已正确定义并赋值,以下正确的表达式是
A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,++yD.x=25%5.0
赋值表达式
格式:
变量名=表达式
注:
1.不可以颠倒(左边必须是变量名,右边必须是C语言中合法的表达式)
2.功能就是先求出右边表达式的傎,然后把此值给赋值给赋值号左边的变量。
确切的说是把数据存入以该变量为标识的存储单元中去,不是一个等号。
3.结合性的优先级仅高于逗号表达式。
顺序是自右向左的。
如a=2+7/3
4.“=”是一个赋值号,不是一个等号。
5.x=y.变量的值也是可以传递和赋值的。
它的意思就是将变量y中的值赋值到x中去。
同样N=N+1也成立
6.赋值运算符的左侧只能是变量,不能是常量或表达式a+b=c这就是违法的。
7.赋值号的右边也可以是一个赋值表达式。
如a=b=7+1.
补充:
表达式与语句的区别,表达式后面加一个分号就是语句。
复合赋值表达式
例:
a+=3------a=a+3同理可得a*=3/=-=
a+=a-=a+aa的初值是9a+=a-=18a+=(a-=18)a+=(a=a-18)a+=(a=-9)
-18
(15)若有定义语句:
intx=10;,则表达式x-=x+x的值为
A.-20B.-10C.0D.10
设有定义:
intx=2;,以下表达式中,值不为6的是
A.x*=x+1B.x++,2*xC.x*=(1+x)D.2*x,x+=2
若变量均已正确定义并赋值,以下合法的C语言赋值语句是
A.x=y==5;B.x=n%2.5;C.x+n=1Dx=5=4+1;
单目运算++――
++:
自身加1
――:
自身减1
如:
i=3i++--------i=i+1i=4
++I++在前,先自身加1,然后再干别人让干的事情。
I++++在后,先干别人让干的事情,然后再自身加1.
inti=3;
inta;
a=i++;a=3
a=++I;a=4
逗号表达式
定义:
用逗号将表达式连接起来的式子称为逗号表达式
格式:
表达式1,表达式2,。
。
。
。
。
。
,表达式N
说明:
1.逗号运算符的结合性为从左到右进行运算,逗号表达式的值是最后一个表达式的值。
2.在所有运算符中,逗号运算符的优先级最低。
例题:
inti=5;
inta,b,c;
a=(i+8,7,i+7);a=12i=5
b=(i++,++i);b=7i=7
c=(i+7,i++);c=5i=6
1.以下选项中正确的整型常量是
A.12.B-20C.1,000D.456
2.以下选项中正确的实型常量是A.0B.3.1415C.0.329X102D.871
3.以下选项中不正确的实型常量是A.2.607E-1B.0.8103e2C.-77.77D.456E-2
4.以下选项中不正确的用户标识符是A.abc.cB.fileC.MainD.PRINTF
5.以下选项中不合法的用户标识符是A._123B.printfC.A$D.Dim
6.C语言中运算对象必须是整型的运算符是A.%B./C.!
D.**
7.可在C程序中用作用户标识符的一组标识符是
A.voiddefineWORDB.as_b3_123IfC.For-abcCaseD.2cDOSIG
8.若变量已正确定义并赋值,符合C语言语法的表达式是A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b
9.以下叙述中正确的是A.a是实型变量,C允许进行赋值a=10,但不可以这样说:
实型变量中允许存放整形值。
B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式a=b后,在内存中a和b的存储单元中原有值都将被改变,a的值已由原来的改变为b的值,b的值由原来的值变为0D.已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3.
10.以下叙述中正确的是A.在C程序中无论是整数还是实数,只要在允许的范围内都无误的表示。
B.C程序由主函数组成。
C.C程序由若干函数组成D.C程序中只允许包含一个函数。
11.VC6.0中int类型变量所占字节数是A.1B.2C.3D.4
12.合法的八进制数是A.0B028C.-077D.01.0
13.不合法的十六进制数是A.oxffB.0XabcC.0x11D.0x19
1.若K为INT型变量且赋值11.请写出运算K++后表达式的值(11)和变量K的值(12)
2.若X为double型变量,请写出运算X=3.2,++X后的表达式的值(4.2)和变量X的值(4.2)
3.函数体由({)开始,到())结束。
函数体内的前面是(定义)部分,后面是()部分。
4.C语言中的标识符可以分为()()和预定义标识符。
5.在C语言程序中,用关键字()定义基本整形变量,用关键字()定义单精度实型变量。
用()定义双精度实型变量。
6.把a1,a2定义成双精度实型变量,并赋初值1的定义语句是()
7.C程序中定义的变量,代表内存中的一个()
8.表达式3.5+1/2的计算结果是()
#includestdio.h;
main();
floatr,s;
r=5.0;
s=3.14159*r*r;
printf(“%f\n”,s)
main
{
floata,b,c,v;
a=2.0;b=3.0;c=4.0
v=a*b*C;
printf(“%f\n”,v)
}
输出语句
一.Printf函数的一般调用形式
格式:
printf(格式控制,输出项1,输出项2,。
。
。
。
。
。
);
1.给输出项提供格式说明符的要求进行输出。
格式说明符:
作用:
就是使数据按格式说明符的要求进行输出。
组成:
由%号和紧跟在其后的格式描述符组成。
int---------%d
float或double-------%f或%e
char------%c
2.提供原样输出的文字或字符
在“”中除了格式说明符之外的内容要全部原样输出。
各个输出项之间要用逗号隔开。
输出项可以是任意合法的常量,变量或表达式。
Printf中常用的格式说明
在格式说明符中,每一个格式说明符都必须以%号开头由相应的类型标识字母结束。
但在他们之间可以有其它的一个内容:
%c:
输出一个字符
%d:
输出一个十进制的数据
%o:
以八进制格式输出
%x:
以十六进制输出
%u:
无符号十进制输出
%f:
以带小数点的数字输出
%e:
以指数形式输出
%s:
输出一个字符串
%%:
输出一个%号
%4d:
输出的数据长度是4个长度,当原来的长度大于4个时会自动突破。
小于4个时会填充空格。
%x.yf:
x代表数制的宽度(包括小数点)。
Y代表小数点后面的小数位数。
注意事项:
1.输出比较自由一些,输出有的各个数之到底是什么,取决于格式说明符之间的内容。
2.格式说明符要与输出项一一对应。
3.输出语句中还可以有\n\r\t\a
4.尽量不要在输出语句中改变输出变量的值。
5.输出的数据中如果存在变量,一定要定义过的。
条件表达式
是C语言中唯一的一个三目运算。
格式:
表达式1?
表达式2:
表达式3
当1成立(非零时),表达式的值就是2的值,否则就是3的值。
如:
1.1<2?
4:
5
2.Printf(“%d”,x<0?
(-1)*++x:
x++);(假定X的值为3)
3.x++>3?
(x<3?
a:
b):
b
Switch(表达式)
{
Case常量表达式1:
语句1
Case常量表达式2:
语句2
Case常量表达式3:
语句3
Case常量表达式1:
语句1
Case常量表达式4:
语句4
Case常量表达式5:
语句5
Case常量表达式6:
语句6
。
。
。
。
。
。
Case常量表达式N:
语句N
}
#include
Main()
{
IntA;
Printf(“请输入您的成绩:
“);
Scanf(“%d”,&A);
Switch(A/10)
{
Case10:
printf(“A\n”);break;
Case9:
printf(“A\n”);break;
Case8:
printf(“B\n”);break;
Case7:
printf(“C\n”);break;
Case6:
printf(“D\n”);break;
Default:
printf(“E\n”);
}
}
下列运算符中优先级最高的运算符是A!
B%C-=D&&
下列运算符中优先级最低的运算符是A||B!
=C<=D+
为表示关系x>=y>=z,应使用的C语言表达式是A(x>=y)&&(y>=z)B(x>=y)AND(y>=z)C(x>=y>=z)D(x>=y)&(y>=z)
设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是
Aa&&bBa<=bCa||b+c&&b-cD!
((a
c||1)
以下程序的输出结果是
Break终止了break所在的当层循环体的执行。
Continue跳过循环体continue下面的语句,返回到循环开始的地方进行下次循环。
s=1+2+3+4……+i>5000
main()
{
inti=1,s=0;
for(;;i++)
{
s+=i
if(s>5000)
break;
}
prtintf(“s=%d,i=%d”,s,i);
}
#include
Main()
{
Intk=1,s=0;
For(;k<=5;k++)
{s+=k;
If(s>5)
{
Printf(“s=%d\n”,s);
Continue;
}
Printf(“%d\n”,s);
}
}
运行结果
1
3
S=6
S=10
S=15
Pressanykeytocontinue