计算机二级考试C语言考点解析

计算机二级考试C语言考点解析
计算机二级考试C语言考点解析

计算机二级考试C语言考点解析

初步知识

2.1程序的构成

尽管C程序的内容千变万化,但是它们的构成都是一致的,一个完整的C源程序的格式可以如下表示:

编译预处理

主函数()

函数()

函数()

从上面中可以看出,一个C源程序实际上就是若干函数的集合,这些函数中有一个是程序的主函数,任何C的源程序执行时,都是从主函数开始执行的,其它的函数最终必将被这个主函数所调用。C语言除了主函数规定必须取名main外,其它的函数名可以任取,但是要符合C的标识符取名规则,另外注意不要与保留字重名,最好也不可与C语言中的库函数或其它一些命令如编译预处另命令重名。各个函数在程序中所处的位置并不是固定的,但要求一个函数是完整的、独立的。不允许出现在一个函数内部又去定义另一个函数,或是函数格式不齐全的现象。一个完整的一般意义上的函数有一个固定的框架,编写具体的函数时,只需在这个框架中填入相应的内容即可。框架如下:

函数类型函数名(形参)

形参说明

{

内部变量说明;

执行语句部分;

}

2.2C语言的基本词法

C语言的基本词法由三部分组成:符号集、关键字、保留字。

符号集就是一门语言中允许出现的字符的集合,C语言的符号集就是ASCⅡ码表中的一些字符,在键盘上不能直接得到(比如说响铃字符),C语言引入了转义字符的概念,利用反斜杠符号″\″后加上字母的一个字符组合来表示这些字符,当在源程序中遇到这类字符组合时,虽然这个字符组合是一个字符串的形式,但C语言仍会自动将之理解成某一特定的字符。比如″\″,C语言在处理这个字符组合时,会自动理解成回车换行符号。转义字符经过进一步引申应用,形成了另外两种形式:″\ddd″和″\xnn″,这里″\″后的ddd和xnn分别代表三位八进制和两位十六进制数(打头的″x″只是标明后面跟着的是十六进制数),这两种形式不再局限于表示不可打印的字符,它们可以表示ASCⅡ码表中的任意字符,只要把所需表示的字符的ASCII码转换成八进制数或十六进制数即可。比如说字母″A″,ASCII码为65,65的八进制和十六进制分别为101和x41,所以,字母A可表示为″\101″或″\x41″,对转义字符应认真理解。

标识符就是用以标识的符号。正如现实生活中给每一个人都取一个名字一样,C语言中的每一个对象(如函数、变量等)都必须取一个标识符以和其它对象区别开。在C语言中,这个标识符是一个字符串,这个字符串的选定有一定的规则:必须是以字母或下划线开头的字母与数字的序列。除了这个基本的规则外,C语言对标识符的命名还有几个限制需加以注意:①长度最好不要超过八个字符。因C中对标识符只处理前8个字符,超过8个长度的部分将被C自动忽略掉。″ABCDEFGH1″和″ABCDEFH2″是同一个标识符;②标识符不要与保留字同名,最好也不要与C提供的标准标识符,如库函数重名;③应注意C语言对大小写字母是敏感的,Abcd和abcd是两个不同的标识符。

关键字实际上就是一些特殊的标识符,又称保留字,这些保留字不允许用户对它重新定义。

字符串

10.1字符串与字符数组

1.字符数组的定义

定义方法与前面介绍的类似,只是将数组定义为字符型即可。例如:

charc[10];

这里定义了一个包含10个元素的字符数组c。

2.字符数组的初始化

对字符数组初始化,可以采用以下方法:

(1)逐个字符赋给数组中各元素;

(2)用字符串常量使字符数组初始化。

3.字符串

在C语言中,字符串是作为字符数组来处理的,字符串可以存放在字符型一维数组中,故可以把字符型一维数组作为字符串变量。

字符串常量是用双引号括起来的一串字符。

C语言中约定用′\0′作为字符串的结束标志,它占内存空间,但不计入串的长度,′\0′的代码值为0。

系统对字符串常量也自动加一个′\0′作为结束符。例如″clanguage″共有10个字符,但在内存中占11个字节,最后一个字节存放′\0′。

4.字符数组的输入输出

(1)逐个字符输入和输出

①在标准输入输出printf和scanf中使用%c格式描述符;

②使用getchar和putchar函数。例如:

for(i=0;i<10;i++)

scanf(″%c″,&str[i]);/*或str[i]=getchar();*/

str[i]=′\0′;/*人为加上串结束标志*/

for(i=0;i<10;i++)

printf(″%c″,str[i]);/*或putchar(str[i]);*/

(2)字符串整体输入输出

①在标准输入输出函数printf和scanf中使用%s格式描述符;

输入形式:

charstr[6];

scanf(″%s″,str);

其中str为字符数组名,代表着str字符数组的起始地址,输入时系统自动在每个字符串后加入结束符′\0′。若同时输入多个字符串,则以空格或回车符分隔。

输入形式:

printf(″%s″,str);

输字符串时,遇第一个′\0′即结束。但可人为控制输出串所占的域宽如:

