2022年二级c知识点归纳总结_第1页
2022年二级c知识点归纳总结_第2页
2022年二级c知识点归纳总结_第3页
2022年二级c知识点归纳总结_第4页
2022年二级c知识点归纳总结_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用 C 程序实现的算法可以没有输入但必需要有输出 C 语言源程序文件名的后缀是 .c 经过编译后生成的文件(目标 文件)的后缀是 .obj 经过连接后生成的文件的后缀是 .exe 结构化程序由次序 选择 循环三种基本结构组成 标识符 字母数字下划线 字母不能打头 不能调用关键字( int double 等)能调用预定义标识符( printf define 等) 实型常量:小数和指数 都不行 整型常量: 指数 e 或 E 后面必需跟整数 零和小数 %取余符号两边必需是整数 3%7=3 由于除不动就取被除数 整型除以整型为整型 5/2=2 在全部的运算符中,逗号的用算符最低; 复制表达式中前面不能

2、是组合 比如 a+7=b+c 是错的 K=8 ; Printf “%d,%d/n ”,k,+k ;输出结果不是 89 而是 99 在逗号用算符中,虽然取最终一个值 ,但前面的表达式也执行; 区分于三目运算符“. : ”就不需要运算另一个不取值的表达式 Bmain int x=1,y=2,z; z=xy.+x:+y; printf%d,%d,%dn,x,y,z; A)1,2,3 B)1,3,3 C)2,3,3 D) 2,2,3 在三目运算符“. :”中,xy 不成立,取 +y 的值,而 +x 不需要运算, 所以 x 为原值 1,y 为 3, z 也为 3; 输入数据时逗号紧跟其后 scanf(“

3、%d,%d”,&a,&b); 1第 1 页,共 12 页空, 2 不对 1,2 对 1,空 2 对 优先级从高到低 !(规律非)算术用算符,关系用算符, & 逻 辑与 ,|(规律或),赋值用算符; 用 break 语句可以是流程跳出 switch 语句体, 也可用 break 语句 在循环结构中终止本层循环体,从而提前终止本层循环; Continue 语句的作用是跳过本次循环体中余下尚未执行的语句, 立刻进行下一次的循环体判定,可以懂得为仅终止本次循环 .B 已 知 #int t=0; while t=1 . 就以下表达正确选项 A 循环把握表达式的值 为 B 循环把握表达式的值 为 C 循环

4、把握表达式不合 法 0 1D 以上说法都不 对 循环把握表达式的值为 1t=1 是将 t 赋值为 1,所以循环把握表 达式的值为 1;判定 t 是否等于 1时,应用 t=1, 留意 = 与= 的用 法; C 语言中 ,在定义并初始化二维数组时 , 可以省略数组第一维的长 度,但是不能省略其次维的长度 x4 错的 %c 字符型 接受空格 回车 例: scanf (“%c%c%c ”, &a,&b,第 2 页,共 12 页&c);如输入 THE 就 a 读 T b 读 H c 读回 车符; 如在格式说明符之间家空格就空格回车符 跳格符都将 被认作 间隔符读入 %d 不接受空格 回车 %s 字符串的

5、输入和输出,不接受空格回车 C 语言的简洁数据类型有:整型 实型 字符型 函数定义: 1 在同一程序中函数名必需唯独, 2 形参只有在统一函 数中唯独即可; 3 不能在函数内部定义函数 4 如函数名没有定义 类型就默认为 int 型 5 除了返回值类型为 int 和 char 型的函数外, 函数必需先定义后调用 6 假如没有函数值,就必需把函数定义成 void 型 如输出 NULL 0 0 就都输出为 0 一位数组中 *p+ 的意思 先取出指针 p 所指示储存单元值 然后让 指针 p 向后移 *P+ 也一样 二维数组中 *p+ 是先取出指针 p 指示储存单元值 然后让指针 p 向下移一行 以下

