计算机基础名词解释

更新时间:2024-04-13 10:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机基础名词解释

ENIAC——电子数字积分计算机 CAI——计算机辅助教学 CAD——计算机辅助设计 CAM——计算机辅助制造 CAT——计算机辅助测试

ASCII码——美国标准信息交换代码,基本集中包括128个字符与控制符

计算机病毒——具有破坏性作用的特制程序

黑客——非法入侵他人系统并进行肆意破坏的人 硬件——构成计算机的各种物理设备 软件——计算机中使用的各种各样的程序及其说明文档(程序和文档) 计算机系统——硬件系统和软件系统

CPU——中央处理器(微处理器),由运算器、控制器和少量寄存器组成 MMX——多媒体指令集

CPU的作用——取指令、解释指令和执行指令

CPU的指标——字长(指CPU中数据总线的宽度,即一次可并行传递二进制数据的位数)、主频(指CPU时钟频率)、指令处理能力(即每秒处理百万条指令数,以MIPS表示) ROM——只读存储器(PROM、EPROM、EEPROM)Read Only Memory只读存储器其主要特性为只能读出不能写入数据,储存的数据不会因电源中断而消失(属于永久性储存)。一般用来储存系统程序,如个人电系统的BIOS(Basic Input/Output System)。 RAM——随机存储器(DRAM、SRAM、SDRAM)

RAM (random access memory),随机存取内存其主要特性为可随时读出或写入数据,但电源一中断则所储存之数据即消失,主要用来暂存程序与数据。而RAM又可分成动态内存(Dynamic RAM, DRAM)与静态内存(Static RAM,SRAM)两种。

RAM刷新——重写数据或充电

CACHE——高速缓冲存储器,介于CPU与内存之间,访问速度最快。为解决CPU与主存储器间速度差而在内存储器和CPU之间增加的一种存取速度远高于普通内存的特殊存储器 存取时间——又称存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。 存储周期——连续启动两次读操作所需间隔的最小时间。通常存储周期大于存取时间,其单位为NS(纳秒).

闪速存储器——在CMOS单晶体管EPROM存储元基础上制造的,实现了电擦除可编程能力 虚拟内存——用硬盘模拟主存从而扩大主存容量

CISC——复杂指令系统计算机 RISC——精简指令系统计算机

指令周期——取出并执行一条指令的时间

接口——CPU与主要外围设备之间通过总线进行连接的逻辑部件,接口起动态连接部件之间的“转换器”作用

中断——指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。

堆栈——是一种后进先出的数据结构,计算机系统处理中断时,使用这个数据结构保护现场。 BIOS——基本输入输出系统 CMOS——是一种半导体材料,系统BIOS设置存储器 CD-ROM——只读光驱或光盘 OS——操作系统 DOS——磁盘操作系统(16位字符界面操作系统) PC——个人计算机 MPC——多媒体计算机

总线BUS——公用计算机信息通道,由一组传输导线组成。可分为数据总线、控制总线和地址总线。

ALU——算术/逻辑单元(Arithmetic/Logic Unit,ALU)负责数据信息的加工与处理,包括算

术运算 (加、减、乘、除等),逻辑运算(AND、OR、NOT);并将运算的结果存回记忆单元 通用串行总线 (USB)——支持即插即用安装的外部总线。使用 USB 时,不需要关闭或重新启计算机就能连接和断开设备。使用一个 USB 端口最多可以连接 127 个外围设备,包括扬声器、电话、CD-ROM 驱动器、游戏杆、磁带驱动器、键盘、扫描仪和照相机。USB 端口通常在计算机背面的串行端口或并行端口附近。

AGP——图形加速卡或加速图形端口 PCI——局部总线接口

磁道——磁盘表面的一系列同心圆 扇区——相邻磁道之间等分弧段所围扇形区 道密度(TPI)——沿磁道半径方向上每英寸里包含的磁道数

位密度(BPI)——沿磁道方向上每英寸长中包含的二进制位位数 字长——CPU一次读/写二进制数数据的位数

MIPS——百万条指令/秒,运算速度单位 程序——若干指令或命令的集合。 指令——一组二进制代码,由操作码和地址码组成。

指令系统——即是基本指令集,它是计算机存储程序的标志

机器语言——二进制代码组成的语言,是计算机硬件唯一能直接识别和执行的语言。 低级语言——机器语言和汇编语言

高级语言程序的执行方式——解释和编译

操作系统(OS)——是用于统一管理计算机硬件、软件资源,控制计算机工作流程和方便用户使用计算机的一系列程序总和。

文件——带有名字的一组相关信息的集合。可以是程序、文档、声音、动画等。 目录或文件夹——存放文件名、文件属性等信息的存储空间,最高层次目录为根目录 路径——指明文件或子目录所在位置的一系列目录名。

路径类型——绝对路径和相对路径 文件夹结构——树型层次结构 媒体——指信息的载体,即计算机输入输出所采用的信息形式

多媒体技术——指对多媒体信息的采集、存储、处理和应用的有机总和。它包括软件技术和硬件技术两大类

多媒体的关键技术——包括压缩/解压缩技术、专用硬件芯片技术和多媒体软件技术

操作系统的功能——包括进程(处理器或CPU)管理、存储管理、设备管理、文件管理、作业管理

操作系统的主要特点——并发性和共享性

进程——进程是程序(或一部分程序)、相关的数据处理在处理机上的一次运行,是操作系统进行资源分配和调度的一个基本单位,它具有运动特性、并行特性、独立特性、异步特性、结构特性等五大特性。进程由操作系统依据程序创建而产生,因调度而执行、因运行条件不满足而暂时停止,因任务完成而撤销。

进程的三种基本状态——运行态(是进程正在占用处理机时所处的状态),在单CPU系统,最多只能有一个进程处于运行状态);就绪态(如果一个进程经过等待以后已经具备了运行的条件或者一个进程在运行过程中用完了自己的时间片,都要进入就绪状态,进程调度程序根据系统运行情况,按照调度策略,可以使某个进程从就绪状态进入到运行状态);等待态(进程由于某种原因不具备运行条件时,就进入到等待状态。当某个事件发生使得该进程的运行条件具备时,进程就转入就绪状态)

文件的逻辑结构——流式文件和记录式文件 流式文件——文件中的数据是一串字符流,没有结构 记录文件——由若干逻辑记录组成,每条记录又由相同的数据项组成,数据项的长度可以是确定的,也可以是不确定的。

目录结构——树型结构,操作系统采用目录的树型结构管理文件

Windows——视窗操作系统或图形界面操作系统(32位图形界面操作系统)

注册表——就是一个庞大的数据库,其中容纳了1)应用程序和计算机系统的全部配置信息;2)WINDOWS系统和应用程序的初始化信息;3)应用程序和文档文件的关联关系;4)硬件设备的说明,状态和属性以及各种状态信息和数据 桌面——安装Windows的计算机,启动成功后的整个计算机屏幕

窗口——桌面上矩形区,它是Windows运行程序的标志。窗口有两类:程序窗口和文档窗口,文档窗口只能包含于程序窗口内。

活动窗口或当前窗口——正在使用或操作的窗口,Windows可以打开多个窗口,但只有一个活动窗口(当前窗口或前台窗口)

对话框——对话框也一个矩形区,但它是人、机交互界面,对话框中没有菜单栏和工具栏,对话框不能改变大小。 向导——即是一系列的对话框

菜单——是操作命令的集合。Windows中有四类菜单:开始菜单、窗口菜单、快捷菜单和控制菜单。

工具栏——是部份菜单命令的图形按钮形式。

Windows的系统图标——我的电脑、回收站和网上邻居,它们都不允许删除,回收站还不准改名。

DOS文件取名规则——8.3格式(基本名.扩展名)

Windows中长文件名的字符数——最长255个字符

软键盘——又称动态键盘,是windows提供的鼠标输入字符的窗口键盘,共有13种类型 回收站——硬盘中的一块存储区,专用于暂存硬盘上删除的文件、文件夹等对象。 剪贴板——内存中的一块存储区,用于实现应用程序之间的数据共享,Windows只有一个剪贴板,Office2000有12个剪贴板

关联——文件类型与应用程序之间的捆绑。

复制(CTRL+C)——把选定对象送入剪贴板,并保留原对象(复制可以粘贴多次)。

剪切(CTRL+X)——把选定对象送入剪贴板,并经粘贴后删除原对象,因此WINDOWS中的剪切只能粘贴一次。

粘贴(CTRL+V)——从剪贴板中将剪切或复制对象写入指定位置 PNP——硬件即插即用

WORD模板——含有公共内容、排版样式的特殊文件(.DOT) WORD文档——扩展名为.DOC的文件。

文本框——存放文本或图形的容器,它可实现文本和图形的不同叠放、环绕和排版方式。 样式——就是一组排版命令的集合,应用样式可以实现排版功能 WORD中的视图方式——普通、大纲、页面、WEB版式

WORD中能查找或替换的对象——文本、带格式的文本和特殊字符(段尾符、分节符、手工分行符??)

