西安石油大学-C语言程
假设在数据段定义了100个带符号数,现在要找出其中的最大值,请写出程序的代码段部分。 DATA SEGMENT buf DB 9,-10,30,100,-200,… ;100个数的定义 DATA
答案是:参考答案 CODE SEGMENT ASUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX, 99 LEA BX, buf MOV AL,[BX] AGAIN: INC BX CMP AL,[BX] JLE NEXT MOV AL,[BX] NEXT: LOOP AGAIN CODE ENDS END START
假设数据段定义如下: DATA SEGMENT M DB 9 N DB 20H R DB -80 S DW ? DATA EN
答案是:2. 参考答案 CODE SEGMENT ASUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,M MUL N ADD AX,100 MOV BX,AX MOV AL,R CBW ADD AX,BX MOV Z,AX CODE ENDS END START
1.编程在屏幕上显示26个大写英文字母A~Z。 注:显示字符A的程序为: MOV AH, 2 MOV DL, ’A’ INT 21H
答案是:1. 参考答案 CODE SEGMENT ASSUME CS:CODE START:MOV CL,26 MOV DL,'A' NEXT:MOV AH,2 INT 21H INC DL LOOP NEXT CODE ENDS END START
写出下列程序段运行后,SP=? MOV SP,100 PUSH AX PUSH BX
答案是:SP=96
有数据段定义语句如下: DATA SEGMENT m1 DB 1,-1 m2 DW 1,-1 DATA ENDS 请画出数据段的数据存放图。
答案是:01 m1 m2 ff 01 00 FF FF
2. 请写出下列程序段运行后的AL的值和CF、SF、OF、ZF的值。 MOV AL,7AH ADD AL,0AAH
答案是:2. AL的值:24H
分别写出下列两段程序运行后,AL的值分别是多少? ① STC MOV AL,2 ADC AL,3 ② STC MOV AL,2 ADD AL,3
答案是:① AL=6,②AL=5
2.8086/8088 CPU有哪两种工作模式?其主要区别是什么?
答案是:2.最小模式和最大模式 最小模式:单CPU,系统总线由CPU产生 最大模式:多CPU,系统总线由8288产生
说出存储器物理地址与逻辑地址的关系。假设存储器逻辑地址为3400H:5000H,那么其物理地址为多少?
答案是:1.物理地址=段地址*16+偏移地址 物理地址为:39000H
15.指令MOV AL,[SI]中源操作数的段地址为(  )。 A.CS     B.DS C. ES D. SS
答案是:B
14.汇编语言源程序文件的后缀名为(  )。 A.ASM   B.OBJ C. EXE D.COM
答案是:A
13.能作为寄存器间接寻址的寄存器为( )。 A.AX B.BX C.CX D.DX
答案是:B
12.逻辑地址为4100H:3000H的存储单元的物理地址为( )。 A.3000H B.4100H C.7100H D.44000H
答案是:D
11.存放程序运行结果状态的寄存器是(  )。 A.SP      B.PSW      C.IP   D.CS
答案是:B
10.执行LOOP指令时,循环次数放在( )中。 A.AX B. BX C.CX D. DX
答案是:C
9.执行MUL BL后,乘法结果存放在寄存器( )中。 A. AX B. BX C. CX D. DX
答案是:A
8.下列指令中正确的指令是( )。 A.IN 10H, AL B.IN 100H, AL C.OUT 10H, AL
答案是:C
7.停机指令是( )。 A. CLD B. HLT C. STI D. NOP
答案是:B
6. 不影响CF标志的指令是( )。 A. DEC AX B. ADD AX,BX C. SUB AX,BX D. SHL AX,1
答案是:A
5.包含立即寻址方式的指令是 ( )。 A. MOV AL,5 B. MOV AL,[5] C. MOV AL,BL D. MOV AL,
答案是:A
4.溢出标志是(  )。 A.DF B.CF C.TF D.OF
答案是:D
代码段寄存器是 ( )。 A. DS B. ES C. CS D. SS
答案是:C
指向堆栈栈顶的寄存器是( )。 A. IP B. SP C. BP D. SI
答案是:B
1.8086 CPU中执行单元的缩写是(  )。 A.EU B.BIU C.ALU D.CU
答案是:A
8.在配置有通道的计算机系统中,设备分配程序应解决哪些问题?
答案是:答:设备分配程序应解决的问题: (1)是否有能用来为I/O请求提供的通路? (2)是否有一条以上的通路可用? (3)如果当前尚无通路可用,那么通路何时才能空闲?
7.什么是文件的存取方法? 常用的存取方法有哪几类?
答案是:答:文件的存取方法是指读写文件存储器上一个物理块的方法。通常有三种存取方法,顺序存取法、直接存取法和按键存取法。
6.什么是虚拟存储器的分页管理?
答案是:答:分页管理是将逻辑地址分成相等的片,这些片称为页面,把物理地址分成同样大小的片称为块,通过适当的变换使逻辑空间的一页对应物理空间的一块。
5.进程调度的功能是什么?
答案是:答:记住系统中所有进程的状态、优先数和资源分配情况、确定调度算法、分配处理机给进程。
4.进程控制块包括那些信息?
答案是:答:包括进程标识名或标识块、位置信息、进程优先级、进程现场保护、资源清单、队列指针或链接字、其它。
3.什么是系统功能调用?
答案是:答:系统功能调用就是用户在程序中能用访管指令或软中断指令调用的操作系统提供的子功能集合。
答:缓冲管理、设备分配、设备处理、设备独立性和虚拟设备。
答案是:答:单用户操作系统、批处理系统、分时系统、实时系统、网络操作系统、分布式操作系统、多处理机操作系统。
操作系统对设备管理包括哪几个方面?
答案是:答:缓冲管理、设备分配、设备处理、设备独立性和虚拟设备。
命令接口
答案是:答:用命令接口进行作业控制的主要方式有两种,即联机控制方式和脱机控制方式。按作业控制方式的不同,可以将命令接口分为联机命令接口和脱机命令接口。 6.I/O调度
 文件管理
