(完整版)專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案_第1頁(yè)
(完整版)專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案_第2頁(yè)
(完整版)專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案_第3頁(yè)
(完整版)專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案_第4頁(yè)
(完整版)專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余61頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案(一)一、單項(xiàng)選擇題(每小題 2分,共20分)1 .若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元,不正確的語(yǔ)句是(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 .設(shè)有intx=11;則表達(dá)式(x+*1/3) 的值是()A)3B)4C)11D) 123 .下列程序執(zhí)行后的輸出結(jié)果是(小數(shù)點(diǎn)后只寫一位)()#include <stdio.h>

2、void main()double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %fn”,i,l,f,d);A) 6 6 6.0 6.0B)6 6 6.7 6.7C) 6 6 6.0 6.7D)6 6 6.7 6.04 .下列變量定義中合法的是()A) short_a=1-.le-1B) double b=1+5e2.5C) long d1=0xfdaLD) float 2_and=1-e-3;5 .設(shè)有定義:int k=0;,以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是k+B)k+=1C)+kD)k+16

3、 .有以下程序,其中u表示按無(wú)符號(hào)整數(shù)輸出,輸出結(jié)果是 ()#include <stdio.h>void main()unsigned short x=0xFFFF;/* x的初值為十六進(jìn)制數(shù) */printf("%un",x);A) -1B) 65535C) 32767D)0xFFFF7 .有以下程序,輸出結(jié)果是()#include <stdio.h>void main()int i,j;for(i=1;i<4;i+)for(j=i;j<4;j+) printf("%d*%d=%d ",i,j,i*j);printf

4、("n");B) 1*1=11*2=21*3=32*2=42*3=63*3=9A) 1*1=11*2=21*3=32*1=22*2=43*1=3C) 1*1=1D) 1*1=11*2=22*2=42*1=22*2=41*3=32*3=63*3=93*1=33*2=63*3=98 .在C語(yǔ)言中,函數(shù)返回值的類型最終取決于 ()A)函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類型B)return語(yǔ)句中表達(dá)式值的類型C)調(diào)用函數(shù)時(shí)主函數(shù)所傳遞的實(shí)參類型D)函數(shù)定義時(shí)形參的類型9 .設(shè)已有定義:float x;則對(duì)指針變量p進(jìn)行定義且賦初值的語(yǔ)句中正確的是()Afloat *p=1024B)i

5、nt *p=(float x)C)float p=&xD)float *P=&x;10 .以下敘述中正確的是()A)break語(yǔ)句只能用于switch語(yǔ)句體中B)continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C)break語(yǔ)句只能用在循環(huán)體內(nèi)和 switch語(yǔ)句體內(nèi)D)在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同二、完成下列的程序填空(每空 3分,共18分)1 .寫一個(gè)函數(shù),使輸入的一個(gè)字符串按反序存放,在主函數(shù)中輸入和輸出字符串。#include <stdio.h>#include <string.h>void ma

6、in()void inverse(char str);char str100;printf("input string:");scanf("%s",str);inverse(str);printf("inverse string:%sn",str);void inverse(char str)chart;int i,j;for (i=0,j=strlen(str);i<(strlen(str)/2);i+,j-);2 .有一個(gè)已排好序的數(shù)組,要求輸入一個(gè)數(shù)后,按原來(lái)排序的規(guī)律將它插入數(shù)組。#include <stdio.h

7、>void main()int a11=1,4,6,9,13,16,19,28,40,100;int temp1,temp2,number,end,i,j;printf("array a:n");for (i=0;i<10;i+)printf("%5d",ai);printf("n");printf("insert data:");scanf("%d",&number);end=a9;if (number>end);elsefor (i=0;i<10;i+)if

8、(ai>number);ai=number;for (j=i+1;j<11;j+)temp2=aj;aj=temp1;break;三、寫出下列程序的運(yùn)行結(jié)果(每小題9分,共36分)1 .以下程序運(yùn)行后的輸出結(jié)果是(#include <stdio.h>void f(int *q)int i=0;for( ; i<5;i+)(*q)+;void main()int a5=1,2,3,4,5,i;f(a);for(i=0;i<5;i+)printf("%d,",ai);2 .以下程序運(yùn)行后的輸出結(jié)果是()#include <stdio.h

9、>f(int b,int m,int n)int i,s=0;for(i=m;i<n;i=i+2) s=s+bi;return s;void main()int x,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7);printf("%dn",x);3 .以下程序的輸出結(jié)果是(#include <stdio.h>int f()static int i=0;int s=1;s+=i;i+;return s;void main()int i,a=0;for(i=0;i<5;i+)a+=f();printf("%dn",

10、a);4 .以下程序的輸出結(jié)果是()#include <stdio.h>void main()char ch25= "6937", "8254",*p2;int i,j,s=0;for(i=0;i<2;i+) pi=chi;for(i=0;i<2;i+)for(j=0;pij> '0'j+=2)s=10*s+pij- '0'printf("%dn",s);四、按要求編寫下列程序(每小題 13分,共26分)編寫程序,用函數(shù)的遞歸調(diào)用求x的n次方的值,其中n為正整數(shù)。輸入正整數(shù)

