



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、誉达勿外传C 语言重点1、只有一个主函数Main()2、C 语句必须以分号结束3、用户标识符的:C 语言规定,标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字,并且其第一个字符必须是字母或下划线。用户所定义的标识符必须以字母或下划线开头。如:以下不合法的用户标识符是:CA)j2_KEYB)DoubleC) 4dD) _8_以下不能定义为用户标识符的是(D)。A)MainB)_0 C)_int D)sizeof4、数值的:八进制以 0 开头; 指数形式由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为a E n (a 为十进制数,n 为十进
2、制整数)其值为 a*10,n如: 2.1E5 (等于2.1*10,5), 3.7E-2 (等于 3.7*10,)-2*)0.5E7 (等于 0.5*10,7), -2.8E-2 (等于-2.8*10,)-2*)以下不是合法的实数 345 (无小数点)E7 (阶码标志E 之前无数字) 53.-E3 (负号位置不对)2.7E (无阶码)1.35E013(合法,013 是十进制的 13)-5 (无阶码标志)以下不合法的数值是 CA)011B)lelC) 8.0 E0.5D) 0xabcd以下选项中可作为 C 语言合法A)-80.的是 (A)。誉达勿外传B)-080C)-8e1.0D)-80.0e以下
3、选项中,不能作为合法A)1.234e04的是 (B)。B)1.234e0.4C)1.234e+4D)1.234e05、字符及转义字符a在内存中占一个字节,可表示为:a "a"在内存中占二个字节,可表示为:a0 符号dddxhh13 位八进制数所代表的字符 51212 位十六进制数所代表的字符xa3以下不合法的字符是:AA)'018'B '”'C) ''D) xcc'以下能正确定义字的语句是:DA)charstr=064'B)charstr=”x43”;C)charstr=”;D)charstr=”0”;数字字符
4、 0 的 ASCII 值为 48,若有以下程序:誉达勿外传main() char a='1',b='2'printf("%c,",b+);printf("%d ",b-a);程序运行后的输出结果是(C)。A)3,2B)50,2C)2,2D)2,506、变量类型的转换1. 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2. 转换按数据长度增加的方向进行,以保证精度不降低。如 int 型和 long 型运算时,先把int 量转成 long 型后再进行运算。3. 所有的浮点运算都是以双精度进行的,即使仅含 float
5、 单精度量运算的表转换成 double 型,再作运算。4. char 型和 short 型参与运算时,必须先转换成 int 型。5. 在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。例如:1/3 的值是 0,所以计算代数式 1/3*sin(1/2)*sin(1/2)不能获得预想的结果。,也要先又如,表3.6-5/2+1.2+5%2 的值是:DA)4.3B)4.8C)3.3D)3.87、字符的函数:getc()gets()getchar()scanf()誉达勿外传8、变量赋初值的语句以下能正确定义且赋初值的语句是(B)。A)int n1=n2=10;C)fl
6、oat f=f+1.1;B)char c=32;D)double x=12.3E2.5;9、数组的初始化赋值以下数组定义中错误的是:BA)intx3=0;B)intx23=1,2,3,4,5,6;C)intx3=1,2,3,4,5,6;D)intx23=1,2,3,4,5,6;10、强制类型转换设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表是(C)。A)k=k>=kB)-k+C)k%int(f)D)k>=f>=m11、+和-的使用:表+i*+i+-i+i+的值:CA)8B)6C)10D)1212、循环变量的值的变化:运行 for(i=0;i+&
7、lt;6;)后,i 的值是:CA)5B)6C)7D) 813、输入输出格式在输入语句中,%d、%f、%c、%s 后面跟的是变量的地址;在输出语句中,%d、%f、%c 后面跟的是变量,%s 后面跟的是变量的地址或指针变量; 有定义语句:int b;char c10; ,则正确的输入语句是 (B)。A) scanf("%d%s",&b,&c);B) scanf("%d%s",&b,c);C) scanf("%d%s",b,c);D) scanf("%d%s",b,&c);有定义语句:in
8、t b;char c10; ,则正确的输出语句是 (C)。A) printf("%d%s",&b,&c);B) printf ("%d%s",&b,c);C) printf ("%d%s",b,c);D) printf ("%d%s",b,&c);宽度:用十进制整数指定输入的宽度(即字符数)。例如: scanf("%5d",&a);输入: 12345678誉达勿外传只把 12345 赋予变量 a,其余部分被截去。又如: scanf("%4d%4d
9、",&a,&b);输入:12345678将把 1234 赋予 a,而把 5678 赋予 b。scanf 函数中没有精度,如: scanf("%5.2f",&a); 是的。14、条件表:若整型变量a、b、c、d 中的值依次为:1、4、3、2。则条件表a<b?a:c<d?c:d 的值 (A)。A)1B)2C)3D)4可理解为:a<b?a:(c<d?c:d)条件运算符的结合方向是自右至左。15、整型赋予字符型,只把低八位赋予字符量。如,int k=255;char a;a=k;则 printf(“%d”,a);的输入结果:
10、( B )A)1B)-1C)15D)-15以下程序的输出结果是: int x;char y; x=258;y=x; printf(“%d”,y);结果是:2分析:char 是一个字节,int 是 2 个字节,当大于 255 时就变成 0,1,2,16、虽然 C 编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但反过来在一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。只要表的值为非 0,即为“真”。如在 if(a=5);中表的语句总是要执行的的值永远为非0,所以其后17、break 和continue 语句:break语句只能用在switch 语
11、句或循环语句中,其作用是跳出switch语句或跳出本层循环, 转去执行后面的程序。continue 语句只能用在循环体中,其语义是:结束本次循环,即不再执行循环体中 continue语句之后的语句,转入下一次循环条件的次的循环,并不跳出循环。与执行。应注意的是,本语句只结束本层本18、字常用函数:字输出函数 puts 格式: puts (字符数组名) 功能:把字符数组中的字器。#include"stdio.h" main()static char c="BASICndBASE" puts(c);输出到显示誉达勿外传字输入函数 gets 格式: gets
12、(字符数组名) 功能:从标准输入设备键盘上输入一个字。#include"stdio.h" main()char st15; printf("input string:n"); gets(st);puts(st);字连接函数 strcat 格式: strcat (字符数组名 1,字符数组名 2) 功能:把字符数组 2中的字连接到字符数组 1 中字的后面,并删去字1 后的串标志“0”。本函数返回值是字符数组 1 的首地址。#include"string.h" main()static char st130="My name is
13、 " int st210;printf("input your name:n"); gets(st2);strcat(st1,st2); puts(st1);字拷贝函数 strcpy 格式: strcpy (字符数组名 1,字符数组名 2) 功能:把字符数组 2拷贝到字符数组 1 中。串结束标志“0”也一同拷贝。字符数名 2, 也可以是中的字一个字。这时相当于把一个字赋予一个字符数组。#include"string.h" main()static char st115,st2="C Language" strcpy(st1,
14、st2);puts(st1);printf("n");字比较函数 strcmp 格式: strcmp(字符数组名 1,字符数组名 2) 功能:按照 ASCII 码顺序比较两个数组中的字,并由函数返回值返回比较结果。字字字1字2字1字2,返回值0;2,返回值0;2,返回值0。本函数也可用于比较两个字#include"string.h" main() int k;,或比较数组和字。誉达勿外传static char st115,st2="C Language" printf("input a string:n");get
15、s(st1); k=strcmp(st1,st2);if(k=0) printf("st1=st2n"); if(k>0) printf("st1>st2n"); if(k<0) printf("st1<st2n");测字长度函数 strlen 格式: strlen(字符数组名)功能:测字的实际长度(不含字符串结束标志0) 并作为函数返回值。#include"string.h" main() int k;static char st="C language" k=strl
16、en(st);printf("The lenth of the string is %dn",k);19、函数的参数:函数的形参和实参具有以下特点:1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。2.实参可以是、变量、表、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。3. 实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。4. 函数调用中
17、发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值变化。下例可以说明这个问题。void main()int n;printf("input numbern"); scanf("%d",&n);s(n); printf("n=%dn",n);int s(int n)int i;for(i=n-1;i>=1;i-)誉达勿外传n=n+i; printf("n=%dn",n);20 在语言中,对变量的类型说明有以下四种:a
18、uto register externstatic自动变量寄存器变量外部变量静态变量自动变量和寄存器变量属于动态方式,外部变量和静态变量属于静态方式。静态动态变量通常是在变量就分定单元并一直保持不变,直至整个程序结束。变量是在程序执行过程中,使用它时才分配单元, 使用完毕立即。 典型的例子是函数的形式参数,在函数时,才予以分配, 调用函数完毕立即并不给形参分配。单元,只是在函数被调用函数内凡未加auto。类型说明的变量均视为自动变量,也就是说自动变量可省去说明符21、指针就是内存的地址变量取地址使用&指针取对应单元的值使用*char *ps="C Langage"或
19、者char *ps; ps="C Language"都是合法的。22、#define 和 typedef宏定义#define 只是的字代换,是在预处理完成的,而 typedef 是在编译时处理的,它不是作简单的代换, 而是对类型说明符重新命名。23、带定义:#define 宏名(形参表) 字定义中,宏名和形参表之间不能有空格出现。定义中,形式参数不分配内存单元,因此不必作类型定义。1.2.3.带在带在宏定义中的形参是标识符,而宏调用中的实参可以是表#define SQ(y) (y)*(y)main() int a,sq;printf("input a number
20、: "); scanf("%d",&a); sq=SQ(a+1);printf("sq=%dn",sq);。4. 在宏定义中,字内的形参通常要用括号括起来以避免出错。 在上例中的宏定义中(y)*(y)表的 y 都用括号括起来,因此结果是正确的。誉达勿外传5. 对于宏定义不仅应在参数两侧加括号, 也应在整个字外加括号。24、对文件包含命令的几点说明:1. 包含命令中的文件名可以引号括起来,也可以用尖括号括起来。例如以下写法都是的: #include"stdio.h"#include<math.h> 但是这两
21、种形式是有区别的:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的), 而不在源文件目录去查找; 使录中去查找。2. 一个 include include 命令。3. 文件包含引号则表示首先在当前的源文件目录中查找,若未找到才到包含目命令只能指定一个被包含文件, 若有多个文件要包含,则需用多个嵌套,即在一个被包含的文件中又可以包含另一个文件。25、使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。26、FILE *fp;fphzk=("C:hzk16,"rb")27、对于文件使用方式有以下几点说明:1. 文件使用方式
22、由 r,w,a,t,b,+六个字符拼成,各字符的含义是: r(read): 读w(write): 写a(append): 追加t(text): 文本文件,可省略不写b(banary): 二进制文件+: 读和写2. 凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。3. 用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。5. 在打开一个文件时,如果出错,fopen 将返回一个空指针
23、值NULL。在这一信息来判别是否完成打开文件的工作,并作相应的处理。可以用6. 把一个文本文件读入内存时,要将 ASCII 码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成 ASCII 码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。28、fclose 函数调用的一般形式是: fclose(文件指针); 例如:fclose(fp); 正常完成关闭文件操作时,fclose 函数返回值为 0。如返回非零值则表示有错误发生。文件的读写对文件的读和写是最常用的文件操作。誉达勿外传29、在语言中提供了多种文件读写的函数:·字符读写函数 : fgetc 和 fputc·字件指针)读写函数:fgets 和 fputsfgets(字符数组名,n,文件指针);fputs(字,文·数据块读写函数:fread 和 fwrite·格式化读写函数:fscanf 和 fprinffread(buffer,size,count,fp); fwrite(buffer,size,count,fp);fscanf(文件指针,格式字,输入表列); fprintf(文件指针,格式字,输出表列);对 fgets 函数有两点说明:1. 在读出 n-1 个字符之前,如遇到了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育苗知识与技能培训考核试卷
- 科研伦理审查与违规处理考核试卷
- 染整行业绿色制造与清洁生产考核试卷
- 染料在农业生物防治中的应用考核试卷
- 竞赛场地布局与设计考核试卷
- 批发商财务管理与风险控制考试考核试卷
- 租赁农机在农业机械化推广中的作用考核试卷
- 拼多多农产品电商平台活动策划代运营服务协议
- 海关关员岗位海关业务流程优化聘用合同
- 城市管理系统数据收集与合规利用协议
- 热力管道吊装专项方案
- 水下探测技术发展-洞察分析
- DB21T 3508-2021 旅游景区木栈道设置与维护规范
- 扁桃体癌护理查房
- 医疗技术销售技巧
- 2024专利代理人考试真题及答案
- 2025年高考数学模拟卷(一)含答案及解析
- 高英-Mark-Twain-Mirror-of-America原文+翻译+修辞
- 中国老年骨质疏松症诊疗指南(2023)解读课件
- 高中英语新课程标准解读课件
- 《宠物营养与食品》课件-1.3宠物的蛋白质营养
评论
0/150
提交评论