当前位置:文档之家› c语言程序设计课程模拟试卷及答案(2015年秋季用,最新)

c语言程序设计课程模拟试卷及答案(2015年秋季用,最新)

c语言程序设计课程模拟试卷及答案(2015年秋季用,最新)
c语言程序设计课程模拟试卷及答案(2015年秋季用,最新)

一、单选题(每小题2分,共20分)

1. C语言源程序文件的缺省扩展名为( c )。

2.设x和y均为逻辑值,则x && y为真的条件是x和y( 均为真 )。

3. 在下列的符号常量定义中,正确的定义格式为( #define M3 10 )。

4. for循环语句能够被改写为( while )语句。

5. 在下面的一维数组定义中,错误的定义格式为( int a[]; )。

6.在下面的函数原型声明中,存在语法错误的是(int AA(int a; int b;); )。

7. 假定a为一个数组名,则下面存在错误的表达式为( *a++ )。

8. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为( x=*pa+3 )。 9.字符串"y=%d\n"的长度为__5__。

10. 向一个二进制文件中写入信息的函数为(fwrite() )。

二、填空题(每小题2分,共26分)

1.执行“printf("%c",'A'+3);”语句后得到的输出结果为_D_

2.短整数类型short int的长度为2

3. 用类型关键字表示十进制常数3.26f的类型为_float

4. 假定y=10,则表达式++y*3的值为_33

5. 逻辑表达式(x==0 && y>5)的相反表达式为_(x!=0 || y<=5) 或:(x || y<=5)

6.若x=5,y=10,则x!=y的逻辑值为_1(真,true)

7. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为_60

8. 使用“typedef char BB[10][50];”语句定义_BB为含有10行50列的二维字符数组类型。

9. 字符串"a:\\xxk\\ff"的长度为9

10.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为_46

11. 假定一个数据对象为int*类型,则指向该对象的指针类型为_int**

12.假定一个结构类型的定义为“struct A{int a,b; struct A* c;};”,则该类型的理论长度为__12

13. 假定要访问一个结构对象x中的数据成员a,则表示方式为_x.a

三、写出下列每个程序运行后的输出结果(每小题6分,共30分)

1. #include

void main()

{ int x=3; switch(2*x+1) { case 4: printf("%d ",x); break;

case 7: printf("%d ",2*x); break;

case 10: printf("%d ",3*x); break;

default: printf("%s ","default"); } }输出结果:6

2. #include

void main() { int f=1,i; for(i=1;i<4;i++) f=3*f+1;

printf("%d ",f); }输出结果:40

3. #include

void main() { int a[8]={12,39,26,41,55,63,72,40};

int i, c=0; for(i=0; i<8; i++)

if(a[i]%3==0) c++;

printf("%d\n",c);

}输出结果:4

4. #include

#include

void main( ) {

char s[]="123456";

int i, n=strlen(s) ;

for(i=0; i

char c=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c;

} printf("%s\n",s); }输出结果:654321

5. #include

int LB(int *a, int n) { int *p,s=1;

for(p=a; p

return s; }

void main() {

int a[]={1,2,3,4};

printf("%d\n", LB(a,sizeof(a)/sizeof(int)));

// sizeof(a)为求出数组a所占用的存储空间的字节数}

输出结果:24

四、写出下列每个函数的功能(每小题6分,共12分)

1. #include

int SA(int a, int b) {

if(a>b) return 1;

else if(a==b) return 0;

else return -1;

}函数功能:比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a

2. void Output(struct IntNode *f) //f为单链表的表头指针

{

if(!f) return;

while(f) {

printf("%d ",f->data);

f=f->next;

}

printf("\n");

}函数功能:遍历输出由f所指向的单链表中每个结点的值。

五、按题目要求编写程序(每小题6分,共12分)

1. 完善下面程序,该程序功能是从键盘上输入10个整数到一维数组a[10]中,然后按照下标从大到小的次序输出数组a[10]中的每个元素值,元素值之间用一个空格分开。

#include

void main()

{ int a[10],i; //用i作为循环变量

printf("从键盘输入10个整数: \n");

//向下补充程序内容,用两个for循环实现

printf("\n"); }

for(i=0; i<10; i++) scanf("%d",&a[i]); //3分

for(i=9; i>=0; i--) printf("%d ",a[i]); //6分

注:第1行中的&a[i]也可替换为a+i

2. 编写一个主函数,假定a和b的取值范围为:6≤a≤50,10≤b≤30,求出满足不定方程3a+2b=120的全部整数组解。如(20,30)就是其中的一组解。

void main()

{

int a,b; //1分

for(a=6;a<=50; a++) //2分

for(b=10;b<=30;b++) //3分

if(3*a+2*b==120) printf("(%d, %d)\n",a,b); //6分

一、单选题

1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( main )。

2.每个C语言程序文件的编译错误分为( 2 )类。

3. 字符串"a+b=12\n"的长度为( 7 )。

4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( if )语句。

5. 在下面的do-while循环语句中,其循环体语句被执行的次数为( 10 )。 int i=0; do i++; while(i<10);

6. 将两个字符串连接起来组成一个字符串时,选用的函数为( strcat() )。

7. 若用数组名作为函数调用的实参,传递给形参的是(数组的首地址)。

8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大( 16 )个字节。

9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为( char *p=s; )。

10. 从一个数据文件中读入以换行符结束的一行字符串的函数为( fgets() )。

11. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( exe )。

12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( 156 )。

13. 带有随机函数调用的表达式rand()%20的值在( 0~19 )区间内。

14. for循环语句“for(i=0; i

15. 在下列的字符数组定义中,存在语法错误的是( char a[10]='5'; )。

16. B 17. B 18. A 19. D 20. C

21. D 22. A 23. A 24. B 25. C

26. C 27. C 28. B 29. A 30. D

16. 若有一个函数原型为“double *function()”,则它的返回值类型为(实数指针型)。

17. 在C语言中,所有预处理命令都是以( # )符号开头的。

18. 假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为( 40 )。

19. 若要使p指向二维整型数组a[10][20],则p的类型为( int(*)[20] )。

20. 表示文件结束符的符号常量为( EOF )

21. 程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用( 空格或回车 )符号作为分隔符。

22. 逻辑表达式(x>0 && x<=10)的相反表达式为( x<=0 || x>10 )。

23. 当处理特定问题时的循环次数已知时,通常采用( for )循环来解决。

24. 假定i的初值为0,则在循环语句“while(i

25. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( 6 )。

26. 在下列选项中,不正确的函数原型格式为( int Function(a); )。

27. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( 4 )个字节。

28. 假定有定义为“int m=7, *p;”,则给p赋值的正确表达式为( p=&m )。 29假定指针变量p 定义为“int *p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为( free(p) )。

30. C语言中的系统函数fopen()是(打开)一个数据文件的函数。

1.C语言中的每条简单语句以__;(或分号)_作为结束符。

2. C程序中的所有预处理命令均以_#_字符开头。

3. 当不需要函数返回任何值时,则应使用_void_标识符来定义函数类型。

4.十进制数25表示成符合C语言规则的十六进制数为_0x19。

5假定不允许使用逻辑非操作符,则逻辑表达式a>b || b==5的相反表达式为__a<=b && b!=5

6. 执行“typedef int DataType;”语句后,在使用int定义整型变量的地方也可以使用__DataType来定义整型变量。

7. 假定一维数组的定义为“char* a[8];”,则该数组所占存储空间的字节数为__32_。

8. 假定二维数组的定义为“double a[M][N];”,则该数组的列下标的取值范围在__0~N-1_之间。

9. 存储一个空字符串需要占用_1 _个字节。

10. strcpy函数用于把一个字符串_拷贝(复制)_到另一个字符数组空间中。

11. 程序的编译单位是一个_程序文件__。

12. 假定a是一个一维数组,则a[i]的指针访问方式为__*(a+i)_。

13. 执行int *p=malloc(sizeof(int))操作得到的一个动态分配的整型对象为_*p _。

14.执行“printf("%c",'A'+2);”语句后得到的输出结果为__ C_。

15.short int类型的长度为__2。

16. 用类型关键字表示十进制常数3.26f的类型为__float。

17. 假定y=10,则表达式++y*3的值为__33 。

18. 逻辑表达式(x==0 && y>5)的相反表达式为__(x!=0 || y<=5) 或:(x || y<=5) 。

19.若x=5,y=10,则x!=y的逻辑值为__1

20. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为__60。

21. 使用“typedef char BB[10][50];”语句定义__BB_为含有10行50列的二维字符数组类型。 22. 字符串"a:\\xxk\\数据"的长度为__11

23.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为__46 。

24. 假定一个数据对象为int*类型,则指向该对象的指针类型为__int** 。

25.假定一个结构类型的定义为“struct A{int a,b; A* c;};”,则该类型的长度为_12

26. 假定要访问一个结构对象x中的数据成员a,则表示方式为__x.a。

27. 用于输出表达式值的标准输出函数的函数名是__printf。

28.每个C语言程序文件在编译时可能出现有致命性错误,其对应的标识符为__error 29. 已知'A'~'Z'的ASCII码为65~90,当执行“int x='C'+3;”语句后x的值为_70。

30. 表达式(int)14.6的值为__14。

31. 假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为_x+y<=5 32. 假定x=5,则执行“a=(x?10:20);”语句后a的值为___10。

33. 假定一维数组的定义为“char* a[M];”,则该数组所占存储空间的字节数为___4*M。

34. 存储字符串"a"需要至少占用存储器的_2_个字节。

35. strlen()函数用于计算一个字符串的_长度

36. 在C语言中,一个函数由函数头和___函数体_这两个部分组成。

37.假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式*(p++)后,p所指对象的值为_ 46。

38. 假定p是一个指向整数对象的指针,则用__ &p_表示指针变量p的地址。

39. 与结构成员访问表达式p->name等价的访问表达式为_(*p).name。

三、写出下列每个程序运行后的输出结果

1. #include

void main()

{

int x=5;

switch(2*x-1) {

case 4: printf("%d ",x); break;

case 7: printf("%d ",2*x); break;

case 10: printf("%d ",3*x); break;

default: printf("%s ","default");

}

printf("%s\n","switch end.");

}

输出结果default switch end.

2. #include

void main() {

int f1,f2,i;

f1=1;

printf("%d ",f1);

for(i=2;i<=5;i++) {

f2=3*f1+1;

printf("%d ",f2);

f1=f2;

}

printf("\n");

}

输出结果1 4 13 40 121

3. #include

void main() {

int a[10]={12,39,26,41,55,63,72,40,83,95}; int i, i1=0, i2=0;

for(i=0;i<10;i++)

if(a[i]%2==1) i1++; else i2++;

printf("%d %d\n",i1,i2);

}

输出结果6 4

4. #include

#include

void main( ) {

char s[15]="567891234";

int i, n=strlen(s) ;

for(i=0; i

char c=s[i];

s[i]=s[n-1-i];

s[n-1-i]=c;

}

printf("%s\n",s);

}

输出结果432198765

5. #include

int LB(int *a, int n) {

int i,s=1;

for(i=0;i

return s;

}

void main() {

int a[]={1,2,3,4,2,4,5,2};

int b=LB(a,4)+LB(a+3,3);

printf("b=%d\n",b);

}

输出结果b=56

6. #include

void main() {

int i,s=0;

for(i=1;i<6;i++) s+=i*i;

printf(“s=%d\n”,s);

}

输出结果s=55

7. #include

#define N 6

void main()

{

int i,a[N]={2,5,8,10,15,21};

for(i=0; i

if(a[i]%5) printf("%d ",a[i]);

printf("\n");

}

输出结果2 8 21

8. #include

#include

void main() {

int i;

unsigned int len;

char* a[5]={"student","worker","cadre","soldier","zzeasan123"}; len=strlen(a[0]);

for(i=1; i<5; i++)

if(strlen(a[i])>len) len=strlen(a[i]);

printf("%d\n",len);

}

输出结果10

9. #include

void main()

{

int a,b;

for(a=2,b=3; b<20;) {

printf("%d %d ",a,b);

a=a+b;

b=a+b;

}

printf("%d %d\n",a,b);

}

输出结果 2 3 5 8 13 21

10. #include

void LE(int* a, int* b) {

int x=*a;

*a=*b; *b=x;

}

void main() {

int x=15, y=26;

printf("%d %d\n",x,y);

LE(&x,&y);

printf("%d %d\n",x,y);

}

输出结果15 26 26 15

11. #include

void main() {

int i, s=0;

for(i=1;;i++) {

if(s>30) break;

if(i%2==0) s+=i;

}

printf("s=%d\n",s);

}

输出结果s=42

12. #include

void main() {

int a[9]={36,25,48,24,55,40,18,66,20}; int i, b1, b2;

b1=b2=a[0];

for(i=1; i<9; i++) {

if(a[i]>b1) b1=a[i];

if(a[i]

}

printf("%d %d\n",b1,b2);

}

输出结果66 18

13. #include

void SB(char ch) {

switch(ch) {

case 'A': case 'a':

printf("WW "); break;

case 'B': case 'b':

printf("GG "); break;

default:

printf("BB "); break;

}

}

void main() {

char a1='a',a2='B',a3='f';

SB(a1);SB(a2);SB(a3);

printf("\n"); }

输出结果WW GG BB

14. #include

#define M 6

void main() { int i,x;

int a[M]={10,15,22,37,46,58};

for(i=0; i

printf("\n");

}

输出结果58 46 37 22 15 10

15. #include

struct Worker {

char name[15]; int age; float pay;

};

void main() {

struct Worker x={"wanghua",52,2350};

struct Worker y, *p;

y=x; p=&x;

printf("%d %7.2f\n", y.age+p->age, p->pay+20);

}

输出结果104 2370.00

16. #include

void main() {

int i,j,k=0;

for(i=0; i<5; i++)

for(j=i; j<5; j++) k++;;

printf("%d\n",k);

}

输出结果 15

17. #include

void main()

{

int x=60;

int i=2, p=1;

while(1) {

if(x%i==0) {p*=i; x/=i;}

if(i

}

printf("%d\n",p);

}

输出结果30

18. #include

void main() {

int a[8]={76,63,54,62,40,75,90,58}; int i;

for(i=0; i<8; i++)

if(a[i]>70) printf("%d ",a[i]); printf("\n"); }

输出结果 76 75 90

19. #include

void WF(int x, int y) {

x=x+y;

y+=x;

printf("%d %d\n",x,y); }

void main() {

int x=3, y=8;

WF(x,y); }

输出结果11 19

20. #include

int LA(int *a, int n) {

int i,s=0;

for(i=0;i

return s;

}

void main() {

int a[5]={3,4,6,10,20};

int b=LA(a,5);

int c=LA(a+2,3);

printf("%d %d\n",b,c); }

输出结果 43 36

四、写出下列每个函数的功能

1. #include

int SG(int x) { //x为大于等于2的整数

int a=(int)sqrt(x); //sqrt(x)取x的平方根

int i=2;

while(i<=a) {

if(x%i==0) break;

i++;

}

if(i<=a)return 0; else return 1;

}

判断x是否为一个素数,若是则返回1,否则返回0。

2. int FindMax(struct IntNode *f) //f为一个单链表的表头指针

{

int x;

if(!f) {printf("单链表为空\n"),exit(1);}

x=f->data;

f=f->next;

while(f) {

if(f->data>x) x=f->data;

f=f->next;

} return x; }

假定struct IntNode的类型定义为:

struct IntNode { int data; struct IntNode* next;};

求出由f所指向的单链表中所有结点的最大值。

3. #include

int SA(int a, int b) {

if(a>b) return 1;

else if(a==b) return 0;

else return -1;

}

比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a

4. void Output(struct IntNode *f) //f为单链表的表头指针

{

if(!f) return;

while(f) {

printf("%d ",f->data);

f=f->next;

}

printf("\n");

}

假定struct IntNode的类型定义为:

struct IntNode { int data; struct IntNode* next;};

遍历并输出由f 所指向的单链表中每个结点的值。

5. int SC(int a, int b, int c) {

if(a>=b && a>=c) return a;

if(b>=a && b>=c) return b;

return c; }

求出a,b,c 三个数中的最大值并返回。

6. int* LI(int n) {

int* a=malloc(n*sizeof(int));

int i;

for(i=0;i

return a;

}首先建立一个动态整型数组a[n],接着从键盘上输入n 个整数到a[n]中,最后返回数组a[n]的首地址。

7. int WC(int a[], int n, int k) {

int i, c=0;

for(i=0;i

if(a[i]>=k) c++;

return c;

} 统计并返回一维整型数组a[n]中大于等于k 的值的个数

8. void QA(struct Worker a[], int n)

{ int i;

for(i=0; i

scanf("%s %d %f", a[i].name, &a[i].age, &a[i].pay); }

假定结构类型struct Worker 的定义如下:

struct Worker { char name[15]; int age; float pay;};

从键盘上为具有struct Worker 类型的数组a[n]输入n 个记录

五、按题目要求编写程序或函数

1. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。

#include

void main()

{

int i;

for(i=3; i<=50; i++)

if(i%3==0 || i%5==0) printf("%d ",i);

printf("\n");

}

2. 编写一个递归函数“int FF(int a[], int n)”,求出数组a 中所有n 个元素之积并返回。

int FF(int a[], int n)

{

if(n<=0) {printf("n 值非法\n"),exit(1);}

if(n==1) return a[n-1];

else return a[n-1]*FF(a,n-1);

}

3. 编写一个程序,利用while 循环,计算并打印输出n

1...31211++++的值,其中正整数n 值由键盘输入。假定求和

变量用sum表示,计数变量用i表示,sum、i和n均定义为全局变量,sum和i的初值分别被赋予0和1。#include int n,i=1;

double sum=0;

void main()

{

scanf("%d",&n);

while(i<=n) sum+=(double)1/i++;

printf("sum=%lf\n",sum);

}

4. 根据函数原型“void DD(int a[], int n, int MM)”编写函数定义,利用双重循环查找并打印输出数组a[n]中任何两个元素的值等于MM值的元素值。假定a[i]+a[j]等于MM,则输出格式为:(a[i],a[j])。

void DD(int a[], int n, int MM)

{

int i,j;

for(i=0; i

for(j=i+1; j

if(a[i]+a[j]==MM) printf("%d, %d\n", a[i],a[j]);

}

5. 编写一个程序,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

#include

void main()

{

int i;

int p=1;

int s=1;

for(i=1;i<=10;i++) {p*=3; s+=p;}

printf("%d\n",s);

}

6. 根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。

int FF(int a[], int n)

{

int i,sum=0;

for(i=0; i

return sum;

}

7. 根据函数原型“double Mean(double a[M][N],int m,int n)”,编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。

double Mean(double a[M][N],int m,int n)

{

int i,j;

double v=0.0;

for(i=0; i

for(j=0; j

v/=m*n;

return v;

}

8. 根据函数原型“int MM(int a[],int m)”,编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。

int MM(int a[],int m)

{

int i,x1,x2;

x1=x2=a[0];

for(i=1; i

if(a[i]>x1) x1=a[i];

if(a[i]

}

return x1-x2;

}

高级语言程序设计课程设计报告

高级语言程序设计课程 设计报告 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

2013-2014学年第二学期 《高级语言程序设计》 课程设计报告 题目:班级档案管理系统 专业:网络工程 班级:二 姓名:朱和芳 指导教 师:孙妍姑 成绩: 计算机与信息工程系 2014年5月11日 班级档案管理系统 设计总说明 一、设计目的 运用计算机语言设计班级档案管理,通过此次课程设计,加深对此课程基本知识的理解,提高综合运用知识的能力;掌握本课程的主要内容、课程设计或撰

写小论文的步骤和方法;以提高独立分析问题、解决问题的能力,逐步增强实际工程训练。 二、设计内容 对一个有N个学生的班级,通过该系统实现对该班级学生基本信息进行录入、显示、修改、删除、保存等操作的管理。 三、设计方法 结合C语言的有关知识,查阅资料,对班级档案管理系统的内容进行构思和设计,在MicrosoftVisualC++平台上完成设计,并进行调试。

目录 第一章绪论 (5) 第二章需求分析 问题描述 (6) 功能要求 (6) 算法提示 (6) 项目开发的目的 (7) 第三章概要设计 程序模块的组成 (8) 班级档案管理系统 (8) 各个程序的功能介绍 (9) 系统结构图 (9) 第四章模块设计分析 程序的模块组成 (10) 各个函数的主要功能 (10) 系统的功能模块的划分 (10) 总流程图 (12) 功能流程图 (13) 第五章测试 存在的问题 (14) 测试方案 (14) 第六章使用说明书 (15)

第七章总结 (17) 附录 A参考文献 (18) B源程代码 (20)

C语言程序设计教程 教学大纲

附件一 C语言程序设计 教学大纲

C语言程序设计 一、本大纲适用专业、层次、总课时 1.适用专业:计算机类 2.层次:大专 3.总课时:64学时 二、课程性质和任务 《C语言程序设计》是计算机应用专业的专业必修课程,主要任务是介绍C语言中的数据类型,运算,语句结构及其程序设计的基本方法。目的是使学生掌握一门高级程序设计语言,学会利用C语言解决一般应用问题,并为后续的专业课程奠定程序设计基础。《C语言程序设计》是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,所以要特别强调讲授与上机操作相结合,要保证学生有充分的上机条件。 三、课程的基本要求与目标 根据市场对高职网络人才培养规格的需求特点,本课程的总目标是:“以学生为主体,以学生的学习为中心”,通过课程的实施,帮助学生学会学习。使学生的知识、情感、技能得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,又培养良好的态度,为其将来从事专业活动和未来的职业生涯打下基础。课程内容以“学其所用,用其所学”突出高职教育特点,确保人才培养目标的实现。课程目标如下: (1)知识目标:要求学生掌握基本的程序编写技能。学会利用常见的C程序开发工具的使用,掌握开发环境的配置,掌握常见菜单命令的使用以及整个窗口的布局设置。掌握结构化或模块化程序设计技能,学会数组、函数、三大控制结构、结构体和共用体以及指针的使用。为软件后期维护和管理提供必要的技术支持。 (2)能力目标: C语言程序设计的课程开设是从学生的角度出发,注重培养学生良好的动手实践习惯,注重培养学生严谨的行事风格,尤其注重挖掘学生的潜质,注重培养与社会接轨,培养学生具有踏实工作作风,良好的观察和思考能力强以及团队合作能力。 (3)情感目标:学生提高自己的独立思考和判断能力,通过这种方式能够对工作任务进行有效分析和寻求解决方案;加强自身的程序设计实践能力;培养从事软件研发的职业素养。在学习过程中使学生学会利用网络资源与他人进行交流与

00342高级语言程序设计(一)考试说明

00342高级语言程序设计(一) 一、本课程使用教材、大纲 高级语言程序设计(一)课程使用的教材为《高级语言程序设计》 迟成文编著、经济科学出版社、2007年第一版。 二、本课程的试卷题型结构及试题难易度 1、试卷题型结构表 四个认知层次在试卷中所占比例大致分别为:识记占20%、领会 占30%、简单应用占30%、综合应用占20%。 3、试卷难易度大致可分为“容易、中等偏易、中等偏难、难”。根据 课程的特点,每份试卷中,不同难易度试题所占的分数比例大致 依次为易占30分、中等偏易占30分、中等偏难占20分、难占 20分。 三、各章内容分数的大致分布

五、各题型范例及解题要求 1.单项选择题 要求:在下列每小题的四个备选答案中选出一个正确的答案,并将其字母标号填入题干的括号内。 例:组成C语言程序的是(B ) A.过程B.函数C.子程序D.主程序和子程序 2.填空题 函数中的形参和调用时的实参都是变量时,传递方式为________。答案:值传递方式 3.程序填空题 例:输入10个整数存入一维数组,再按逆序重新存放后再输出。 main( ) { int i, j, a[10], t, *p; for(i=0; i<10; i++) scanf("%d", __________ ); for(i=0, j=9; i

《高级语言程序设计》复习题及答案

一、选择题 1.以下叙述正确的是( ): A)在C程序中,main函数必须位于程序的最前面 B) C程序的每行只能写一条语句 C) C语言使用库函数实现输入输出操作 D)注释中的拼写错误会影响编译结果 2、以下说法中正确的是() A) C语言程序总是从第一个的函数开始执行 B) C语言程序总是从main()函数开始执行 C)在C语言程序中,要调用的函数必须在main()函数中定义 D)C语言程序中的main()函数必须放在程序的开始部分 3、下列选项种说法正确的是( ) A)函数由声明部分和执行部分两部分组成 B)语言中main函数一定在程序的开始部分 C)C语言程序总是从第一个定义的函数开始执行 D)C程序的每行中只能写一条语句 4、设有说明:int a;float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int) 2.6 值的类型为( )。 A)doubleB) char C) floatD) int 5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 6、以下不正确的C语言标识符是( )。 A) ABC B) abc C)a_bc D) void 7、下列运算符中优先级最高的是( ) A)< B)+ C)&& D)!= 8、以下选项中属于C语言中合法关键字的是( ) A)Float B)abc C)int D)CASE 9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52 10、在C语言中,要求数据必须是整型的运算符是( ) A)/ B)+ + C)!=D) % 11、若整型变量x的值为8,则下列表达式中值为1的表达式是 A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x 12、若w=1,x=2,y=3,z=4,则条件表达式“w > x? w : y< z ? y : z”的值是( ) A)4 B)3 C)2 D)1 13、有以下程序,程序运行后的输出结果是。 main() {inti=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k); }

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

