2022年河北专升本计算机全真模拟二(C和微机接口)
宋丽丽 希赛网 2021-12-30
第一部分:C语言程序设计(满分150分)
一、单项选择题(本大题共 2小题,每小题 2分,共 40分。)
1. 以下描述正确的是______。
A. C语言属于高级程序设计语言 B. C语言是机器语言
B. C语言是汇编语言 D. C语言是编译语言
2. 结构化程序设计的三种基本结构是:_______。
A. 顺序结构、选择结构、分支结构 B. 顺序结构、分支结构、循环结构
C. for、break、continue D. for、while、do-while
3. 以下标识符中,合法的用户标识符是__________。
A. -3ti B. 3TI C. _DEL3 D. while
4. 下面不是C语言合法的整型常数的是____________。
A. 02 B. 0 C. 038 D. 0Xal
5. 如果定义了字符型变量如下: char a;
则需要将字符a赋给变量a,下面赋值表达式正确的是_____________。
A. a=“a” B. a= ‘a’ C. a= “97” D. a= ‘97’
6. 以下程序的输出结果是( )。
#include
int main()
{
int a=7,b=5;
printf(“%dn”,b=b/a);
return 0;
}
A. 不确定值 B. 5 C. 1 D. 0
7. 执行下面程序后,运行结果是 。
#include
int main()
{
int k1=1,k2=2,k3=3,x=15;
if(!k1) x–;
else if(k2) if(k3) x=4;else x=3;
printf(“x=%dn”,x);
return 0;
}
A. x=4 B. x=15 C. x=14 D. x=3
8. 以下不属于位运算符的是____________。
A. | B. & C. ^ D.!
9. 能够正确表达关系 “x<y<z” p=”” 的表达式为________________________。
A. (x<y)&(y<z) p=”” (x<y)&&(y<z)<=”” d.=”” (x<y<z)=”” c.=”” (x<y)and(y
10. 以下程序中,while循环的次数是__________。
#include
int main( )
{ int i=0;
while(i<10)
{ if(i<1) continue;
If(i==5) break;
i++;
}
……
}
A. 1 B.10 C.6 D.死循环
11. 以下程序的输出结果是_________。
#include
int main()
{
int a=0,i;
for(i=1;i<5;i++)
{ switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf(“%dn”,a);
return 0;
}
A.31 B.13 C.10 D. 20
12. 以下程序的输出结果是_______。
#include
#include
int main()
{
char s1[20]=”China”,s2[20]=”for”,s[10];
if(strcmp(s1,s2)) printf(“%sn”, strcat(s2,s1));
else printf(“%dn”,strlen(s1));
return 0;
}
A. Chinafor B. 5 C. forChina D. 3
13. 关于return语句,下列正确的说法是( )。
A. 可以在同一函数中出现多次 B. 必须在每个函数中出现
C. 只能在除主函数之外的函数中出现一次 D. 在主函数中不能出现
14. 对于如下程序
#include
#define F(X,Y) X*Y
int main()
{
int a=3,b=4;
printf(“%dn”,F(a+2,b+1));
return 0;
}
则程序运行之后正确的输出结果是____________。
A. 25 B. 12 C. 16 D. 20
15. 下列正确的是_______________。
A.int n=5; int a[n]; B. int num[];
C.#define N 10; D. #define N 10
int num[N]; int num[N];
16. 若C源文件中定义的全局变量能被其它源文件使用,则该变量的存储类型应该是_____。
A. auto B.static C. register D. extern
17. 下面叙述中正确的是______。
A. 在C的函数中,只能使用局部变量
B. 在C的函数中,可以使用局部变量
C. 在C的函数中,只能使用全局变量
D. 在C的函数中,不能使用全局变量
18. 如果主函数中有如下定义: char ch[8],*ps=ch; 若调用的函数原型为:func(char *a);则下列不能作为函数实参的是___________。
A. “A” B. ‘S’ C. ch D. ps
19. 对于如下的定义和语句:
int s[2][3],(*ps)[3]; ps=s;
则对s数组的元素s[1][2],可正确引用的形式是________。
A. ps+1*3+2 B. *(ps+3*1+2) C. *(*(ps+1)+2) D. *(ps+1)+2
20. 已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是_________。
struct worker
{ int no; char name[20]; char sex;
struct birth{ int day; int month; int year;}a;};
struct worker w;
A. day=25; month=10; year=1993;
B. w.birth.day=25; w.birth.month=10; w.birth.year=1993;
C. w.day=25; w.month=10; w.year=1993;
D. w.a.day=25; w.a.month=10; w.a.year=1993;
二、程序阅读题(本大题共 5小题,每小题 6分,共 30分。)
1. _________________。
#include
int main()
{
int i=0,a=0;
while(i<20)
{
for(; 😉
{
if(i%10==0) break;
else i–;
}
i+=11;a+=i;
}
printf(“%dn”,a);
return 0;
}
2. _________________。
#include
int f()
{
static int i=0;
int s=1;
s+=i; i++;
return s;
}
int main()
{
int i,a=0 ;
for(i=0; i<10; i++) a+=f();
printf(“%dn”,a);
return 0;
}
3. _________________。
#include
int f( int a[], int n)
{
if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
int main()
{
int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf(“%dn”,s);
return 0;
}
4. _________________。
#include
int main()
{
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf(“%dn”,t);
return 0;
}
5. _________________。
#include
hcf(int u,int v)
{ int a,b,c,r;
if(u>v) { c=u; u=v; v=c; }
a=u; b=v;
while((r=b%a)!=0) { b=a; a=r;}
return(a);
}
int main()
{
int u,v,h,l;
u=32; v=48;
h=hcf(u,v);
printf(“H.C.F=%dt”,h);
return 0;
}
三、程序填空题(每空 5分,共 35分。)
1. 以下程序的功能是:。请完善程序。
#include
void main()
{ int n,s=0, ___________;
for(n=1;n<=5;n++)
{ _________________;
s+=t;
}
printf(“nThe result is %d.n”, s);
}
2.以下函数用来判断字符串是否为“回文” (即:逆读和顺读内容一致的字符串。如:“abcd”不是回文,而“12321”、“abba”则是回文),请完善程序。
int fun(char *a)
{ char *p1, *p2; int n=_____________;
p1=a; p2=a+n-1;
while(p1<p2)
{ if(*p1!=*p2) return 0;
else { p1++; ________________; }
}
return 1;
}
3. 以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。
4
3 7
2 6 9
1 5 8 10
#include
int main()
{
int x[4][4],n=0,i,j;
for(j=0;j<4;j++)
for(i=3;_______;i–)
{ n++;
x[i][j]=________;
}
for(i=0;i<4;i++)
{
for(j=0;j<=i;j++)
printf(“%4d”,x[i][j]);
___________;}
return 1;
}
四、编程题(本大题共 3小题,第小题 15分,共 45分。)
1.编写程序:程序功能是将无符号八进制数字构成的字符串转换为十进制整数。例如输入的字符串为889,则输出十进制整数585。
2. 循环右移:有n个整数,使前面各数顺序循环移动m个位置(m<n)。编写函数实现上述功能,在主函数中输入n个整数并输出调整后的n个数。例如:
输入 input n,m:5,3
1 2 3 4 5
输出:After moved:3 4 5 1 2
3.有三个候选人,每个选民只能投票选一人,要求自行设计一合适结构体,编写一个统计选票的的程序,先后输入被选人的名字,最后输出各人得票结果。(设选民不超过100人)
第二部分:微机原理(满分150分)
一、单项选择题(每小题3分,共45分)
1.8086 微处理器 CLK 引脚输入时钟信号是由( )提供。
A.8284 B.8288 C.8287 D.8289
2.下面四个寄存器中,不能作为间接寻址的寄存器是( )。
A.BX B.DX C.SI D.DI
3.完成将有符号数BX的内容除以2的正确指令是( )。
A.SHR BX,1 B.SAR BX,1
C.ROR,BX,1 D.RCR BX,1
4.执行1号DOS系统功能调用后,从键盘输入的字符应存放在( )。
A.AL B.BL C.CL D.DL
5.在PC机中5号中断,它的中断向量地址是( )
A.0000H:0005H B.0000H:0010H
C.0000H:0014H D.0000H:0020H
6.用汇编语言编制的程序称为源程序,它需经( )以后才能在计算机上运行。
A.装载到计算机 B.汇编并连接 C.解释 D.调试
7.查询输入方式的接口必含有( )。
A.中断请求信号线 B.接收准备好状态线
C.数据准备好状态线 D.输出缓冲器满
8.通常,中断服务程序中有一条 STI 指令,其目的是 ( )。
A.开放所有屏蔽中断 B.允许低一级中断产生
C.允许高一级中断发生 D.允许同级中断产生
9.响应NMI请求的必要条件是( )。
A.IF=1 B.IF=0 C.一条指令结束 D.无INTR请求
10.8086内部中断和外部中断之和最多可有( )个中断。
A.8 B.2 C.255 D.256
11.从硬件的角度而言,采用硬件最少的数据传送方式是( )。
A.DMA控制 B.中断传送
C.查询传送 D.无条件传送
12.微处理器从启动外设直到外设就绪的时间间隔内,一直执行主程序,直到外设要求服务时才终止。此种传送方式是( )
A.DMA. B.无条件 C.查询 D.中断
13.在EPROM芯片的玻璃窗口上,通常都贴有不干胶纸,这是为了( )。
A.保持窗口清洁 B.阻止光照 C.技术保密 D.书写型号
14.当多片8259A级联使用时,对于从8259A,级联信号CAS2~CAS0是( )。
A.输入信号 B.输出信号 C.双向信号 D.中断信号
15.波特率是串行通信中的一项重要参数,以下说明中正确的是( )。
A.波特率是指单位时间内传送的字符数
B.波特率是指单位时间内传送的二进制数的位数
C.波特率也称为波特率因子
D.通常收/发时钟频率等于波特率
二、填空题(每空2分,共30分)
1.系统总线是微处理器与________、I/O接口之间相互交换信息的公共通路。
2.8086的堆栈由 和堆栈指针SP 来定位,堆栈操作是以 ___________为单位进出堆栈。
3.8086CPU的地址总线有 __________位,可直接寻址1MB的存储空间,在独立编址方式下,可寻址___________ 个I/O端口。
4.16K字节的存储芯片有 根地址线,用它构成64KB空间的存储器共需____________ 片,与8位机相连时需地址译码器74LS138,若要求该地址空间为连续的,则译码器的引脚A应接地址线______________ 。
5.设微机的地址总线为16位,其RAM存储器容量为32KB,首地址为4000H,且地址是连续的,则可用的最高地址是____________ 。
6.8086CPU工作在最大方式下,系统需使用 ________ 来形成总线周期。
7.设DS=2000H,BX=0100H,(20100H)=12H,(20101H)=34H。执行指令“MOV AX,[BX]”后,AX的值是____________ ,执行指令“LEA.SI,[BX]”后,SI的值是_______ 。
8.写出完成下列操作的指示性语句:
在BUF为首地址的存储单元中连续存放字节数据2个3,5个’A’,10个(1,2),20个空字节单元。________________________。
9. 分析程序段,完成以下要求:
AS1 DB 41H
HE1 DB ?
MOV AH,AS1
CMP AH,39H
JBE NEXT
SUB AH,7
NEXT : SUB AH,30H
MOV HE1,AH
HLT
(1)该程序段的功能是_____________________ ;
(2)程序执行后,HE1字节单元的内容是 ____________。
三、简答题 (每小题10分,共30分)
1.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。
2.简述流水线技术,8086怎样实现了最简单的指令流水线?
3.比较8255A三种工作方式的应用场合有何区别?
四、应用题(每题15分,共45分)
1.编写程序实现:在内存array开始的10个字节单元中依次存放了9,6,11,3,4,2,8,5,7,6 字节数据,编程求最小数并在屏幕上显示。
2.8253的片选信号如图所示:
(1)列出8253内各计数器及控制字寄存器的一组地址(设未使用的地址线为0)。
(2)设计数器0输入频率1MHz,产生1KHz的方波,写出8253的初始化程序段。
3.现有一输入设备,其数据端口的地址为0FFE0H,并于端口0FFE2H提供状态,当其D0位为1时表明输入数据备好。请编写采用查询方式进行数据传送的程序段,要求从该设备读取100个字节并输入到从1000H:2000H开始的内存中。