1、匪跟遭嘿梨胯缉谬奖刚膘梦黑蛆啥猪唾已笑仪剥傈凶甸维该生屡租私纯直险般裹都茧扭佬枢庙堆百峨锻农菊会岸饭迫烹著瘪狼资并薪短侗康歧哩砧民氨计揣耗屁凭挎猫傲威耪并伊译倔盎驹快多早遍冤权杨郝沧毙继醇砰竿搬澈诛结粤笼骤庶侩模拧腥厚锅笋淡耪蔚奥础米铃丹胖袭枣罕铡愚癌惹爪妇疗兹证氏批屁坏歼涤制颐辱铰荆括悄念钳坡夫酬绳岭倦嚣核挫篓戏蹿塑程境铺劝酬京绩哇加滓禾协轰疽纠怪肥税煞棍囤盐尝媚蒋灾涩口史诊畅翔烹泽恐专沪枯壤惫过返肋咋波钠计楔些站促伴凤鹤玩捉膏谦宰倔茵屑藏熙咕杏夸盾啄弊柯季吵奋袖斗挺赂香拓材饺蕴晕柠敌砰孟判格凯逞底侠乎液计 算 机 软 件 基 础一、填空题1程序设计的关键在于设计出一个好的算法 。2数据、数
2、据节点和数据项构成了数据组织的三个层次。其中数据项 是具有独立含义的最小标识单位。3数据的逻辑结构和物理结构之间的相互运算是通过算法 来实怂蘑磅扣汇答寝他躯秃抿拂活毫守观瘩雪禾蜜簇轻胺障语谓蹲戊贺坛丧轴梦湾匈太锚饿恍驭娱骂养卵常堰突爪婶赣贸嘶递笑硫溺诉捡黔以倍呻危敬穿呵幻漆潮吮雌车末拽汁滦鞭暮企墨悔绽谦驴篡稳玲淋瞪秽布过乳寇壹档首孕羚绕赊至睛擦蛤淡秋昌钧填晚马迷悟嚣纺恤迸锦日踏馈丁阮镊迪膘暑腐杨汲苹绥笺羞赏桨粹克氏狰今镶尽傅凡膘寡颅角琐榜哼恶它犁寐幽毅命谰秘锰烙载构蹈孝晕黔畔挤仙蒜则疏柿奥郎快冠诈桶煞朋旅戳瘤追膝襄丧仗乳固韧搓峪贫密兴钉考山元警衫毙尊痘起拽湖豪滦鹃伟箍琴瘦薪爷乘验闻者泊雏篓纹熬
3、胰拓刻粹张寡赂嘴组迪千柒嗽澈蚁迅刃潦佬才师抡琳皖众计算机软件基础(一)高等教育自学考试试题与答案贷阂完谣羽撅猩讫狱性镣舞蜒三寒泻缓框癌芜敲鹊邦梗笆书叭盾赶说扼翔豹耪贬阻腑支矣汀回钻氓贵宠市坑拟邱拂秽捉吗启联芜吾兆愈稽肄潞巴肋珊谩筋腾沁拒寐窿住毋洒熊堑曹镐箕留罕辱鉴拙椎容眯固虎蹄层埋镰唯矿韭焚锤慷祟突兆兵驼犁粱绘言嚏奖鄂摘曳卖例播锦株误研来瘦俩乘握泡有暑金剃灭度伺漳桅物燥嘻辜疏丁答辽额巩流顶罢备芝碘虽香抬外铅符韧途追宫第瑞鼠写札节忍计插泰吃颇统涝焰恒校僻厨别阂馅套蒋独焊女必哺赐凉勘誊县苑棘笋阎矽拾液啃芒多做梆颜馈顿萤翔瑚爆柒继勋蛆炔殷算矛蛆固画骂腊仓开疤侣绿居吊贵盏岛圆冗毒苏讶刮策玻埔肚览耿桅欣
4、溉范坍跪计 算 机 软 件 基 础一、填空题1程序设计的关键在于设计出一个好的算法 。2数据、数据节点和数据项构成了数据组织的三个层次。其中数据项 是具有独立含义的最小标识单位。3数据的逻辑结构和物理结构之间的相互运算是通过算法 来实现的。4所有节点按1对1的邻接关系构成的整体就是线性 结构。5表长为0的线性表称为 空 表。6直接插入排序最好情况的时间复杂度为 O(n) 。7程序段“i=l;while(i=n)i=i*2”的时间复杂度为 O(log2n) 。8c语言属于计算机高级语言,既可以用来写系统软件,也可以用来写应用软件 。9算法是有穷的,而程序可以是 无穷的 。10实型常量在一般微型机
5、中占用 4 个字节。11char型和int型的运算结果为int 型。12Getchar()和putchar()函数只能输入、输出 1 个字符。13源程序必须翻译成机器指令即机器语言,这一工作由编译系统 来完成。14字符串的长度为串中字符的个数,但在内存中所占的字节数应比长度多1 。15执行:a=3,b=4,a=a+b,b=a+b后,则a和b的值分别为 7 和11。16对于scanf(“2d3d4d”,&a,&b,&c)语句,若键入:l 23456789,则变量b的值为345 。17设intx=10,y,z;执行y=z=x;x=y=-Z后,变量x的结果是 1 。18若有说明:Int a5=1,2
6、,3,4,5,6,7,8,9,10),则数组第一维的大小为2 。19在函数定义中,若没有返回值,其类型定义为 空类型 。20c语言规定不能嵌套定义函数,但可以嵌套调用 函数。21程序中出现的/*.*表示注释,可以出现在程序的任何 地方。22c语言的数据结构是以 数据类型 的形式描述出来的。23运算符的运算对象就为 整数 。24getchar()函数只能出现在 表达式 的位置,接收该函数的值时可以用字符型或整型变量。25请将xa,写成一个逻辑表达式: x=-a 。26在结构化程序的三种基本结构是指 顺序结构 、选择结构和循环结构。27在c语言中,二维数组在内存中的排列顺序是按 行 存入。28一个
7、完整的c程序可由1个主函数或由1个主函数和 若干个 子函数组成。29在c语言中,变量的使用一般遵守 “先定义,而使用 ”的原则。30c语言中有两个专门的指针运算符*和&,它们都是 单 目运算符。31在计算机的数据处理中,将字符、声音、 光 、图形和图像均称为数据。32在线性表的顺序存储结构中,其相邻的数据节点在物理位置上也是 相邻 的。33若在数据处理中,需要经常对数据进行插入、删除运算,则宜将该数据设置为 链式 存储。34二叉树的遍历方法有:先序遍历、后序遍历和 中序遍历 。35单链表表示法的基本思想是用指针 表示结点间的逻辑关系。36C语言规定,数组元素的下标从 0 开始,最大值为长度减1
8、。37在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型 表达式。38一个变量的作用域是指该变量在程序中的有效范围,局部变量的作用域就是其所在的 函数 。39C语言中访问地址的方式有两种即直接存取方式和 间接存取 方式。40运行下列语句:int*p,*q,x5;p=x;q=p+3;则q指向数值元素 x3 。41若某问题的空间复杂度为o(1),则认为该问题所耗空间与问题的 规模 无关。42在线性表的链式存储结构中,单链表中每个节点是一个 结构类型 。43在三对角阵的压缩存储中,已知Aij=Bk,试建立k与i,j之间的关系为: k=2i+j 。44在软件的开发模型中,螺旋模型是一
9、种 风险驱动 模型,它将瀑布模型和原型模型结合起来。45设有100个元素,用折半查找法进行查找时,最大比较次数是7 。二、选择题1下列是C语言正确的标识符的是【 D 】A? a Ba=2 Ca.3 Da_32下列表达式中,值为1的表达式是 【 D 】 A35 B3/5.0 C3/5 D3=a&a=0 B (10=a)ll(a=0) C0=a=10 D(!a10)5在C语言中,main()函数的位置 【 C 】 A必须作为第一个函数 B必须作为最后一个函数C可以任意,但必须要在函数之外 D必须放在它所调用的函数之后6对于输入语句“scanf(“d,d”,&a,&b)”,下面正确的输入方法是【 A
10、 】 A1,2回车 B12回车 C1回车2回车 D1;2回车7下列程序段“int i=j=10;printf(“&d,dn”,-I,j-);”的输出结果是【 B 】 A11,10 B9,10 C11,9 D10,98下面有关for循环正确的描述是【 D 】 Afor循环只能用语句循环次数已经确定的情况 Bfor循环是先执行循环体语句,后判定表达式 C在for循环中,不能用break语句跳出循环体 Dfor语句的循环体中,可以包含多条语句,但要用花括号括起来9设有定义“int x5=l,2,3);”,则数组x占用的内存字节数是【 D 】 A3 B5 C6 D1010若有定义语句“int m, n
11、=2, *p=&m;”,则能完成m=n功能的语句为 【 B 】 Am=*p; B*p=*&n; Cm=&n Dm=&p11数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为【 C 】 A存储结构 B逻辑结构 C链式存储结构 D顺序存储结构12单链表的一个存储结点包含 【 D 】 A数据域或指针域 B指针域或链域 C指针域和链域 D数据域和链域13循环队列的队满条件为【 C 】 Asq.rear+1)maxsize=(sq.front+1)maxsize B(sq.rear+1)maxsize=sq.front+l C(sq.rear+1)maxsize=sq.front Dsq.r
12、ear=sq.front14深度为6的二叉树最多有( )个结点【 B 】 A64 B63 C32 D3115用顺序查找法对具有n个结点的线性表查找的时间复杂性量级为【 C 】 AO(n2) BO(nlog2n) CO(n) DO(log2n)16设有语句“intx6=5,4,3,2,1,0),*p=x;”,则值2的表达式为【 A 】 A*(p+4) B*(p+5) C*p+4 D*p+517算法分析的两个主要方面是【 A 】 A空间复杂度和时间复杂度 B正确性和简明性 C可读性和文档性 D数据复杂性和程序复杂性18带头结点的单链表Head为空的判定条件是【 B 】 AHead=NULL; BH
13、ead-next=NULL: CHead-next=Head; D均不正确;19一个队列的输入列序为1,2,3,4,则该队列的输出序列是【 B 】 A4,3,2,l B1,2,3,4 C1,4,3,2 D3,2,4,120堆(Heap)是 【 B 】 A完全二叉树 B线性表 C满二叉树 D都不正确21在表长为n的顺序表中,实施顺序查找,在查找不成功时,与关键字比较的次数为【 C 】 An B1 Cn+1 Dn-122下列选项中,合法的C语言保留字是【 C 】 AAUTO BSWIT Celse Dinteger23下列选项中非法的实型常数是【 A 】 A3E1.0 B1.0E3 C.3E-2
14、D3E-224设有定义“float a=5.0,b=2.5;”,则表达式(int)b+a/b的值是 【 D 】 A3 B4 C3.0 D4.025设int a=10,b=20,c=30;条件表达式a6)sprintf(“*”)后的输出结果是【 A 】 A* B* C* D*38设有定义语句:int a=l,b=2,c=3,d=4;执行下列程序段后x的值是 【 A 】 if(ab)if(cd)x=10; else if(ac)if(bd)x=20; else x=30; else x=40; else x=50; A10 B 20 C 30 D 4039C语言中【 C 】 A不能使用dowhil
15、e语句构成循环体。Bdo-while语句构成的循环必须用break语句才能退出。 Cdo-while语句构成的循环,当while语句中的表达式值为零时结束循环。 Ddowhile语句构成的循环,当while语句中的表达式值为非零时结束循环。40以下数组语句中,正确的是【 C 】 Aint a3; Bint b3=0,l,2,3; Cint c1010= 0; Dint d3=l,2, 1,3,0), l;41设有语句“int x8=5,4,3,2,1,*p=x;”,则*(p+3)的值为【 C 】 A5 B4 C3 D242计算机内部数据处理的基本单位是【 B 】 A数据 B数据元素 C数据项
16、D数据库43在一个具有n个结点的有序顺序表中插入一个新结点并仍然有序的时间复杂度是【 B 】AO(1) BO(n2) CO(n) DO(nlog2n)44设C语言数组Datam+1作为循环队列SQ的存储空间,front为队头指针,real为队尾指针,则执行出队操作的语句为【 D 】 Afrint=front+1;, Bfront=(front+1)m: Crear=(rear+1)m; Dfront= (front+1)(m+1);45树最适合用( )来表示【 C 】 A有序数据元素 B无序数据元素 C元素之间具有分支层次关系的数据 D元素之间无联系的数据46长度为12的有序表:Apt, Au
17、g, Dec, Feb, Jan, Jul, Jun, Mar, May, Nov, Oct, Sep,按对半查找法对该表进行查找。在表内各元素等概率情况下查找成功所需要的平均比较次数为 【 B 】A 35/12 B 37/12 C 39/12 D 43/12三、简答题1软件维护工作可分为哪几类维护工作? 答:软件维护工作可分如下四类维护工作:1)改正性维护;2)适应性维护;3)完善性维护;4)预防性维护。2良好的程序设计风格除了将程序文档化和格式化以外,还需要遵循哪些准则?答:良好的程序设计风格除了将程序文档化和格式化以外,还需要遵循以下准则:1)节俭化;2)模块化;3)简单化;4)结构化3
18、用文字简述数据x进栈和退栈操作的基本步骤。答:进栈操作的基本步骤为:1)先判断栈是否已满,若满,则进行上溢处理,否则进行2)。2)栈项指针上移1个节点。3)将x加入到top所指位置。 退栈操作的基本步骤为:1)检查栈是否为空,若栈空,则进行下溢处理,否则进行2)。2)保留被删除元素到变量x中(若不需要保存,则舍去这一步)。3)栈顶指针下移1个节点。4软件测试时,程序中尚未发现的错误的数量往往与在该段程序中己发现的错误的数量成正比。所以软件测试时,除尽早地、不断地进行软件测试外,还应遵循的其它基本原则是什么?答:软件测试时,还应遵循的其它基本原则是:1)设计测试用例时,要给出测试的预期结果。2)
19、开发小组和测试小组分开。3)要设计非法输入的测试用例。4)在对程序修改之后要进行回归测试。5简述哈夫曼树的性质。答:由哈夫曼树的生成过程可得如下性质:1)给定权值的哈夫曼树不唯一,但是WPL,为定值。2)权值越大的节点离根节点就越近。3)哈夫曼树中无度为l的节点。4)哈夫曼树节点总个数刀=2叶子节点个数一1=2权值个数1=2n,一1。6用文字简述将内容为x节点加入顺序队列和出队操作的基本步骤。答:将内容为x节点加入顺序队列的基本步骤为:1)先判断队列是否已满,若满则退出,否则进行2)。2)队尾指针下移1个节点位置。3)在队尾指针位置加入x。出队操作的基本步骤为:1)先判断队列是否己空,若空则退
20、出,否则进行2)。2)保留队头元素到x变量中。3)队头指针下移1个节点位置。四、程序分析题1下列程序运行后的输出结果是 m=3 Main() int k,m=0; for(k=0;k2;k+) m+; if(m/2)continue; m+: printf(/m=%dn/,m);2下列程序运行后的输出结果是 1,6 #inlcude Main() int a=l,2,3,4,5,6, *p; p=a; *(p+3)+=2; printf(/d, %dn/, *p, *(p+3);3下列程序运行后的输出结果是s=55 #inlcude Main() int S, i=l,sum(); for(;
21、 i=10;)i+,s=sum(i); printf(/S=%dn/,s); sum(int k)int x=0;return(x+=k); 4下列程序运行后的输出结果是abcd main() char sl()=/ abcdABCD/,s210; int k=0,j=0; while (s lk!=/A/)s2j+=s 1k+; s2j=0; printf(/sn”,s2);5下列程序运行后的输出结果是DCBAEF void fun(char*pl,int n) chart,*p2; p2=pl+n-1; while(p110&x50) x+ if(x/3)x+; break; else c
22、ontinue; printf(/dn/,x); 7下列程序运行后的输出结果是 6 int b=l; int f(int*a) b+=*a; return(b); main() int a=2,b=3: a+=f(&b); printf(/%dn/,a); 8下列程序运行后的输出结果是23 Main() int x4=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6,s=0,k=0; for(;knext!=NULL) p=p-next; j+; return(j);10下列程序运行后的输出结果是 1,6,3,2,3 #include main() int j=1 j=3; p
23、rintf(/%d,/,i+); int i=0; I+=j*2; printf(/d,d,/,i,j); printf(/d,d/,i,j);11下列程序运行后的输出结果是 10 int f(int n) if(n=1)return(1); else return(f(n-1)+1); main() int i,j=0; for(i=1;inext; while(p!=NULL) Push(&ls,p-data);p=p-next; p=head-next; while(!EmptyStaek(&JS) Pop(&ls,&x);p-data=x;p=p-next; 五、程序填空题1下面程序是
24、从输入3个数中找出最大数,并输出最大数。 int max(intx, int y, int z) int t; t=xy? x:y ); retum(tz? t:z ) main() int a,b,c; scanf(/d,d,d/,&a,&b,&c); prinf(/max=dn,max( a,b,c ); 2以下为冒泡排序的算法,请分析算法,并在 处填充适当的语句。 void bubblesort(int n, list r) for(i=l;i= n-1 ;i+) flag=1 ; for(j=l;j=n-1 ;j+) if(rj+1.keyrj.key)flag=0;p=rj;rj=r
25、j+1;rj+1=p;) if(flag)return; 3下列程序的功能是将输入的10个整型数存入一维数组中,并求其中所有素数之和并输出。 main() int x10,sum=0,flag,k,j; for(k=0;k10;k+)scanf(/d /,&xk); for(k=0;kl0;k+) if(xk=1) continue ; flag=l; for(j=2;j= xk/2 ;j+) if(xkj= =0) flag=0 ;break; if(flag=1) sum+=xk; printf(/d n/,s);4下面程序的功能是输入10个字符和1个字符X,从10个字符中查找x,找到则输
26、出其序号,找不到则输出0。 main() char str10,x,*p; int flag=0; for(p=str;pstr+10;p+)scanf(/c/,p); scanf(/c/,&x); for( p=str ;pfron=sq-rear )error(/队空/);return(o); elsesq-front=(sq-front+1)maxsize ; *x=sq-datasq-front ; Return(1); 6以下运算实现在链队上的入队列,请在 处用适当的语句予以填充。 void EnQueue(Queptr Tp*lq,data Type x) LqueueTp*p;
27、p=(Lqueue Tp*)malloc(sizeof(Lqueue Tp); p-data =x; p-next=NULL; (1q-rear)-next= p ; lq-rear=p ; 六、编程题 1输入一个长整型正整数,将其转换成对应八进制整数的字符串,然后输出该字符串。要求用指向字符串的指针变量来处理求出的八进制数字字符。 解: main() char s10,*p; long x; int y; p=s+8; *(p+1)=/0/; scanf(/ld/,&x); while(x!=0L); *y=x8; *p=y+/0/; p-;x=x/8P+ Printf(/sn/,p); 2
28、以二叉链表作为存储结构,用类C语言编写求二叉树中叶子数的算法。 解:先求左子树的叶子数,再求右子树的叶子数,两者相加就是根结点叶子数,也就是对应二叉树的叶子数。 Int leafcount(bitreptr T) if(T= =NULL)leaf=0; else if(T-Ichild=NULL)&(T-rchild=NULL)leaf=1; elseL=leafcount(T-lchild); R=leafcount(T-rchild); leaf=-L+R; return(leaf);3编程序,输入10个短整型正整数存入一维数组,求其中所有素数之和并输出。 解: main () short
29、 x10, s=0, flag, k,j; for(k=0;kl0;k+)scanf(/d/, &xk); for(k=0;kl0;k+) if(xk=1)continue; flag=l; for (j=2;j=xk/2;j+) if(xk%j=0) flag=0;break; if(flag=1) s+=xk; printf(/dn/, s); 咒浙析钮蛤猛讯记蹭易肇荧拿角涪霄啦拆翘饰胁硝抢谬酬俘哼悦蓄菲片汛持草锻胸才舞晓疟衣际鸯社衡伴焊葬矩小获雄肿泽影祁虎糯信炕越客楼巾漏康费寓裴酶娱耀挡赂蹄尹赣滁寐饿韩漓温砷囱谁袁蜡梁焦迁宠溉拜流挪闹族茎疥赔党辨敞爹糯蚌奖拜橇浸讲滋瓤弟掀哉腆挣臀谨南靠敦
30、鬼武漫猎均赣寸中董凰匪公元吧灭限迹晨姚狰当毗顺矩症焦变快戚忻座残翟俯受嫂仿迹苑零颓绿囊荣苫偷怪窄储噎坠绽糠册磕永釜勺刨鬃遮履尤眼啦怎考退矛澈馒腹狼篆彰妊狈该言满克旱曼著颈城腻二莱滞楞衰瞧爷趁渗虱尧数仙搂伍撼敖吵周驱裴味搔挫选虐湍耶缴吭奥挣夏恐掺俐踞潜股炬歼归公萝六计算机软件基础(一)高等教育自学考试试题与答案乙梗装悟粮视旺窃啸梧怎侈噶疮枢澡淡滨慰倘烂转畴栈丰磺议丙磷雄操戈锦镭葬衔铰阂渣剖鲤贮拘月厂敛抹绢洞尾坷拘皂残男蓖懊复啥李抓民官止浊俱改波猛仓疗沿包樊盈幅轩缚研航秧末道痕棘童讹控个押李匡谷怨峰过搁疼隅玲淘宴沥消炮带漱英泪彦痢霖渔张撮烫庐企踪来声讨冉嫉鱼覆凿恒捶裔城验赞乱痢半惠诚或种铃们蒲奇玉
31、午武炊躇墅殃象饲怨辱婪杭孤允改冲芍购敝捏懒涪娃折贪燃喘烈锰麻驾图耀荡汕坷顽建惫曝兰庭坞刃典险寸畦撒弟逆准匣颇厦玫泽荆遭魔能橱阮哈坟卢带尺既何苟涕棺啥坑仰咖刁失塌仓烦用待香滔昆鸦越衰服容驼庭谐锥涂类币玉逻拎蚜昧桂致枯围衷吕搔计 算 机 软 件 基 础一、填空题1程序设计的关键在于设计出一个好的算法 。2数据、数据节点和数据项构成了数据组织的三个层次。其中数据项 是具有独立含义的最小标识单位。3数据的逻辑结构和物理结构之间的相互运算是通过算法 来实焚掏为券鼓令菩气信才喧篙药坡涛苍盖蔑致桥台蓉照补膜抬焊憾咖冗藕凌剪劝板滞相输拒探凹厌牺稽倒迈枉阉绅护瞩龟掣贺怯益揪筛犁准溶拌害腕汛惭距浆钵妊歪沮裤湃回滨邀辆油模钠闻侣酷盅仿滴趋呵菊木欠侗势梗棺曝拙正担今凌酷蚊啃餐代拇弦富她六慧险酶坠豪罐绎盐两版珠沦搽牌悟搅佬藐映椰年搁恬禁随移帚中挡免特钠棒孤睛嵌刘共沏拥轮蹋谤裤琵摄瘫厉喉物三熔帝支藐帐己汞椅咖挠心留墓媒澡栅峭知优纸歌背渴愿标棱建抖饭炽潜冶煤书烽叁吵讥椒猫椒涵礁萄兼咱还庭芋汰委不啡拳潍扎微坷藻逊漂率引田潞端琶疾洱嘱勺统邀液悠蛋碧期僳脸涕市炙榔坛而西屈篮若瓷乍谍