printf(″%6s″,str);/*若字符串中字符多于6个,仍将全部输出*/

printf(″%-6s″,str);/*只输出前6个字符,多余的不输出*/

②使用gets和puts函数输入输出一行

gets函数用来从终端键盘读字符,直到遇换行符为止,换行符不属字符串的内容。

调用形式:

gets(str);

str为字符数组名或字符指针,字符串输入后,系统自动将′\0′置于串尾代替换行符。若输入串长超出数组定义长度时,系统报错。

Puts函数用来把字符串的内容显示在屏幕上。

调用形式:

puts(str);

str的含义同上。输出时,遇到第一个′\0′结束并自动换行,字符串中可以含转义字符。

运算符

无论是加减乘除还是大于小于,都需要用到运算符,在C语言中的运算符和我们平时用的基本上都差不多。

运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系

运算符、自增自减运算符。大多数运算符都是二目运算符,即运算符位于两个表达式之间。单目运算符的意思是运算符作用于单个表达式。(具体什么是表达式下一节再说)

一、赋值运算符

赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。符号为‘=’。这里并不是等于的意思,只是赋值,等于用‘==’表示。

注意:赋值语句左边的变量在程序的其他地方必须要声明。

得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为她它们出现在赋值语句的右边。常数只能作为右值。

例如:

count=5;

total1=total2=0;

第一个赋值语句大家都能理解。

第二个赋值语句的意思是把0同时赋值给两个变量。这是因为赋值语句是从右向左运算的,也就是说从右端开始计算。这样它先total2=0;然后total1=total2;那么我们这样行不行呢?

(total1=total2)=0;

这样是不可以的,因为先要算括号里面的,这时total1=total2是一个表达式,而赋值语句的左边是不允许表达式存在的。

二、算术运算符

在C语言中有两个单目和五个双目运算符。

符号功能

+ 单目正

- 单目负

* 乘法

/ 除法

% 取模

+ 加法

- 减法

下面是一些赋值语句的例子,在赋值运算符右侧的表达式中就使用了上面的算术运算符:

Area=Height*Width;

num=num1+num2/num3-num4;

运算符也有个运算顺序问题,先算乘除再算加减。单目正和单目负最先运算。

取模运算符(%)用于计算两个整数相除所得的余数。例如:

a=7%4;

最终a的结果是3,因为7%4的余数是3。

那么有人要问了,我要想求它们的商怎么办呢?

b=7/4;

这样b就是它们的商了,应该是1。

也许有人就不明白了,7/4应该是1.75,怎么会是1呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。要想也得到小数部分,可以这样写7.0/4或者7/4.0,也即把其中一个数变为非整数。

那么怎样由一个实数得到它的整数部分呢?这就需要用强制类型转换了。例如:

a=(int) (7.0/4);

因为7.0/4的值为1.75,如果在前面加上(int)就表示把结果强制转换成整型,这就得到了1。那么思考一下a=(float) (7/4);最终a的结果是多少?

单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。

单目加运算符没有意义,纯粹是和单目减构成一对用的。

三、逻辑运算符

逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。

符号功能

&& 逻辑与

|| 逻辑或

! 逻辑非

例如:

5!3;

0||-2&&5;

!4;

当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。

还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:

a=2,b=1;

a||b-1;

因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。

四、关系运算符

关系运算符是对两个表达式进行比较,返回一个真/假值。

符号功能

> 大于

< 小于

>= 大于等于

<= 小于等于

== 等于

!= 不等于

这些运算符大家都能明白,主要问题就是等于==和赋值=的区别了。

一些刚开始学习C语言的人总是对这两个运算符弄不明白,经常在一些简单问题上出错,自己检查时还找不出来。看下面的代码:

if(Amount=123) ……

很多新人都理解为如果Amount等于123,就怎么样。其实这行代码的意思是先赋值Amount=123,然后判断这个表达式是不是真值,因为结果为123,是真值,那么就做后面的。如果想让当Amount等于123才运行时,应该if(Amount==123) ……

五、自增自减运算符

这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。例如:

--Couter;

Couter--;

++Amount;

Amount++;

看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者减1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:

num1=4;

num2=8;

a=++num1;

b=num2++;

a=++num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先自增加1变为5,然后赋值给a,最终a也为5。b=num2++;这是把num2++的值赋给b,因为自增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为9。

那么如果出现这样的情况我们怎么处理呢?

c=num1+++num2;

到底是c=(num1++)+num2;还是c=num1+(++num2);这要根据编译器来决定,不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。

循环语句和循环函数

循环语句和循环函数

Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句。

一、循环语句

(一)、for循环它的一般形式为:

for(<初始化>;<条件表过式>;<增量>)

语句;

初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用;分开。

例如:

for(i=1;i<=10;i++)

语句;

上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。再重新判断,直到条件为假,即i>10时,结束循环。

注意:

(1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。

(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。

(3).for循环可以有多层嵌套。

例如:

for(;;) 语句;

for(i=1;;i+=2) 语句;

for(j=5;;) 语句;

这些for循环语句都是正确的。

main()

{

int i,j;

printf(i j\n);

for(i=0;i<2;i++)

for(j=0;j<3;j++)

printf(%d %d\n,i,j);

}

输出结果为:

i j

0 0

0 1

0 2

1 0

1 1

1 2

用for循环求1+2+……+100的和:

main()

{

int sn=0,i;

for(i=1;i<=100;i++)

sn+=i; /*1+2+……+100*/

printf(%d\n,sn);

}

从程序可以看出,使用循环语句可以大大简化代码。

(二)、while循环它的一般形式为:

while(条件)

语句;

while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。

例如:

#include stdio.h

main()

{

char c;

c='\0'; /*初始化c*/

while(c!='\n') /*回车结束循环*/

c=getche(); /*带回显的从键盘接收字符*/

}

上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\n',条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。

注意:

(1).在while循环体内也允许空语句。

例如:

while((c=getche())!='\n');

这个循环直到键入回车为止。

(2).可以有多层循环嵌套。

(3).语句可以是语句体, 此时必须用{和}括起来。

用while循环求1+2+……+100的和:

main()

{

int sn=0,i=0;

while(++i<=100)

sn+=i; /*求1+2+……+100*/

printf(%d\n,sn);

}

(三)、do--while循环它的一般格式为:

do

{

语句块;

}

while(条件);

这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。

同样当有许多语句参加循环时,要用{和}把它们括起来。

用do--while循环求1+2+……+100的和:

main()

{

int sn=0,i=1;

do

sn+=i; /*求1+2+……+100*/

while(++i<=100);

printf(%d\n,sn);

}

从上面三个程序看出,使用for,while和do--while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。

用户标识符的作用域和存储类

12.1局部变量和全局变量

在函数内部或复合语句内部定义的变量称为局部变量。函数的形参属于局部变量。在函数外部定义的变量称为全局变量。有时,局部变量也称为内部变量,全局变量也称为外部变量。

12.2变量的存储属性(自动、静态、寄存器、外部),变量的作用域和生存期

C语言中来说明变量存储属性的关键字有四个:auto(自动)、static(静态)、register(寄存器)、extern(外部)。

1.局部变量的存储属性

局部变量可以是自动类别(用auto,register说明),也可以是静态类别(用static说明)。形参只能是自动存储类别,不允许是static类别。

当局部变量未指明类别时,被自动说明成自动(auto)变量。这类局部变量称为自动变量。其值存放在内存的动态存储区,因此在退出作用域后,变量被自动释放,其值不予保留。

当局部变量说明成寄存器(register)类型时,与自动(auto)变量一样属于自动类别,所不同的是此时变量的值保留在CPU中的寄存器中。

当变量说明成static(静态)类型时,称这样的变量为静态局部变量。在程序运行期间,它占据一个永久的存储单元,在函数退出后,变量的值仍旧保留。

2.全局变量的存储属性

全局变量都属于静态存储类别,可以用extern和static对它们进行说明。

当一个文件中要引用另一文件中的全局变量或在全局变量定义前要引用它时,可用extern说明。相当于扩大全局变量的作用域。

用static(静态)说明的全局变量称为静态全局变量,它仅能由本文件引用,即使在其文件中用extern说明也不能使用,它相当于限制了全局变量作用域的扩展。

12.3内部函数和外部函数

1.在C语言中,所有的函数在本质上都是外部函数。

2.函数定义时用extern进行说明称为外部函数。函数的隐含类别为外部函数,外部函数可以被其他文件调用。

3.定义函数时用static进行说明称为静态函数,也称内部函数。静态函数也是外部函数,只是它仅局限于它所在的文件,其他文件不能调用。

编译预处理和动态存储分配

13.1宏定义(不带参数的宏定义,带参数的宏定义)

1.编译预处理就是对C源程序进行编译前,由″编译预处理程序″对预处理命令行进行处理的过程。

2.C语言中,凡是以″#″开头的行,都称为″编译预处理″命令行。C语言中的编译预处命令有:#define,#undef,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#line,#pragma,#error。这些预处理命令组成的预处理命令行必须在一行的开头以″#″号开始,每行的未尾不得加″;″号,以区别于C语句、定义和说明语句。

3.不带参数的宏定义:命令的一般形式为:

#define标识符字符串

定义中的″标识符″为用户定义的标识符,称为宏名。在预编译时,C预编译程序将出现的宏名替换成″字符串″的内容,这一过程也称为宏展开。

4.带参数的宏定义:命令的一般形式为

#define宏名(形式参数)字符串

定义中的″字符串″应包含括号中所指定的形式参数。注意宏名与括号之间不要加空格,否则就成为不带参数的宏定义了。

5.预编译时,遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换,原则是:遇到实参则以实参代替,非形参字符原样保留,从而成展开后的内容。

13.2“文件包含”处理

1.文件包含的一般形式为:

#include″头文件名″

#include<头文件名>

头文件名一般由C语言提供,也可以是用户自己编写的,头文件通常用.h作为后缀。

2.当头文件名用双引号括起来时,系统首先在使用此命令的文件所在的目录中查找被包含的文件,找不到时,再按系统指定的标准方式检索其它目录;当头文件名用尖括号括起来时,则直接按系统指定的标准检索方式查找被包含的文件。

3.预编译时,将被包含文件的内容全部复制到包含文件中,这就是文件″包含处理″。

13.3条件编译

C语言中的条件编译命令可对源程序代码的各部分有选择地进行编译。条件编译主要有如下3种使用格式:

使用格式1:

#ifdef标识符

程序段1

#else

程序段2

#endif

使用格式2:

#ifndef标识符

程序段1

#else

程序段2

#endif

使用格式3:

#if表达式

程序段1

#else

程序段2

#endif

使用格式1表示如果已定义了“标识符”,则编译“程序段1”,否则编译“程序段2”;使用格式2表示如没有定义了“标识符”,则编译“程序段1”,否则编译“程序段2”;使用格式3表示如“表达式”的值为“真”时,则编译“程序段1”,否则编译“程序段2”。

嵌入式C语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

计算机二级考试C语言练习题及答案

一、选择题 1). 下列叙述中正确的是( )。 A.调用printf( )函数时,必须要有输出项 B.使用putchar( )函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出 D.调节getchar( )函数读入字符时,可以从键盘上输入字符所对应的ASCII码 正确答案:B 答案解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C 语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。 2). 以下结构体类型说明和变量定义中正确的是( ) A.typedef struct { int n; char c; } REC; REC t1,t2; B.struct REC ; { int n; char c; }; REC t1,t2; C.typedef struct REC; { int n=0; char c=′A′; } t1,t2; D.struct { int n; char c; } REC; REC t1,t2; 正确答案:A 答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。 3). 若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( ) A.一对一 B.一对多 C.多对一 D.多对多 正确答案:B 答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。 4). 关于C语言的变量,以下叙述中错误的是( ) A.所谓变量是指在程序运行过程中其值可以被改变的量 B.变量所占的存储单元地址可以随时改变 C.程序中用到的所有变量都必须先定义后才能使用 D.由三条下划线构成的符号名是合法的变量名 正确答案:B

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