分节符——是改变WORD文档排版布局的特殊符号,在WORD文档中分节后就可以进行不同之间的不同排版。节是文档首、分节符、文档尾或分节符之间的文本。 I/O——输入/输出设备 UPS——不间断电源 P4 CPU 3.0——奔腾四代处理器 FAT——文件分配表 1.冯?诺依曼原理的基本思想是什么?

答:主要有三点:

(1)计算机硬件组成应为五大部分:控制器、运算器、存储器、输入和输出;

(2)存储程序,让程序来指挥计算机自动完成各种工作; (3)计算机运算基础采用二进制

2.简述移动与复制的区别,分别描述如何对选中的文件或文件夹进行移动或复制操作? (每

种操作至少两种以上方法)

答:“复制”命令用于把选中的文件或文件夹复制到剪切板中去。原文件或文件夹保持不变。 “剪切”命令用于把选中的文件或文件夹移动到剪贴板内,原文件或文件夹不再保留。然后都可以用粘帖命令把剪贴板内的内容粘到指定的位置。 一、如何移动选取内容,有三种方法,操作步骤如下:

(1)选取需移动的内容后,下拉“编辑”菜单,选择“剪切”命令,则所选内容在原处消失。 将插入点定位到需要移动的地方。

下拉“编辑”菜单,选择“粘贴”命令,则所选内容就移动到插入点位置。 (2)用“常用”工具栏的按钮也可实现移动,操作步骤如下: 选取需移动的内容后,单击“剪切”按钮,则所选内容在原处消失。 将插入点定位到需要移动的地方。

单击“粘贴”按钮,则所选内容移动到插入点位置。

(3)用鼠标拖动的方法也可以实现选取内容的移动。操作步骤如下: 选取要移动的内容。

按住鼠标左键,拖动选取的内容到需要移动的地方,然后释放鼠标左键,即可实现选取内容的移动。不同磁盘只要按下Shift再移动。

二、如何复制选取内容,有三种方法,操作步骤如下:

(1)选取需复制的内容后,下拉“编辑”菜单,选择“复制”命令,则所选内容在原处不动。 将插入点定位到需要复制的地方。

下拉“编辑”菜单,选择“粘贴”命令,则所选内容复制到插入点位置。 (2)用“常用”工具栏的按钮也可实现复制,操作步骤如下: 选取需复制的内容后,单击“复制”按钮,则所选内容在原处不动。 将插入点定位到需要复制的地方。

单击“粘贴”按钮,则所选内容复制到插入点位置。

(3)用鼠标拖动的方法也可以实现选取内容的复制。操作步骤如下:

选取要复制的内容。

按住Ctrl键,按住鼠标左键。拖动选取的内容到需要复制的地方,然后释放鼠标左键,即可实现选取内容的复制。不同磁盘直接拖动是复制。

3.简述微软的办公自动化Office 2003中的Word、Excel、PowerPoint三个组件的主要功能;并简单叙述Word文档中两种“插入表格”的操作过程。

答:一般说来,Word主要用来进行文本的输入、编辑、排版、打印等工作。如果进行书信、公文、报告、论文、商业合同、写作排版等一些文字集中的工作,可以使用Word应用程序;Excel主要用来进行有繁重计算任务的预算、财务、数据汇总等工作。如果要进行财务、预算、统计、各种清单、数据跟踪、数据汇总、函数运算等计算量大的工作,可以使用Excel应用程序; PowerPoint主要用来制作演示文稿和幻灯片及投影片等。如果要制作幻灯片、投影片、演示文稿,甚至是贺卡、流程图、组织结构图等,可以使用PowerPoint应用程序。 在文档中插入表格的常用方法有三种:

(1)用菜单命令插入一个表格:选择表格插入位置,打开“表格”菜单→选择“插入表格”→定义表中所需的列数、行数及列宽→确定。

(2)使用常用工具栏的表格按钮在文档中插入表格:选择表格插入位置,按工具栏中表格按钮在弹出的空白表中拖出一个所需行、列数的表格,释放鼠标即可。

(3)使用绘制工具来绘制表格:移动光标到文档所在位置 ,利用“表格和边框”工具栏中的“画笔”和“橡皮”画出所需表格。

4. 什么是计算机网络?网络可分为几类?为什么要组建计算机网络?全球最大的计算机网

络及其所提供的服务是什么?谈谈自己使用计算机网络的体会(结合现实,分别从利、弊两方面来谈谈网络对大学生的影响)。

答:计算机网络是计算机技术与通讯技术紧密结合的产物,它利用通信线路把位于不同地点上的多个计算系统相互连接起来。在网络中,通过功能完善的网络软件的管理,可以共享某些硬件、软件和数据资源。网络通常按覆盖面积分为局域网、城域网和广域网三类,多数计算机网络是混合型网络。 ⑴局域网(LAN):在一个很小的地理范围内,比如一间房屋、一座建筑等,由两台以上的计算机组成的网络。局域网一般是由一个单位或部门架设的专用网络,它的传输速率为10-100Mbps。

⑵广域网(WAN):在较大的地理范围内,比如几个城市之间,由许多大型主机系统相连接而组成的网络。比较典型的形式是全国性的系统网,如国内的专业银行网。其通信线路为租用或铺设专线,速率一般为64Kbps。值得说明的是,一些大的系统往往在总部和分支机构之间架设WAN,而各分支机构内部又采用LAN;作为其整个网络,就称为企业内部网,即Intranet。

⑶网际网:在广大的地理范围内,各种形式的WAN、LAN互相连接,实现资源共享和数据通讯,即组成网际网网络。目前大家熟悉的Internet即是典型的例子。

组建计算机网络的目的是:使位于不同地点的多个计算机系统之间共享某些硬件、软件和数据资源,实现综合信息服务,均衡设备负荷或任务分配。

全球最大的计算机网络是Internet,其主功能:⑴信息查询。包括信息的浏览和检索;而信息的门类几乎应有尽有。⑵信息发布。可以通过Web.、E-mail以及BBS等等多种方式,因其低成本、交互性等独有特点被称为“第四媒体”。⑶通讯。主要方式是电子邮件,也包括IP电话等;并对传统邮政、电信形成巨大的冲击。⑷文件传输。可以是下载、也可以是上传;主要是机机之间的电子文档的交流。⑸电子商务。有点违背Internet的初衷,但其发展势头极猛。⑹还有远程登录、自由讨论等基本功能,还有电子报刊、电子政府等等分支功能。而更多的实用型的功能尚有很大的潜力,从而展示出广阔的前景。

5.什么是计算机病毒?计算机病毒有什么特点?计算机病毒有哪些传播途径?如何预防计算机病毒?

答:定义:计算机病毒是一种人为制造的隐藏在计算机系统内部的能够自我复制进行传播的破坏计算机功能或者破坏数据,影响计算机使用的程序或指令代码。

特点:计算机病毒的特点有传染性、破坏性、隐蔽性、潜伏性、触发性和非法性。 传播途径:计算机病毒传播途径有移动存储设备包括软磁盘、优盘、移动硬盘等和计算机网络。

预防:计算机病毒防治应采用“主动预防为主,被动处理结合”的方法。 不使用来历不明和无法确定是否带有病毒的磁盘和优盘等。 慎用公用软件和共享软件。 不做非法复制。

尽量做到专机专用,专盘专用。

软盘应写保护,系统盘中不要装入用户程序或数据。 定期更新病毒库,及时升级杀毒软件。 对来历不明的邮件要进行处理后方可阅读。 经常对系统进行查毒杀毒。

1、 简述计算机的发展情况。

答:1946年2月,美国的宾夕法尼亚大学研制成功了世界上第一台计算机——ENIAC至今,按计算机所采用的电子元件的变化来划分计算机的发展阶段,大致辞可分为四代:

第一代为电子管计算机(1946——1958)计算机所采用的主要电子元件是电子管。 第二代为晶体管计算机(1959——1964)计算机所采用的主要电子元件是晶体管,这一时期了出现了管理程序及某些高级语言。

第三代为集成电路计算机(1965——1970)计算机所采用的主要电子元件是中小规模集成电路,出现操作系统,出现了分时操作系统和实时操作系统等。

第四代为大规模、超大规模集成电路计算机(1971至今)计算机所采用的主要电子元件是大规模、超大规模集成电路,出现了微型计算机及巨型计算机等多种类型的计算机,并向微型化、巨型化、智能化和多媒体化方向发展。 2、 计算机的特点包括哪些?

答:计算机的特点有:(1)运算速度快;(2)精确度高;(3)具有“记忆”功能和逻辑判断功能;(4)具有自动运行能力。 3、 计算机性能指标有哪些?

答:计算机的性能指标有:字长、主频、运行速度和内存储容量。 4、 简述计算机的应用领域。

答:计算机的应用领域有:科学计算、数据处理、过程控制、计算机辅助系统、人工智能和网络应用。

5、 简述微型计算机系统的组成。

