文档库 最新最全的文档下载
当前位置:文档库 › 浙江师范大学C语言专升本内部期末试卷含答案

浙江师范大学C语言专升本内部期末试卷含答案

浙江师范大学C语言专升本内部期末试卷含答案
浙江师范大学C语言专升本内部期末试卷含答案

浙江师范大学《C语言程序设计》考试卷

考试形式笔试(闭卷)使用学生全校08级理科(非行知)专业

考试时间120 分钟出卷时间 2009 年 5 月31 日

【说明】

(1)考生应将全部答案都写在答题纸上,否则作无效处理。

(2)试题1~7为程序选择填空题,为每个空格挑选出一个正确答案写在答题纸上。试题

8~9为程序设计题。

试题1 (每小题2分,共10分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案. 【程序说明】

求多项式

1111

1...

3579

-+-+-的值,直到最后一项的绝对值小于10-4.

【运行示例】

sum = 0.785448

【程序】

#include

#include< (1) >

void main()

{

int i=1, flag=1;

double item,(2) ;

do{

item = (3) ;

sum = sum+ item ;

flag = (4) ;

} while( (5) );

printf("sum = %.2f \n", sum);

}

【供选择的答案】

(1) A. math.h B. string.h

C. ctype.h

D. stdlib.h

(2) A. s B. sum

C. sum = 0

D. sum = 1

(3) A. 1 / 2*i-1 B. 1 / (2*i-1)

C. flag / (2*i-1)

D. (double)flag / (2*i-1)

(4) A. 0 B. 1

C. -1

D. - flag

(5) A. item >= 0.0001 B. fabs(item) >= 0.0001

C. item < 0.0001

D. fabs(item) < 0.0001

试题2 (每小题2分,共10分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.

【程序说明】

输入一个正整数n,然后输入n个单精度实数,用冒泡法将这些实数从低到高排序后输出。

【运行示例】

Enter n: 5

Enter 5 floats: 75.273 89.5 67.342 -98 5.41

After sorted: -98.00 5.41 67.34 75.28 89.50

【程序】

#include

void main()

{ int n, i, j;

float temp, a[100];

printf("Enter n(n>0): ");

while(scanf("%d", &n), (6) ); //输入正整数n

printf("Enter %d floats: ", n);

for(i=0; i

scanf("%f", (7) );

for(i=0; i

for(____(8) ; (9) ; j--)

if( (10) ){

temp = a[j-1];

a[j-1] =a[j];

a[j] = temp;

}

printf(" Afer sorted: ");

for(i=0; i

printf("%.2f ", a[i]);

printf("\n");

}

【供选择的答案】

(6) A. n > 0 B. n < 0

C. n >= 0

D. n <= 0

(7) A. a B. a[i]

C. &a[i]

D. &a

(8) A. j = 0 B. j = i

C. j= n-1

D. j = n-i

(9) A. j >i B. j > 0

C. j< n-i

D. j < n-i-1

(10)A. a[i]> a[j] B. a[j-1] > a[j]

C. a[j]> a[j+1]

D. a[j-1]> a[j+1]

试题3 (每小题2分,共8分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.

【程序说明】

输入十六进制整数形式的字符串, 调用函数htod将它转换成十进制整数,然后输出该整数.

【运行示例】

Enter hexadecimal string: 4f

Deciamal integer is: 79

【程序】

#include

int ctoi(char c)

{

if (c>='0' && c<= '9')

return c- ‘0’;

else if (c>= 'A' && c<= 'Z')

return ____(11) ;

else if (c>= 'a' && c<= 'z')

return (12) ;

else return 0;

}

int htod( char *h)

{

int i, d=0;

for (i=0; h[i]!= '\0'; i++)

d = ____(13) ;

return d;

}

void main()

{ int dec;

char hex[10];

printf("Enter hexadecimal string: ");

______(14)__ ___;

dec = htod (hex);

printf("Decimal integer is: %d\n", dec);

}

【供选择的答案】

(11)A. c - 'A’ B. c +10

C. c - 'F’

D. c – 'A’ +10

(12)A. c – 'a’ B. c + 10

C. c – 'f’

D. c – 'a’ +10

(13)A. d + ctoi( h[i] ) B. d*16 + ctoi( h[i])

C. d*10 + ctoi( h[i])

D. d + ctoi( h[i])*16

(14)A. hex= getchar() B. scanf ("%c", hex)

C. scan f("%s", hex)

D. scan f("%s", &hex)

试题4(每小题2分,共8分)

【程序说明】

数组x[7]的初值为{1, 2, 3, 4, 5, 6, 7},经调用函数f后,数组x的元素被循环左移3位,输出移位后数组x的各元素,屏幕上的输出结果为:4 5 6 7 1 2 3

【程序】

#include

void f(int a[],int n,int k)

{ int i,j,t;

for(i=0;i

(15);

for( (16) )

a[j-1] = a[j];

(17) ;

}

}

void main()

{ int i, x[7] = {1,2,3,4,5,6,7};

(18) ;

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

printf("%4d",x[i]);

printf("\n");

}

【供选择的答案】

(15) [A] t = a[i] [B] t = a[k]

[C] t = a[j] [D] t = a[0]

(16) [A] j=i; j

[C] j=1; j

(17) [A] a[n]=t [B] a[n-1]=a[i]

[C] a[n-1]=t [D] a[n]=a[i]

(18) [A] f(x,7,3) [B] f(x,7,5)

[C] f(x,3,7) [D] f(x,5,7)

试题5(每小题2分,共8分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】

#include

void f1( int x, int y);

void f2( int *x, int y );

void f3( int x, int *y );

void f4( int *x, int *y);

void main()

{ int a=1, b=2;

f1(a, b);

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

a = 1,

b = 2;

f2(&a, b);

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

a = 1,

b = 2;

f3(a, &b);

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

a = 1,

b = 2;

f4(&a,&b);

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

}

void f1(int x, int y)

{ int t;

t = x; x = y; y = t;

}

void f2(int *x, int y)

{ int t;

t = *x; *x = y; y = t;

}

void f3(int x, int *y)

{ int t;

t = x; x = *y; *y = t;

}

void f4( int *x, int *y)

{ int t;

t=*x; *x=*y; *y=t;

}

(19)程序运行时,第一行输出。

A. a=1, b=2

B. a=2, b=1

C. a=1, b=1

D. a=2, b=2

(20)程序运行时,第二行输出。

A. a=1, b=2

B. a=2, b=1

C. a=1, b=1

D. a=2, b=2

(21)程序运行时,第三行输出。

A. a=1, b=2

B. a=2, b=1

C. a=1, b=1

D. a=2, b=2

(22)程序运行时,第四行输出。

A. a=1, b=2

B. a=2, b=1

C. a=1, b=1

D. a=2, b=2

试题6(每小题2分,共8分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】

#include

int a= 0;

void fun()

{ int a = 1; // 第4行

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

}

void main()

{ int i;

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

fun();

printf("%d", a);

}

(23)程序运行结果是。

A. 1, 2, 3

B. 1, 2, 0

C. 1, 1, 0

D. 0, 1, 2

(24) 其它代码不变,将源程序第4行改为“ static int a=1; ”,程序运行结果是

A. 1, 2, 3

B. 1, 2, 0

C. 1, 1, 0

D. 0, 1, 2

(25) 其它代码不变,将源程序第4行改为“ a=1; ”,程序运行结果是。

A. 1, 1, 2

B. 1, 2, 0

C. 1, 1, 0

D. 0, 1, 2

(26)其它代码不变,将源程序第4行改为“ ; ”,程序运行结果是。

A. 1, 1, 2

B. 1, 2, 0

C. 1, 1, 0

D. 0, 1, 2

试题7(每小题2分,共8分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。【程序】

#include

#include

struct student{

int num;

char name[20];

char sex;

} ;

void main()

{ struct student s[4], *p ;

char *sname [] = {"Zhao", "Qian", "Sun", "Li"};

char csex[] = {'M', 'F'};

int i;

for( i = 0; i< 4; i++){

s[i].num = i+1;

strcpy( s[i].name, sname[i] );

s[i].sex = csex[ s[i].num%2];

}

p = s; //第18行

printf("(%s, %c)\n", p->name, p->sex);

}

(27)运行程序,输出。

A. (Zhao, F)

B. (Qian, M)

C. (Zhao, M)

D. (Qian, M)

(28) 为得到与(27)题相同的运行结果,程序的第18行可改写为 。

A. *p = s

B. p = &s

C. p = s[0]

D.p = &s[0]

(29) 将程序的第18行改为“p = &s[1]”, 运行程序, 输出 。 A. (Zhao, M )

B. (Qian, M)

C. (Zhao, F )

D. (Qian, F)

(30) 将程序的第18行改为“p= s+2”, 运行程序, 输出 。

A. (Qian, M)

B. (Sun, M)

C. (Qian, F)

D. (Sun, F)

试题8 程序设计(12分)

【编程要求】

输入一个整数n ,计算并输出它的各位数字之和。如输入3427,则它的各位数字之和为3+4+2+7,即16.

试题9 程序设计(28分)

【编程要求】

(1)用递归方式定义函数fib(n),功能是计算菲波那契数列1,1,2,3,5,8,13,…的第n 项, 其中,数列第1项和第2项均等于1,从第三项开始的各项等于前两项之和。函数返回值类型是int 。(8分)

(2)定义函数fact(n),其功能是计算整数n 的阶乘,即n!=1*2*3*……*n, 函数返回值类型是double 。 (8分)

(3)定义主函数main(),要求输入整数n 、计算下列算式的值,并将计算结果按”%.2f ”的格式写入当前文件夹下的文件”result.dat ”中:

112358()...1!2!3!4!5!6!!

fib n s n =

++++++ 其中,该算式的第i 项,分子是菲波那契数列的第i 项为分子,分母是阶乘i!。要求分别

调用在(1)和(2)所定义的递归函数fib()和fact()计算分子和分母。(12分))

2008-2009学年第二学期

浙江师范大学 计算机基础(C 语言)期末考试 A 卷

答案与评分标准

第一部分:选择题( 2*30=60分) ACDDB DCCAB DDBC

DBCA

ADCB

CBAD

ADBD

第二部分:编程题(12+28分)

7. (12)

#include --1分

void main()

{

int n, s=0; --1分

printf("Enter n:");

scanf("%d",&n ); --1分

if(n<0) n=-n; --2分//或#include + n=fabs(n);

while( n!=0){ --2分

s += n%10; --2分

n /= 10; --2分

}

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

}

8. (28)

(1)int fib(int n) --1分

{ if(n==1 || n==2) return 1; --3分

else return fib(n-1)+fib(n-2); --4分

}

(2)double fact(int n) --1分

{ if (n==1) return 1; --3分

else return n*fact(n-1); --4分

}

或者

double fact(int n) --1分

{ double r=1; --1分

int i; --1分

for(i=1; i<=n; i++) --2分

r = r*i; --2分

return r; --1分

}

(3)#include --1分

void main()

{ FILE *fp; --1分

int i,n; --1分

double s=0; --1分

fp=fopen(“result.dat”,”w”); --1分

scanf(“%d”, &n);--1分

for(i=1; i<=n; i++) --1分

s = s+ fib(i)/fact(i); --调用函数2分,累加1分

fprintf(fp, “%.2f”, s);--1分

fclose(fp); --1分

}

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案

执行上述两条指令后,正确的结果是( B )。 A.(AX)=1001H; B.(AX)=0FFFH; C.(AX)=1000H; D.(AX)=0111H。 6.串指令中的目的操作数地址一定是由____A_ _提供。()A.ES:[DI] ; B.SS:[BP]; C.DS:[SI] ; D.CS:[IP]。 7.将DX的内容除以2,正确的指令是( C )。 A.DIV 2 ; B.DIV DX,2 ; C.SAR DX,1; D.SHL DX,1。 8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 2. C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,[SI] 5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分) 1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

大学计算机C语言期末试卷02

一、选择题,(1-50)每题1分,下列各题A)、B)、C)、D)四个选项中,只有一个选项是 正确的,请将正确选项涂写在试卷最后答题纸相应位置上,答在试卷上不得分。 (1) 用8位表示,-2的补码是D A) 10000001 B) 11111111 C) 00000001 D) 11111110 (2) 在VC中,实型float占用的字节数是c A) 1 B) 2 C) 4 D) 8 (3) unsigned short的取值范围是d A) 0~ 255 B) -128 ~ 127 C) -32768 ~ +32767 D) 0 ~ 65535 (4) 十六进制数FE的十进制结果为A A) 254 B) 512 C) 1024 D) 64 (5) 源程序ex1.c编译后生成的文件名为 C A) ex1.doc B) ex1.obj C) ex1.exe D) ex1.cpp (6) C语言源程序的后缀为B A) .cpp B) .c C) .exe D) .doc (7) 工程文件名的后缀为A A) .prj B) .c C) .cpp D) .bin (8) 字符’B’的ASCII值是A A) 66 B) 0x3A C) 0x42 D) 49 (9) 将十进制数132转为二进制数的结果是D A) 11001100 B) 110011011 C) 10101010 D) 10000100 (10) 终止死循环用组合键B A) Alt+F10 B) Ctrl+C或Ctrl+Break C) Ctrl+F1 D) Ctrl+Shit或Ctrl+ESC (11) 在VC中,编译的快捷键是B A) F7 B) Ctrl+F7 C) Ctrl+F5 D) F5 (12) 以下选项中可作为C语言合法整数的是D A) 10110B B) 0386 C) 0Xffa D) x2a2 (13) 以下不能定义为用户标识符的是D A) scanf B) Void C) _3com_ D) int (14) 以下程序 swap(int x, int y) {int temp; temp=x; x=y; y=temp; } main() {int a=10,b=20; swap(a,b); printf("a=%d,b=%d\n",a,b); } 的运行结果是B A)a=20,b=10 B)a=10,b=20 C)10,20 D)20,10 (15) 以下程序: main() {int a=0x55, b=0xaa; printf("%d\n", a^b); } 的运行结果是:C A) 0 B) 1 C) 255 D) 0xaa (16) 有以下程序 main() {int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

C程序设计语言期末考试题A有答案)

