程序设计语言 C1.17
钱晓捷新版汇编语言程序设计习题答案(1-4)

钱晓捷新版汇编语⾔程序设计习题答案(1-4)钱晓捷新版汇编语⾔程序设计习题答案第⼀章汇编语⾔基础知识1.17、举例说明CF和OF标志的差异。
溢出标志OF和进位标志CF是两个意义不同的标志进位标志表⽰⽆符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表⽰有符号数运算结果是否超出范围,运算结果已经不正确?例1:3AH + 7CH=B6H⽆符号数运算:58+124=182,范围内,⽆进位有符号数运算: 58+124=182 ,范围外,有溢出?例2:AAH + 7CH=(1)26H⽆符号数运算:170+124=294,范围外,有进位有符号数运算:-86+124=28 ,范围内,⽆溢出1.20、8086有哪4种逻辑段,各种逻辑段分别是什么⽤途?(解答)代码段(Code Segment)⽤来存放程序的指令序列。
处理器利⽤CS : IP取得下⼀条要执⾏的指令堆栈段(Stack Segment)确定堆栈所在的主存区域。
处理器利⽤SS : SP操作堆栈中的数据数据段(Data Segment)存放当前运⾏程序所⽤的数据。
处理器利⽤DS : EA存取数据段中的数据附加段(Extra Segment)是附加的数据段,也⽤于数据的保存。
处理器利⽤ES : EA存取数据段中的数据第⼆章8086指令系统2.1已知DS = 2000H、BX = 0100H、SI = 0002H,存储单元[20100H] ~ [20103H]依次存放12 34 56 78H,[21200H] ~ [21203H]依次存放2A 4C B7 65H,说明下列每条指令执⾏完后AX寄存器的内容。
(1) mov ax,1200h ;AX=1200h(2) mov ax,bx ; AX=0100h(3) mov ax,[1200h] ; AX=4C2Ah(4) mov ax,[bx] ; AX=3412h(5) mov ax,[bx+1100h] ; AX=4C2Ah(6) mov ax,[bx+si] ; AX=7856h(7) mov ax,[bx][si+1100h] ; AX=65B7h2.2指出下列指令的错误(1) mov cx,dl 两操作数类型不匹配(2) mov ip,ax IP 指令指针禁⽌⽤户访问(3) mov es,1234h ⽴即数不允许传给段寄存器(4) mov es,ds 段寄存器之间不允许传送(5) mov al,300 两操作数类型不匹配(6) mov [sp],ax ⽬的操作数应为[ BP ](7) mov ax,bx+di 源操作数应为 [BX+DI](8) mov 20h,ah ⽴即数不能作⽬的操作数2.3已知数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为⾸地址(设为200H)的连续区域中。
钱晓捷新版汇编语言程序设计习题答案(1-4)

