?2022年河北專接本計算機模擬試卷
摘要:本文是2022年河北專接本計算機模擬試卷,包括C語言程序設(shè)計和微機原理等兩個部分試題,供大家報考參考,下面是具體內(nèi)容。
C 語言程序設(shè)計試卷
(考試時間:75 分鐘)
(總分:150 分)
一、單項選擇題(本大題共 20 小題,每小題 2 分,共 40 分。)
1.若已定義"int a[3][4],(*p)[4];"下列賦值表達式中( )是正確的。
A.p=*a
B.p=a[1]
C.p=*a+2
D.p=a+2
2.下列程序的輸出結(jié)果是 16.00,則劃線處應(yīng)填()。
main()
{ int a=9,b=2;
float x=_______,y=1.1,z;
z=a/2+b*x/y+1/2;
printf(“%5.2f\n”,z);
}
A. 16.00
B. 13.2
C. 9
D. 6.6
3.以下字符串賦初值的方式不正確的是( )。
A.char *str="string";
B.char *str;str="string";
C.char str[]={'s','t','r','i','n','g'};
D.char str[7]={'s','t','r','i','n','g'};
4.設(shè)有結(jié)構(gòu)體類型定義如下
srtuck student
{
int num;
char name[20];
char sex;
int age;
} stu2[3];
對 stu2 不正確的操作是( )
A.stu2[0].sex='M';
B.stu2[1].age=stu2[0].age+2;
C.scanf("%d",stu2[2].num);
D.printf("%s",stu2[1].name);
5.下列程序執(zhí)行后輸出結(jié)果是( )
void main()
{
int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
A. 1,1,2
B. 2,2,1
C. 2,2,2
D. 2,2,3
6.void main()
{
int i=0,x=0,s=0;
for(;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
程序運行后的輸出結(jié)果是(
)
A.10
B.13
C.21
D.程序進入死循環(huán)
7.以下程序的輸出結(jié)果是( )
#define f(x) x*x
void main ()
{
int a=6,b=2,c;
c=f (a)/f(b);
printf ("%d\n",c) ;
}
A.9
B. 6
C.36
D.18
8.main()
{
char a[20]="ABCD\0EFG\0",b[]="IJK";
strcat(a,b);
printf("%s\n",a);
}
程序的輸出結(jié)果是( )
A.ABCDE\0FG\0IJK
B.ABCDIJK
C.IJK
D.EFGIJK
9.以下不能將 s 所指字符串正確復(fù)制到 t 所指存儲空間的是( )
A.while(*t=*s){t++;s++;}
B.for(i=0;t[i]=s[i];i++);
C.do{*t++=*s++;)while(*s);
D.for(i=0,j=0;t[i++]=s[j++];];
10.void fun(char*w,int m)
{
char s,*pl,*p2;
p1=w;
p2=w+m-1;
while(pl<p2)
{
s=*p1;
*pl=p2;
*p2=s;
p1++;
p2--;
}
}
main()
{
chara[]="123456";
fun(a,strlen(a));
puts(a);
}
程序的輸出結(jié)果是( )
A.654321
B.116611
C.161616
D.123456
11.main()
{
char *s={"abe"};
do
{
printf("%d",*s%10);
++s;
}
while(*s);
}
程序的輸出結(jié)果是( )
A.abc
B.789
C.7890
D.979899
12.有以下程序
int fun (int x,int y){ return x != y ? (x + y) / 3 : x; }
main ()
{
int a = 4, b = 8, c = 6;
printf("%d\n", fun(3 * a, fun(b, c)));
}
程序運行后的輸出結(jié)果是( )。
A.3
B.6
C.8
D.5
13.有以下程序
#include
void fun(char *c)
{
while(*c)
{
if (*c>='a'&&*c<='z')*c=*c-('a'-'A');
c++;
}
}
main()
{
char s[81];
gets(s);
fun(s);
puts(s);
}
當(dāng)執(zhí)行程序時從鍵盤上輸入 Hello Beijing
A.hello Beijing
B.Hello Beijing
C.HELLO BELJING
D.hELLO Beijing
14. 設(shè)有定義:char s[81];int i=10;以下不能將一行(不超過 80 字符)帶有空格的字符串正確讀入的語句或語句組是( )。
A. gets(s);
B.while((s[i++]=getchar())!='\n');s='\0';
C. scanf("%s",s);
D.do{scanf("%c",&s[i]);}while(s[i++]!='\n');s='\0';
15. 下面程序段中,for 循環(huán)的執(zhí)行次數(shù)是()。
char *s="\ta\018bc"; for(;*s!='\0';s++) printf("*");
A.9
B.5
C.6
D.7
16. 若已定義"int a[4][5];"下列表示的數(shù)組元素中( )是錯誤的。
A.*(a+1)
B.(*(a+1))[2]
C.**(a+2)
D.*(*(a+1)+2)
17. 有以下程序:
main()
{ int n=2,k=0;
while(k++ && n++>2);
printf("%d%d\n",k,n);
}
程序運行后的輸出結(jié)果是( )
A.0 2
B. 1 3
C. 5 7
D. 1 2
18. 有以下程序
main()
{ int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c--!=3)
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
else
printf("%d,%d,%d\n",a,b,c);
}
程序運行后的輸出結(jié)果是( )
A. 1,2,3
B.1,3,2
C.1,3,3
D.3,2,1
19. 有以下程序:
int f(int x,int y){ return((y-x)*x);}
main()
{
int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序運行后的輸出結(jié)果是( )。
A、10
B、9
C、8
D、7
20. 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數(shù)值為 4 的表達式是()。
A. a['d'-'c']
B.a['d'-c]
C.a[g-c]
D.a[4]
二、程序閱讀題(本大題共 5 小題,每小題 6 分,共 30 分。)
1、下列程序運行結(jié)果是____________
int fs()
{
static int x = 1;
x+=3;
return x;
}
void cc(){
int i, s = 1;
for (i = 3; i >=1; i--)
s *= fs();
printf("%d\n", s);
}
2、以下程序段的輸出結(jié)果是__________
#include
main()
{ char *ch[4]={"red","green","biue"};
int i=0;
while(ch[i]){putchar(ch[i][0]);i++;}
}
3、以下程序的運行結(jié)果是________
char *fun(char *s)
{
int i,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')s[j++]s[i];
s[j]='\0';return s;
}
main()
{printf("%s",fun("chance"));}
4、以下程序運行結(jié)果_________
main()
{
int i,p[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p1[3], (*p2)[3];
for (i = 0; i<3; i++) p1[i] = p[i];
p2 = p;
for (i = 1; i<3; i++)
printf("%d,%d\n", *(*(p1 + i) + 1) + 1, *(*++p2 + 1) + 1);}
5、以下程序的輸出結(jié)果是____________。
main()
{
int j,a[]={1,3,5,7,9,11,13,15},*p=a+3;
for(j=3; j; j--)
{
switch(j)
{
case 1:
case 2:printf("%d",*p++);break;
case 3:printf("%d",*(--p));
}
}
}
三、程序填空題(每空 5 分,共 35 分。)
1. 以下程序?qū)崿F(xiàn)從 10 個數(shù)中找出最大值和最小值。請?zhí)羁铡?/p>
void mian()
{
int a[]={6,1,5,2,3,9,10,4,8,7},*p=a,*q;
int n=10, max,min;
max=min=*p;
for (q=p; _______;q++)
if (________) max=*q;
else if (______) min=*q;
printf (“max=%d,min=%d\n”max,min);
}
2. 下列函數(shù)用于確定一個給定字符串 str 的長度,請?zhí)羁铡?/p>
int strlen (char str[])
{
int num=0;
while(_______) ++num;
return (_______);
}
四、編程題(本大題共 3 小題,每小題 15 分,共 45 分。)
1.編寫一個函數(shù),實現(xiàn)輸入一個正整數(shù),返回該數(shù)的因子之和。數(shù)的因子:就是所有可以整除這個數(shù)的數(shù),不包括這個數(shù)自身。例如:6 的因子是 1、2、3。
2.采用遞歸函數(shù)求 Fibonacci(斐波那契)數(shù)列前 30 項并打印。
3. 有 10 個學(xué)生,學(xué)生信息包括姓名、學(xué)號、3 門課成績,從鍵盤輸入 10 個學(xué)生的數(shù)據(jù),要求打印出
① 3 門課總平均成績;② 最高分學(xué)生的學(xué)號、姓名及 3 門課成績和平均分
《微機原理、接口與匯編》試題
一、選擇題(每題 3 分,共 45 分)
1. 8086 寄存器中,通常用作數(shù)據(jù)寄存器、且隱含用于 I/O 端口的間址寄存器的是()。
A.AX
B.BX
C.CX
D.DX
2. 已知 8086CPU 內(nèi)部 CS=1000H,DS=2000H,IP=3000H,則將要執(zhí)行指令的代碼存放在內(nèi)存單元中的地址為()。
A.4000H
B.5000H
C.13000H
D.23000H
3. 一臺微型機,其存儲器的首地址為 3000H,末地址為 4FFFH,則該存儲器的容量為()。
A.2KB
B.4KB
C.8KB
D.16KB
4. 有一微機系統(tǒng)采用的 CPU 有 64 條數(shù)據(jù)線,32 條地址線,則該微機系統(tǒng)的最大內(nèi)存容量為( )字節(jié)。
A. 232×8
B. 232 × 4
C. 232 × 2
D. 232
5. 計算機的存儲器采用分級存儲體系的目的是()。
A.便于輸入輸出數(shù)據(jù)
B.減小機箱的體積
C.便于系統(tǒng)升級和兼容
D.解決存儲容量、存取速度間的矛盾 a
6. 在 16 位存儲系統(tǒng)中,為了(),存儲字最好存放在偶地址。
A. 便于快速尋址
B. 節(jié)省所占的內(nèi)存空間
C. 減少執(zhí)行指令的總線周期
D. 減少讀寫錯誤
7. CPU 響應(yīng) INTR 和 NMI 中斷時,相同的必要條件是()。
A. 當(dāng)前指令執(zhí)行結(jié)束
B. 允許中斷
C. 當(dāng)前訪問內(nèi)存結(jié)束
D. 總線空閑
8. CPU 在中斷響應(yīng)過程中() ,是為了能正確地實現(xiàn)中斷返回。
A. 識別中斷源
B. 獲得中斷服務(wù)程序入口地址
C. 清除中斷允許標(biāo)志 IF
D. 斷點壓棧
9. 下列關(guān)于存儲部件的敘述正確的是()。
A.主存的速度可與 CPU 匹配。
B.內(nèi)存是 RAM,不包括 ROM
C.輔存的程序調(diào)入主存中才能執(zhí)行
D.輔存中不能存放程序,只能存放數(shù)據(jù)
10. 下列說法中不正確的是()。
A.變址尋址時,有效數(shù)據(jù)存放在主存中
B.堆棧是先進后出的隨機存儲器
C.堆棧指針 SP 的內(nèi)容表示當(dāng)前堆棧內(nèi)所存儲的數(shù)據(jù)的個數(shù)
D.內(nèi)存中指令的尋址和數(shù)據(jù)的尋址是交替進行的
11. 8086CPU 在中斷響應(yīng)周期中獲得中斷類型碼為 24H,則該中斷服務(wù)程序的入口地址在內(nèi)存中的地址區(qū)間是()。
A.00090H~00091H
B.00090H~00093H
C.00096H~00099H
D.00096H~00097H
12. 8253 可編程定時/計數(shù)器采用 BCD 碼時的計數(shù)范圍是()。
A. 0~255
B.0~9999
C. 0~65535
D. 1~10000
13. 在 8259A 內(nèi)部,用于反映當(dāng)前 CPU 正在執(zhí)行哪些中斷源程序的部件是()。
A.中斷請求寄存器
B.中斷服務(wù)寄存器
C.中斷屏蔽寄存器
D.中斷優(yōu)先級比較器
14. 增量指令 INC 及減量指令 DEC 影響的標(biāo)志有()。
A.CF
B.PF
C.TF
D.SF
15. MOV AL,12H 指令中數(shù)據(jù) 12H 存放在內(nèi)存的()段中。
A.代碼
B.數(shù)據(jù)
C.堆棧
D.附加
二、填空題(每空 2 分,共 30 分)
1. 若一個數(shù)據(jù)塊在內(nèi)存中的起始地址為 80A0H:0DFFFH,則這個數(shù)據(jù)塊的起始物理地址為_____。
2. 當(dāng)一個系統(tǒng)中包含的外設(shè)接口較多時,數(shù)據(jù)總線上需要有_____以增強驅(qū)動能力。
3. 對一個微機系統(tǒng)而言有三種總線:片內(nèi)總線、內(nèi)部總線和外部總線,外部總線又稱為_____,內(nèi)部總線又稱為_____。
4. 若用 8K×4RAM 組成 32K×8 的存儲容量,需 RAM 芯片_____個,以及擴展芯片選擇地址線_____根。
5. 中斷類型號為 20H 的中斷所對應(yīng)的中斷向量存放在內(nèi)存從_____開始的四個連續(xù)字節(jié)單元中,若這四個字節(jié)單元的內(nèi)容由低地址到高地址依次為 00H、50H、00H、60H,則中斷服務(wù)程序的入口地址_____。
6. 一片 8255A 端口 A 有____種工作方式,端口 B 有______種工作方式。
7. 8253 有_____種工作方式,其中有_____種工作方式只能單次執(zhí)行。
8. 執(zhí)行程序段后,均用十六進制表示 AX、BL、CL 三個寄存器的值,分別為:
AX=_____,BL=_____, CL=_____ 。
S1 DW‘12’
CNT EQU 12
…
MOV BL,BYTE PTR S1
MOV CL,CNT
MOV AX,S1
HLT
三、簡答題(每題 10 分,共 30 分)
1. 什么是總線標(biāo)準(zhǔn)?微機總線可分為哪幾類?USB 是什么?
2. 何為多級存儲系統(tǒng)? 為什么在計算機中要使用多級存儲系統(tǒng)?
3. 試比較 8259A 中斷控制器的自動結(jié)束中斷與非自動結(jié)束中斷方式的區(qū)別。
四、應(yīng)用題(每題 15 分,共 45 分)
1. 編寫匯編源程序,要求在內(nèi)存中定義兩個字節(jié)變量 X 和 Y,用移位指令計算得到 6X,并將該乘積存入Y 單元。假設(shè)乘積為字節(jié)。
2. 下圖為存儲器芯片譯碼電路圖,請回答:
(1)計算 1#存儲器的地址范圍及容量是多少。
(2)如果將 1#存儲器的片選端直接和譯碼器的Y3相連,則該芯片的地址范圍及容量是多少。
3. 8253 的端口地址為 300H~303H,利用 8253 的計數(shù)器 0 周期性地每隔 20ms 產(chǎn)生一次中斷信號,計數(shù)時鐘頻率 CLK0 為 2MHz,要求計算初值和方式控制字,編寫實現(xiàn)上述功能的初始化程序段。
延伸閱讀
- 2023年河北專升本金屬材料概論模擬題及答案
- 2023年河北專升本環(huán)境監(jiān)測模擬題及答案
- 2023年河北專升本環(huán)境保護概論模擬題及答案
- 2023年河北專升本和聲學(xué)模擬題及答案
- 2023年河北專升本基本樂理模擬題及答案
- 2023年河北專升本命題創(chuàng)作模擬題及答案
專升本微信公眾號
掃碼添加
專升本備考資料免費領(lǐng)取
去領(lǐng)取