期末试题——C#程序设计语言(A卷) 说明:本试卷共四大题,试卷满分100分,考试时间120分钟。 一.判断题(每题1分,共10分,正确的打√,错误的打×) ( ) 1.“+、-、*、/、%、++、--均属于二元运算符。 ( ) 2.字符串类型属性引用类型。 ( ) 3.Visual Studio控件的属性窗口中,按钮“A->Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序。 ( ) 4.派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。 ( ) 5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。 ( ) 6.隐式类型转换就是不需要声明目标类型就可以进行的转换? ( ) 7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。 ( ) 8.在C#中在派生类中重新定义基类类的虚函数必须在前面加override。 ( ) 9.C#中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值。 ( ) 10.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数。 二.单项选择题(每题2分,共40分) 一、(说明:每题有且仅有一个正确答案,请将正确答案填入下表) 1.C#程序设计语言属于什么类型的编程语言:a A.高级语言 B.自然语言 C.机器语言 D.汇编语言 2.如有int a=11;则表达式(a++*1/3)的值是:b A.0 B.3 C.4 D.12 3.类的字段和方法的默认访问修饰符是:b A. public B. private C. protected D. internal 4.对于在代码中经常要用到的且不会改变的值,可以将其声明为常量。如圆周率PI始终为。现 在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?b float PI;PI = ; float PI = ; const PI;PI = ; const PI = ; 5.请问经过表达式a=3+3>5?0:1的运算,变量a的最终值是什么?。c