钱晓捷新版汇编语言程序设计习题答案第一章汇编语言基础知识1.17、举例说明CF和OF标志的差异。
溢出标志OF和进位标志CF是两个意义不同的标志进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确•例1:3AH + 7CH=B6H无符号数运算:58+124=182,范围内,无进位有符号数运算: 58+124=182 ,范围外,有溢出•例2:AAH + 7CH=(1)26H无符号数运算:170+124=294,范围外,有进位有符号数运算:-86+124=28 ,范围内,无溢出1.20、8086有哪4种逻辑段,各种逻辑段分别是什么用途?(解答)代码段(Code Segment)用来存放程序的指令序列。
处理器利用CS : IP取得下一条要执行的指令•堆栈段(Stack Segment)确定堆栈所在的主存区域。
处理器利用SS : SP操作堆栈中的数据•数据段(Data Segment)存放当前运行程序所用的数据。
处理器利用DS : EA存取数据段中的数据•附加段(Extra Segment)是附加的数据段,也用于数据的保存。
处理器利用ES : EA存取数据段中的数据第二章8086指令系统2.1已知DS = 2000H、BX = 0100H、SI = 0002H,存储单元[20100H] ~ [20103H]依次存放12 34 56 78H,[21200H] ~ [21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
(1) mov ax,1200h ;AX=1200h(2) mov ax,bx ; AX=0100h(3) mov ax,[1200h] ; AX=4C2Ah(4) mov ax,[bx] ; AX=3412h(5) mov ax,[bx+1100h] ; AX=4C2Ah(6) mov ax,[bx+si] ; AX=7856h(7) mov ax,[bx][si+1100h] ; AX=65B7h2.2指出下列指令的错误(1) mov cx,dl 两操作数类型不匹配(2) mov ip,ax IP 指令指针禁止用户访问(3) mov es,1234h 立即数不允许传给段寄存器(4) mov es,ds 段寄存器之间不允许传送(5) mov al,300 两操作数类型不匹配(6) mov [sp],ax 目的操作数应为[ BP ](7) mov ax,bx+di 源操作数应为 [BX+DI](8) mov 20h,ah 立即数不能作目的操作数2.3已知数字0 ~ 9对应的格雷码依次为:18H、34H、05H、06H、09H、0AH、0CH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。
单片机C语言C51的常用库函数

C51的常用库函数详解C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。
每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开场处使用预处理命令#include将有关的头文件包含进来。
C51库函数中类型的选择考虑到了8051单片机的构造特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。
下面将C51的库函数分类列出并详细介绍其用法。
1 字符函数字符函数的原型声明包含在头文件CTYPE.H中。
常用的一些字符函数介绍如下。
1.1 检查英文字母函数检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下:bit isalpha(char c);其中,c为待判断的字符,如果是英文字母则返回1,否则返回0。
程序例如如下:1.2 检查字母数字函数检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下:bit isalnum(char c);1.3 检查控制字符函数检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit istrl (char c);其中,c为待判断的字符。
控制字符其取值围为0*00~0*lF之间或等于0*7F,如果是,则返回1,否则返回0。
1.4 十进制数字检查函数十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下:bit isdigit (char c);其中,c为待判断的字符,如果是十进制数字则返回1,否则返回0。
1.5 可打印字符检查函数可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下:bit isgraph (char c);其中,c为待判断的字符。
可打印字符的取值围为0*21~0*7C,不包含空格,如果是可打印字符则返回1,否则返回0。
1.6 包含空格的可打印字符检查函数包含空格的可打印字符检查函数用于检查形参字符是否为可打印字符以及空格,其函数原型如下:bit isprint (char c);其中,c为待判断字符。
c17标准c语言 教材

c17标准c语言教材一、前言本教材以C17标准为基础,全面介绍了C语言的基础知识和应用。
通过本教材的学习,读者可以掌握C语言的基本语法、数据类型、控制结构、函数、数组、指针等核心内容,并能够熟练运用C语言进行编程。
二、内容介绍1.基础知识:本章节介绍了C语言的基本语法,包括变量、数据类型、运算符、表达式等。
同时,还介绍了注释和编辑器的使用,帮助读者养成良好的编程习惯。
2.数据类型:本章节详细介绍了C语言的数据类型,包括基本数据类型、枚举类型、指针类型等。
通过示例代码,帮助读者理解不同数据类型的用法和区别。
3.控制结构:本章节介绍了C语言的控制结构,包括if语句、switch语句、循环语句(for、while)等。
通过示例代码,帮助读者掌握不同控制结构的用法和注意事项。
4.函数:本章节介绍了函数的定义和调用,包括函数的参数、返回值、作用域等。
通过示例代码,帮助读者理解函数的组织和调用方式。
5.数组和字符串:本章节介绍了数组和字符串的使用,包括数组的声明、访问、初始化等。
通过示例代码,帮助读者掌握数组和字符串的用法和注意事项。
6.指针:本章节介绍了指针的基本概念和使用方法,包括指针变量的声明、指向变量的指针、数组指针等。
通过示例代码,帮助读者深入理解指针的本质和用法。
7.文件操作:本章节介绍了文件的基本操作,包括文件的打开、读写、关闭等。
通过示例代码,帮助读者掌握文件操作的常用方法和注意事项。
8.动态内存分配:本章节介绍了动态内存分配的方法,包括malloc、calloc、realloc和free函数的使用。
通过示例代码,帮助读者理解动态内存分配的原理和用法。
9.图形用户界面编程:本章节介绍了使用C语言进行图形用户界面编程的基本知识,包括窗口创建、控件布局、事件处理等。
通过示例代码,帮助读者掌握GUI编程的基本流程和方法。
三、使用方法1.阅读本教材前,请确保您已经安装了C语言编译器和开发环境。
2.请按照教材中的示例代码进行操作,以加深对C语言的理解和应用。
成人高考C语言程序设计(考试复习资料)

单项选择题导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。
本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。
在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。
对于掌握不准的问题,应该通过上机实验来检验。
【1.1】以下不正确的C语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x【1.2】以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。
••• A) print B) i\am C) Pxq D) str_l••• _3d one_half My->book Cpp••• oodb start$it line# pow••• aBc 3pai His.age while【1.4】下面各选项组中,均是C语言关键字的组是。
A) auto,enum,include B) switch,typedef,continueC) signed,union,scanf D) if,struct,type【1.5】下列不属于C语言关键字的是。
A) default B) register C) enum D) external【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置【1.7】下列关于C语言的叙述错误的是____A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义【1.8】在C语言中,错误的int类型的常数是。
A) 32768 B) 0 C) 037 D) 0xAF【1.9】执行语句printf("%x",-1);屏幕显示____。
-C-1-程序设计概述

