您好,欢迎访问三七文档
C语言第一大题每题1分1、C语言程序从main()函数开始执行,所以这个函数要写在____。A)程序文件的开始B)程序文件的最后C)它所调用的函数的前面D)程序文件的任何位置2、将空格符赋给字符变量c,正确的赋值语句是____。A)c='\0'B)c=NULLC)c=0D)c=323、已知intx=1,y;执行下述语句后变量x的值是____。y=++x5&&++x10;A)1B)2C)3D)44、已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。A)0B)1C)5D)65、下面的for语句。for(x=0,y=10;(y0)&&(x4);x++,y--);A)是无限循环B)循环次数不定C)循环执行4次D)循环执行3次6、以下程序的输出结果是____。main(){intn=1;printf(%d%d%d\n,n,n++,n--);}A)111B)101C)110D)1217、下面程序的输出结果是____。main(){chars[12]=abook;printf(%.4s,s);}A)abook!B)abook!四个空格》C)aboD)格式描述错误,输出不确定8、以下程序的输出结果是。main(){char*s=12134211;intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){case'1':v1++;case'3':v3++;case'2':v2++;default:v4++;}printf(v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);}A)v1=4,v2=2,v3=1,v4=1B)v1=4,v2=9,v3=3,v4=1C)v1=5,v2=8,v3=6,v4=1D)v1=4,v2=7,v3=5,v4=89、下面程序的输出结果是____。main(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;contiue;case'E':k=k+10;break;default:k=k/3;}k++;}while(c'C');printf(k=%d\n,k);}A)k=1B)k=2C)k=3D)k=410、下面程序的输出结果是____。main(){inti,j,k=10;for(i=0;i2;i++){k++;{intk=0;for(j=0;j=3;j++){if(j%2)continue;k++;}}k++;}printf(k=%d\n,k);}A)k=4B)k=8C)k=14D)k=18第二大题每题2分1、有以下程序段:s=1.0;for(k=1;k=n;k++)s=s+1.0/(k*(k+1));printf(%f\n,s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;①;k=0;do{s=s+d;②;d=1.0/(k*(k+1));}while(③);printf(%f\n,s);2、下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。main(){inti,j;for(i=0;①;i++){j=i*10+6;if(②)countinue;printf(%d,j);}}3、下面程序的功能是将字符串s中所有的字符'c'删除。请选择填空。#includestdio.hmain(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c')①;s[j]='\0';puts(s);}4、下面的函数index(chars[],chart[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。index(chars[],chart[]){inti,j,k;for(i=0;s[i]!='\0';i++){for(j=i,k=0;①&&s[j]==t[k];j++,k++);if(②)return(i);}return(-1);}5、以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。#includestdio.hage(intn){intc;if(n==1)c=10;elsec=①;return(c);}main(){intn=5;printf(age:%d\n,②);}第三大题5分输入n值,输出如图所示回型方阵。参考答案第一大题1、答案:D2、答案:D3、答案:B注释:当通过一个运算对象即可决定逻辑运算&&的结果时,则对另一个运算对象不做处理。4、答案:C5、答案:C6、参考答案:B注释:C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n--,再处理n++,最后处理n,而且每一个表达式作为一个处理单元,也就是说在不同的表达式中自增自减运算是单独考虑的。7、参考答案:C注释:在输出格式描述%m.ns中,m是输出总长度,n是实际字符的个数,这里m没有给出,则输出总长度就是实际输出字符的个数。8、参考答案:D9、参考答案:D注释:siwtch语句的表达式中,变量c是后缀的增一运算,第一次执行do-while循环时,执行case'A'后面的语句。10、参考答案:C注释:C语言允许在程序块(分程序)内说明变量,如果在程序块内说明的变量和程序块外的变量同名,在块外说明的变量在块内是不可见的。第二大题1、答案:①d=1②k++③k=n2、答案:①i=9②j%3!=03、答案:①s[j++]=s[i]4、答案:①t[k]!='\0'②t[k]=='\0'5、答案:①2+age(n-1)②age(5)注释:由于程序是递归算法,因此首先要建立问题的递归数学模型。根据原题的描述可以写出如下递归公式:age(n)=10(n=1)age(n)=2+age(n-1)(n1)对照程序和递归公式可以看出:n的含义是第n位学生。很显然,要求第5位学生的年龄,②处应当是调用函数age,实参的值应当是5。在①处应该是函数的递归调用,根据递归公式,应当填写:2+age(n-1)。第三大题分析:此题的关键还是要找到输出数字aij和行列数i、j的关系。为此将图形分为四个区域如下图:3333332223321233222333333(此图n为5)在左上区域,即i=(n+1)/2、j=(n+1)/2时,输出数字为(n+1)/2-i+1和(n+1)/2-j+1中的大者,记为max{(n+1)/2-i+1,(n+1)/2-j+1};在右上区,即i=(n+1)/2、j(n+1)/2时,输出数字为max{(n+1)/2-i+1,j-n/2};在左下区,即i(n+1)/2、j=(n+1)/2时,输出数字为max{i-n/2,(n+1)/2-j+1};在右下区,即i(n+1)/2、j(n+1)/2时,输出数字为max{i-n/2,j-n/2}。参考答案:#definemax(x,y)((x)(y)?(x):(y))main(){inti,j,n;printf(\nPleaseEntern:);scanf(%d,&n);for(i=1;i=n;i++){for(j=1;j=n;j++)if(i=(n+1)/2)if(j=(n+1)/2)printf(%4d,max((n+1)/2-i+1,(n+1)/2-j+1));elseprintf(%4d,max((n+1)/2-i+1,j-n/2));elseif(j=(n+1)/2)printf(%4d,max(i-n/2,(n+1)/2-j+1));elseprintf(%4d,max(i-n/2,j-n/2));printf(\n);}}数据结构第一大题每题2分1、在一个长度为n的顺序线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x与元素的平均比较次数,假定查找每个元素的概率都相等)为()。AnBn/2C(n+1)/2D(n-1)/22、在一个单链表中,若q所指结点是p所指结点的前驱结点,若在q与p之间插入一个s所指的结点,则执行()。As→link=p→link;p→link=s;Bp→link=s;s→link=q;Cp→link=s→link;s→link=p;Dq→link=s;s→link=p;3、栈的插入和删除操作在()进行。A栈顶B栈底C任意位置D指定位置4、由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()A24B71C48D53第二大题每题6分1、已知一组记录的排序码为(46,79,56,38,40,80,95,24),写出对其进行快速排序的每一次划分结果。2、一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)=key%13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。第三大题5分假定从键盘上输入一批整数,依次为:786345309134–1,请写出输出结果。#includeiostream.h#includestdlib.hconsstintstackmaxsize=30;typedefintelemtype;structstack{elemtypestack[stackmaxsize];inttop;};#include“stack.h”Voidmain(){stacka;initstack(a);intx;cinx;while(x!=-1){push(a,x);cinx;}while(!stackempty(a))coutpop(a)””;coutend1;}该算法的输出结果为:参考答案:第一大题题号1234答案CDAB第二大题1、划分次序划分结果第一次[382440]46[56809579]第二次24[3840]46[56809579]第三次24384046[56809579]第四次2438404656[809579]第五次243840465679[8095]第六次24384046567980952、78150357452031233612查找成功的平均查找长度:ASLSUCC=14/10=1.4第三大题1、该算法的输入结果是:3491304563780123456789101112数据库第一大题每题2分1、下述说法中没有体现数据库系统特点的是()A.数据面向应用程序B.数据结构化C.数据冗余小D.数据共享性高2、在数据库技术中,独立于计算机系统的模型是()。A.E-R模型B.层次模型C.关系模型D.面向对象的模型3、SQL中的视图提高了数据库系统的()A.完整性B.并发控制C.隔离性D.安全性4、关系模型基本的数据结构是()A树B图C索引D关系5设关系R和S的属性个数分别为r和s,则(R×S)操作结果的属性个数为()A.r+sB.r-sC.r×sD.max(r,s)6、要求“学生”关系的“性别”属性只能取0或1,这属于关系的()A.参照完整性规则B.实体完整性规则C.用户自定义完整性规则D.域完整性规则7、下面不属于实现安全性措施的是()A.授权规则B.数据加密C.视图机制D.日志文件8、给出如下事务CREATETABLEdwaine.mytab(col1INT,col2INT)INSERTINTOdwaine.mytabVALUES(1,2)INSERTINTOdwaine.mytabVALUES(4,3)ROLLBACKSQL语句SELECT*FROMdwaine.mytab的返回值为()A.COL1COL2----------------------没有数据被选取B.COL1COL2----------------------12选择了1行数据C.SQLCODE-2
本文标题:软件工程基础试题五
链接地址:https://www.777doc.com/doc-2011323 .html