c语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

汇编语言期末试卷复习附答案

选择题 1. 已知X=78,Y= -83则[X+Y]补=() A.0F5H B.0A1H C.0FBH D.65H 2. MOV AX, ES:COUNT[DI] 源操作数的寻址方式是() A.基址寻址 B.立即寻址 C.变址寻址 D.基址变址寻址 3. 指令MOV BX, MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为() A.17500H B.16500H C.14500H D.13500H 4. 下列四组寄存器中,在段内寻址时可以提供偏移地址的寄存器组是() A.AX,BX,CX,DX B.BP,SP,IP,CS C.BX,BP,SI,DI D.BH,BL,CH,CL 5. 当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是() A. 表示结果中含1的个数为偶数 B. 表示结果中含1的个数为奇数 C. 表示该数为偶数 D. 表示结果中低八位含1的个数为偶数 6. 下列传送指令中,有语法错误的指令是()。 A.MOV CS,AX B.MOV DS,AX C.MOV ES,AX D.MOV SS,AX 7. MOV SP,3210H PUSH AX执行上述指令序理后,SP寄存器的值是()。 A.3211H B. 320EH C.320FH D. 3212H 8. 设(DH)=20H,执行NEG DH指令后,正确的结果是() A.(DH)=20H CF=1 B.(DH)=20H CF=0 C.(DH)=0E0H CF=0 D.(DH)=0E0H CF=1 9. 执行下面指令序列后,结果是() MOV AL,82H CBW A.AX=0FF82H B.AX=8082H C.AX=0082H D.AX=0F82H