答:一个完整的计算机系统由硬件系统和软件系统两大部分组成。计算机硬件主要由五大部分组成:运算器、控制器、存储器、输入设备和输出设备;硬件提供计算机系统的物质介质。计算机软件包括系统软件和应用软件两大类。软件主要是指让计算机完成各种任务所需的程序。

6、 什么是计算机病毒?计算机病毒有什么特点?

答:计算机病毒是一种人为制造的隐藏在计算机系统内部的能够自我复制进行传播的破坏计算机功能或者破坏数据,影响计算机使用的程序或指令代码。计算机病毒的特点有传染性、破坏性、隐蔽性、潜伏性、触发性和非法性。

7、 计算机病毒有哪些传播途径?如何预防计算机病毒?

计算机病毒传播途径有移动存储设备包括软磁盘、优盘、移动硬盘等和计算机网络。 计算机病毒防治应采用“主动预防为主,被动处理结合”的方法。 (1) 不使用来历不明和无法确定是否带有病毒的磁盘和优盘等。 (2) 慎用公用软件和共享软件。 (3) 不做非法复制。

(4) 尽量做到专机专用,专盘专用。

(5) 软盘应写保护,系统盘中不要装入用户程序或数据。 (6) 定期更新病毒库,及时升级杀毒软件。 (7) 对来历不明的邮件要进行处理后方可阅读。 (8) 经常对系统进行查毒杀毒。 8、 简述计算机的设计原理。

答:计算机的设计原理是根据美籍匈牙利科学家冯?诺依曼提出了“程序存储、程序控制”的设计思想,同时指出计算机的构成包括以下三个方面:

(1)由运算器、存储器、控制器、输入、输出设备五大基本部件组成计算机系统,并规定了五大部件的基本功能。

(2)计算机内部应采用二进制表示数据和指令。 (3)程序存储、程序控制。

计算机硬件

1、 计算机硬件由哪些组成?

答:计算机硬件由CPU、内存储器、外存储器,外存储器包括硬盘、软盘等,输入设备,包括键盘鼠标等,输出设备包括显示器等。 2、 显示器的主要指标有哪些?

答:显示器的主要指标有分辨率、点间距、灰度级、对比度、帧频、行频和扫描方式。 3、 简述内存储器和外存储器的区别(从作用和特点两方面入手)。

答:内存储器:计算机存储常用或当前正在使用的数据和程序,所有执行的程序和数据须先调入内存可执行,容量小,存取速度快,价格贵。

外存储器:存放暂进不使用的程序和数据,容量大,存取速度慢,价格便宜。 4、 简述RAM和ROM的区别。

答:RAM断电后的内容全部丢失,既可以读又可以写,速度比Cache慢,而RAM可分为表态RAM(SRAM)和动态RAM(DRAM)两种。

ROM计算机运行时其内容只能读出而不能写入。数据不易丢失,即使计算机断电后ROM存储单元的内容依然保存。只读存储器一般存储计算机系统中固定的程序和数据,如引导程序、监控程序等。

5、 为什么要增加Cache,Cache有什么特点?

答:由于CPU工作的速度比RAM读写速度快,CPU读写RAM时需要花费时间等待RAM进行读写,造成CPU工作速度下降。为了提高CPU读写程序和数据的速度,在RAM和CPU之间增加了高速缓存部件。

Cache的特点是:读写速度快、存储容量小、价格高、断电后内容丢失。

网络知识

1、 计算机的拓扑结构有哪些?各有什么特点?

网络结构指网络中使用的拓扑结构,常用的有星型、环型、总线型等。

星型拓扑是由中央节点和通过点到点的链路接到中央节点的各节点组成,特点是便于节点的增删,第个连接点只接入一个设备,当连接点出现故障时不会影响整个网络,故障易于检测和隔离,可很方便地将有故障的站点从系统中删除,数据传输不会发生冲突。,但过于依赖中内节点。当中内节点发生故障时,整个网络不能工作。

环型网络中各工作站通过中继器连接到一个闭合的环路上,主要特点是每个节点地位平等,容易实现高速及长距离传送,但是通信线路闭合,系统不易扩充,可靠性差,环路一旦断接,将导致整个网络不能工作。

总线型拓扑结构采用单根传输线作为传输介质,所有站点都通过相应的硬件接口直接接到传输介质上。其特点是电缆长度短,易于布线,可靠性高,易于扩充,但故障诊断和隔离困难,总线长试和节点数有一定限制。

2、 什么叫计算机网络?计算机网络的功能主要有哪些?

答:计算机网络是指分布在不同地理位置上的具有独立功能的多个计算机系统,通过通信设备和通信线路相互连接起来,在网络软件的管理下实现数据传输和资源共享的系统。

计算机网络系统具有丰富的功能,其中最重要的是资源共享和快速通信。其他还有提高系统可靠性、实现分布式处理、集中控制、管理、分配网络中的各资源。

3、 网络按传输距离来分可以分为哪三种?

答:按网络覆盖的地理范围进行分类可把网络分为三类:局域网(LAN)、广域网(WAN)、城域网(MAN)。

4、 常见的接入Internet的方式有几种?

5、 简述IP地址是怎样分类的?并说出各类地址的网络数量和适用范围? 答:IP地址5种类型:A类、B类、C类、D类、E类。

A类第一字节范围:1——126,允许有126个网段,每个网络允许有16777216台主机,A类地址通常分配给拥有大量主机的大规模网络使用。

B类第一字节范围:128——191,允许有16384个网段,每个网络允许有65534台主机,适用于结点比较多的网络。

C类第一字节范围:192——233,允许有2097152个网段,每个网络允许有254台主机,适用于结点比较少的网络。

D类第一字节范围:224——239,E类第一字节范围:240——254,这两类用于特殊用途。

操作系统

1、 操作系统的功能有哪些?

答:操作系统是系统软件最重要的组成部分,是对硬件机器的第一级扩充,其他软件都在操作系统统一管理和支持下运行。操作系统的功能有处理器管理、存储管理、设备管理、文件管理和作业管理。

2、 操作系统的分类如何?列举常用操作名称。

答:按计算机机型分,可分为微型计算机操作系统、小型计算机操作系统和大型计算机操作系统;按用户数目,可分为单用户操作系统和多用户操作系统;按处理方式,可分为批处理系统、分时操作系统、实时操作系统、网络操作系统和多媒体操作系统;按处理语言,可分为英文操作系统、中文操作系统、日文操作系统等;按用户操作界面,可分为字符型操作系统和图形操作系统。

1.建立通讯录,记录每一个学生的编号、姓名、电话号码 (1)STYPE (2) FILE (3) fp

2.当s中字符串为“ABCDE”时,t中字符串为“ABCDEEDCBA” (1)i<=s1(数字1)改为i

*c=(a/10)*1000+(b/10)*100+(a)*10+(b); <二>

1.输入若干文本,用-1作为字符串输入的结束标志 (1) *fw (2) str (3) str 2.输出变量s中的奇数位。

定义语句中long t改为long *t sl(字母)=sl*100;改为sl=sl*10;

3.与第一套题基本一致 <三> 1.写出1~10以及它们的平方根

(1)fp (2)fclose(fp) (3)fname 2.将n个无序整数从小到大排列 (1)i

同上 <四>

1.把指定内容复制到指定文件中,复制成功返回值为1,失败返回值为0 (1)“r” (2)fs (3)ft 2.取变量每一位上为偶数的数依次取出

if(d%2=0)改为if(d%==0) s\\=10;改为s/=10;

3.同上 <五>

1.把给定程序中已存在的链表中的各结点按结点数据域中的数据递增有序链接 (1)x (2)p (3)s

2.计算正整数num的各位上的数字之积 (1)long k;改为long k=1; (2)num\\=10;改为num/=10;

3.计算n门课程的平均分,计算结果作为函数值返回。 int i;

float ave=0.0;

