有朋友会这道编程题吗,用汇编语言啊。。跪求答案啊。。。设在数据段中以BLOCK为首地址的存储区域中存...

有朋友会这道编程题吗,用汇编语言啊。。跪求答案啊。。。设在数据段中以BLOCK为首地址的存储区域中存...,第1张

data segment

blockdb 16 dup(?)

averagedb 0

data ends

code segment

start:mov ax,data

mov ds,ax

xor ax,ax

lea si,block

mov cx,16

_Add: mov bl,[si]

add al,bl

adc ah,0

inc si

loop_Add

div ax,16

mov average,al

mov ax,4c00h

int 21h

code ends

end start

你笑薯好,

建议使用他们的软件进行code的编写,

毕竟你是要考试,考试的碰数者软件和他们提供的毕森是一模一样的。

记得在考二级的时候不执行编译链接步骤好像也没有分。

编译器是不会影响结果的,

祝你生活愉快。

1L的哥们竟然没有分数也没有读写文件记录,我在他的基础上加了这个功能,采纳衫没闹谁都可以哦~

#include <stdio.h>

#include <ctype.h>

#include <time.h>

#include <stdlib.h>

#include <windows.h>

#define IDNO_LENGTH 6

#define CALC_KIND 4

#define CALC_NUM 10

bool checkNo(char idNo[])

char getSignal()

int getResult(int,int,char)

void takeTest()

//main函数

void main()

{

printf("Please input your four digit ID no(begin with two letters):")

char idNo[IDNO_LENGTH]

do

{

scanf("%s",&idNo)

fflush(stdin)

} while(checkNo(idNo)==false)

printf("1.Start a test\t2.Check score\t3.Exitb\n")

int choose

do

{

printf("选择:")

scanf("%d",&choose)

fflush(stdin)

} while(choose!=1 &&choose!=2&&choose!=3)

if(choose==1)

{

takeTest()

}else if(choose==2)

{

FILE *fp

char ch

if((fp=fopen("score.txt","rt+"))==NULL)

{

printf("\n你还没做过题目测试")

getch()

exit(1)

}

ch=fgetc(fp)

while(ch!=EOF)

{

putchar(ch)

ch=fgetc(fp)

}

fclose(fp)

}

else

{

exit(0)

}

}

//获察尘取随机运算符

char getSignal()

{

char signal[CALC_KIND]={'+','-','*','/'}

srand((unsigned)time(NULL))

return signal[rand()%4]

}

//获取随机数

int random(double start, double end)

{

return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0))

}

//运算

int getResult(int num1,int num2,char signal)

{

int res

switch(signal)

{

case '+':

res=num1+num2break

case '-':

res=num1-num2break

case '*':

res=num1*num2break

case '/':

res=num1/num2break

default:

res=0

printf("运算符不符合规则\n")

}

return res

}

//列出10道题

void takeTest()

{

printf("开始答题,每道题10分,或罩总共100分\n")

clock_t startTime

startTime=clock()

int index

int giveRes

int num1

int num2

int score=0

char signal

for(index=0index<CALC_NUMindex++)

{

srand((unsigned)time(NULL))

signal=getSignal()

num1=random(0,100)

num2=random(1,100)

printf("%d%c%d=",num1,signal,num2)

scanf("%d",&giveRes)

fflush(stdin)

if(getResult(num1,num2,signal)==giveRes)

{

printf("correct\n")

score+=10

}

else

{

printf("wrong\n")

}

}

FILE *fp=fopen("score.txt","w")

fprintf(fp,"分数为%d",score)

fclose(fp)

printf("解10道题用了%lf秒\n",(double)(clock()- startTime)/CLOCKS_PER_SEC)

}

//检测idNo是否合规则,合规则返回true

bool checkNo(char idNo[])

{

int index

bool flag

flag=true

for(index=0index<IDNO_LENGTHindex++)

{

if(index<2)

{

if(!isalpha(idNo[index]))

{

flag=false

printf("ID no 不符合规则,重新输入:")

break

}

}

else

{

if(!isdigit(idNo[index]))

{

flag=false

printf("ID no 不符合规则,重新输入:")

break

}

}

}

return flag

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12481104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存