大一c语言期末试题及参考答案word版本

2004级信息学院《C语言设计》考试试题 一、判断下列语句或程序的对错。 10分√ 1 int x=y=z=’0’; (×) y,z没有定义 2 #include ; (×)不能有分号,#开头的结尾均不能有分号; 3 printf(“%s\n”,”c language”); (√) 4 float a[100]; int *p=a; (×)数据类型不匹配 5 char str[20]; 6 int data[4]={0,1,2,3,4}; (×)五个元素,但是只有四个单元 7 float x=1.45e+310L; (×)数值越界 8 int xyz-1=2; (×) 9 int x=‘\xae’ ; (√) 10 int *p,a[2][3] ; p=a ; (×)数据类型不匹配 二计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3; float f ; (1)f=b/c ( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(a^b)+(c>>1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b ( 2 ) 三程序改错 10分 (1)求两个浮点数的平方和及平方差 #include float calculate (float x,float y,float *sub);添加函数原型声明 main () { float a,b; float add_reasult, sub_result; scanf (“%f,%f”,a,b); add_result=calculate(a,b,&sub_result); printf( “a*a+b*b=%d,a*a-b*b=%d\n”,add_result,sub_result); } float calculate (float x,float y,float *sub) 添加函数类型 { float *temp; 应该直接定义为变量float temp; sub=a*a-b*b ; *sub=a*a-b*b;

