免费智能真题库 > 历年试卷 > 信息处理技术员 > 2019年上半年 信息处理技术员 上午试卷 综合知识
  第25题      
  知识点:   鼠标   文档输入   文本   指针
  关键词:   文字处理   指针        章/节:   文字处理基础知识       

 
鼠标指针的形状取决于它所在的位置以及与其他屏幕元素的相互关系。在文字处理的文本区域,指针就像( ),指向当前待插入字符的位置。
 
 
  A.  指向左上方的箭头
 
  B.  双箭头
 
  C.  字母I
 
  D.  沙漏
 
 
 

 
  第33题    2013年下半年  
   41%
在Word 2003的默认编辑状态下,若光标位于表格最后一行的右尾处,单击回车键后,则(33)。
  第39题    2010年下半年  
   43%
点击F.DOC文档窗口的“最小化”按钮后,则(39)
  第39题    2017年下半年  
   20%
在word 2007中,如果在输入的文字或标点下面出现红色波浪线,则表示( )。
   知识点讲解    
   · 鼠标    · 文档输入    · 文本    · 指针
 
       鼠标
        鼠标的主要功能用于移动显示器上的光标并通过菜单或按钮向主机发出各种操作命令,但不能输入字符和数据。鼠标与光笔、触摸屏等一起都属于指点式输入设备。鼠标分为机械鼠标、光电鼠标、光机鼠标和无线鼠标。PC使用的鼠标一般有左、右两个或左、中、右三个按键。但通常把左按键作为主按键,称为当前活动键。通过程序设置,可将当前活动键从左边的按键切换到右边的一个按键,以方便习惯使用左手的人(左撇子)操作。鼠标的常见操作有滑动、单击、双击和拖动4种。
        (1)滑动(slipping)。滑动的目的是使鼠标指针对准所选择的目标。只要手握鼠标在桌面或专用平板上滑动,鼠标指针就能随之在屏幕上左右上下地移动。但要注意在滑动过程中不能按下鼠标的按键。
        (2)单击(Single click)。单击是将手指在当前活动按键上按一下就放开。选定菜单中的某一命令或对话框中的某个按钮后,用鼠标单击该命令或按钮就可执行该命令或按钮的功能,其作用类似于键盘操作中按Enter键的作用。
        (3)双击(double click)。双击是将手指在当前活动键上连续按两下。两次按键间不能有明显的停顿,但也不宜太快,否则容易在无意之中移动鼠标,就不是双击了。双击之前必须将鼠标指针移到所选的对象上。双击常用于启动和运行一个程序。例如,在Windows窗口系统的程序管理器中运行一个应用程序,可以先把鼠标指针“滑动”到该应用程序的图标上,然后双击这一图标,系统就会调出并且运行该程序。
        (4)拖动(dragging)。拖动的步骤是首先将鼠标指针移到要拖的对象上,按下当前活动键后再移动鼠标,鼠标指针就能拖着所选择的对象一起移动。等“拖”到目的地后把按键释“放”,被拖动的对象就会停留在屏幕的新位置上,所以也把这种操作称为“拖放(dragging and drapping)”。注意拖动与滑动的差别:前者在鼠标移动时要按下鼠标键,后者在鼠标移动时要松开按键。
        需要说明的是,拖动的对象可以是应用程序的图标或整个窗口,也可以是窗口的某一条边,或者文本编辑中使用的一个光标。例如在Windows系统的文档操作中,如果想在一个正在编辑的文件中定义一个文本块,可将鼠标指针首先移到文本块的头字符位置,单击鼠标,在头字符之前就会出现一个光标(闪烁的竖条),然后按下鼠标按键,把光标拖动到文本块的尾字符上再将按键释放,就完成了文本块的定义。
 
       文档输入
               Word 2003窗口
               Word 2003的窗口如下图所示。与其他版本的界面有较大的不同,主要是在其右侧有一个任务窗口,单击任务窗口的倒三角“”,系统显示常用任务菜单,共有14项常用任务。Word 2003的窗口组成部分介绍如下。
               
               Word 2003窗口
               (1)标题栏:其中显示此刻正在编辑的文档的名称,若文档还没有保存,则显示“文档1.doc”,以及软件开发者。标题栏所具有的功能与Windows XP中窗口标题栏的功能一样。
               (2)菜单栏:位于标题栏的下面,共有“文件”、“编辑”、“视图”、“插入”、“格式”、“工具”、“表格”、“窗口”和“帮助”9个菜单,每个菜单都有各自的子菜单。Word 2003会把用户不常用的子菜单隐藏起来。Word 2003对菜单的操作与Windows XP中的菜单操作一样,故不再赘述。
               (3)工具栏:位于菜单栏的下面,它是一种图形化的工具按钮,用来完成某一特定的功能。工具栏可以根据用户的需要进行定制,默认显示“常用”和“格式”两个工具栏。
               (4)水平、垂直标尺:用于调整文档页面的左右或上下边距,标尺会随视图模式的不同呈显示或隐藏状态。
               (5)文本编辑区:用户输入文档的工作区域。
               (6)状态栏:主要帮助用户获取光标位置信息,以及一些其他功能。
               (7)视图按钮:位于水平滚动条的左侧,有普通视图、Web版式视图、页面视图、大纲视图、阅读版式5种不同编辑模式(视图)的切换按钮。所谓“视图”就是Word文档在屏幕上的显示方式,选择不同的视图,Word文档显示在屏幕上的效果也不同,如下图所示。
               
               Word常用的4种视图
               在文档中录入文字
                      插入点移动。
                      在Word编辑窗口的文档页面上有一个不断闪烁的短竖线,称为插入点。插入点所在的位置就是待输入文本的位置。注意,在文档窗口内还有一个由鼠标控制的“I”字型光标,在输入文本内容时可移动此鼠标指针到适当位置后单击,插入点即可跳到相应位置处。此时就可以直接在文档中输入文字了。插入点的移动和定位方式如下:
                      .插入点移动到所在行行首:直接按Home键。
                      .插入点移动到所在行行尾:直接按End键。
                      .插入点移动到文章首部:按Ctrl+Home组合键。
                      .插入点移动到文章尾部:按Ctrl+End组合键。
                      .插入点上移、下移一行:按上、下方向键。
                      录入文字。
                      新建文档后,就可以为文档输入正文内容了,这包括英文、中文和各种符号(还可以在文档中插入图像、表格,这将在5.4、5.5节中介绍)。
                      由于Windows XP默认的键盘输入状态为英文,因此在文档的插入点处可直接输入英文(按Shift+字母组合键或按CapsLock键可输入大写的英文字母)。而要输入中文,需要首先将键盘切换到相应的汉字输入法状态。使用Ctrl+空格键可在中英文输入法之间切换,使用Ctrl+Shift组合键将在不同的中文输入法之间切换。也可单击任务栏右边的“输入状态”按钮(也称为“语言/键盘指示器”)来选择键盘输入状态。
               在文档中插入符号
               除了键盘上的字母、数字和标记符号外,在输入正文时,经常需要输入一些键盘上没有的特殊符号。输入这些符号有两种方法:
               (1)通过右击汉字输入法状态条上的软键盘按钮,在弹出的快捷菜单中选择所需输入的符号命令,系统打开软键盘,此时可以利用软键盘输入,如下图(a)所示。图中快捷菜单上选择的是“常用符号”命令。注意,中英文标点的输入可以使用“中/英文标点切换按钮”来实现。
               
               文档中插入符号
               (2)使用Word中“插入”菜单中的“符号”命令。操作方法:将插入点移到要插入符号的位置,选择“插入”→“符号”命令,打开“符号”对话框,如上图(b)所示。在“字体”下拉列表中选定要插入符号的字体,在“子集”下拉列表中选择需要的符号子集,如图中选择的是“箭头”子集。选择所需的符号,单击“插入”按钮,最后单击对话框中的“关闭”按钮。
 
       文本
        文本指各种字符,包括数字、字母和文字等。文本可以先在Word文字处理软件中编辑制作,然后导入集成到多媒体系统中,也可以直接在图形/图像设计软件中编辑制作。
 
       指针
        简单来说,指针是内存单元的地址,它可能是变量的地址、数组空间的地址,或者是函数的入口地址。存储地址的变量称为指针变量,简称为指针。指针是C语言中最有力的武器,能够为程序员提供极大的编程灵活性。
               指针的定义
               指针类型的变量是用来存放内存地址的,下面是两个指针变量的定义:
               
               变量ptr1和ptr2都是指针类型的变量,ptr1用于保存一个整型变量的地址(称ptr1指向一个整型变量),ptr2用于保存一个字符型变量的地址(称ptr2指向一个字符变量)。
               使用指针时需明确两个概念:指针对象和指针指向的对象。指针对象是明确命名的指针变量,如上例中的ptr1、ptr2;指针指向的对象是另一个变量,用“*”和指针变量联合表示,如上例中的整型变量*ptr1和字符变量*ptr2,由于上面的定义中未对ptr1和ptr2进行初始化,它们的初始值是随机的,也就是*ptr1和*ptr2可视为并不存在。
               借助指针变量可以针对指定的地址进行操作,例如,设置地址为0x1234开始的存储空间存放一个整型变量的值0x5678,代码如下。
               
               定义指针变量时需要在每个变量名前加“*”,如下:
               
                      指针的加减运算
                      对指针变量进行加减运算时,是以指针所指向的数据类型存储宽度为单位计算的。
                      例如,下面的指针p和s在进行加1运算时有不同的结果。
                      
                      p+1实际上是按照公式p+1*sizeof(int)来计算的,s+1则是按照s+1*sizeof(char)进行计算。
                      空指针
                      标准预处理宏NULL(它的值为0,称为空指针常量)常用来表示指针不指向任何内存单元,可以把NULL赋给任意类型的指针变量,以初始化指针变量。例如:
                      
                      需要注意:全局指针变量会被自动初始化为NULL,局部指针变量的初始值是随机的。编程时常见的一个错误是没有给指针变量赋初值。未初始化的指针变量可能表示了一个非法的地址,导致程序运行时出现内存访问错误,从而使程序异常终止。
                      “&”和“*”
                      “&”称为地址运算符,其作用是获取变量的地址。“*”称为间接运算符,其作用是获取指针所指向的变量。
                      例如,下面的语句“pa=&b;”执行后,变量pa就得到了b的地址(称为指针pa指向b),*pa表示pa指向的变量(也就是变量b)。
                      例如:
                      
                      在上面的例子中,通过指针pa修改了变量b的值,本质上是对b的间接访问。在程序中通过指针访问数据对象或函数对象,提供了运算处理上的灵活性。
                      如果指针变量的值是空指针或者是随机的,通过指针来访问数据就是一种错误(在编译时报错,或者在运行时发生异常),下面的语句会产生一个运行时错误(vp可能表示了一个非法的地址,因此它所指向的对象*vp也是非法的)。
                      
                      void*类型可以与任意的数据类型匹配。void指针在被使用之前,必须转换为明确的类型。例如:
                      
                      指针与堆内存
                      在程序运行过程中,堆内存能够被动态地分配和释放,在C程序中通过malloc(或calloc、realloc)和free函数实现该处理要求。
                      例如:
                      
                      在堆中分配的内存块的生存期是由程序员自己控制的,应在程序中显式地释放。例如:
                      
                      注意:指针为空(指针值为0或NULL)时表示不指向任何内存单元,因此释放空指针没有意义。
                      因为内存资源是有限的,所以若申请的内存块不再需要就及时释放。如果程序中存在未被释放(由于丢失其地址在程序中也不能再访问)的内存块,则称为内存泄漏。持续的内存泄漏会导致程序性能降低,甚至崩溃。嵌入式系统存储空间非常有限,一般情况下应尽量采用静态存储分配策略。
               指针与数组
                      通过指针访问数组元素
                      在C程序中,常利用指针访问数组元素,数组名表示数组在内存中的首地址,即数组中第一个元素的地址。可以通过下标访问数组元素,也可以通过指针访问数组元素。
                      例如:
                      
                      数组arr的元素可以用*ptr、*(ptr+1)、*(ptr+2)、*(ptr+3)来引用。
                      数组名是常量指针,数组名的值不能改变,因此arr++是错误的,而ptr++是允许的。例如,下面的代码通过修改指针ptr来访问数组中的每个元素。
                      
                      一般情况下,一个int型变量占用4个字节的内存空间,一个char型变量占用一个字节的空间,所以str是字符指针的话,str++就使str指向下一个字符;而整型指针ptr++则使ptr指向下一个int型整数,即指向数组的第二个元素。
                      可以用指针访问二维数组元素。例如,对于一个m行、n列的二维整型数组,其定义为
                      
                      由于二维数组元素在内存中是以线性序列方式存储的,且按行存放,所以用指针访问二维数组的关键是如何计算出某个二维数组元素在内存中的地址。二维数组a的元素a[i][j](ii][j]之前的元素所占空间形成的偏移量,概念上表示为a+(i×n+j)*sizeof(int),在程序中需要表示为(&a[0][0]+i×n+j)。
                      通过指针访问字符串常量
                      可将指针设置为指向字符串常量(存储在只读存储区域),通过指针读取字符串或其中的字符。例如,
                      
                      不允许在程序运行过程中修改字符串常量。例如,下面代码试图通过修改字符串的第2个字符将“hello”改为“hallo”,程序运行时该操作会导致异常,原因是str指向的是字符串常量“hello”,该字符串在运行时不能被修改。
                      
                      如果用const进行修饰,这个错误在编译阶段就能检查出来,修改如下:
                      
                      指针数组
                      如果数组的元素类型是指针类型,则称之为指针数组。下面的ptrarr是一维数组,数组元素是指向整型变量的指针。
                      
                      若需要动态生成二维整型数组,则传统的处理方式是先设置一个指针数组arr2,然后将其每个元素的值(指针)初始化为动态分配的“行”。
                      
                      指针运算
                      在C程序中,对指针变量加一个整数或减一个整数的含义与指针指向的对象有关,也就是与指针所指向的变量所占用存储空间的大小有关。例如:
                      
                      常量指针与指针常量
                      常量指针是指针变量指向的对象是常量,即指针变量可以修改,但是不能通过指针变量来修改其指向的对象。例如,
                      
                      指针常量是指针本身是个常量,不能再指向其他对象。
                      在定义指针时,如果在指针变量前加一个const修饰符,就定义了一个指针常量,即指针值是不能修改的。
                      
                      指针常量定义时被初始化为指向整型变量d。p本身不能修改(即p不能再指向其他对象),但它所指向变量的内容却可以修改,例如,*p=5(实际上是将d的值改为5)。
                      区分常量指针和指针常量的关键是“*”的位置,如果const在“*”的左边,则为常量指针,如果const在“*”的右边则为指针常量。如果将“*”读作“指针”,将const读作“常量”,内容正好符合。对于定义“int const *p;”p是常量指针,而定义“int* const p;”p是指针常量。
               指针与函数
               指针可以作为函数的参数或返回值。
                      指针作为函数参数
                      函数调用时,用指针作为函数的参数可以借助指针来改变调用函数中实参变量的值。以下面的swap函数为例进行说明,该函数的功能是交换两个整型变量的值。
                      
                      若有函数调用swap(&x,&y),则swap函数执行后两个实参x和y的值被交换。函数中参与运算的值不是pa、pb本身,而是它们所指向的变量,也就是实参x、y(*pa与x、*pb与y所表示的对象相同)。在调用函数中,是把实参的地址传送给形参,即传送&x和&y,在swap函数中指针pa和pb并没有被修改。
                      如果在被调用函数中修改了指针参数的值,则不能实现对实参变量的修改。例如,下面函数get_str中的错误是将指针p指向的目标修改了,从而在main中调用get_str后,ptr的值仍然是NULL。
                      
                      将上面的函数定义和调用作如下修改,就可以修改实参ptr的值,使其指向函数中所申请的字符串存储空间。
                      
                      函数调用为:get_str(&ptr);
                      用const修饰函数参数,可以避免在被调用函数中出现不当的修改。例如:
                      
                      其中,from是输入参数,to是输出参数,如果在函数strcpy内通过from来修改其指向的字符(如*from='a'),编译时将报错。
                      若需要使指针参数在函数内不能修改为指向其他对象,则可如下修饰指针参数。
                      
                      指针作为函数返回值
                      函数的返回值也可以是一个指针。返回指针值的函数的一般定义形式是:
                      
                      例如,如下进行函数定义和调用,可以降低函数参数的复杂性。
                      
                      函数调用为:ptr=get_str();
                      注意:不能将具有局部作用域的变量的地址作为函数的返回值。这是因为局部变量的内存空间在函数返回后即被释放,而该变量也不再有效。
                      例如,下面函数被调用后,变量a的生存期结束,其存储空间(地址)不再有效。
                      
                      函数指针
                      在C程序中,可以将函数地址保存在函数指针变量中,然后用该指针间接调用函数。例如:
                      
                      该语句定义了一个名称为Compare的函数指针变量,用于保存任何有两个常量字符指针形参、返回整型值的函数的地址(函数的地址通常用函数名表示)。例如,Compare可以指向字符串运算函数库中的函数strcmp。
                      
                      函数指针也可以在定义时初始化:
                      
                      将函数地址赋给函数指针时,其参数和类型必须匹配。
                      若有函数定义int strcmp(const char*,const char*);则strcmp能被直接调用,也能通过Compare被间接调用。下面三个函数调用是等价的:
                      
               指针与链表
               指针是C语言的特色和精华所在,链表是指针的重要应用之一,创建、查找、插入和删除结点是链表上的基本运算,需熟练掌握这些运算的实现过程,其关键点是指针变量的初始化和在链表结点间的移动处理。
               以元素值为整数的单链表为例,需要先定义链表中结点的类型,下面将其命名为Node,而LinkList则是指向Node类型变量的指针类型名。
               
               当p指向Node类型的结点时,涉及两个指针变量:p和p->next,p是指向结点的指针,p->next是结点中的指针域,如下图(a)所示;运算“p=p->next;”之后,p指向下一个结点;如下图(b)所示;运算“p->next=p;”之后,结点的指针域指向结点自己,如下图(c)所示。
               
               指向结点的指针运算示例
   题号导航      2019年上半年 信息处理技术员 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第25题    在手机中做本题