第一篇:C語言程序設(shè)計模擬試題三(含答案)
C語言程序設(shè)計模擬試題三(含答案)
1、計算機(jī)的存儲器完整的應(yīng)包括 A)軟盤、硬盤 B)磁盤、磁帶、光盤 C)內(nèi)存儲器、外存儲器 D)RAM、ROM
2、計算機(jī)中運(yùn)算器的作用是 A)控制數(shù)據(jù)的輸入/輸出
B)控制主存與輔存間的數(shù)據(jù)交換 C)完成各種算術(shù)運(yùn)算和邏輯運(yùn)算
D)協(xié)調(diào)和指揮整個計算機(jī)系統(tǒng)的操作
3、軟磁盤處于寫保護(hù)狀態(tài)時,其中記錄的信息 A)絕對不會丟失
B)不能被擦除,但能追加新信息 C)不能通過寫磁盤操作被更新
D)不能以常規(guī)方式被刪除,但可以通過操作系統(tǒng)的格式化功能被擦除
4、光盤根據(jù)基制造材料和記錄信息的方式不同,一般可分為 A)CD、VCD B)CD、VCD、DVD、MP3 C)只讀光盤、可一次性寫入光盤、可擦寫光盤 D)數(shù)據(jù)盤、音頻信息盤、視頻信息盤
5、在計算機(jī)系統(tǒng)中,可執(zhí)行程序是 A)源代碼 B)匯編語言代碼
C)機(jī)器語言代碼 D)ASCII碼
6、計算機(jī)軟件系統(tǒng)包括 A)操作系統(tǒng)、網(wǎng)絡(luò)軟件 B)系統(tǒng)軟件、應(yīng)用軟件
C)客戶端應(yīng)用軟件、服務(wù)器端系統(tǒng)軟件
D)操作系統(tǒng)、應(yīng)用軟件和網(wǎng)絡(luò)軟件
7、目前,一臺計算機(jī)要連入Internet,必須安裝的硬件是 A)調(diào)制解調(diào)器或網(wǎng)卡
B)網(wǎng)絡(luò)操作系統(tǒng) C)網(wǎng)絡(luò)查詢工具
D)WWW瀏覽器
8、在多媒體計算機(jī)系統(tǒng)中,不能存儲多媒體信息的是
A)光盤 B)磁盤
C)磁帶 D)光纜
9、要將當(dāng)前盤當(dāng)前目錄下一個文本文件內(nèi)容顯示在屏幕上,正確的命令形式是 A)TYPE a*.* B)TYPE abc.exe C)TYPE pro.c>PRN D)TYPE abc.txt
10、下列更改文件名的命令中正確的是 A)REN A:file1 C:F1 B)RENAME A: A:file1 C:F1 C)REN A:file1 F1 D)REN A:file1 SUBF1
11、已知A盤為DOS系統(tǒng)啟動盤,只有A:DOS下有自動批處理文件,其中內(nèi)容為: CDDOS MD USER CD USER 由A盤啟動DOS系統(tǒng)后,A盤的當(dāng)前目錄是 A)DOS B)DOSUSER C)D)USE
12、MS-DOS是 A)分時操作系統(tǒng)
B)分布式操作系統(tǒng)
C)單用戶、單任務(wù)操作系統(tǒng)
D)單用戶、多任務(wù)操作系統(tǒng)
13、在Windows操作系統(tǒng)中,不同文檔之間互相復(fù)制信息需要借助于 A)剪切板 B)記事本
C)寫字板 D)磁盤緩沖器
14、在Windows操作系統(tǒng)中 A)同一時刻可以有多個活動窗口
B)同一時刻可以有多個應(yīng)用程序在運(yùn)行,但只有一個活動窗口 C)同一時刻只能有一個打開的窗口
D)DOS應(yīng)用程序窗口與Windows應(yīng)用程序窗口不能同時打開著
15、下列敘述中正確的是
A)所有DOS應(yīng)用程序都可以在Windows操作系統(tǒng)中正確運(yùn)行
B)所有DOS應(yīng)用程序都不能在Windows操作系統(tǒng)中正確運(yùn)行 C)大部分DOS應(yīng)用程序可以在Windows操作系統(tǒng)中正確運(yùn)行
D)為DOS5.0以上版本操作系統(tǒng)編寫的應(yīng)用程序可以在Windows操作系統(tǒng)中正確運(yùn)行
16、下列敘述中正確的是 A)C語言編譯時不檢查語法 B)C語言的子程序有過程和函數(shù)兩種 C)C語言的函數(shù)可以嵌套定義
D)C語言所有函數(shù)都是外部函數(shù)
17、以下所列的C語言常量中,錯誤的是 A)0xFF B)1.2e0.5 C)2L D)'72'
18、下列選項中,合法的C語言關(guān)鍵字是 A)VAR B)cher C)integer D)default
19、以下變量x.、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達(dá)式是 A)x/y*z B)x*(1/(y*z))C)x/y*1/z D)x/y/z
20、若a為int類型,且其值為3,則執(zhí)行完表達(dá)式 a+=a-=a*a后,a的值是 A)-3 B)9 C)-12 D)6
21、設(shè)x、y、t均為int型變量,則執(zhí)行語句: x=y=3;t=++x||++y;后,y的值為 A)不定值 B)4 C)3 D)1
22、若變量已正確說明為float類型,要通過語句scanf(“%f %f %f ”,&a,&b,&c);給a賦于10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是: A)10<回車> 22<回車> 33<回車>
B)10.0,22.0,33.0<回車>
C)10.0<回車> 22.0 33.0<回車>
D)10 22<回車> 33<回車>
23、若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是 Main0 { int n;scanf(“%d”,&n);if(n++<10)printf(“%dn”,n);else printf(“%dn”,n--);} A)11 B)10 C)9 D)8
24、若a、b、c1、c2、x、y、均是整型變量,正確的switch語句是 A)swich(a+b);{ case 1:y=a+b;break;case 0:y=a-b;break;}
B)switch(a*a+b*b){case 3:
case 1:y=a+b;break;case 3:y=b-a,break;}
C)switch a
{ case c1 :y=a-b;break case c2: x=a*d;break default:x=a+b;}
D)switch(a-b){default:y=a*b;break case 3:case 4:x=a+b;break;case 10:case 11:y=a-b;break;}
25、有以下程序段 int k=0 while(k=1)k++;while 循環(huán)執(zhí)行的次數(shù)是 A)無限次
B)有語法錯,不能執(zhí)行 C)一次也不執(zhí)行
D)執(zhí)行1次
26、以下程序執(zhí)行后sum的值是 min(){ int i , sum;for(i=1;i<6;i++)sum+=i;printf(“%dn”,sum);} A)15 B)14 C)不確定 D)0
27、有以下程序段 int x=3 do { printf(“%d”,x-=2);} while(!(--x));其輸出結(jié)果是 A)1 B)3 0 C)1-2 D)死循環(huán)
28、若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是 A)'a'<=c<= 'z' B)(c>= 'a')||(c<= 'z')C)('a'<=c)and('z'>=c)D)(c>= 'a')&&(c<= 'z')
29、以下所列的各函數(shù)首部中,正確的是 A)void play(var :Integer,var b:Integer)B)void play(int a,b)C)void play(int a,int b)D)Sub play(a as integer,b as integer)
30、以下程序的輸出結(jié)果是 fun(int x, int y, int z){ z=x*x+y*y;} main(){ int a=31;fun(5,2,a);printf(“%d”,a);} A)0 B)29 C)31 D)無定值
31、下列程序段的輸出結(jié)果是 void fun(int *x, int *y){
printf(“%d %d”, *x, *y);*x=3;*y=4;} main(){ int x=1,y=2;fun(&y,&x);printf(“%d %d”,x, y);} A)2 1 4 3 B)1 2 1 2 C)1 2 3 4 D)2 1 1 2
32、下列程序的輸出結(jié)果是 main()
{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf(“%d”,*--p);} A)非法 B)a[4]的地址
C)5 D)3
33、下列程序的運(yùn)行結(jié)果是 void fun(int *a, int *b){ int *k;k=a;a=b;b=k;} main(){ int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf(“%d %d”, a, b);} A)6 3 B)3 6 C)編譯出錯 D)0 0
34、下面程序的輸出結(jié)果是 main(){int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf(“%dn”,*p+9);} A)0 B)1 C)10 D)9
35、當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是 A)數(shù)組的長度
B)數(shù)組的首地址
C)數(shù)組每一個元素的地址
D)數(shù)組每個元素中的值
36、設(shè)有以下說明語句 struct ex { int x;float y;char z;} example;則下面的敘述中不正確的是 A)struct結(jié)構(gòu)體類型的關(guān)鍵字
B)example是結(jié)構(gòu)體類型名 C)x,y,z都是結(jié)構(gòu)體成員名
D)struct ex是結(jié)構(gòu)體類型
37、以下只有在使用時才為該類型變量分配內(nèi)存的存儲類說明是 A)auto和 static B)auto和 register C)register和 static D)extern和 register
38、若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是 A)EOF B)-1 C)非零值 D)NULL
39、以下程序的輸出結(jié)果是 main(){ int i, k, a[10], p[3];k=5;for(i=0;i<10;i++)a[i ]=i;for(i=0;i<3;i++)p[i ]=a[i *(i+1)];for(i=0;i<3;i++)k+=p[i] *2;printf(“%dn”,k);} A)20 B)21 C)22 D)23
40、以下程序的輸出結(jié)果是 main(){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d,”,x[i][2-i]);} A)1,5,9 B)1,4,7 C)3,5,7 D)3,6,9
41、以下程序的輸出結(jié)果是 main(){ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(“%dn”,s);} A)18 B)19 C)20 D)21
42、以下程序的輸出結(jié)果是 main(){ char w[][10]={ “ABCD”,“EFGH”,“IJKL”,“MNOP”},k;for(k=1;k<3;k++)printf(“%sn”,w[k]);}
A)ABCD FGH KL
B)ABCD EFG IJ M
C)EFG JK O
D)EFGH IJKL
43、當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是 #include “stdio.h” #include “string.h” main(){ char ss[10]=“1,2,3,4,5”;gets(ss);strcat(ss, “6789”);printf(“%sn”,ss);} A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789
44、假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入: PROG ABCDEFGH IJKL<回車>,則輸出結(jié)果為
main(int argc, char *argv[])){ while(--argc>0)printf(“%s”,argv[argc]);printf(“n”);} A)ABCDEFG B)IJHL
C)ABCDEFGHIJKL D)IJKLABCDEFGH
45、以下程序的輸出結(jié)果是 long fun(int n){ long s;if(n= =1 || n= =2)s=2;else s=n-fun(n-1);return s;} main(){ printf(“%ldn”, fun(3));} A)1 B)2 C)3 D)4
46、以下程序的輸出結(jié)果是 #define SQR(X)X*X main(){ int a=16, k=2, m=1;a/=SQR(k+m)/SQR(k+m);printf(“dn”,a);} A)16 B)2 C)9 D)1
47、若定義了以下函數(shù): void f(……){……
*p=(double *)malloc(10*sizeof(double));…… } p是該函數(shù)的形參,要求通過p把動態(tài)分配存儲單元的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當(dāng)是 A)double *p B)float **p C)double **p D)float *p
48、以下程序的輸出是 struct st { int x;int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};main(){ p=aa;printf(“%dn”,++(p->x));} A)10 B)11 C)51 D)60
49、假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是 A)free(q);p->next=q->next;B)(*p).next=(*q).next;free(q);C)q=(*q).next;(*p).next=q;free(q);D)q=q->next;p->next=q;p=p->next;free(p);
50、以下程序的輸出結(jié)果是 main(){ int x=0.5;char z='a';printf(“%dn”,(x&1)&&(z<'z'));}
A)0 B)1 C)2 D)3
答案:
CCCCC BADDC CCABC DBDAC CBBDA CCDCC ACBCB BBCBC ADADA BCCBB
第二篇:C語言程序設(shè)計期末考試試題(含答案)
C語言程序設(shè)計 期末考試試題及其答案
一、單項選擇題(本大題共20題,每題2 分,共40分)
1、以下不是C語言的特點(diǎn)的是()
A、C語言簡潔、緊湊
B、能夠編制出功能復(fù)雜的程序
C、C語言可以直接對硬件進(jìn)行操作
D、C語言移植性好
2、以下不正確的C語言標(biāo)識符是()
A、ABC B、abc C、a_bc D、ab.c
3、一個C語言程序是由()
A、一個主程序和若干子程序組成 B、函數(shù)組成
C、若干過程組成 D、若干子程序組成
4、一個算法應(yīng)該具有“確定性”等5個特性,對另外4個特性的描述中錯誤的是()
A、有零個或多個輸入
B、有零個或多個輸出
C、有窮性
D、可行性
5、設(shè)變量a是整型,f是實型,i是雙精度型,則表達(dá)式10+‘a(chǎn)’+i*f值的數(shù)據(jù)類型為()
A、int B、float C、double D、不確定
6、在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是()
A、補(bǔ)碼 B、反碼 C、源碼 D、ASCII碼
7、有如下程序,輸入數(shù)據(jù):12345M678<cR>后(
#include
main(){
int x;
float y;
scanf(“%3d%f”,&x,&y);
}
A、12345 B、123 C、45 D、345
8、若有以下定義int a,b;float x,則正確的賦值語句是()
A、a=1,b=2
B、b++;
C、a=b=5
D、b=int(x);
9、以下程序的執(zhí)行結(jié)果是()
#include
10、巳知字母A的ASCII碼是65,以下程序的執(zhí)行結(jié)果是()
#include
main()
{
char c1='A',c2='Y';
printf(“%d,%dn”,c1,c2);
A、A,Y B、65,65 C、65,90 D、65,89
11、下列運(yùn)算符中優(yōu)先級最高的是()
A、< B、十 C、% D、!=
12、設(shè)x、y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0是()。
A、’x’&&’y’
B、x<=y(tǒng)
C、x||y+z&&y-z
D、!((x<y)&&!z ||1)
13、判斷char型變量cl是否為小寫字母的正確表達(dá)式為()
A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z)
C、(‘a(chǎn)’>=c1)(‘z’<=c1)D、(c1>=’a’)&&(c1<=’z’)
14、字符串“a”在內(nèi)存中占據(jù)的字節(jié)個數(shù)為()
A、0 B、1 C、2 D、3
15、下面有關(guān)for循環(huán)的正確描述是()
A、for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況
B、for循環(huán)是先執(zhí)行循環(huán)體語句,后判定表達(dá)式
C、在for循環(huán)中,不能用break語句跳出循環(huán)體
D、for循環(huán)體語句中,可以包含多條語句,但要用花括號括起來
16、下面程序的運(yùn)行結(jié)果是()
#include
main()
{int num=0;
while(num<=2)
{num++;
printf(“%d ,num);
}
}
A、1
B、1 2
C、1 2 3
D、1 2 3 4
17、以下描述正確的是()
A、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句。
B、do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式)后面不能寫分號。
C、在do-while循環(huán)體中,一定要有能使while后面表達(dá)式的值變成零(“假”)的操作。
D、do-while循環(huán)中,根據(jù)情況可以省略while。
18、以下對一維整形數(shù)組a的正確說明是()
A、int a(10);B、int n=10,a[n];
C、int n;D、int a[10];
scanf(“%d”,&n);
int a[n];
19、以下對二維數(shù)組a的正確說明是()
A、inta[3][];B、float a(3,4);
C、double a[1][4];D、float a(3)(4);
20、若二維數(shù)組a有m列,則在a[j]前面的元素個數(shù)為()
A、j*m+i
B、i*m+j
C、i*m+j-1
D、i*m+j+1
二、填空題(本大題共10空,每空2分,共20分)
1、結(jié)構(gòu)化設(shè)計中的三種基本結(jié)構(gòu)是 ___________________
2、在C語言中的實型變量分為兩種類型,它們是________ 和 _________
3、當(dāng)a=5,b=4,c=2時,表達(dá)式 a>b!= c的值是 _______
4、下列程序運(yùn)行后的輸出結(jié)果是 _____________
#include
main()
{
int i,j;
for(i=4;i>=1;i--)
{printf(“*”);
for(j=1;j<=4-i;j++)
printf(“*”);
printf(“n”);
}
5、若有定義:int a[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]得到的初值是___________ a[2][1]得到的初值是 ________________
6、在C語言中,二維數(shù)組元素的內(nèi)存中的存放順序是_______________
三、程序分析題(本大題共2題,每題4分,共8分,描述程序功能并寫出程序執(zhí)行結(jié)果)
1、#include
main()
{int a,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count;}
printf(“s=%d”,s);
}
2、#include
main()
{int a=[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)sum=sum+a[j];
printf(“sum=%dn”,sum);
}
四、編程題(本大題共4題,每題8分,共32分)
1、編寫攝氏溫度、華氏溫度轉(zhuǎn)換程序。要求:從鍵盤輸入一個攝氏溫度,屏幕就顯示對應(yīng)的華氏溫度,輸出取兩位小數(shù)。轉(zhuǎn)換公式:F=(C+32)×9/5。
2、試編程判斷輸入的正整數(shù)是否既是5又是7的正倍數(shù)。若是,則輸出yes;否則輸出no。
3、判斷數(shù)m是否為素數(shù)(只能被1和它本身整除的整數(shù))?
4、對15個數(shù)進(jìn)行排序,按從小到大的順序輸出。
《C語言程序設(shè)計》期末考試試卷(A卷)評分標(biāo)準(zhǔn)及標(biāo)準(zhǔn)答案
一、單項選擇題(本大題共20題,每題2 分,共40分)
1、B
2、D
3、B
4、B
5、C
6、D
7、B
8、B
9、A
10、D
11、C
12、D
13、D
14、C
15、D
16、C
17、C
18、D
19、C 20、B
二、填空題(本大題共10空,每空2分,共20分)
1、順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)
2、單精度型(或:float型)雙精度型(或;double型]
3、1
4、*
* *
* * *
* * * *
5、0 6
6、按行主順序存放
三、程序分析題(本大題共2題,每題4分,共8分)
能正確表達(dá)出題目的含義、要求,即可得分,部分正確可按比例得分,否則不得分。
1、功能:求S=0+2+4+8+16+32+64+128 和。
輸出結(jié)果:s=254
2、功能:出矩形陣a的主對角線上的元素之和。
輸出結(jié)果:27
四、編程題(本大題共4題,每題8分,共32分)
能正確表達(dá)出題目的含義、要求,且格式正確,即可得滿分,不要求形式完全相同。部分正確可按比例得分,否則不得分。
1、#include
main()
{ float c,f;
printf(“input c:”);…………………………………………….2分
scanf(“%f”,&c);…………………………………………….2分
f=(c+32.0)*9.0/5.0;…………………………………………….2分
printf(“F=%.2f n”,f);…………………………………………….2分
}
2、#include
main()
{int x;
scanf(“%d”,&x);…………………………………………….2分
if(x%5==0&&x%7==0)…………………………………………….2分
printf(“yes”);…………………………………………….2分
else
printf(“no”);…………………………………………….2分
}
3、# include
# include
main()
{int m,i,k;
scanf(“%dn”,&m);
k=sqrt(m);…………………………………………….2分
for(i=2;i<=k;i++)…………………………………………….2分
{if(m%i==0)
break;…………………………………………….2分
}
if(i>k)
printf(“m is a prime number!n”);…………………………………………….2分
}
4、# include
main()
{int i,j,a[15],t;
printf(“input 15 numbers:n”);
for(i=0;i<15;i++)
scanf(“%d”,&a);…………………………………………….2分
for(j=0;j<15;j++)…………………………………………….2分
for(i=0;i<15-j;i++)…………………………………………….2分
if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;} …………………………………………….2分 for(i=0;i<15;i++)printf(“%6d”,a)
第三篇:微機(jī) 模擬試題三(含答案)
模 擬 試 題 三
一、單項選擇題(每小題1分,共20分)
1.如某存儲器分段時,一個段最多允許16K個字單元,那么表示一個段內(nèi)偏移地址的二進(jìn)制位數(shù)至少是()位。A.15 B.16 C.17 D.18 2.下列操作中允許超越的是()。
C.以BP為基址存取A.取指令 B.存目的串 D.堆棧操作
操作數(shù)
3.下面有語法錯誤的指令語句是()。A.MOV AX,[BX][SI] B.MOV AX,-2[BX][DI] C.MOV AX,[BX][BP] D.MOV AX,-1[BX][SI] 4.下列指令執(zhí)行后能使BX中數(shù)據(jù)必為奇數(shù)的是()。A.XOR BX,01H B.OR BX,01H C.AND BX,01H D.TEST BX,01H 5.設(shè)CL=05H,要獲得CL=0AH,可選用的指令是()。A.XOR CL,0FH B.NOT CL C.OR CL,0AH D.AND CL,0FH 6.沒有語法錯誤的輸出指令是()。A.OUT AX,30H B.OUT DX,AL C.OUT AL,DX D.OUT 30H,AH 7.假設(shè)執(zhí)行ADD指令后AX=6EH,再執(zhí)行AAA指令,AX中的值是()。A.14H B.0104H C.74H D.04H 8.某數(shù)據(jù)段有如下語句:
ORG 0435H
DA1 DB 17H,44H,77H
ADR DW DA1 下述語句能使AL中的數(shù)據(jù)為偶數(shù)的是()。A.MOV AX,WORD PTR DA1 B.MOV AX,WORD PTR DA1[1] C.MOV AX,ADR D.MOV AL,BYTE PTR ADR 9.當(dāng)執(zhí)行條件轉(zhuǎn)移指令JNS OPR時,如條件成立,相對于轉(zhuǎn)移指令的轉(zhuǎn)移距離是()。
A.-128~+127個字B.-126~+127個字C.-128~+129個字D.-126~+129個字節(jié) 節(jié) 節(jié) 節(jié)
10.用MOV指令將十進(jìn)制數(shù)89以非壓縮BCD碼格式送入AX,可使用的指令是()。A.MOV AX,89 B.MOV AX,0809 C.MOV AX,89H D.MOV AX,0809H 11.VAR1
FQU
BYTE PTRVNAR2
VAR2
DW
0ABCDH
┋
SHL
VAR1,1
SHR
VAR2,1 上述兩條指令執(zhí)行后,VAR2字存儲單元內(nèi)容是()。A.0ABCDH B.0AB9AH C.55CDH D.559AH 12.設(shè)AX=0BBCCH,CF=1
OR
AX,3
CMC
RCL AX,1 上述三條指令執(zhí)行后,AX中內(nèi)容分別是()。A.779FH B.779EH C.779DH D.7799H 13.下列語句中能與“DA1 DB 32H,34H”語句等效的是()。A.MOV DA1,32H B.MOV DA1,32 MOV DA1+1,34H MOV DA1+1,34 C.MOV WORD PTR DA1,3234H D.MOV WORD PTR DA1,'24' 14.設(shè)SP=50H,執(zhí)行段間返回指令′RET 8′后,寄存器SP內(nèi)容是()。A.5AH B.5CH C.44H D.46H 15.匯編語言語句格式中,對名字項的規(guī)定,請指出錯誤的解釋()。A.名字的第一個字符只可以是大小寫英B.名字的第一個字符可以是大小寫英文文字母及?、@、-等 字母、數(shù)字、?、@、-等
D.名字從第二個字符起可以出現(xiàn)數(shù)字,C.名字的有效長度≤31個字符
但不允許出現(xiàn)$、#等字符
16.使用DOS功能調(diào)用時,子程序編號應(yīng)放在()寄存器中。A.AH B.AL C.AX D.任意指定 17.下列語句中能實現(xiàn)留空8個字節(jié)單元的語句是()。A.DA1 DT? B.DA2 DW?,? C.DA3 DD? D.DA4 DQ? 18.設(shè)BX的內(nèi)容為0AA40H,執(zhí)行SHR DX,1指令后的結(jié)果是()。A.5520H B.5480H C.0D420H D.0D580H 19.TEST DL,55H
JE
NEXT
┇
NEXT:……
┇
上述程序段,執(zhí)行JE指令時能產(chǎn)生轉(zhuǎn)移的情況是()。A.DL>55H B.DL<55H C.DL=55H D.DL中第0,2,4,6位均為0 20.20. 寄存器BX和DX中存放有32位二進(jìn)制數(shù),其中BX中放高16位。下列程序段完成對這32位數(shù)擴(kuò)大4倍的功能,那么該程序段中橫線上應(yīng)填的語句是()。
MOV
CX,2
LOP: SHL
DX,1
________
LOOP LOP A.ROL BX,1 B.ROR BX,1 C.RCL BX,1 D.RCR BX,1
二、填空題(本大題共5小題,每小題1分,共5分)
名詞解釋:請將各小題的敘述與下面的詞語聯(lián)系起來,括號內(nèi)填入對應(yīng)的a,b,c,d,e。
1.宏定義開始用的偽造指令是(____)。2.DF是程序狀態(tài)字寄存器中的(____)標(biāo)志位。
3.對匯編語言源程序進(jìn)行匯編時,使用的宏匯編程序文件名是(____)。4.匯編語言程序中各語句的操作項可以是指令、偽指令或(____)的助記符。
5.CF是程序狀態(tài)字寄存器中的(____)標(biāo)志位。詞語: a、宏指令 b、MASM c、狀態(tài) d、MACRO e、控制
三、簡答題(本大題共3小題,每小題2分,共6分)
1.STRING DB′ABˊ,0,0,ˊCDˊ,0,0,ˊFE′,0,0。
請分別用DW、DD偽指令改寫上述數(shù)據(jù)定義語句,要求改寫后保持內(nèi)存單元中內(nèi)容不變。
2.執(zhí)行“NEG DX”指令時:(1)當(dāng)DX=?時,CF=1(2)當(dāng)DX=?時,OF=1 3.設(shè)某數(shù)據(jù)段的段名為DATA,段內(nèi)有一變量BUF,請分別用MOV指令寫出與下述兩條語句等效語句。(1)MOV AX,DATA(2)LEA BX,BUF
四、程序分析題(本大題共7小題,每小題5分,共35分)1.
MOV
AL,01H
ROR
AL,1
OR
AL,AL
NEG
AL 上述程序段執(zhí)行后,AL=____,CF=____。
2.設(shè)A,B均是長度為10的字節(jié)數(shù)組,DS、ES已指向同一數(shù)據(jù)段:
A
DB
1,2,3,4,5,6,7,8,9,0AH
B
DB
0AH,9,8,7,6,5,4,3,2,1
┇
LEA SI,A
LEA DI,B
MOV CX,10
CLD
LOP: LODSB
XCHG AL,[DI]
XCHG SI,DI
DEC DI
STOSB
XCHG SI,DI
INC DI
LOOP LOP 上述程序段執(zhí)行后,(1)程序段完成什么功能?
(2)程序段執(zhí)行后,A和B兩個字節(jié)數(shù)組的內(nèi)容分別是什么?
3.已知AL的值為0~F中一位十六進(jìn)制數(shù):
HECA PROC FAR
CMP AL,10
JC
KK
ADD AL,7
KK:
ADD AL,30H
MOV DL,AL
MOV AH,2
INT 21H
RET
HECA ENDP 試回答:(1)該子程序完成什么功能?
(2)如調(diào)用子程序時AL=3,子程序執(zhí)行后,DL=____。
如調(diào)用子程序時AL=0FH,子程序執(zhí)行后,DL=____。4.
MOV
AL,0FH
XOR
AL,0FFH
MOV
CL,7
SHR
AL,CL 試回答:(1)上述程序段執(zhí)行后,AL=____。
(2)如將指令SHR換成ROR指令后,那么程序段執(zhí)行后,AL=____。5. 已知 BX=5E5CH,CX=8303H,CF=1
ROR
BX,CL
XOR
BH,CH
ROL
BX,CL 程序段執(zhí)行后,DX=____,CF=____。
6.X DW
0123H,2A3EH,89DFH
CUNT EQU
$-X
Y DB
CUNT DUP(0)
┇
LEA
SI,X
LEA
DI,Y
MOV
CX,CUNT
CLD
REP
MOVSB 試回答(1)上述程序段執(zhí)行后,Y數(shù)據(jù)區(qū)各字節(jié)單元中的內(nèi)容是什么?
(2)程序段功能不變情況下,RER MOVSB指令可否用下面兩條指令替代:
LOP: MOVSB
LOOP
LOP 7.
MOV
AX,0E0EH
MOV
BX,AX
SHR
BX,1
CWD
DIV
BX
XCHG
BX,AX
MUL
BX 上述程序段運(yùn)行結(jié)束后,AX=____,BX=____。
五、程序填空題(本大題共2小題,每小題6分,共12分)1. 下面程序段是完成用單個字符輸入的1號功能調(diào)用,從鍵盤輸入10個字符,然后再用單個字符顯示輸出的2號功能調(diào)用,并以相反順序顯示輸出這10個字符。試把空白處填上適當(dāng)?shù)闹噶睿恳豢瞻滋幹惶钜粭l指令)。
MOV
CX,10
LOP1: MOV AH,01H
INT
21H
________
LOOP LOP1
MOV
CX,10
LOP2: ________
MOV AH,02H
INT
21H
LOOP LOP2 2. 下面程序段實現(xiàn)將以BUFF為首地址的內(nèi)存區(qū)域,全部存儲0FFH數(shù)據(jù)。試把空白處填上適當(dāng)?shù)闹噶睿恳豢瞻滋幹惶钜粭l指令)。
BUFF DB
20H DUP(?)
┇
________
MOV
AX,0FFFFH
MOV
CX,20H
________
REP
STOSW
六、編制程序題(本大題共3小題,共22分)
1.(5分)試編寫一程序段,實現(xiàn)32位有符號數(shù)除4(設(shè)M字單元中為低16位,M+2字單元中為高16位)。
2.(5分)試用兩條指令對寄存器CH和CL分別減1,且CL中減1的借位從CH中獲得,而CH中減1的借位從CL中獲得。
3.(12分)設(shè)數(shù)據(jù)段中有三個無符號數(shù),分別存放在DAT,DAT+1,DAT+2字節(jié)單元中,試編一完整的源程序,找出三個數(shù)中數(shù)值大小居中的一個,并將其存入BUF字節(jié)單元中。
DAT
DB
××,××,××
BUF DB
? 模擬試題三參考答案
一、單項選擇題
1.A 2.C 3.C 4.B 5.A 6.B 7.B 8.B 9.D 10.D 11.C 12.A 13.A 14.B 15.B 16.A 17.D 18.A 19.D 20.C
二、填空題 d 2 e 3 b 4 a 5 c
三、簡答題
1.用DW偽指令:STRING DW ′BA′,0,′DC′,0,′FE′,0
用DD偽指令:STRING DD ′BA′,′DC′,′FE′ 2.(1)當(dāng)DX=01~0FFFFH(或DX≠0)時,CF=1
(2)當(dāng)DX=8000H,OF=1 3.(1)MOV AX,SEG BUF
(2)MOV BX,OFFSET BUF
四、程序分析題 1.AL=80H,CF=1 2.(1)程序段的功能是交換A,B兩字節(jié)數(shù)組的內(nèi)容
(2)A DB 0AH,9,8,7,6,5,4,3,2,1
B DB 1,2,3,4,5,6,7,8,9,0AH 3.(1)程序段的功能是將一位十六進(jìn)制數(shù)轉(zhuǎn)換為相應(yīng)的ASCII碼并顯示。
(2)AL=3時,DL=33H(或′3′);
AL=0FH時,DL=46H(或′F′)4.(1)AL=1
(2)AL=0E1H 5.DX=4658H,CF=2 6.(1)Y DB 23H,01,3EH,2AH,0DFH,89H
(2)可以
7.AX=0E0EH,BX=2
五、程序填空題 1.PUSH AX POP DX 2.LEA DI,BUFF SHR CX,1
六、編制程序題(以下均是參考答案)1.
MOV
CX,2
LOP: SAR M+2,1
RCR
M,1
LOOP LOP 2.
SUB
CX,0101H
SBB
CL,0 3.
DATA SEGMENT
DAT
DB
××,××,××
BUF
DB ?
DATA ENDS
STACK1 SEGMENT PARA STACK
DB
20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV
AX,DATA
MOV
DS,AX
MOV
AL,DAT
MOV
BL,DAT+1
MOV
CL,DAT+2
CMP
AL,BL
JB
LP1
XCHG
AL,BL LP1: CMP
AL,CL
JAE
SAV
XCHG
AL,CL
CMP
AL,BL
JB
SAV
XCHG
AL,BL SAV: MOV
BUF,AL
MOV
INT
CODE ENDS
END
21H START
AH,4CH
第四篇:程序設(shè)計(C)作業(yè)三(含答案)
第三次作業(yè)答案(紅字為答案)
1.下列敘述中錯誤的是()
A.對于double 類型數(shù)組,不可直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出 B.數(shù)組名代表數(shù)組所占存儲區(qū)的首地址,其值不可變 C.在程序執(zhí)行過程中,當(dāng)數(shù)組元素下標(biāo)超出定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)”越界的錯誤提示
D.可以通過賦初值的方式確定數(shù)組元素個數(shù) 提示:請從數(shù)組下標(biāo)的合法取值范圍來考慮。
2.已有定義char a[] = “xyz”,b[]={‘x’, ‘y’, ‘z’},以下敘述正確的是()
A.數(shù)組a 和b 的長度相同
B.數(shù)組a 的長度小于數(shù)組b 的長度
C.數(shù)組a 的長度大于數(shù)組b 的長度
D.上述說法均不正確 提示:此題考察字符數(shù)組長度和字符串長度之間的關(guān)系。
3.以下能正確定義一維數(shù)組的選項是()
A.int num[];
B.#define N 100 int num[N] C.int num[0..100];D.int N = 100;int num[N];提示:此題考察一維數(shù)組的維數(shù)界定問題。
4.下列程序的輸出結(jié)果是()#include