汇编语言程序设计实验教程

汇编语言程序设计实验教程

目录 第一章上机过程 (4) 1.1编辑源程序 (4) 1.2 汇编源程序 (5) 1.3连接目标程序 (6) 1.4运行程序 (7) 第二章DEBUG命令祥解 (8) 2.1 DEBUG程序使用 (8) 2.2 DEBUG的常用命令 (8) 第三章汇编语言程序设计实验 (13) 3.1实验一顺序与分支程序设计 (13) 3.2 实验二循环与子程序程序设计 (15) 3.3 实验三算术运算与代码转换程序设计 (16) 3.4 实验四字符串的匹配与替换程序设计 (18) 3.5 实验五输入输出程序设计 (19) 第四章部分实验参考答案 (21)

第一章上机过程 1.1编辑源程序 汇编语言源程序:用汇编语句编写的解决应用问题的程序。 汇编程序:将汇编语言源程序翻译成机器语言程序的系统。 汇编:将汇编语言程序翻译成机器语言程序的过程。 在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。 (1)编辑软件 编辑软件:EDIT、QE、WORD、NOTEPAD等。 当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。 (2)汇编程序 有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。 (3)连接程序 用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的目标代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。 (4)辅助工具程序(.EXE) 进行汇编语言程序调试和文件格式转换的程序有: https://www.doczj.com/doc/0114408404.html, 动态调试程序 EXE2BIN.EXE文件格式转换程序

