第一篇:c语言基础总结
常见错误
1.使用未初始化和未赋值的变量
描述:非全局变量和静态变量在定义时不自动进行初始化,初值为一个与该程序运行环境有关的随机数。不赋值或没有显示初值就直接使用这样的变量是错误的。
解决:所有变量都显示地进行初始化,建议数值变量初始化为0,指针变量初始化为NULL
2.不考虑数值溢出的可能
描述:当赋值超过此范围数值,就会产生数值溢出,得到不正确的值。
解决:预先估算运行结果的可能范围,采用可能范围更大的,不处理负数,就用无符号类型。运算还没开始前,判断运算数是否在合理取值的范围内,超出则停止运算。采用第三方无取值范围的运算库。
3.不用sizeof()获得类型或变量的字长
描述:相同类型在不同平台上占得字节数不同。Int在16位,32位,64位系统分别占2,4,8个字节。结构体所占字节也不是所有成员字长的简单相加,而是和平台与编译器,编译项都有关系。
解决:用且只用sizeof获得字长
Intwriteint(intfh ,inti)
{
Returnwrite(fh ,&i,sizeof(i));
}
4.假定类型的取值范围
描述:类型的取值范围与程序编译息息相关。
解决:使用limits.h和float.h定义的宏(INT--MAX,INT----MINULONG--MAXFLT---MAX
5.期望两个整数的运算自动获得浮点数的结果
描述:两个数运算的结果还是整数,不是浮点数
方案:强制转换为浮点数,再运算
例:voidfunc(void)voidfunc(void)
{{
Floatf=0.0;floatf=0.0;
Inta =3,b=2;int a=3,b=2;
f=a/b;f=a/(float)b;
printf(“%f,f);printf
}
6.不预先判除除数是否为0
编译器反应:直接写入inti=100/0,编译器会报错,编译器对此问题沉默
解决方案:先判断除数是否为0,若是0则不运算。
7.混淆“&,|”与“&&,||”
说明:他们是两种不同的运算符,有人总是弄错
8使用依赖编译器求值顺序的语句
描述:printf(“%d,%d,%d,i++,i++,i++);i=0可能输出 0.1.20.0.0.2.1.0方案:按期望的顺序分别求职,再综合运算
Voidfunc(void)
{
Int a,b,c ,i=0;
a=i++;
b=i++
C=i++
Printf(“%d,%d,%d”,a,b,c)
9.使用依靠算符优先级的表达式
描述;没有记住优先级,容易出错。
解决:用括号明确优先计算的部分
10.表达式过于复杂
描述:(a>b||b>c)&&(o>P||q>p)?(a-b)*c+(o-p)*q:(a*b*c)-(o*p*q)
11.用“==”时误用“=”
12.用“==”比较两个浮点数
描述;两个数值表面相等或者非常接近的浮点时用“==”比较,结果可能不同
解决;不用float用double在精度运算中两个浮点数的差的绝对值只要小于一个
精度范围,就可以相等
13.使用幻数
描述:直接使用的常数
解决;把幻数定义为宏或枚举,建议使用枚举。编译提示会更清晰,准确
#definearray-srze10
Enum(array-size=10)printf()和scanf()中格式控制字符串与参数类型不匹配
15.循环或判断语句以“;”结尾
描述:分别表示循环和判断语句的终结,后面的代码不算循环体或分支,而是循环和判断
平行的代码
解决:禁止在循环判断语句末尾出现分号,循环体为空的情况下,While(.........)
{
}
16.在循环体内改变循环结束条件
例如:voidfunc(void)
{
Int a,end:
-------
While(a { 在这里修改end的值 } } 17.case分支不用break结束 规定每个case分支必须用break结束,两个分支用同样的代码,就把代码定义为函数 基本概念 函数是c的基本单位,必须有且仅有一个main函数。一个c可以包含一个到多个函数,在函数中可以调用系统提供的库函数 函数首部:函数返回值类型,函数名,形参类型,形参名的说明 函数 函数体:大括号中的内容,包括变量声明(对象)语句和执行(动作)语句c程序书写规则;以分号结束,并且书写注释;“/**/,注释之间不能留有空格常见关键字:asmautobreakcasecdeclchar Constcontinuedefaultdodoubleelse Enumexternfarfloatforgoto Hugeifinterruptintlongnear Pascalregisterreturnshortsigned Sizeofstaticstructswitchtypedef Unionunsignedvoidvolatilewhile 标识符:系统自定义标识符,用户自定义标识符 运算符:算数运算符:+—*/%关系运算符: >>==<<=!= 逻辑运算符:!&&|| 赋值运算符:= 复合的赋值运算符:+=-=*=/=%=&=!=^=<=>= 增一减一的运算符:++-- 条件运算符:?: 强制类型转换运算符: 指针和地址运算符:*& 计算字节数运算符:sizeof 下标运算符:[] 结构体成员运算符:-> 位运算符:<<>>|^&~ 逗号运算符:,分隔符:相邻保留字,标识符之间由空格或回车换行做分隔符:相邻同类项之间用逗号分隔 声明相同类型的变量之间可用逗号分离,向屏幕输出的变量中各变量表达式之间用 逗号分离。 常见的转义字符:n 换行r回车(不换行) 字符串结束t 水平制表 v 垂直制表b退格f走纸换页a响铃报警 ” 双引号’单引号 一个反斜线?问号 常见错误 数组;数组的下标都是从0开始的,访问时发生下标多1或者少1都会越界访问内存错误 用变量来定义数组长度会导致语法错误,应该用整型常量或整型常量表达式定义 用a[x,y]而不是a[x][y]的形式来访问二维数组中的元素,将导致语法错误 (数组的第1个元素的下标是0,数组元素1是指数组元素的下标为1,是数组的第二个元素) 忘记对需要进行初始化的元素初始化,导致运行结果错误 对数组初始化的过程中,提供的初值个数多于数组所能容纳的元素个数定义字符数组长度时,必须要多留一个字节的存储单元,存放结束标志 打印一个不包括字符串结束标志的 ,导致运行结果错误 直接使用赋值运算符对字符串赋值是错误的,必须用strcpy()赋值 直接使用关系运算符比较字符串大小是错误的,必须使用strcpy()比较 字符串必须使用双引号括起来,单引号括起来是错误的。 一对双引号将一个字符常量括起来,产生一个指向包含两个字符的字符串指针(把字符当做实参去调用形参是字符串的函数;把字符串当做实参去调用形参是字符的函数,都会导致语法的错误!) 误以为在函数中定义的静态局部数组元素中的元素,在每次函数调用时都初始化0(函数原型,函数定义的头部和函数调用语句三者,在形参和实参的数量,类型和顺序,以及返回值的类型上没有严格保持一致,将导致语法错误。) 指针:误以为用来声明指针变量的星号(*)会对同一个声明语句中的所有指针变量都起作用,而省略了其他指针变量名前的星号。实质是每一个每一个变量名前的星号都不能省略。 没有对指针变量进行初始化,或没有将指针变量指向内存中某一个确定存储单元的情况下,就利用这个指针变量去访问它所指向的存储单元,将导致严重的运行错误。没有意识到某些函数形参是属于“传地址掉调用”而数值不是指针当做实参赋值给这形参。 对没有指向数组中的某个元素的指针变量进行算数运算,是无意义的。 对并非指向同一数组中元素的两个指针进行相减或比较运算。是无意义的。每个数组都有上,下边界,指针超出了边界就会造成越界访问内存错误。 除非两个指针类型都是void,否则将一种类型的指针赋值给其他类型的指针,造成语法错误。 试图用一个void的指针变量去访问内存,是一个语法错误。 试图以指针运算的方式来改写一个数组名所代表的地址,是一个语法错误 内存分配不成功的话会导致非法内存访问错误,只要运行前检查指针是否为空指针,可以避免错误发生。 如果内存分配成功,但是没有初始化,将会导致非法内存访问错误。 向系统申请了一块内存,结束后忘了释放内存,造成内存泄露。 释放了内存,但却仍然使用,会产生“野指针” 结构体,共用体:定义一个结构体时,忘记最后加上一个分号,导致语法错误 将一种类型的结构体赋值给另一种类型的结构体,导致语法错误 对两个结构体或者共用体进行比较,导致语法错误 在结构体指向运算符的两个组成符号“-” 和“>”之间插了空格,或者写成“→”导致语法错误 只使用成员变量名访问结构体的一个成员,导致语法错误 直接使用结构体的每个成员类型所占内存字节数的“和”作为一个结构体实际所占的字节数。是错误的。 没有标明结构体数组下标 就访问其中一个结构体数组元素,导致语法错误。 函数 递归函数是需要返回值的,在递归函数中忘记返回数值,是错误的忘记了编写递归终止条件的分支语句,写错了递归步骤,都会导致递归函数不能收敛到递归的终止条件,引起无穷递归 定义函数指针时,忘记将函数指针变量名及前面的星号用圆括号括起来,使得本应声明函数指针变量的变量声明变成了一个函数声明语句。 将函数指针作为函数参数时,不在函数指针变量名后的一对圆括号中列出各函数参数的类型,导致编译错误。 实施细则 1.函数 1.函数指针:通式:数据类型(*指针名)()int(*p)() 错误:忘记前一个()意义是声明一个函数,函数名为P,返回值是一个指向整型变量的指针 忘记了后一个(),意义是定义了一个指向整型变量指针。使用:1.定义过程 2.函数指针赋值过程3.调用过程 2.递归:一个对象部分地由它和自己组成或它自己定义,称它是递归的。 3.返回指针值的函数:通式:数据类型*函数名(参数名){} 区别;不带*的函数值,函数值只能是一个数据,不能是一组带*的函数值,不仅是一个数据,还能是一组数据。 2.结构体,共用体 位段:指定了存储位数的结构体或共用体的成员叫位段 优点:用最少的位数存储数据注意:必须声明为int或unsigned型使用:用struct作为关键字,定义了unsigned 的三个位段 “:”代表位段宽度的整数常量,访问位段成员的方法与访问结构体成员的方法基本一致,用“圆点运算符”或“箭头运算符” 共用体:将不同的数据类型组合在一起,共占有同一段内存的用户自定义数据类型注意:必须有足够大的内存空间将占据最大内存空间的成员存储在内,内存空间的大小由占据内存空间成员所占的空间数决定。 动态数据结构:在结构体类型中,如果包含了本结构体类型的成员,由于本结构所占的内存字节数无法确定,系统无法正常分配内存。 声明结构体类型是不能包含自我,但可以包含指向本结构体类型的指针域。操作: Structtemp { Intdata; Structtemp*temp; }; 利用函数malloc()申请一个结构体的内存 Structtemp { Intdata; Charname[10]; }; Structtemp *p; P=(struct temp*)malloc(10*sizeof(structtemp));利用函数calloc()申请一个结构体内存 Structtemp *p P=(struttemp*)calloc(10*sizeof(struct 利用函数free()释放申请的内存空间,链表的定义 temp)); 一、语言文字运用(选择题每题3分,共24分) 1.下列词语中加点的字,每对的读音完全相同的一组是 A.狙击/沮丧舷窗/琴弦呼吁/驾驭...... B.乌龟/龟裂遒劲/灰烬悄然/铁锹...... C.维系/系数熊罴/裨将炮制/泡桐...... D.俳优/徘徊涅槃/啮噬书箧/胆怯 ...... 2.下列句子中,没有错别字的一组是 A.高山巍巍,流水潺潺。能在莫扎特和贝多芬的音乐中徜徉于美妙的高山流水,真是人类的福份。 B.站在这栋有着巨大圆顶的庞大楼房面前,我感到张皇失措。这样的建筑,是岩石屈从于人类想像力而开出的绚丽的花朵,人类的智慧和灵巧使花岗岩开出了永不凋谢的花。 C.当前,要以预防交通、火灾、拥挤踩塌等事故为重点,加强对学校门口交通标识标线、校车等的监督检查。 D.巴菲特、罗杰斯都曾说,但凡“贩夫走卒、引车卖浆者流”都在谈论股票的时候,就应该从市场激流勇退了。 3.下列句子中,加点的词语使用正确的一句是 A.每年一度的杭州西湖博览会烟花晚会让整个西湖的夜空流光溢彩,如果苏东坡也能看上一眼,说不定又.... 能为我们留下许多美妙的诗句。 B.最近他们两人总有些不对劲,就说庆祝“元旦”吧,一个说组织一场球赛,另一个偏要反弹琵琶,非要....组织一次文艺演出不可。 C.地理条件严重制约了我们村致富奔小康的步伐,于是经过全体村民的讨论,大家一致认为,有必要另找一个地势平坦的地方安土重迁、重建家园。.... D.大家都非常同情他的境遇,也很想帮他,可是落花有意、流水无情,人们渐渐明白,帮助别人也不是那......... 么一件容易的事。 4.下列各句中,没有语病的一项是 A.公司专业的技术人才、雄厚的技术力量、科学的管理方法,积极创新,开拓市场,竭诚为各级教育机构和学校提供最先进的设备和最完善的服务。 B.形成高考移民现象的主要原因是不同地方参加高考的人数、录取分数线和录取人数不同造成的。 C.这种将企业各方的权利和义务用合同、章程等方式加以明确的措施,对于职工行使民主管理权利无疑是一种基本保障。 D.目前,少数政府网站变成花架子的现象在全国较为普遍,主要原因是不少地方政府只为赶时髦,仓促间“跟风上网”,而网络管理人才队伍建设却没有及时跟上。 参考答案: 1.D(A.jū/jǔ,xián/xián,yù/yùB guī/jūn,jìng/jìn,qiǎo/qiāo C.xì/xì,pí/pípáo/pāoD.pái/pái , niâ/niâ, qiâ/qiâ 2.B(福份-福分踩塌-踩踏激流勇退-急流勇退) 3.A(B.“反弹琵琶”,来自敦煌壁画中的一种舞姿造型。喻指突破常规的思维和行为;从反面看问题,与常规事物对着干。安土重迁:在家乡住惯了,很不愿意搬迁。落花有意、流水无情:比喻这一方面有情,那一方面无意,多指男女恋爱。) 4.C(A.公司后加“凭借”B .“主要原因”与“造成的”语意重复。D.“少数”与“普遍”矛盾) 1.下列词语中加点字的读音,不完全相同的一组是 A.匮乏馈赠喟叹发聋振聩 .... B.惬意挈带堆砌锲而不舍 .... C.枢纽倏忽殊荣毁家纾难 .... D.枭雄骁勇销毁祸起萧墙 .... 2.下列各句中,没有错别字的一项是 A.当欣赏杜甫那些千古留传的诗作时,我们一定会感悟到在忧患重重的现实处境中诗 人的感情心志与民生痛苦如胶似漆般的结合在一起。 B.只要我们审时度势、科学决策、周密布署,完全有条件化挑战为机遇,把国际金融危机的不利影响降到最低程度。 C.鲁迅总是独具匠心地抓住一切机会,运用他特有的幽默才能,出奇不意地使词语闪烁出动人的艺术的光芒。 D.辽阔苍茫的戈壁荒漠,缥缈洁白的雪山冰峰,森严幽深的皇城内院,人声鼎沸的京城市井,灵秀旖旎的青山碧水,这一切使整部作品呈现出一种浓郁的诗意美。 3.下列各句中,加点词语不能被括号中的词语替换的一项是 A.这篇小说反映了特定历史时期南方人民艰苦卓绝的斗争生活,特别是把一批走出校门、献身革命的年轻人刻画得力透纸背。(入木三分).... B.那些问题奶粉给食用的婴幼儿所造成的危害骇人听闻,对于生产奶粉的企业和经营.... 奶粉的市场非整顿不可。(耸人听闻) C.欧洲批判现实主义文学的奠基人巴尔扎克笔下的老葛朗台,是一个腰缠万贯却锱铢..必较的典型的吝啬鬼形象。(斤斤计较).. D.京剧和地方戏在艺术形式上并不像有些人说的是判若鸿沟的,其实它们之间相互借.... 鉴、吸收的地方很多。(泾渭分明) 4.下列各句中,没有语病的一项是 A.杭州湾跨海大桥是一座由我国自行建造、自行设计、自行管理、自行投资的特大型交通基础设施,是我国跨海大桥建设史上的一个重要里程碑。 B.全面考核、竞争上岗、择优录取的人事制度改革,对那些思想保守、不思进取、混日子过的干部职工,的确会感到很不适应。 c.如果明年国际经济政治环境不继续恶化,国内不出现大范围的严重自然灾害和其他问题,我国的GDP仍有望保持9%左右的快速增长。 D.新城高新科技园区以智力密集为依托,以开拓新产业和高科技成果为目标,不断加强科研、教育与生产的结合,促进了经济的高速发展。 1.B2.D3.B4.C 1.下列词语中加点字的读音完全相同的一项是() A、给付给养给以支援家给户足B、着想着墨不着边际整理着装 ........ C、背谬背影背债累累背信弃义D、分外处分恰如其分分文不取 ........ 2.下列各句中,没有错别字的一项是() A、西溪自古就是隐逸之地,被文人视为人间静土、世外桃源。秋雪庵、泊庵、梅竹山庄、西溪草堂在历史上都曾是众多文人雅士开创的别业,他们在西溪留下了大批诗文辞章。 B、歌声不仅仅代表了音律的变迁,更多的是对那些岁月、那些闪耀着理想光辉的年代的留恋与思索。于是,浮躁的渴望回归,遥远的成为永远,30年来的歌曲形形色色,那一份朴实和简单的快乐却还在心里。 C、春晚起用了北京奥运会开幕式的舞美总设计和灯光总设计,舞台引进先进的视频灯光设备,奥运会开幕式中的卷轴,将变身为春晚舞台的视觉景观。此外,直播中还将起用无人跟拍和蜘蛛眼摄像机,全面捕捉现场的精彩。 D、生活里最美好的东西,从来不是有形的东西,财富的意义也并不只于金钱。在这个高速 发展的年代,每个人都需要停下心来想想了。显然,对美好生活而言,速度不是第一位的。一切正如甘地所说,“如果方向错了,速度快又有什么用呢?” 3.下列各句中加点的词语能用括号内的词语来替代的一项是() A、梁文道在《常识》序言中说:“本书所集,卑之无甚高论,多为常识而已。若觉可怪,...... 是因为此乃一个常识稀缺的时代。”(微言大义) B、早就听说他要认真学习,可几年过去了,也不见他真刻苦起来,还是老样子,雷声大,...雨点小。(小题大做)... C、他的作品很一般,怕被人看不起,动不动就搬出某某名作家吓唬人,四处乱吹,无非想拉大旗作虎皮抬高自己罢了,并不能说明他的作品好。(狐假虎威)...... D、岁月悠悠,不觉二十多年倏得就过去,日本的经济泡沫也破了,往日的风光不再,当然烂船也有三斤铁,日本仍然是不容忽视的,日本人的奋斗精神和创意能望其项背者几何!(点....... 金成铁) 4.下列各句中,没有语病的一句是 A、无论是在离家多远的地方,只要随着年的来临,每个人的心里就都不会再平静,能回家的会想尽一切办法回家,不能回家的,就开始想家,想尽一切办法地回家。 B、近年,随着大杭州的构筑和逐渐成形,住宅郊区化势头迅猛,而郊区居民入住的社会商业也随之迅猛发展起来。 C、防治人禽流感的最好方法,是保持充足的睡眠和休息,进行适量的运动,增强自己的抵抗力,并加强室内空气流通,不要去空气欠佳的地方。 D、前一天在正式的总统就职仪式上,面对赶到周边地区观礼的上百万名观众和通过电视、网络见证历史的世界各地的无数群众,罗伯茨领誓出现错误,奥巴马也被带得发生口误。 1、B(A给以支援gěi,其余jǐ B都念zhuó C背债累累bēi,其余bâi D分文不取fēn,其余fân) 2、B(A净土C启用D不止于) 3、C(C拉大旗作虎皮:比喻打着某种旗号以张声势,来吓唬人、蒙骗人。A卑之无甚高论:表示只就浅易的说,没有什么过高难行的意见。微言大义:精微的语言和深奥的道理。B雷声大,雨点小:比喻声势很大,实际行动却很少。小题大做:比喻把小事情当作大事情来办。D烂船也有三斤铁:比喻不好的东西也有可利用的、不可小看的成分。点金成铁:比喻把别人的好文章改坏。) 4A(B成分残缺,在“郊区居民入住”前加上“为”C不合逻辑,把“防治”改为“预防”D语序不当,把“世界各地的”提到“通过”前,并删去“的”。) 1.下列词语中加点的字,每对读音都相同的一组是 A.气氛/安分守己主宰/载歌载舞殷红/恹恹欲睡 ...... B.愠怒/风流蕴藉腼腆/暴殄天物款识/栉风沐雨 ...... C.倜傥/痛哭流涕警醒/杀一儆百筵席/偃旗息鼓 ...... D.缱绻/卷土重来股肱/觥筹交错散佚/卷帙浩繁 ...... 2.下列词语中,没有错别字的一项是 A.插科打诨风声鹤唳不容置喙额首称庆 B.平心而论坚苦卓绝意兴阑珊斐然成章 C.两全其美同仇敌忾砰然心动毛骨悚然 D.切中肯綮方枘圆凿皓首穷经高潮迭起 3.下列句子中加点成语使用正确的一项是 A.在建立导弹防御系统问题上,美德两国首鼠两端,很快达成了一致意见。.... B.由美国次贷危机引发的金融风暴,以风卷残云之势在两周内迅速蔓延到世界各地,其.... 影响之大让人始料不及。 C.孙犁在“文革”后至1995年写成的《耕堂劫后十种》,在思想性与艺术性上有较大的突破,是散文界的空谷足音。.... D.中国古典山水诗平淡而隽永,读者透过优雅的意象想像其中的画面和情景,就能领悟意境的含英咀华和美妙深远。.... 4.下列各句中,没有语病且表意明确的一句是 A.每次学校开运动会前,老师总是嘱咐运动员要穿好鞋,可有的运动员就是不当回事。 B.国务院台湾事务办公室举行新闻发布会,就两岸民间行业组织协商“三通”、外国公司参与两岸航运和所谓“台湾安全”等相关问题作出了说明。 C.面对全球金融危机,各国本应携起手来,共同应对,可法国总统却在中欧峰会的关键时刻会见**,干涉中国内政,这对于金融危机是毫无益处的。 D.中央经济工作会议是制定第二年宏观经济政策、判断当前经济形势最权威的风向标,也是每级别最高的经济工作会议。 1.B(A.fēn/fânzǎi/zàiyānB.yùn tiǎnzhì C.tì jǐng yán/yǎnD.quǎn/juǎngōngyì/zhì) 2.D(额手称庆艰苦卓绝怦然心动) 3.C(A.首鼠两端:迟疑不决或动摇不定。B.风卷残云:比喻一下子消灭干净。C.空谷足音:空旷的山谷里听到人的脚步声。比喻难得的音信、言论或事物。D.含英咀华:细细琢磨、体味诗文精华,是动词性成语。) 4.B(A."穿好鞋”表意不明C.成分残缺,“这对于金融危机是毫无益处的”应为“这对于金融危机的解决是毫无益处的”D.语序不当,“定调第二年宏观经济政策”和“判断当前经济形势”颠倒) 1.下列词语中加点字的读音,完全相同的一组是() A.戍边恕罪庶民追本溯源.... B.刨冰曝晒龅牙孢子植物.... C.诤言铮亮症状饮鸩止渴.... D.垂询锤炼边陲椎心泣血.... 2.下列各句中,没有错别字的一项是() A.他历经坎坷,饱经沧桑,70多年的酸甜苦辣,大致反映在他等身的著作中,可惜,直到晚年,他的一系列煌煌巨著才相继问世。 B.一支弯曲的木橹,在水面上悠然搅动,倒映在水中的石桥、楼屋,都被这不慌不忙的木橹搅碎,碎成斑斓的光点,犹如在风中漾动的一匹长长的彩绸,没有人能描绘它朦胧眩目的花纹„„ C.我瘦削的手指刚刚抵住磨砂玻璃光滑的表面,就听到楼下传来熟稔的咳嗽和喷嚏声,父亲能够把他的咳嗽和喷嚏弄得震耳欲聋,这曾经是我们一家人谈笑的话题。 D.《生命中的那个夏天》没有长篇累牍、谍谍不休的说教,却让少年幡然醒悟,意识到 只有努力创造才能改变自己的命运。生命中的那个夏天,少年铭记于心。 3.下列各句中,加点词语能被括号中的词语替换且不改变句意的一项是() A.一些技术落伍、管理理念落后的中小企业,要以目前的实力,去和跨国大公司争夺有限的国内市场,简直是蚍蜉撼树。(螳臂当车).... B.张大妈对着那个刚来的人撇了撇嘴:“一看这个年轻人穿得那么稀奇古怪,就知道是个不三不四的人。”(不伦不类).... C.借给他钱,只是扬汤止沸罢了,钱花光了,他一样会面临生活危机,要想帮助他真正.... 摆脱困境,只有让他彻底改变自己的观念才行。(釜底抽薪) D.王道长为人沉默寡言,神情慈祥温和,只求能栖息道观,虽箪食瓢饮,却能安之若素。.... (箪食壶浆) 4.下列各句中,没有语病且表意明确的一项是() A.昨天下午,沈红要去机场接客人,走之前,她蒸好了米饭,炒了两个孩子爱吃的菜,留了一张纸条,就匆匆去了机场。 B.网易、新浪等14家网站联合向互联网界发出文明办网倡议书,号召营造健康文明的网络文化环境,清除不健康消息,已成为社会的共同呼唤、家长的强烈要求和保障未成年人的迫切需要。 C.以生漆为底层的彩绘陶质文物保护是一个世界性难题,没有任何的经验和技术可以借鉴,艳丽的秦俑彩绘如何保留成为当务之急。 D.近日,恐怖分子在印度最大城市孟买的19处重要地点,进行了“协调一致”的一系列袭击,造成当地局势和社会秩序的骤然紧张。 1.D 2.C(A.皇皇巨著B.炫目D.喋喋不休) 3.A(蚍蜉撼树:比喻力量很小而想动摇强大的事物,不自量力。螳臂当车:比喻不估计自己的力量,去做办不到的事情,必然招致失败。不三不四:指不正派或不像样子。不伦不类:形容不成样子或不规范。扬汤止沸:比喻办法不彻底,不能从根本上解决问题。釜底抽薪:比喻从根本上解决。箪食瓢饮:形容读书人安于贫穷的清高生活。箪食壶浆:形容军队受欢迎的情况。) 4.C(A“炒了两个孩子爱吃的菜”歧义。B句子杂糅,“已成为社会的„„„”缺主语D搭配不当,应为“当地局势的骤然紧张和社会秩序的极度混乱”) 1.下列词语中加点字的读音,完全相同的一组是() A.渲染寒暄萱草煊赫一时.... B.殚力忌惮邯郸箪食壶浆 .... C.燎原同僚撩拨青面獠牙 .... D.骠勇剽悍飞镖膘肥体壮 .... 2.下列各句中,没有错别字的一项是() A.中国古代诗歌中的名句,千百年来一直传颂不衰,脍炙人口,对以后历代的影响,远远超过了诗歌本身的范畴。 B.今年以来,房价疯涨得到了明显的遏止。国家发改委的数据显示,今年1-7月份,全国房屋销售价格同比涨幅连续7个月下降,环比涨幅在0.3%以下。 C. 回首来时的路,我们有磕绊,有惊喜,有阳光,有阴霾,这就是我们的青春呵,我们不悔的青春。 D.当那些刚刚绽放的花蕊骤然凋谢,当那三万多个毫无终结迹象的生命嘎然而止,我们怎能不为他们感到伤悲,怎能不为他们动容,怎能不为他们祈祷? 3.下列各句中,加点的词语使用不正确的一项是() A. 因为缺乏位置感,他们根本就不关心老百姓的疾苦,在他们看来,平民意识犹如一 块一文不名的破布。.... B.德国诗人歌德作《浮士德》延续六十年之久,曹雪芹写《红楼梦》“批阅十载,增删五次”,一切优秀的作品,都不是侥幸偶得之物,而是不辞艰辛惨淡经营的成果。.... C.我狙击部队经过三天三夜的浴血奋战,伤亡十分惨重,而敌人的攻势却更加猛烈,眼看阵地就要失陷,就在这间不容发的时刻,增援部队终于赶到了。.... D.现在社会上真有一部分人,缺少理性认识。头脑简单,听风就是雨,极易盲从,抓住..... 一点矛头就开始大做文章,也不去调查核实,闭门造车,严重脱离实际;更有甚的是捕风捉影,大造舆论,惟恐天下不乱。难道他们就不考虑后果吗? 4.下列各句中,没有语病的一项是() A.通过手机改号软件,想让对方看到谁的号码,都可以轻松实现,这让一些犯罪分子有机可乘。近日山东嘉祥县警方成功阻止了一起利用更换“来电显示”诈骗的行为。 B.2007年,山东省累计完成资源税收入28.9854亿元,同期同比增长10.95%,增收28.485亿元。 C.工作人员经过收集处理来自全国各地的几亿条投标信息,为赴台大熊猫选定的响亮的名字终于浮出水面。 D.富春江水污染能否得到整治,将影响富阳旅游业的发展。 1.C(A“渲”读xuàn,其他读xuān;B“惮”读dàn,其他读dān;C都读liáo;D“骠” 读piào,“剽”读piāo,“镖”和“膘”读biāo) 2.C(A“颂”应为“诵”;B“止”应为“制”;D“嘎”应为“戛” 3.A(一文不名——一个钱都没有。 惨淡经营——形容极端艰苦地从事诗文创作也形容苦心规划和开拓某项事业 间不容发——形容极为精确或精密,也比喻时间紧迫,情况紧急。 听风就是雨——刚听到一点风声就信以为真,指盲目符合,跟随,没有自己的思考) 4.D(A应在“诈骗”前加上“实施”;B去掉“同期”;C把“工作人员”放到“经过”之 后。) 第一章初识Java 1.程序是为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。 2.Java包括编程语言和相关的技术。 3.Java主要用于开发,桌面应用程序和Internet应用程序。4.开发一个Java应用程序的基本步骤:编写源程序,编译程序和运行程序。源程序以.java为扩展名,编译后生成的文件以.class为扩展名。使用javac命令可以编译.java文件,使用java命令可以运行编译后生成的.class文件。 5.编写Java程序要符合Java编码规范,为程序编写注释可大大增加程序的阅读性。 6.MyEcplise是一个功能强大的集成开发环境(IDE)。它的各种窗口便于Java程序的开发,调试和管理。 第二章变量、数据类型和运算符 1.变量是一个数据存储空间的表示,它是存储数据的基本单元。变量的命名规则: (1)必须以字母,“_”,“$”开头。(2)可以包括数字,但不能以数字开头(3)不能包括除“_”,“$”以外的特殊符号(4)不能使用Java语言关键字或者保留字(goto) 2.Java中数据类型分为基本数据类型和引用数据类型,基本数据类型有整型(int),双精度浮点型(double),字符型(char)和字符串(String)。3.变量要先声明并赋值,才能使用。4.Java提供各种类型的运算符,具体如下。 (1)赋值运算(=)(2)算术运算符(+,-,*,/,%)(3)关系运算符(>,>=,<,<=,==,!=)(4)条件运算符(条件?表达式1:表达式2)(5)逻辑运算符(&& , || ,!, & , |)&&(短路与)与&的区别:&&进行判断时,当第一个条件为假,则不需要判断第二个条件,结果为假。&进行判断时,即使第一个条件为假时,也需要判断完第二个条件才能给出结果为假。||(短路或)与|的区别:与上同理(5)位运算符(&, | , << , >> , >>>)5.数据类型转换是为了方便不同类型的数据之间进行运算 6.数据类型转换包括了自动类型转换和强制类型转换,自动类型转换需要满足类型兼容且目标类型大于源类型的条件 7.Java中使用boolean类型表示真假,boolean类型的两个值为true和false。 8.Java中的关系运算符可以用于来比较大小,高低,多少等,比较厚的结果是boolean类型。 9.Java提供Scanner类,可以实现从控制台获取键盘上输入的信息 第三章选择结构(一)Java中的if选择结构,包括以下形式 (1)基本的if选择结构:可以处理单一或组合条件的情况(2)if-else选择结构:可以处理简单的条件分支情况(3)多重if选择结构:可以处理连续区间的条件分支情况(4)嵌套if选择结构:可以处理复杂的条件分支情况 第四章选择结构(二)1.switch选择结构适用于进行等值判断 2.switch关键字后面小括号里表达式的值可以是int , short , byte , char , 枚举 , String(JDK1.7开始支持) 第五章循环结构(一)1.循环结构由循环结构和循环操作构成,只要满足循环条件,循环操作就会反复执行 2.使用循环结构解决问题问题的步骤:分析循环条件和循环操作,套用循环结构的语法写出代码,检查循环能否退出 3.while循环结构是先判断后执行,do-while是先执行,后判断。Do-while至少执行一次。 4.debug调试:设置断点,单步运行,观察变量 第六章循环结构(二)1.for循环结构的语法结构如下 for(表达式1:表达式2:表达式3){ } //循环体 表达式1:循环结构的初始部分,为循环变量赋初值 表达式2:循环结构的循环条件 表达式3:循环条件的迭代部分,通常用来修改循环变量的值 2.用break和continue语句控制流程 (1)break语句用于终止某个循环,程序跳转到循环体外的下一条语句。Break也可以在switch语句中使用 (2)continue语句用于跳出本次循环,进入下一次循环 (3)return可以结束当前方法的执行并退出,返回调用该方法的语句处 第七章数组 1.数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型 2.数组中的元素通过数组的下标进行访问,数组的下标从0开始 3数组可用一个循环为元素赋值,或用一个循环输出数组中的元素信息 4.通过数组名.length可获得数组长度 5.利用Arrays.提供的sort()方法可以方便的对数组中的元素进行排序 6.二维数组实际上就是一个一维数组,他的每个元素又是一个一维数组。 第八章循环结构进阶 1.数组的输入排序,选择排序,冒泡排序 2.在二重循环中可以使用break、continue语句控制程序的执行 选择排序: 思路:每次循环得到最小值的下标,然后交换数据。如果交换的位置等于原来的位置,则不交换。插入排序: 思路:将数据插入到已排序的数组中。 好老师重庆市二级C语言基础知识点总结以及题目订正 第一章 1,函数是从主函数(main())开始执行,回到主函数(main())结束; 2,一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束; 第二章 1,算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性 2,算法(程序)的几个结构:选择结构,顺序结构,循环结构 第三章 1,int类型是2个字节,float是4个字节,dooble是8个字节 2,数据类型分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型(空类型合法哦,不要忘记了这个特殊哦) 3,变量的地址是确定的,变量变的地方只是地址里面的值。4,用户标志符,由数字,字母,下划线构成,第一个不能是数字,但是32个关键字除外。 5,注意int的最大表示范围是-32768――+32767,当超过这个范围的时候,即以%d输出+32768时结果为-32768 6,长整形(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整形的3,如果是a=3L,那么就是长整形的3;当分别以%o,%ld,%x(8进制,长整形,16进制)输出的时候,结果没有前面的0,0X,和后面的L 例:int a=075,b=ox14;long int c=5L; printf(‚%o,%x,%ld‛,a b c);结果为(75,14,5) 7,当出现’ ’的什么时候为结束,什么时候为八进制的转义字符: 当’ ’后面有1-7之间的数字的时候为转义字符;其他的时候为字符串结束标志,注意转义字符有哪些(参考书p8) 这样一个例题 若 strlen(‛abc 89‛)=3 strlen(‚abc 12‛)=4 8,强制转换不会改变一个变量的值,只是改变其作用的那个表达式的值。 9,++,――,当++,——,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当++,――,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握++,――结合性是右结合,若i+++j等价于(i++)+j; 10,复合运算符要注意当等号后面接的是表达式的时候要把表达式看成一个整体即x *=y+8等价于x=x*(y+8),y+8是一个整体 第四章 1,格式输入和输出的时候,注意格式。要严格按照题目的格式进行操作。(在做题的时候尤其是读程序写结果的时候要细心哈!)2,%d,%md,%m..nd, %e,以及相应的几种格式是什么意思,参考书p13 第五章 1,关系运算符,>,<,<=,>=,= =,!=,==和!=优先级最低,主意=与==的区别:=是赋值的意思,表达式的值是对变量赋的值,==是关系运算符,关系运算表达式的值为0或者1.2,逻辑运算符,&&,||,!在这几个中优先级!> && > ||,优先级是体现在结合性上而不是运算的先后性上。例如 a=b=c=1;d=++a||++b&&++c在这个里面&&最高那就是加粗部分先看成一个整体,运算顺序还是从++a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1 1有else的情况是:if(表达式)语句; 3,if语句基本格式:○ 2没有else的情况是:if(表达式)else语句;(注意有分号哦),○语句;当有多个if和else的时候if是与其后最近的没有配对的else结合;注意,当函数作为if里面的表达式的时候即if(printf(‚*‛))的时候,则是以函数的返回值判断if的真假,printf输出以1个字符则返回为1,所以这个if是真的; 4条件表达式,? : ;右结合性,是从右往左结合,即是以最后一个?开始结合,但是计算顺序仍然是从左到右(这个牵涉到++,--问题)(参考书p16) 5,switch语句,switch语句只有碰到break或者做到最后一个语句才结束,case和default语句都只是入口。(参考书p17页例子)第六章 1,while语句基本格式是while(表达式)语句;注意在while()后面没有;号,当函数或者赋值表达式放在while的()中时与if的判断方法一样,时候函数的返回值或表达式值的逻辑值; 2,do{ }while();语句和while语句的区别在于前者先做后判断后者是先判断后做,这个知识点多参考书上(p18例题)和卷子上的题 3,for语句,例如:for(i=1;i<100;i++)s=s+i;注意for括号的后面没有;号,当有两个for语句即嵌套的for循环的时候 例如: for(i=1;i<4;i++)for(j=0;j<5;j++) s=s+i;这个时候是先做i=0;然后判断i;然后做加粗的部分,即是把加粗部分看成一个整体做完之后才会回到i++;所以s=s+i;这个语句做了20次,(参考书p19例题) 4,总结if,for,whlie,后面如果没有{}的时候,即是只有一个简单的语句的时候,if,for,whlie的作用效力范围是到与之最近的分号结束;当有{ }的时候即是把{ }看成一个整体,控制范围是整个{ }里面的所有语句。5,break是结束整个循环;contine结束本层循环;具体参考书(p19页例子这个很重要哦,一定要掌握)第七章和第十章(重点哦!!!) 1,维数的判断,当*,[]前面有int,char,float等常见的类型名的时候表示是在定义,一个 * 或者[]表示升一维,当表达式前面没有int,char,float的时候则是在引用(或称为使用)一个*或者[ ]表示降一维; 2,注意这样一些东西:int a[3][3],**p=a则,a[0]等价于*p表示的是这个2维数组的第一行或者说是这个2维数组的首元素的地址;a[i]等价与*(p+i)都表示是数组的第i行或者是第i行的首元素的地址;所以要引用这个a数组的元素应该用a[i][j]或者**p 3,对一个数组的输入输出总结 当数组是int(整形的时候) 一个有n个元素的1维数组:输入 for(i=0;i 输出 for(i=0;i printf(‚%d‛,a[i]);注意int类型要以%d的格式 一个有n行m列的2维数组:输入:for(i=0;i for(j=0;j 输入:for(i=0;i 一个字符串数组即 char a[10];对这个的输入有两种方式 (1)for(i=0;i (2)gets(a); scanf(‚%s‛,a)(注意这两种方式的括号里面的只能是一个数组名) 输出也对应有两种方式:(1),for(i=0;i 4,对一个有n个元素的数组的遍历(既是说从第一个成员访问到最后一个成员)有以下两种方式: 1,for(i=0;i第二篇:语言基础
第三篇:Java编程语言基础总结
第四篇:C语言基础知识点总结以及题目订正