自考2243-计算机软件基础(-)课后习题答案
《本科自考 软件工程课后习题答案版》完整版

《本科自考02333软件工程课后习题答案-2011版王立福》第1章绪论1、解释术语(1)软件: 软件是指计算机系统中的程序及其文档。
P16(2)软件工程:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。
P15(3)软件危机:软件生产率、软件质量远远满足不了社会发展的需求,成为社会,经济发展的制约因素,人们通常把这一现象称为“软件危机”。
P152、简答题(1)简述软件开发的本质。
答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
P19(2)简述实施软件开发的基本途径。
答:实施软件开发的基本途径是系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。
P19(3)简述何谓模型以及软件开发中所涉及的模型。
答:模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
P19(4).简述软件开发所涉及的两大类技术。
答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。
P17第2章软件需求与软件需求规约1、解释术语(1)软件需求软件需求以一种技术形式,描述了一个产品/系统应该具有的功能、性能和其它性质。
P23(2)功能需求功能需求规约了系统或系统构件必须执行的功能。
P24(3)非公能需求非公能需求是性能、外部接口、设计约束和质量属性这4类需求的统称。
P23 (4) 需求规约需求规约是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。
P282、简述需求与需求规约的基本性质。
答:需求的基本性质:1)必要的,该需求是用户所要求的。
《计算机软件技术基础》习题及参考答案

4.以下数据结构中不属于线性数据结构的是______。
A. 队列 B. 线性表 C . 二叉树 D. 栈
5.在计算机中,算法是指______。
A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法
6.在下列选项中,哪个不是一个算法一般应该具有的基本特征______。
B. 随机存取的存储结构、顺序存取的存储结构
C. 随机存取的存储结构、随机存取的存储结构
D. 任意存取的存储结构、任意存取的存储结构
14.下列关于栈的描述中错误的是。
A.栈是先进后出的线性表B.栈只能顺序存储
C.栈具有记忆作用D.对栈的插入和删除操作中,不需要改变栈底指针
15.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。
A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性
30.对建立良好的程序设计风格,下面描述正确的是______。
A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法
C. 充分考虑程序的执行效率 D. 程序的注释可有可无
31.下面对对象概念描述错误的是______。
A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体
C. 对象间的通讯靠消息传递 D. 操作是对象的动态性属性
32.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。
A. 调用语句 B. 命令 C. 口令 D. 消息
33.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。
江苏省无锡市成考专升本2022-2023学年计算机基础自考真题(含答案)

江苏省无锡市成考专升本2022-2023学年计算机基础自考真题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(40题)1.下列叙述中,哪一条是正确的____。
A.反病毒软件通常滞后于计算机新病毒的出现B.反病毒软件总是超前于病毒的出现,它可以查、杀任何种类的病毒C.感染过计算机病毒的计算机具有对该病毒的免疫性D.计算机病毒会危害计算机用户的健康2.常用的输出设备包括______。
A.键盘和鼠标B.显示器和扫描仪C.打印机和显示器D.硬盘和内存3.电脑病毒的主要危害是____。
A.损坏电脑的显示器B.干扰电脑的正常运行C.影响操作者的健康D.使电脑长锈腐烂4. 在Excel2000中,下列三种运算符的优先级由高到低的顺序为_______。
A.逻辑运算符、算术运算符、关系元算符B.算术运算符、逻辑运算符、关系运算符C.算术运算符、关系运算符、逻辑运算符D.关系运算符、逻辑运算符、算术运算符5.1946年第一台计算机问世以来,计算机的发展经历了4个时代,它们是____。
A.低档计算机、中档计算机、高档计算机、手提计算机B.微型计算机、小型计算机、中型计算机、大型计算机C.组装机、兼容机、品牌机、原装机D.电子管计算机、晶体管计算机、小规模集成电路计算机、大规模及超大规模集成电路计算机6.计算机网络的资源共享功能包括____。
A.硬件资源和软件资源共享B.软件资源和数据资源共享C.设备资源和非设备资源共享D.硬件资源、软件资源和数据资源共享7.下面列出的计算机病毒传播途径,不正确的说法是____。
A.使用来路不明的软件B.通过借用他人的软盘C.通过非法的软件拷贝D.通过把多张软盘叠放在一起8.在Excel2000单元格中要输入字符串“008207”,正确的操作方法是_______。
A.直接输入数字008207B.先输入空格,再输人数字008207C.在英文状态下,先输入单引号“'”,再输人数字008207D.先输人数字008207,再输人空格9.为了提高使用浏览器的安全性,我们可以采取许多措施,下列措施无效的是____。
《计算机软件技术基础》复习答案.docx