©西安工业大学计算机学院-人工智能所 .
编辑(Edit):将C语言源程序输入到计算机旳过程,以及C语言
源程序旳修改——形成源程序文件( .C )
编译(Compile):将C语言源程序文件翻译为计算机能够辨认
旳机器代码——形成目旳文件( .OBJ )
此过程将找出源程序中旳语法错误
链接(Link):将编译阶段形成旳目旳文件与C语言提供旳库函
#include <stdio.h> main ( ) {
int a , b , c ; scanf ( “%d,%d”,
&a , &b ); c = max ( a , b ) ; printf ( “max=%d”, c ) ;
1 C 程序设计概述: 17
©西安工业大学计算机学院-人工智能所 .
函数构造 函数类型 函数名 形参类型 形参名
©西安工业大学计算机学院-人工智能所 .
函数 首部
int max ( int x, int y ) {
int z ; if ( x >y ) z = x ;
申明部分
执行部分 函数体
else z = y ;
return( z );
}
C Programming Language
数进行链接——形成可执行文件( .EXE)
运营(Run):运营可执行文件
若运营成果与预期成果不同,则阐明程序中存在逻辑错误,
此时,应返对源程序进行编辑修改
C Programming Language
1 C 程序设计概述: 24
C程序操作环节图解
©西安工业大学计算机学院-人工智能所 .
Hale Waihona Puke 有错有错有错
C语言程序设计(龙昭华主编)习题集

