收藏 分享(赏)

专接本计算机C语言程序设计模拟试题及答案(一).pdf

上传人:weiwoduzun 文档编号:4219334 上传时间:2018-12-16 格式:PDF 页数:19 大小:281.24KB
下载 相关 举报
专接本计算机C语言程序设计模拟试题及答案(一).pdf_第1页
第1页 / 共19页
专接本计算机C语言程序设计模拟试题及答案(一).pdf_第2页
第2页 / 共19页
专接本计算机C语言程序设计模拟试题及答案(一).pdf_第3页
第3页 / 共19页
专接本计算机C语言程序设计模拟试题及答案(一).pdf_第4页
第4页 / 共19页
专接本计算机C语言程序设计模拟试题及答案(一).pdf_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、专接本计算机C语言程序设计模拟试题及答案(一)一、单项选择题(每小题2分,共20分)1.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( )A)p=2*(int*)malloc(sizeof(int);B)p=(int*)malloc(2*sizeof(int);C)p=(int*)malloc(4*2);D)p=(int*)calloc(2,sizeof(int);2.设有intx=11;则表达式(x+*1/3)的值是( )A)3B)4C)11D)123.下列程序执行后的输出结果是(小数点后只写一位)( )#includevoidmain()doubled;floa

2、tf;longl;inti;i=f=l=d=20/3;printf(“%d%ld%f%fn“, i,l,f,d);A)666.06.0B)666.76.7C)666.06.7D)666.76.04.下列变量定义中合法的是( )A)short_a=1-.le-1B)doubleb=1+5e2.5C)longd1=0xfdaLD)float2_and=1-e-3;5.设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A)k+ B)k+=1 C)+k D)k+16.有以下程序,其中%u表示按无符号整数输出,输出结果是( )#includevoidmain()unsi

3、gnedshortx=0xFFFF;/*x的初值为十六进制数*/printf(“%un“,x);A)-1 B)65535 C)32767 D)0xFFFF7.有以下程序,输出结果是( )#includevoidmain()inti,j;for(i=1;i#includevoidmain()voidinverse(charstr);charstr100;printf(“inputstring:“);scanf(“%s“,str);inverse(str);printf(“inverse string:%sn“,str);voidinverse(charstr)chart;inti,j;for(i

4、=0,j=strlen(str);ivoidmain()inta11=1,4,6,9,13,16,19,28,40,100;inttemp1,temp2,number,end,i,j;printf(“arraya:n“);for(i=0;iend);elsefor(i=0;inumber);ai=number;for(j=i+1;jvoidf(int*q)inti=0;for(;if(intb,intm,intn)inti,s=0;for(i=m;iintf()staticinti=0;ints=1;s+=i;i+;returns;voidmain()inti,a=0;for(i=0;ivoi

5、dmain()charch25=“6937“,“8254“,*p2;inti,j,s=0;for(i=0;i0;j+=2)s=10*s+pij-0;printf(“%dn“,s);四、按要求编写下列程序(每小题13分,共26分)o编写程序,用函数的递归调用求x的n次方的值,其中n为正整数。o输入正整数m和n,如果m+n是质数,输出“Yes”,否则,输出“No”。要求定义并调用函数myfun(x)来判断x是否为质数,在下面空出的位置完成程序,不能定义新的变量,可不用已定义的某些变量。#include#includevoidmain()intm,n;intmyfun(intx)intk;参考答案一

6、、单项选择题(每小题2分,共20分)AAACABBADC二、完成下列的程序填空(每空3分,共18分)1.t=stri;stri=strj-1;strj-1=t;2.a10=number;temp1=ai;temp1=temp2;三、写出下列程序的运行结果(每小题9分,共36分)1、6,2,3,4,5,2、103、154、6385四、按要求编写下列程序(每小题13分,共26分)1编写程序,用函数的递归调用求x的n次方的值,其中n为正整数。#includefloatmypow(floatx,intn)floatm;if(n=1)m=x;elsem=x*mypow(x,n-1);returnm;vo

7、idmain()floatx;intn;scanf(“%f,%d“,printf(“%f的%d次方是%f“,x,n,mypow(x,n);2.输入正整数m和n,如果m+n是质数,输出“Yes”,否则,输出“No”。要求定义并调用函数myfun(x)来判断x是否为质数,在下面空出的位置完成程序,不能定义新的变量,可不用已定义的某些变量。#include#includevoidmain()intm,n;scanf(“%d%d“,if(myfun(m+n)printf(“Yes“)elseprintf(“No“);intf(intx)intk;for(k=2;kvoidmain()doubled=3

8、.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf(“%dn“, d*y);A)3B)3.2C)0D)3.073.设变量均已正确定义,若要通过scanf(“%d%c%d%c“,语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:代表空格字符)()A)10X20Y回车B)10X20Y回车C)10X回车D)10X回车20Y回车20Y回车4.以下选项中,当x为大于1的奇数时,值为0的表达式()A)x%2=1 B)x/2 C)x%2!=0 D)x%2=05.以下叙述中正确的是()A)break语句只能用于switch语句体中B)c