《计算机软件技术基础》复习题——答案1.线性表的链式存储结构与顺序存储结构相比优点是一CD2. 线性表是具有n 个C 的有限序列。
A.表元索B.字符C.数据元索E.信息项3. 若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元索的算法的时间复杂度为 C (lWIWn+1)A. 0(0)B. 0(1)C. 0(n)D. 0(n 2)4. 设A 是一个线性表(g 弧…,弘),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需耍移动的元素个数为 B ,平均每删除一•个元素需要移动的元索个数为A ;若元索插在eh 与茹】之间(OWTWn-1)的概率为"匸",则平均每插入一个 n(n +1)元素所要移动的元索个数为C5•下列函数屮,按它们在 ms 时的无穷人阶数,最大的是—D6•将卜•图所示的s 所指结点加到p 所指的结点之后,其语句应为:DA.所有的操作算法实现简单B.便于随机存取C.便于插入和删除 1).便于利川零散的存储器空间D.数据项C.2n + \D ・3n +14A . C. 10g/7n/2 B. nlog/7 D. n! nextnextnextA. s->next 二p+1; p->next 二s;B. (*p). next 二s; (*s) • next= (*p)•next;C. s->next 二p->next; p->next 二s->next; D ・ s->next 二p->next; p->next.=s;7. 将两个齐有n 个元索的有序表归并为一个有序表吋,其最少的比较次数是_ A 。
A. n B. 2n~l C. n~lD. 2n8. 卜面的程序段是合并两个无头结点链表(ha 和hb)为一个无头结点链表ha 的过程,作为 参数的两个链表都是按结点的data 域由人到小链接的。
7月全国计算机软件基础(二)自考试题及答案解析

全国2019年7月高等教育自学考试计算机软件基础(二)试题课程代码:02365一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共20分)1.操作系统是计算机系统的一种( )。
A.应用软件B.系统软件C.通用软件D.工具软件2.数据的基本单位是( )。
A.数据结构B.数据元素C.数据项D.文件3.下列不属于...线性结构的是( )。
A.单链表B.队列C.二叉树D.数组4.在一个单链表中,已知指针q所指向的结点是指针p所指向的结点的前驱结点,若在指针q和p所指向的两个结点之间插入指针s指向的结点,则执行( )。
A.s->link=p->link; p->link=s;B.p->link=s->link; s->link=p;C.q->link=s; s->link=p;D.p->link=s; s->link=q;5.有6个元素按6,5,4,3,2,1的顺序进栈,问下列哪一个不是..合法的出栈序列?( ) A.5,4,3,6,1,2 B.4,5,3,1,2,6C.3,4,6,5,2,1D.2,3,4,1,5,66.深度为5的二叉树至多有( )个结点。
A.30B.31C.32D.637.进程的状态变化可以是( )。
A.等待=>运行B.就绪=>等待C.等待=>就绪D.就绪=>挂起8.PV操作所处理的变量是( )。
A.整型信号量B.多元变量C.记录型变量D.控制变量9.死锁的避免算法是( )。
A.哲学家算法B.银行家算法C.先进先出算法D.系统算法10.如果文件系统中有两个文件重名,不应采用( )。
A.一级目录结构B.二级目录结构C.多级目录结构D.一级目录和二级目录结构111.在段式存储管理中采取的方法是( )。
A.段间逻辑地址必须连续B.以段为单位,段内地址是连续的C.段间逻辑地址一定不连续D.每段等长方法12.数据库的三级结构是:用户逻辑结构、数据的整体逻辑结构和物理存储结构。
计算机软件基础 自考历年试题