11、m和n,如果m+n是質(zhì)數(shù),輸出"Yes",否則,輸出"N6'。要求定義并調(diào)用函數(shù)myfun(x)來(lái)判斷x是否為質(zhì)數(shù),在下面空出的位置完成程序,不能定義新的變量,可不用已定義的某些變量。#include<stdio.h>#include<math.h>void main()int m,n;int myfun(int x)int k;參考答案一、單項(xiàng)選擇題(每小題 2分,共20分)AAACA BBADC二、完成下列的程序填空(每空 3分,共18分)1.t=stri;stri=strj-1;strj-1=t;2.a10=number;te

12、mp1=ai;temp1=temp2;三、寫出下列程序的運(yùn)行結(jié)果(每小題9分,共36分)1、6,2,3,4,5,2、103、154、 6385四、按要求編寫下列程序(每小題 13分,共26分)1 .編寫程序,用函數(shù)的遞歸調(diào)用求x的n次方的值,其中n為正整數(shù)#include <stdio.h>float mypow(float x,int n)float m;if(n=1) m=x;else m=x*mypow(x,n-1);return m; void main()float x;int n;scanf("%f,%d",&x,&n);printf

13、("%f的d次方是 %f",x,n,mypow(x,n);2 .輸入正整數(shù)m和n,如果m+n是質(zhì)數(shù),輸出"Yes",否則,輸出"NO'。要求定義并調(diào)用函數(shù)myfun(x)來(lái)判斷x是否為質(zhì)數(shù),在下面空出的位置完成程序,不能定義新的變量,可不用已定義的某些變量。#include<stdio.h>#include<math.h>void main()int m,n;scanf("%d%d",&m,&n);if(myfun(m+n) printf("Yes")els

14、e printf("No");int f(int x)int k;for(k=2;k<x;k+)if(x%k=0) return 0;return 1;專接本計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)模擬試題及答案(二)一、單項(xiàng)選擇題(每小題2分,共20分)1 .在說(shuō)明語(yǔ)句:int *f();中,標(biāo)識(shí)符f代表的是()A) 一個(gè)用于指向整型數(shù)據(jù)的指針變量B) 一個(gè)用于指向一維數(shù)組的行指針C) 一個(gè)用于指向函數(shù)的指針變量D) 一個(gè)返回值為指針型的函數(shù)名2 .下列程序的輸出結(jié)果是()#include <stdio.h>void main()double d=3.2; int x,y;

15、x=1.2; y=(x+3.8)/5.0;printf("%d n", d*y);A) 3B) 3.2C) 0 D) 3.073 .設(shè)變量均已正確定義,若要通過(guò)scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 語(yǔ)句為變量 a1和a2賦數(shù)值10和20,為變量c1和c2賦字符'X'和'Y'。以下所示的輸入形式中正確的是(注: 口弋表空格字符)()A) 10DXD 20口?回車B) 10DX20DY回車C) 10DX回車D) 10X回車20DY回車20Y回車4 .以下選項(xiàng)中,當(dāng)

16、x為大于1的奇數(shù)時(shí),值為 0的表達(dá)式()A)x%2=1B)x/2C)x%2!=0D)x%2=05 .以下敘述中正確的是()A)break語(yǔ)句只能用于 switch語(yǔ)句體中B)continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)C)break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)D)在循環(huán)體內(nèi)使用 break語(yǔ)句和continue語(yǔ)句的作用相同6 .以下合法的字符型常量是()A)'x13'B)'018' C) 65D) "n"7 .在C語(yǔ)言中,函數(shù)返回值的類型最終取決于()A)函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類型B)retur

17、n語(yǔ)句中表達(dá)式值的類型C)調(diào)用函數(shù)時(shí)主函數(shù)所傳遞的實(shí)參類型D)函數(shù)定義時(shí)形參的類型8 .設(shè) int x=1, y=1;表達(dá)式(!x|y-)的值是()A) 0B) 1C) 2D) -19 .若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元,不正確的語(yǔ)句是()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 .以下函數(shù)的功能是 ()int fun(char *s)char *t=s;while(*

18、t+);return(t-s);A)比較兩個(gè)字符的大小B)計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)C)計(jì)算s所指字符串的長(zhǎng)度D)將s所指字符串復(fù)制到字符串t中二、完成下列的程序填空(每空 3分,共27分)1 .輸入20個(gè)數(shù),用起泡法對(duì)這20個(gè)數(shù)升序排列。#include <stdio.h>void main()int a20;int i,j,t;printf("input 20 numbers :n");for (i=0;i<20;i+)scanf("%d”,&ai);printf("n");for(j=0;j<19;

19、j+)for(i=0;i+)if ()printf("the sorted numbers :n");for(i=0;i<20;i+)printf("%d ",ai);printf("n");2 .寫一個(gè)函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。#include <stdio.h>void main()char a6;scanf("%s",a);printf("%dn",htoi(a);int htoi(char s)int i,n;n=0;for (i=0;si!=

