请编制程序,其功能是:内存中连续存放着20个ASCII字符,如果是小写字母a~z之间的字符,请把它们转换成相应的大写字符;若为其他字符,不作转换。
例如:
内存中有61H('a'),62H('b'),31H('1'),41H('A'),42H('B')…
结果为 41H('A'),42H('B'),31H,41H('A'),42H('B')…
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整(空白己用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:

第1题:
请编制程序,其功能是:内存中连续存放着20个ASCⅡ字符,如果是小写字母a~z之间的字符(包括字母a和z),请把它们转换成相应的大写字母所对应的ASCⅡ字符;若为其他字符,不作转换。
例如:
内存中有:61H('a'),62H('b'),31H('1'),41H('A'),42H('B')…
结果为: 41H('A'),42H('B'),31H,41H,42H…
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR,SAVE:FAR
N EQU 20
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N DUP(0)
NAME0 DB 'INPUT1.DAT',0
NAME1 DB 'OUTPUT1.DAT',0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名
MOV CX,N ; 字节数
CALL LOAD ; 从"INPUT.DAT"中读取数据
; ******** BEGIN ********
LEA SI, SOURCE
LEA DI, RESULT
MOV CX, N
NEXT: MOV AL,[SI]
CMP AL,'a'
JB (1)
CMP AL, (2)
J (3) UPPER2
SUB AL, (4)
UPPER2: HOV [DI], (5)
INC (6)
INC (7)
(8) NEXT
; ******** END ********
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
第2题:
计算机的内存中有一项占据4个字节的数据,内容依次为61H,41H,31H,51H,这项数据可能是()。
A.汉字,西文混合字符串
B.汉字字符串
C.西文字符串
D.控制字符串
第3题:
从键盘输入一组小写字母,保存在字符数组str中。请补充函数proc(),该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入abcdefg,输出aBcDeFg。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proe()的横线上填入所编写的若干表达式或语句。
试题程序:



【解析】要将字符串中所有下标为奇数的小写字母转化为大写字母,应该检查字符串str中从第一个到最后一个字符,判断其下标是否为奇数,因此【l】填“str[i]!=ˊ\0ˊ”。每找到一个下标为奇数的小写字母。就将其转换为大写字母,大写字母的ASCⅡ码值比与其对应的小写字母小32,因此【2】填“32”。每判断完一个字符,要为检查下一个字符做准备,因此【3】填“i++”。
第4题:
ASCII编码字符集是最常用的西文字符集。下列关于ASCII编码字符集的叙述中,错误的是( )。
A.每个字符的编码在内存中只占一个字节
B.英文大小写字母的编码不相同
C.每个字符在.PC机键盘上都有一个键与之对应
D.部分字符是不可显示(打印)的
第5题:
下列字符中,其ASCII码值最大的是______。
A.空格字符
B.9
C.A
D.z
第6题:
strtolower()函数的功能是()
第7题:
lash能将ASCII代码转换成对应的字符,也可以返回字符对应的ASCII码。Chr表示什么()。
第8题:
已知大写字母’A’的ASCII码是65,小写字母“a”的ASCII码是97,则字符常量“/101”是()
第9题:
strtoupper()函数的功能是:()
第10题:
第11题:
第12题:
字符’A’
字符’a’
字符’e’
非法的常量
第13题:
以下关于全角和半角的叙述中,( )不正确。
A. 半角字符指小写字母和汉字筒体,全角字符指大写字母和汉字繁体
B. 在屏幕上,全角字符显示的宽度为半角字符的两倍
C. 在磁盘内存储的文档中,每个半角字符占用一个字节
D. 在磁盘内存储的文档中,每个全角字符占用两个字节
第14题:
试题要求如下:
请编制程序,其功能是:内存中连续放着20个ASCII字符,如果是小写字母A~Z之间的字符,请把它们转换成相应的小写字母:若为其他字符,均转换成ASCII字符'NUL' (00H)。
例如:
内存中有:41H ('A'),42H ('B'),5EH,64H,48H……
结果为: 61H ('a'),62H ('b'),00H('NUL'),00H('NUL'),00H('NUL')……
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算的结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。在BEGIN和AND之间编程完成要求的功能。
对程序进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果。
试题程序:
EXTRN LOAD: FAR, SAVE: FAR
N EQU 20
STAC SEGMENT STACK
DB 128 DUP (? )
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N DUP(0FH)
NAME0 DB 'INPUT1.DAT', 0
NAME1 DB 'OUTPUT1.DAT', 0
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA, SS: STAC
START PROC FAR
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATA
MOV DS, AX
LEA DX, SOURCE ; 数据区起始地址
LEA SI, NAME0 ; 原始数据文件名
MOV CX, N ; 字节数
CALL LOAD ; 从'INPUT1.DAT'中读取数据
LEA SI, SOURCE
LEA DI, RESULT
; **** BEGIN ****
; **** END ****
LEA DX, RESULT ; 结果数据区首址
LEA SI, NAME1 ; 结果文件名
MOV CX, L+I ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
第15题:
函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。
例如,原文:Adb.Bcdza
abck.LLhj
结果:Aec.Bdeab
bcdl.LLik
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
第16题:
已知大写字母B的ASCII码值是66,小写字母b的ASCII码值是98,则用八进制表示的字符常量'\ 142'是( )
A.字符B
B.字符b
C.字符a
D.非法的常量
第17题:
编一个程序,输入一个字符,如果输入的字符是大写字母,则转换为小写字母;如果输入的字符是小写字母,则转换为大写字母,否则不转换。
第18题:
如何将字符串每个单词的首字符转换成大写
第19题:
下列关于字符叙述中正确的是:()
第20题:
已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用 八进制表示的字符常量’/101’是().
第21题:
如何将字符串首字符转换成大写
第22题:
西文字符“A”的ASCII码值在内存中占1字节
汉字“天”的ASCII码值在内存中占2字节
ASCII码是汉字和西文字符在计算机内部的表示形式
大写字母“A”和小写字母“a”的ASCII码值相同
第23题:
从文件f中读取长度为n的字符串存人指针s所指的内存
从文件f中读取长度不超过n-1的字符串存人指针s所指的内存
从文件f中读取n个字符串存人指针s所指的内存
从文件f中读取长度为n-1的字符串存入指针s所指的内存