




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1:用高级语言编写的程序叫做源程序,然后用编译程序吧 源程序翻译成二进制的目标程序,然后将该目标程序与系统 函数库以及其他目标程序连接,形成可执行程序。2:算法五个特点:确定性,有穷性,输入,输由,可行性。3:程序流程图、N-S盒图、伪代码4: int无论有符号无符号,都是 16位Short无论是有符号还是无符号都是16位Long无论是有符号还是无符号都是32位Float 32 位 double 64 位,long double 128 位。一个整型常量后面加u就是无符号,加l就是长整型5: t,b退格,r移到本行开头6: 0'48, A'65, a''97,差
2、值 327:级另U char<int<unsigned<long<double8: (int)x+y 只是 int 化 x;9: i+j(i+) +j10.1 : float 32位,24位表示小数部分(其中包括了符号位)8位表示指数部分。11 :字符给整形赋值,如果是无符号字符型,赋值给整形就 是占据整形低8位,高8位补0,如果是有符号字符型,如 果是负号就补1,正好补0;12 : int short long 给 char 就是把低 8 位给 char13 :整形给long ,同char给int 一样,14 : putchar() Getchar()Puts(),g
3、ets()Printf( %md”,d) %d,%c,%f,%ld,%o,%x,%u, %s%d的原意是,按十进制整形数据输由M表示输由字段的宽度,数字靠右拜访。如果数字太大, 就输由数字,不管m.Printf( %m.ns ”,d)输由占m歹U,靠右端,只取字符串中的前 n个字符,如 果n大于m,则不管mPrintf( %-m.ns :d)输由占m歹ll,靠左端Printf( %m.nf ”,d)%f输由实数,包括单精度和双精度,只能输由六位小数, 输由n位小数Printf( %m.ne ”,d)N指的是输由小数的位数,Scanf输入整形,分割可以用回车或者 tab或者空格但 是不能用逗号S
4、canf (%3d%3d ”,&a,&b )输入 123456.系统自动把123赋值给a, 456赋值给b;同理,如果 系统输入abc三个字符,但是 ch只能容纳一个,就吧 a给 ch , bc给后面的。Scanf (*%3d)表示读入三位整数,但是不赋值。,Scanf的字符串中,除了格式说明符以外还有其他的字 符,输入的时候要在对应位输入这些字符。Scanf( %c%c%c ;&c1&c2&c3) 输入的 abc ,不应该是 有空格的、Scanf( %s%s%s :str1,str2,str3);Scanf输入多个字符串的时候,用空格分隔15:大小于的
5、优先级高于等于。16:优先级由低到高:赋值运算符,与和或,大小于,算术 运算,非。17: : break是跳由循环,continue是跳由本次循环,18: int a34=1,5,9,每行自补 019: strcat (s1 , s2)把 s2 连接到 s1。Strcpy (s1,s2)把s2复试到s1中,覆盖s1.注意这个复制的时候0'也复制进去Strncpy (s1,s2 , n)把s2的前n个字符复试到 s1中Strlwr大写转小写 strupr小写转大写20:数组做形参的时候,大小可以不指定,其实本质上还是把首地址给参数传递了21 :多维数组做函数参数,可以且只能省略第一维的大
6、小。22 : register变量,只有局部变量和形式参数可以作为寄存 器变量,寄存器数目有限的,局部静态变量不能,局部静态变量不能为寄存器变量23:外部变量跨文件使用的方法是,在文件 1中函数外定义 外部变量int A;在文件2中函数外声明 extern A24:实际上,编译器遇到extern的时候,现在本文件找外部 变量的定义,如果找到,就在本文件中扩展作用于,如果找不到,就在连接时从其他文件中找外部变量的定义,然后 作用域就是跨文件的。25:在文件中函数外部定义的变量,如果是一般的定义,intA,其他文件可以通过 extern来引用这个变量,但是如果定 义static int A ,则其
7、他文件无法通过extern来引用。26:如果外部变量不在文件开头定义,则有效范围只在定义处 到文件结束,如果定义之前的函数要引用外部变量,就要用extern声明。,如果外部变量定义在函数之前,就没有必要 extern 了、通常人们喜欢吧变量和函数的extern声明放在一个单独的文件中,即头文件。声明:extern int A, B定义:int A=13,B=8;27:局部变量:自动,静态局部变量,寄存器。全局变量:静态外部变量,外部变量动态存储:自动,寄存器,形参静态存储:静态局部,静态外部,外部变量静态存储区:静态局部变量,静态外部变量,外部变量、动态存储区:自动,形参寄存区存储区:寄存器。
8、28:声明与定义,声明就是int a声明有两种,一种是int a是分配存储空间的,叫定义性声明 (简称定义),一种是extern a是不分配存储空间的,叫弓用性声明,所以,声明包含定义,定义是分配存储空间的声 明。外部变量的定义只能有一次,它的位置在所有函数之外,而 同一文件中的外部变量的声明可以有很多次,它的位置可以 任意。系统根据外部变量的定义来分配存储空间,对外部变 量的初始化只能在定义时进行,外部变量的声明,其作用是 声明该变量是一个已在后面已定义的外部变量,仅仅是为了 扩展该变量的作用范围。Static也是一个声明的符号,但是必须加上变量类型。29 : define后面不要加;30
9、: (*a) +不等于*a+, *a+等价于* (a+)31:数组名a代表数组首元素地址,是一个指针常量,在运行期间固定不变,所以 a是常量,a+无法实现。但是,实参 数组代表一个固定的地址,可是形参不是一个固定的地址值, 而是一个指针变量,可以再被赋值。27:二维数组的指针中,取值的只有, *(a1+2)*(*(a+1)+2),a1232 : char a口; A= "I love ”错误char *a ;a= "I LOVE ” 对即,数组可以再定义的时候赋值,不能再赋值语句中赋 值。同样,这里的数组名也是不能改变的。但是用指针定义 的数组就可以。33 : int (*
10、p)(int int )指向函数的指针Int *p (int int )返回值的指针的函数int (*p)4,表示一个指向4个整型数组的指针int *p4,表示一个含有4个整型指针的数组34 :对于指向函数的指针,p+等无意义35:指向指针的指针。Char *name=:Char *p;P=name+I;Printf(*p)36:p1 指向 a1,p2 指向 a3 ,p2-p1=2,但是 p1+p2 无意义 37:struct studentint num;Char c;stu3=1, 'c,2,'c',3,'c38:(*p).num 等价于 p->num
11、39:结构体在定义的时候,不能 student I,j,k ;应该Struct student I,j,k;40:void *malloc(int size)41:共用体所占内存等于最长成员的长度。42:枚举类型:Enum weekdaysum,mon,tue,wed,thu,fti,stuEnum weekday I,j,k ;定义时候自动赋值 0-6; printf( %d”,sum)输由0也可以强制赋值Enum weekdaysum=7,mon,tue,wed,thu,fti,stu则mon自动为8, tue自动为9但是一个整数不能在定义外直接赋值枚举,i=7 ; 是错的, 应该要 i=
12、(enum weekday)2, 相当于 i=tue ;43:typedef struct int I,int j,int kNUMNUM sum;即可,不用 structTypedef int NUM100;意思是 NUM表示一个长度为 100的 整形数组, 到时候NUM n,就表示,n为一个长度为100 的整型数组。Typedef int *NUM ;意思是 NUM表示一个整形指针, 到时 候NUM n ,就表示,n为一个整型指针。 NUM a10表示a 为一个整形指针数组。Typedef int (*NUM )();意思是 NUM表示一个指向函数 指针,到时候NUM n ,就表示,n为一
13、个指向函数指针。44:位与,可以清零,可以取中间莫位,45:异或:特定位翻转(即与 11111111异或), 保留原值(即与00000000异或), 交换两个值不用临时变量A=aAb;b=bAa;a=aAb;46:右移特殊,如果为无符号,就左边补0,如果有,就正数补0,负数补1 ;47:位段:Struct akunsigned a:2; (必须是 unsigned )Unsigned b:3;Unsigned c:4;Int o;Unsigned d:5;Unsigned : 0;Unsigned e: 6;Int I;Struct ak data ;一个abc占9位,那个i从第三个字节开始算
14、,d占5位,但是Unsigned:0;表示下一个位段从下一个单元开始放,e占6位,从下一个单元开始放i;所以data 一共占用8个 字节如果赋值data.a=9 ;就会自动把8的低2位给data.a , a里 面就是 01 ,再 Printf (%d ”, data.a )输由 148:输入一个字符串的时候,用回车结束,但是这个回车也会被接受,要用一个 getchar来收下回车符,比如Scanf (%s filename )Ch=getchar();49 : fp=fopen(31 ","r')打开失败则返回 NULLfclose(fp);成功返回0,失败返回EOF
15、fputc(ch,fp)把字符ch写到fp中,失败返回 EOFch=fgetc(fp)从指定文件读入一个字符,失败返回EOFfeof (fp)判断文件是否结束,fread(buffer,size,count,fp) 从 buffer 数组中读入 count个数字进fp文件中,size表示数组中每个元素占字节数。fwrite(buffer,size,count,fp)fprintf(fp, "d”,d)把整型变量d输由到fp文件中fprintf(fp, "%d”,&d),从磁盘文件中读入一个整形putw (10, fp)把整数10输由到fp中i=getw(fp)fge
16、ts (str,n , fp)从fp文件中读n-1个字符,放入 str 中fputs(str,fp)把 str 放到 fp 中rewind (fp),是fp回到文件开头fseek (fp,100,1 )从fp文件当前位置开始,往后移 100 个字节。0表示文件开始,2表示文件末尾i=ftell (fp), i为文件当前对文件开头的偏移量、50: r只读 w只写 a追加Rb只读(打开的是二进制文本)wb只写ab追加R+, w+,a+都是读写,但是r+需要该文件已经存在,w+的时候会新建一个文件,a+打开后指针在文件末尾 51:find是标识变量。52:定义一个指针数组,并分别存入四个字符串的首地
17、址。53: *(a+i)表示ai或者数组a的第i个元素。50: a表示二维数组首地址,a0表示第0行首地址,a00 表示第0行第0列数组元素。54: sqrt返回的数据类型是 double55: : while ( K=0 )循环体一次也不执行56: c语言的编译系统对宏的处理是在源程序中其它正式编 译之前进行。57 : char str= "ABC ",*p=str;P=p+3;Printf( %d ”,strlen(strcpy(p, "ABCD ");答案是4;58 : u(u=(a>b)?a:b)>c)?u:c59:printf( %
18、d",y=y/x);输由的是运算后的y的值60 : argc是命令行参数的个数。61 :以0开头的都是8进制,比如int x=010 ,就是x=8;62 :返回值为char的函数,return 0是可以的63 : strlen中,t b等都按一个字符算。64:构建杨辉三角:void yh(int a1818)int j,k;for (j = 1;j< 18;j+ )aj1 =1;a皿=1;for (j=3;j< 18;j+ )for (k=2;k< j;k + )a皿k =aj -1k- 1+aj - 1k;65:用大括号阔起来,就可以定义局部变量。Void mai
19、n() (int k=5;(Int k=8;Printf( %d”,k)Printf( %d”,k)答案是8566: static struct st1(char name10;char *addr;); static struct st2(char *pname;struct st1 s1;s2 = "England" ,"Ann”London” void main()printf( "%s,%sn" ,+s2 .s1.addr,&s2 .pname3);S2.pname是一个指针,S2.pname3是一个字符,对此字符取地址,&am
20、p;S2.pname3,以此地址开始输由字符串。67 : while(x)T=x%10;X=x/10;Y=y*10+t;Printf( %d”,y)实现把x逆序,比如x为3275 ,输由572368:宏定义之间可以互相调用。69:C程序由变量和函数组成。67:5*7/9和 5/9*7 是不一样的70 : c=getchar (),涉及到文件的时候,c最好用int定义, 因为EOF的话,一个字节不够用。71 :多路判定72:值传递的好处,参数看做是局部变量,因为局部变量便 于初始化,因此,额外使用的变量更少。73:不同枚举重的名字必须不相同,同一枚举重不同的名字可以具有相同的值。74 :枚举相对
21、于define语句来说,优势在于常量值可以自动 生成,止匕外,可以用符号的形式打印由枚举变量的值。75:变量用const限定符,则无法修改。76 : float不会自动转为 double77 : sqrt的参数和返回值都是 double。78:算术移位:用符号位填充,逻辑移位:用 0填充79: a?b:c此条件表达式也遵循类型转换,比如Float f=5;Int n=5;(n>0)?f:n;答案无论是n>0还是n<=0 ,都是float类型的5;80:优先级:(1):括号 取值运算符:一元运算符(右结合)(3)算术运算符(4)移位(5)大小于(6)等于不等于(7)位运算:与
22、异或 或(8)逻辑运算:与 或(9)问号(右结合)(10) += , |=。其中算术运算高于位预算(右结合)(12)逗号81 : 括起来的叫 程序块,其后不需要分号。82 : else默认和最近的一个if匹配,但是可以用打乱匹配。If()if()Else83:字符串转整数N=0;While(si!= 0)N=10*n+(si- 0);)Return n;84:把数组n转化为字符串,Si+=n%10+ '0'85 : do while循环体至少被执行一次。86 : goto语句用于深度循环的跳由。87:函数与主函数在同一个源文件,若函数声明与后面定义 的返回值不一类型,就会检测由错误,但是如果不在同一个 源文件,就不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年辽源市龙山区数学三年级第一学期期末达标检测试题含解析
- 2025-2026学年甘肃省庆阳市环县三年级数学第一学期期末复习检测模拟试题含解析
- 2025-2026学年抚州市崇仁县三上数学期末试题含解析
- 2025-2026学年福建省泉州市南安市三上数学期末学业质量监测模拟试题含解析
- 2024年黄冈市罗田县数学三年级第一学期期末联考试题含解析
- 护理学的创新实践执业医师考试试题及答案
- 卫生资格考试难点突破试题及答案
- 医学与人际关系的试题及答案
- 对比分析卫生资格考试的变化试题及答案
- 系统化学习的行政法学试题及答案
- 龙门吊安装拆除安全施工专项方案
- 盆腔器官脱垂的中国诊治指南(2023年)
- 如何做好医患沟通
- 2022年浙江建设技师学院工作人员招聘考试真题
- 食品安全责任保险课件
- 国开电大《应用写作(汉语)》形考任务1-6答案
- 穿孔机作业指导书
- 统考考生本科志愿样表
- 人教鄂教版六年级下册科学全册知识点汇总
- 新航道托福雅思培训班
- 数车实训图纸
评论
0/150
提交评论