20、9;0'i+)if (si>='0'&& si<='9')n=n*16+;if (si>='a' && si<='f) n=n*16+;if (si>='A' && si<='F') n=n*16+;return(n);3 .用指針的方法編寫的函數(shù),將一個(gè) 3的整型二維數(shù)組行列互換。#include <stdio.h>void main()void move(int *pointer);int a33,*

21、p,i;printf("input matrix:n");for (i=0;i<3;i+)scanf("%d %d %d",&ai0,&ai1,&ai2);p=&a00;move(p);printf("Now,matrix:n");for (i=0;i<3;i+)printf("%d %d %dn",ai0,ai1,ai2);void move(int *pointer)int i,j,t;for (i=0;i<3;i+)for (j=i;j<3;j+);三、

22、寫出下列程序的運(yùn)行結(jié)果(每小題8分,共24分)1 .以下程序運(yùn)行后的輸出結(jié)果是()#include <stdio.h>void main()void f(int n,int *r);int m=7,r;f(m,&r);printf("%dn",r);void f(int n,int *r)int r1=0;if (n%3=0)r1=n/3;else if(n%5=0) r1=n/5;else f(-n,&r1);*r=r1;2 .以下程序的輸出結(jié)果是()#include <stdio.h>f(int a)int b=0;static

23、int c=3;b+;c+;return(a+b+c);void main()int a=2, i;for(i=0;i<3;i+) printf("%dn",f(a);3 .以下程序的輸出結(jié)果是()#include <stdio.h>void fun(int *x, int *y)printf("%d %d", *x, *y);*x=3;*y=4;void main()int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);四、按要求編寫下列程序(第 1小題16,第2小

24、題13分,共29分)1.編程實(shí)現(xiàn)下面的函數(shù),要求輸入一個(gè)x的值,輸出y值,函數(shù)如下:-5 (x<0)y= 0 (x=0) 5 (x>0) 2.編寫一個(gè)程序,將一組數(shù)據(jù) 6, 5, 8, 1, 0, 4, 7, 3, 2, 9按從小到大的順序排列, 程序顯示排序前和排序后的結(jié)果。一、單項(xiàng)選擇題(每小題2分,共20分)DCDDC AABAB二、完成下列的程序填空(每空 3分,共27分)1.i<19-j(ai>ai+1)t=ai;ai=ai+1;ai+1=t;2.si-'0'si-'a'+10si-'A'+103.t=*(poi

25、nter+3*i+j)*(pointer+3*i+j)=*(pointer+3*j+i)*(pointer+3*j+i)=t三、寫出下列程序的運(yùn)行結(jié)果(每小題 8分,共24分)1、22、783、2 14 3四、按要求編寫下列程序(第 1小題13,第2小題16分,共29分)1 .編程實(shí)現(xiàn)下面的函數(shù),要求輸入一個(gè)x的值,輸出y值,函數(shù)如下:-5 (x<0)y= 0 (x=0)5 (x>0)#include <stdio.h>void main ()int x,y;printf("enter x:");scanf("%d",&x

26、);if(x<0)y=-5;elseif(x=0) y=0;else y=5;printf("x=%d,y=%dn",x,y);2.編寫一個(gè)程序,將一組數(shù)據(jù) 6, 5, 8, 1, 0, 4, 7, 3, 2, 9按從小到大的順序排列, 程序顯示排序前和排序后的結(jié)果。# include <stdio.h>#define N 10Void main()int aN= 6 , 5, 8, 1, 0, 4, 7, 3, 2, 9int i,j,t;printf( "The array before sorted:");for (i=0;i&l