汇编语言基础试题

第一章基本知识 一、单项选择题(共40分,每题2分) 1.若十进制数为13 2.75,则其十六进制数为(B) A.21.3 B.84.C C.4.6 D.6 2.若[X补]=11111,则其十进制真值为(C) A.-31 B.-15 C.-1 D.31 3.某定点整数64位,含1位符号位,补码表示,则其绝对值最大负数为(A) A.-263 B.-264 C.-(263-1) D.-(263-1) 4.原码乘法是(D) A.用原码表示操作数,然后直接相乘 B.被乘数用原码表示,乘数取绝对值,然后相乘 C.乘数用原码表示,被乘数取绝对值,然后相乘 D.先取操作数绝对值相乘,符号位单独处理 5.在微机系统中分析并控制指令执行的部件是(C) A.寄存器 B.数据寄存器 C.CPU D.EU 6.已知X=76,则[X]补=(B) A.76H B.4CH C.0B4H D.0CCH 7.已知[X]补=80H, 则X=(D) A.80H B.0 C.0FFH D.-80H 8.已知[X]补=98H, 则[X]补/2=(A) A.0CCH B.4CH C.49H D.31H 9.已知X=78,Y=-83则[X+Y]补=(C) A.0F5H B.0A1H C.0FBH D.65H 10.在计算机的CPU中执行算术逻辑运算的部件是(A) A.ALU B.PC C.AL D.AR 11.将125转换成二进制数的结果(A) A.7DH B.7CH C.7EH D.7BH 12.将93H看成一个组合BCD码,其结果是(B) A.10010101 B.10010011 C.10000011 D.10000001 13.能被计算机直接识别的语言是(C) A.C语言 B.汇编语言 C.机器语言 D.面向对象语言

南京邮电大学C语言期末试卷及答案

模拟试卷A 一、单选题 1、C语言中运算对象一定不能是double类型的运算符是___ 。 A、%= B、/ C、= D、<= 2、能正确表达数学逻辑关系"0b) c=0; else c=1; 等价于___。 A、c=(a>b)?1:0; B、c=a>b; C、c=a<=b; D、以上均不是 7、有如下定义语句:int a, b=5, *p=&a; 则能完成a=b赋值功能的语句是___。 A、a=*p; B、*p=*&b; C、a=&b; D、*p =&*p; 8、设int *ptr, x, array[5]={5,4,3,2,1}; ptr=array; 能使x的值为3的语句是___。 A、x=array[3]; B、x=*(array+3); C、x=*(ptr+2); D、array+=2; x=*array; 9、有函数原型为void f(int,int *);主函数中有变量定义:int a,*p=&a,b[10]; 则下列几种调用错误的是___。