9、ontinue语句的作用是:使程序的执行流程跳出包含它的所有循环C)break语句只能用在循环体内和switch语句体内D)在循环体内使用break语句和continue语句的作用相同6.以下合法的字符型常量是()A)x13 B)018 C)65 D)“n“7.在C语言中,函数返回值的类型最终取决于()A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型8.设intx=1,y=1;表达式(!x|y-)的值是()A)0B)1C)2D)-19.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是

10、()A)p=2*(int*)malloc(sizeof(int);B)p=(int*)malloc(2*sizeof(int);C)p=(int*)malloc(4*2);D)p=(int*)calloc(2,sizeof(int);10.以下函数的功能是()intfun(char*s)char*t=s;while(*t+);return(t-s);A)比较两个字符的大小B)计算s所指字符串占用内存字节的个数C)计算s所指字符串的长度D)将s所指字符串复制到字符串t中二、完成下列的程序填空(每空3分,共27分)1输入20个数,用起泡法对这20个数升序排列。#includevoidmain()i

11、nta20;inti,j,t;printf(“input20numbers:n“);for(i=0;ivoidmain()chara6;scanf(“%s“,a);printf(“%dn“,htoi(a);inthtoi(chars)inti,n;n=0;for(i=0;si!=0;i+)if(si=0inta33,*p,i;printf(“inputmatrix:n“);for(i=0;ivoidmain()voidf(intn,int*r);intm=7,r;f(m,printf(“%dn“,r);voidf(intn,int*r)intr1=0;if(n%3=0)r1=n/3;elsei

12、f(n%5=0)r1=n/5;elsef(-n,*r=r1;2.以下程序的输出结果是()#includef(inta)intb=0;staticintc=3;b+;c+;return(a+b+c);voidmain()inta=2,i;for(i=0;ivoidfun(int*x,int*y)printf(“%d%d“, *x,*y);*x=3;*y=4;voidmain()intx=1,y=2;fun(printf(“%d%d“,x,y);四、按要求编写下列程序(第1小题16,第2小题13分,共29分)1编程实现下面的函数,要求输入一个x的值,输出y值,函数如下:-5(x0)2编写一个程序,

13、将一组数据6,5,8,1,0,4,7,3,2,9按从小到大的顺序排列,程序显示排序前和排序后的结果。参考答案一、单项选择题(每小题2分,共20分)DCDDCAABAB二、完成下列的程序填空(每空3分,共27分)1iai+1)t=ai;ai=ai+1;ai+1=t;2.si-0si-a+10si-A+103.t=*(pointer+3*i+j)*(pointer+3*i+j)=*(pointer+3*j+i)*(pointer+3*j+i)=t三、写出下列程序的运行结果(每小题8分,共24分)1、22、7893、2143四、按要求编写下列程序(第1小题13,第2小题16分,共29分)1编程实现下

14、面的函数,要求输入一个x的值,输出y值,函数如下:-5(x0)#includevoidmain()intx,y;printf(“enterx:“);scanf(“%d“,if(x#defineN10Voidmain()intaN=6,5,8,1,0,4,7,3,2,9inti,j,t;printf(“Thearraybeforesorted:”);for(i=0;iaj)t=ai;ai=aj;aj=t;printf(“Thearrayaftersorted:”);for(i=0;iMASMEXAMPLECLINKEXAMPLECEXAMPLE五、应用题(每小题10分,共30分)1.参考程序如下

15、:DATASEGMENTDATDB23H,32H,13HMAXDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,DAT;AL23HMOVBL,DAT+1;BL32HMOVCL,DAT+2;CL13HLOP1:CMPAL,BLJALOP2;AL中的数据高于BL中的数据则跳转致LOP2XCHGAL,BLLOP2:CMPAL,CL;AL中的数据高于CL中的数据则跳转致LOP3JALOP3XCHGAL,CL;AL中的数据为最大值LOP3:MOVMAX,AL;将最大者存放到MAX单元MOVAH,4CHINT2

16、1HCODEENDSENDSTART2.参考答案:计数器0工作在方式2,初值N=5M/1K=5000,控制字为34H,计数器1工作在方式0,计数初值为1000,控制字为70H;程序段如下:;计数器0初始化,写入控制字MOVAL,34HMOVDX,04B3HOUTDX,AL;计数器0赋初值,先写低8位再写高8位MOVAX,5000MOVDX,04B0HOUTDX,ALMOVAL,AHOUTDX,AL;计数器1初始化,写入控制字MOVAL,70HMOVDX,04B3HOUTDX,AL;计数器1赋初值MOVAX,1000MOVDX,04B1HOUTDX,ALMOVAL,AHOUTDX,AL3.答:(

17、1)74LS138的作用是地址译码;(2)74LS138在G1为高电平,G2A和G2B都为低电平时才工作;(3)RAM的地址范围是72000H73FFFH。解释:RAM芯片的片内地址是A12A0,片外地址为A19A13,其中地址为A15A13是译码器输入端,应该为001;A19 A18 A17 A16应该为0111。所以20为地址是0111001000000000000001110011111111111111。专接本计算机微机原理与汇编语言模拟试题及答案(二)一、单项选择题(每小题1分,共15分)1.十进制正数38的八位二进制补码是()。A00011001B10100110C10011001

18、D001001102.以下属于总线仲裁器的是()。A8288B8289C0809D80893.在数据定义中,如果将STRINGABC作为字符串表示时,应使用的伪指令是()。ADBBDWCDDDDQ4.若将AH的内容的高四位分离,则应选用()。AANDAL,0F0HBORAL,0F0HCXORAL,0F0HDTESTAL,0F0H5.不能实现将AX清零和CF清零的指令是()。ASUBAX,AXBMOVAX,0CXORAX,AXDANDAX,06.LDS指令要求源操作数必须为()。A一个16位寄存器B一个存储器操作数C一个有效地址D一个段寄存器7.条件转移指令JNE的测试条件为()。AZF=0BC

19、F=0CZF=1DCF=18.ORG设定当前可分配内存单元的()。A段地址B偏移地址C类型D字节数9.计算机系统软件中的汇编程序是一种()。A汇编语言程序B编辑程序C翻译程序D链接程序10.CPU在对存储器进行访问时,地址线有效和数据线有效的时间关系应该是()。A同时有效同时无效B地址线较先有效C数据线较先有效D地址数据复用同时有效11.响应NMI请求的必要条件是()。AIF=1BIF=0C一条指令结束D无INTR请求12.在微机系统中采用DMA方式传输数据时,数据传送是()。A由CPU控制完成B由执行程序(软件)完成C由DMAC发出的控制信号完成D由总线控制器发出的控制信号完成13.若825

20、9A工作在优先级自动循环方式,则IRQ3的中断请求被响应并且服务完毕后,优先权最高的中断源是()。AIRQ0 BIRQ2 CIRQ3 DIRQ414.在中断系统中,中断类型号是在()的作用下送往CPU的。A读信号B地址译码信号C中断请求信号INTR D中断响应信号15.8086响应以下中断时,需要到数据总线读入中断类型码的是()。A单步中断B指令中断C可屏蔽中断D非屏蔽中断二、填空题(每空1分,共20分)1.8086CPU具有条地址线,可直接寻址容量的内存空间,在访问I/O端口时,使用地址线,最多可寻址个I/O端口。2.每次进行串扫描指令SCAS时,使用的段寄存器是,变址寄存器是。3.已知一个

21、具有14位地址和8位数据的存储器,该存储器能存储字节的信息,如果存储器由8K4位RAM芯片组成,需要片。4.8255A的工作方式有基本型输入/输出方式、_I/O方式和_I/O方式。5.8086/8088微处理器被设计为两个独立的功能部件是_和_。6.所谓指令的寻址方式是指寻找的方式。7.在Intel2116动态RAM存储器中,对存储器刷新的方法是每次刷新个单元.8.DMA技术提供了_到_的数据直接传输通道。9.中断向量是中断服务程序的_,每个中断向量占_字节。Intel8086将对应256类中断的中断向量组成一张_,占据内存从0到_H区间。三、简答题(每小题5分,共20分)1.8086系统中的

22、存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么?2.BHE低电平信号的作用是什么?试说明当起始地址为奇地址、偶地址、一次读写一个字节和一个字时,BHE和A0的状态。3.试分析8253的6种工作方式的特点和功能,各方式下的时钟信号CLK和门控信号GATE分别起什么作用?4.在一个微型计算机系统中,确定采用何种方式进行数据传送的依据是什么?四、分析题(每小题5分,共15分)1.DATADB46H,84,34,3,20H,122,73:MOVCX,7LEAS1,DATANEXT:MOVAL,SIINCSITESTAL,81HLOOPZNEXTMOVBL,SI:程序段运行后,请回答

23、:(AL)(BL)。2.阅读程序段,回答问题:D1DB300DUP(?)D2DB100DUP(?).MOVCX,100MOVBX,200MOVSI,0MOVDI,0NEXT:MOVAL,D1BXSIMOVD2DI,ALINCSIINTDILOOPNEXT(1)该程序段的功能:;(2)“LOOPNEXT”指令可以用什么指令取代:。3.执行完下列程序后,回答指定的问题。MOVAX,0MOVBX,2MOVCX,50LP:ADDAX,BXADDBX,2LOOPLP问:(1)该程序的功能是。(2)程序执行完成后,(AX)=。五、应用题(每小题10分,共30分)1.已知在内存中从DA单元起存放有10个带符

24、号字节数据,统计其中负数的个数并放入FU单元。2.编写程序,计算下面函数的值。3.用查询方式的打印机接口如图,已知8255的A口作为输出打印的数据口,工作于方式0,PC口高4位工作于输出方式,PC6产生STB信号(低电平有效),PC口的低4位工作于输入方式,PC2接收打印机的BUSY信号。设打印字符存放在数据段中有效地址为2000H的内存单元。请写出8255A的初始化程序和打印子程序。(8255的口地址为80H83H)参考答案一、单项选择题(每小题1分,共15分)1.D2.B3.A4.A5.B6.B7.A8.B9.C10.B11.C12.C13.D14.D15.C解释:2.8288为总线控制器

25、;0809为模数转换器;8089为I/O处理器9.常用的汇编程序是MASM,属于汇编翻译程序,是把汇编源程序翻译为机器目标程序的程序。10.在8086/8088中尽管地址数据复用,但是是分时复用,即在总线周期的T1传送地址,在T2-T4传送数据,所以地址线较先数据线有效。15.8086响应可屏蔽中断中断时,由硬件提供中断类型号,是在响应信号INTA(低电平有效)的第二个响应周期时放入数据总线;非屏蔽中断无响应信号;内部中断由指令直接获取中断类型号。二、填空题(每空1分,共20分)1.20、1MB、16条、64K2.ES、DI3.16K、4片4.字节选通、双向5.EU、BIU6.操作数7.128

26、(2116容量为16K1,即7位地址线行线和列线复用,每次刷新一行的128个单元)8.外设、存储器9.入口地址、4、中断向量表、003FFH三、简答题(每小题5分,共20分)1.8086系统中的存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么?答:8086CPU将1MB的存储空间分成逻辑段来进行管理:每个逻辑段最小为16B。所以最多可分成64K个段;每个逻辑段最大为64KB,最少可分成16个逻辑段。各段的起始位置由程序员指出,可以彼此分离,也可以首尾相连、重叠或部分重叠。4个16位的段寄存器用来存放每一个逻辑段的段起始地址:CS中为代码段的起始地址;DS中为数据段的起始地址;

27、SS中为堆栈段的起始地址;ES中为附加段的起始地址。2.BHE低电平信号的作用是什么?试说明当起始地址为奇地址、偶地址、一次读写一个字节和一个字时,BHE和A0的状态。答BHE信号的作用是高8位允许引脚。若BHE为0则表示对一个字进行操作,即高8位有效,若BHE为1则表示对一个字节进行操作,即高8位无效。当起始地址为奇地址时,一次读写一个字节时,BHE为1,A0状态为1;当起始地址为偶地址时,一次读写一个字节时,BHE为1,A0状态为0;当起始地址为奇地址时,一次读写一个字时,BHE为0,A0状态为1;当起始地址为偶地址时,一次读写一个字时,BHE为0,A0状态为0。3.试分析8253的6种工

28、作方式的特点和功能,各方式下的时钟信号CLK和门控信号GATE分别起什么作用?答:方式0:计数结束,产生中断方式1:可重复触发的单稳态触发器方式2:分频器方式3:方波发生器方式4:软件触发的选通信号发生器方式5:硬件触发的选通信号发生器时钟信号CLK的作用:在8253进行定时或计数工作时,每输入1个时钟脉冲信号CLK,便使计数值减1。GATE信号的控制作用如下:工作方式GATE引脚输入状态所起的作用OUT引脚输出状态低电平下降沿上升沿高电平方式0禁止计数暂停计数置入初值后WR上升沿开始计数,由GATE的上升沿继续计数允许计数计数过程中输出低电平。计数至0输出高电平方式1不影响不影响置入初值后,

29、GATE的上升沿开始计数,或重新开始计数。不影响计数输出宽度为n个CLK的低电平(单次)方式2禁止计数停止计数置入初值后,WR上升沿开始计数,由GATE的上升沿重新开始计数允许计数输出宽度为n个CLK宽度为1个CLK的负脉冲方式3禁止计数停止计数置入初值后,WR上升沿开始计数,由GATE的上升沿重新开始计数允许计数输出宽度为n个CLK的方波(重复波形)方式4禁止计数停止计数置入初值后,WR上升沿开始计数,由GATE的上升沿重新开始计数允许计数计数至0,输出宽度为1个CLK的负脉冲(单次)方式5不影响不影响置入初值后,GATE的上升沿开始计数,或重新开始计数。不影响计数计数至0,输出宽度为1个C

30、LK的负脉冲(单次)4.在一个微型计算机系统中,确定采用何种方式进行数据传送的依据是什么?答:无条件传送方式主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。条件传送方式主要用于不能保证输入设备总是准备好了数据或者输出设备已经处在可以接收数据的状态。中断控制方式主要用于需要提高CPU利用率和进行实时数据处理的情况。DMA控制方式主要用于快速完成大批的数据交换任务。在实际工作中,具体采用哪种方式要根据实际工作环境与需要结合各种方式的特点进行选择。四、分析题(每小题5分,共15分)1.(AL)-3或(0FBH)(BL)20H解释:本程序段用于检测最高位和最低位是否为0,若同时为0程序

31、循环,若不同时为0,只要其中有一个位为1,则结束程序。AL的值为最高位和最低位不同时为0的数,BL的值为下一个数。注意题目中的十进制数要转换为二进制。2.答:(1)将D1的后100个字节的元素对应的赋给了D2;(2)DECCXJNZNEXT3.答:(1)完成0到100间所有偶数求和的功能。(2)2550五、应用题(每小题10分,共30分)1.已知在内存中从DA单元起存放有10个带符号字节数据,统计其中负数的个数并放入FU单元。参考答案:答:DATASEGMENTDADB-2,-5,23,0,12,11,-9,-8,89,-26FUDB?DATAENDSCODESEGMENTASSUMEDS:D

32、ATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDL,0LEASI,DAMOVCX,10LP:MOVAL,SITESTAL,80HJZNEXTINCDLNEXT:INCSILOOPLPMOVFU,DLMOVAH,4CHINT21HCODEENDSENDSTART2.DATASEGMENTXDW6SDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,X;将X送到AX中CMPAX,0;(AX)0吗?JLDOUB;是,转向doubCMPAX,10;否,(ax)10吗?JLETRI

33、B;是,转向tribSALAX,1;否,乘以4SALAX,1JMPEXITDOUB:SALAX,1;乘以2JMPEXITTRIB:SALAX,1;乘以3ADDAX,XEXIT:MOVS,AX;保存结果MOVAH,4CH;结束INT21HCODEENDSENDSTART注意,在比较的过程中使用的是针对带符号数的跳转指令,应该看作带符号数。程序中还用了移位指令代替了乘法指令。3.答:MOVAL,81HOUT83H,ALMOVAL,0DHOUT83H,ALBY:INAL,82HTESTAL,04HJNZBYMOVAL,2000OUT80H,ALMOVAL,0CHOUT83H,ALINCALOUT83H,ALRET

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报