题目详情
当前位置:首页 > 职业培训考试
题目详情:
发布时间:2023-10-28 04:19:45

[填空题]在以ES:SOC1为起始地址的表中存有字符串,它以Null(00H)作结束符,在DS:CHAR中有关键字。从上述表中查找第一个此关键字的程序段如下。若找到此关键字,寄存器CX 中存放该关键字在ES段中的位移量;若串中无此关键字,Cx返回-1值。请将该程序段的空格补充完整。 MOV DI, OFFSET SOC1 MOV CX, 0 CPO: CMP ES:______, 00H JNE COUNT MOV BX, CX MOV SI, OFFSET CHAR MOV AL, [SI] MOV DI, OFFSET SOC1 CLD ______SCASB JZ FOUND MOV CX, RET FOUND: ______DI MOV CX, DI RET COUNT: INC DI INC CX JMP CPO

更多"在以ES:SOC1为起始地址的表中存有字符串,它以Null(00H)作"的相关试题:

[填空题]以下函数将b字符串连接到a字符串的后面,并返回a中新字符串的长度。 strcen(char aC), char b[]) { int num=0,n=0; while(*(a+num)!= 【14】 ) num++; while(b[n]){*(a+num)=b[n]; num++; 【15】 ;) return(num); }
[填空题]以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。
strcen(char a[],char b[])
int num=0,n=0;
while(*(a+num)!= 【19】 )num++;
while(b[n])*(a+num)=b[n];num++; 【20】 ;
return(num);

[填空题]以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。
surcen(chara[],char b[])
int num=0,n=0;
while(*(a+num)!=______)num++;
while(b[n])*(a+num)=b[n];num++;______;
return(num);
_’/o’或0
[填空题]以下函数把b字符串连到a字符串的后面,并返回a中新字符串的长度,请填空。
strcen(char a[],char b[])

int num=0,n=0;
while(*(a+num)!= 【13】 )num++;
while(b[n])*(a+num)=b[n];num++; 【14】
return num;

[填空题]以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。
strcen(char a[],char b[])
int num=0,n=0;
while(*(a+num)! = 【15】 )num++;
while(b[n])*(a+num)=b[n];num++; 【16】
return(num);

[填空题]请补充函数fun(char *s),该函数的功能是把字符串中的内容逆置。
例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为edcba。
注意;部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun( )的横线上填入所编写的若干表达式或语句。
试题程序:
$include<string.h>
#include<conio.h>
#include<stdio.h>
#define N 81
void fun(char*s)

int i=0,t,n=strlen(s);
for(; 【1】 ;i++)

t=*(s+i);
【2】
【3】


main( )

char a[N];
clrscr( );
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);
printf("/n");
printf("The string after modified:");
puts(a);

[简答题]请编一个函数fun(char*str),该函数的功能是把字符串中的内容逆置。
例如,字符串中原有的字符串为asdfg,则调用该函数后,串中的内容为gfdsa。
请勿改动主函数rllain和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<string.h>
#include<conio.h>
#include<stdio.h>
#define N 100
void fun(char*str)

char a[N];
FILE*out;
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);


main( )
printf("The string after modified:");
puts(a);
strcpy(a,"Welcome!");
fun(a);
out=fopen("outfile.dat","w");
fprintf(out,"%s",a);
fclose(out);

[简答题]请编写一个函数 int find(char s[],char t[]), 该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值):否则返回-1。本题要求:用数组方式及两重循环来实现该函数。
注意:部分源程序已存在考生文件夹的文件PROC1.cpp中。
请勿修改主函数和其他函数中的任何内容,仅在函数find( )的花括号中填写若干语句。
文件PROC1.cpp的内容如下:
//PROC1.cpp
#include<iostream>
using namespace std;
int find(char s[],char t[]);
const int MAXLINE = 256;
int main( )