最新高级语言程序设计课程设计方案汇总

2011高级语言程序设计课程设计方案

《高级语言程序设计》课程设计方案 一、设计的目的 《高级语言序设计》课程设计是计算机科学与技术专业和网络工程专业集中实践性环节之一,是学习完《高级语言程序设计》课程后进行的一次全面的综合练习。本课程设计主要目的在于加深学生对高级语言程序设计的基本理论和基本语法知识的理解,全面掌握高级语言程序设计的基本方法和技术,熟悉相关编程环境和工具,能够熟练地运用C/C++编写较为简单的应用程序,并对之进行调试分析。按照专业人才培养方案规定,本课程设计合格学生记学分2分。 二、参与人员与组织方式 按照专业人才培养方案,本课程设计要求2010级计算科学与技术专业和网络工程专业的所有学生必须按时完成。为了保证设计的质量,本课程设计以组为单位,3人一组进行组织,配备一位指导老师进行指导。课程设计时间共两周,从2011年12月1日开始到2011年12月23日结束。 三、设计内容 以Windows xp或Windows 7等为开发平台,以Visual C++或GCC/G++(IDE推荐MinGW Developer Studio)作为开发工具和开发环境,用纯C或C++编码,完成一个小型实用程序的设计、算法分析和编码、调试,程序采用控制台字符界面,数据采用文本文件存储,要求程序功能清晰、完善,能正常运行,有明确的输入输出,结果正确,用户界面友好;代码要求符合标准,排版清晰,风格良好。设计过程应该提供完善的设计文档,代码说明文档。根据学生的具体情况,每位学生从以下题目中任选一个,独立完成分析、设计和程序实现。 参考设计题目: 一、编写一个公司财务管理程序 1、内容 编写一个程序,对某个公司的财务进行管理,包含简单的财务数据录入,查询,输出等功能。 2、设计要求 1) 程序采用字符界面 2) 显示功能菜单,用户指定键即可进入相应功能 3) 财务记录保存于文本文件 4) 支持手动查询和报表输出,数据输出格式美观