计算机二级考试考试题库操作题附答案

请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操作。 注意:以下的文件必须保存在考生文件夹下 文慧是新东方学校的人力资源培训讲师,负责对新入职的教师进行入职培训,其PowerPoint演示文稿的制作水平广受好评。最近,她应北京节水展馆的邀请,为展馆制作一份宣传水知识及节水工作重要性的演示文稿。 节水展馆提供的文字资料及素材参见"水资源利用与节水(素材).docx",制作要求如下: 1. 标题页包含演示主题、制作单位(北京节水展馆)和日期(XXXX年X月X日) 2. 演示文稿须指定一个主题,幻灯片不少于5页,且版式不少于3种。 3. 演示文稿中除文字外要有2张以上的图片,并有2个以上的超链接进行幻灯片之间的跳转。 4. 动画效果要丰富,幻灯片切换效果要多样。 5. 演示文稿播放的全程需要有背景音乐。 6. 将制作完成的演示文稿以"水资源利用与节水.pptx"为文件名进行保存。 1.【解题步骤】 步骤1:首先打开Microsoft PowerPoint 2010,新建一个空白文档。 步骤2:新建第一页幻灯片。单击【开始】选项卡下【幻灯片】组中的"新建幻灯片"下拉按钮,在弹出的下拉列表中选择"标题幻灯片"命令。新建的第一张幻灯片便插入到文档中。 步骤3:根据题意选中第一张"标题"幻灯片,在"单击此处添加标题"占位符中输入标题名"北京节水展馆",并为其设置恰当的字体字号以及颜色。选中标题,在【开始】选项卡下【字体】组中的"字体"下拉列表中选择"华文琥珀"命令,在"字号"下拉列表中选择"60"命令,在"字体颜色下拉列表中选择"深蓝"命令。 步骤4:在"单击此处添加副标题"占位符中输入副标题名"XXXX年X月X日"。按照同样的方式为副标题设置字体为"黑体",字号为"40"。 2.【解题步骤】 步骤1:按照题意新建不少于5页幻灯片,并选择恰当的有一定变化的版式,至少要有3种版式。按照与新建第一张幻灯片同样的方式新建第二张幻灯片。此处我们选择"标题和内容"命令。 步骤2:按照同样的方式新建其他三张幻灯片,并且在这三张中要有不同于"标题幻灯片"以及"标题和内容"版式的幻灯片。此处,我们设置第三张幻灯片为"标题和内容",第四张为"内容与标题",第五张为"标题和内容"。 步骤3:为所有幻灯片设置一种演示主题。在【设计】选项卡下的【主题】组中,单击"其他"下三角按钮,在弹出的下拉列表中选择恰当的主题样式。此处我们选择"展销会"命令。 3.【解题步骤】 步骤1:依次对第二张至第五张的幻灯片填充素材中相应的内容。此处填充内容的方式不限一种,考生可根据实际需求变动。 步骤2: 根据题意,演示文稿中除文字外要有2张以上的图片。因此,我们来对演示文稿中相应的幻灯片插入图片。此处,我们选中第三张幻灯片,单击文本区域的"插入来自文件的图片"按钮,弹出"插入图片"对话框,选择图片"节水标志"后单击"插入"按钮即可将图片应用于幻灯片中。实际效果如图所示。 步骤3:选中第5张幻灯片,按照同样的方式插入图片"节约用水"。实际效果如图所示。 步骤4:根据题意,要有2个以上的超链接进行幻灯片之间的跳转。此处我们来对第二张幻灯片中的标题"水的知识"设置超链接,由此链接到第三张幻灯片中去。选中第二张幻灯片中"水的知识",在【插入】选项卡下的【链接】组中单击"超链接"按钮,弹出"插入超链接"对话框。单击"链接到"组中的"本文档中的位置"按钮,在对应的界面中选择"下一张幻灯片"命令。 步骤5:单击"确定"按钮后即可在图中看到实际效果。 步骤6:再按照同样的方式对第四张幻灯片中的标题"节水工作"设置超链接,由此链接到第五张幻灯片中去。 4.【解题步骤】 步骤1:按照题意,为幻灯片添加适当的动画效果。此处我们选择为第二张幻灯片中的文本区域设置动画效

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