6、程序的运行结果是 c main int i; char aa3=a,b,c,d,e,f; char *p3=aa; fori=0;i2;i+ ifi=0 aaii+1=*p+; printf%cn,*p; A) a B) b C) d D)c Double x【 8】由于定义 x 数组有 8 个元素, 因此下标表达式的值 第 3 页,共 12 页必需大于或等于 0 并且小于 8 切必需是整数 数组名中存放的是地址常量,它代表整个数组的首地址!不行以 给数组名重新赋值 语句 a=&x a+ 都是非法的,由于不能给 a 重 新赋地制值 s【10 】 , s=“hello”赋值不合法 在函数内部不要

7、把函数内部的变量作为返回值? 二维数组 a【 3】【 2】 m=a【3】【2】赋值不合法 由于只有两 行 在二维数组里 a【 0】+这样的赋值不合法 +1,表达式中一的单位应当是 4 个字节 如有表达式 a【0】 char str 【10】=s,t,r,i,n,g,!0;字符数组共有十个元素 但作为字符串,其长度是 7char str【】 =s,t,r ,i,n,g,!;定义了一个有七个元素的字 符数组,由于没有串终止的标志,所以这时不能把他当作字符串 来使用 char str 【】=“string!”;系统将按字符串中实际的字符个数来定义 数组的大小,在此数组包含八个元素(含系统自动加的 /

8、0) gets puts 函数在终端输入或输出一行字符串 gets 函数认空格 不认回车 用来从终端键盘读入字符串 (包括空格符),直到读入 一个换行符为止 puts 函数遇到第一个 /0 的时候终止输出,并自 动输出一个换行符(与 printf 的区分) 全部的 /和后面的任一字符都能组成一个转义字符 /012 的话以大 范畴为主 第 4 页,共 12 页Register 变量将变量的值保留在 cpu 的寄存器里 有助于提高程 序的运行速度 Static 变量静态储存变量在内存的静态储备变量中占据着永久性 的储备单元 遂于未赋初值的静态局部变量, c 编译程序自动给 他赋初值 0 宏定义:

9、1 当宏定义在一行中写不下时,需要在下一行连续时; 只需在最终一个字符后紧接着加 / 2 替换文本不能替换双引号中与宏名相同的字符串; 3 用作宏名的标识符通常用大写字母表示,这并不是语法规定,只是 一种习惯,以便与程序中的其他标识符相区分 4 在 c 程序中,宏定义的定义位置一般写在程序的开头 5 宏替换和函数调用的区分,宏替换对参数没有类型的要求 6 宏替换在编译前由预处理程序完成的, 因此宏替换不占运行的时间 7 假如宏定义是表达式,就在调用的时候应整体搬下来 C#define N 2 #define M N+1 #define NUM M+1*M/2 main int i,n=0; f

10、ori=0;iNUM;i+ n+; printf%dn,n; A) 5 B) 6 C) 8 D)9 Typedef 类型名 标识符 typedef int a 就 a 成为了一个 int 类 型的类型名 使用 typedef 说明一个结构体类型名 typedef stuct STUCT; 第 5 页,共 12 页对于结构体变量后面未赋值的成员,系统自动为数值型和字符型 数据赋初值 0 以wt 方式写入的是字符文件 ,转义字符 n被看作两个字符来处 理;而 wb 方式写入的是二进制文件 ,转义字符 n是一个字符; B 对于下述程序 ,在方式串分别接受 wt 和wb 运行时 , 两次生成的 文件

11、TEST 的长度分别是 #include void main FILE *fp=fopenTEST,; fputc A,fp;fputc n,fp; fputc B,fp;fputc n,fp; fputc C,fp; fclosefp; A7 字节, 7 字 节 B7 字节, 5 字 节 C5 字节, 7 字 节 D5 字节, 5 字 节 链表的数据结构 ,必需利用指针变量才能实现 ,即一个结点中应包 含一个指针变量 ,用它存放下一结点的地址; D 如有以下定 义 : struct link int data; struct link *next; 第 6 页,共 12 页 a,b,c,*p

12、,*q; 且变量 a 和 b 之间已有如下图所示的链表结: 之间并形成 构 指针 p 指向变量 a,q 指向变量 c;就能够把 c 插入到 a和 b新的链表的语句组是 : Aa.next=c; c.next=b; Bp.next=q; q.next=p.next; Cp-next=&c; q-next=p-next; D*p.next=q; *q.next=&b; a=5 b=4 c=3 d=abc d=0 由于是先判定 ab 为真 所 以为 1 1 大于 3 不成立 所以为 0 文件: 1 FILE *P1 *P2;P1,P2 均被定义为指向文件类型的文件指 针变量 称为文件指针 ; 2打开