for(i=0; i

1.给定程序中以建立一个带有头结点的单向链表,在main函数中将多次调用fun函数,每次用一次fun函数,输出链表尾部结点中的数据,并释放该结点,是链表缩短。 (1)next (2)t->data (3)t

2.是字符串逆序输出,但不改变字符串中的内容 (1)char a改为char *a

(2)printf(\改为printf(\

3.比较两个字符串的长度,函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

int i;

char *p=s, *q=t;

for(i=0;*p && *q; i++) { p++; q++;

(1) (2)

1.

(1) (2)

(1) (2)

(1) (2)

}

if(*p == 0 && *q == 0) return s ; if(*p) return s ; else return t ; <七>

1.给定的程序中已经建立了一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数的功能是;删除链表中数据与之相同的节点,使之只保留一个。 (1) q (2) next (3) next

2.用选择法对数组中的n个元素按从小到大的顺序排列 (1)p = j改为p = j; (2) p = j改为p = i;

3.求出1到m之间能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 int i ; *n=0 ;

for(i=7 ; i<=m; i++)

if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; <八>

1.在带有头结点的但项链表中,查找数据域中值为ch的节点。找到后通过函数值返回该节点在链表中所处顺序号;若不存在值为ch的结点,函数返回0值。

(1)0 (2)n (3)head,ch 2.删除p所知字符串中的所有空白字符。 (1)For改为for

(2)c[t]=\改为c[t]='\\0';

3.将ss所指的字符串中所有下标为奇数位置上的字母转换为大写。 int i ;

for(i = 1 ; i < strlen(*ss) ; i+=2) {

if(ss[i] >= 'a' && ss[i] <= 'z') ss[i] -= 32 ; } <九>

1.统计出带有头结点的但项链表中节点的个数,存放在形参n所指的存储单元中。 (1)*n (2)next (3)head

2.求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

Null改为NULL

if ( r == p )改为if ( *r == *p )

3. 将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除;串中剩余字符所形成的一个新串放

在t所指的数组中。 int i, j = 0 ;

for(i = 0 ; i < strlen(s) ; i += 2) if(s[i] % 2 == 0) t[j++] = s[i] ; t[j] = 0 ; <十>

1.计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。 (1)date (2)next (3)head

2.将s所指的字符串中出现的与t1所指的字符串相同的子串全部替换为t2所指的字符串,所形成的新字符串放在w所指的数组中。此处要求t1和t2所指的字符串的长度相同。

r改为*r

*a = *r; a++; r++改为*a = *r; a++; r++;

3.将s所指的字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。 int i, j = 0 ;

for(i = 1 ; i < strlen(s); i+=2) t[j++] = s[i] ; t[j] = 0 ; <十一>

1.找出指定标号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数据中的标号为空串。 (1)STU (2)std[i].num (3)std[i]

2.从s所指的字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。 (1)r++; p++改为r++; p++; (2)if ( r == '\\0' )改为if ( *r == 0 )

3.将s所指字符串中ASCII值为偶数的字符删掉,串中剩余字符形成一个新串放在t所指的数组中。 int i, j = 0 ;

for(i = 0 ; i < strlen(s); i++) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; <十二>

1.找出指定出生年份的人员,将其数据放在形参k所指的数组中,有主函数输出,同时由函数值返回满足指定条件的人数。 (1)std[i].year (2)std[i] (3)n

2.读入一个整数k(2<=k<=10000),打印它的所有质因子(即所有为素数的因子)。 (1)IsPrime ( int n );改为IsPrime ( int n ) (2)if !( n%i )改为if (!( n%i ))

3.找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。已给出函数的首部,完成该函数。 int i, max = a[0].s, j = 0; for(i = 1 ; i < N ; i++) if(max < a[i].s) { j = i ;

max = a[i].s ; }

*s = a[j] ; <十三>

1.给定程序通过定义并赋值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。将该学生的各科成绩都乘以一个系数a。

(1)STU (2)score[i] (3)&std 2.求k!(k<13),所求阶乘的值作为函数值返回。 (1)if k > 0改为if (k > 0) (2)else if ( k=0 )改为else if ( k==0 )

3.定义一个二维数组,使数组左下三角元素中的值乘以n。 int i, j;

for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++)

a[i][j] *= n ; <十四>

1.将形参指针所指结构体数组中的三个元素按num成员进行升序排列。 (1)*std (2)PERSON (3)std

2.将m(1<=m<=10)个字符串连接起来,组成一个新串,放入pt所指储区中。 (1)Int k, q, i ;改为int k, q, i ;

(2)pt[i] = str[k,i] ;改为pt[i] = str[k][i] ;

3. 定义一个二维数组N*N,使数组左下三角元素中的值全部置成0。 int i, j;

for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] = 0 ; <十五>

1.将形参std所指结构体数组中年龄最大者的数据作为函数值返回,并在main函数中输出。 (1)*std (2)std[i].age (3)max.name 2.实现两个整数的交换

(1)void fun ( int a, b )改为void fun ( int *a, int *b ) (2)t = b; b = a ; a = t;改为t = *b; *b = *a ; *a = t; 3.编一个函数void fun(int tt【m】【n】,int pp【n】),tt指向一个m行n列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 int i,j, min, k ;

for(i = 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) {

min=tt[j][i] ; k = j ; }

pp[i] = tt[k][i] ; } <十六>

1.程序通过定义并赋初值的方式,利用结构体变量存储一名学生的信息。 (1)tt (2)tt.score[i] (3)std

2.求出数组中最大数和次最大数,并把最大数和a【0】中的数对调、次最大数和a【1】中的数对调。 (1)m=0;改为m=i; (2)k=m改为m=k

3.编写一个函数unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的n-1位的数作为函数值返回。 if(w>10000) w %= 10000 ; else if(w>1000) w %= 1000 ; else if(w>100) w %= 100 ; else if(w>10) w %=10 ; return w ; <十七>

1.对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长

2.判断ch中的字符是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。 (1)str改为*str (2)==改为!= (3)'0'改为0

3.函数的功能是把s所指字符串中的内容逆置。 char b[N] ; int i = 0, j ;

memset(b, 0, N) ;

for(j = strlen(s) - 1 ; j >= 0 ; j--) b[i++] = s[j] ; strcpy(s, b) ; <十八>

1.求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

(1)k (2)len (3)ss[i][j] 2.计算整数n的阶乘。 (1)--n改为n--

(2)return _____;改为return result;

3.从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。 char *p = s ; int i = 0 ;

while(*p) {

if(*p != c) s[i++] = *p ; p++ ; }

s[i] = 0 ; }

<十九>

1.求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。Ss所指的字符串数组中共有M个字符串,且串长

2.将p所指字符串中每个单词的最后一个字母改成大写。 (1)p改为*p

(2)* (p-1) = toupper( *( p - 1 ) )改为* (p-1) = toupper( *( p - 1 ) );

3.对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 char ch ; int i, j ;

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

for(j = i + 1 ; j < 6 ; j++) {

if(*(s + i) < *(s + j)) { ch = *(s + j) ; *(s + j) = *(s +i) ; *(s + i) = ch ; } } <二十>

1.求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。 (1)[N] (2)len (3)*n=len; 2.计算如下公式:

(1)1.0/k改为1.0/i

(2)________改为return t;

3.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 int cnt = 0 ;

char *p = str, *q ; while(*p) {

q = strstr(p, substr) ; if(q == NULL) break; p = q + strlen(substr) ; cnt++ ; }

return cnt ; <二一>

1. 求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。 (1)m (2)< (3)k

2.将tt所知字符串中的小写字母都改成对应的大写字母,其他字符不变。 (1)||改为&& (2)+=改为-=

3.将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 int j, tag = 0 ;

for(j = 2 ; j < m && !tag ; j++) if(m % j == 0) tag = 1 ; return tag ; }

void fun( int m, int *k, int xx[] ) {

int i, cnt = 0 ;

for(i = 2 ; i < m ; i++) if(isP(i)) xx[cnt++] = i ; *k = cnt ; <二二>

1.将s所指的字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符和非数字字符原有的先后顺序。 (1)j++ (2)s[i]=t1[i] (3)j

2.用冒泡法对6个字符串按由小到大的顺序进行排序。

(1)两个“,”均改为“;” (2)pstr + j改为*(pstr + j)

3.求出ss所知字符串中指定字符的个数,并返回此值。

int cnt = 0 ; char *p = ss ;

while(*p) {

if(*p == c) cnt++ ; p++ ; }

return cnt ; <二三>

1.在形参s所指字符串中的每个数字字符之后插入一个*号。 (1)&& (2)0 (3)s[j] 2.计算如下公式

(1)i < m改为i <= m

(2)1 / (i * i)改为1.0 / (i * i) 3.实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。 int c[3][3] ; int i, j ;

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

c[i][j] = a[j][i] ; /* 矩阵的转置 */ b[i][j] = a[i][j] + c[i][j] ;

} <二四>

1.统计形参s所知字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后再主函数中输出。 (1)s[i] (2)'9' (3)*t=n 2.通过某种方式实现两个变量值得交换。

(1)两个*x均改为x (2)y改为t

3.求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将他们放在a所指的数组中,通过n返回这些数的个数。

int i ; *n = 0 ;

for(i = 7 ; i < 1000 ; i++)

1.

1.

1.

1.

if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n) ++] = i ;; <二五>

1.把形参s所指字符串中下标为奇数的字辅右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动。

(1)1 (2)s[k] (3)c 2.求s=aa?aa-?-aaa-aa-a (1)t = 1改为t = 0 (2)%改为/

3.统计tt所指字符串中‘a’到‘z’26个小写字母个字出现的次数,并一次放在pp所指数组中。 char *p = tt ; int i ;

for(i = 0 ; i < 26 ; i++) pp[i] = 0 ; while(*p) {

if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ; p++ ; } <二六>

1.对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所知字符数组中,形成一新串。

(1)t=i (2)i (3)0

2.用下面公式求π的近似值,直到最后一项的绝对值小于指定的数为止。

(1)while(t >= num)改为while((fabs(t))>=num) (2)%改为/

3.删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符串存放在b所指的数组中,n中存放指定的下标。 strncpy(b, a, n) ; b[n] = 0 ;