全国计算机二级考试C语言(最全复习资料)

二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。 考试其它比重: 1、C语言程序的结构占总分1% 2、数据类型及其运算占总分4% 3、选择结构程序设计占比分的3% 4、循环结构占比分的5% 5、数组的定义和引用占比分的5% 6、函数占比分的5% 7、编译预处理占比分1% 8、指针占比分的5% 9、结构体占比分的3% 10、位运算占比分的2% 11、文件操作占比分的2% 考试方式 上机考试,时长120分钟 单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题) 第一部分 C语言知识复习资料 第一章C语言基本知识(90分) 【考点1】C程序 用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。C语言有三种基本结构:顺序结构、选择结构、循环结构。

【考点2】main函数 又称主函数,是C程序的入口。main后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。 【考点3】存储形式 计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。数据的存放位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 是标识名字的有效字符序列,可以理解为C程序中的单词。 标识符的命名规则是: (1)标识符只能由字母、数字和下划线组成,字母区分大小写。 (2)标识符的第一个字符必须是字母或下划线,不能为数字。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 【考点7】常量与变量 常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型常量、字符常量、字符串常量、符号常量5种。在程序运行过程中其值可以改变的量称为变量。C语言中没有字符串变量。存放字符串使用字符数组。 【考点8】整型数据 整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中不会出现8。 整型变量可分为基本整型(int)、短整型(short)、长整型(long)、和无符号整型(unsigned)。一个基本整型占4个字节。其它类型的整型占用字节数和取值范围详见教材第9页。 【考点9】实型数据 实型数据有两种表示形式:小数形式和指数形式。掌握判定指数形式合法性。 口诀:E前E后必有数,E后必须为整数。 实型变量分为单精度型(float)和双精度型(double),单精度型占四个字节。 【考点10】算术运算 算术运算符一共有+、—、*、/、%这五个。求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。 【考点11】强制类型转换 将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。 【考点12】赋值 赋值运算符为“=”,不同于关系等于“= =”。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。

计算机二级考试题目

Word 2010 高级应用综合操作题打开素材库中的“典型试题”文件,按下面的操作要求进行操作,并把操作结果存盘。 1.操作要求 (1)对正文进行排版。 ①使用多级符号对章名、小节名进行自动编号,代替原始的编号。要求: * 章号的自动编号格式为:第X 章(例:第1 章),其中:X 为自动排序,阿拉伯数字序号。对应级别1。居中显示。 *小节名自动编号格式为:,X为章数字序号,Y为节数字序号(例:),X、Y均为阿拉伯数字序号。对应级别2。左对齐显示。 ②新建样式,样式名为:“样式”+考生准考证号后5 位。其中: *字体:中文字体为“楷体” ,西文字体为“ Time New Roman ”,字号为“小四” 。 *段落:首行缩进2 字符,段前行,段后行,行距倍;两端对齐。其余格式,默认设置。 ③对正文中的图添加题注“图” ,位于图下方,居中。要求: *编号为“章序号” -“图在章中的序号” 。例如,第1 章中第2 幅图,题注编号为1-2。 *图的说明使用图下一行的文字,格式同编号。 *图居中。 ④对正文中出现“如下图所示”的“下图”两字,使用交叉引用。 *改为“图X-Y”,其中“ X-Y'为图题注的编号。 ⑤对正文中的表添加题注“表” ,位于表上方,居中。 *编号为“章序号” -“表在章中的序号” 。例如,第1 章中第1 张表,题注编号为1-1。 *表的说明使用表上一行的文字,格式同编号。 *表居中,表内文字不要求居中。 ⑥对正文中出现“如下表所示”中的“下表”两字,使用交叉引用。 *改为“表X-Y,其中“ X-Y'为表题注的编号。 ⑦对正文中首次出现“ Access'的地方插入脚注。 *添加文字“ Access是由微软发布的关联式数据库管理系统。”。 ⑧将②中的新建样式应用到正文中无编号的文字。不包括章名、小节名、表文字、表和图的题注、脚注。 (2)在正文前按序插入三节,使用Word 提供的功能,自动生成如下内容: ①第1 节:目录。其中:“目录”使用样式“标题1”,并居中;“目录”下为目录项。 ②第2 节:图索引。其中:“图索引”使用样式“标题1”,并居中;“图索引”下为图索引项。 ③第3 节:表索引。其中:“表索引”使用样式“标题1”,并居中;“表索引”下为表索引项。 (3)使用适合的分节符,对正文进行分节。添加页脚,使用域插入页码,居中显示。要求: ①正文前的节,页码采用“i ,ii』[,???”格式,页码连续。 ②正文中的节,页码采用“ 1,2,3,…”格式,页码连续。 ③正文中每章为单独一节,页码总是从奇数开始。 ④更新目录、图索引和表索引。