《高级语言程序设计》答案

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=3997 https://www.doczj.com/doc/0114408404.html,快速开发新闻系统在线播放 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=1243 https://www.doczj.com/doc/0114408404.html, 2.0快速入门(12)-https://www.doczj.com/doc/0114408404.html, 2.0网站快速导航 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=4825 https://www.doczj.com/doc/0114408404.html, 高级排错技巧 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.doczj.com/doc/0114408404.html,开发SQL Server 2005 OLAP应用 https://www.doczj.com/doc/0114408404.html,/so/so138.aspx?id=2535

《高级语言程序设计》课程设计

《高级语言程序设计》课程设计 一、课程的性质与任务 1.课程性质:《高级语言程序设计》课程设计是计算机工程学院为本科生各专业开设的专业实践课。计算机工学院本科生在完成《高级语言程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《高级语言程序设计》课程中所学的有关知识,受到实践动手能力的基本训练,培养学生的团队精神,增强发现、提出、分析和解决实际问题的能力,为学生毕业后的实际工作奠定一定的基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。科学技术日新月异的发展使计算机应用在生活中可以说得是无处不在,因此作为计算机工程学院学生掌握程序设计和开发技术非常重要,而C语言又是最常见,功能强大的一种高级语言,因此做好C语言课程设计非常必要,能够对后续许多专业课程的学习和实践训练起到重要的保证作用。 2.课程任务:本课程要求学生编写相对教材中实例要较复杂一些的实用程序,通过理论知识与实际需求相结合的编写实用程序的实践活动,使学生了解应用程序设计解决实际问题的具体过程,了解利用算法和数据结构思想编写程序的实际实行方法,掌握应用C语言进行程序设计的基本规范和技巧,掌握阅读与编写程序的结构化程序设计思想,重点掌握C语言的一般语法规则、常用函数、程序编写调试过程和编程解题的常用方法。 二、高级语言课程设计基本要求 1.通过这次课程设计,要求加深对C语言的语法规则、数组、函数、指针等方面基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 2.课程设计可采取每人一题,可任选一题进行设计, 至少包含五个功能模块。或者每组完成一个课题,每组成员(5到6人)分工合作完成一个课程设计,每个人的任务不同。

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主 编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

