2019年10月自学考试02243《计算机软件基础(一)》试题.docx
2019年10月高等教育自学考试计算机软件基础(一)试题课程代码:02243一、单项选择题1 .下列关于C程序运行说法正确的是A.从程序中的main函数开始B.按程序结构顺序执行C.从用户指定的地方开始D.由函数说明部分决定2 .若变量a,b,c已正确定义并赋值,下列合法的C语言表达式是A.a:=b+lB.a=b=c+2C.18.5%3D.a=a+7=c+b3 .设有变量定义:inli=010J=10;则执行语句:printf(',%d,%dn",+i,j-);结果为:A.11,10B.9,10C.010,9D.10,94 .若变量a,b,t己正确定义,不能实现将a和b的值进行交换的选项是A.t=a,a=b,b=tB.a=a+b,b=a-b,a=a-bC.t=b,b=a,a=tD.a=t,t=b,b=a5 .设m、n、a、b、c、d均为2,执行(m=a=b)(n=c=d)后,m,n的值分别是A.2,2B.2,1C.1,2D.1,16 .下列程序的运行结果是#include<stdio.h>Voidmain()inti;for(i=l;i<=5;i+)if(i%2=0)printf("Y");elsecontinue;prinff("N");)IA.YNYNYNB.NYNYNYC.YNYND.NYNY7 .下列程序的运行结果是voidmain()ihta33-1,2,3A5A79t;inti;for(i=0u<3ii÷÷)printf(',%d",ai2-i);1)A.357B.369C.159D.1478 .下列程序的运行结果是voidmain()intx=2,i;for(i=l;i<=2;i+)printf("%d",Fun(x);intFun(intx)inta=0;staticintb=1;+a;+b;return(x+a+b);)A.56B.55C.34D.339 .若已定义一维数组:inta10;则在下列表达式中不能表示al的地址是A.a+1B.a+C.<fca0+lD.&al10 .设有一结构体类型变量PerSOn定义如下:struct dateint year;年int month;月int day;/ 日structstucharname20;姓名charsex;性别structdatebirthday;struetstuperson;定义结构体变量person若要对结构体变量PeXSOn的出生月份进行赋值,下列语句能正确赋值的是A.monlh=8B.birthday.month=8C.person.birthday.month=8D.person,month=811 .树最适合用来表示A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据12 .二叉树的第k层的节点数最多是A.2k-lB.2k+lC.2k-1D.2kd13 .若有18个元素的有序表存放在一维数组A19中,第一个元素放Al中,现进行二分查找,则查找A3的比较序列的下标依次是A.1,2,3B.9,5,2,3C.9,5,3D.9,4,2,314 .设有6个节点的无向图,为了确保该图是一个连通图,边数至少应有A.5条B.6条C.7条D.8条15 .软件设计包括两个阶段,分别是A.接口设计和结构设计B.数据设计和概要设计C.结构设计和过程设计D.总体设计和详细设计二、填空题16 .能正确表示“当X的取值在10,20的范围内为真,否则为假”的表达式是17 .表达式3*9%2+92*5的值为。18 .设i,j,k均为血型变量,则执行完下列的for语句后,k的值为。for(i=0,j=5;i<=j;i+,j-)k=i+j;19 .在C语言中,二维数组元素在内存中的存放顺序是。20 .C语言规定,如果简单变量作为实参时,它和对应的形参之间的数据传递方式。21 .设有如下变量定义及赋值语句:inta10=10,20,30,40,*p;p=&al;则pl的值是。22 .C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须23 .在线性结构中,元素之间存在的对应关系。24 .在树形结构中,叶节点没有后续节点,其余每个节点可以有的后续节点。25 .已知二维数组AMn采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A00),则Aij的地址是o三、简答题26 .请写出算法的定义,并说明算法描述的方法。27 .请写出数据结构中逻辑结构的定义,并说明数据结构中逻辑结构的分类。28 .设有一个输入数据的序列是46,25,78,62,12,80,请画出从空树起,逐个输入各个数据而生成的二叉搜索树。29 .什么是软件危机?软件危机主要包含哪两项问题?四、程序分析题30 .写出下列程序的运行结果voidmain()intnum,i;fr(num=2;num<=8;num+)(fbr(i=2;i<=num-l;i+)if(num%i=0)break;if(i=num)printf("%4d",num);)31 .写出下列程序的运行结果voidmain()inta3=9,8,7,3,6,2,4,6,8);inti,j,sum1=0,sum2=0;for(i=0;i<3;i+)for(j=0;j<3;j+)if(i=j)suml=suml+aij;if(i÷j=2)sum2=sum2+aijiI)printf("sum1=%d,sum2=%dn",sum1,sum2);)32 .写出下列程序的运行结果#include<string.h>voidFun(char*s,intn)charI,p,*q;p=s;q=s+n-1;while(p<q)t=*p;*p=*q;*q=t;p+;q-;)voidmain()(chars"abcdefg"Fun(s,strlen(s);puts(s);I33 .以下为二叉树中序遍历算法,左子节点用Lehild表示,右子节点用RChild表示,请将程序补充完整。voidFunTree(structnode*p)if(p!=NULL)( ;printf("%c",p->data); /五、程序设计题34.编程完成如下图形,变量n和Ch分别表示金字塔层数和输出的字符。如果输入:4*,则输出如题34图a所示;如果输入5A,输出如题34图b所示。4*5A*A*AAAAA*AAAAAAA*AAAAAAAAA题34图a题34图b35.函数COUmX的功能是返回单链表HL中节点数据域dala值等于X的节点数,请补充完整COUmX函数。/include"stdio,h,'streetLNode(chardata;streetLNode*next;);structLNodend10;inta='a','b','e,d','a','e','a'f,g','h');intCountX(LNode*HL,charx)(请编写本函数)voidmain()(inti,countX;charX;structLNode*head,*p;printf("InputXplease:'1);X=gelchar();head=&nd0;ndO,data=aO;p=head;fdr(i=l;i<10;i+)ndi.data:ai;p->next=&ndi;p=p->next;countX:CountX(head,X);Prinlf(,总共有d个%c字符n",X,coUnIX);