《C语言程序设计(龙昭华主编)》习题集第1章计算机语言程序设计与软件开发基础概述习题 11.简述计算机的组成及计算机中数值的表示方法。
2.什么是程序?它由什么组成?3.程序设计过程的一般步骤是什么?4.算法有些什么特性,它在程序设计中的作用?5.描述软件的概念,简述它的分类。
6.结构化程序设计有哪些基本结构,以及它们采用什么设计方法?7.什么是软件工程,它的出现有何意义?8.软件生命周期及各阶段的主要任务9.什么软件开发模型,有哪几种常见模型?10.C语言常用哪些开发工具,你平常用是哪个?11.C语言中有哪些关键字、标识符,应用它们时应该注意些什么?12.什么是函数,它在程序中的作用?13.C语言的特点有些什么?它和其他你所知道的语言有什么不同?补充题:1.14 分别使用自然语言、流程图、N—S图、伪代码写出求的根的算法。
分别考虑①有两个不等的实根;②有两个相等的实根;③无实根。
1.15分别使用N—S图、伪代码写出求 n! 的算法。
要求:如果n>200,则打印“n值太大,请重新输入n值”;否则打印出 n 的值和 n! 的值。
1.16 请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good !**************************1.17编写一个C程序,输入a,b,c三个值,输出其中最小者。
(该题请事先使用N—S图、伪代码将其算法表示出来。
)第2章C语言的数据类型、运算符及其表达式习题 2一、选择题1.下列表达式的值,哪一个等于0?A 2%5B 7/5||x++C 1/2.0D sizeof(float)> sizeof(int)> sizeof(char)2.int a,*p=&a,下列选项中表达式为变量a的地址?A *PB *&aC pD &p2.列选项中,在一个二进制补码数字系统中,清除了x中最右边为1的那一位,其余位不变的位运算为?A x&(x-1)B x|(-1)C x&~ (x-1)D x| ~ (x-1)3.C语言中字符(char)型数据在内存中是以何种形式存放的( )。
C语言程序设计学习资料及答案

