C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。一起来看看大学c语言知识点总结吧!
大学c语言知识点总结
1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章
1)合法的用户标识符考查:
合法的要求是由字母,数字,下划线组成。有其它元素就错了。
并且第一个必须为字母或则是下划线。第一个为数字就错了。
关键字不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:
2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。.
3)字符数据的合法形式::
'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:
考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
5)转义字符的考查:
在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。
在程序中 int a = 06d, 是一个八进制的形式。
在转义字符中,’x6d’ 才是合法的,0不能写,并且x是小写。
‘141’ 是合法的, 0是不能写的。
‘108’是非法的,因为不可以出现8。
6)算术运算符号的优先级别:
同级别的有的是从左到右,有的是从右到左。
7)强制类型转换:
一定是 (int)a 不是 int(a),注意类型上一定有括号的。
注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。
8)表达式的考查:
是表达式就一定有数值。
赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
自加、自减表达式:假设a=5,++a(是为6), a++(为5);
运行的机理:++a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这
个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,
再放到变量a中。 进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。
考试口诀:++在前先加后用,++在后先用后加。
逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
9)位运算的考查:
会有一到二题考试题目。
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
例1: char a = 6, b;
b = a<<2; 这种题目的计算是先要把a的.十进制6化成二进制,再做位运算。
例2: 一定要记住,
例3: 在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。
10)018的数值是非法的,八进制是没有8的,逢8进1。
11)%符号两边要求是整数。不是整数就错了。
12) 三种取整丢小数的情况:
1、int a =1.6;
2、(int)a
第二章
1)printf函数的格式考查:
%d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。
%ld对应 long int;%lf 对应double。
2)scanf函数的格式考察:
注意该函数的第二个部分是&a 这样的地址,不是a;
Scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。
3)putchar ,getchar 函数的考查:
char a = get) 是没有参数的,从键盘得到你输入的一个字符给变量a。
put‘y’)把字符y输出到屏幕中。
4)如何实现两个变量x ,y中数值的互换(要求背下来)
不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。
5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)
这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。
第三章
特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。
1)关系表达式:
表达式的数值只能为1(表示为真),或0(表示假)
当关系的表达是为真的时候得到1。如 9>8这个是真的,所以表达式的数值就是1;
2)逻辑表达式:
只能为1(表示为真),或0(表示假)
a) 共有&& || ! 三种逻辑运算符号。
b) !>&&>|| 优先的级别。
c) 注意短路现象。考试比较喜欢考到。
d) 要表示 x 是比0大,比10小的方法。0
3)if 语句
else 是与最接近的if且没有else的相组合的。
4)条件表达式:
表达式1 ?表达式2 :表达式3
注意是当非0时候是表达式2的数值,当为0是就是表达式2的数值。
考试口诀:真前假后。
5)switch语句:
a)一定要注意 有break 和没有break的差别,书上(34页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。
b)switch只可以和break一起用,不可以和continue用。
第四章
1)三种循环结构:
a)for() ; while(); do- while()三种。
b)for循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d) do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错)
2) break 和 continue的差别
记忆方法:
break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。
continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。
3)嵌套循环
就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。
4) while((c=get))!=’’) 和 while(c=get) !=’’)的差别
先看a = 3 != 2 和 (a=3)!=2 的区别:
(!=号的级别高于=号 所以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。
1、最痛苦的是消失了的东西,它就永远的不见了。
2、最怕自己从今以后什么都不相信,当初多勇敢爱了你,从头到尾都没有哭泣。
3、自己爱自己,比什么都来得实际。
4、原来、我的离开你无所谓。
5、有些东西会被人遗忘,而有些东西却是永恒。
6、一种思念,一种依赖,一份爱。
7、心也伤了,爱也走了,阳光依然灿烂,却变成我们记忆中的深蓝。
8、想念那平直的马路,两个身影一前一后。
9、希望他是真的比我还要爱你,我才会逼自己离开。
10、我总是说所有的人都离开了我,实际上我才是那个先转身离开的人。
11、我有能力迎你而来也有勇气送你离开。
12、我难过的'没有一丝情绪、冷漠的看着身边的一切、是如此的可笑。
13、我等了三年的那个他准备好了吗我要离开不爱我的你了。
14、我的离开,你的不挽留,就这样散了。
15、通讯录翻了一遍又一遍,却没有找到可以按拨出键的号码。
16、虽然我们是同一个城市,有万种理由想要离开,却没一条想留下的理由。
17、时光就像个大筛子,经得起过滤,最后留下来的,才是真正的朋友。
18、生于这世上,没有一样感情不是千疮百孔的。
19、生命里有很多定数,在未曾预料的时候就已摆好了局。
20、如果你做了伤害我的事,而我从来都不提,就那就说明我在考虑离开你。
21、如果可以的话,真想扔下这沉重的包袱,然后离开这个世界,心真的麻木了。
22、让燕南飞,转身欲别衣溅泪。
23、你想要离开,还为我编了个善意的谎言,你说不想我难过。
24、你还没走,现实就给了我一巴掌,那时我已经知道你要走了。
25、你不知道我为什么离开你,我坚持不能说放任你哭泣。
26、沵即将离去,而你却把我一个人丢在这里。
27、每个人都在用不同的方式离开。
28、离开只是因为不够爱罢了。
29、离开你,离开这个有你我的城市。
30、假如未遇见,是否不想念。
31、回忆就是旧时光,藏而不露的伤口。
32、回首过去,昨日种种譬如死灰。
33、对你,从来不需要想起,因为从未忘记!
34、不求你倾国倾城,只谢谢你在我最美的年华里有你的陪伴。
35、别他妈矫情,没有谁离开谁就活不下去。
36、毕业那天我要用即将离开的名义去拥抱我喜欢的人。
计算机二级考试《java》试题及答案
一、判断题
1. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√ )
2. 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。( × )
3. 所谓抽象类就是包含有抽象方法的类。( ×)
4. Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。(√)
5. 如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。( ×)
6. 当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。(√ )
7. 用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。( × )
8. 一个容器中可以混合使用多种布局策略。(×)
9. Java中,并非每个事件类都只对应一个事件。(√ )
10. Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)
11. Java Applet是由独立的解释器程序来运行的。(×)
12. Java的字符类型采用的是ASCII编码。( × )
13. Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。 (√)
14. System类不能实例化,即不能创建System类的对象。(×)
15. 用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。 (√ )
二、填空题
1java源程序编译命令是 (javac)
2 java 应用程序中有一个main()方法,它前面有三个修饰符是 ( public , static , void )
3 java语言数据类型可分为两大类,一类称为 ( 基本数据类型 ) ,另一类称为 ( 引用数据类型 )
4 在转向语句中, ( continue ) 语句使得程序结束本次循环,回到循环的条件测试部分继续执行。
5设x为float型变量, y为 double型变量, a为 int型变量,已知 x=2.5f, a=7 ,y=4.22 则表达式x+a%3*(int)x%(int)y的值为 ( 4.5 )
6设x为float型变量, y为 double型变量, a为 int型变量,b 为long 型变量,c为char 型,则表达式x+y*a/x+b/y+c 的值为( double ) 类型 7设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 ( 120 )
for ( int i = 0 i < MyIntArray.length i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] System.out.println( s )
for ( int i = 0 i < MyIntArray.length i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] System.out.println( s )
三、选择题
1.在浏览器中执行applet 程序,以下选项中的哪个方法将被最后执行( C )。
A、init( )
B、start( )
C、destroy( )
D、stop( )
2. Java application中的主类需包含main方法,main方法的返回类型是什么?( D )
A、int
B、float
C、double
D、void
3.设有下面两个类的定义:
class Person {
class Student extends Person {
long id; // 身份证号
int score; // 入学总分 String name; // 姓名
int getScore( ){
return score; }
则类Person和类Student的关系是( B )。
A、包含关系
B、继承关系
C、关联关系
D、上述类定义有语法错误
4.在编写Java Applet程序时,需要在程序的开头写上( B )语句。
A、import java.awt.*
B、import java.applet.*
C、import java.io.*
D、import java.awt.event.*
5.容器Panel和Applet缺省使用的布局编辑策略是( A )
A、FlowLayout
B、BorderLayout
C、GridLayout
D、CardLayout
6.有以下程序片段,下列哪个选项不能插入到行1。( A ) 1. 2.public class A{ 3.//do sth 4. }
A、public class MainClass{ }
B、package mine;
C、class ANotherClass{ }
D、import java.util.*;
7.在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。
A、private
B、protected
C、private protected
D、public
8.以下哪个不是Java的关键字?( A )
A、FALSE
B、const
C、this
D、void
9.有程序如下,关于程序的描述哪个是正确的?( C )
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{ System.out.println(arr[0]); } }
A、编译将产生错误
B、编译时正确,但运行时将产生错误
C、正确,输出0
D、正确,输出 null
10.以下关于构造函数的描述错误的是( A )。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
11.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C)
class A { int i;
static String s; void method1( ) { }
static void method2( ) { } }
A、System.out.println(a.i);
B、a.method1( );
C、A.method1( );
D、A.method2( )
12.有程序片段如下,以下哪个表示式的结果为true?( B )
Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);
A、s==t
B、s.equals(t)
C、u.equals(s)
D、t.equals(u)
13.paint( )方法使用哪种类型的参数? ( A )
A、Graphics
B、Graphics2D
C、String
D、Color
14.下面哪个方法与applet的显示无关?( A )
A、draw( )
B、 update( )
C、repaint( )
D、paint( )
15.下面哪个函数是public void aMethod( ){...}的重载函数?( D )
A、void aMethod( ){...}
B、public int aMethod( ){...}
C、public void aMethod ( ){...}
D、public int aMethod ( int m){...}
16 下列不可作为java语言标识符的是( D )
A a1
B $1
C _1
D 11
17 有一段java 应用程序 ,它的主类名是a1,那么保存它的源文件名可以是(A)
A a1.java
B a1.class
C a1
D都对
18 下面说法正确的.是(C)
A java Applet 程序必须在浏览器中执行
B java 应用程序必须在浏览器里执行
C java Applet 程序不一定在浏览器中执行
D java 应用程序可以在浏览器中执行
19 在浏览器中执行applet 程序的四个方法的最先执行的是(A)
A init( )
B start( )
C destroy( )
D stop( )
20 整型数据类型中,需要内存空间最少的是(D)
A short
B long
C int
D byte
21 java 类可以作为(C)
A 类型定义机制
B 数据封装机制
C 类型定义机制和数据封装机制
D 上述都不对
22 在创建对象时,必须(C )
A 先声明对象,然后才能使用对象
B 先声明对象,为对象分配内存空间,然后才能使用对象
C 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D 上述说法都对
23 在调用方法时,若要使方法改变实参的值,可以(D)
A 用基本数据类型作为参数
B 用对象作为参数
C (A)和(B)都对
D (A)和(B)都不对
24 JAVA 中( C )
A 一个子类可以有多个父类,一个父类也可以有多个子类
B 一个子类可以有多个父类,但一个父类只可以有一个子类
C 一个子类可以有一个父类,但一个父类可以有多个子类
D 上述说法都不对
25 paint()方法使用哪种类型的参数? ( A )
A、Graphics
B、Graphics2D
C、String
D、Color
26在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种特性称为 ( C )
A、隐藏
B、覆盖
C、重载
D、Java不支持此特性
27类Test1、Test2定义如下:
1. public class Test1
2.{ public float aMethod(float a,float b) throws
3. IOException { }
4. }
5. public class Test2 extends Test1{ 6. 7.}
将以下哪种方法插入行4是不合法的。 ( A )
A、 float aMethod(float a,float b){ }
B、 public int aMethod(int a,int b)throws Exception{ }
C、 public float aMethod(float p,float q){ }
D、 public int aMethod(int a,int b)throws IOException{ }
28以下哪个接口的定义是正确的? (D )
A、 interface B
{ void print() { } }
B、 abstract interface B
{ void print() }
C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口
{ abstract void print(){ };}
D、 interface B { void print();}
29 下列哪些语句关于Java内存回收的说明是正确的? ( B )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
30 A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
1. A a0=new A();
2. A a1 =new B();
3. A a2=new C();
问以下哪个说法是正确的? ( D)
A、只有第1行能通过编译
B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的
四、程序阅读
1.写出以下程序的运行结果。
class First {
First( ) {
System.out.println ("in First"); } }
public class Second extends First { Second( ) {
System.out.println("in Second"); } public static void main(String[] args) { Second mine= new Second( ); } }
程序运行的结果:
in First in Second
2.解释程序中语句的含义
纯文本文件f1.txt中的内容是 abcd
下面的程序将f1.txt文件中的内容写到f2.txt文件中和屏幕上 import java.io.*;
public class filecopy {
public static void main(String[] args) { try {
StringBuffer str=new StringBuffer( );
FileInputStream fin=new FileInputStream("f1.txt");
FileOutputStream fout=new FileOutputStream("f2.txt");
int c;
while((c=fin.read( ))!=-1) {
fout.write(c); 意义
str.append((char)c); 意义
fin.close( ); fout.close( );
String str2=str.toString( );
System.out.println(str2); 显示的结果是
}catch(Exception c) {
System.out.println(c); } } }
实例化输入流对象,指定输入流来源文件为f1.txt 实例化输出流对象,指定输出流目标文件为f2.txt 将C写入到输出流对象中
将整数C转化为字符,并添加到字符串str的尾部 abcd