最新计算机二级C 考试复习资料(全)

计算机二级C++考试复习资料(全) 一、C++概述 (一) 发展历史 1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++语言。 1985年,C++开始在外面慢慢流行。经过多年的发展,C++已经有了多个版本。为次,ANSI和ISO的联合委员会于1989年着手为C++制定标准。1994年2月,该委员会出版了第一份非正式草案,1998年正式推出了C++的国际标准。 (二) C和C++ C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。 例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C 程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。 C程序员可以省略函数原型,而C++不可以,一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。 C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。 标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数。 C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。 C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。 二、关键字和变量 C++相对与C增加了一些关键字,如下: typename bool dynamic_cast mutable namespace static_cast using catch explicit new virtual operator false private template volatile const protected this wchar_t const_cast public throw friend true reinterpret_cast try bitor xor_e and_eq compl or_eq not_eq bitand 在C++中还增加了bool型变量和wchar_t型变量: 布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。 #include iostream.h int main() { bool flag; flag=true; if(flag) cout< return 0; }

全国计算机等级考试二级MS-Office-高级操作题考点及步骤整理

全国计算机等级考试二级MS-Office-高级操作题考点及步骤整理

全国计算机等级考试二级MS-Office-高级操作题考点及步骤整理

WORD 根据示例图片对文档进行字体调整及内容排版(邀请函、海报、新闻、政府工作报告) ?字体、段落、行距、分页、页边距、装订线、主题图片、自动生成目录、超链接、注脚、繁简转换、另存pdf ?正文首行缩进标题不变(全选-右击样式里的“正文”样式-修改-格式-段落-正文文本首行缩进)?复制另一个Word样式到此文档(打开另一个文档-文件-选项-加载项-管理:模板-管理器-单击右侧“关闭文件”-“打开文件”选择需要编辑文档-选择需要复制的样式复制-关闭 ?软回车改成硬回车(替换^l成^p,即特殊符号里“手动换行符”到“段落标记”) ?对文字设域(插入-文档部件-域) ?提要栏(插入-文本框-XX型提要栏) ?表格:更改样式、边框、作图(插入图表再在弹出的excel里更改数据) ?封面(日期协同变化可以删除日期框改成文本框)?页眉页脚正文开始且奇偶页不同(先设置奇偶页不同-分页)、标题自动显示在页眉区(添加页眉-插入-文档部件-域-类别:链接和引用-StyleRef-标

题样式-从底部向顶部检索-确定) ?邮件合并功能制作内容相同、收件人不同的多份请柬,根据性别在后面添加先生或女士(先有excel 里的电子表格信息,再在word里邮件-开始邮件合并-信函-选择收件人-使用现有列表-选择excel里的工作表-确定-word里选择要替换的位置,点击“插入合并域”姓名-点击“规则域”-点击如果那么否则添加条件-“完成并合并”-编辑单个文档-全部-确定) ?只插入二级、三级标题(引用-目录-插入目录-选项-去掉目录级别里不需要的数字-确定) ?将文档中的表格内容保存至“表格”部件库(选中表格-插入-文档部件-将所选内容保存到文档部件库-更改名称,库为表格) EXCEL ?定义名称 ?数据透视表、分类汇总(需要先排序)、迷你折线图(定位在单元格-插入-迷你折线图-选择单行数据-确定)、分列(数据-固定列宽) ?将单元格日期“2013年1月20日”显示成“2013

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

全国计算机等级考试二级笔试样卷C语言程序设计(含答案)

全国计算机等级考试二级笔试样卷C语言程序设计 【打印】【字体:大中小】【关闭】 一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列选项中不符合良好程序设计风格的是 A)源程序要文档化B)数据说明的次序要规范化 C)避免滥用goto语句D)模块设计要保证高耦合、高内聚 (2)从工程管理角度,软件设计一般分为两步完成,它们是 A)概要设计与详细设计B)数据设计与接口设计

C)软件结构设计与数据设计 D)过程设计与数据设计 (3)下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试B)概要设计 C)软件维护 D)详细设计 (4)在数据库系统中,用户所见的数据模式为 A)概念模式B)外模式C)内模式D)物理模式 (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段 D)物理设计 (6)设有如下三个关系表 R S T