汇编语言单片机考试试题和答案

一.单项选择题(30分) 在中断服务程序中至少应有一条() A.传送指令 B.转移指令 C.加法指令 D.中断返回指令 2.当MCS-51复位时,下面说法准确的是() A.PC=0000H B.SP=00H C.SBUF=00H D.(30H)=00H 3.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是() A.MOV B.MOVX C.MOVC D.以上都行 4.ORG2000H LACLL3000H ORG 3000H RET 上边程序执行完RET指令后,PC=() A.2000H B.3000H C.2003H D.3003H 5.要使MCS-51能响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是() A.98H B.84H C.42H D.22H 6.JNZREL指令的寻址方式是() A.立即寻址 B.寄存器寻址 C.相对寻址 D.位寻址 7.执行LACLL4000H指令时, MCS-51所完成的操作是( ) A保护PCB.4000HPC C.保护现场 D.PC+3入栈, 4000HPC 8.下面哪条指令产生信号() A.MOVX A,@DPTR B.MOVC A,@A+PC C.MOVC A,@A+DPTR D.MOVX @DPTR,A 9.若某存储器芯片地址线为12根,那么它的存储容量为() A. 1KB B. 2KB C.4KB D.8KB 10.要想测量引脚上的一个正脉冲宽度,则TMOD的内容应为() A.09H B.87H C.00H D.80H 11.PSW=18H时,则当前工作寄存器是() A.0组 B. 1组 C. 2组 D. 3组 12.MOVX A,@DPTR指令中源操作数的寻址方式是() A. 寄存器寻址 B. 寄存器间接寻址 C.直接寻址 D. 立即寻址 13. MCS-51有中断源() A.5 B. 2 C. 3 D. 6 14. MCS-51上电复位后,SP的内容应为( ) A.00H B.07H C.60H D.70H https://www.wendangku.net/doc/6317200282.html,0003H LJMP2000H ORG000BH LJMP3000H 当CPU响应外部中断0后,PC的值是() A.0003H B.2000H C.000BH D.3000H 16.控制串行口工作方式的寄存器是() A.TCON B.PCON C.SCON D.TMOD 17.执行PUSHACC指令, MCS-51完成的操作是() A.SP+1SP, ACCSP B. ACCSP, SP-1SP C. SP-1SP, ACCSP D. ACCSP, SP+1SP 18.P1口的每一位能驱动() A.2个TTL低电平负载 B. 4个TTL低电平负载 C.8个TTL低电平负载 D.10个TTL低电平负载 19.PC中存放的是() A.下一条指令的地址 B. 当前正在执行的指令 C.当前正在执行指令的地址 D.下一条要执行的 指令 20.8031是()A.CPU B.微处理器 C.单片微机 D.控制器 21.要把P0口高4位变0,低4位不变,应使用指令( ) A.ORL P0,#0FH B.ORL P0,#0F0H C.ANL P0,#0F0H D.ANL P0,#0FH

c语言期末测试题附答案)

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第 一、 单项选择题(本大题共 15 小题,每题只有一个正确答案,答对 一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k ); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】

汇编语言期末考试试题及答案

汇编语言模拟试题及答案 一,单项选择题 (在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20 分) 1.指令JMP FAR PTR DONE 属于参考答案为:C A .段内转移直接寻址 B ?段内转移间接寻址 C .段间转移直接寻址 D ?段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A ?对两个无符号数进行比较采用CMP 指令,对两个有符号数比较用CMPS 指令 B ?对两个无符号数进行比较采用CMPS 指令,对两个有符号数比较用CMP 指令 C .对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令 D .对无符号数条件转移采用JGE/JNL 指令,对有符号数条件转移用JAE/JNB 指令 [解析]对于无符号数和有符号数的比较都采用CMP 指令; CMPS 指令是串比较指令; 对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转 移指令应是:JGE、JNL、JLE、JNG。 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH ,请给出这个数 据区最末一个字单元的物理地址是参考答案为:C A . 12CSBH B . 12B6BH C. 12C59H D . 12BFEH [解析]末字与首字相隔(128- 1 =) 127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+( 128 —1) >2 即12ABHX 10H + OOABH +( 128 —1) X2 = 12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A . MOV AL ,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D . MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的 [BX] ,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或DEC WORD PTR [BX] 但是在题目的选项C 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。 5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A A .外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B ?外循环初值应置外循环之内;内循环初值应置内循环之内 C ?内、外循环初值都应置外循环之外

