1、全国自考(计算机软件基础)模拟试卷 1 及答案与解析一、单项选择题1 一个完整的 C 程序由【 】构成。(A)一个主程序和一个子程序(B)一个主函数和若干个子函数(C)一个主函数和一个其他函数(D)一个主函数和若干个子程序2 下列叙述中错误的是 【 】(A)一个 C 程序至少包含一个函数(B)一个 C 程序可以包含一个主函数和若干个其他函数(C)主函数和其他函数之间可以相互调用(D)C 程序的基本单位是函数3 有以下程序:#includeint fun(int a,int b)if(b=0)return a;elsereturn(fun(-a,-b);main()printf(“ dn“ ,f
2、un(4,2);程序的运行结果是 【 】(A)1(B) 2(C) 3(D)44 局部变量的作用域是 【 】(A)该变量所在的程序(B)该变量所在的文件(C)主函数(D)该变量所在的函数5 下列程序的输出结果是 【 】#includefun(int x)int p;if(x=0x=1)return(3);p=xfun(x 一 2);return p;main()printf(“ dn“ ,fun(9);(A)7(B) 2(C) 0(D)36 下列关于 C 语言程序的叙述,正确的是 【 】(A)main()所在行的末尾必须有 “;”(B)主函数的函数体不一定用花括号() 括起来(C)一个完整的 C
3、 程序可以没有任何函数(D)C 语言程序的简单语句必须用分号(;)作为语句的结束符7 以下程序的输出结果是 【 】#includeint f()(static int i=0;int s=1:s+=i;i+;return(s);main()(int i,a=0;for(i=0;istruct st int x,y;)data2=1,10,2,20; main() struct st*p=data;printf(“d,“,p 一y) ;printf(“dn“,(+p)一 x);程序的运行结果是 【 】(A)10,1(B) 20,1(C) 10,2(D)20,2二、填空题16 若有语句:int a
4、=5,y=6;y=a+;,则 y 的值是_。17 表示整数 x 的绝对值大于 5 时值为“真 的 C 语言表达式是 _。18 以下程序运行后的输出结果是_。#includemain()int p=30;printf(“dn“,(p 30? p10:p3);19 若有定义:int a=10,b=9,c=8;,接着顺序执行下列语句,执行后变量 b 的值是_。c=(a 一=(b 一 5);c=(a11)+(b 一 3);20 若有定义语句:int m=5,y=2 ;,则执行表达式 y+=y 一=m*=y 后,y 的值为_。21 do-while 语句中 while 后的表达式的值最终应达到 _,才能
5、正常退出循环。22 下列程序的输出结果是_。#includemain()char b=“Hello you“;b5=0;printf(“sn“,b);23 下列程序的输出结果为_。#includemain()(int x=1,y=2,z=0;if(x=2)z=x,x=y,y=z;printf(“d,oA dn“,x,y);24 已知:int a10=9,7,1,5,6;,则数组元素 aa2=_。25 已知:char str15;,str 数组的最后一个元素是_。三、简答题26 某公司货运收费标准是:本地货运每吨运费 10 元。外地货运每吨运费 20 元,距离 500 公里(含) 以上每吨运费增
6、加 5 元。外地货运量 100 吨(含)以上时运费增加5。用判定树表达运费的计算方法。注:设货运量为 N 吨,距离为 L 公里,运费为 W 元。27 写出如下图所示的二叉树的中序遍历序列。28 对于图 G-1 (1)从顶点 1 出发,按邻接顶点序号由小到大顺序给出广度优先遍历的顶点序列。 (2)给出用克鲁斯卡尔法构造的最小生成树。29 已知关键字序列为46,57,84,32,73,36,15,48,90,20 ,要求:(1)按照已给关键字的先后次序构造一棵二叉排序树。(2)在等概率的情况下,计算已构造的二叉排序树查找成功的平均查找长度(ASL)。四、程序分析题30 写出下列程序的功能。#inc
7、ludemain()(int u =1,5,6,8,3,5,2,6,8,9;int i;float x:x=0:for(i=0;inext;while( )Push(&ls,pdata); ;p=headnext;while(!EmptyStaek(ls)Pop(&ls, x);p 一data=x ;p=p 一next;五、程序设计题34 已知银行整存整取存款不同期限的月利息率分别为:要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的总和。35 设二维数组 A66表示 6 节点无向图的邻接矩阵,编写程序,从键盘上输入邻接矩阵的数据,求出该无向图的边数以及各个节点的度,输出所求结果。全
8、国自考(计算机软件基础)模拟试卷 1 答案与解析一、单项选择题1 【正确答案】 B【试题解析】 一个完整的 C 程序是由一个主函数和若干个子函数构成的,并且程序的执行总是从主函数开始。2 【正确答案】 C【试题解析】 主函数可以调用其他函数,但是其他函数不能调用主函数。3 【正确答案】 B【试题解析】 因为题中实参为 4 和 2,所以在函数 fun 中,形参 a=4,形参b=2,不满足 if 语句的判定条件,所以执行 else 子句,继续调用函数 fun,在此过程中 a、b 的值总是每调用一次函数则都减 1,直至 a=2,b=0 为止,所以程序最后的结果为 2。4 【正确答案】 D【试题解析】
9、 在函数内部定义的变量称为局部变量,局部变量的作用城就是其所在的函数。5 【正确答案】 A6 【正确答案】 D【试题解析】 一个完整的 C 程序可由一个主函数 main 组成,或由一个主函数和若干个子函数构成,main()所在行的末尾没有“;”,主函数的函数体必须用花括号括起来。7 【正确答案】 C8 【正确答案】 A9 【正确答案】 B【试题解析】 strcov(str1,str2) 的功能是将 str2 的内容复制到 str1 中;str1en(str1)的功能是求字符数组所表示串的长度。10 【正确答案】 A【试题解析】 *p=&b,*q=a;使指针 p 指向 b,指针 q 指向 a,则
10、*p 和 b 为同一个存储空间,则*q 和 a 为同一个存储空间,所以与 b=a;等价的语句是*p=*q;。11 【正确答案】 B【试题解析】 选项 A、B、C 中的“p+=2”使 p 指向敖组元素 x2(其值为 3)。选项A 中的“*+p”是先使 p 指向数组元素 x3,再取其值 4。选项 B 中的“*p+”是先取 P 指向的数组元素 x2,其值为 3,然后使 p 指向数组元素 x3。选项 c 和 D 中的表达式的值均为 4。12 【正确答案】 D【试题解析】 指针就是它所指对象的地址。指针变量就是用来存放指针(地址)的变量。13 【正确答案】 C【试题解析】 在给定的结构类型的数据定义语句
11、申,struct 是定义结构类型时的系统保留字(关键字) ;xyz 是用户任意选取的标识符,作为结构类型的名称;struct xyz 可以看成是用户定义的一种结构类型的数据类型符,以后可以用它来定义这种结构类型的变量、数组、指针变量等;x、y、z 是这种结构类型的成员名;“xyz1”是这种结构类型的变量名。14 【正确答案】 A15 【正确答案】 C二、填空题16 【正确答案】 517 【正确答案】 x5“x518 【正确答案】 319 【正确答案】 320 【正确答案】 一 1621 【正确答案】 022 【正确答案】 Hello23 【正确答案】 2,224 【正确答案】 725 【正确答
12、案】 str14三、简答题26 【正确答案】 27 【正确答案】 HDIBEAJFKCLGM28 【正确答案】 (1)广度优先遍历的顶点序列:1 2 5 6 7 3 4 (2)最小生成树:29 【正确答案】 (1)二叉排序树如下: (2)在等概率的情况下,该二叉排序树查找成功的平均查找长度为26*或 29。四、程序分析题30 【正确答案】 本程序的功能是:计算一维数组中所有元素的平均值。31 【正确答案】 ABCDEFGHIJKLMMLKJIHGFEDCBA32 【正确答案】 jstrj 一 133 【正确答案】 p!=NULLp=p 一next五、程序设计题34 【正确答案】 #includ
13、emain()int money,year;float n;printf(“input money and year:“);scanf(“d,d“,&money,&year);switch(year)case 1:n=063;break;case 2: n=066;break;case 3: n=069;break;case 5: n=075;break;case 8: n=084bteak;default:n=1:if(n=1)printf(“data error!“);else printf(“total=2fn“,money*(1+n);35 【正确答案】 #includemain()int a66,i,jb,s;for(i=0;i6;i+)for(j=0;j6;j+)scsnf(“d“,&aij);s=0;for(i=0;i6;i+)b=0;for(j=0;j6;j+)if(aiEj=1)b=b+1;printf(“d node degree :dn“,i,b);s=s+b;printf(“The sum isdn“,s2);