C语言程序设计复习
一)C语言的结构
1。程序的构成,main函数和其他函数。
2。头文件、数据说明、函数的开始和结束标志。
3。源程序的书写格式。
例:C语言中的所有关键字必须小写
顺序结构、选择结构和循环结构
4。C语言的风格。
(二)数据类型及其运算
1。C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
C语言中允许的基本数据类型: 整型、实型、字符型
例:类型说明语句
char w; int x; float y; double z;
则表达式 w*x+z-y的结果类型?
在C语言中,5种基本数据类型的存储空间长度的排列顺序为:char 在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为:extern 2。C运算符的种类、运算优先级和结合性。 例:运算符中优先级最高的为 A.&& B..?: C.!= D.|| 3。不同类型数据间的转换与运算。 例若变量a是int类型,并执行了语句:a=’A’+1.6 则:a的值是字符’A’的ASCII值加上1 4。C表达式类型(赋值表达、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。 例:若有以下定义语句char c1=’b’, c2=’d’; printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是2 D。例:已知x=36, ch=’B’,y=0则(x>=y&&ch<’C’&&!y)的值是:1 (三)基本语句 1。表达式语句,空语句,复合语句。 例:表达式7!=6的值是:1 d--; 是合法的赋值语句 2。数据的输入与输出,输入输出函数的调用。 例:printf(“%d”,(a=6)&&(b= -6));的输出结果是:1 *以下程序段的输出结果是 main() { int k=10; printf("k=%d,k=%o,k=%x\n",k,k,k); } 结果是k=10,k=12,k=A 例2:int a=10; printf(“%d\n”,a++); 则输出结果是:10 例3:main() { char m; m=‘A’+32; printf("%c\n",m); } 程序运行后的输出结果是:a 例:main() {int a, b, c, t, ; scanf(“%d,%d,%d”,&a,&b,&c); t=c; c=b;b=a;a=t; printf(“%d,%d,%d\n”,a,b,c); } 如果运行程序从键盘中输入:7,8,9 则输出的结果为:9,7,8 例:#include main() {char a,b; a='o';b='u'; putchar(a);putchar(b); } 运行结果: ou 例:m=‘A’+32; printf("%c\n",m); 输出结果是a 3。复合语句。 { } 例:复合语句在语法上被认为是一个语句, 空语句的形式是: ; 4。goto语句和语句标号的使用。 (四)选择结构程序设计 1。用if语句实现选择结构。 例:main() { int a=6,b=5,c=3,d=2; if (a>b>c) printf("%d\n", d); else if ( (c-1 >= d) = =1) printf("%d\n", d+1); else printf("%d\n", d+2); } 执行后输出结果是:3 例:main() { int a=1,b=3,c=5; if (c=a+b) printf("yes\n"); else printf("no\n"); } 程序运行后的输出结果是:yes 2。用switch语句实现多分支选择结构。3。选择结构的嵌套 (五)循环结构程序设计 1。for循环结构。 例:#include "stdio.h" main() { int i,j,k; for(i=1;i<4;i++) {for(j=1;j<4-i;j++) printf(" "); for(k=1;k<=2*i-1;k++) printf("%c",'B'+i-1); printf("\n");} 结果: B CCC DDDDD 2。while和dowhile循环结构。 例:int k=0 while(k=1) k++; while 循环执行的次数是:无限次 3。continue语句和break语句。 break语句:用于直接中断最内层循环 4。循环的嵌套。 (六)数组定义和引用 1。一维数组和多维数组的定义、初始化和引用。例:int x[10]={1,2,3}; 则数组x在内存中所占字节数为:20 例:main() { int m[][3]={1,4,7,2,5,8,3,3,3}; int i,j,k=2; for(i=0; i<3; i++) { printf("%d ",m[k][i]); } } 执行后输出结果是:3,3,3 2。字符串与字符数组。 main() { char s[]="ijkdef"; s[3]=‘\0'; printf("%s\n",s); } 程序的输出结果是ijk (七)函数 1。库函数的正确调用。 2。函数的定义方法。 一个C源程序必须有且只能有一个主函数, 一个C源程序可以含零个或多个子函数 C源程序的基本结构是函数 函数的定义不可以嵌套,但函数的调用可嵌套3。函数的类型和返回值。 4。形式参数与实在参数,参数值的传递。 例:实参可以是常量、变量、或表达式, 形参可以是常量、变量或表达式, 形参应与其对应的实参类型一致 实参数组名与形参数组名必须一致 例:main() {int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("Max is%d",c); } max(int x,int y)/ 定义有参函数max / { int z; z=x>y?x∶y; return(z); } 运行情况如下: 从键盘输入5,6则输出的结果为:6 例:main() { float a,b,t; scanf("%f,%f",&a,&b); if(a>b) {t=a;a=b;b=t;} printf("%5.2f,%5.2f",a,b); } 作用:输入两个实数,按代数值由小到大的次序输出这两个数。5。函数的正确调用,嵌套调用,递归调用。 6。局部变量和全局变量。 7。变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。 8。内部函数与外部函数。 例:各个函数在文件中的位置为:任意 (八)指针 1。指针与指针变量的概念,指针与地址运算符。 例:符号’&’是__地址__运算符,&a是指: a在内存中的地址 2。变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各类型数据。 3。用指针作函数参数。 例:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[4]; b中的值是:8 例2;main() { int a=1, *b, **c; c=&b; b=&a; …… } 程序在执行了c=&b;b=&a;语句后,表达式:**c的值是:变量a 中的值 例: 1. 定义如下变量: int n=10; 则下列循环的输出结果是 while (n>7) { n--; printf(“%d\n”,n); } A) 10 B) 9 C) 10 D) 9 9 8 9 8 8 7 8 7 7 6 2. 在C语言中,while语句中的条件为__________时,结束该循环。 A) 0 B) 1 C) true D) 非0 3. 若k为整型,以下while循环__________次。 int k=10; while (k=0) k=k-1; A) 10次 B) 无限循环 C)一次不执行 D) 执行一次 4若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 A) abs(x-y)<10B) x-y>-10&& x-y<10 C) @(x-y)<-10||!(y-x)>10D) (x-y)*(x-y)<100 1.有以下程序 main() { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else printf("%d",++d +1); printf("%d\n",d); } 程序运行后的输出结果是 A) 2 B) 3 C) 43 D) 44 2.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是 A) for(i=1,p=1;i<=5;i++) p*=i; B) for(i=1;i<=5;i++){ p=1; p*=i;} C) i=1;p=1;while(i<=5){p*=i; i++;} D) i=1;p=1;do{p*=i; i++; }while(i<=5); 3.以下能正确定义二维数组的是 A) int a[][3];B) int a[][3]=2{2*3}; C) int a[][3]={}; D) int a[2][3]={{1},{2},{3,4} (7)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是 A)*p=*q;B)p=q;C)*p=&n1;D)p=*q; (8)若有定义:int x=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是 A)随机值B)0C)x的地址D)p的地址 (9)设函数fun的定义形式为 void fun(char ch,float x){…} 则以下对函数fun的调用语句中,正确的是 A)fun("abc",3.0);B)t=fun(’D’,16.5); 10. 执行下面的程序后,a的值为 main() { int a,b; for (a=1,b=1;a<=100;a++) { if (b>=20) break; if (b%3==1) { b+=3; continue; } b-=5; } printf(“a=%d”,a); } A) 7 B) 8 C) 9 D) 10 15. 表达式__________是满足:当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式 A) (c=1)||(c=3)||(c=5) B) (c!=1)&&(c!=3)&&(c!=5) C) (c==1)&&(c==3)&&(c=5) D) (c==1)||(c==3)||(c==5) 16. 若变量已正确说明,则以下程序段输出为__________ a=10;b=50;c=30; if (a>b) a=b,b=c; c=a; A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 17.已知字母A的ASCII码为65。以下程序运行后的输出结果 是【2】。 main() {char a,b; a=’A’+’5’-’3’;b=a+’6’-’2’; printf("%d%c\n",a,b); } 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 18、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 19、如有如下定义:int a=1,则语句printf(“%d,%d”, a, a++);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 20、已知ch为字符型变量,下面表达式中正确的是()。 A)ch=’\xff ’ B) ch=’\ff ’ C) ch=’ ff ’ D) ch=” ff ” 21、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=” 012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 22、以下语句中能正确定义变量并赋初值的是()。 A)char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 23、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 在一个C程序中main函数可以在任何地方出现。 24、putchar 函数的作用是___向终端输出一个字符__。 25、设x为int型变量,执行以下语句,x=10; x+=x-=x-x; x 的值为____20______。 26、若定义x和y为double型变量,则表达式x=1, y=x+5/2 的值是____3.0______。 27、若t为double型变量,表达式t=1, t+5, t++的值是 ____1.0_____。 28假定w,x,y,z和m均为int型变量,如下程序执行后m的值为___2____。 w=2; x=3; y=4; z=5; m=(w m=(m m=(m 29、若有以下程序 main() { int a=4,b=3,c=5,t=0; i f(a i f(a p rintf("%d %d %d\n",a,b,c); } 执行后输出结果是 5 0 3 。 C语言程序设计综合复习资料 要求掌握的章节: 第1章、第3章~第8章、 第10章(前4节)、第11章(前6节)重点章节: 第3章~第8章、第10章(前4节) 难点章节: 第8章、第10章(前4节) 考试题型: ①选择题(填空题)(20%) ②读程序题(40%) ③编程序题(40%)第1章C语言概述一、选择题 1.能将高级语言编写的源程序转换为目标程序 的软件是 A)汇编程序B)编辑程序C)解释程序D)编译程序 2.在一个C程序中 A)main函数必须出现在所有函数之前B)main 函数可以在任何地方出 现 C)main函数必须出现在所有函数之后D)main 函数必须出现在固定位 置 3.C语言中用于结构化程序设计的三种基本结 构是 A)顺序结构、选择结构、循环结构B)if、switch、break C)for、while、do-whileD)if、for、continue 4.C语言程序的基本单 位是 A)函数B)过程C)子例程 D)子程序 二、填空题 1.C语言程序总是从函 数开始执行。 2.C语言是种面向 _____的程序设计语言, 其程序的基本单位是。. 3.C语言中的函数由、 两部分组成。 4.结构化程序设计中所 规定的三种基本控制结 构是、和。 第3章数据类型、运 算符与表达式 一、选择题 1.下列关于C语言用户 标识符的叙述中正确的 是 A)用户标识符中可以出 现下划线和中划线(减 号) B)用户标识符中不可以 出现中划线,但可以出现 下划线 C)用户标识符中可以出 现下划线,但不可以放在 用户标识符的开头 D)用户标识符中可以出 现下划线和数字,它们都 可以放在用户标识符的 开头 2.C语言中基本数据类 型有 A)整型、实型、逻辑型 B)整型、字符型、逻辑 型 C)整型、实型、字符型 D)整型、实型、字符型、 逻辑型 3.在计算机中,一个字 节所包含二进制位的个 数是 A)2B)4C)8D)16 4.用8位无符号二进制 数能表示的最大十进制 数为 A)127B)128C)255D) 256 5.在计算机系统中,存 储一个汉字的国标码所 需要的字节数为 A)1B)2C)3D)4 6.在C语言中,char 型数据在内存中的存储 形式是 A)原码B)补码C)反 码D)ASCII码 7.十六进制数100转换 为十进制数为 A)256B)512C)1024D) 64 8.十六进制数7A转化 成八进制数是 A)123B)122C)173D)17 2 9.十进制数32转化成十 六进制数是 A)20B)ffC)10D)21 10.与十进制数511等 值的十六进制数为 A)1FFB)2FFC)1FED)2F E 11.以下选项中可作为C 语言合法整数的是 A)10110BB)0386C) 0XffaD)x2a2 12.以下选项中合法的实 型常数是 A)5E2.0B)E-3C).2E0D) 1.3E 13.依据C语言的语法 规则,下列()是用户定 义的合法标识符。 A)intB)INTC)jin#2D)8f 14.依据C语言的语法 规则,下列合法标识符是 A)ElseB)elseC)user$2D )5_examp 15.以下不正确的字符常 量是 A)'8'B)'\xff'C)'\887'D)'' 16.以下不正确的字符常 量是 A)'\0'B)'\xgg'C)'0'D)'a' 17.以下选项中不合法的 八进制数是 A)01B)077C)028D)00 18.下列运算符优先级最 高的是 A) B)+C)&&D)!= 19.若有说明: chars1='\067',s2='1';则 变量s1,s2在内存中各占 的字节数是。 A)11B)41C)31D)12 20.以下不能定义为用户 标识符的是 A)scanfB)VoidC) _3com_D)inte 21.在C语言中,可以 作为用户标识符的一组 标识符是 A)voiddefineWORDB)a s_b3_224Else C)Switch-wercaseD)4b DOSIG 22.若有:intx=1,n=5;则 执行语句x%=(n%2)后, x的值为 A)3B)2C)1D)0 23.设所有变量均为整 型,则表达式 (a=2,b=5,a++,b++,a+b) 的值是 C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B) A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main() 《C语言程序设计》复习题库 1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717 #include printf("%ld",s);} 4、/*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ 答案:6591 #include 第1章计算机、程序和Java概述 1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。 程序: 显示: 1.2(显示五条消息)编写程序,显示Welcome to Java五次 程序: 显示: 1.3(显示图案)编写一个程序,显示下面的图案: 程序: 显示: 1.4(打印表格)编写程序,显示以下表格: 程序: 显示: 1.5(计算表达式)编写程序,显示(9.5x4.5- 2.5x3)/(45.5- 3.5)的结果 程序: 显示: 1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果 程序: 显示: 1.7(近似求π)可以使用以下公式计算π: Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...) 编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。在程序中用1.0代替1 程序: 显示: 第2章基本程序设计 2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。转换公式如下所示: Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32) 程序: 显示: 2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积 面积=半径x半径xπ 体积=面积x高 程序: 显示: 2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。一英尺等于0.305米。 程序: 显示: 2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换成千克并显示结果。1磅等于0.454千克。 程序: 显示: 2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5. 程序: 《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。 B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX C 语言程序设计试卷 ,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1. C语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下面四个选项中,均是合法浮点数的选项是( B )。 A. +1e+1 5e-9.4 03e2 B. -.60 12e-4 -8e5 C. 123e 1.2e-.4 +2e-1 D. -e3 .8e-4 5.e-0 3. 若a=-14,b=3,则条件表达式 a 汇编语言程序设计练习题2 一、单项选择题(答案BDDBA BDADC CCAC CBBDA BDADA BCCB ) 1、使计算机执行某种操作的命令是( ) A.宏指令 B.指令 C.伪指令 D.语句 2、某存储单元的物理地址是12345H,可以作为它的段地址有()。 A.2345H B.12345H C.12340H D.1234H 3、8088/8086存储器分段,每个段不超过() A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4、计算机能直接识别并执行的语言是( ) A.汇编语言 B.机器语言 C.高级语言 D.低级语言 5. 8086/8088系统执行传送指令MOV时() A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 6、以下各个指令中正确的是()。 A. MOV CS, DX B. MOV DS, BP C. IN 20H,AL D. MOV AH, BX 7、下列对OUT指令的叙述正确的是()。 A. 实现从端口中读出数据 B. 能直接访问的端口范围是0~1KB C. 能访问的端口为64KBit D. 只能用DX做为间接寻址的寄存器 8、已有汇编语句“V AR EQU 1220H”,则语句“mov AX, V AR”中源操作数的寻址方式为()。 A. 立即寻址 B. 直接寻址 C. 寄存器间接寻址 D. 基址寻址 9、与MOV BX,OFFSET DATA1指令完全等效的指令是()。 A.MOV BX,DATA1 B.LDS BX,DATA1 C.LES BX,DATA1 D.LEA BX,DATA1 10、下列指令中段默认为堆栈段的是() A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB BX,[BP][DI] D. MOV DX,[1000H] 11、已知DS=2000H,ES=1000H, SI = 0800H,内存10880H开始的两个单元中存放5678H,内存20880H开始的两个单元中存放8765H,则语句“LEA BX,[SI+80H]”执行后BX 的值为()。 A. 5678H B. 1000H C. 0880H D. 8765H 12、汇编结束语句有()种格式,为()。 第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。 它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装, 汇编语言程序设计 一、选择题 (共72题) 1、 用于指针及变址寄存器的有()。 A、 AX,BX,CX,DX B、 SP,BP,IP C、 CS,DS,SS D、 PSW 考生答案:B 2、 完成把汇编语言源程序模块转换为目标模块的程序是()。 A、 编辑程序 B、 汇编程序 C、 连接程序 D、 调试程序 考生答案:B 3、 指令JMP FAR PTR DONE中的寻址方式属于()。 A、 段内转移直接寻址 B、 段内转移间接寻址 C、 段间转移直接寻址 D、 段间转移间接寻址 考生答案:C 4、 对于下列程序段: AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用()指令完成同样的功能。 A、 REP MOVSB B、 REP LODSB C、 REP STOSB D、 REPE SCASB 考生答案:A 5、 在程序执行过程中,IP寄存器中始终保存的是()。 A、 上一条指令的首地址 B、 下一条指令的首地址 C、 正在执行指令的首地址 D、 需计算有效地址后才能确定地址 考生答案:B 6、 在汇编语言程序的开发过程中使用宏功能的顺序是()。 A、 宏定义,宏调用 B、 宏定义,宏展开 C、 宏定义,宏调用,宏展开 D、 宏定义,宏展开,宏调用 考生答案:C 7、 CPU要访问的某一存储单元的实际地址称()。 A、 段地址 偏移地址 C、 物理地址 D、 逻辑地址 考生答案:C 8、 AND、OR、XOR、NOT为四条逻辑运算指令,下面解释正确的是()。 A、 指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、 指令AND AX,OFH执行后,分离出AL低四位 D、 NOT AX,执行后,将AX清0 考生答案:C 9、 完成对CL寄存器的内容乘以2的正确操作是()。 A、 ROL CL,1 B、 MUL 2 C、 SHL CL,1 D、 SHR CL,1 考生答案:C 10、 检查两个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP A L,BL”指令后应跟的分支指令是()。 A、 JE LOP1 B、 JAE LOP1 C、 JC LOP1 D、 JGE LOP1 考生答案:B 11、 已知变量VAR为字型,则TYPEVAR=()。 一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式x 《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号 实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。 2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。 《C语言程序设计》试题四 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:m 第1章 C++语言概述 1.2 单选题 1.下列关于面向对象概念的描述中,错误的是(C)。 A.面向对象方法比面向过程方法更加先进 B.面向对象方法中使用了一些面向过程方法中没有的概念 C.面向对象方法替代了结构化程序设计方法 D.面向对象程序设计方法要使用面向对象的程序设计语言 2.下列各种高级语言中,不是面向对象的程序设计语言是(D)。 A.C++ B.Java C.VB D.C 3.下列关于类的描述中,错误的是(A )。 A.类就是C语言中的结构类型 B.类是创建对象的模板 C.类是抽象数据类型的实现 D.类是具有共同行为的若干对象的统一描述体 4.下列关于对象的描述中,错误的是(C )。 A.对象是类的一个实例 B.对象是属性和行为的封装体 C.对象就是C语言中的结构变量 D.对象是现实世界中客观存在的某种实体 5.下列关于C++程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C )。 A.提取符是对右移运算符(>>)重载得到的 B.插入符是对左移运算符(<<)重载得到的 C.提取符和插入符都是双目运算符,它们要求有两个操作数 D.提取符和插入符在输入/输出语句中不可以连用 1.3 填空题 1.C++语言具有面向对象方法中要求的三大特性:封装性、继承性和多态性。 2.C++程序中,有且仅有一个主函数。 3.C++程序是由类和函数组成的。 4.C++源程序的扩展名是cpp。 5.使用插入符进行标准输出文件输出时,使用的输出流对象名是cout 。 1.4 上机调试下列程序,并分析输出结果 1. #include 程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素 9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是() 汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期2017年10月26号 成绩 评阅人 软件学院 一、实验目的与意义 理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。 二、实验环境 操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室 三、实验的预习内容 预习的主要内容: 1. 使用DEBUG命令的方法; 2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用; 实验思路: 在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。 实验一: 题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A 命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。 题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。 实验二: 先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。 实验三: 先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数 C 语言程序设计试卷,C++语言程序设计试题及答案 一、单项选择题(每题1分,共20分) 1. C 语言规定:在一个源程序中, main 函数的位置(C). A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 2. 下面四个选项中,均是合法浮点数的选项是 A. +1e+15e-9.403e2 B. -.6012e-4-8e5 C. 123e1.2e-.4+2e-1 D. -e3.8e-45.e-0 3.若a=-14,b=3,则条件表达式 avb?a:b+1的值为(A)。 A. -14 B.-13 C.3 D.4 4. 已知:intn,i=1,j=2; A.1,2B.1,3C.2,2D.2,3 5. 为了判断两个字符串s1和s2是否相等,应当使用(D) A.if(s1==s2) B.if(s 仁s2) C. if(strcm p( s1,s2)) D. if(strcm p( s1,s2)==0) 6. 以下正确的描述是(B) o (B)。 执行语句n=ivj?i++:j++; 则i 和j 的值是(c). A. 函数的定义可以嵌套,但函数的调用不可以嵌套。 B. 函数的定义不可以嵌套,但函数的调用可以嵌套。 C. 函数的定义和函数的调用均不可以嵌套。 D. 函数的定义和函数的调用均可以嵌套。 7. 在C 语言中,下面对函数不正确的描述是 A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。 B. 允许函数递归调用。 C. 函数形参的作用范围只是局限于所定义的函数内。 D. 子函数必须位于主函数之前。 8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是 A. 该变量只在该复合语句中有效 B. 该变量在该函数中有效 C. 该变量在本程序范围内均有效 D. 该变量为非法变量 9. 以下正确的函数形式是(D)。 A. doublefun(intx,inty){z=x+y;retum z;} B. fun(intx,y){int z; return z;} C. fun(x,y){intx,y;doublez;z=x+y;returnz;} D. doublefun(intx,inty){doublez;z=x+y;returnz;} 10. 以下程序的输出结果是(B)。 #includevstdio.h> (D)。 (A) o高级语言程序设计综合复习资料-考试必备
C语言程序设计试题及答案
语言程序设计复习题
Java语言程序设计基础篇前三章课后习题要点
【汇编语言程序设计】试题及答案合集
C++语言程序设计试题试题和答案
汇编语言程序设计复习2(带答案)1
程序设计基础(知识点)
汇编语言程序设计
C语言程序设计 复习题库
(完整版)《C语言程序设计》基本知识点
实验一基础汇编语言程序设计
语言程序设计》试题四及答案
C++语言程序设计复习资料
程序设计基础试题(附答案)
汇编语言程序设计
C.语言程序设计试题试题与答案