计算机软件基础02243题型概述1.单项选择题(共15小题,每题2分,共30分)2.填空题(共10小题,每题2分,共20分)3.解答题(共4小题,每题4分,共16分)4.程序分析题(共4小题,每题4分,共16分)5.程序设计题(共2小题,每题9分,共18分)2008年试题解析一、单选题1、下列与k=n++完全等价的表达式是 CA. K=++nB. K+=n+1C. K=n,n=n+1D. n=n+1,K=n2、已知int a=5,b=3,*p=&b,*q=&a;下列赋值语句中与b=a等价的语句是 AA. *p=*q;B. p=q;C. *p=&q;D. *p=*b;3、已知C语言函数fun()的定义形式为void fun(char ch,float x){…}则正确调用fun()的语句是 DA. fun(“a”,3.0);B. fun(‘ab’,19.5);C. t=fun(‘z’,3.6);D. fun(65,3);4、已知char sr[20];int i;从键盘向数组sr输入一字符串的正确语句是 AA. gets(sr);B. gets(sr[20]);C.for(i=0;i<20;i++)scanf(sr);D. for(i=0;i<20;i++)gets(&sr)5、执行下列C语言程序段,循环结束的条件是 int n=0,p,sum=0;do{scanf(“%d”,&p);n++;sum+=p;}while(sum!=126&&n<5); CA. Sum的值不等于126或n的值小于5B. Sum的值不等于126且n的值小于5C. Sum的值等于126且n的值大于等于5D. Sum的值不等于126且n的值大于等于56、下列C语言程序的输出结果是 Cmain(){int a=13,m=0;switch(a%3){case 0: m++;case 1: m- -;case 2: m++;default: m++;}printf(“%d”,m);}A. -1B. 0C. 1D. 27、已知C语言程序段如下: Bstruct sa{int num;char name[10];float f;}stu[3]={{5,”li ming”,85.0},{6,”liu liangiang”,91.5},{7,”wang xin”,100}};struct sa *p; p=stu;则值为91.5的表达式是A. (*p).fB. (*++p).fC. (*p++).fD. (p++)->f8.下列程序是计算两个矩阵的乘积,其算法的时间复杂度是 D void mul_matrix(int n,int a[][5],int b[][5],int c[][5]){int i,j,k,x;for(i=0;i<n;i++){for(j=0;j<n;j++){x=0;for(k=0;k<n;k++)x+=a[i][k]*b[k][j];c[i][j];}}}A. O(n)B. O(log3n)C. O(n2)D. O(n3)9、若不带头节点的单链表的头指针为head,则判定该链表为空的条件是 AA. head==NULLB. Head!=NULLC. head->next==headD. head->next==NULL10、一个栈的进栈数据元素序列为1、2、3、4、5,则不可能为栈的出栈序列的是 DA. 2、3、4、1、5B. 1、5、4、3、2C. 2、3、1、4、5D. 5、4、1、3、211、一棵二叉树的先序遍历序列为ABCD,中序遍历序列为CBAD,则后序遍历序列是 CA. BCDAB. BCADC. CBDAD. ABDC12、在具有n个顶点、e条边的无向图的邻接表中,所有边的链表中边节点的总数是 CA. e/2B. eC. 2eD. 2e+n13、已知一个有序表为(12,18,24,35,47,50,62,83,90,115,134),用折半查找法查找值为90的元素时,查找成功所使用的比较次数是 BA. 1B. 2C. 3D. 414、当待排序序列中记录的关键字基本有序或记录个数较少时,则最好的排序方法是 DA. 基数排序B.冒泡排序C. 直接选择排序D. 直接插入排序15在瀑布模型中,将软件划分为若干个阶段,软件项目的需求分析一般属于 B A. 维护阶段 B. 开发阶段C. 运行阶段D.计划阶段二、填空题16、数学式“30<y<50”对应的C语言表达式是 y>30 &&y<5017、已知int k,x;则语句for(k=0,x=0;k<=9&&x!=10;k++)x+=2;执行后k的值是 518、已知int a[10]={1,2,3,5,6};则a[a[1]]= 319、下列C语言程序段的输出结果是 0,7int x=2,b[10]={5,6,7,8},*p=b;printf(“%d,%d\n”,b[6],p[x]);20.数据结构研究的主要内容包括数据的逻辑结构、物理结构(存储结构)以及他们之间的相互运算。
2024年秋季自考计算机类专业本科软件工程试题含解析