《高级语言程序设计》课程设计报告

2013-2014学年第二学期《高级语言程序设计》 课程设计报告 题目:进程调度模拟 专业:计算机科学与技术 班级:12级对口(3)班 姓名:刘以鹏 指导教师:代美丽 成绩: 计算机与信息工程系 2014年 5月 23日

目录 1 1 设计目的及要求 (3) 1.1 设计目的 (3) 1.2 课程设计的实验环境 (3) 1.3 课程设计的预备知识 (3) 1.4 课程设计要求 (3) 2 课程设计内容 (3) 2.1程序功能介绍 (3) 2.2程序整体设计说明 (4) 2.2.1设计思路 (4) 2.2.2数据结构设计及用法说明 (5) 2.2.3程序结构(流程图) (5) 2.2.4各模块的功能及程序说明 (6) 2.2.5程序运行结果 (7) 3 总结 (9) 参考资料 (11) 程序源代码 (12)

1 设计目的及要求 1.1 设计目的 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 1.2 课程设计的实验环境 硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。 1.3 课程设计的预备知识 熟悉C语言及C语言开发工具。 1.4 课程设计要求 1. 分析课程设计题目的要求 2. 写出详细设计说明 3. 编写程序代码,调试程序使其能正确运行 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告 2课程设计内容 2.1程序功能介绍 在多道程序环境下,进程数目往往多于处理机数目,致使他们争用处理机。这就要求系统能按某种算法,动态地把处理机分配给就绪队列中的一个进程,使

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