安徽大学C语言期末试卷(含答案),DOC

安徽大学 C语言程序设计期末试题 一. 单项选择题:(每题2分,共20分) 1.执行程序: int a; printf("%d \n", (a=3*5, a*4, a+5) );后,a的值是______。 A)60 B)20 C)15 D)10 2.程序段:int x=023; printf("%d \n", --x );的输出是______。 A)19 B)18 C)23 D)22 3.程序段:static char s[10]={'C','h','i','n','a'}; printf("%d\n",strlen(s));的输出是______。 A)6 B)5 C)11 D)10 4.若fun( int x) { printf(“%d\n”,x);}, 则fun_______。 A)返回值为void 类型B)返回值类型无法确定 C)返回值为int 类型D)没有返回值 5. 有宏定义:#define MULT1(a,b) a*b #define MULT2(a,b) (a)*(b) 且引用宏:y=MULT1(3+2,5+8); z=MULT2(3+2,5+8); 则y和z的值是______。 A)y=65,z=65 B)y=21,z=65 C)y=65,z=21 D)y=21,z=21 6.程序段char s[]="Hello", *p; p=s;执行后,*(p+5)的值是______。 A)'o' B)'\0' C)'o'的地址D)不确定的值 7. 程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);的输出是______。 A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB D D A A 8. 若定义:int (*p)[3]; 则标识符p______。 A)定义不合法。 B)是一个指针数组名,每个元素是一个指向整型变量的指针。 C)是一个指针,它指向一个具有三个元素的一维数组。 D)是一个指向整型变量的指针。 9. 定义: struct sk {int a; float b;} data,*p; 且p=&data; 则正确引用成员a的方式是______。 A) p.data.a B) (*p).a C) p->data.a D) (*p).data.a 10. 以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是______。 A)FILE *fp; B)FILE *fp; fp=fopen("file1","rb"); fp=fopen("file1","r+"); C)FILE *fp; D)FILE *fp; fp=fopen("file1","r"); fp=fopen("file1","rb+");

汇编语言期末考试试题及答案

汇编语言模拟试题及答案 一,单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20分) 1.指令JMP FAR PTR DONE属于参考答案为:C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB 指令 [解析]对于无符号数和有符号数的比较都采用CMP指令; CMPS指令是串比较指令; 对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA; 对两个有符号数的条件转移指令应是:JGE、JNL、JLE、JNG。 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是参考答案为:C A.12CSBH B.12B6BH C.12C59H D.12BFEH [解析]末字与首字相隔(128-1=)127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+(128-1)×2 即 12ABH×10H+00ABH+(128-1)×2=12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的[BX],没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如 DEC BYTE PTR [BX] 或 DEC WORD PTR [BX] 但是在题目的选项C中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。

大一c语言期末试题及参考答案