答案是:答:计算机中的信息都是以文件的形式存在的,操作系统中负责文件管理的部分称为文件系统。文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
处理机管理
答案是:答:在多道程序环境下,处理机的分配和运行都以进程(或线程)为基本单位,因而对处理机的管理可归结为对进程的管理。并发时在计算机内同时运行多个进程,所以,进程何时创建、何时撤销、如何管理、如何避免冲突、.合理共享就是进程管理的最主要的任务。进程管理的主要功能有:进程控制、进程同步、进程通信、死锁处理、处理机调度等。
同时访问方式
答案是:答:系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问即 “分时共享”。典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。
共享
答案是:答:资源共享即共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
说出I/O系统软件从底层到上层的结构。
答案是:答:硬件、中断处理程序、设备驱动程序、设备无关软件。
虚拟存储器的分段管理有什么优点?
答案是:答:消除了碎片;提供了大量的虚存;允许动态增加段长度;便于动态转入和链接;多个作业可共享同一子程序;便于实现存储保护。
进程控制方面的原语有哪些?
答案是:答:死锁的原因:多个进程因竞争资源而造成的永久性阻塞的现象 。 采取的对策:鸵鸟策略、预防策略、避免策略、监测和解除
程序并发性的特征有哪些?
答案是:答:进程创建原语、进程撤销原语、进程挂起原语、进程激活原语、进程阻塞原语、进程唤醒原语。
常见的特权级指令包括哪些?
答案是:答:失去了程序的封闭性,程序和机器执行程序的活动不再一一对应,并发程序间的相互制约。
操作系统对文件管理包括哪几个方面?
答案是:目录管理、文件读、写管理、文件存取管理、文件存储空间管理
操作系统对存储器的管理包括哪几个方面?
答案是:答:地址重定位、存储分配、存储保护、存储扩展
程序接口
答案是:答:程序接口由一组系统调用命会(简称系统调用,也称广义指令)组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务。用户在程序中可以直接使用这组系统调用命令向系统提出各种服务要求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和回收内存以及其他各种控制要求
设备管理
答案是:答:设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓冲管理、设备分配、设备处理和虛拟设备等功能。
存储器管理
答案是:答:存储器管理是为了给多道程序的运行提供良好的环境,方便用户使用以及提高内存的利用率,主要包括内存分配、地址映射、内存保护与共享和内存扩充等功能。
异步
答案是:答:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
互斥共享方式
答案是:答:系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程访问该资源。
并发
答案是:答:并发是指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它具有处理和调度多个程序同时执行的能力
.编程计算s=12+22+32+…+102
答案是:main() { int i,s=0; for(i=1 ;i<=10;i++) s=s+i*i; print(“%d”,s); }
下列程序运行时,如果输入的数据为10和8.2,程序运行的结果是什么? main () { float a,b,c; float sub(float x,float y); scanf(“%f,%f”,&a,&b); c=su
答案是:1.8
写出下列程序运行的结果。 int a=3,b=8 max(int a,int b) {int c; c=a>b?a:b; return(c); } main () { int a=20; printf(“%d”,max
答案是:20
说明下列程序运行的结果。 main () { int i,a[10] for (i =0 ; i <=9;i++) a[i]= i +20; for (i =9 ; i >=0; i --) printf(“%d”,a[i])
答案是:29 28 27 26 25 24 23 22 21 20
3.说明下列程序运行的结果。 main() { int i=0; while(i<10) { if(i %3==0) printf(“%d”, i); i = i +3; } }
答案是:0 3 6 9
2.画出下列程序的流程图,或写出其对应的数学表达式。 main() { int x , y; scanf(“%d”,&x); if x>0 y=100; else if x=0 y =0; else y =-100;
答案是:2. Y={100 x>0 0 x=0 -100 x<0
1. 写出下列程序运行结果 main() { int a =10,b=20,c; c=a+b; printf(“%d,%d,%d”,a,b,c);
答案是:1. 10,20,30
若ch是char 型变量,下面的程序片段输出的结果是( )。 Ch=’1’; Swith(ch) { case ‘1’ printf(“1”); case ‘2’ printf(“2”); case ‘3’ printf(“
答案是:(4)
若i是int 型变量,下面的程序片段输出的结果是( )。 i=-100; if (i>=0) printf(“a”); else printf(“b”); (1) a (2) ab
答案是:(3)
一个函数要被其它文件调用,应使用说明符( )。 (1) auto (2) static (3) register (4) extern
答案是:(4)
一个整型数以八进制数输出,其格式符为( )。 (1) %d (2) %c (3) %x (4) %o
答案是:(4)
C语言中的包含语句为( ) (1) #include (2) #define (3) include (4) define
答案是:(1)
下列属于合法变量名的是( )。 (1) a_1 (2)a+1 (3) a-1 (4)1a
答案是:(1)
在程序流程图中,表示判断的是( )。 (1) (2) (3) (4)
答案是:(3)
下列能输出一个字符串的函数为( )。 (1) putchar() (2) getchar() (3) printf (4) scanf
答案是:(3)
下列只能用于整型数运算的运算符( )。 (1) + (2) - (3) * (4) %
答案是:(4)
1.执行语句for(i=0;i<9;i++);后变量i的值是( ) (1) 9 (2) 8 (3) 10 (4) 11
答案是:(3)
90 && 5〉3的值为 。
答案是:1
字符串常量“abc123”的长度为 。
答案是:7
假设x=-10执行r=(X>0?100:200)后,r的值为 。
答案是:200
定义双精度型变量f1的语句为 。
答案是:double f1
控制结束本次循环的语句为 。
答案是:continue
函数max(float x,float y)的返回值为 类型。
答案是:整型
若有定义int a[][2]={1,2,3,4,5,6},则数组第一维的大小为 。
答案是:2
表达式’a’>=’b’的值为 。
答案是:0
Float(100)/3的结果为 。
答案是:33.3333333
1. 是C语言程序的基本单位。
答案是:函数
.有两个3×3的矩阵,编程输入其值,计算并输出两矩阵之和。
答案是:main() {int i,j; int a[3][3],b[3][3],c[3][3]; for (i=0;i<=3;i++) for( j=0;j<=3;j++) scanf(“%d”,&a[i][j]; for (i=0;i<=3;i++) for( j=0;j<=3;j++) scanf(“%d”,&b[i][j]; for (i=0;i<=3;i++) for( j=0;j<=3;j++) c[i][j]=a[i][j]+b[i][j];; for (i=0;i<=3;i++) {for( j=0;j<=3;j++) printf(“%d”,c[i],[j]); printf(“\n”)}; }
编程打印以下图案。
答案是:main() {int i,j; char a[7][7]={{‘ ’, ‘ ’,‘ ’,‘* ’},{‘ ’,‘ ’,‘* ’,‘* ’,‘* ’},{‘ ’,‘* ’,‘* ’,‘* ’,‘* ’,‘* ’}, ,{‘* ’,‘* ’,‘* ’,‘* ’,‘* ’,‘* ’,‘* ’},,{‘ ’,‘* ’,‘* ’,‘* ’,‘* ’,‘* ’},{‘ ’,‘ ’,‘* ’,‘* ’,‘* ’}, {‘ ’, ‘ ’,‘ ’,‘* ’}}; for (i=0;i<=7;i++) {for( j=0;j<=7;j++) printf(“%c”,a[i],[j]); printf(“\n”)}; }
1.有一函数 Y={x x>0 2x-10 x=0 x2 x<0 写一程序,输入x,输出y。
答案是:1.main() { int x,y ; scanf(“%d”,&x); if x>0 y=x else if x=0 y=2*x-10; else y=x*x; printf(“%d”,y); }
6.下列程序运行时,如果输入的数据为2.3和8.2,程序运行的结果是什么?若要得到正确的浮点数结果,程序如何修改? main () { float a,b,c; scanf(“%f,%f”,&a,&b); c=add(a,b
答案是:结果为8
5. 写出下列程序运行的结果。 main () { char str1[30]=”hello “; char str2[]=”friend”; printf(“%s”,strcat(str1,str2)); }
答案是:hello friend
4. 说明下列程序运行的结果。 main () { int i,a[10] for (i =0 ; i <=9;i++) a[i]= 2*i; for (i =9 ; i >=0; i --) printf(“%d”,a[i]
答案是:18 16 14 12 10 8 6 4 2 0
3.说明下列程序运行的结果。 main() { int i=0; while(i<10) { printf(“%d”, i); i = i +3; } }
答案是:0 3 6 9
2.假设x代表学生某门课的成绩,grade代表学生成绩的等级,说明下列程序的功能,并说明当x=95时,程序运行的结果。 main() { int x; char grade; scanf(“%d”,&x); if x>85
答案是:2. A
1. 写出下列程序运行结果 main() { int a ; a=’a’; printf(“%c,%d”,a,a); }
答案是:1. a,97
若ch是char 型变量,下面的程序片段输出的结果是( )。 Ch=’2’; Swith(ch) { case ‘1’ printf(“1”); case ‘2’ printf(“2”); case ‘3’ printf(“
答案是:.(3)
9.若i是int 型变量,下面的程序片段输出的结果是( )。 i=10; if (i>=0) printf(“A”); else printf(“B”); printf(“C”); (1) AB
答案是:(2)
8.局部静态变量的说明符为( )。 (1) auto (2) static (3) register (4) extern
答案是:(2)
7. 若有定义语句int a[ ][3]={1,2,3,4,5,6,7,8,9},则数组第一维的大小为( )。 (1) 2 (2) 3 (3) 4 (4) 不
答案是:(2)
6.定义符号常量的语句为( ) (1) #include (2)# define (3) int (4)float
答案是:(2)
5.下列属于合法变量名的是( )。 (1) x1 (2)x+1 (3) x-1 (4)1x
答案是:(1)
4.在程序流程图中,表示处理框的是( )。 (1) (2) (3) (4)
答案是:.(1)
3.标准输入输出函数中只能用于输入一个字符的函数为( )。 (1) putchar() (2) getchar() (3) printf (4) scanf
答案是:(2)
2.下列属于算术运算符的是( )。 (1) % (2) > (3) = (4) ||
答案是:.(1)
1.下列属于规格化指数的是( )。 (1) 132.2 (2) 13.22e1 (3) 1.322e2 (4) 0.1322e3
答案是:( 3)
’a’ && ’b’的值为 。
答案是:1
以 开头的数是十六进制数
答案是:o
假设x=100,y=200,执行r=( x > y?x:y)后,r的值为 。
答案是:.200
定义字符型变量ch的语句为 。
答案是:char ch
用goto语句或 语句可以控制退出循环程序。
答案是:Break
从用户使用角度看,函数分为标准函数和 。
答案是:用户自定义
若有定义int a[5]={1,2},则a[4] 的初始值为
答案是:0
表达式100>=200的值为 。
答案是:0
9/2的结果为 。
答案是:4
一个C源程序至少要包含一个 函数。
答案是:Main
目前为: 1/1 页  首页   上页 下页 尾页