2024年秋季自考计算机类专业本科软件工程试题一、单项选择题1、黑盒测试技术又称为功能测试技术,包括事务处理流程技术、定义域测试技术和______。
A.路径测试技术B.用例测试技术C.状态测试技术D.结构测试技术2、RUP的迭代、增量式开发过程中,需要估算成本、进度,并能够减少次要的错误风险,至少需要完成______。
A.初始阶段B.精化阶段C.构造阶段D.移交阶段3、“与所规约的系统执行之间的偏差”是指______。
A.错误B.失效C.故障D.误差4、CMMI组织过程改善的成熟度等级中的2级是______。
A.已执行级B.已定义级C.已管理级D.已定量管理级5、下列不属于软件危机的主要表现是______。
A.软件生产效率低B.软件开发没有工具支持C.软件生产质量低D.软件开发缺乏可遵循的原理、原则、方法体系以及有效的管理6、在销售管理系统需求文档中出现下列描述,属于设计约束范畴的是______。
A.系统应能产生月销售报表B.系统应在5分钟内计算出给定季度的总销售税C.对要构建的账户接收系统,必须为月财务状况系统提供更新信息D.任取1秒钟,一个特定应用所消耗的可用计算能力平均不超过50%7、软件测试中,白盒测试技术依据的是程序的______。
A.逻辑结构B.输入数据C.状态D.功能8、在建模过程中,可用以描述加工的工具是______。
A.数据流B.判定树C.数据字典D.数据存储9、软件工程在20世纪60年代末到80年代初获得的主要成果有______。
A.CASE产品B.面向对象语言C.瀑布模型D.软件生存周期过程10、软件结构化设计中,支持“自顶向下逐步求精”的详细设计,并且能够以一种结构化方式严格地控制从一个处理到另一个处理的转移,这个详细设计工具是______。
A.PAD图B.程序流程图C.DFD图D.N-S图11、需求规约的基本性质包括重要性和稳定性程度、一致的、完整的和______。
A.可修改的B.可复用的C.可测试的D.无歧义的12、类的状态机一般有几种不同的运行状态,其中处于等待接收事件,接收处理完事件后又进入等待状态,通常采用______。
计算机软件基础(2243)