27、t;N;i+)printf(" %4d' ,ai);for (i=0;i<9;i+) for (j=i+1;j<10;j+) if ( ai>aj) t=ai;ai=aj;aj=t;printf( "The array after sorted:");for (i=0;i<N;i+)printf(" %4d' ,ai);專接本計(jì)算機(jī)微機(jī)原理與匯編語(yǔ)言模擬試題及答案(一、單項(xiàng)選擇題(每小題 1分,共15分)1. 8088/8086的存儲(chǔ)器組織是將存儲(chǔ)器劃分為段,可作為段的起始地址的是()。A. 185A2HB. 00

28、020H C. 01003H D. 0AB456H2 .指令POP BX中,目的操作數(shù)的段寄存器是()。A. DS B. ES C. SS D. CS3 . CPU執(zhí)行“OUT 40H AL”指令時(shí),下列信號(hào)為高的是()。A. RDR WKC. M/fSD. INTA4 .執(zhí)行1號(hào)DOS系統(tǒng)功能調(diào)用后,從鍵盤輸入的字符應(yīng)存放在()。A. AL B. BL C. CLD. DL5 .間接尋址方式中,操作數(shù)處在()中。A.通用寄存器B .內(nèi)存單元C.程序計(jì)數(shù)器D.堆棧6 . 8086在最小模式下,分時(shí)使用 AD0AD15,所以必須外接地址鎖存器,當(dāng)總線上為地址信息時(shí),通過(guò)()信號(hào)將地址送入地址鎖存

29、器。A. DENB. ALEC.日野顯D. DT/ R7 .在對(duì)匯編語(yǔ)言程序的處理過(guò)程中,用編輯程序產(chǎn)生匯編語(yǔ)言的源程序的擴(kuò)展名是()。A. .EXEB. .OBJC. .BATD. .ASM8 .表示過(guò)程定義結(jié)束的偽指令是()。A. END B. ENDP C. ENDS D. ENDM9 .默認(rèn)狀態(tài)下,在寄存器間接尋址中與SS段寄存器對(duì)應(yīng)的寄存器是()。B. BXC. SID. DI10 .標(biāo)志寄存器中屬于控制標(biāo)志的是()。A. DF、SF、OFB. DF、IF、TFC. OF、CF、PFD. AF、OF、SF11 .兩個(gè)組合十進(jìn)制數(shù) 46H、35H相力口,調(diào)整指令 DAA完成的是()。A

30、.加00H調(diào)整C.加06H調(diào)整12.在8086的I/O指令中,A. BX B. SI13.浮點(diǎn)加減中的對(duì)階是(B.力口 60H調(diào)整D.力口 66H調(diào)整間接端口寄存器是()。C. DX D. DI)。A .將較小的一個(gè)階碼調(diào)整到與較大的一個(gè)階碼相同B.將較大的一個(gè)階碼調(diào)整到與較小的一個(gè)階碼相同C.將被加數(shù)的階碼調(diào)整到與加數(shù)的階碼相同D.將加數(shù)的階碼調(diào)整到與被加數(shù)的階碼相同14 .保護(hù)斷點(diǎn)就是保存()。A.中斷類型碼B.中斷服務(wù)程序入口地址C.現(xiàn)場(chǎng)D .當(dāng)前CS、IP的值15 .對(duì)以下類型的中斷,優(yōu)先級(jí)最低的是()。A .指令中斷B.非屏蔽中斷C.可屏蔽中斷D.單步中斷、填空題(每空1分,共20分

31、)1 .指令 MOV BX , MASKBP,若 MASK=3500H , SS=1200H, DS=1000H , BP=1000H , 那么有效地址為,物理地址為。2.對(duì)于十六進(jìn)制表示的數(shù)碼19.8H,轉(zhuǎn)換為十進(jìn)制數(shù)時(shí)為;該數(shù)碼用壓縮 BCD碼表示時(shí)數(shù)據(jù)為。3 .已知X的補(bǔ)碼為10011001 ,其原碼是;真值為 。4 .使用DOS功能調(diào)用時(shí),子程序的功能號(hào)應(yīng)放在寄存器中。5.設(shè)堆棧段寄存器SS所存放的數(shù)據(jù)為2250H,堆棧指示器SP所存放的數(shù)據(jù)為0140H, 如壓入堆棧7個(gè)數(shù)據(jù)庫(kù)字,問(wèn)棧頂?shù)刂?、SS和SP各為、。6 .使CF標(biāo)志置1的指令是 ;使DF標(biāo)志清0的指令是。7 .組成16Mx8

32、位的存儲(chǔ)器,需要1MX 4位的存儲(chǔ)芯片 片。1 .8253可編程定時(shí)/計(jì)數(shù)器按照二進(jìn)制計(jì)數(shù),其計(jì)數(shù)范圍是從 0到 ;按照BCD碼計(jì)數(shù),其計(jì)數(shù)范圍是從 0到 。9 . PC機(jī)的中斷類型有、和不可屏蔽中斷三種,不可屏蔽中斷的請(qǐng)求信息送CPU的 引腳。10 . 8255A的控制字的最高位 D7=1時(shí),表示該控制字為控制字。11 .CPU可訪問(wèn)8259的端口地址數(shù)為。三、簡(jiǎn)答題(每小題 5分,共20分)1 .定時(shí)器和計(jì)數(shù)器有什么相同和不同?2 .什么是接口?硬接口和軟接口的含義各是什么?3 .在A/D轉(zhuǎn)換過(guò)程中,采樣保持電路有什么作用?在什么情況下可以不使用采樣保持電 路?4 .什么是中斷?常見(jiàn)的中斷

33、源有哪幾類?CPU響應(yīng)中斷的條件是什么?四、分析題(每小題 5分,共15分)1 .若STR是字符串的首地址,閱讀程序段,回答問(wèn)題:LEA BX , STRMOV CX, 30LP:CMP BX ,'$'JNZ NEXTMOV BX ,'&'NEXT : INC BXLOOP LPHLT(1)指出程序的功能;(2)對(duì)程序的各個(gè)語(yǔ)句加上注解。2 .閱讀程序段,完成指定問(wèn)題:NUM DB 'ABCDEFGHIMOV AH,01HINT 21HAND AL , 0FHDEC ALXOR AH , AHMOV BX , OFFSET NUMADD BX ,

34、 AXMOV DL , BXMOV AH , 02HINT 21H試回答:(1)上述程序段的功能是什么?(2)如從鍵盤輸入字符5'程序段有什么結(jié)果?3 .請(qǐng)把下列程序中所缺語(yǔ)句補(bǔ)充完整,并回答問(wèn)題:TITLE EXAMPLE.ASMDATA SEGMENTA DW 0B DW 0C DW 230,20,54CODE SEGMENTASSUMEPROG PROC FARSTART: PUSH DSMOV AX.0MOV AX,DATAMOVBX, OFFSET CMOVAX, BXMOV B, AXMOV AX, 2BXADDAX, BMOVA, AXEXIT:CODE ENDS問(wèn)題:(