2004级信息学院《C 语言设计》考试试题 、判断下列语句或程序的对错。 10分 V main () { float a,b ; float add_reasult, sub_result ; scanf (“%f,%f ”,a,b) ; add_result=calculate(a,b,&sub_result) ; printf( “a*a+b*b=%d,a*a n ”,add_result,sub_result) } float calculate (float x,float 二 计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3; float f ; (1)f=b/c ( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(aS)+(c?1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b ( 2 ) 三 程序改错 10分 1) 求两个浮点数的平方和及平方差 sub); 添加函数原型声明 1 int x=y=z=' 0'; 2 #include 号; 3 printf( “ %s n ”, ”c (X) y,z 没有定义 (X)不能有分号, language ”); (V) #开头的结尾均不能有分 4 float a[100]; int *p=a; X) 数据类型不匹配 5 char str[20]; 6 int data[4]={0,1,2,3,4}; 7 float x=1.45e+310L; 8 int xyz-1=2; 9 int x=‘ xae ' ; 10 int *p,a[2][3] ; p=a ; (X) (X)数值越界 五个元素,但是只有四个单元 (X) X) 数据类型不匹配 #include float calculate (float x,float y,float float *temp; 应该直接定义为变量 float temp;

汇编语言、微机原理及接口技术期末复习试卷以及参考答案8

重庆邮电大学2006/2007学年第二学期期末考试题 微机原理与接口技术考试题(A 卷) 一、单项选择题(每题1分,共20题) 1、一般,微机系统硬件由___部分组成,包括______。 A.4,CPU、存储器、I/O设备和接口电路 B.3,存储器,控制器和显示器 C.2,运算器和显示器 D.4,存储器,运算器,显示器和键盘 2、80X86微机系统有三条总线,它们是___________。 A. 地址总线、数据总线和控制总线 B. 地址总线、信息总线和存储器总线 C. 输入总线和输出总线 D. 单总线、面向微处理器双总线和面向存储器双总线 3、80X86微机中用来指出下一条要被执行指令的偏移地址的部件是___。A.CS B.DS C.ES D.IP

4、在汇编语句MOV BL,’A’中,源操作数的寻址方式是___________。A.直接寻址 B.立即寻址 C.基址寻址 D.寄存器间接寻址 5、以下指令中正确的是___________。 A.MOV DS,2D00H B.MOV CL,270 C.IN AL,DX D.MOV [DI],[SI] 6、已定义数据段 DATA SEGEMENT ORG 0213H DA1 DB 15H,34H,55H ADR DW DA1 DATA ENDS 能使AX中数据为偶数的语句是() A.MOV AX,WORD PTR DA1 B.MOV AL,DA1+2

C.MOV AL,BYTE PTR ADR+1 D.MOV AX,WORD PTR DA1+2 7、已知DS=1000H,ES=2000H,SI=0300H,内存10310H开始的两个单元中存放3A4BH,内存20310H开始的两个单元中存放4C5DH,则语句 LEA B X,[SI+10H] 执行后,BX的值为________。 A.3A4BH B.4C5DH C.0310H D.3D5BH 8、MOV SP,4210H PUSH AX 执行上述指令后,SP寄存器的值是() A.4211H B.420EH C.420FH D.4212H 9、下列指令中不影响进位标志CF的指令是___________。 A.SUB AX,BX B.ROL AL,1 C.INC CX D.ADD AL,BL 10、设AH=0,AL=06H,BL=09H,执行指令 ADD AL,BL

汇编语言试题及答案(1)

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址B.段内转移间接寻址 C.段间转移直接寻址D.段间转移间接寻址 2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用C MPS指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用C MP指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JG E/JNL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JA E/JNB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12B6BH C.12C5AH D.12BFEH 4.在下列指令的表示中,不正确的是() A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是()A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为() A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节

汇编语言、微机原理及接口技术期末复习试卷以及参考答案一

2009/2010 学年第1 学期 《微机原理与接口技术》考试题(A 卷) 一、填空题(每空1分,共15分) 1、若(SP)=FFFEH,(BX)=2345H,执行PUSH BX指令后,(SP)=(),(B X)=()。 2、已知AX=4A5BH,进位标志CF=1,则语句“RCL AX,1”执行后AX=(),C F=()。 3、实现中断返回是通过()命令完成的。 4、8254的端口个数为()个。 5、十进制数36.875转换为二进制数是()。 6、8255是一个可编程并行接口芯片,有A、B和C三个8位端口,其中只可工作在方式0,1下的端口为()端口。 7、CPU和I/O设备之间传送的信息由数据信息、()和()。 8、8254的方式3具有自动装入计数初值功能,一旦计数开始,就会输出连续的()。 9、每一条指令一般都由()和()构成。 10、已知AL=8AH,BL=C6H,执行指令ADD AL,BL之后,AL和BL分别等于(),ZF和OF分别等于()。

二、选择题(每题1分,共20分) 1.在汇编语句MOV AX,[BX+SI]中,源操作数的寻址方式是( ) A.直接寻址B.基址寻址 C.间址寻址D.基址加变址寻址 2. 下列伪指令中可以用来定义变量的是()。 A.BYTE B.DW C.DWORD D.AT 3. 以下各指令中正确的是()。 A.IN 63H,AX B.IN AL,63H C.MOV ES,2D00H D.MOV [DI],[SI] 4. 已知AL=36H,BL=87H,则两条语句: ADD AL,BL DAA 执行后AL及进位标志CF的值分别为() A.BDH和0 B.17和1 C.23H和1 D.BDH和1

大学C语言期末考试试题及答案

大学C语言期末考试试题 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); }

相关文档
相关文档 最新文档