strcat(b, a + n + 1) ; <二七>

在形参s所知字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不

做任何处理。

(1)0 (2)0 (3)c

2.从键盘上输入若干数放入数组中,用0结束输入并放在最后一个元素中。Fun函数的功能是:计算数组元素中值为正数的平均值。

(1)int改为double (2)\\改为/

3.根据以下公式计算s,计算结果作为函数值返回,n通过形参传入。

int i,j,t; float s=0;

for(i=1;i<=n;i++) { t=0;

for(j=1;j<=i;j++) t+=j; s=s+1./t; }

return s; <二八>

有N*N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0.

(1)i++ (2)m (3)m

2.计算并输出high以内最大的10个素数之和。High的值由主函数传给fun函数。 (1)(high >= 2)改为(2<=high) (2)break改为break;

3.利用一下所用的迭代方法求方程:cos(x)-x=0的一个实根。 float x0, x1=0.0; do {

x0=x1;

x1=cos(x0);

} while(fabs(x0-x1)>0.000001); return x1; <二九>

将N*N矩阵中元素的值按列向右移一个位置,右边被移出矩阵的元素绕回左边。

(1)N (2)N-1 (3)0

2.计算并输出下列级数的前N项之和SN,直到SN+1大于q为止,q的值通过形参传入。 (1)s=s+(n+1)/n;改为s=s+(n+1.)/n; (2)s改为t

3.求Fibonacci数列中大于t的最小的一个数,结果由函数返回。 int f0 = 0, f1 = 1, f ; do {

f = f0 + f1 ; f0 = f1 ; f1 = f ;

} while(f < t) ; return f ; <三十>

有N*N矩阵,将矩阵的外围元素顺时针旋转。

(1)0 (2)j-- (3)j

2.计算S=f(-n)+f(-n+1)+?+f(0)+f(1)+f(2)+?+f(n)的值。 (1)f( double x)改为double f( double x) (2)return s改为return s; 3.

在c语言中可以调用log(n)函数求ln(n)。 double s = 0.0 ; int i ;

1.

1.

1.

1.

1.

for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; s = sqrt(s) ; return s ; <三一>

有N*N矩阵,一主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,y右下三角元素置为0.

(1)[N] (2)t[i][j] (3)t[j][i]

2.计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。 (1)(m/n)改为((m)/(n)) (2)Return改为return

3.将字符串中的前导*全部删除,中间和尾部的*不删除。 int j=0;

char *p = a ;

while(*p == '*') p++ ; while(*p) { a[j++] = *p ; p++; }

a[j]=0 ; <三二>

将矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。

(1)t[][N] (2)i=0;i

2.利用折半查找算法查找整数m在数组中的位置。若找到返回其下标,反之返回-1. (1)void fun(int a[], int m ) 改为 fun(int a[], int m ) (2)If改为if

3.除了尾部的*外,将字符串中其他*全部删除。形参p已指向字符串中最后一个字母。 char *q=a; int j=0;

while(*q && q

if(*q != '*') a[j++] = *q ; q++ ; }

while(*p) a[j++]=*p++; a[j]=0; <三三>

计算矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。

(1)sum=0 (2)t[i][i] (3)1

32

2.用二分法求方程2x-4x+3x-6=0的一个根,并要求绝对误差不超过0.001. (1)int改为double (2)<改为>

3. 除了除了字符串前导和尾部的*外,将字符串中其他*全部删除。形参h已指向字符串中第一个字母。 int j=0; char *q=a;

while(*q && q < h) a[j++] = *q++ ; while(*h && *p && h < p) { if(*h != '*') a[j++] = *h ; h++; }

while(*p) a[j++] = *p++ ; a[j] = 0 ; <三四>

把形参a所指数组中的奇数安原顺序依次存放到a【】中,把偶数从数组中删除,奇数个数通过函数值返回。

(1)1 (2)j++ (3)j 2.求出两个非零正整数的最大公约数。 (1)b=a改为a=b (2)a改为b

3.删除字符串中所有*。 int j =0 ; char *p=a; while(*p) {

if(*p != '*') a[j++]=*p ; p++ ; }

a[j]=0; <三五>

把形参a所指数组中的偶数安原顺序依次存放到a【】中,把奇数从数组中删除,偶数个数通过函数值返回。

(1)a[i]%2 (2)a[j] (3)j 2.按以下递归公式求函数值。

(1)n改为int (2)=改为==

3.使字符串中尾部的*不得多于n个;若多余n个,则删除多余的*;若少于或等于n个,则什么也不做,字符串中间和前面的*不删除。 char *p=a ; int j=0;

while(*p) p++; p--; /* 字符串的长度 */ while(*p == '*') p--; /* 字符串右的'*' */ p++;

while(j

*p = 0 ; <三六>

1.把形参a所指数组中的最小值放在元素a【0】中,接着把形参a所指数组中的最大值放在a【1】元素中;再把a所指数组元素中的次小值放在a【2】中,把a所指数组元素中的次大值放在a【3】;其余以此类推 (1)a[i] (2)a[j] (3)a[j]

2. 用递归法计算斐波拉契数列中第n项的值。 (1)加;

(2)case 1 ;case 2 : return 1 ;改为case 1: return 1; case 2:return 1;

3.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。 int i ;

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

a->ave = a->ave + a->s[i] ; a->ave /= N ; <三七>

1.把形参a所指数组中的最大值放在a【0】中,接着求出a所指数组中的最小值放在a【1】中;再把a所指数组元素中的次大值放在a【2】中,把a数组元素中的次小值放在a【3】中,其余以此类推。 (1)*a (2)2 (3)i+1

2.按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。 (1)sun改为sum

(2)if(i+1%5==0)改为if((i+1)%5==0)

3.学生的记录由学号和成绩组称个,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。 int i ;

double ave = 0.0 ; *n = 0 ;

for(i = 0 ; i < N ; i++) ave = ave + a[i].s ; ave /= N ; /* 计算平均值 */ for(i = 0 ; i < N ; i++)

if(a[i].s < ave) { /* 把低于平均值的记录存放到b所指的数组中 */ b[*n]=a[i] ;

(*n)++; /* 人数加1 */ }

return ave ; /* 返回平均值 */ <三八>

1.将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。

(1)1 (2)i (3)a[p+i]

2.把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中 (1)*k改为k (2)>改为<

3. 学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 int i, max = a[0].s, n=0; for(i = 1; i < N; i++)

if(max < a[i].s) max = a[i].s ; /* 找出最高成绩 */ for(i = 0; i < N; i++)

if(max==a[i].s) b[n++] = a[i] ; /* 找相等的最高成绩并存入数组b中 */ return n; /* 返回符合条件的人数 */ <三九>

1.逆置数组元素中的值

(1)n/2 (2)i (3)a[n-i-1]

2.将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符

(1)字母o改为0 (2)字母o改为0

3. 学生的记录时由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数时strcmp)。 STREC c ; int i ;

c.num[0] = '\\0' ; /* 置初始空串 */ c.s = -1 ; /* 置成绩为-1 */ for(i = 0 ; i < N ; i++)

if(strcmp(a[i].num, b)==0) { /* 判断学号是否相等 */

strcpy(c.num, a[i].num) ; /* 相等,则对学号进行赋值 */ c.s=a[i].s; /* 相等,则对成绩进行赋值 */ break ; /* 退出循环体 */ }

return c ; /* 返回结构体变量 */ <四十>

1.函数fun的功能是进行数字字符转换 (1)char (2)ch<='9' (3)'0'

2.将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格 (1)p改为* p (2)\改为' '

3. n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。

STREC *p=h->next; /* 由于头结点中没有存放数据 */

double av=0.0; /* 对计算成绩平均值的变量进行初始化 */ int n = 0 ;

while(p!=NULL) { /* 判断链表是否结束 */ av = av + p->s ; /* 对成绩进行累加 */

p=p->next; /* 到下一个结点位置 */ n++; /* 人数加1 */ }

av /= n ; /* 计算成绩平均值 */ return av ; /* 返回成绩平均值 */ <四一>

1.若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则转换成对应的小邪英文字母;若是其他字符则保持不变;并将转换后的结果最为函数值返回。

(1)&& (2)'A' (3)ch

2.给一维数组a输入任意4个整数,并按下列的规律输出。 (1)a改为*a

(2)aa[j]改为a[j]

3. 请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。 int s = 0, i ;

for(i = 2 ; i < n ; i++) if(n % i == 0) s +=i ; return s ; <四二> 1.计算

的前n项之和。

(1)1 (2)-1 (3)t

2.从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15. (1)0改为1

(2)两个大写k改为小写

3. 请编写函数fun,其功能时:计算并输出下列多项式的值: sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! double s=1 ; long t=1; int i;

for(i=1; i<=n; i++) {

t=t*i; /* 计算阶乘 */

s+=1./t; /* 计算每项的值并累加至变量s中 */ }

return s; /* 返回多项式的值 */ <四三> 1、计算

直到

若x=2.5,函数值为:1.917915