35、1)程序執(zhí)行完后,A單元的內(nèi)容是多少?(2)寫出上機(jī)運(yùn)行本程序的步驟。五、應(yīng)用題(每小題 10分,共30分)1 .首地址為DAT的數(shù)據(jù)區(qū)中有3個(gè)互不相等的8位無(wú)符號(hào)整數(shù),編寫一個(gè)完整的程序, 將這3個(gè)數(shù)的最大者存放到 MAX單元。2 .設(shè)8253計(jì)數(shù)器0工作在方式 2, CLK0為5MHz,輸出OUTo為1KHz方波,二進(jìn)制計(jì)數(shù);計(jì)數(shù)器1用OUT。作計(jì)數(shù)脈沖,計(jì)數(shù)值為1000,二進(jìn)制計(jì)數(shù),計(jì)數(shù)器減到0時(shí)向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)這一中斷請(qǐng)求后繼續(xù)寫入計(jì)數(shù)值1000,開始重新計(jì)數(shù),保持每一秒鐘向CPU發(fā)出一次中斷請(qǐng)求。試編寫出對(duì)8253的初始化程序。(8253端口地址為04B0H04B3H

36、 )3 .在如圖所示的電路中,試分析電路圖,回答以下問(wèn)題。%一葉一 85ff171- MLMW*131內(nèi)4*13 - Ci寸卜_咒A7415151前C日 富、A(1) 74LS138的作用是什么?(2) 74LS138在什么條件下才工作?(3) RAM 的地址范圍是多少?1.B 2.C3.A 4.A 5.B 6.B 7.D 8. B 9.A 10.B11.C 12.C 13.A 14.D 15.D解釋:1 .段的起始地址必須從節(jié)開始,而每節(jié)是16個(gè)字節(jié),所以段的起始地址用十六進(jìn)制表示時(shí)應(yīng)該末尾是0。2 .指令POP BX中的目的操作數(shù)為 BX指向的內(nèi)存單元,而BX默認(rèn)使用DS;源操作數(shù)是 堆棧

