汇总讲稿总结.docx
- 文档编号:4046405
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:29
- 大小:84.26KB
汇总讲稿总结.docx
《汇总讲稿总结.docx》由会员分享,可在线阅读,更多相关《汇总讲稿总结.docx(29页珍藏版)》请在冰豆网上搜索。
汇总讲稿总结
1、C语言程序设计初步知识
一、知识点
1、程序的构成
C语言程序的格式如下:
例1-1:
说明:
程序由函数构成,有且仅有一个主函数,从主函数中读起,在主函数中结束。
2、函数的构成
函数由函数名和函数体构成,函数体又由函数声明部分和函数执行部分组成。
声明部分就是把已知条件存放到计算机内存中,执行部分就是运算及把运算结果输出来。
3、C语言的基本词法
C语言的基本词法由三部分组成:
符号集、标识符和关键字(保留字)。
标识符就是用于标识的字符,由数字、字母和下划线构成,不用是数字开头,最好不要超过8个字符。
关键字主要是数据类型,语法控制等字符。
转义字符:
\n换行,\\一个反斜杠,\’单引号,\”双引号,\t水平制表符
4、数据类型
数据类型的作用就是给每个数据在内存中分配适当的内存空间。
数据类型可以分为三类:
基本类型
结构类型
派生类型
整型int
字符型char
实型(浮点型)float
空类型void
结构体struct
共用体union
枚举型enum
用户定义类型typedef
数组类型
指针类型
5、整型数据
它又分为基本类型(int),长整型(longint),短整型和无符号整型。
基本类型在内存中分配两个字节,长整型分配4个字节。
C语言中的整型常量有三种表示形式:
十进制、八进制(以数字0开头)和十六进制(以0x开头)。
6、字符型:
单个字符用单引号括起来,字符串用双引号括起来,分配1个字节。
7、实型数据:
分为单精度float(4个字节)和双精度double(8个字节)。
实型常量可以采用指数形式表示,如123.2可以表示为1.232e2或1.232E2,e前有数,e后为整。
8、C语言运算符
C语言运算符有五类:
算术运算符、逻辑运算符、关系运算符、赋值运算符和条件运算符。
(1)算术运算符:
+、-、*、/、%(两个整数相除值为整,求余运算的数值必须为整数)
(2)关系运算符:
<、>、<=、>=、==、!
=(两个数运算后的结果要么为真,要么为假,真用1表示,假用0表示)
(3)逻辑运算:
逻辑与&&,逻辑或||,逻辑非!
&&:
两者为真则为真,有一者为假则为假
||:
有一者为真则为真
!
:
非零的数就为假,0为真
说明:
多个&&运算时,只有前面的为真才需要去计算后面的,如(a=3)&&(b=0)&&(c=6),此时c=6的运算并不发生;多个逻辑或运算则相反。
(4)赋值运算符:
=,复合赋值运算符+=,-=,*=,/=,%=的运算可以先把等号右边的数值用括号括起来,然后运算,如a*=a+b等价于a=a*(a+b)
(5)条件运算符:
表达式1?
表达式2:
表达式3,表达式1成立,整个表达式就取表达式2的值,否则取表达式3的值。
(6)逗号运算符:
用逗号相隔的多个表达式取最后一个表达式的值当作整个表达式的值。
说明:
各类运算符的优先级为“非算关与或赋逗”。
9、不同类型数据间的转换和运算
存储空间小的数据可以往大的转换,即字符型可以转换为整型,整型可以转换为实型。
强制类型转换:
(数据类型)数据,如(int)(a+b)。
二、习题精选
1.一个C程序可以包含任意多个不同名的函数,但有且仅有一个(),一个C程序总是从()开始执行。
(A)过程(B)主函数(C)函数(D)include
2.C源程序是由()构成的
(A)函数(B)函数和过程(C)超文本过程(D)子程序
3.下列字符串是标识符的是()
(A)_HJ(B)9_student(C)long
4.C语言提供的合法关键字是()
(A)break(B)print(C)funition(D)end
5.C语言中不能用来表示整常数的进制是()
(A)十进制(B)十六进制(C)八进制(D)二进制
6.在C语言中,反斜杠字符是()
(A)\n(B)\t(C)\v(D)\\
7.下列常数中,不合法的C常量是()
(A)-0x3b1(B)123e+2.3(C)’}’(D)6e+7
8.写出下面程序的输出结果()
main()
{intx,y,z;
x=y=1;
z=x++-1;
printf(“%d,%d\t”,x,z);
z+=-x+++(++y||++z);
printf(“%d,%d”,x,z);
}
(A)2,03,-1(B)2,13,0(C)2,02,1(D)2,10,1
9.写出下面程序的输出结果()
main()
{intI,j;
I=16;j=(I++)+I;printf(“%d”,j);
I=15;printf(“%d%d”,++I,I);}
(A)321615(B)331515(C)341516(D)341615
10.写出下面程序的输出结果()
main()
{intx=40,y=4,z=4;
x=y==z;
printf(“%d”,x);
x=x==(y-z);
printf(“%d”,x);}
(A)40(B)41(C)11(D)10
11.为表示关系x>=y>=z,应使用C语言表达式()
(A)(y<=x)&&(y>=z)(B)(x>=y)AND(y>=z)(C)(x>=y>=z)(D)(x>=y)&(y>=z)
12.用C语言描述下列命题
(1)a小于b或小于c
(2)a和b都大于c
(3)a或b中有一个小于c
a是奇数
2、顺序结构
一、知识点
1、C语言语句的分类:
表达式语句、控制语句、函数调用语句、空语句和复合语句。
表达式语句:
如a=3;ca+b;等
控制语句:
如:
if(a>b)c=a;for语句和while语句和switch语句等
函数调用语句:
函数名(实参表);
空语句:
;这条语句的含义是什么也不做。
复合语句:
{语句1;语句2;……},其功能上相当于一条语句。
2、数据的输入和输出
(1)输入函数
scanf()函数,格式为scanf(格式控制,输入项表),如scanf(”%d,%f”,&a,&b);
该函数的运行过程是人首先根据双引号内的格式输入数据,然后电脑把这些数据存放到输入项表中的地址中去。
Getchar()函数,该函数为无参函数,即括号内没有参数,其作用是要求人在键盘上输入一个字符。
(2)输出函数
Printf()函数,格式为printf(格式控制,输入项表),如printf(“%d,%f”,a,b);
该函数的运行过程是计算机从输出项表中去获取要输出的数据,然后根据双引号中的格式控制来输出。
Putchar()函数,如putchar(a);其作用就是输入变量a的字符数据。
3、格式控制说明
(1)格式控制包含两部分:
一是普通字符,这部分内容被简单的复制到显示;二是%后跟着的字符为格式字符。
如:
printf(“a=%d,b=%f”,a,b);这条语句中“a=”、“,”和“b=”都是普通字符。
(2)格式字符
%c:
输出一个字符;
%d:
输出一个整型数;
%ld:
输出一个长整型数;
%f:
输出一个实数;
%lf:
输出一个双精度的实数;
%e:
以指数形式输出一个实数;
%s:
输出一个字符串,直到遇到“\0”;
%p:
输出变量的内存地址
%%:
输出一个%
(3)附加说明
%后有+或-号:
加号表示右对齐,减号表示左对齐,默认为加号;
%后有数字:
如%5.2f,其含义为小数点后保留两位,当位数不够五位时,在前面加空格凑齐五位,超过时按实际大小输出,小数点算一位。
如:
printf(“%5.2f”,a=1.4);输出时先在数字前空一格,然后输出1.40。
二、习题精选
1.以下程序的输出结果是()
main()
{
intI=011,j=11,k=0x11;
printf(“%d,%d,%d\n”,I,j,k);
}
2.以下程序的输出结果是()
main()
{charc1=’6’,c2=’0’;
printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);}
3.以下程序的输出结果是()
main()
{inta=-1,b=4,k;
k=(++a<=0)&&!
(b--<=0);
printf(“%d%d%d\n”,k,a,b);}
4.若有定义:
intx,y;chara,b,c;并有以下输入数据(此处,
12
ABC
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:
(A)scanf(“x=%dy=%d”,&x,&y);a=getchar();b=getchar();c=getchar();
(B)scanf(“%dy%d”,&x,&y);a=getchar();b=getchar();c=getchar();
(C)scanf(“%d%d%c%c%c%c%c%c”,&x,&y,&a,&a,&b,&b,&c,&c);
(D)scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);
5.在scanf函数的格式控制中,格式说明的类型与输入项的类型应该一一对应匹配。
如果类型不匹配,系统将()。
(A)不予接收(B)并不给出出错信息,但不可能得到正确数据(C)能接收到正确输入(D)给出出错信息,不予接收输入
三、实验题
1.从键盘输入一个大写字母,要求改用小写字母输出;
2.编写程序,判断某一年是否闰年;
3.求方程ax2+bx+c的解x的程序;
3、选择结构
一、知识点
1、用if语句来实现选择结构
两种形式:
形式1:
if(表达式)语句;
形式2:
if(表达式)语句1;
else语句2;
运行的过程:
如果表达式成立,就运行其后的语句。
否则跳过,运行后面的语句。
说明:
else总是跟前面最近不带else的if子句相结合。
例如:
voidmain()
{
floatscore;
clrscr();
scanf("%f",&score);
if(score>=90)
printf("Excellent!
");
elseif(score>=80)
printf("VeryGood!
");
elseif(score>=70);
printf("Good!
");
elseif(score>=60);
printf("NotBad!
");
else
printf("Bad!
");
}
2、用switch语句实现多分支选择结构
格式为:
Switch(表达式)
{case常量表达式1:
语句1;
case常量表达式2:
语句2;
……
default:
语句n;
}
运行过程:
首先去求解switch()里的表达式的值,然后用这个值跟case后面常量表达式的值进行匹配,当值相等时运行其后的语句,如果都不匹配则运行default后的语句。
例如:
voidmain()
{
intx=1,y=0;
clrscr();
switch(x)
{
case1:
switch(y)
{
case0:
printf("x=1y=0\n");break;
case1:
printf("y=1\n");break;
}
case2:
printf("x=2\n");
}
3、选择结构的嵌套
If语句和switch()语句都可以嵌套使用。
二、习题精选
1.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
2.以下程序的运行结果是()。
Main()
{intc,x,y;
x=1;y=1;c=0;
c=x++||y++;
printf(“\n%d%d%d\n”,x,y,c);}
3.以下程序的运行结果是()。
Main()
{intc,x,y;
x=0;y=0;c=0;
c=x++&&y++;
printf(“\n%d%d%d\n”,x,y,c);}
4.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
Main()
{intx;
scanf(“%d”,&x);
if(x++>5)printf(“%d”,x);
elseprintf(“%d\n”,x--);}
5.写出下面程序的运行结果()。
Main()
{intx=1,y=1,z=0;
if(z<0)
if(y>0)x=3;
elsex=5;
printf(“%d\t”,x);
if(z=y<0)x=3;
elseif(y==0)x=5;
elsex=7;
printf(“%d\t”,x);
printf(“%d\t”,z);}
6.以下程序段的运行结果是()。
intx=1,y=0;
switch(x)
{case1:
switch(y)
{
case0:
printf(“x=1y=0\n”);break;
case1:
printf(“x=1\n”);break;
}
case‘2’:
printf(“x=2\n”);
}
三、实验题
1.编写一程序,要求由键盘输入三个数,计算以这三个数为边长的三角形面积。
2.输入圆的半径r和一个整型数k,当k=1时,计算圆的面积;当k=2时,计算圆的周长;当k=3时,既要求出圆的面积也要求出圆的周长。
编程实现以上功能。
3.根据以下if语句写出与其功能相同的switch语句。
(x的值在0-100之间)
if语句:
if(x<60)m=1;
elseif(x<70)m=2;
elseif(x<80)m=3;
elseif(x<90)m=4;
elseif(x<100)m=5;
4、循环结构
一、知识点
1、for循环语句
格式为:
for(表达式1;表达式2;表达式3)语句;
运行流程为:
首先运行表达式1,然后运行表达式2,当表达式2成立时,运行后面的语句,运行完后运行表达式3,然后运行表达式2,如果此时表达式2又成立,则运行后面的语句,然后再运行表达式3,依次运行下去,直至表达式2不成立就不在运行该循环语句。
例如
main()
{
intn;
clrscr();
for(n=100;n<=200;n++)
{
if(n%3==0)
continue;
printf("%5d",n);
}
}
2、while语句和do-while语句
While语句格式为:
表达式1;
While(表达式2)
{语句;
表达式3;
}
Do-while语句格式为:
表达式1;
Do
{语句;
表达式3;
}while(表达式2);
例如:
voidmain()
{
inti;
floatsum,a;
clrscr();
sum=0;
a=1;
while(!
(a<0.0001))
{
sum+=a;
a*=-1/2.0;
}
printf("sum=%f",sum);
}
voidmain()
{
intx=3;
clrscr();
do
{printf("%3d",x-=2);
}while(--x);
}
While和do-while的区别就是当表达式1的值一开始就不满足表达式2时,他们的运行结果不一样。
3、总结:
三种循环结构的表现形式只是书写形式的不同,没有太多的差别。
4、循环的嵌套,他们可以相互嵌套。
5、break和continue语句
Break语句是强制性的退出循环语句或switch语句,不再运行,而continue语句是中止一次。
二、习题精选
1、在do-while循环中,循环由do开始,用while结束;必须注意的是:
在while表达式后面的()不能丢,它表示do-while循环的结束。
(A)0(B)1(C);(D),
2、for语句中的表达式可以部分或全部省略,但两个()不可省略。
但当三个表达式均省略后,因缺少判断条件,循环会无限制地执行下去,形成死循环。
(A)0(B)1(C);(D),
3、程序段如下:
intk=0;
while(k++<=2);printf(“last=%d\n”,k);
则正确的执行结果是last=()
4、执行下面的程序后,a的值为()
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
}
5、分析下列程序
main()
{intn[3],I,j,k;
for(I=0;I<3;I++)
n[I]=0;
k=2;
for(I=0;I for(j=0;j n[j]=n[I]+1; printf(“%d\n”,n[1]); } (A)2(B)1(C)0(D)3 6.下面程序的输出结果是() main() {intn=0; while(n++<=1) printf(“%d\t”,n); printf(“%d\n”,n); } (A)123(B)012(C)112(D)122 7.当输入为”quert? ”时,下面程序的执行结果是() main() {charc; c=getchar(); while((c=getchar())! =’? ’)putchar(++c); } (A)Quert(B)vfsu(C)quert? (D)rvfsu? 8.当输入为”quert? ”时,下面程序的执行结果是() main() {while(putchar(getchar())! =’? ’);} (A)quert(B)Rvfsu(C)quert? (D)rvfsu? 三、实验题 1.求100-200间的全部素数 编一程序,将2000年到3000年中所有的闰年年份输出并统计出闰年的总年数,要求每10个闰年放在一行输出。 5、函数 一、知识点 1、函数的定义方法 函数的一般形式为: 函数返回值的数据类型函数名(类型名形参1,类型名形参2,…) { 声明部分 执行部分 } 说明: 1)第一行为函数首部,大括号内的内容为函数体;2)函数名和形参名都是标识符,必须满足标识符命名规则;3)在一个函数体内不能再定义一个函数;4)函数的数据类型缺省时默认为整型;5)有些函数没有形参变量。 2、函数定义时,括号内的参数为形参,若被调用时括号内的参数为实参,如下面的程序中main()函数为主调函数,而add()函数则是被调函数,在程序的运行过程中,实参把值单向的一一对应的传递给形参。 3、函数的调用 函数调用时,被调函数一般应该放在主调函数前,如上面的程序,add()函数的定义应该放在main()函数前,否则应该在主调函数的声明部分对被调函数进行声明,也就是把被调函数的首部加一个分号写在主调函数的声明部分,如上面的程序应该在inta=5,b=6,c;后加上一句intadd(intx,inty);否则程序会报错。 4、函数若需要返回值,必须通过return语句进行返回值。 5、一个函数在定义时,若直接或间接调用到自身,称为函数的递归调用。 例如: floatfac(intn) { floatf; if(n==0||n==1) f=1; else f=fac(n-1)*n; returnf; } main() { floaty; y=fac(5); } 二、习题精选 1、以下说法正确的是__________。 (A)用户若需调用标准库函数,调用前必须重新定义 (B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C)系统根本不允许用户重新定义标准库函数 (D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文 件包括到用户源文件中,系统自动去调用. 2、以下函数形式正确的是__________。 (A)doublefun(intx,inty) {intz=x+y;returnz;} (B)fun(intx,y) {intz; returnz;} (C)fun(x,y) {intx,y;doublez; z=x+y;returnz;} (D)doublefun(intx,inty); {doublez; z=x+y;returnz;} 3、关于C语言以下说法正确的是__________。 (A)实参和与其对应的形参各占用独立的存储单元 (B)实参和与其对应的形参共占用一个存储单元 (C)只有当实参和与其对应的形参同名时才共占用存储单元 (D)形参是虚拟的,不占用存储单元 4、若调用一个函数,且此函数中没有return语句,则正确的说法是该函数__________。 (A)没有返回值 (B)返回若干个系统默认值 (C)能返回一个用户所希望的函数值 (D)有返回值,但返回一个不确定的值 5、按照C语言的规定以下说法不正确的是__________。 (A)形参可以是常量、变量或表达式 (B)实参可以为任意类型 (C)实参可以是常量、变量或表达式,在传递给形参时,要求实参必须有确定的值 (D)形参与其对应的实参类型要求可以不一致 6、以下程序的输出结果是__________。 main() { intk=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d",p); } func(inta,intb) { staticintm,k=2; k+=m+1; m=k+a+b; return(m); } 7、以下程序的输出结果是__________。 main() {inti=1,j=3; printf("%d,",i++); {inti=0;i+=j*2; printf("%d,%d,",i,j);} printf("%d,%d\n",i,j);} 8、以下程序的输出结果是__________。 main() {inta[]={1,2,3,4},i,x=0; for(i=0;i<4;i++){sub(a,&x);printf("%d",x);} printf("\n"); } sub(int*s,int*y) {staticintt=3; *y=s[t];t--
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇总 讲稿 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)