高级语言程序设计课程设计指导书

信电工程学院 《高级语言程序设计综合训练》 指导书 电子信息科学与技术教研室编 2015年6月

目录 一、综合训练的目的 二、综合训练题目汇总 三、综合训练具体任务 四、综合训练说明 五、综合训练报告撰写要求

一、综合训练的目的 高级语言程序设计综合训练是电子信息科学与技术专业高级语言程序设计课程的综合实践课程。主要目的是通过对具体应用问题的分析和规范的程序设计过程,对学生进行综合设计训练,提高学生的程序设计水平和实际应用能力。通过本课程,学生将理论知识和实际应用问题结合起来,通过完整的分析、设计、实现过程,掌握用高级语言进行应用软件设计的基本思路和方法,掌握软件设计的基本流程和基本设计技能;训练和培养学生编写具有良好风格的代码的习惯,提高学生的分析解决实际问题的能力。该综合实践环节将使学生进一步理解和掌握高级语言程序设计的基础知识,提高学生理论水平和应用实践能力。 二、综合训练题目汇总 1. 学生信息管理系统 2. 学生选修课程系统 3. 银行存取款管理系统 4. 数据汇总系统 5. 学生成绩排序 6. 其他自选题

三、综合训练具体内容 (一)学生信息管理系统 1. 学生信息管理系统简介: 学生信息管理系统是一个小型学生信息管理程序,该软件能够实现学生信息表的建立,学生信息的添加,学生信息的显示,指定姓名或学号查询学生信息,学生信息的删除等简单管理功能。程序要求提供简单友好易于操作的界面。 2. 基本要求: 本课题要求设计实现“学生信息管理系统”程序。该程序实现学生信息管理的基本功能,包括信息表的建立、显示等功能。要求用动态链表实现该应用程序。用函数分别实现动态链表的建立、动态链表输出等功能。函数要求使用指针作形参。 3. 系统结构及模块要求: (1)学生节点数至少10个。学生信息包括学号,姓名,性别,年龄,籍贯,电话号码及email地址。 (2)程序主界面包括程序名称及编程者学号、姓名、班级;同时要求输入功能号码,选择进入功能模块程序。主界面格式及选择项(供参考)如下图1“系统主菜单”:(中文英文均可) (3)各模块功能: A. 创建学生信息表。动态创建学生信息表,同时输入学生信息。学生信息表用链表实现。链表节点个数不少于10个。

