专接本计算机C语言程序设计模拟试题及答案.pdf_第1页
专接本计算机C语言程序设计模拟试题及答案.pdf_第2页
专接本计算机C语言程序设计模拟试题及答案.pdf_第3页
专接本计算机C语言程序设计模拟试题及答案.pdf_第4页
专接本计算机C语言程序设计模拟试题及答案.pdf_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专接本计算机专接本计算机 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. 设有 int x=11; 则表达式(x+ * 1/3) 的值是( ) A) 3 B) 4 C) 11 D) 12 3. 下列程序执行后的输出结果是(小数点后只写一位)( ) #include void main() double d; float f; long l; int i; i=f=l=d=20/3; printf(“%d %ld %f %f n“, i,l,f,d); A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 4. 下列变量定义中合法的是( ) A) short _a=1-.le-1 B) double b=1+5e2.5 C) long d1=0xfdaL D) float 2_and=1-e-3; 5. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( ) A)k+B)k+=1C)+kD)k+1 6. 有以下程序,其中%u 表示按无符号整数输出,输出结果是( ) #include void main() unsigned short x=0xFFFF; /* x 的初值为十六进制数*/ printf(“%un“,x); A)-1B)65535C)32767D)0xFFFF 7. 有以下程序,输出结果是( ) #include void main() int i,j; for(i=1;i #include void main() void inverse(char str); char str100; printf(“input string:“); scanf(“%s“,str); inverse(str); printf(“inverse string:%sn“,str); void inverse(char str) char t; int i,j; for (i=0,j=strlen(str);i 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;iend) ; else for (i=0;inumber) ; ai=number; for (j=i+1;j void f(int *q) int i=0; for( ; i f(int b,int m,int n) int i,s=0; for(i=m;i int f() static int i=0; int s=1; s+=i; i+; return s; void main() int i,a=0; for(i=0;i void main() char ch25= “6937“, “8254“,*p2; int i,j,s=0; for(i=0;i 0;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 #include void main() int m,n; int myfun(int x) int k; 参考答案参考答案 一、单项选择题(每小题一、单项选择题(每小题 2 分,共分,共 20 分)分) AAACA BBADC 二、完成下列的程序填空(每空完成下列的程序填空(每空 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、10 3、15 4、6385 四、按要求编写下列程序(每小题按要求编写下列程序(每小题 13 分,共分,共 26 分)分) 1编写程序,用函数的递归调用求 x 的 n 次方的值,其中 n 为正整数。 #include 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“, printf(“%f 的%d 次方是%f“,x,n,mypow(x,n); 2.输入正整数 m 和 n,如果 m+n 是质数,输出“Yes”,否则,输出“No”。要求定义并调用函数 myfun(x)来判断 x 是否为质数,在下面空出的位置完成程序,不能定义 新的变量,可不用已定义的某些变量。 #include #include void main() int m,n; scanf(“%d%d“, if(myfun(m+n) printf(“Yes“) else printf(“No“); int f(int x) int k; for(k=2;k void main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d n“, d*y); A) 3 B) 3.2 C) 0 D) 3.07 3. 设变量均已正确定义,若要通过 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=1B)x/2C)x%2!=0D)x%2=0 5. 以下叙述中正确的是( ) A)break 语句只能用于 switch 语句体中 B)continue 语句的作用是:使程序的执行流程跳出包含它的所有循环 C)break 语句只能用在循环体内和 switch 语句体内 D)在循环体内使用 break 语句和 continue 语句的作用相同 6. 以下合法的字符型常量是( ) A)x13B)018C) 65D) “n“ 7. 在 C 语言中,函数返回值的类型最终取决于( ) A)函数定义时在函数首部所说明的函数类型B)return 语句中表达式值的类型 C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型 8. 设 int x=1, y=1; 表达式(!x|y-)的值是( ) A) 0 B) 1 C) 2 D) -1 9. 若指针 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); 10. 以下函数的功能是( ) int fun(char *s) char *t=s; while(*t+); return(t-s); A)比较两个字符的大小B)计算 s 所指字符串占用内存字节的个数 C)计算 s 所指字符串的长度 D)将 s 所指字符串复制到字符串 t 中 二、完成下列的程序填空(每空二、完成下列的程序填空(每空 3 分,共分,共 27 分)分) 1输入 20 个数,用起泡法对这 20 个数升序排列。 #include void main() int a20; int i,j,t; printf(“input 20 numbers :n“); for (i=0;i void main() char a6; scanf(“%s“,a); printf(“%dn“,htoi(a); int htoi(char s) int i,n; n=0; for (i=0;si!=0;i+) if (si=0 int a33,*p,i; printf(“input matrix:n“); for (i=0;i void main() void f(int n,int *r); int m=7,r; f(m, 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, *r=r1; 2. 以下程序的输出结果是( ) #include f(int a) int b=0; static int c=3; b+; c+; return(a+b+c); void main() int a=2, i; for(i=0;i void fun(int *x, int *y) printf(“%d %d“, *x, *y); *x=3; *y=4; void main() int x=1,y=2; fun( printf(“%d %d“,x, y); 四、按要求编写下列程序(第四、按要求编写下列程序(第 1 小题小题 16,第,第 2 小题小题 13 分,共分,共 29 分)分) 1编程实现下面的函数,要求输入一个 x 的值,输出 y 值,函数如下: -5 (x0) 2编写一个程序,将一组数据6,5,8,1,0,4,7,3,2,9按从小到大的顺序排列,程序显示排序前和排序后的结果。 参考答案参考答案 一、单项选择题(每小题一、单项选择题(每小题 2 分,共分,共 20 分)分) DCDDC AABAB 二、完成下列的程序填空(每空完成下列的程序填空(每空 3 分,共分,共 27 分)分) 1 iai+1) t=ai;ai=ai+1;ai+1=t; 2. si-0 si-a+10 si-A+10 3. t=*(pointer+3*i+j) *(pointer+3*i+j)=*(pointer+3*j+i) *(pointer+3*j+i)=t 三、写出下列程序的运行结果(每小题写出下列程序的运行结果(每小题 8 分,共分,共 24 分)分) 1、2 2、7 8 9 3、2 14 3 四、按要求编写下列程序(第按要求编写下列程序(第 1 小题小题 13,第,第 2 小题小题 16 分,共分,共 29 分)分) 1编程实现下面的函数,要求输入一个 x 的值,输出 y 值,函数如下: -5 (x0) #include void main () int x,y; printf(“enter x:“); scanf(“%d“, if(x #define N 10 Void main( ) int aN= 6,5,8,1,0,4,7,3,2,9 int i,j,t; printf(“The array before sorted:”); for (i=0;iaj) t=ai; ai=aj; aj=t; printf(“The array after sorted:”); for (i=0;iMASM EXAMPLE CLINK EXAMPLE CEXAMPLE 五、应用题(每小题 10 分,共 30 分) 1. 参考程序如下: DATA SEGMENT DAT DB 23H,32H,13H MAX DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,DAT ; AL23H MOV BL,DAT+1 ; BL32H MOV CL,DAT+2 ; CL13H LOP1: CMP AL,BL JA LOP2 ; AL 中的数据高于 BL 中的数据则跳转致 LOP2 XCHG AL,BL LOP2: CMP AL,CL ; AL 中的数据高于 CL 中的数据则跳转致 LOP3 JA LOP3 XCHG AL,CL ; AL 中的数据为最大值 LOP3: MOV MAX,AL ; 将最大者存放到 MAX 单元 MOV AH,4CH INT 21H CODE ENDS END START 2.参考答案:计数器 0 工作在方式 2,初值 N=5M/1K=5000,控制字为 34H, 计数器 1 工作在方式 0,计数初值为 1000,控制字为 70H; 程序段如下: ;计数器 0 初始化,写入控制字 MOV AL,34H MOV DX,04B3H OUT DX,AL ;计数器 0 赋初值,先写低 8 位再写高 8 位 MOV AX,5000 MOV DX,04B0H OUT DX,AL MOV AL,AH OUT DX,AL ;计数器 1 初始化,写入控制字 MOV AL,70H MOV DX,04B3H OUT DX,AL ;计数器 1 赋初值 MOV AX,1000 MOV DX,04B1H OUT DX,AL MOV AL,AH OUT DX,AL 3.答:(1)74LS138 的作用是地址译码; (2)74LS138 在 G1 为高电平,G2A 和 G2B 都为低电平时才工作; (3)RAM 的地址范围是 72000H73FFFH。 解释:RAM 芯片的片内地址是 A12A0,片外地址为 A19A13,其中地址为 A15A13是译码器输入端,应该为 001;A19A18A17A16应该为 0111 。 所以 20 为地址是 0111 001 0000000000000 0111 001 1111111111111 。 专接本计算机微机原理与汇编语言模拟试题及答案(二专接本计算机微机原理与汇编语言模拟试题及答案(二) 一、单项选择题(每小题 1 分,共 15 分) 1. 十进制正数 38 的八位二进制补码是( )。 A00011001 B10100110 C10011001 D00100110 2. 以下属于总线仲裁器的是( )。 A8288 B8289 C0809 D8089 3. 在数据定义中,如果将 STRING ABC 作为字符串表示时,应使用的伪指令是( )。 ADB BDW CDD DDQ 4. 若将 AH 的内容的高四位分离,则应选用( )。 AAND AL,0F0H BOR AL,0F0H CXOR AL,0F0H DTEST AL,0F0H 5. 不能实现将 AX 清零和 CF 清零的指令是( )。 ASUB AX,AX BMOV AX,0 CXOR AX,AX DAND AX,0 6. LDS 指令要求源操作数必须为( )。 A一个 16 位寄存器 B一个存储器操作数 C一个有效地址 D一个段寄存器 7. 条件转移指令 JNE 的测试条件为 ( )。 AZF=0 BCF=0 CZF=1 DCF=1 8. ORG 设定当前可分配内存单元的( )。 A段地址 B偏移地址 C类型 D字节数 9. 计算机系统软件中的汇编程序是一种( )。 A汇编语言程序 B编辑程序 C翻译程序 D链接程序 10. CPU 在对存储器进行访问时, 地址线有效和数据线有效的时间关系应该是( )。 A同时有效同时无效 B地址线较先有效 C数据线较先有效 D地址数据复用同时有效 11. 响应 NMI 请求的必要条件是( )。 AIF=1 BIF=0 C一条指令结束 D无 INTR 请求 12. 在微机系统中采用 DMA 方式传输数据时,数据传送是()。 A由 CPU 控制完成 B由执行程序(软件)完成 C由 DMAC 发出的控制信号完成 D由总线控制器发出的控制信号完成 13. 若 8259A 工作在优先级自动循环方式,则 IRQ3 的中断请求被响应并且服务完毕后,优先权最高的中断源是( )。 AIRQ0BIRQ2CIRQ3DIRQ4 14.在中断系统中,中断类型号是在()的作用下送往 CPU 的。 A读信号B地址译码信号 C中断请求信号 INTRD中断响应信号 15. 8086 响应以下中断时,需要到数据总线读入中断类型码的是( )。 A单步中断 B指令中断 C可屏蔽中断 D非屏蔽中断 二、填空题(每空 1 分,共 20 分) 1. 8086CPU 具有 条地址线,可直接寻址 容量的内存空间,在访问 I/O 端口时,使用地址线 ,最多可寻址 个 I/O 端口。 2.每次进行串扫描指令 SCAS 时,使用的段寄存器是 ,变址寄存器是 。 3. 已知一个具有 14 位地址和 8 位数据的存储器,该存储器能存储 字节的信息,如果存储器由 8K4 位 RAM 芯片组成,需要 片。 4. 8255A 的工作方式有基本型输入/输出方式、_I/O 方式和_I/O 方式。 5. 8086/8088 微处理器被设计为两个独立的功能部件是_和_。 6. 所谓指令的寻址方式是指寻找 的方式。 7. 在 Intel2116 动态 RAM 存储器中, 对存储器刷新的方法是每次刷新 个单元. 8. DMA 技术提供了_ _到_ _的数据直接传输通道。 9. 中断向量是中断服务程序的_ _, 每个中断向量占_字节。 Intel 8086 将对应 256 类中断的中断向量组成一张_ _, 占据内存从 0 到_ _H 区间。 三、简答题(每小题 5 分,共 20 分) 1.8086 系统中的存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么? 2. BHE 低电平信号的作用是什么?试说明当起始地址为奇地址、偶地址、一次读写一个字节和一个字时,BHE 和 A0 的状态。 3. 试分析 8253 的 6 种工作方式的特点和功能,各方式下的时钟信号 CLK 和门控信号 GATE 分别起什么作用? 4.在一个微型计算机系统中,确定采用何种方式进行数据传送的依据是什么? 四、分析题(每小题 5 分,共 15 分) 1. DATA DB 46H,84,34,3,20H,122,73 : MOV CX,7 LEA S1,DATA NEXT:MOV AL,SI INC SI TEST AL,81H LOOPZ NEXT MOV BL,SI : 程序段运行后,请回答:(AL) (BL) 。 2. 阅读程序段,回答问题: D1 DB 300 DUP(?) D2 DB 100 DUP(?) . MOV CX,100 MOV BX,200 MOV SI,0 MOV DI,0 NEXT:MOV AL,D1BXSI MOV D2DI,AL INC SI INT DI LOOP NEXT (1)该程序段的功能: ; (2)“LOOP NEXT”指令可以用什么指令取代: 。 3. 执行完下列程序后,回答指定的问题。 MOV AX,0 MOV BX,2 MOV CX,50 LP:ADD AX,BX ADD BX,2 LOOP LP 问:(1) 该程序的功能是 。 (2) 程序执行完成后,(AX)= 。 五、应用题(每小题 10 分,共 30 分) 1. 已知在内存中从 DA 单元起存放有 10 个带符号字节数据,统计其中负数的个数并放入 FU 单元。 2. 编写程序,计算下面函数的值。 3. 用查询方式的打印机接口如图,已知 8255 的 A 口作为输出打印的数据口,工作于方式 0,PC 口高 4 位工作于输出方式,PC6产生 STB 信号(低电平有效), PC 口的低 4 位工作于输入方式,PC2接收打印机的 BUSY 信号。设打印字符存放在数据段中有效地址为 2000H 的内存单元。 请写出 8255A 的初始化程序和打印子程序。(8255 的口地址为 80H83H) 参考答案 一、单项选择题(每小题 1 分,共 15 分) 1.D 2.B 3. A 4.A 5.B 6.B 7.A 8.B 9. C 10.B 11.C 12.C 13.D 14.D 15.C 解释: 2. 8288 为总线控制器;0809 为模数转换器;8089 为 I/O 处理器 9. 常用的汇编程序是 MASM,属于汇编翻译程序,是把汇编源程序翻译为机器目标程序的程序。 10. 在 8086/8088 中尽管地址数据复用,但是是分时复用,即在总线周期的 T1 传送地址,在 T2-T4 传送数据,所以地址线较先数据线有效。 15.8086 响应可屏蔽中断中断时,由硬件提供中断类型号,是在响应信号 INTA(低电平有效)的第二个响应周期时放入数据总线;非屏蔽中断无响应信号;内部中断 由指令直接获取中断类型号。 二、填空题(每空 1 分,共 20 分) 1. 20、1MB、16 条、64K 2. ES、DI 3. 16K、4 片 4. 字节选通、双向 5. EU、BIU 6. 操作数 7.128(2116 容量为 16K1,即 7 位地址线行线和列线复用,每次刷新一行的 128 个单元) 8. 外设、存储器 9. 入口地址、4、中断向量表、003FFH 三、简答题(每小题 5 分,共 20 分) 1.8086 系统中的存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么? 答:8086CPU 将 1MB 的存储空间分成逻辑段来进行管理:每个逻辑段最小为 16B。所以最多可分成 64K 个段;每个逻辑段最大为 64KB,最少可分成 16 个逻辑段。 各段的起始位置由程序员指出,可以彼此分离,也可以首尾相连、重叠或部分重叠。 4 个 16 位的段寄存器用来存放每一个逻辑段的段起始地址:CS 中为代码段的起始地址;DS 中为数据段的起始地址;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 种工作方式的特点和功能,各方式下的时钟信号 CLK 和门控信号 GATE 分别起什么作用? 答:方式 0:计数结束,产生中断 方式 1:可重复触发的单稳态触发器 方式 2:分频器 方式 3:方波发生器 方式 4:软件触发的选通信号发生器 方式 5:硬件触发的选通信号发生器 时钟信号 CLK 的作用:在 8253 进行定时或计数工作时,每输入 1 个时钟脉冲信号 CLK,便使计数值减 1。 GATE 信号的控制作用如下: 工作方式 GATE 引脚输入状态所起的作用 OUT 引脚 输出状态 低电平下降沿上升沿高电平 方式 0禁止计数暂停计数 置入初值后 WR 上升沿开始计数, 由 GATE 的上升沿继续计数 允许计数 计数过程中输出低电平。 计数至 0 输出高电平 方式 1不影响不影响 置入初值后,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 个 CLK 的负脉冲(单次) 4.在一个微型计算机系统中,确定采用何种方式进行数据传送的依据是什么? 答:无条件传送方式主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。 条件传送方式主要用于不能保证输入设备总是准备好了数据或者输出设备已经处在可以接收数据的状态。 中断控制方式主要用于需要提高 CPU 利用率和进行实时数据处理的情况。 DMA 控制方式主要用于快速完成大批的数据交换任务。 在实际工作中,具体采用哪种方式要根据实际工作环境与需要结合各种方式的特点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论