重庆科技学院20___ /20__ 学年第学期试卷参考答案及评分标准( 卷)课程名称:C语言程序设计选课课号:适用专业/年级:抽(命)题人:考试方式:卷面总分:分试卷编号:[7FCA4DA8(2015-04-20)]本卷共100题,卷面100分题源:陈应祖组卷:陈应祖一、单选题(共100题,100分)1.1 [库中题号:01010005] 1 分设计一个计算机程序最基本的工作是:()A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是答案: C1.2 [库中题号:01010012] 1 分下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能答案: D1.3 [库中题号:01010014] 1 分C语言规定:在一个C源程序中,main()函数的位置( )。
A.必须在所有函数的最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在所有函数的最后答案: C1.4 [库中题号:01010016] 1 分构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数答案: D1.5 [库中题号:01010022] 1 分某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行答案: B1.6 [库中题号:01010023] 1 分C语言规定,一个C源程序的主函数名必须为:()A.main B.functionC.program D.include答案: A1.7 [库中题号:01010026] 1 分下列说法正确的是:()A.无论注释内容的多少,在对程序编译时都被忽略B.C程序每行只能写一个语句C.在书写C语言源程序时,每个语句以逗号结束D.注释时,…/‟和…*‟号间可以有空格答案: A1.8 [库中题号:01010034] 1 分C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句D.就是函数体中的语句答案: C1.9 [库中题号:01010039] 1 分C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符:() A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种答案: C1.10 [库中题号:01010042] 1 分下列选项中,是C语言提供的合法的关键字的是( )A.swicth B.CherC.default D.Case答案: C1.11 [库中题号:01010047] 1 分程序设计中所谓数据类型是指:()A.数据的内容B.数据的描述方法C.数据的处理方法D.数据用于哪些方面答案: B1.12 [库中题号:01010049] 1 分在C语言中把最常用的一些数据类型,如int、double,char等称作:() A.常用类型B.数值类型C.字符类型D.基本类型答案: D1.13 [库中题号:01010052] 1 分程序中所谓的常量是指:()A.大小不变的量B.在程序运行中不能被改变的量C.形式不变的量D.在程序设计中不能被改变的量答案: B1.14 [库中题号:01010054] 1 分C语言中的常量有整型常量、实型常量、字符常量以及:()A.数值常量B.非数值常量C.字符串常量D.一般常量答案: C1.15 [库中题号:01010059] 1 分下列不合法的八进制数是( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计语言 C1》随机作业题
做作业时间:2013-4-30 8:00:00至2013-6-30 22:00:00
1、
以下程序的输出结果是( )。
#include
main()
{
int n[2]={O},i,j,k=2;
. for(i=0;i
for(j=0;j
n[j]=n[i]+1;
printf(”%d\n”,n[k]);
}(3分)
A
A、B、C、D、
A、
不确定的值
B、
3
C、
2
D、
1
2、已知int a[][3]={1,2,3,4,5,6,7};,则数组a的第一维的大小是( )。
(3分)
B
A、B、C、D、
A、2
B、3
C、4
D、无确定值
3、若二维数组a有m列,则在a[i][j]之前的元素个数为( )。
(3分)
B
A、B、C、D、
A、j*m+i
B、i*m+j
C、i*m+j-1
D、i*m+j+1
4、有如下程序:
#include
main()
{int n[5]={0,0,0},i,k=2;
for(i=0;i
printf(”%d\n”,n[k]);
}
该程序的输出结果是( )。
(3分)
D
A、B、C、D、
A、不定值
B、2
C、1
D、0
5、以下程序的输出结果是( )。
#include
f(int b[],int m,int n)
{int i,s=0;
for(i=m;i
return s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf(”%d\n”,x);
}(3分)
A
A、B、C、D、
A、10
B、18
C、8
D、15
6、下面程序中有错误的行是( )。
(1)main()
(2){
(3)int a[3]={1};
(4)int i;
(5)scanf(”%d”,&a);
(6)for(i=1;i<3;i++)a[0]=a[0]+a[i];
(7)prinff(”%f\n”,a[0]);
(8)}(3分)
D
A、B、C、D、
A、3
B、6
C、7
D、5
7、以下程序的输出结果是
main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)printf("%d ",p[i]);
}(3分)
C
A、B、C、D、
A、5 2
B、5 1
C、5 3
D、9 7
8、执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
(3分)
A
A、B、C、D、
A、不定值
B、33
C、30
D、10
9、若有定义:int aa[ 8];。
则以下表达式中不能代表数组元aa[1]的地址的是
(3分)
B
A、B、C、D、
A、 &aa[0]+1
B、 &aa[1]
C、&aa[0]++
D、 aa+1
10、以下程序的输出结果是
main()
{ int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d,",x[i][2-i]);
}(3分)
C
A、B、C、D、
A、1,5,9
B、1,4,7
C、3,5,7,
D、3,6,9
11、以下程序的输出结果是
main()
{ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d",s);
}(3分)
A
A、B、C、D、
A、18
B、19
C、20
D、21
12、以下选项中,不能正确赋值的是
(3分)
A
A、B、C、D、
A、char s1[10];s1="Ctest";
B、char s2[]={'C', 't', 'e', 's', 't'};
C、char s3[20]="Ctest";
D、char *s4="Ctest\n"
13、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是
(3分)
D
A、B、C、D、
A、3
B、6
C、10
D、20
14、若有说明: int a[][4]={0,0};则下面不正确的叙述是
(3分)
D
A、B、C、D、
A、数组a的每个元素都可得到初值0
B、二维数组a的第一维大小为1
C、因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行
数为1
D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
15、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为
_______(假设a[0][0]位于数组的第一个位置上)
(3分)
D
A、B、C、D、
A、i*m+j
B、j*m+i
C、i*m+j-1
D、i*m+j+1
16、执行下面的程序段后,变量k中的值为
s[0]=k; k=s[1]*10;(3分)
A
A、B、C、D、
A、不定值
B、33
C、30
D、10
17、以下程序的输出结果是
main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d ",x[i][i]);
}(3分)
B
A、B、C、D、
A、5 2
B、9 1
C、5 3
D、9 7
18、若有说明:int a[10];则对a数组元素的正确引用是(3分)
D
A、B、C、D、
A、a[10]
B、a[3,5]
C、a(5)
D、a[10-10]
19、以下程序的输出结果是
main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d ",x[i][i]);
}(3分)
B
A、B、C、D、
A、5 2
B、9 1
C、5 3
D、9 7
20、以下对二维数组a的正确说明是
(3分)
C
A、B、C、D、
A、int a[3][]
B、float a(3,4)
C、double a[1][4]
D、float a(3)(4)
《程序设计语言 C1》固定作业题。