大工19秋《汇编语言程序设计》大作业题目及要求

学习中心: 专业: 年级:年春/秋季 学号: 学生: 题目: 1.谈谈你对本课程学习过程中的心得体会与建议 2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。 《汇编语言程序设计》课程设计 注意:从以下5个题目中任选其一作答。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言 作业提交: 大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东浙江台州奥鹏学习中心[1]VIP) 以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。

注意事项: 独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计! 题目一:进制转换程序 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:比如可设计二进制转化十六进制的算法, 简单介绍该算法的基本思想,100字左右即可。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。 (4)主要函数代码:列出算法的具体代码。 (5)列出算法中使用指令的含义,比如解释MOV指令的 含义,ADD指令的含义,至少撰写十个指令。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言! 题目二:冒泡排序算法 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:简单介绍冒泡排序算法的基本思想,至少 100字。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

C语言程序设计课程作业

C语言程序设计课程作业_A 一、单选题 1. (4分)设有以下定义int k=7, x=12;,则能使值为3的表达式是() ? A. x%=(k%=5) ? B. x%=(k-k%5) ? C. x%=k ? D. (x%=k)-(k%=5) 答案D 解析C语言程序设计/数据类型与运算/整型算术表达式 2. (4分)以下程序的输出结果是? #include main() { int x=020,y=0x20,z=20; printf('%d,%d,%d ', x,y,z); } ? A. 20,20,20 ? B. 32,16,20 ? C. 16,32,20 ? D. 20,32,20 答案C 解析C语言程序设计/数据类型及运算 3. (4分)C语言中while和do while循环的主要区别是( ) ? A. do-while的循环至少无条件执行一次