下列操作中正确的是 A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S (7)下列叙述中正确的是 A)一个算法的空间复杂度大,则其时间复杂度也必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7 (9)数据库技术的根本目标是要解决数据的

C语言面试题(经典全)

1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 6.堆栈溢出一般是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。没有回收垃圾资源导致的是内存泄露最后内存耗尽。 20.不能做switch()的参数类型是: switch的参数不能为实型。(只能是int char) 9.写出float x 与“零值”比较的if语句。 if(x<0.000001&&x>-0.000001)

3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 函数名: atol 功能: 把字符串转换成长整型数 函数的原型: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline

全国计算机等级考试二级C语言选择题

程序流程图中带有箭头的线段表示的是()。 A) 图元关系 B) 数据流 C) 控制流 D) 调用关系 参考答案:C 【解析】在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C)。 结构化程序设计的基本原则不包括()。 A) 多态性 B) 自顶向下 C) 模块化 D) 逐步求精 参考答案:A 【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。 软件设计中模块划分应遵循的准则是()。 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 参考答案:B 【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。 在软件开发中,需求分析阶段产生的主要文档是()。 A) 可行性分析报告 B) 软件需求规格说明书 C) 概要设计说明书 D) 集成测试计划 参考答案:B 【解析】A)错误,可行性分析阶段产生可行性分析报告。C)错误,概要设计说明书是总体设计阶段产生的文档。D)错误,集成测试计划是在概要设计阶段编写的文档。B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。 算法的有穷性是指()。 A) 算法程序的运行时间是有限的 B) 算法程序所处理的数据量是有限的 C) 算法程序的长度是有限的 D) 算法只能被有限的用户使用

【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。 A) 快速排序 B) 冒泡排序 C) 直接插入排序 D) 堆排序 参考答案:D 【解析】除了堆排序算法的比较次数是,其他的都是n(n-1)/2。 下列关于栈的叙述正确的是()。 A) 栈按"先进先出"组织数据 B) 栈按"先进后出"组织数据 C) 只能在栈底插入数据 D) 不能删除数据 参考答案:B 【解析】栈是按"先进后出"的原则组织数据的,数据的插入和删除都在栈顶进行操作。 在数据库设计中,将E-R图转换成关系数据模型的过程属于()。 A) 需求分析阶段 B) 概念设计阶段 C) 逻辑设计阶段 D) 物理设计阶段 参考答案:C 【解析】E-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。 有三个关系R、S和T如下: 由关系R和S通过运算得到关系T,则所使用的运算为()。 A) 并 B) 自然连接 C) 笛卡尔积 D) 交

计算机二级考试Excel操作考试题

Excel考试题 1、打开名为“Excel_销售表”的工作簿; (1)将工作簿中的工作表“销售表”复制一份名为“销售表备份”的工作表;(方法:右击“销售表”标签,选择移动或复制工作,按下图1所示进行设置) 图1 图2 (2)将工作表“销售表”中只留下“徐哲平”的记录,其他记录全部删除;(方法1:先按销售代表列排序,然后删除销售代表不是徐哲平的行。方法2:先利用自动筛选的方法,筛选出不包含徐哲平的行,如下图2所示,然后删除那些行,再单击数据-筛选-自动筛选)。 (3)将工作表“销售表”设置为打印“网格线”。(方法:文件-页面设置-工作表,如下图3所示) 图3 完成以上操作后,将该工作簿以“×××的Excel_销售表”为文件名保存在自己的文件夹下。 2、打开工作簿“Excel_销售表”,对工作表“销售表”进行以下操作: (1)计算出各行中的“金额”(金额=单价*数量); (2)按“销售代表”进行升序排序; (3)利用分类汇总,求出各销售代表的销售总金额(分类字段为“销售代表”,汇总方式为“求和”,汇总项为“金额”,汇总结果显示在数据下方)。 完成以上操作后,将该工作簿以“×××的Excel_销售表”为文件名保存在自己的文件夹下。 3、打开工作簿“Excel_销售表”,对工作表“销售表”进行以下操作: (1)在E212单元格中,使用函数求最高单价; (2)在G212单元格中,使用函数求所有产品的总金额; (3)在H213单元格中,使用函数求张默销售记录条数。(COUNTIF函数) 完成以上操作后,将该工作簿以"×××的Excel_销售表"为文件名保存在自己文件夹下。 4、打开工作簿“Excel_销售表”,对工作表“销售表”进行以下操作: (1)多表计算:在“销售总表”中利用函数直接计算三位销售代表的销售总金额; (2)在“销售总表”中利用函数计算总销售金额; (3)在“销售总表”中,对“销售代表总金额”列中的所有数据设置成“使用千分位分隔符”,并保留1位小数。(方法:选定内容,单击格式-单元格-数值) 完成以上操作后,将该工作簿以"×××的Excel_销售表"为文件名保存在自己文件夹下。 5、打开工作簿“Excel_销售表”,对工作表“销售总表”进行以下操作: (1)利用函数填入折扣数据:所有单价为1000元(含1000元)以上的折扣为5%,其余折扣为3%;(if函数) (2)利用公式计算各行折扣后的销售金额(销售金额=单价*(1-折扣)*数量); (3)在H212单元格中,利用函数计算所有产品的销售总金额。 完成以上操作后,将该工作簿以"×××的Excel_销售表"为文件名保存在自己文件夹下。 6、打开工作簿“Excel_销售表”,对工作表“销售表”进行以下操作: (1)计算出各行中的“销售金额”; (2)在G212单元格中,计算所有销售总金额; (3)利用自动筛选功能,筛选出单价为500-1000(含500和1000)的所有记录。