(1)x (2)n (3)fabs(t) 2.求整数x的y次方的低三位值。 (1)i

3. 请编写函数fun,其功能时:计算并输出当x<0.97时下列多项式的值,直到|sn-s(n-1)|<0.000001为止。 Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n) int n=1; /* 循环计数*/

double sn=1; /* 累计数*/

double xn=1,xn1=0; /*x的n值,以及x的n-1值;*/

while(fabs(xn-xn1)>=0.000001)/*绝对值是否满足条件*/ {

xn=xn*x*(0.5-n+1)/n; /*表达式分解以后xn=(xn-1)*x*(0.5-n+1)/n*/ n+=1;

sn+=xn; /*sn累加上xn*/ }

return(sn); <四四> 1、计算

的前n项。若x=2.5,函数值为:12.182340 (1) 1 (2) 1 (3)i

2.找出100至n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。 (1)n改为i (2)加;

3. 请编写函数fun,计算并输出给定10个数的方差。 答案: int i;

double avg=0.0, sum=0.0, abs=0.0, fc; for (i=0;i<10;i++) sum+=x[i];

avg=sum/10; /* 计算平均值 */ for (i=0;i<10;i++)

abs+=(x[i]-avg)*(x[i]-avg); fc=sqrt(abs/10) ; return fc; <四五> 1、计算

直到

若x=2.5,函数值为:12.182494 (1)x (2)n (3)t