13、文件 fopen (文件名,文件使用 方式); fopen(“file”,“r”) “r”:为读打开文本文件“w”为写而 打开文本文件 “a”为在文件后面添加数据而打开文件; 3 关闭文 件 fclose(文件指针);当成功的执行了关闭操作, 函数返回 0 否 第 7 页,共 12 页就返回非 0 函数 Fputc ( putc )函数输出一个 字符 puts ( ch, fp)的功能是将字 符 ch 写到文件指针 fp 所指的文件指针去 Fgetc ( getc )函数输入一个 字符 ch=gets (pf)的功能是从 pf 指定的文件中读入一个字符; 判定文件终止函数 feof 为 1,否

14、就为 0假如遇到文件终止 函数 feof( fp)的值 Fscanf 函数只能是从文本文件中按格式输入; Fscanf 函数和 scanf 函数的区分是 fscanf 函数输入的对象是磁盘上文本文件中 的数据 函数的调用形式 fscanf ( fp,“%d”, &a) Fprintf 函数按格式将内存中的数据转换成对应的 ASCII 代码形式 输出到文本文件中 fprintf 函数与 printf 函数的区分 f 输出的内容 将按格式存放在磁盘的文本文件中 “%d”, a) ;函数的调用形式 fscanf( fp, Fgets 函数用来从文件中读入 字符串 ;调用形式 fgets(str,n,

15、fp); fp 是文件指针 str 是存放字符串的起始地址, n 是一个 int 型变 量,长度限制最多接受 n-1 个;函数的功能是从 fp 所指文件中读 入 n-1 个字符放入以 str 为起始地址的空间内; Fputs 函数用来把 字符串 输入到文件中,调用形式如下 fputs(str, fp); Fread 函数 fwrite 函数分别用来读写二进制文件; 调用形式如下: 第 8 页,共 12 页freadbuffer,size,count,fp; fwritebuffer,size,count,fp;buffer 是 数据块的指针 size 是数据块的字节数 count 用来指定每读

16、写一 次 文件定位函数 fseek 函数用来移动文件位置指针到指定的位置上 调用形式: fseek ( pf, offset , origin);从 origin开头往后挪 offset 个字节 ftell 函数用以获得文件当前位置指针的位置,函数给出当前位置 指针相对于文件开头的字节数;调用形式: t= ftell (fp ); 当打开一个文件时,通常并不知道该文件的长度,通过以下函数 调用可以求出文件的字节数 Fseek (fp,oL,SEEK_END ); T=ftell (fp ); Rewind 函数此函数没有返回值 ,函数的功能是使文件的位置指 针回到文件开头; C 有以下程序 #

17、include main FILE *fp;char str10; fp=fopenmyfile.dat,w; fputsabc,fp;fclosefp; fpfopenmyfile.data,a+; fprintffp,%d,28; 第 9 页,共 12 页rewindfp; fscanffp,%s,str; putsstr; fclosefp; 程序运行后的输出结果是 Aabc B 28c C abc28 D 因类型不一样而出错 C 以下程序的功能是; #include main FILE *fp; long int n; fp=fopenwj.txt,rb; fseekfp,0,SEEK

18、_END; n=ftellfp; fclosefp; printf%ld,n; B A )运算文件 wj.txt 的起始地址 B)运算文件 wj.txt 的终止地址 C)运算文件 wj.txt 的长度 D)将文件指针定位到文件末尾 以下程序运行结果是 main char a5= ABCD,1234,abcd,5678,EFGH;int i;fori=0;i3;i+ printf%s,ai;A) A1a B) ABCD1234abcdC) ABC D)ABCD1234abcd5678EFGH分析:对于二维数组,其元素为一维数组,它表示行地址,依据 行地址可输出该行的字符串; 给数组赋值 x8=Turbo C 错; x=T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论