37、中的數(shù)據(jù)。二、填空題(每空1分,共20分)1.4500H、16500H(計(jì)算有效地址 EA=MASK 的 3500H+BP 的 1000H=4500H物理地址=1200H*16+EA=12000H+4500H=16500H)2、 25.5、00100101.0101B3、 11100111、-1034. AH5.22640H、2250H、0132H解:已知:DS=2250H ,棧頂?shù)刂返钠频刂?=0140H棧頂?shù)刂?(2250H '10H)+ 0140H=22640H壓入7個(gè)數(shù)據(jù)字后:SP = 0140H - 2 7 = 0132HSS = 2250H6. STC、CLD7.328.

38、65535、99999.軟件中斷、可屏蔽中斷、NMI10.方式11.2三、簡(jiǎn)答題(每小題 5分,共20分)1 .答:定時(shí)器和計(jì)數(shù)器是同一器件一-計(jì)數(shù)器,其共同的特點(diǎn)是都有一個(gè)計(jì)數(shù)脈沖輸入端,每輸入一個(gè)脈沖,計(jì)數(shù)器就進(jìn)行加1或減1計(jì)數(shù)。若計(jì)數(shù)器件的計(jì)數(shù)脈沖的頻率固定,則可利用計(jì)數(shù)實(shí)現(xiàn)定時(shí),這就是定時(shí)器。若計(jì)數(shù)器件的作用僅僅是記錄輸入脈沖的多少,則稱為計(jì)數(shù)器。2 .答接口是位于主機(jī)與外設(shè)之間的一些轉(zhuǎn)換電路的總稱.是CPU與外設(shè)交互通信的中間接點(diǎn),一般由若干組存儲(chǔ)單元組成,用于暫存數(shù)據(jù)發(fā)實(shí)現(xiàn)CPU與外設(shè)之間的通信,并有緩沖的功能用來(lái)平衡CPU與外設(shè)的不匹配。硬接口是用硬件來(lái)實(shí)現(xiàn)接口的功能,而軟接口是

39、通過(guò)程 序設(shè)計(jì)來(lái)實(shí)現(xiàn)接口的功能的。3 .答:采樣一保持電路廣泛應(yīng)用于數(shù)據(jù)采集系統(tǒng)和實(shí)時(shí)控制系統(tǒng)中,它的功能有兩種:(1)采樣跟蹤狀態(tài):在此期間應(yīng)盡可能快地接受輸入信號(hào),使輸出和輸入信號(hào)相一致(2)保持狀態(tài):把采樣結(jié)束前瞬間的輸入信號(hào)保持下來(lái),使輸出和保持的信號(hào)一致。由于模/數(shù)轉(zhuǎn)換需要一定時(shí)間,在轉(zhuǎn)換期間,要求模擬信號(hào)保持穩(wěn)定,因此當(dāng)輸入信號(hào)變化 速率較快時(shí),都應(yīng)采用采樣 一保持電路,如果輸入信號(hào)變化緩慢,則可不用保持電路。4 .答:中斷是指CPU在正常執(zhí)行程序時(shí),由于內(nèi)部 /外部時(shí)間或程序的預(yù)先安排引起CPU暫時(shí)終止執(zhí)行現(xiàn)行程序,轉(zhuǎn)而去執(zhí)行請(qǐng)求CPU為其服務(wù)的服務(wù)程序,待該服務(wù)程序執(zhí)行完畢,又

40、能自動(dòng)返回到被中斷的程序繼續(xù)執(zhí)行的過(guò)程。常見(jiàn)的中斷源有:一般的輸入 /輸出設(shè)備請(qǐng)求中斷;實(shí)時(shí)時(shí)鐘請(qǐng)求中斷;故障源;數(shù)據(jù)通道 中斷和軟件中斷。CPU響應(yīng)中斷的條件:若為非屏蔽中斷請(qǐng)求,則CPU執(zhí)行完現(xiàn)行指令后,就立即響應(yīng)中斷。 CPU若要響應(yīng)可屏蔽中斷請(qǐng)求,必須滿足以下三個(gè)條件:無(wú)總線請(qǐng)求;CPU允許中斷; CPU執(zhí)行完現(xiàn)行指令。四、分析題(每小題 5分,共15分)1. (1)程序功能:將字符串 STR (長(zhǎng)度30字節(jié))中所有$ 用代替。(2) LEA BX, STR ;置地址指針MOV CX, 30;置計(jì)數(shù)器初值LP:CMP BX ,;取字符與$ '比較JNZ NEXT;不是 飛

41、9;轉(zhuǎn) NEXTMOVBX ,;是$ 則用替換NEXT : INC BX;地址加 1LOOP LP; CX 1 為。繼續(xù)HLT2 .答:(1)程序段功能:根據(jù)從鍵盤輸入的字符產(chǎn)9'確定在顯示器上顯示 NUM中第幾個(gè)字符。(2)顯示器顯示字符'E'解釋如下:MOV AH,01;從鍵盤輸入 5'INT 21H; AL=35HAND AL , 0FH; AL=05HDEC AL ; AL=04HXOR AH , AH;AH=0MOV BX , OFFSET NUM ;BX 指向 NUM 的首地址ADD BX, AX ;BX指針向高地址移動(dòng) 4下MOV DL, BX ;

42、DL= ' BX旨針指向的內(nèi)容即E' MOV AH , 02HINT 21H;顯示輸出E'3 . (1)程序執(zhí)行完后,A單元的內(nèi)容是250。(2)寫出上機(jī)運(yùn)行本程序的步驟是:答:C>MASM EXAMPLEC>LINK EXAMPLEC>EXAMPLE五、應(yīng)用題(每小題 10分,共30分)1 .參考程序如下:DATA SEGMENTDAT DB 23H,32H,13HMAX DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,DAT;AL 23H

43、MOV BL,DAT+1;BL 32HMOV CL,DAT+2;CL 13HLOP1: CMP AL,BLJA LOP2;AL中的數(shù)據(jù)高于 BL中的數(shù)據(jù)則跳轉(zhuǎn)致 LOP2XCHG AL,BLLOP2: CMP AL,CL;AL中的數(shù)據(jù)高于 CL中的數(shù)據(jù)則跳轉(zhuǎn)致 LOP3JA LOP3XCHG AL,CL;AL中的數(shù)據(jù)為最大值LOP3: MOV MAX,AL ;將最大者存放到 MAX 單元MOV AH,4CHINT 21HCODE ENDSEND START2 .參考答案:計(jì)數(shù)器。工作在方式2,初值N=5M/1K=5000 ,控制字為34H, 計(jì)數(shù)器1工作在方式0,計(jì)數(shù)初值為1000,控制字為7

44、0H;程序段如下:;計(jì)數(shù)器0初始化,寫入控制字MOV AL , 34HMOV DX , 04B3HOUT DX, AL;計(jì)數(shù)器0賦初值,先寫低 8位再寫高8位MOV AX , 5000MOV DX , 04B0HOUT DX , ALMOVAL , AHOUT DX, AL;計(jì)數(shù)器1初始化,寫入控制字MOV AL , 70HMOV DX , 04B3HOUT DX , AL;計(jì)數(shù)器1賦初值MOV DX , 04B1HOUT DX, ALMOVAL , AHOUT DX , AL3.答:(1) 74LS138的作用是地址譯碼;(2) 74LS138在G1為高電平,G2A和G2B都為低電平時(shí)才工作

45、;(3) RAM 的地址范圍是 72000H73FFFH。解釋:RAM芯片的片內(nèi)地址是 Ai2Ao,片外地址為 Ai9Ai3 ,其中地址為 Ai5Ai3 是譯碼器輸入端,應(yīng)該為 00i; Ai9 Ai8 Ai7 Ai6應(yīng)該為0iii 。所以 20 為地址是 0111 001 00000000000000111 001 1111111111111 。專接本計(jì)算機(jī)微機(jī)原理與匯編語(yǔ)言模擬試題及答案(二 )一、單項(xiàng)選擇題(每小題1分,共15分)1 .十進(jìn)制正數(shù)38的八位二進(jìn)制補(bǔ)碼是()。A. 00011001 B. 10100110 C. 10011001 D, 001001102 .以下屬于總線仲裁

46、器的是()。A. 8288 B. 8289 C. 0809 D. 80893 .在數(shù)據(jù)定義中,如果將 STRING ABC作為字符串表示時(shí),應(yīng)使用的偽指令是()。A. DB B. DW C. DD D. DQ4 .若將AH的內(nèi)容的高四位分離,則應(yīng)選用()。A . AND AL , 0F0HB. OR AL , 0F0HC. XOR AL , 0F0HD. TEST AL , 0F0H5 .不能實(shí)現(xiàn)將AX清零和CF清零的指令是()。A. SUB AX , AXB. MOV AX , 0C. XOR AX , AXD. AND AX , 06 . LDS指令要求源操作數(shù)必須為()。A. 一個(gè)16位

47、寄存器B. 一個(gè)存儲(chǔ)器操作數(shù)C. 一個(gè)有效地址D. 一個(gè)段寄存器7 .條件轉(zhuǎn)移指令JNE的測(cè)試條件為 ()。A. ZF=0 B. CF=0 C. ZF=1 D. CF=18 . ORG設(shè)定當(dāng)前可分配內(nèi)存單元的()。A.段地址 B.偏移地址C.類型 D.字節(jié)數(shù)9 .計(jì)算機(jī)系統(tǒng)軟件中的匯編程序是一種()。A.匯編語(yǔ)言程序B.編輯程序C.翻譯程序D.鏈接程序10 . CPU在對(duì)存儲(chǔ)器進(jìn)行訪問(wèn)時(shí),地址線有效和數(shù)據(jù)線有效的時(shí)間關(guān)系應(yīng)該是()。A .同時(shí)有效同時(shí)無(wú)效B.地址線較先有效C.數(shù)據(jù)線較先有效D.地址數(shù)據(jù)復(fù)用同時(shí)有效11 .響應(yīng)NMI請(qǐng)求的必要條件是()。A. IF=1B. IF=0C. 一條指令

48、結(jié)束D.無(wú)INTR請(qǐng)求12 .在微機(jī)系統(tǒng)中采用 DMA方式傳輸數(shù)據(jù)時(shí),數(shù)據(jù)傳送是()。A .由CPU控制完成B .由執(zhí)行程序(軟件)完成C.由DMAC發(fā)出的控制信號(hào)完成D .由總線控制器發(fā)出的控制信號(hào)完成13 .若8259A工作在優(yōu)先級(jí)自動(dòng)循環(huán)方式,則IRQ3的中斷請(qǐng)求被響應(yīng)并且服務(wù)完畢后,優(yōu)先權(quán)最高的中斷源是()。A. IRQo B. IRQ2 C. IRQ3 D. IRQ414.在中斷系統(tǒng)中,中斷類型號(hào)是在()的作用下送往CPU的。A.讀信號(hào)C.中斷請(qǐng)求信號(hào)INTRD.中斷響應(yīng)信號(hào)B.地址譯碼信號(hào)15. 8086響應(yīng)以下中斷時(shí),需要到數(shù)據(jù)總線讀入中斷類型碼的是(A.單步中斷B.指令中斷C.

49、可屏蔽中斷D .非屏蔽中斷二、填空題(每空1分,共20分)1.8086CPU 具有條地址線,可直接尋址容量的內(nèi)存空間,在訪問(wèn)I/O端口時(shí),使用地址線,最多可尋址個(gè)I/O端口。2 .每次進(jìn)行串掃描指令 SCAS時(shí),使用的段寄存器是,變址寄存器是。3 .已知一個(gè)具有14位地址和8位數(shù)據(jù)的存儲(chǔ)器,該存儲(chǔ)器能存儲(chǔ)字節(jié)的信息,如果存儲(chǔ)器由8Kx4位RAM芯片組成,需要 片。4 . 8255A的工作方式有基本型輸入 /輸出方式、I/O方式和 I/O方式。5 . 8086/8088微處理器被設(shè)計(jì)為兩個(gè)獨(dú)立的功能部件是 和。6 .所謂指令的尋址方式是指尋找的方式。7 .在Intel2116動(dòng)態(tài)RAM存儲(chǔ)器中,

50、對(duì)存儲(chǔ)器刷新的方法是每次刷新個(gè)單元.8 . DMA9.中斷向量是中斷服務(wù)程序的 ,每個(gè)中斷向量占 字節(jié)。Intel 8086將 對(duì)應(yīng)256類中斷的中斷向量組成一張 ,占據(jù)內(nèi)存從0到 一 H區(qū)間。三、簡(jiǎn)答題(每小題 5分,共20分)1.8086系統(tǒng)中的存儲(chǔ)器分為幾個(gè)邏輯段?各段之間的關(guān)系如何?每個(gè)段寄存器的作用是什 么?2 . BHE低電平信號(hào)的作用是什么?試說(shuō)明當(dāng)起始地址為奇地址、偶地址、一次讀寫一個(gè)字 節(jié)和一個(gè)字時(shí),BHE和A0的狀態(tài)。3 .試分析8253的6種工作方式的特點(diǎn)和功能, 各方式下的日鐘信號(hào) CLK和門控信號(hào)GATE 分別起什么作用?4 .在一個(gè)微型計(jì)算機(jī)系統(tǒng)中,確定采用何種方式

51、進(jìn)行數(shù)據(jù)傳送的依據(jù)是什么?四、分析題(每小題 5分,共15分)1 . DATA DB 46H, 84, 34, 3, 20H, 122, 73MOV CX , 7LEA S1, DATANEXT : MOV AL , SIINC SITEST AL , 81HLOOPZ NEXTMOV BL , SI程序段運(yùn)行后,請(qǐng)回答:(AL ) =(BL)=。2 .閱讀程序段,回答問(wèn)題:D1 DB 300 DUP (?)D2 DB 100 DUP (?).MOV CX , 100MOV BX , 200MOV SI , 0MOV DI , 0NEXT : MOV AL , D1BXSIMOV D2DI ,

52、 ALINC SIINT DILOOP NEXT(1)該程序段的功能:2 2) “LOOP NEXT指令可以用什么指令取代:3 .執(zhí)行完下列程序后,回答指定的問(wèn)題。MOV AX , 0MOV BX , 2MOV CX , 50LP: ADD AX , BXADD BX , 2LOOP LP問(wèn):(1)該程序的功能是(2)程序執(zhí)行完成后,(AX)=。五、應(yīng)用題(每小題 10分,共30分)1 .已知在內(nèi)存中從 DA單元起存放有10個(gè)帶符號(hào)字節(jié)數(shù)據(jù),統(tǒng)計(jì)其中負(fù)數(shù)的個(gè)數(shù)并放入FU單元。2 .編寫程序,計(jì)算下面函數(shù)的值。產(chǎn)(X < 0)(0 X <- 10) *4工x >103.用查詢方

53、式的打印機(jī)接口如圖,已知 8255的A 口作為輸出打印的數(shù)據(jù)口,工作于方 式0, PC 口高4位工作于輸出方式,PC6產(chǎn)生STB信號(hào)(低電平有效),PC 口的低4位工作于輸入方式,PC2接收打印機(jī)的BUSY信號(hào)。設(shè)打印字符存放在數(shù)據(jù)段中有效地址為2000H的內(nèi)存單元。請(qǐng)寫出8255A的初始化程序和打印子程序。(8255的口地址為80H83H )pcf十, - pa+j/P打印機(jī)" , 針aA心泰泌Busk參考答一、單項(xiàng)選擇題(每小題1分,共15分)I .D 2.B 3. A 4.A 5.B 6.B 7.A 8.B 9.II .C 12.C 13.D 14.D 15.C1C 10.B解

54、釋:2. 8288為總線控制器;0809為模數(shù)轉(zhuǎn)換器;8089為I/O處理器9 .常用的匯編程序是 MASM ,屬于匯編翻譯程序,是把匯編源程序翻譯為機(jī)器目標(biāo)程序的 程序。10 .在8086/8088中盡管地址數(shù)據(jù)復(fù)用,但是是分時(shí)復(fù)用,即在總線周期的T1傳送地址,在T2-T4傳送數(shù)據(jù),所以地址線較先數(shù)據(jù)線有效。15.8086響應(yīng)可屏蔽中斷中斷時(shí),由硬件提供中斷類型號(hào),是在響應(yīng)信號(hào) INTA (低電平有 效)的第二個(gè)響應(yīng)周期時(shí)放入數(shù)據(jù)總線; 非屏蔽中斷無(wú)響應(yīng)信號(hào); 內(nèi)部中斷由指令直接獲取 中斷類型號(hào)。二、填空題(每空1分,共20分)1.20、1MB、16 條、64K2. ES、DI3. 16K、

55、4片4.字節(jié)選通、雙向5. EU、BIU6.操作數(shù)7.128 (2116容量為16KX1,即7位地址線行線和列線復(fù)用,每次刷新一行的128個(gè)單元)8.外設(shè)、存儲(chǔ)器 9.入口地址、4、中斷向量表、003FFH三、簡(jiǎn)答題(每小題 5分,共20分)1.8086系統(tǒng)中的存儲(chǔ)器分為幾個(gè)邏輯段?各段之間的關(guān)系如何?每個(gè)段寄存器的作用是什 么?答:8086CPU將1MB的存儲(chǔ)空間分成邏輯段來(lái)進(jìn)行管理:每個(gè)邏輯段最小為16B。所以最多可分成64K個(gè)段;每個(gè)邏輯段最大為 64KB,最少可分成16個(gè)邏輯段。各段的起始位置 由程序員指出,可以彼此分離,也可以首尾相連、重疊或部分重疊。4個(gè)16位的段寄存器用來(lái)存放每一個(gè)邏輯段的段起始地址:CS中為代碼段的起始地址;DS中為數(shù)據(jù)段的起始地址;SS中為堆棧段的起始地址;ES

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論