2.计算n的5次方的值(规定n的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。 (1)0改为1 (2)\\改为/

3. 请编写函数fun,其功能使:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。 int i ;

double avg=0.0,sum=0.0; for (i=0;i<8;i++) { avg=(x[i]+x[i+1])/2;

sum+=sqrt(avg); }

return sum; <四六>

1、统计所有小于n(n>2)的素数的个数,素数的个数作为函数值返回. (1)j=2 (2)i (3)j

2.计算前n(4

(1)sum=j==0;改为sum=0;j=0; (2)=改为==

3. 请编写函数fun,其功能是:计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+?+(1/(2n-1)-1/2n). 答案: int i;

double sum=0.0;

if (n>1 && n<=100) { for(i=1; i<=n; i++)

sum+=1.0/(2*i-1)-1.0/(2*i); }

return sum; <四七>

1.统计长整数n的各个位出现数字1、2、3的次数,并通过外部变量c1=3 c2=1 c3=2 (1) n (2)break (3)break

2.统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回 (1)=改为==

(2)zero改为*zero 3.

<四八>

1.用筛选法可得到2~n(n<10000)之间的所有素数 (1)a[i] (2)a[i] (3)0

2.为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数 (1)大y变小y (2)==改为=

3. 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 int i;

double sum=0.0; for(i=1; i<=n; i++)

if(i%5 == 0 || i%9 == 0) /* 被5或9整除 */ sum+=1.0/i; return sum; <四九>

1.甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次.求出总共听到多少鞭炮声作为函数值返回 (1)i (2)t++ (3)count

2.根据输入的三个边长(整型值),判断能否构成三角形;构成的是等边三角形,还是等腰三角形.若能构成等边三角形函数返回3,若能构成dengyao三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0 (1)void改为int

(2)retrun改为return

3. 请编写函数fun ,其功能是:计算并输出3到n之间所有素数的平方根之和。 int i,j=0; double s=0;

for (i=3; i<=n; i++) { for (j=2; j

if (i%j == 0) break; if (j == i) s=s+sqrt(i); }

return s; <五十>

1.从三个形参a,b,c中找出中间那个数,作为函数值返回 (1)a (2)a (3)b

2.首先将大写字母转换为对应小写字母;若小写字母为a~u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减少21. 转换后的小写字母作为函数值返回 (1)两个大写C改为小写c (2)-改为+

3. 请编写函数fun,其功能是:计算并输出 s=1+(1+2(0.5))+(1+2(0.5)+3(0.5))+?+(1+2(0.5)+3(0.5)+?+n(0.5)) int i;

double fac=1.0; double sum=1.0; for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; }

return sum; <五一>

1.找出100至x(x<=999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回 (1)0 (2)x (3)t++

2.先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面 (1)int i;改为int i,sl; (2)sl-i改为sl-i-1 3.同第一套类似 <五二>

1.找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回

(1)999 (2)t/10 (3)x

2.从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位扔在高位,低位扔在低位 (1)t改为*t (2)<改为>

2.

3. 学生得记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。 STREC tmp; int i,j;

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

for(j = i+1; j < N; j++) if(a[i].s < a[j].s) { tmp = a[i]; a[i] = a[j]; a[j] = tmp; } <五三>

1、将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回 (1)1 (2)s (3)i*10

2.输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数 (1)xx[][]改为xx[][M] (2)\改为\3.同第一套类似 <五四>

1.将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回 (1)0 (2)10*x (3)n/10

2.将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位扔在高位,低位扔在低位 (1)t改为*t (2)==改为!=

3. 编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

char *p=p1; while(*p)p++;

while(*p2) *p++=*p2++; *p=0; <五五>

1.将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量

(1)10 (2)0 (3)x 2、计算n!

(1)if n = = 0改为if (n == 0) (2)加;

3. 请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。 int i, len, t; /* len为串长,t为正负标识 */ long x=0; len=strlen(p); if(p[0]=='-')

{ t=-1; len--; p++; } else t=1;

/* 以下完成数字字符串转换为一个数字 */ return x*t; <五六>

1、计算下式前n项的和作为函数返回值

(1)0 (2)n (3)(t*t)

2.统计substr所指子字符串在str所指字符串中出现的次数。 (1)两个,改为; (2)If改为if

3. 请编写一个函数fun,它的功能是:根据以下公式求x的值(要求满足精度0.0005,即某项小于0.0005时停止迭代): x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为3.14?。 double s=1,t=1./3; int n=1;

while(t>=eps){ s+=t; n++; t=t*n/(2.0*n+1); } return (s*2.0); <五七>

1.计算下式前n项的和作为函数值返回

(1)1 (2)2*i (3)-1

2.判断一个整数是否是素数,若是返回1,否则返回0 (1)加; (2)=改为==

3.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n 是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 答案: int i ;

*max=a[0];*d = 0 ; /* 把数组的第1个元素值赋值给最大值变量*max */ for(i = 1; i < n; i++)

if(*max < a[i]) { /* 判断*max是否小于当前值 */ *max = a[i]; /* 重新把最大值赋值给*max */ *d = i ; /* 记住下标 */ } <五八>

1.给定程序中,函数fun的功能是计算下式

直到 并把计算结果作为函数值返回 (1)3. (2)> (3)(2*i+1)

求出以下分数序列的前n项之和。和值通过函数值返回到main函数

(1) void改为double (2) Double改为double

3.请编写一个函数fun,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。 答案:

int i, j, max=a[0][0]; for(i=0; i<2; i++) for(j=0; j

if(max

1.函数fun的功能是计算下式

直到 ,并把计算结果作为函数值返回 (1)0 (2)i++ (3)2.0*i

2.将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中 (1)s、t改为*s、*t (2)2*d-1改为2*d

3.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。 答案:

int i, j = 0 ;

for(i = 1 ; i < strlen(s) ; i += 2) if(s[i] % 2) t[j++] = s[i] ; t[j] = 0 ; <六十>

1.将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 (1)s[i] (2)k (3)0

2.将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同 (1)w改为*w (2)If改为if

3.请编写函数fun,其功能是:将s所指字符串中ascii值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 答案:

int i, j = 0 ;

for(i = 0 ; i < strlen(s); i++) if(s[i] % 2==0) t[j++] = s[i] ; t[j] = 0 ; <六一>

1.将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 (1)j (2)k (3)p

2.首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。d (1)>改为< (2)If改为if

3.请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 答案:

int i, j = 0 ;

for(i = 0 ; i < strlen(s) ; i++)

if(!((i % 2) ==0 && (s[i] % 2))) t[j++] = s[i] ; t[j] = 0 ; <六二>

1.计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。

(1)0 (2)x[i]/N (3)[j++]

2.根据整型形参m,计算如下公式的值。y=1/100*100+1/200*200+1/300*300+…..+1/m*m (1)fun前加double (2)两个,变;

3.已知学生的记录由学号和学习成绩构成,n名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 答案:

int i, min = a[0].s, j = 0; for(i = 1 ; i < N ; i++)

if(min > a[i].s) { /* 如果最低分min仍大于当前分 */ j = i ; /* 记住位置 */

min = a[i].s ; /* 把当前分赋值给min */ }

*s = a[j] ; <六三>

1. 计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。 (1)*av (2)i (3)x[j] 2.根据整形形参n,计算如下公式的值:

(1)int改为float (2)<改为<=

3.下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。 答案: int i, j;

for(i = 0 ; i < N ; i++) for(j = i ; j < N ; j++) a[i][j] *= m ; <六四>

1. 计算x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 (1)s/N (2)j++ (3)-1

2.读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。 (1)include 改为#include (2)p 改为*p

3.下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。 答案:

int i, j, n=0; double sum=0;

for ( i =0; i

sum+=w[0][i]+w[N-1][i]; n+=2; }

for ( i =1; i

return sum/n; <六五>

1. 计算x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 (1)x[i]/N (2)j++ (3)i++

2.统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。 (1)i改为k (2)s改为*s

3.请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 答案:

int tot = 0, i, j ;

for(i = 0 ; i < N ; i++) { tot += a[0][i] ; tot += a[M-1][i] ; }

for(i = 1 ; i < M - 1 ; i++) { tot += a[i][0] ; tot += a[i][N-1] ; }

return tot ; <六六>

1.将a和b所指的两个字符串转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。 (1)'0' (2)s++ (3)ctod(a)+ctod(b) 2.分别统计字符串中大写字母和小写字母的个数。 (1)*a=a+1改为*a=*a+1 (2)*b=b+1改为*b=*b+1

3.请编写一个函数float fun(double h),函数的功能使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。 答案: long w ;

w = h * 100 + 0.5 ; return (float) w / 100 ; <六七>

1.调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。 (1)N (2) break (3)n

2.先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。 (1)______;改为sum=0; (2)a[i][j] 改为a[i][j]

3.编写程序,实现矩阵(3行3列)的转置(即行列互换)。 答案:

int i,j,arr[3][3] ;

memcpy(arr, array, 9*sizeof(int)) ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < 3 ; j++) array[i][j] = arr[j][i] ; <六八>

1.找出N*N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。 (1)a[0][i] (2)< (3)x,y 2.交换主函数中两个变量的值。 (1)x 、y 改为*x、 *y (2)x 、y 改为*x、 *y

3. 编写函数int fun(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。 答案:

/* 以下代码仅供参考 */ int i,j,k=0;

/* 其中变量k用于统计素数个数 */ for(i=2;i<=lim;i++) {

/* 以下完成判断aa数组中小于或等于lim的素数并统计个数 */ for(j = 2 ; j <= (i/2) ; j++) if(i % j == 0) break; if(j > (i/2)) aa[k++] = i; }

return k; <六九>

1.建立一个n*n的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的

值全部为3,??以此类推。

(1)[N] (2)i (3)i+1

2.将十进制正整数m转换成k(2<=k<=9)进制数,并按高位到低位顺序输出。 (1)/改为% (2)i改为i-1

3. 编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 答案:

/* 以下代码仅供参考 */

int i,k=0,maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长 */ maxlen=strlen(a[k]); for(i=1;i

/* 以下完成查找最长串 */ if(strlen(a[i]) > maxlen) { maxlen = strlen(a[i]) ; k = i ; } }

*max=a[k]; <七十>

1.判定形参a所指的n*n(规定n为奇数)的矩阵是否是“幻方”,若是,函数值返回为1;不是,函数返回值为0。幻方的判定条件是:矩阵每行、每列主对角线及反对角线上元素之和都相等。 (1)0 (2)|| (3)1

2.根据整形形参m,计算如下公式的值。

(1)t = 1.0-1 /i改为t = t-1.0/i (2)_______;改为return t;

3. 请编写一个函数,用来删除字符串中的所有空格。 答案:

char *p = str ; int i = 0 ;

while(*p) {

if(*p != ' ') str[i++] = *p ; p++ ; }

str[i] = 0 ; <七一>

1.将a所指4*3矩阵中第k行的元素与第0行元素交换。 (1) k (2)N (3)a[k][i] 2.读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排列后输出。 (1)strlen( t )改成strlen( t )-1 (2)<改成>

3. 请编写一个函数void fun(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。 答案:

char *p = ss ; int i = 0 ;

while(*p) {

if((i % 2) && (*p >= 'a' && *p <= 'z')) *p -= 32 ; p++ ; i++ ; }

return ss ; <七二>

1.将a所指3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。 (1) k (2) N-1 (3)temp 2.根据形参m的值(2<=m<=9),在m行m列的二维数组中存放如下所示规律的数据,有main函数输出。 (1)**a改成a[][M]

(2)k * j改成(k+1)*(j+1) 3. 同第一套类似 <七三>

1.在3*4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 (1) j (2) 0 (3)i++

2.根据形参m的值,计算如下公式的值。

(1)<改成<= (2)1改成1.0

3. m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 答案:

float av=0.0 ; int i, j=0 ;

for(i=0; i

for(i=0; i

if(av>score[i]) below[j++]=score[i]; return j; <七四>

1.把形参s所知字符串中最右边的n个字符复制到形参t所知字符数组中,形成一个新串。若s所指字符串的长度小于n,则将整个字符串复制到形参t所指字符数组中。 (1)t,s (2) s[i] (3)0

2.找出一个大于形参m且紧随m的素数,并作为函数值返回。

(1)!=改成== (2)<改成>=

3. 请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 答案: int i; *n=0;

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

if((x % i== 0) && (i % 2)) pp[(*n)++]=i; <七五>

1.判断形参s所知字符串是否是“回文”,若是,函数返回值为1;不是,函数返回值为0。“回文”是正读和反读都一样的字符串(不区分大小写字母)。

(1)s (2) -- (3)return 0 2.求出以下分数序列的前n项之和。

(1)fun前加double (2)b += c改成b = c

3. 请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。 答案:

/* 以下代码仅供参考 */ int i, j=1, t=m+1; while(j<=k) {

/* 以下完成判断素数,并存放到数组xx中 */ for(i = 2 ; i < t; i++) if(t % i==0) break; if(i==t) { xx[j-1] = i; j++; } t++; } <七六>

1.计算出形参s所指字符串中包含的单词个数,作为函数值返回。为了便于统计,规定各单词之间用空格隔开。 (1) n++ (2) 0 (3)s++ 2.从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。 (1)t改成t + (2)Ave改成ave

3. 请编写一个函数int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。 答案:

int i, pos = 0, max = *s ;

for(i = 1 ; i < t ; i++) { if(max < *(s + i)) { max = *(s + i) ; pos = i ; } }

*k = pos ; <七七>

1.将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计符合条件的字符串的个数作为函数值返回。

(1) *s (2) s++ (3)n

2.由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。 (1),改成; (2)=>改成>=

3. 编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)! 答案:

long jc(int m) {

long s=1; int i ;

for(i=1;i<=m;i++) s=s*i ; return s; }

float fun(int m, int n) {

float p;

p=1.0*jc(m)/jc(n)/jc(m-n) ; return p; }

<七八>

1.将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。 (1) 48 (2) s++ (3)sum

2.计算小于形参k的最大的10个能被13或17整数的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622. (1)=改成== (2)加个}

3. 编写函数藏服那,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 答案:

double sum=0.0; int i;

for(i=21; i<=n; i++)

if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum) ; <七九>

1.找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。

(1) *s (2) 1 (3)k[n]

2.求s的值 s=2^2/1*3*4^2/3*5*?(2k)^2/(2k-1)*(2k+1) (1)void改成float (2)return s后加;

3. 编写函数fun,它的功能时:计算并输出下列级数和: s=1/1*2+1/2*3+…+1/n(n+1) 答案:

double s = 0.0 ; int i ;

for(i = 1 ; i <= n ; i++) s = s + 1.0 / (i * (i + 1)) ; return s ; <八十>

1.利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。Ss所指字符串中共有N个字符串,且串长小于M。 (1)i(2)ps[j](3)tp

2.已知一个数列从第0行开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。计算并输出该数列前n项的平方根之和。n的值通过形参传入。 (1)fun前加double

(2)return sum改成return sum;

3. 请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 S=1+x+x(2)/2!+x(3)/3!+…x(n)/n! 答案:

#include #include long jc(int n) {

long s = 1 ; int i ;

for(i = 1 ; i <= n ; i++) s *= i ; return s ; }

double fun(double x , int n) {

double s = 1.0, y = x ; int i ;

for(i = 1 ; i <= n ; i++) { s += y / (double)jc(i) ; y *= x ; }

return s ; }

<八一>

1.在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1.ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 (1)N(2)i(3)-1

2.从整数1到55之间,选出能被3整除,且有一位上的数是5的那些书,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。 (1)字母o改为数字0

(2)return k改成return i

3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除。 答案:

char *p = a ;

while(*p) p++ ; p-- ; while(*p == '*') p-- ; p++ ; *p = 0 ; <八二>

1.在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。Ss所指字符串数组中共有N个字符串,且串长小于M。 (1)N(2)k(3)ss[i]

2.逐个比较p、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。

(1)int k = 1改成int k = 0 (2)!=改成||

3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数亚时,不得使用c语言提供的字符串函数。 答案:

/* 以下代码仅供参考 */ int i=0,k;

while(a[i]=='*') i++; k=i;

while(a[i]!='\\0') /* 以下程序段实现非*字符前移 */ {

if(a[i] != '*') a[k++]=a[i]; i++; }

a[k]='\\0'; <八三>

1. 在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串中并输出,若没找到则输出相应信息。Ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0.

(1)N(2)substr(3)0 2.求三个数的最小公倍数。

(1)int x, y, z改成int x, int y, int z (2)return i改成return j

3,假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n 给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用c语言给提供得字符串函数。 答案:

char *p=a ; int j=0,len=0;

while(*p) {p++; len++;} while(j

a[j]=0; <八四>

1. 在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。Ss所指字符串数组中共有N个字符串,且串长小于M。 (1)[M](2)N(3)0

2.根据以下公式求∏值,并作为函数值返回。 (1)t=0改成t=1

(2)return(s)改成return(2*s)

3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。字符串中间和尾部的*号不删除。 答案:

/* 以下代码仅供参考 */ int i=0,j,k=0;

while(a[k]=='*') k++; /* k为统计*字符个数 */ if(k>n) {

i=n;j=k;

/* 以下完成将下标为k至串尾的字符前移k-n个位置*/ for(; a[j] !=0 ; j++) a[i++]=a[j]; a[i] = 0; <八五>

1程序通过定义学生结构体变量,存储了学生的学号、姓名和3门功课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。. (1)a(2)b.name(3)b.score【i】 2从s所指字符串中删除所有小写字母c。. (1)s[j]=s[i]改成s[j++]=s[i] (2)s[i]='\\0'改成s[j]='\\0'

3.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。 答案:

while(*p) { *q=*p; p++;q++; } <八六>

1. 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门功课的成绩。函数fun的功能是将对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。.

(1)->sno(2)->name(3)&t

2.应用递归算法求形参a的平方根。求平方根的迭代公式如下: X1=1/2(x0+a/x0)

(1)dounle改成double (2)xo改成x0

3.学生的记录是由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。 答案:

double t=0 ; int i ; *n = 0 ;

for(i = 0 ; i < N ; i++) t = t + a[i].s ; t = t / N ;

for(i = 0 ; i < N ; i++) if(a[i].s > t) b[(*n)++] = a[i] ; return t ; <八七>

1. 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门功课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。.

(1)struct student(2)a.name(3)a.score[i]

2.假定整数数列中的数不重复,并存放在数组中。删除数列中值为x的元素。N中存放的是数列中元素的个数。 (1)P改成p

(2)a[i+1]=a[i]; 改成a[i]=a[i+1];

3.学生的记录由学号和成绩组成n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 答案:

int i, j = 0, min=a[0].s ;

for(i = 0 ; i < N; i++) { if(min > a[i].s) {

j = 0 ; b[j++] = a[i] ; min = a[i].s ; }

else if(min == a[i].s) b[j++] = a[i] ; }

return j ;

<八八>

1. 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门功课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并修改a中地址作为函数值返回主函数,在主函数中输出修改后的数据。.

(1)struct student *(2)a->score[i](3)a

2.从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。 (1)fun(char (*sq)[M])改成char *fun(char (*sq)[M]) (2)sq改成sp 3.与第一题类似 <八九>

1. 程序通过定义学生结构体数组,存储了若干学生的学号、姓名和3门功课的成绩。函数fun的功能是将形参存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。 (1)struct student(2)n-1(3)a[i].name,a[j].name

2.在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符的原字符向后顺序移动。 (1)q=p+i后加; (2)wihle改成while

3.学生的记录是由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 答案:

int i,j = 0 ;

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

if(a[i].s >= l && a[i].s <= h) b[j++] = a[i] ; return j <九十>

1. 储存了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用新数据覆盖原来的数据。

(1)fp (2)== (3)fp

2.利用插入排序法对字符串中的字符按从小到大的顺序排列。 (1)[ aa ]改为(aa) (2)c=aa[i]改为ch=aa[i]

3.n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。 答案:

double max=h->s; STREC *p; p=h->next; while(p)

{ if(p->s>max ) max=p->s; p=p->next; }

return max; <九十一>

1.函数的功能是用函数指针指向要调用的函数,并进行调用。 (1)double (2)f1 (3)f2

2.函数的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。 (1)h改为h->next (2)h改为p

3.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。 答案:

int i, j = strlen(str) ; for(i = 0 ; i < j / 2 ; i++)

if(str[i] != str[j - i - 1]) return 0 ; return 1 ; <九十二>

1.将带头结点的单向链表结点数据域中的数据从小到大排序。 (1)h->next (2)p->next (3)>= 2.单向链表结点数据域中的最大值,并且作为函数值返回 (1)p=h改为p=h->next (2)h->next改为p->next

3.请编写函数fun,该函数的功能是:将m行n列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的储存单元中。 答案: int i, j, k ;

for(i = 0 ; i < mm ; i++) for(j = 0 ; j < nn ; j++) { k = i * nn + j ; b[k] = s[i][j] ; }

*n = mm * nn <九十三>

1. 将不带头结点的单向链表逆置。

(1)NODE (2)next (3)r

2.将s所指字符串中位于奇数位置的字符或ascii码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。 (1)&&改为|| (2)'\\0'改为0

3.请编写函数fun ,该函数的功能:将m行n列的二维数组中的数据,按列的顺学依次放到一维数组中。 答案:

/* 以下代码仅供参考 */

int i,j,np=0; /* np用作b数组下标 */ for(i = 0 ; i < nn ; i++)

for(j = 0 ; j < mm ; j++) { b[np] = s[j][i] ;

np = i * mm + j + 1; }

*n=np; <九十四>

1.将带头结点的单向链表逆置。 (1)next (2)0 (3)r

2.计算s所知字符串中含有t所指字符串的数目,并作为函数值返回。 (1)r=p;改为r=t; (2)=改为==

3.请别写函数fun,该函数的功能是:将放在字符串数组中的m个字符串(每串的长度不超过n),按顺序合并组成一个新的字符串。 答案:

/* 以下代码仅供参考 */ int i; *b=0;

for(i = 0 ; i < M ; i++) strcat(b, a[i]) ; <九十五>

1.函数的功能是将不带头结点的单向链表节点数据域中的数据从小到大排序。 (1)p->next (2)q (3)p->next

2.将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其他字符不变。 (1)*s!='@'改为*s (2)(*s)++;改为s++;

3.请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。 答案:

int i, j = 0, b[N] ;

for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ; for(i = 0 ; i <= p ; i++) b[j++] = w[i] ; for(i = 0 ; i < n ; i++) w[i]= b[i] ; <九十六>

1.函数的功能是根据形参i的值返回某个函数的值。 (1)double (2)f1 (3)f2

2.比较两个字符串,将长的那个字符串的首地址作为函数值返回。 (1)(*ss)++改为ss++; (2)(*tt)++;改为tt++;

3.请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 答案: int i;

for(i = 0 ; i < m ; i++) fun1(w); <九十七>

1.函数功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入并显示在终端屏幕上。

(1)FILE * (2)fp (3)ch

2.依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 (1)s[j]改为s[j++] (2)\改为'\\0'

3.编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 答案:

for(j = 0 ; j < M ; j++) { b[n] = s[j][i] ; n = i * M + j + 1; <九十八>

1.函数的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用函数atoi和atof将字符串转换成相应的整数、浮点数,然后再将其显示在屏幕上。 (1)FILE * (2)fclose(fp) (3)fp

2,对n名学生的学习成绩按从高到低的顺序找出前m(m<=10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区,此存储区的首地址作为函数值返回。 (1)加一个“;”

(2)t(k)=b(j);改为t[k]=b[j];

3.请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 答案:

int i, j = 1, k = a[0] ; for(i = 1 ; i < n ; i++) if(k != a[i]) { a[j++]=a[i] ; k = a[i] ; }

a[j] = 0 ; return j ; <九十九>

1. 储存了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数功能是从形参所指的文件中读入学生数据,并按照学号从小到大的顺序,再用二进制的方式排序后输出,覆盖原来的文件。

(1)\ (2)> (3)fwrite

2.在字符串的最前端加上n个*号,形成新串并覆盖原串 (1) s=p;改为p=s;

(2) while(*p++)改为while(*p++);

3.第请编写函数fun,该函数的功能使:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁的人数放在d[2]中,其余以此类推,把100岁(含100以上年龄的人数都放在d[10]中。结果在主函数中输出。 答案: int i, j ;

for(i = 0 ; i < M ; i++) b[i] = 0 ; for(i = 0 ; i < N ; i++) { j = a[i] / 10 ;

if(j > 10) b[M - 1]++ ; else b[j]++ ; } <一百>

1.储存了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。 (1)filename (2)fp(3) fp

2.创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 (1)p=(NODE )改为p=(NODE* ) (2)return p改为return h

3.请编写函数fun,该函数的功能是:统一一含字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。 答案:

int k = 1 ; while(*s) {

if(*s == ' ') k++ ; s++ ; }

return k ;

1.储存了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。 (1)filename (2)fp(3) fp

2.创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。 (1)p=(NODE )改为p=(NODE* ) (2)return p改为return h

3.请编写函数fun,该函数的功能是:统一一含字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。 答案:

int k = 1 ; while(*s) {

if(*s == ' ') k++ ; s++ ; }

return k ;

本文来源:https://www.bwwdw.com/article/3isp.html

Top