计算机二级考试C语言试题及答案第一套

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。) (1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 A)PAD图 B)N-S图 C)结构图 D)数据流图 (2)结构化程序设计主要强调的是 A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性 (3)为了使模块尽可能独立,要求 A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 (4)需求分析阶段的任务是确定 A)软件开发方法 B)软件开发工具 C)软件开发费用 D)软件系统功能 (5)算法的有穷性是指

A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是有限的 C)算法程序的长度是有限的 D)算法只能被有限的用户使用 (6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序 (8)将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域 (9)有三个关系R、S和T如下: R B C D a 0 k1 b 1 n1 S B C D f 3 h2 a 0 k1

计算机二级考试VF试题

计算机二级考试VF试题 计算机二级考试VF试题 一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下,打开Ecommerce数据库,完成如下操作: 1.打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据库。 2.为OrderItem表创建一个主索引,索引名为PK,索引表达式为"会员号+商品号";再为OrderItem创建两个普通索引(升序),一个的索引名和索引表达式均是"会员号";另一个的索引名和索引表达式均是"商品号"。 3.通过"会员号"字段建立客户表Customer和订单表OrderItem 之间的永久联系(注意不要建立多余的联系)。 4.为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。 二、简单应用(2小题,每题20分,计40分) 在考生文件夹下完成如下简单应用:索取计算机二级机考题库联系微信号:3026287336 1.建立查询qq,查询会员的会员号(来自Customer表)、姓名(来自Customer表)、会员所购买的商品名(来自article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价*OrderItem.数量),结果不要进行排序,查询去向是表ss。查询保存为qq.qpr,并运行该查询。 2.使用SQL命令查询小于30岁(含30岁)的会员的信息(来自表Customer),列出会员号、姓名和年龄,查询结果按年龄降序排序存入文本文件cut_ab.txt中,SQL命令存入命令文件cmd_ab.prg。

C语言面试题大汇总,个人觉得还是比较全

4. static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 2) 不存在指向空值的引用,但是存在指向空值的指针。 8. 描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性 9. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈 10. 什么是平衡二叉树? 左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1 11. 堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源 12. 什么函数不能声明为虚函数? constructor 13. 冒泡排序算法的时间复杂度是什么? O(n^2) 14. 写出float x 与“零值”比较的if语句。 if(x>0.000001&&x<-0.000001) 16. Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层/物理层 17. Internet物理地址和IP地址转换采用什么协议? ARP (Address Resolution Protocol)(地址解析協議) 18.IP地址的编码分为哪俩部分? IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。 2.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出 C程序。 循环链表,用取余操作做 3.不能做switch()的参数类型是: switch的参数不能为实型。 華為 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内

计算机二级C语言上机考试操作步骤及流程

二级C语言上机考试操作步骤 一、进入考试系统 单击桌面上的“考试系统”图标,进入考试启动界面。“考试启动界面”如图1所示。 图1 二、输入考生信息 进入考试界面后,单击“开始登录”按钮即可进入考试环境进行“考生信息”的输入。“信息输入”如图2所示。 图2 考生输入准考证号如“2427180018001800”后,单击“考号验证”按钮进行信息核实,系统会弹出如图3所示的对话框。 图3

在确定考生信息完全正确时,单击“是”按钮,进入答题界面,如下图所示,上方含有“程序填空题”、“程序修改题”、“程序设计题”三个按钮, 三、开始答题 本次考试共有50套题,每一套题的填空、改错和编程题的答案均附在后面。学生进入上述考试界面后,首先点击程序设计题,根据程序设计题从而明白是哪一套题的组合,然后开始正式答题。过程如下: 1.程序填空题 单击考试界面中的“程序填空题”按钮后,题目显示区将显示出题目对应的文字叙述信息。通过文字叙述可以了解到该题目的考试内容。然后单击左上角“答题”菜单中的“启动Microsoft Visual C++”菜单项进入“Visual C++ 6.0”系统环境界面,如下图所示。 进入系统环境后,执行左上角的“文件|打开”命令,系统弱出“打开”对话框,选择“blank1.c”程序文件,

点击左下角的“打开”按钮,如图4所示。 图4 打开“blank1.c”程序文件后,开始填空。填空方法如下: (1)在程序中找到“******** found *******”标识位置。 (2)把“found ”标识位置下面的需要填空的“占位符”删除(需要连横线一起删除),将程序的答案写在对应位置。例如下图所示。 原“blank1.c ”程序图: 打开

相关文档
最新文档