='/O');i++)
if(str[i]>str[i+l])
{t=str[i];
str[i]=str[i+l];
str[i+l]=t;
}
}
4.分析下列程序运行的结果:
main()
{char*str1[20],*str2[2O],*str3[2O];
charswap();
printf("Inputthreelines:
/n");
gets(strl);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>O)swap(str1,str2);
if(strcmp(str1,str3)>O)swap(strl,str3);
if(strcmp(str2,str3)>O)swap(str2,str3);
printf("Now,theorderis:
/n");
printf("%s/n%s/n%s/n",strl,str2,str3);
}
charswap(char*p1,char*p2)
{char*p[2O];
strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);
}
华中师范大学网络教育学院
《计算机软件技术基础》练习测试题库
一、填空题
1.程序设计语言;数据结构
2.编辑、编译、连接、运行
3.数据类型
4.基本、构造、空、指针
5.变量、常量
6.常量
7.变量
8.二进制
9.补码
10.阶码、尾数
11.字节
12.没有
13.9
14.ASCⅡ
15.程序运行
16.自右至左
17.不能
18.单个字符
19.以该整型变量的值为ASCⅡ码值的字符;该字符的ASCⅡ码值
20.任何类型
21.0.
22.行。
23.先定义,后使用
24.整个程序结束后
25.退出函数
26.存储类别、数据类型
27.动态存储、静态存储、静态存储
28.不能
29.202
30.入口地址
31.链式
顺序
32.指向链表头结点
指向空
33.栈顶、队尾、队头
34.i/2
35.邻接矩阵、邻接表
36.插入,选择
37.并发性、共享性
38.内零头、外零头
39.分段存储管理、段页式存储管理40.DMA方式、通道方式
二、名词解释
1.数组元素是字符类型的数组就是字符数组。
字符数组用于存放字符型数据,每个数组元素只能存放一个字符,存放的是字符的ASCⅡ代码。
2.在结构化程序中广泛采用了模块化的设计方法,所谓模块化就是把一个较大的问题分解为若干个功能相对独立的子问题,每个干问题由一个程序模块实现。
这就是说,一个程序是由若干个程序模块组成的。
在C语言中,这样的程序模块就是函数。
3.在调用一个函数的过程中,又直接或间接地调用该函数自身,这种调用就称为函数的"递归调用"。
4.在一个函数内部定义的变量是局部变量。
5.在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量)。
6.存储在静态存储区中的变量叫做静态变量。
7.存储在动态存储区中的变量叫做动态变量。
8.如果一个函数只能被本文件中其他函数所调用,它称为内部函数。
在定义内部函数时,在函数名和函数类型的前面加static。
9.在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用。
10.一个函数在编译时被分配给一个入口地址。
这个入口地址就称为函数的指针。
11.一个数组,其元素均为指针类型数据,称为指针数组,
12.结构体是用户自己定义的一个集合体,它由多个成员组成。
成员的数据类型允许是不同的数据类型。
13.每个数组元素都是一个结构体类型的数据的数组就是结构体数组。
14.链表是若干个同样类型的结构通过依次串接方式构成的一种动态数据结构。
链表中的每一个结构体数据称为结点。
15.反映数据元素之间逻辑关系的数据结构称为数据的逻辑结构。
数据的逻辑结构通常表示为B=(D,R),其中B为数据结构,D为数据元素的集合,R为反映D中各数据元素之间前后件关系的二元组的集合。
16.数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,又称为数据的物理结构。
三、简答题
1.机器语言是二进制指令代码表示的指令集合,是计算机能直接识别和执行的语言。
高级语言是一种接近于自然语言和数学语言的程序设计语言。
2.有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性
3.简述分页存储器管理这种虚拟存储技术的基本原理。
(5分)答案:
分页存储器管理这种虚拟存储技术的基本原理:
将每个进程的虚拟地址空间按固定大小分成若干个相等的虚页面,把内存空间也按同样大小分为若干个相等的实页面,在对进程进行存储器分配时,利用地址转换机制将进程的虚页面映射到内存的实页面上,用户程序的虚页数可以大大超过内存的总页数,正在使用的虚页面在内存中,暂时不用的页则放在磁盘中。
4.在未出现函数调用之前,它们并没占用内存单元,只有发生函数调用时,函数的形参才被分配具体的单元,调用结束后,形参所占的内存单元立即被释放。
5.在瀑布模型中包括了哪些软件工程活动?
答案:
瀑布模型包括:
制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护,并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。
(5分)
6.通常情况下,我们总是希望通过函数调用使主调函数得到一个确定的值,这就是函数的返回值。
函数的返回值是通过return语句实现的。
7.在以下几种情况下,可以不在调用函数之前对被调用函数做声明:
①如果函数值是整型或字符型,可以不必进行声明,系统自动默认函数是整型。
②如果被调用函数的定义出现在调用函数之前,可以不必进行声明。
③可以在文件开头,所有函数定义之前对各个函数统一进行类型声明,这样,则在各个调用函数中可不再对相应被调函数做类型声明。
8.我们希望的是有限次数的,有终止的递归调用。
这种愿望的实现是用if语句来控制的。
9.没有。
因为函数调用发生时,是将实参数组的首地址传给形参数组,所以两个数组共占同一段内存单元。
10.不能。
因为,形参和实参分别在不同的函数范围内有效,互不干扰。
11.对于多组不同数据类型的数据可以采用以下三种方法处理:
⑴多个结构体变量。
此方法适用于小批量的数据。
⑵结构体数组。
此方法适用于已知结构体变量数目。
结构体数组是结构体变量的集
合体,系统为每个结构体变量分配的存储空间是连续的。
⑶链表。
此方法适用于结构体变量数目不定的情况,可根据需要动态分配存储单元,链表中的数据在内存中的存储空间是不连续的。
12.建立链表的过程是将已知数据按一定的顺序串接起来。
在操作过程中,始终要记忆链表的头结点指针,否则链表丢失。
13.需从最后一个(即第n个)元素开始,直到第i个元素(共n-i+1个元素)依次向后移动一个位置,空出第i个位置。
14.如果相应的存储空间不能供队列循环使用,那么,当出现:
上溢条件满足,而实际存储空间却不满的情况时,仍然不能再进行入队操作。
15.在树结构中,每一个结点只有一个前件,称为父结点。
在树中,没有前件的结点只有一个,称为树的根结点,简称为树的根。
每一个结点可以有多个后件,它们都称为该结点的子结点。
没有后件的结点称为叶子结点。
16.堆排序的方法如下:
⑴首先将一个无序序列建成堆。
⑵然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。
不考虑已经换到最后的那个元素,只考虑前n-1个元素构成的子序列,显然,该子序列已不是堆,但左、右子树仍为堆,可以将该子序列调整为堆。
反复作第⑵步,直到剩下的子序列为空为止。
四、编程题
1.main()
{
floata,b,c,t;
scanf("%f,%f,%f",&a,,&b,&c);
if(a>b)
{t=a;a=b;b=t;}/*实现a和b的互换*/
if(a>c)
{t=a;a=c;c=t;}/*实现a和c的互换*/
if(b>C)
{t=b;b=c;c=t;}/*实现b和c的互换*/
printf("%5.2f,%5.2f,%5.2f",a,b,c);
}
运行情况如下:
3,7,1↙
1.OO,3.OO,7.OO
2.分析此问题,分数段的变化是有规律的:
其"变化点"都是10的倍数。
利用这一特点,可以引进一个变量c,c的值为s/10。
c代表10的倍数。
当c<5时,表示"E"分数段,6≤c<7时,表示"D"分数段,7≤c<8时,表示"C"分数段,8≤c<9时,表示"B"分数段,9≤c时,表示"A"分数段。
可用:
switch(c)
{case9:
等级='A';break;
case8:
等级='B';break;
case7:
等级='C';break;
case6:
等级='D';break;
case5:
case4:
case3:
case2:
case1:
case0:
等级='E';break;
}
解决。
3.核心语句:
day=9;x2=1;
while(day>0)
{x1=(x2+1)*2;
x2=x1;
day--;
}
4.求最大公约数的函数:
inthcf(intu,intv)
{intt,r;
if(v>u)
{t=u;u=v;v=t;}
while((r=u%v)!
=0)
{u=v;
v=r;}
return(v);}
五、阅读程序,说出功能,写出运行结果
1.
运行结果:
Inputstring1:
class↙
Inputstring2:
room↙
Thenewstringis:
classroom
2.使字符串按反序存放。
3.
运行结果:
Inputstring:
reputation↙
stringsorted:
aeionprttu
4.
运行结果:
Inputthreelines:
lstudyveryhard.↙
Clanguageisveryinteresting.↙
Heisaprofessfor.↙
Now,theorderis:
Clanguageisveryinteresting.
Heisaprofessfor.
Istudyveryhard.