? B. while循环控制条件比do-while的循环控制条件严格 ? C. do-while允许从外部转入到循环体内 ? D. do-while的循环体不能是复合语句 答案A 解析C语言程序设计/循环程序设计/while语句与do-while语句 4. (4分)执行语句scanf('%d,%d',&m,&n);使m和n的值分别为1和2,正确输入是( ) ? A. 1 ? B. 1 2 ? C. 1,2 ? D. 12,2 答案C 解析C语言程序设计/顺序程序设计/整型数据的格式输入 5. (4分)sizeof(float)是( ) ? A. 一个双精度型表达式 ? B. 一个整型表达式 ? C. 一种函数调用 ? D. 一个不合法的表达式 答案B 解析C语言程序设计/数据类型与运算/实型变量存储 6.

《C语言程序设计》课程设计

《C语言程序设计》课程设计 刘力斌 一、意义和目的 C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。 学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 课程设计目的: 提高用程序设计解决实际问题的能力。 通过提出算法、指定输入输出来设计一个解决方案。 用C语言合理地开发两个简洁有效的程序代码来实现该设计。 测试程序是否工作且满足设计指标并评价其效率。 二、目标 完成本课程设计的学生应能在以下几方面证明你们的能力: A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。 B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。 C、把一个算法变为用C语言编写的结构化程序。 D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。 E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。 F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。 G、调试程序、测试数据过程成功。

三、要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。 完成课程设计应提交如下文档: ①程序的总体设计和算法分析。 ②技术文档 ③用户文档 ④源程序代码清单。 ⑤测试数据和测试过程记录。 ⑥遇到的问题及解决方法分析。 四、选题 每人一个题,具体题目可以参考附录。 第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材); 第二题:文件操作,具体题目最好是自拟。 如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。 五、评价 评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况: 1、课程设计文档是否齐全。 2、程序的用户文档 如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。 3、问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输 入、输出及其预期范围。)是否正确。 4、问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代 码,把整个解决方案划分成若干模块。 5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。 6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测 试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。 7、程序的技术文档

相关主题
文本预览
相关文档 最新文档