第一章1.1 解:五代,详细见书1.2 解:微型计算机:以大规模、超大规模集成电路[1]为主要部件,以集成了计算机主要部件——控制器和运算器[2]的微处理器[3]为核心,所构造出的计算机系统 。PC机:PC(Personal Computer)机就是面向个人单独使用的一类微机 。单片机:用于控制的微处理器芯片,部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路[4]等。数字信号处理器[5]DSP:主要面向大流量数字信号[6]的实时处理[7],在宿主系统中充当数据处理[8]中心,在网络通信、多媒体应用等领域正得到越来越多的应用1.3 解:微机主要有存储器[9]、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源1.4 解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换 。好处:组态灵活、扩展方便三组信号线[10]:数据总线[11]、地址总线[12]和控制总线[13] 。其使用特点是:在某一时刻,只能由一个总线主控[14]设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。1.5解:(1)用于数值计算、数据处理及信息管理方向。采用通用微机,要求有较快的工作速度、较高的运算精度、较大的存容量和较完备的输入输出设备[15],为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。(2)用于过程控制[16]及嵌人应用方向。采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。1.6 解:1.7 解:I/O通道:位于CPU和设备控制器[17]之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU从繁杂的I/O任务中解脱出来。由10根信号线组成(A9-A0)。子程序[18]和主程序使用同一个变量名存取数据就是利用共享变量(全局变量[19])进行参数传递[20]如果变量定义和使用不在同一个源程序[21]中,需要利用PUBLIC、EXTREN声明如果主程序还要利用原来的变量值,则需要保护和恢复利用共享变量传递参数,子程序的通用性较差,但特别适合在多个程序段[22]间、尤其在不同的程序模块间传递数据(3)用堆栈传递参数参数传递还可以通过堆栈这个临时存储区。主程序将入口参数压入堆栈,子程序从堆栈中取出参数;子程序将出口参数压入堆栈,主程序弹出堆栈取得它们采用堆栈传递参数是程式化的,它是编译程序[23]处理参数传递、以及汇编语言[24]与高级语言[25]混合编程时的常规方法3.32 解:方法:主程序将入口参数压入堆栈,子程序从堆栈中取出参数;子程序将出口参数压入堆栈,主程序弹出堆栈取得它们注意:压栈与弹栈必须要一一对应。3.33 解:方法1:neg32 proc ;入口参数:DX.AX=32位有符号数neg ax ;实现0-DX.AX功能neg dxsbb dx,0 ;这条指令也可以用dec dx代替retneg32 endp ;出口参数:DX.AX=32位有符号数的补码方法2:neg32 proc ;入口参数:DX.AX=32位有符号数not ax ;实现DX.AX求反加1not dxadd ax,1adc dx,0retneg32 endp ;出口参数:DX.AX=32位有符号数的补码3.34 解:;数据段array db 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90h ;数组count equ -array ;数组元素个数result db ? ;校验和[26];代码段mov bx,offset array ;BX←数组的偏移地址mov cx,count ;CX←数组的元素个数call checksum ;调用求和过程mov result,al ;处理出口参数mov ax,4c00hint 21h;计算字节校验和的通用过程;入口参数:DS:BX=数组的段地址:偏移地址,CX=元素个数;出口参数:AL=校验和;说明:除AX/BX/CX外,不影响其他寄存器[27]checksum procxor al,al ;累加器[28]清0sum: add al,[bx] ;求和inc bx ;指向下一个字节loop sumretchecksum endpend3.35 解:⑴.model small.stack.datawdata dw 34abh.code.startupmov ax,wdatacall dispa.exit 0;dispa procpush cxpush dxmov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop dxpop cxretdispa endp;dldisp procpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1: mov ah,2int 21hpop axretdldisp endpend⑵.model small.stack.datawdata dw 34abhwordtemp dw ?.code.startupmov ax,wdatamov wordtemp,axcall dispa.exit 0;dispa procpush cxpush dxmov cl,4mov dl,byte ptr wordtemp+1shr dl,clcall dldispmov dl,byte ptr wordtemp+1and dl,0fhcall dldispmov dl,byte ptr wordtempshr dl,clcall dldispmov dl,byte ptr wordtempand dl,0fhcall dldisppop dxpop cxretdispa endp;dldisp procpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1: mov ah,2int 21hpop axretdldisp endpend⑶.model small.stack.datawdata dw 34abh.code.startuppush wdatacall dispapop ax ;add sp,2.exit 0;dispa procpush bpmov bp,sppush axpush cxpush dxmov ax,[bp+4]mov cl,4mov dl,ahshr dl,clcall dldispmov dl,ahand dl,0fhcall dldispmov dl,alshr dl,clcall dldispmov dl,aland dl,0fhcall dldisppop dxpop cxpop axpop bpretdispa endp;dldisp procpush axor dl,30hcmp dl,39hjbe dldisp1add dl,7dldisp1: mov ah,2int 21hpop axretdldisp endpend3.36 解:如果利用共享变量传递函数[29],且变量定义和使用不在同一个源程序中,需要利用PUBLIC、EXTERN声明。3.37 解:(1)宏定义由一对宏汇编伪指令[30]MACRO和ENDM来完成,格式如下:宏名 MACRO [形参表]…… ;宏定义体ENDM宏定义之后就可以使用它,即宏调用:宏名 [实参[31]表](2)宏调用的格式同一般指令一样:在使用宏指令[32]的位置写下宏名,后跟实体参数;如果有多个参数,应按形参顺序填入实参,也用逗号分隔(3)宏展开:在汇编时,宏指令被汇编程序[33]用对应的代码序列替代,这就是宏展开宏展开的具体过程是:当汇编程序扫描源程序遇到已有定义的宏调用时,即用相应的宏定义体完全替代源程序的宏指令,同时用位置匹配的实参对形参进行取代3.38 解:宏调用的参数通过形参、实参结合实现传递,简捷直观、灵活多变。宏汇编的一大特色是它的参数。宏定义时既可以无参数,也可以有一个或多个参数;宏调用时实参的形式也非常灵活,可以是常数、变量、存储单元[34]、指令(操作码[35])或它们的一部分,也可以是表达式;只要宏展开后符合汇编语言的语法规则即可。3.39 解:宏:仅是源程序级的简化:宏调用在汇编时进行程序语句的展开,不需要返回;不减小目标程序[36],执行速度没有改变通过形参、实参结合实现参数传递,简捷直观、灵活多变子程序:还是目标程序级的简化:子程序调用在执行时由CALL指令转向、RET指令返回;形成的目标代码[37]较短,执行速度减慢需要利用寄存器、存储单元或堆栈等传递参数选择:宏与子程序具有各自的特点,程序员应该根据具体问题选择使用那种方法。通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子程序3.40 编写一个宏指令move doprnd,soprnd,它实现任意寻址方式[38]的字量源操作数[39]soprnd送到目的操作数doprnd,包括存储单元到存储单元的传送功能。答:move macro doprnd,soprndmov ax,soprndmov doprnd,axendm3.41 定义一个宏logical,用它代表4条逻辑运算指令:and/or/xor/test。注意需要利用3个形式参数[40],并给出一个宏调用以及对应宏展开的例子。答:logical macro lcode,dopd,sopdlcode dopd,sopdendm例如,如果使用“and ax,[bx]”指令,可以利用该宏定义,写出宏指令如下:logical and,ax,[bx]3.42 解:utol macrolocal nextcmp al,’A’ ;小于“A”不转换jb nextcmp al,’Z’ ;大于“A”不转换ja nextadd al,20h ;是大写字母则转换为小写字母next:endm3.43 定义一个宏movestr strn,dstr,sstr,它将strn个字符从一个字符区sstr传送到另一个字符区dstr
5.在MCGS组态软件中,某画面图表需要完成一定距离的水平移动,假设最大移动距离为200,移动时间要求为10s,循环策略执行间隔设置为200ms。脚本程序中该图表的水平移动量的变化率为2次。那么,当水平移动量为80的时候,水平移动距离为____。A. 120B. 160C. 180D. 200
智能语音技术中,哪项技术可以用于改善嘈杂环境下的语音识别效果?A. 声纹识别B. 自然语言处理C. 语音识别D. 语音增强
在物联网[1]中,()可以看作是人类的脑和神经,用来对采集到的外界数据进行传送和处理 A.应用层B.网络层C.感知层[2]D.转换层
计算机控制系统的输入和输出都有保持器,它们的作用有什么不同?
OpenAI在预训练chatGPT大模型时,使用了上万块()显卡。A. FPGAB. CPUC. TPUD. GPU
在AI伦理中,哪一项原则强调了AI系统应该能够被人类理解和控制?A. 透明性B. 自主性C. 隐私保护D. 公平性
2.10若运行下程序,从键盘输入2473<回车>,则下面程序的结果是( A )。#include<stdio.h>void main()( int c;while((c=getchar())!=’n’ )switch(c-’2’){ case 0:case 1: putchar( c+4 );case 2: putchar( c+4 ); break;case 3: putchar( c+3 );default: putchar( c+2 ); break;)printf(“n”);}A. B. C) D) C. )。 D. while、do…while、for循环中的循环体语句都至少被执行一次。 E. do…while循环中,while(表达式)后面的分号可以省略。 F. while循环中,一般要有能使while后面表达式的值变为“假”的操作。 G. do…while循环中,根据情况可以省略while。语言的do…while循环中,循环由do开始,用while结束;而且在while表达式后面的(B)不能丢,它表示do…while循环的结束。n“;”“%” D) “。”)。int x=3;hile(!(--x));1 23 22 31 -25.2.14下面程序的功能是计算正整数2345的各位数字的平方和,请选择填空。h>in()( int n=2345,sum=0;o[1] B );[2] C )hile(n);printf(“sum=%d”,sum);)[1] A) n%10 B) (n%10)*(n%10)n/10(n/10)*(n/10)[2] A) n/1000 B) n/100n/10n%10)。死循环循环执行2次 C) 循环执行一次 D) 有语法错误[1])。do(i=1;s=1;s=s*i;i++) while(i<=10);do(i=1;s=0;s=s*i;i++) while(i<=10);i=1;s=1; do(s=s*i;i++) while(i<=10);i=1;s=0; do(s=s*i;i++) while(i<=10);5.2.17下面程序的功能是从键盘输入若干学号,然后输出学号中百位数字式3的学号(输入0时结束循环),请选择填空。h>in()( long int num;nf(“%ld”,num);o[1] B) printf(“%ld”, num);nf(“%ld”,num);[2] C )))[1] A) num%100/10==3 B) num/100%10==3num%10/10==3num/10%10==3[2] A) !num B) num<0==0 C) !num==0 D) !num!=0)。for(表达式;0;表达式3)for(表达式;1;表达式3)for(表达式;表达式1;表达式3)for(表达式;表达式3;表达式3))。break语句不能用于循环语句和switch语句外的任何其他语句在switch语句中使用break语句或continue语句的作用相同在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。无限次0次 C) 1次 D) 2次)。for循环中设置if(条件)break,当条件成立时中止程序执行。for循环中设置if (条件)continue,当条件成立时中止本层循环。for循环中设置if (条件)break,当条件成立时中止本层循环。for循环中设置if (条件) continue,当条件成立时暂停程序执行。)。for循环只能用于循环次数已经确定的情况。for循环是先执行循环体语句,后判断表达式。在for循环中,不能用break语句跳出循环体。for循环的循环体语句中,可以包含多条语句。。5次6次1次 D) 无限)。int x,i;or(i=1;i<=100;i++)I; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf(“%d”,x); }39 8142 84 C) 26 68 D) 28 70)。goto语句只能用于退出多层循环switch语句不能出现continue语句只能用continue语句来终止本次循环在循环中break语句不能独立出现)for(y=0,x=1;x>++y; x=i++) i=x;for(; ; x++=i);while(1) ( x++; )for(i=10; ; i- -) sum+=i;)。int i,sum;or(i=1;i<=10;i++) sum+=sumn”, i);10915 D) 11)。n”),x);**3##3##3**3##4编辑程序驱动程序 C) 诊断程序 D) 编译程序[2]。C语言比其他语言高级C语言可以不用编译就能被计算机识别执行C语言以接近英语国家的自然语言[3]和数学语言作为语言的表达形式C语言出现的最晚,具有其他语言的一切优点。C程序中注释部分可以出现在程序中任意合适的地方花括号“(”和“)”只能作为函数体的定界符构成C程序的基本单位是函数,所有函数名都可以由用户命名分号是C语句之间的分隔符,不是语句的一部分。C语言的源程序[4]不必通过编译就可以直接运行C语言中的每条可执行语句最终都将被转换成二进制[5]的机器指令[6]C源程序经编译形成的二进制代码可以直接运行C语言中的函数不可以单独进行编译语言编写的代码程序(B)。可立即执行是一个源程序经过编译即可执行经过编译解释才能执行)。在C语言中,main函数必须位于程序的最前面C语言的每行中只能写一条语句C语言本身没有输入输出语句在对一个C程序进行编译的过程中,可以发现注释中的拼写错误语言关键字的选项是( A )。definegetcincludewhileIF char scanf gose pow语言关键字的选项是(B)。autoswitchsignedif##4 **4 **4##5 **5**5 ##5)。34 C) 5 D) 不定。int i,j,k;or(i=2;i<6;i++,i++)( k=1;or(j=i; j<6; j++) k+=j; )n”,k);4510 D) 7)。or( t=1; t<=100; t++)nf(“%d”, x);If(x<0) continue;printf(”%3d”,t);}当x<0时整个循环结束x>=0时什么也不执行printf函数永远也不执行最多允许输出100个非负数。=0;or(i=0;i<2;i++)k; a++;} a+reak; a++;} a++; }n”,a);4 B) 5 C) 6 D) 7。h>in()( int i,j,x=0;or(i=0;i<2;i++){ x++;or(j=0;j<=3;j++){ if(j%2) continue; x++; )x++; }n”,x); }x=4x=8x=6x=12。h>in()( int i;or(i=1; i<=5; i++){ if(i%2) printf(”*”);lse continue;printf(“#”);)n”);}*#*#*##*#*#**#*##*#*5.2.35有一堆零件(100~200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分9个零件一组,则多5个零件。下面程序是求这堆零件的总数,请选择填空。h>in( )( int i;or(i=100; i<201; i++)if((i-2)%4==0)if(!(i-3)%7))printf(”%d”, i);)i%9=5i%9!=5(i-5)%9!=0i%9==5习题六6.1填空题语言中,数组名代表 数组首地址 。6.1.2 在c语言中,引用数组元素时,其数组下标的数据类型[7]允许是 整型常量[8][常量表达式] 。[][3]=(1,2,3,4,5,6,7); 则a数组第一维的大小是 3 。6.1.5 下面程序段[9]的运行结果是 f 。r a[7]="abcdef"; r b[4]="ABC"; ,b); [5]); 6.1.6 下面程序段的运行结果是 3 。r c[]="tv0willn"; printf("%d",strlen(c)); 6.1.7 假设字符串s1和s2均定义过并初始化,判断字符串s1是否大于字符串s2,应当使用语句为:if( strcmp(s1,s2)>0)rr[5]=(1,2,3);则引用数组元素a[4]的值是: 0 。N,则可以访问的数组下标范围为: 0~(N-1) 。6.1.10数组元素引用时,下标为整型的表达式,可以使用 变量 。6.2选择题。int a[ ]=”string”;int a[5]=(0,1,2,3,4,5);char a=”string”;char a[ ]=(0,1,2,3,4,5);。输出abcd输出a输出abcd u u u u u编译不通过。a[0][0],a[0][1],a[1][0],a[1][1]a[0][0],a[1][0],a[0][1],a[1][1]a[1][1],a[1][2],a[2][1],a[2][2]a[1][1],a[2][1],a[1][2],a[2][2]。tic char x [ ]=“12345”; static char y[ ]=(‘1’,‘2’,‘3’,‘4’,‘5’);x数组和y数组的长度相同。x数组长度大于y数组长度。x数组长度小于y数组长度x数组等价于y数组。。char str[10];gets(str);char*str;str=“a”;char*str;str=‘a’;charstr[10];strcpy(str,“hello”);[3][5]是一个二维数组,则最多可使用的元素个数为(C)810155[3][4]; 则对a数组元素的非法引用是(D)。a['B'-'A'][2*1]a[1][3]a[4-2][0]a[0][4]tic char str[10]=(“china”);printf(“%d”,strlen(str)); 则输出结果是5 C.china D.6。9 B.10 C.7 D.8。tic char ch[ ]=“623”,s=0;for(a=0;ch[a]>=‘0’ch[a]<=‘9’;a++)[a]-‘0’;-4705623600326习题七答案习题七7.1选择题语言程序构成中,较完整的描述是()由主程序与子程序[10]构成由多个主函数与多个子函数构成由主函数与子函数构成由一个主函数与多个子函数构成语言在程序开始执行时,其正确的描述是(B )由编写程序语句的顺序格式执行在主函数main()开始处执行在第一个子函数处执行由人随机选择执行)C语言中允许函数嵌套定义C语言中允许函数递归调用[11]调用函数时,实参[12]与形参的个数、类型需完全一致C语言函数的缺省数据类型是int类型语言中,各个函数之间具有的关系是()不允许直接递归调用,也不允许间接递归调用允许直接递归调用,不允许间接递归调用不允许直接递归调用,允许间接递归调用允许直接递归调用,也允许间接递归调用语言中,函数的返回值的类型是由()C语言的编译程序,在程序编译时[13]决定由调用该函数的主调函数所决定由return语句的表达式的类型所决定由定义该函数时指定的函数类型所决定)数组的首元素数组的首地址数组每个元素的地址数组每个元素中的值)h>void f(int n); /*函数说明*/in()( void f(int n); /*函数说明*/(5);)void f(int n)n",n); }若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f要求函数f无返回值,所以可用void将其类型定义为无值型在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f对于上面程序的说明,编译时系统会提示出错信息:提示对f函数重复说明)。long fun( int n)( long s;if(n==1 || n==2) s=2;lse s=n-fun(n-1);return s;)in()n", fun(3)); }12 C) 3 D) 4)。int f1(int x,int y)( return x>y?x:y; )int f2(int x,int y)( return x>y?y:x; )in()=4,b=3,c=5,d,e,f;,b); d=f1(d,c);,b); e=f2(e,c);+b+c-d-e;n",d,f,e);}3,4,55,3,45,4,33,5,47.1.10设有以下函数;( int b=0;tic int c=3;++;c++;+b+c);))。in()=2, i;n",f(a));}
以下哪种技术常用于图像中的文字识别?A. OCR(光学字符识别)B. LSTM(长短期记忆网络)C. K-Means聚类D. SVM(支持向量机)
出现在源程序的开始位置。用来规定目标程序(即此命令后面的程序或数据块)的起始地址的伪指令是()。A. ENDB. DBC. DWD. ORG
热门问题
下列哪项贪婪最佳优先搜索算法的描述正确()A. 贪婪最佳优先搜索不属于启发式搜索算法B. 贪婪最佳优先搜索是一种A*搜索算法C. 贪婪最佳优先搜索是一种广度优先搜索算法D. 贪婪最佳优先搜索属于有信息搜索算法
下列哪项关于监督学习算法的描述正确()A. 强化学习的训练效果一定优于监督学习B. 主要的监督学习方法包括生成方法和判别方法C. 广度优先搜索算法是一种监督学习算法
网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误
网络诈骗中常见的“钓鱼网站”目的是()?A. 传播病毒B. 窃取个人信息C. 提供免费电影
4/5 以下属于人工智能实际应用的是()。A. 机器视觉B. 人脸识别C. 计算机辅助自动规划D. 智能工业机器人E. 刷卡门禁
在决策树建立过程中,使用一个属性对某个结点对应的数集合进行划分后,结果具有高信息熵(highentropy),对结果的描述,最贴切的是()。A. 纯度高B. 纯度低C. 有用D. 无用E. 以上描述都不贴切
程序=算法+()A. 数据结构B. 程序结构C. 控制结构[1]D. 体系结构
AdaBoosting采用多个单一分类器组成一个强分类器()A. 错误B. 正确
以下哪种方法属于卷积神经网络的基本组件()。A. 卷积层B. 池化层C. 激活函数D. 复制层
下列不属于量子机器学习算法的是()A. 量子支持向量机B. 量子主成分分析C. 薛定谔方程求解D. 深度量子学习
下列哪个方法属于知识图谱推理方法()A. 路径排序算法B. 深度学习推断C. 广度优先搜索D. 归纳逻辑程序设计
下列哪项属于因果推理模型()A. 因果图B. 神经符号推理C. 符号推理模型D. 结构因果模型
7、 加强电脑安全防护,及时升级病 毒库,安装防火墙,及时查杀病毒和木马,是防范 电信网络诈骗的有效做法。A. 正确B. 错误
网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误
下列哪个方法属于知识图谱推理方法()A. 广度优先搜索B. 深度学习推断C. 路径排序算法D. 归纳逻辑程序设计
下列哪项不是求解对抗搜索问题的基本算法( ) A.反向传播算法 B.广度优先排序算法 C.Alpha-Beta剪枝算法D.最小最大搜索算法
Windows中“复制”操作的快捷键是Ctrl+V。
由脸书(Facebook)公司开发的深度学习编程框架是()A. TensorFlowB. PaddlePaddleC. PyTorchD. Mindspore
2.单选题 讯飞星火可以实现多种文案类型和语言风格的文本写作。讯飞星火(网页版)“内容写作”功能可选的“语言风格”不包括( )。A. 口语化B. 高情商C. 专业D. 热情
3.判断题K-means聚类算法对数据的尺寸敏感。()A. 对B. 错