char source[MAXLINE],target[MAXLINE];
cout<<"Please input a string for searching:/n";
cin.getline(source,MAXLINE);
cout<<"Please input a string you want to find:/n";
cin.getline(target,MAXLINE);
int intPos=find(source,target);
if(intPos>=0)
cout<<"Finding it,The target string is at index"
<<intPos<<"of the source string/n";
else
cout<<"Not finding it /n";
return 0;

int find(char s[],char t[])

//********

[简答题]【函数1.1说明】 函数strcpy(char*to,char*from)将字符串from复制到字符串to。 【函数1.1】 void strcpy(char*to,char*from) { while ( (1) );} 【函数1.2说明】 函数merge(int a[],int n,int b[],int m,int*c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。 【函数1.2】 void merge(int a[ ],int n,int b[ ] ,int m,int * c) { int i,j; for(i=j=0;i<n && j<m;) *c++=a[i] <b[j]a[i++]:b[j++]; while( (2) )*c++=a[i++]; while( (3) )*c++=b[j++]; } 【函数1.3说明】 递归函数sum(int a[],int n)的返回值是数组a[]的前n个元素之和。 【函数1.3】 int sum(int a[] ,int n) { if( n >0) return (4) ; else (5) ; }
[简答题]常用字符串函数strcat(s1,s2)可将字符串s2添加到字符串s1的末端,但其使用必须保证字符串s1足够大,以便保存它自己的内容和字符串s2中的内容。请编写一个函数char*append(char*s1,char*s2),其可将字符串s2添加到字符串s1的末端,而且不受s1空间大小的限制。请利用常用字符串函数实现。
常用字符串函数说明:
strcpy(to,form):将form字符串复制到to字符串;
strcat(s1,s2):将字符串s2添加到字符串s1的末端,但必须保证字符串s1足够大;
strlen(s):返回字符串s的长度;
注意:部分源程序已存在文件test4_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数append的花括号中填写若干语句。
输出结果如下:
this is a string.
文件test4_2.cpp的内容如下:
#include<iostream.h>
#include<string.h>
char *append(char *s1,char *s2)


void main( )

char *s,*s1,*s2;
s1="this is ";
s2=",a string.";
s=append(s1,s2);
cout<<s<<endl;

[简答题]请编写一个函数char*change(char instr[]),将输入字符串中的所有小写字母转换为大写字母输出。要求使用for循环实现。如输入jinfeiteng,则输出结果是JINFEITENG。
注意:部分源程序已存在文件test21_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数change的花括号中填写若干语句。
文件test21_2.cpp的内容如下:
char*change(char instr[]);
#include"iostream.h"
void main( )

char instr[50];
char *outstr;
cout<<"Input a string:"<<endl;
cin>>instr;
outstr=change(instr);
cout<<"Over graded string:"<<endl;
cout<<outstr<<endl;

char*change(char instr[])


[简答题]请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以00H结束,长度不超过20个字节。
例如:
原字符串为:4EH,4EH,4EH,42H,1AH,31H,31H,00H:
新字符串为:4EH,42H,1AH,31H,00H
部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1. DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END 之间补充一段源程序,完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。
部分程序如下:
; PROG1. ASM
EXTRN LOAD:FAR,SAVE:FAR
LEN EQU 20
N EQU 10
DSEG SEGMENT
SOURCE DW N DUP ( )
RESULT DW N DUP (0)
NAME0 DB ’INPUT1.DAT’, 0
NAME1 DB ’OUTPUT1.DAT’,0
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP ( )
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG, DS:DSEG;SS:SSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV ES,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; *** BEGIN ***
…………
…………
…………
; *** END ***

[简答题]请编制程序,其功能是:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以00H结束,长度不超过20个字节。
例如:
原字符串为:41H,41H,41H,42H,31H,31H,...,00H(’AAAB11’)
新字符串为:41H,42H,31H,...,00H(’AB1’)
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
LEN EQU 20
DSEG SEGMENT
SOURCE DB LEN DUP( )
RESULT DB LEN DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.DAT’,0
DSEG ENDS
SSEG SEGMENT STACK
DW 256 DUP( )
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,SS:SSEG,DS:DSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,LEN

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码