知识大全 计算机等级考试,四个月复习,能过二级C吗
Posted 程式
篇首语:天才与凡人只有一步之隔,这一步就是勤奋。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 计算机等级考试,四个月复习,能过二级C吗相关的知识,希望对你有一定的参考价值。
计算机等级考试,四个月复习,能过二级C吗? 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
计算机等级考试,四个月复习,能过二级C吗?
那个很应该不算难的。机试,买本题库,对着电脑搞几遍基本上考试的时候满分。最蛋疼的是笔试,那就要你用力啃课本了,结合历年考题,四个月足够了,个人觉得一个月时间都允许。 每年上半年3月倒数第一个星期六上午进行笔试,下午开始进行上机考试,由于受实际条件的限制,上机考试由各考点具体安排,按次序各考生依次参加考试,五天安排完成,采取由考试系统随机自动抽取试题、自动评分的形式。
每年下半年九月份的9月倒数第二个星期六上午进行笔试,下午开始进行上机考试,考试方法和三月份类似。
第一天上午9:00-10:30考笔试,上机考试从笔试的当天下午开始(一级从上午开始)。
考试时长的安排:
笔试考试时间:一级无,二级为90分钟,三级、四级均为120分钟。
上机操作考试时间:三级为60分钟,二级为90分钟。一级实行无纸化的上机考试,完全采取上机考试形式,时间为90分钟。
2010年9月计算机等级考试二级VB的复习材料~
我上半年考的 看真题做真题!文字方面的要多记忆
如何复习计算机等级考试?
那就好好看看参考书呗,一般书店都有卖的。还可以根据附送的光碟自己练习一下。
求四川省计算机等级考试二级c语言考试复习题
10.1. 什么是“位遮蔽(bit masking)”? 位遮蔽的含义是从包含多个位集的一个或一组位元组中选出指定的一(些)位。为了检查一个位元组中的某些位,可以让这个位元组和遮蔽字(bit mask)进行按位与操作(C的按位与运算子为&)——遮蔽字中与要检查的位对应的位全部为1,而其余的位(被遮蔽的位)全部为0。例如,为了检查变数flags的最低位,你可以让flags和最低位的遮蔽字进行按位与操作:
flags&1;
为了置位所需的位,可以让资料和遮蔽字进行按位或操作(C的按位或运算子为|)。例如,你可以这样置位flags的最低位:
flags = flags | 1;
或者这样:
flags |= 1;
为了清除所需的位,可以让资料和对遮蔽字按位取反所得的值进行按位与操作。例如,你可以这样清除flags的最低位:
flags = flags& ~1;
或者这样:
flags&=~1 ;
有时,用巨集来处理标志会更方便,例10.2中的程式就是通过一些巨集简化了位操作。 例10.2 能使标志处理更方便的巨集
/* Bit Masking * /
/ * Bit masking can be used to switch a character
beeen lowercase and uppercase * /
#define BIT_POS(N) ( 1U ??(N) )
#define SET_FLAG(N,F) ( (N) | = (F) )
#define CLR_FLAG(N,F) ( (N) &= - (F) )
#define TST_FLAGCN,F) ( (N) & (F) )
#define BIT_RANGE(N,M) ( BIT_POS((M) + 1- (N))-1<<(N))
#define BIT_SHIFTL(B,N) ( (unsigned)(B)??(N) )
#define BIT_SHIFTR(B,N) ( (unsigned)(B)??(N) )
#define SET_MFLAG(N,F,V) ( CLR_FLAG(N,F), SET_FLAG(N,V) )
#define CLR_MFLAG(N,F) ( (N) &= ~(F) )
#define GET_MFLAG(N,F) ( (N) & (F) )
# include <stdio. h>
void main()
unsigned char ascii_char = \'A\'; /* char = 8 bits only */
int test_nbr = 10;
printf("Starting character = %c\\n" , ascii_char);
/" The 5th bit position determines if the character is
uppercase or lowercase.
5th bit = 0 - Uppercase
5th bit = 1- Lowercase * /
printf ("\\nTurn 5th bit on = %c\\n" , SET_FLAG(ascii_char, BIT_POS(5)));
printf ("Turn 5th bit off = %c\\n\\n",CLR_FLAG(ascii_char, BIT_POS(5)));
printf ("Look at shifting bits\\n");
printf (" = = = = = = = = = = = = = = = =\\n" );
printf ("Current value = %d\\n" , test_nbr)i
printf ("Shifting one position left = %d\\n" ,
test_nbr = BIT_SHIFTL(test_nbr, 1) );
printf ("Shifting o positions right = %d\\n" ,
BIT_SHIFTR(test_nbr, 2) );
巨集BIT_POS(N)能返回一个和N指定的位对应的遮蔽字(例如BIT_POS(O)和BIT_POS(1)分别返回最低位和倒数第二位的遮蔽字),因此你可以用
#define A_FLAG BIT_POS(12)
#define A_FLAG BIT_P0S(13)
代替
#define A_FLAG 4096
#define A_FLAG 8192
这样可以降低出错的可能性。
巨集SET_FLAG(N,F)能置位变数N中由值F指定的位,而巨集CLR_FLAG(N,F)则刚好相反,它能清除变数N中由值F指定的位。巨集TST_FLAG(N,F)可用来测试变数N中由值F指定的位,例如:
if (TST_FLAG (flags, A_FLAG))
/* do something * /;
巨集BIT_RANGE(N,M)能产生一个与由N和M指定的位之间的位对应的遮蔽字,因此,你可以用
# define FIRST_OCTAL_DIGIT BIT_RANGE (0,2) /*111"/
# define SECOND-OCTAL-DIGIT BIT-RANGE(3,5) /* 111000*/
代替
#define FIRST_OCTAL_DIGIT 7 /*111*/
#define SECOND_OCTAL_DIGIT 56 /* 111000 * /
这样可以更清楚地表示所需的位。
巨集BIT_SHIFT(B,N)能将值B移位到适当的区域(从由N指定的位开始)。例如,如果你用标志C表示5种可能的颜色,你可以这样来定义这些颜色:
#define C_FLAG BIT-RANGE(8,10) /* 11100000000 */
/* here are all the values the C flag can take on * /
# define C_BLACK BIT-SHIFTL(0,8) /* ooooooooooo */
# define C-RED BIT_SHIFTL(1,8) /* 00100000000 */
# define C-GREEN BIT_SHIFTL(2,8) /* 01000000000 */
# define C-BLUE BIT-SHIFTL(3,8) /* 01100000000 */
# define C_WHITE BIT-SHIFTL(4,8) /* 10000000000 */
# defineC-ZERO C-BLACK
# defineC-LARGEST C-WHITE
/* A truly paranoid programmer might do this */
#if C_LARGEST > C_FLAG
Cause an error message. The flag C_FLAG is not
big enough to hold all its possible values.
#endif /* C_LARGEST > C_FLAG */
巨集SET_MFLAG(N,F,V)先清除变数N中由值F指定的位,然后置位变数N中由值V指定的位。巨集CLR_MFLAG(N,F)的作用和CLR_FLAG(N,F)是相同的,只不过换了名称,从而使处理多位标志的巨集名字风格保持一致。巨集GET_MFLAG(N,F)能提取变数N中标志F的值,因此可用来测试该值,例如:
if (GET_MFLAG(flags, C_FLAG) == C_BLUE)
/*do something */;
注意:巨集BIT_RANGE()和SET_MFLAG()对引数N都引用了两次,因此语句
SET_MFLAG(*x++,C_FLAG,C_RED);
的行为是没有定义的,并且很可能会导致灾难性的后果。 请参见:
10.1 用什么方法储存标志(flag)效率最高?
10.3 位域(bit fields)是可移植的吗?10.2. 位域(bit fields)是可移植的吗? 位域是不可移植的。因为位域不能跨越机器字,而且不同计算机中的机器字长也不同,所以一个使用了位域的程式在另一种计算机上很可能无法编译。
假设你的程式能在另一种计算机上编译,将位分配给位域时所遵循的顺序仍然是没有定义的。因此,不同的编译程式,甚至同一编译程式的不同版本所产生的程式码,很可能无法在由原来的编译程式所生成的资料上工作。通常应该避免使用位域,除非计算机能直接定址记忆体中的位并且编译程式产生的程式码能利用这种功能,并且由此而提高的速度对程式的效能是至关重要的。
请参见:
10.1 用什么方法储存标志(flag)效率最高?
10.2 什么是“位遮蔽(bit masking)”?10.3. 移位和乘以2这两种方式中哪一种更好? 不管你采用哪种方式,任何合格的优化编译程式都会产生相同的程式码,因此你可以采用使
程式的上下文更易读的那种方式。你可以用DOS/Windows上的CODEVIEW或UNIX机上
的反汇编程式(通常被称为"dis”)这样的工具来检视下述程式的汇编程式码:
例10.4乘以2和左移一位经常是相同的
void main()
unsigned int test_nbr = 300;
test_nbr * =2;
test_nbr = 300;
test_nbr << = 1;
请参见:
10.1 用什么方法储存标志(flag)效率最高?10.4. 什么是高位位元组和低位位元组? 通常我们从最高有效位(most significant digit)开始自左向右书写一个数字。在理解有效位这个概念时,可以想象一下你的支票数额的第一位增加1和最后一位增加1之间的巨大区别,前者肯定会让你喜出望外。
计算机记忆体中一个位元组的位相当于二进位制数的位,这意味着最低有效位表示1,倒数第二个有效位表示2×1或2,倒数第三个有效位表示2×2×1或4,依此类推。如果用记忆体中的两个位元组表示一个16位的数,那么其中的一个位元组将存放最低的8位有效位,而另一个位元组将存放最高的8位有效位,见图10.5。存放最低的8位有效位的位元组被称为最低有效位位元组或低位位元组,而存放最高的8位有效位的位元组被称为最高有效位位元组或高位位元组。
高位位元组 低位位元组
↓--------------------------↓ ↓---------------------------↓ 1514131211109.8.7.6.5.4.3.2.1.0. 图 10.5 双位元组整数中的位
请参见:
10. 6 16位和32位的数是怎样储存的10.5. 16位和32位的数是怎样储存的? 一个16位的数占两个位元组的储存空间,即高位位元组和低位位元组(见10.5中的介绍)。如果你是在纸上书写一个16位的数,你总是会把高位位元组写在前面,而把低位位元组写在后面。然而,当这个数被储存到记忆体中时,并没有固定的储存顺序。
如果我们用M和L分别表示高位位元组和低位位元组,那么可以有两种方式把这两个位元组储存到记忆体中,即M在前L在后或者L在前M在后。把M储存在前的顺序被称为“正向(forward)”或“高位优先(big—endian)”顺序;把L储存在前的顺序被称为“逆向(reverse)”或“低位优先(little—endian)”顺序。
big—endian这个术语的含义是数的“高位(big end)”储存在前,同时这也是对《Gulliver\'sTravels》这本书中的一个词的引用,在该书中big—endian一词是指那些从大头开始吃一个煮鸡蛋的人。
大多数计算机按正向顺序储存一个数,Intel CPU按逆向顺序储存一个数,因此,如果试图将基于Intel CPU的计算机连到其它型别的计算机上,就可能会引起混乱。
一个32位的数占4个位元组的储存空间,如果我们按有效位从高到低的顺序,分别用Mm,Ml,Lm和Ll表示这4个位元组,那么可以有4!(4的阶乘,即24)种方式来储存这些位元组。在过去的这些年中,人们在设计计算机时,几乎用遍了这24种方式。然而,时至今天,只有两种方式是最流行的,一种是(Mm,MI,Lm,LD,也就是高位优先顺序,另一种是(Ll,Lm,Ml,Mm),也就是低位优先顺序。和储存16位的数一样,大多数计算机按高位优先顺序储存32位的数,但基于Intel CPU的计算机按低位优先顺序储存32位的数。 请参见:
10.5什么是高位位元组和低位位元组? 第十一章 调 试 除错(debugging)是指去掉程式中的错误(通常被称为bugs)的过程。一个错误可能非常简单,例如拼错一个单词或者漏掉一个分号;也可能比较复杂,例如使用一个指向并不存在的地址的指标。无论错误的复杂程度如何,掌握正确的除错方法都能使程式设计师受益匪浅。11.1. 如果我执行的程式挂起了,应该怎么办? 当你执行一个程式时会有多种原因使它挂起,这些原因可以分为以下4种基本型别:
(1)程式中有死回圈;
(2)程式执行的时间比所期望的长;
(3)程式在等待某些输入资讯,并且直到输入正确后才会继续执行;
(4)程式设计的目的就是为了延迟一段时间,或者暂停执行。
在讨论了因未知原因而挂起的程式的除错技巧后,将逐个分析上述的每种情况。
除错那些因未知原因而挂起的程式是非常困难的。你可能花费了很长的时间编写一个程式,并努力确保每条程式码都准确无误,你也可能只是在一个原来执行良好的程式上作了一个很小的修改,然而,当你执行程式时萤幕上却什么也没有显示。如果你能得到一个错误的结果,或者部分结果,你也许知道应该作些什么修改,而一个空白的萤幕实在令人沮丧,你根本不知道错在哪里。
在开始除错这样一个程式时,你应该先检查一下程式结构,然后再按执行顺序依次检视程式的各个部分,看看它们是否能正确执行。
例如,如果主程式只包含3个函式呼叫——A()、B()和C(),那么在除错时,你可以先检查函式A()是否把控制权返回给了主程式。为此,你可以在呼叫函式A()的语句后面加上exit()命令,也可以用注释符把对函式B()和C()的呼叫括起来,然后重新编译并执行这个程式。
注意:通过除错程式(debugger)也可以做到这一点,然而上述方法是一种很传统的除错方法。除错程式是一个程式,它的作用是让程式设计师能够观察程式的执行情况、程式的当前执行行号、变数的值,等等。
此时你将看到函式A()是否将控制权返回给了主程式——如果该程式执行并退出,你可以判断是程式的其它部分使程式挂起。你可以用这种方法测试程式的每一部分,直到发现使程式挂起的那一部分,然后集中精力修改相应的函式。
有时,情况会更复杂一些。例如,使程式挂起的函式本身是完全正常的,问题可能出在该函式从别的地方得到了一些错误的资料。这时,你就要检查该函式所接受的所有的值,并找出是哪些值导致了错误操作。
技巧:监视函式是除错程式的出色功能之一。
分析下面这个简单的例子将帮助你掌握这种技巧的使用方法:
#include <stdio. h>
#include <stdlib. h>
/*
* Declare the functions that the main function is using
*/
int A(), B(int), C(int, int);
/*
* The main program
*/
int A(), B(), C(); /*These are functions in some other
module * /
int main()
int v1, v2, v3;
v1 = A();
v2 = B(v1);
v3 = C(v1, v2);
printf ("The Result is %d. \\n" , v3);
return(0) ;
你可以在呼叫函式A()的语句后输出变数v1的值,以确认它是否在函式B()所能接受的值的范围之内,因为即使是函式B()使程式挂起,它本身并不一定就有错,而可能是因为函式A()给了函式B()一个并非它所期望的值。
现在,已经分析了除错“挂起”的程式的基本方法,下面来看看一些使程式挂起的常见错误。
死回圈
当你的程式出现了死回圈时,机器将无数次地执行同一段程式码,这种操作当然是程式设计师所不希望的。出现死回圈的原因是程式设计师使程式进行回圈的判断条件永远为真,或者使程式退出回圈的判断条件永远为假。下面是一个死回圈的例子:
/* initialize a double dimension array */
for (a = 0 ; a < 10; ++a )
for(b = 0; b<10; ++a)
array[a][b]==0;
这里的问题是程式设计师犯了一个错误(事实上可能是键入字母的错误),第二个回圈本应在变数b增加到10后结束,但是却从未让变数b的值增加!第二个for回圈的第三部分增加变数a的值,而程式设计师的本意是要增加变数b的值。因为b的值将总是小于10,所以第二个for回圈会一直执行下去。
怎样才能发现这个错误呢?除非你重新阅读该程式并注意到变数b的值没有增加,否则你不可能发现这个错误。当你试图除错该程式时,你可以在第二个for回圈的回圈体中加入这样一条语句:
printf(" %d %d %d\\n" , a , b , array[a][b]) ;
这条语句的正确输出应该是:
0 0 0
0 1 0
(and eventually reaching)
9 9 0
但你实际上看到的输出却是:
0 0 0
1 0 0
计算机等级考试,二级里aess哪个难vfp
aess容易,vfp难
C++二级好过吗?有关计算机等级考试的
不好说好不好过,发正过级是考语法,多做题即可
计算机等级考试 二级 哪个容易点
其实只要有心学,哪个都容易
你可以买一些题库来练习
我之前就是买题库来练习的,一考就过了
就是找了一个LEMONWONG1113 的旺旺买的题库
求计算机等级考试[一级B]的复习资料。
你去未来教育网看看,里面的全真模拟试题挺多的,他们的计算机等级考试的辅导书集也不错,都带光碟还,全真的试题模拟环境,我觉得还不错,推荐给你看看了
计算机等级考试每个月都能考?
不是的~计算机等级考试每年两次。
上半年笔试考试时间为3月最后一个星期六上午9:00,下半年笔试考试时间为9月倒数第二个星期六上午9:00,上机考试从笔试的当天下午开始(一级上机考试从上午开始),期限定为5天(至周三),由考点具体安排。
计算机等级考试:如果二级三级没过,能直接考四级吗?
不能,这个要一级一级考上去
相关参考
全国计算机二级考试都考什么?什么时间考?如何报名,谢谢报名时间:上半年12月1日开始及之后的1个月之内;下半年5月25日开始及之后的1个月之内。考试时间:上半年3月底(即3月份倒数第一个周六),下半年
计算机二级考试都要考些什么啊计算机二级考试是全国计算机等级考试(NationalComputerRankExamination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算
计算机三级考试网路技术,有什么复习建议?全国计算机等级考试三级教程的那本。。高等教育出版社出版。。我是用那本。。。它等你考完了,还可以作为资料。。同时祝你考试顺利计算机三级考试网路技术要C基础吗?是考
那个有江苏计算机二级vfp的考试汇编吗?就是历年来的试卷,拜托拜托,很急!您好!您问的是二级历年的试卷问题吧一般来说,都是自己买的,你可以去计算机二级官网看看除此以外,你还可以加一些计算机二级群,群里
计算机二级C语言上机考试如何通过啊? 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!计算机二级C语言
全国高校计算机一级考试要多少分能过的考试成绩在及格以上者,由教育部考试中心发合格证书。考试成绩在90-100分合格证书上注明优秀。考试成绩在80-89分合格证书上注明良好。考试成绩在60-79分合格证
知识大全 报考全国计算机二级考试,7选1,不管选哪一科,考过了都是拿二级证书吗?证书有区别吗?会标明是考什么吗?谢谢!
报考全国计算机二级考试,7选1,不管选哪一科,考过了都是拿二级证书吗?证书有区别吗?会标明是考什么吗?谢谢!第一个问号:都是二级证书;第二个问号:证书的样子没有区别;第三个问号:明确标明你考的是哪一科
知识大全 怎么查询全国计算机二级考试c语言是否报名成功(我是机试补考)。急
怎么查询全国计算机二级考试c语言是否报名成功(我是机试补考)。急!只有在你报名的地方才能查得出来,如果你是在学校的话就只能在招生考试办查询。如何查看全国计算机二级考试是否报名成功?只有在你报名的地方才
知识大全 各位大哥大姐,帮帮我吧。求计算机二级C语言考试历年真题
各位大哥大姐,帮帮我吧。求计算机二级C语言考试历年真题?最好可以推荐一些针对考试的书给我。万分感谢! 以下文字资料是由(全榜网网www.cha138.com)小编为大家
知识大全 大学里考过了计算机二级和英语六级,现在工作了要评初级中级职称,还要再考计算机英语职称考试吗
大学里考过了计算机二级和英语六级,现在工作了要评初级中级职称,还要再考计算机英语职称考试吗?需要考的,职称英语考试是评职称必须要的。给你看看免考条件1.具有国家认定的相应留学经历的;2.申报副高级职称