注意:强制转换类型得到的是一个所需类型的中间量, 原表达式类型并不发生变化。例如,(double)a 只是 将变量a的值转换成一个double型的中间量,其数据 类型并未转换成double型。
定义int x, y ; 执行y=(x=1,++x,x+2)后, y的值是? 1 2 7 4
1.2 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量 称为常量。(P5) 2.常量的分类 (1)整型常量(2)实型常量 (3)字符常量。(4)字符串常量 (5)符号常量。 常量的类型,可通过书写形式来判别。
1.三种表示形式 (1)十进制。例如10、36、- 20 。 (2)八进制(以数字0开头)012 、 0876 (3)十六进制(以数字0+小写字母x开头)。 0x36 、 1AB。 2.占用内存大小 用2字节存储,其数据范围与int型变量一样。 3. 数据范围 -215------(215-1)
提出问题 构造模型 选择方法 编写程序 上机调试
.C .OBJ .EXE
编译 连接
第一部分 Types、Operator 、Expression
1.1 C语言的数据类型 1.2 常量 1.3 变量
1.4 运算符与表达式
1.1 C语言的数据类型
C语言提供的数据结构,是以数据类型形式出现的。 具体分类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型三种。 2.构造类型 分为数组类型、结构体类型两种。 3.指针类型。 4.空类型 C语言中的数据,有常量和变量之分,它们 分别属于上述这些类型。
字符变量 字符变量的类型关键字为char,一般占用1字节内存 单元。 1.变量值的存储 字符变量用来存储字符常量。将一个字符常量存 储到一个字符变量中,实际上是将该字符的ASCII码 值(无符号整数)存储到内存单元中。 例如, char ch1, ch2;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一篇C语言程序设计基础第一章C语言基础一、简答题1.参考书P5图1-7。
2.因为C语言是强类型语言,语法规定必须先定义后使用,只有先定义,系统才能为其分配存储空间。
3.参考书P2。
二、填空题1. 算法2. .C , .obj , .exe3. 提出问题,构造模型,选择方法,编写程序,上机调试4. 15. sin(35.0) + x * cos(60.0)6. 67. 0三、改错题1. 参考书上第二页,算法与程序的区别2. 只能定义为一种类型3.必须先定义,后使用4. 可以随时修改5.只有char型变量才只存储一个字节6. a还是实型变量7. b中的值不丢失8. i的类型不变四、单选1-5 BDCDC 6-10 DCBBD 11-15 CBADC 16-18 AAA第二章顺序结构、选择结构和循环结构的程序设计一、简答1. 参考书上23页2. while先判断,后执行,do while先执行,后判断,循环体至少执行一次3. 参考书上29页4. continue,结束本次循环break,结束循环区别在于,continue只结束本次循环重新进行下次循环,而break结束整个循环二、填空题1. 顺序结构,选择结构,循环结构2. if else 和switch3. 语句1 ,语句24. 零5. break ,continue6.7 ,07. > : ,双目三、单选1-5 DBDCC 6-10 DBADA 11-15 CBCDA 16-20 ACAAD 21-25 CDCBB 26-29BCCA四、程序分析题1. end 1end2. num%10 max = t3. j%34. 99五、编程题1. #include <stdio.h>int main(){char str[100] ;gets(str) ;int n1 , n2 , n3 , n4 , i ;n1 = n2 = n3 = n4 = 0 ;for(i = 0 ; str[i] != '\0' ; ++i) {if(str[i] >= 'A' && str[i] <= 'Z')++n1 ;else if(str[i] >= 'a' && str[i] <= 'z')++n2 ;else if(str[i] >= '0' && str[i] <= '9')++n3 ;else++n4 ;}printf("大写字母:%d\n" , n1) ;printf("小写字母:%d\n" , n2) ;printf("数字字符:%d\n" , n3 ) ;printf("其他字符:%d\n" , n4) ;return 0;}2.#include <stdio.h>#include <stdlib.h>int main(){int array[4] , min , max , i ;for(i = 0 ; i < 4 ; ++i)scanf("%d" , &array[i]) ;min = max = array[0] ;for(i = 1 ; i < 4 ; ++i) {if(array[i] < min)min = array[i] ;else if(array[i] > max)max = array[i] ;}printf("min = %d , max = %d\n" , min , max) ;return 0;}3.#include <stdio.h>int main(){float money , lixi ;int year ;scanf("%f %d" , &money , &year) ;switch(year) {case 1 :lixi = money * 0.63 / 100 ;break ;case 2 :lixi = money * 0.66 / 100 ;break ;case 3 :lixi = money * 0.69 / 100 ;break ;case 5 :lixi = money * 0.75 / 100 ;break ;case 8 :lixi = money * 0.84 / 100 ;break ;default :printf("输入错误\n") ;return -1 ;}printf("%f\n" , money + lixi) ;return 0;}4.#include <stdio.h>int main(){int x , y ;scanf("%d" , &x) ;if(x > 100)y = x + 8 ;else if(x < -10)y = -x + 8 ;elsey = 0 ;printf("%d\n" , y) ;return 0;}5.#include <stdio.h>int main(){int i , j , k , m = 3 ;for(k = 5 ; k < 12 ; k += 2 , --m) {for(i = 0 ; i < m ; ++i)printf(" ") ;for(j = 0 ; j < k ; ++j)printf("*") ;printf("\n") ;}return 0;}6.#include <stdio.h>int main(){printf(" *****\n") ;printf(" * *\n") ;printf(" * *\n") ;printf("*************\n") ;return 0;}第三章数组一、简答1. a:数组名,a[0] :数组第0号元素,&a[1]数组第1号元素的地址2. 不同,”a”是字符串,末尾有一个’\0’3. 2 * 3 * 2 = 12个字节二、填空题1. 02. 按行存放3. 10144.str[14]5. ‘\0’三、改错1. 是02. 只能是常量3. 一定相同4. 不会给错误信息5. 没有提供字符串类型6. 不等价,”ok”末尾有一个’\0’四、单选1-5 DBCAC 6-10 DDDCB 11-13 DDC五、程序分析题1. AzyD2. 1233. 454. 4some string * test5. 统计输入字符串中空格的个数 3 ,16. max < a[row][col] min > maxmin == max7. a a sum/n x[i] < ave8. a[i][j] != a[j][i] 19. j += 2 a[i] > a[j]10. 1 2 4 5 6 0 0 0 0 01 2 3 4 5 6 0 0 0 0六、编程题1.#include <stdio.h>int main(int argc , char *argv[]) {int a[11] , i , n ;printf("请输入十个递增排列的数列:") ;for(i = 0 ; i < 10 ; ++i)scanf("%d" , &a[i]) ;printf("请输入要插入的数:") ;scanf("%d" , &n) ;for(i = 9 ; i >= 0 && a[i] > n ; --i) {a[i+1] = a[i] ;}a[i+1] = n ;printf("插入后数列为:") ;for(i= 0 ; i < 11 ; ++i)printf("%d " , a[i]) ;printf("\n") ;return 0 ;}2.#include <stdio.h>#include <string.h>int main(int argc , char *argv[]) {char a[100] , b[100] , min , i ;scanf("%s %s" , a , b) ;min = 0 ;for(i = 1 ; a[i] != '\0' ; ++i) {if(a[min] > a[i])min = i ;}strcat(b , a + min + 1) ;a[min + 1] = '\0' ;strcat(a , b) ;printf("%s\n" , a) ;return 0 ;}3.#include <stdio.h>int main(int argc , char *argv[]) {char s1[100] , char s2[100] ;int i ;gets(s1) ;gets(s2) ;char *string1 = s1 , *string2 = s2 ;do{i = (int)*string1 -(int)*string2;}while(*string1++ && *string2++ && (!i) );for(i = 0 ; s1[i] != '\0' && s2[i] != '\0' && s1[i] == s2[i] ; ++i) ;printf("%d\n" , i) ;return 0 ;}4.#include <stdio.h>int main(int argc , char *argv[]) {char s[100] ;int i ;gets(s) ;for(i = 0 ; s[i] != '\0' ; ++i) {if(i == 0 || (s[i-1] == ' ' && s[i] >= 'a' && s[i] <= 'z'))s[i] -= 32 ;}puts(s) ;return 0 ;}5.#include <stdio.h>int main(int argc , char *argv[]) {char s1[100] , s2[100] ;int end , i ;gets(s1) ;gets(s2) ;for(end = 0 ; s1[end] != '\0' ; ++end) ;for(i = 0 ; s2[i] != '\0' ; ++i)s1[end++] = s2[i] ;s1[end] = '\0' ;puts(s1) ;return 0 ;}第四章函数一、简答题1. 参考书上68页,69页,72页2. 函数的返回值,函数的形参3. 实参与形参之间是值传递的关系二、填空题1. 库用户自定义2. 33. gets()4. strlen()5. strcpy()6. 全局局部7. 有返回值无返回值8. return9. void10. 前11. 调用三、改错1. 表示不同的变量2. 按照调用的先后顺序执行3. 各自有自己的存储单元4. 可以没有形参5. 分配在动态存储区6. 以该函数定义的返回值为准7. 嵌套调用指函数调用函数四、单选1-5 BDACC 6-10 DAACC 11-13 ACC五、程序分析题1. j str[j-1]2. 本题程序是错的,第五行,for(I = m + 1 ; i++)这里少东西,所以跳过3. i < n x = fun(4)4. 1: a = 1 , b = 12: a = 2 , b = 23: a = 3 , b= 3六、编程题1.int fun(int year) {if( year % 400 == 0|| (year % 4 == 0 && year % 100))return 1 ;elsereturn 0 ;}2.#include <stdio.h>#include <math.h>void fun1(int a , int b , int c) {float t = sqrt(b * b - 4 * a * c) ;printf("x1 = %f , x2 = %f\n" , (-b + t) / 2.0 * a , (-b -t) / 2.0 *a) ;}void fun2(int a , int b , int c) {printf("x1 = x2 = %f\n" , -b/ 2.0 * a) ;}void fun3(int a , int b , int c) {printf("该方程没有实根") ;}int main(int argc , char *argv[]) {int a , b , c ;scanf("%d %d %d" , &a , &b , &c) ;if(b * b - 4 * a *c > 0)fun1(a , b , c) ;else if(b * b - 4 * a * c == 0)fun2(a , b , c) ;elsefun3(a , b , c) ;return 0 ;}3.#include <stdio.h>#include <math.h>int fun(int a[] , int n) {int i , j = 0 ;for(i = 1 ; i < n ; ++i)if(i % 3 == 0 && i % 7 == 0)a[j++] = i ;return j ;}int main(int argc , char *argv[]) {int a[100] , n , m , i ;scanf("%d" , &n) ;m = fun(a , n) ;for(i = 0 ; i < m ; ++i)printf("%f " , sqrt(a[i])) ;return 0 ;} 第五章指针一、简答1. 不一定,这要看指针的类型,比如int * p ,则p + 1 就增加两个字节2. 定义指针时表示定义的变量是指针类型,引用指针时,表示指针指针指向的变量3. p + n , p – n ,其中n是int类型二、填空题1. 地址2. & *3. 指针4. *p5. 10066. malloc7. a+i *(a+i)8. 39. ‘b’‘\0’三、改错题1. 只能存放同类型的变量的地址,比如int *只能存放int型变量的地址2. 这个说法是正确的,没有错误3. 不是,指的是指针所指向的变量的类型4. 只能是同类型的指针或者&a这样的地址值5. 是可以改变的四、单选1-5 CDDAA 6-10 BCDDB五、程序分析题1. *x t2. r + b[u] *x3. 104. CDG5. 80,-206. 57. 551711717六、编程题1.#include <stdio.h>int main(int argc , char *argv[]) {char s[100] ;int i ;gets(s) ;for(i = 0 ; s[i] != '\0' ; ++i) ;printf("%d\n" , i) ;return 0 ;}2.#include <stdio.h>int fun(char *s , char c) {int count = 0 ;for( ; *s != '\0' ; ++s)if(*s == c)++count ;return count ;}int main(int argc , char *argv[]) {char s[100] , c ;gets(s) ;c = getchar() ;printf("%s %c\n" , s , c ) ;printf("%d\n" , fun(s , c)) ;return 0 ;}3.#include <stdio.h>int main(int argc , char *argv[]) {char s[100] ;int i , n1 , n2 , n3 , n4 , n5 ;n1 = n2 = n3 = n4 = n5 = 0 ;gets(s) ;for(i = 0 ; s[i] != '\0' ; ++i) {if(s[i] >= 'A' && s[i] <= 'Z')++n1 ;else if(s[i] >= 'a' && s[i] <= 'z')++n2 ;else if(' ' == s[i])++n3 ;else if(s[i] >= '0' && s[i] <= '9')++n4 ;else++n5 ;}printf("大写字母:%d\n" , n1) ;printf("小写字母:%d\n" , n2) ;printf("空格:%d\n" , n3) ;printf("数字:%d\n" , n4) ;printf("其他字符:%d\n" , n5) ;return 0 ;}第六章结构类型一、简答题1比如定义struct Student {char name[100] ;int age ;}stu ;则 , stu.age 即可引用结构体成员2. 不是必须为所有的成员赋初值,因为语法上没有强制要求。