文档库 最新最全的文档下载
当前位置:文档库 › C程序设计期末考试习题库

C程序设计期末考试习题库

C程序设计期末考试习题库
C程序设计期末考试习题库

13、判断变量ch中的字符是否为大写字母,最简单的正确表达式是(A)。

A、ch>='A'&&ch<='z'

B、A<=ch<=Z

C、'A'<=ch<='z'

D、ch>=A&&ch<=z

14、在C语言中,能表示无符号长整型常数的是(D )。

A、OL

B、4962710U

C、912374u

D、2UL

15、能正确表示C语言的字符常量的是(C)。

A、'\0x41'

B、''A''

C、'\0'

D、''\0''

16、C语言中逻辑表达式的值为(A )。

A、0或1

B、非零值或零值

C、true或false

D、'true'或'false'

17、C语言提供的基本数据类型关键字是(C )。

A、integer

B、FLOAT

C、unsigned

D、Double

18、若定义语句:int b[ ]={1,2,3,4,5},*P=b;则表达式*p++的值是( A )。

A、1

B、2

C、b[0]的地址

D、b[1]的地址

19、在下列选项中,不正确的表达式是(C )。

A、a>b

B、c--, ++b, a+=1

C、a=c+b>n-m=k

D、p++

20、若有以下定义:

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

char cl='b',c2='2';

则数值不为2的表达式是(D )。

A、a[1]

B、'd'-cl

C、a['3'-c2]

D、c2-0

25、下述对C语言字符数组的描述中错误的是(C )。

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D、不可以用关系运算符对字符组中的字符串进行比较

27、以下程序的输出结果是(A )。

main()

{int i=010, j=10, k=ox10;

printf(''%d,%d,%d\n'',i,j,k);

A、8,10,16

B、8,10,10

C、10,10,10

D、10,10,16

28、以下程序的输出结果是(B)。

#include<stdio.h>

main()

{printf(''%d\n'',NULL);}

A、不确定的值(因变量无定义)

B、0

C、-1

D、1

29、以下程序的输出结果是(B )。

main()

{char c1='6',c2='0';

printf(''%d,%d,%d\n'',c1,c2,c1-c2);

A、因输出格式不合法,输出出错信息

B、54,48,6

C、6.0,7

D、6,0,6

32、下述对C语言字符数组的描述中错误的是(C )。

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符''=''对字符数组整体赋值

D、不可以用关系运算符对字符组中的字符串进行比较

33、Turbo C中,对于以下程序(A )。

main()

{int x,y;

y=creat(&x);

printf(''%d \n'', y);

creat(int a)

{return a++;}

A、编译时会给出错信息

B、顺利进行编译、连接、执行;不报任何错误

C、顺利通过编译、连接、但不能执行

D、顺利通过编译,但连接出错

34、设有如下定义:

int x=10, y=4,z;

则语句:

printf(''%d\n'', z=(x%y, x/y));

的输出结果是(C )。

A、1

B、0

C、2

D、3

35、下述程序段的输出结果是(D )。

main()

{int x=10, y=10;

printf(''%d, %d\n'', x++, ++y);

A、10,10

B、11,11

C、11,10

D、10,11

36、定义如下变量和数组:

int j;

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

则下面语句的输出结果是( C )。

for(i=0;i<3;i++﹚

printf(''%d'', x[i][2-i]);

A、159

B、147

C、357

D、369

37、若要求在if后一对圆括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为( C )。

A、a<>0

B、!a

C、a=0

D、a

38、若m,y,z均为int型变量,则执行下面语句后m值是(A )。

m=1;x=2;y=3;z=4;

m=(m<x)?m:x;

m=(m<y)?m:y;

m=(m<z) ?m:z;

A、1

B、2

C、3

D、4

39、若有定义:int a=7;float x=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值是(A )。

A、2.500000

B、2.750000

C、3.500000

D、0.000000

40、如下说法不正确的是(C )。

A、c>a+b等效于c>(a+b)

B、若a,b均为真,则a||b为真

C 、表达式'c'&&'d'的值为0

D 、逻辑运算符!比逻辑运算符||的优先级高 41、putchar ()函数可以向终端输出一个( B )。 A 、整型变量表达式值 B 、字符 C 、字符串 D 、实型变量值 42、表达式18/4*sqrt (4.0)/8值的数据类型为( C )。 A 、int B 、float C 、double D 、不确定 43、若已定义a 为整型变量: a=-2L ;

printf (''%d\n'',a ); 则以上语句( B )。

A 、赋值不合法

B 、输出值为-2

C 、输出为不确定值

D 、输出值为2 45、若int 类型数据占两个字节,则以下语句的输出为( D )。 int k= -1;

printf (''%d,%u\n'',k,k );

A 、-1,-1

B 、-1,32767

C 、-1,32768

D 、-1,65535 46、已知字母a 的ASCII 码十进制值为97,则执行以下语句后的输出为( C )。yhg char a='a'; a--;

printf (''%d,%c\n'',a+'2'-'0',a+'3'-'0'); A 、b,c B 、a —运算不合法,故有语法错

C 、98,c

D 、格式描述和输出项不匹配,输出无定值 47、下面语句中( B )是C 语言的正确赋值语句。

A 、a=1,b=2

B 、I++;

C 、a=b=5

D 、y=int(x); 48、设有以下说明语句 struct stu { int a; float b; }stutype;

则下面的叙述不正确的是( C )。

A 、struct 是结构体类型的关键字

B 、struct stu 是用户定义的结构体类型

A 中声明变量并初始化时:int a=1,b=5;但是,只赋值时是不能这样写的,应该写成a=1;b=2;C 无分号,不是完整的语句,D 中x 没有定义,如果是 int x=3;int y; y=int(x);这样是对的

C、stutype是用户定义的结构体类型名

D、a和b都是结构体成员名

49、能正确表示:当x的取值范围在[1,10]或[100,110]内为真,否则为假的表达式是( C )。

A、(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B、(x>=1)||(x<=10)||(x>=100)||(x<=110)

C、(x>=1)&&(x<=10)||(x>=100)&&(x<=110)

D、(x>=1)||(x<=10)&&(x>=100)&&(x<=110)

50、设n为整型变量,则循环语句for(n=10;n>0;n--)的循环次数为(A)。

A、10

B、9

C、11

D、12

51、在对文件进行操作时,若要求文件的位置指针回到文件的开头,则应当调用的库函数是( D )。

A、fopen()

B、fseek()

C、fclose()

D、rewind()

52、下列哪个数组定义是正确的(D )。

A、int a[5.5];

B、INT a[10];

C、int a[n];

D、int a[3+2];

53、一个变量的指针就是(A )。

A、变量的地址

B、变量的值

C、变量的名称

D、变量的类型

55、下列正确的说法是(C )。

A、宏替换是在程序运行时进行的

B、函数调用是在程序编译时进行的

C、宏替换时,如果实参是表达式,应先求表达式的值,再替换

D、函数调用时,如果实参是表达式,应先求表达式的值,再替换

56、对于数学式x/2a,下面正确的C语言表达式是(D )。

A、sqr(x)/2a

B、sqr(x)/2*a

C、sqrt(x)/(2*a)

D、sqrt(x)/2*a

57、若int类型数据占2字节,则以下语句的输出为(D )。

int k=32768;

printf(''%d,%u\n'',k,k);

A、-1,65535

B、-1,32767

C、-1,-1,

D、-32768,32768

59、下面程序中(B )有错误。

1)#include<stdio.h>

2)main ( )

3){

4)int a[3]={0,0,0}; 5)int i;

6)for(i=0;i <3;i++﹚scanf(''%D'',&a[i]); 7)for(i=1;i <3;i++﹚a[0]=a[0]+a[i]; 8)printf(''%d\n'',a[0];}

A 、第4行

B 、第6行

C 、第7行

D 、第8行 60、下面程序的运行结果( C )。 main( )

{ unsigned a=3,b=10;5 printf(''%d\n''a <<2|b >>1=; }

A 、3

B 、10

C 、13

D 、14 61、已定义x 为float 型变量。 x=213.82631;

Printf(''%-4.2f\n'',x); 则以上程序( A )。

A 、输出格式描述符的域宽不够,不能输出

B 、输出为213.83

C 、输出为213.82

D 、输出为-213.82 62、设已定义整型变量K ,则下面的程序输出为( D )。 k=017;s=111; printf (''%d'',++k ); printf (''%x\n'',s++);

A 、15 6f

B 、16 70

C 、15 71

D 、16 6f 63、不能正确表示a*b/c*d 的C 语言表达式是( C )。

A 、a*b/c*d

B 、a/(c*d)*b

C 、a*b/c/d

D 、a*b/(c*d)

64、下列( C )表达式不满足;当x 的值为偶数时值为“真”,为奇数时值为“假”。 A 、x%2= =0 B 、!x%2!=0 C 、x/2*2-x= =0 D 、!(x%2) 65、设已定义k 为int 型变量,则下面while 循环执行( C )次。 k=10;

while(k=0)k=-1;

A 、执行10次

B 、无限循环

C 、一次也不执行

D 、执行一次

%m.nd 表示最大场宽m ,小数位为n 位,整数位则为m-n-1位,够m 位右对齐。%-m.nf 可以控制输出左对齐

67、用高级语言编写的程序称之为(A)。

A、源程序

B、目标程序

C、汇编程序

D、命令程序

69、有以下程序的输出结果为(B )。

main( )

{ char a=0x95,b,c;

b=(a&0xf)<<4;

c=(a&0xf0)>>4;

a=b|c;

printf(''%x\n'',a);

}

A、24

B、59

C、34

D、56

70、下述程序段的输出结果是(A)。

int a=3;b=4;

int c=a^b>>3;

printf(''%d'',c)

A、3

B、4

C、5

D、6

73、设int型变量在内存中占用两个字节存储单元,定义如下结构体:

struct student

{ char name[10];

char sex;

int age;

struct

{ int year;

int month;

int day;

}birth;

}stul;

则表达式sizeof(stul)的值是()。

A、5

B、8

C、2

D、26

75、下述程序段的运行结果是( B )。

#include

main( )

{ int m=7,n=4;

float a=38.4,b=0.4,x;

x=m/2+n*a/b+1/2;

printf(''%f\n'',x);

}

A、22

B、387.000000

C、27

D、26

76、下面程序的运行结果是(C )。

main( )

{ int cl=2,c2=0;

while(!c2- -)

printf(''%d%d'',cl- -,c2);

}

A、陷入死循环

B、不输出任何内容

C、输出2 -1

D、输出20

77、下面程序的运行结果是(B)。

int m=4,n=6;

max(int x,int y)

{ int max;

max=x>y?x:y;

return(max);

}

main( )

{ int m=10;

printf(''%d\n'',max(m,n));

}

A、4

B、10

C、6

D、5

78、下面程序的运行结果是(B )。

fun(int p)

{ int k=1;

static t=2;

k=k+1;

t=t+1;

return(p*k*t);

}

main( )

{ int x=4;

fun(x);

printf(''%d\n'',fun(x));

}

A、4

B、32

C、30

D、16

79、阅读下面的程序:

main( )

{ char ch;

scanf(''%c'',&ch);

if(ch>='a'&& ch<='z')

ch=ch-32;

printf(''%c'',ch);

}

若输入字符为:e,则程序运行结果为( A )。

A、E

B、A

C、e

D、z

80、下面程序的运行结果是(B)。

main( )

{ static int a[3][3]={{3,2,1},(4,5,6),{-2,9,1}};

int i,j,sum=0;

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

for(j=0;j<3;j++)

{ if(i= =j)

sum=sum+a[iJ[j]];

}

printf(''sum=%d'',sum);

}

A、sum=10

B、sum=9

C、9

D、10

84、下述程序的运行结果是(A )。

#include

void fun(int x)

{

putchar('0'+(x% 10));

fun(x/10);

}

main( )

{

printf(''\n'');

fun(1234);

}

A、4321

B、321

C、21

D、1

86、设已定义i和k为int类型变量,则以下for循环语句(B)。

for(i=0,k=-1;;i++,k++)

printf(''* * * *\n'');

A、判断循环结束的条件不合法

B、是无限循环

C、循环一次也不执行

D、循环只执行一次

87、下列程序段选择项中,使i的运行结果为4的程序段是(D)。

A、int i=0,j=0;

B、int i=1,j=70;

(i=3,(j++)+i); j=i=((i=3) *2);

C、int i=0,j=1;

D、int i=1,j=1;

(j= =1)?(i=1):(i=3); i+=j+=2;

89、阅读以下程序(最左边是附加的行号)。

1)#include

2)main( )

3){ float s[5];

4)int i,k=0;

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

6)scanf(''%d'',s+i);

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

8)k=s[i];

9)printf(''\n%f'',(float)k);

10)}

此段程序(A)。

A、没有错误

B、第4行错误

C、第6行错误

D、第9行错误

90、下列程序中有三个是完全相同的功能,只有(B )所完成的功能与其他程序不同。

A、s=0;

B、s=0;

i=0; i=1;

while(i<=100) while(i++<100)

s+=i++; s+=i;

C、s=0;

D、s=0;

i=0; i=0;

while(i<=100) while(++i<=100)

s+=++i; s+=i;

92、执行下面的程序后,a的值为( D )。

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;

}

A、7

B、8

C、

D、10

93、下面的程序中(C )有错误。

1)#include

2)main( )

3){

4)float a[3]={0.0};

5)int i;

6)for(i=0;i<3;i++)

7)scanf(''%D'',&a[i]);

8)for(i=1;i<3;i++)a[0]=a[0]+a[i];

9)printf(''%f\n'',a[0]);

}

A、第4行

B、第6行

C、第7行

D、第8行

94、以下程序的输出结果是(C )。

#include

main( )

{ int i;

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

{ if(i%2)

printf(''+'')

else

continue;

printf(''-'')

}

printf(''$\n'');

}

A、+-+-+-$

B、-+-+-+$

C、+-+-$

D、-+-+$

95、下述程序段的输出结果是(C)。

int x=3;

do

{ printf(''%d'',x-=2);

}while(!(--x));

A、1

B、30

C、1-2

D、死循环

96、定义如下变量:

int n=10;

则下列循环的输出结果是( A )。

while(n>7)

{ n--;

printf(''%d'',n);

}

A、1098

B、987

C、10987

D、9876

100、两次运行下面的程序,如果键盘上分别输入6和4,则输出结果是(A )。

main( )

{ int x;

scanf(''%d'',&x);

int(x++>5)

printf(''%d\n'',x--);

}

A、7和5

B、6和3

C、7和4

D、6和4

101、运行下段程序的结果是(D )。

#include

main( )

{ int x;

for(x=1;x<=100;x++)

if(++x%= =0)

if(++x%3= =0)

if(++x%5= =0)

printf(''%d'',x);

}

A、31,61,91

B、30,60,90

C、不输出任何内容

D、29,59,89

102、运行下述程序段后,i值为4的是(B)。

A、int i=1,j=0;

B、inti=1,j=1;

i=j=((i=3)++); i+=i+=2;

C、int i= =0,j=0;

D、int i=0,j=1;

(i=2,i+(j=2)); (j= =1)?i+=3:i=2;

104、以下程序的输出结果是(D)。

main()

{ int a=-1,b=4,k;

k=(++a,0)&&!(b--<=0);

printf(''%d,%d,%d\n'',k,a,b);

}

A、1,0,4

B、1,0,3

C、0,0,3

D、0,0,4 105、以下程序的输出结果是(A )。

main( )

{ int x=3,y=0,z=0;

if(x=y+z)

printf(''* * * *'');

else

printf(''# # # #'');

}

A、# # # #

B、* * * *

C、1

D、4 106、以下程序的输出结果是(A )。

int m=13;

int fun2(int x, int y)

{ int m=3;

return(x*y-m);

}

main( )

{ int a=7,b=5;

printf(''%d\n'',fun2(a,b)/m);

}

A、2

B、3

C、7

D、5

112、阅读程序:

#include

main( )

{ int m,n,w;

scanf(''%d,%d'',&m,&n);

while(n)

{ w=m%n;

m=n;

n=w;

}

printf(''%d'',m);

}

如果输入10,6,则输出结果是(D )。

A、60

B、120

C、2

D、10

113、下列程序执行后输出的结果是(A )。

#include

f(int a)

{ int b=0;

static c=2;

a=c++, b++;

return(a+b);

}

main( )

{ int a=2,i,k;

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

k=f(a++);

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

}

A、3

B、0

C、4

D、5

115、下列程序的运行结果是(B )。

main( )

{ static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int i,j, sum=0;

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

for(j=0;j<4;j++)

if(j>i)

sum+=a[i][j];

printf(''sum=%d\n'',sum);

}

A、40

B、36

C、24

D、30

120、阅读下列程序:

main( )

{ int n[3],i,j,k;

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

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

printf(''%d'',n[i]);

printf(''\n'');

}

运行该程序,其输出结果是(B )。

A、230

B、330

C、123

D、321

123、下述程序段的运行结果是(B )。

main( )

{ static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

int b[3][2],i,j;

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

{ for(j=0;j<3;j++)

{ b[i][j]=a[j][i]+a[i][j];

printf(''%5d'',b[i][j]);

}

printf(''\n'');

}

}

A、2 4 7

B、2 6 10

C、18 14 10

D、18 2 3

2 10 8 6 10 14 14 10 6 4 10 2

3 6 18 10 1

4 1810 6 2 7 4 2 124、如果程序中有如下的说明和定义:

struct s

{ int x,y;}

struct s x,y;

则会发生的情况是(A )。

A、编译出错

B、能顺利编译和链接,但不能执行

C、程序能顺利通过编译,但是链接时会出错

D、程序能顺利编译,链接,执行

127、对C语言的文件存取方式的论述中,正确的是文件(C )。

A、只能顺序存取

B、只能随机存取(也称直接存取)

C、可以是顺序存取,也可以是随机存取

D、只能从文件的开头存取

填空练习题

1、有以下定义:int x; float y; 执行scanf("%3d%f",&x,&y);时,如果输入的数据为:12345 678,则x的值为123,y的值为这个与12345后有没有空格有关,到时候看着办吧(有空格就是45.000000)。

2、有定义语句:int x,y,z;,执行x=(y=4,z=8,z=16) 后,x的值为16 。

3、计算表达式b=25/3%3后,b的值为2。

4、设有定义语句int x=1,y=0;,则表达式x-->(y+x)?10:12>y++?'A': 'Z'的值是:65 。

5、请写出以下语句的输出结果9 。

printf("%d",strlen("\t\"065\xffab\n"));

7、C语言规定:标识符只能由字母、数字、下划线三种字符组成。

8、有定义语句:int x=5,y=1;表达式x&y==y? x|y:x^y的值为5。

9、下述程序段的循环次数是0 次,输出结果是y=1,x=0 。

int x=0,y=0;

do

{ y++;

x*=x;

}while(x>0&&y>5)

printf("y=%d,x=%d",y,x);

10、若m,y,z,均为int型变量,则执行下面语句后m值是1。

m=1;x=2;y=3;z=4;

m=(m

m=(m

m=(m

11、下述程序段的运行结果是5 。

int x,y;

x=17;

y=26;

printf("%d",y/=(x%=6));

12、下列循环语句执行的循环次数是:无数次。

for(a=1,b=1;a<4&&b!=4;a++)//循环体内b的值不变。

14、下述程序段的输出结果是3。

int a=3;b=4;

int c=a^b>>3;

printf("%d",c);

17、下述程序段的输出结果是1245056。

#include

void fun(int*x)

{

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

}

main( )

{ int y=20;

fun (&y);

}

20、下述程序段的运行结果是15 。

#include

main( )

{ int a[3][3]={1,2,3,4,5,6,7,8,9};

int s=0,i;

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

s+=(*(a+i))[i];

printf("%d",s);

}

21、下述程序的输出结果是18 。

#include

main()

{ int x=8,y=9;

int k;

k=(x++)+(++y);

printf("%d",k);

}

22、下述程序的输出结果是6。

#include

int fun(int x)

{ static int a=3;

a+=x;

return a;

}

main( )

{ int k=2,m=1,n;

n=fun (k);

n=fun (m)

printf("%d",n);

}

23、用“冒泡法”对输入的10个字符按由小到大顺序排序,请填空。

#include

#include

#define n 10

main()

{ int i,j;

char str[11];

scanf("%s",str);

char t;

for(j=1;j

for(i=0;(i

if( str[i]>str[i+1] )

{ t=str[i];

str[i]=str[I+1];

str[i+1]=t;

}

for(i=0;i

printf("%c",str[i]);

}

24、把字符数组中的字符串按反序存放,例如:字符串"ABCD"的输出结果应为"DCBA",请填空。

#include

#include

#include

main()

{

char a[100],t;

printr(“输入字符串:\n”);

scanf("%s",a);

int i,j;

for(i=0,j=strlen(a);i

{ t=a[i];

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

C语言期末考试题库(第一章 c语言基

一、单项选择 1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(). A、关系运算,赋值运算,算术运算 B、算术运算,关系运算,赋值运算 C、算术运算,赋值运算,关系运算 D、关系运算,算术运算,赋值运算 答案:B 2.下述正确的C语言常量是:(). A、E2 B、3e-3 C、1.5E2.5 D、5.0E 答案:B 3.使用共用体变量,不可以(). A、进行动态管理 B、节省存储空间 C、同时访问所有成员 D、简化程序设计 答案:C 4.为表示关系x>=y>=z,应使用C语言表达式为:()

A、(x>=y)&(y>=z) B、(x>=y>=z) C、(x>=y)&&(y>=z) D、(x>=y)AND(y>=z) 答案:C 5.以下程序的输出结果是(). main() {char str[]="ABCD",*p=str;printf("%s\n",p);} A、68 B、ABCD C、不确定的值 D、字符D的地址 答案:B 6.char a[10];不能将字符串"abc"存储在数组中的是(). A、a="abc"; B、a[0]=0;strcat(a,"abc"); C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; D、strcpy(a,"abc"); 答案:A 7.fscanf函数的正确调用形式是(). A、fscanf(文件指针,格式字符串,输入表列);

B、fscanf(格式字符串,文件指针,输出表列); C、fscanf(fp,格式字符串,输出表列); D、fscanf(格式字符串,输出表列,fp); 答案:A 8.下列数组说明中正确的是(). A、int array[][]={1,2,3,4,5,6,7,8,9,10}; B、int array[][][5]={1,2,3,4,5,6,7,8,9,10}; C、int array[][4]={1,2,3,4,5,6,7,8,9,10}; D、int array[3][]={1,2,3,4,5,6,7,8,9,10}; 答案:C 9.以下选项中,与k=n++完全等价的表达式是(). A、n=n+1,k=n B、k+=n+1 C、k=++n D、k=n,n=n+1 答案:D 10.针对下列程序段回答问题(). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0)continue;

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

《C程序设计》试题

《C程序设计》试题 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() 3. 不是C语言实型常量的是:() .字符串“xyzw”在内存中占用的字节数是:() 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) ,2 ,3 ,2 ,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是: =,b=3 = b=3 3 表示关系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>yx:mc4)后,s,t的值为:() ,2 ,1 ,1 ,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf 最多可执行次数为:() 13. 对于for(s=2;;s++)可以理解为:() A. for(s=2;0 ;s++) B. for(s=2;1 ;s++) C. for(s=2;s<2 ;s++) D. for(s=2;s>2;s++)

汇编语言程序设计练习题及答案

一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。) 1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是(D) A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546H C.DW ‘AB’,‘CD’,‘EF’D.DW ‘BA’,‘DC’,‘FE’ 2.DA2 DB‘AB’,‘CD’ ┇ MOV AX,WORD PTR DA2+1 上述语句执行后AX中的值是(D) A.‘AD’B.‘BC’ C.‘DA’D.‘CB’ 3.下列数据定义语句中可实现留空20H个字节存储单元的是(D) A.DB 20 DUP(?) B.DW 20H DUP(?) C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?) 4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是(D) A.32K字节B.32K字 C.64K字节D.64K字 5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是(B)A.BX B.BP C.SI D.DI 6.下列指令中有语法错误的是(C) A.PUSH AX B.PUSH [20H+SI+BX] C.POP CS D.PUSH CS 7.执行PUSH BP指令时,目的操作数的物理地址表达式是(D) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP 8.把BL中的数据输出到端口8CH中正确指令是(C) A.OUT 8CH,BL B.IN 8CH,BL C.MOV AL,BL D.MOV AL,BL OUT 8CH,AL IN 8CH,AL 9.结果为零的条件转移指令,其测试条件是(A) A.ZF=1 B.ZF=0 C.SF=l D.SF=0 10.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是 MOV CH,0 MOV CH,0FFH ZERO:MOV DH,CH(C) A.JNZ ZERO B.JS ZERO

C语言期末考试试题

C语言试题1 一填空题(15分) 1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。 2.设int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是()。 3.下面程序段的输出结果是()。 int a=1234; a=a&0377; printf(“%d %o\n”,a,a); 4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。 char a[3]; 5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。 #define PR 80 #define PP PR+403 6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。 8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。 9.若有int a[3]={10,12,30};则a+1是()的地址,*(a+2)=()。 二判断对错(5分,对的划“√”,错的划“×” 1.在Turbo C中,整型数据在内存中占2个字节。() 2.表达式1/4+2.75的值是3。() 3.结构体类型只有一种。() 4.函数若无返回值,则它一定无形参。() 5.C语言只能处理文本文件和二进制文件。() 三选择题(20分) 1.设int a=12; 表达式a+=a-=a*=a的值是()。 A 12 B 144 C 0 D 132 2.以下程序的输出结果是()。 main( ) { int a=011; printf(“%d\n”,++a); } A 12 B 11 C 10 D 9 3.以下程序的输出结果是()。 #define ADD(x) (x)+(x) main() { int a=4,b=6,c=7,d=ADD(a+b)*c; printf(“d=%d”,d); } A d=70 B d=140 C d=280 D d=80 4.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。 A p=“abcd”; B a=“abcd”; C *p=“abcd”; D *a=“abcd”; 5.若k为整形,则while循环执行()次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); A 10 B 9 C 0 D 1

C语言程序设计 复习题库

一、填空 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; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) 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);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题 学院(系):学号: 姓名: 计分: 一、项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号 内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是( ) A.物理地址 B.偏移地址C.逻辑地址D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是( ) A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR[BX]指令中的操作数的数据类型是( ) A.字 B.双字C.字节D.四字 4.在下列语句中,BUFFER称为( ) BUFFER DB 01H,0AH A.符号 B.变量 C.助记符D.标号 5.串操作指令中,源串操作数的段地址一定在( )寄存器中。 A. CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是( ) A.伪指令B.指令 C.标号D.助记符 7.将数据5618H存放在存储单元中的伪指令是( ) A. DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1EQU 5618H D. DATA1 DB 18H,00H,56H,00H 8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( ) A.1400H B. 77F8H C. 0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍 采用的是( )码。 A. BCD码 B.二进制码 C.ASCII码D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语 言称为( ) A.汇编语言 B.高级语言 C.机器语言 D.低级语言 二、填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。 2.通常所说的计算机系统包括________和________两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是________、_____ ___、________、________。 4.现有AX=2000H,BX=1200H, DS=3000H, DI=0002H, (31200H)=50H,(31201H)=02H, (31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标 志位ZF、CF的值。 A.ADDAX,1200H;问AX=________H,ZF=________

2019年C语言期末考试题与答案

1、给定n个数据, 求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。 最大值第三行i<=n五行k+1 2、编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他)6、求出N×M整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 1 5 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n位自然数的各位数字的积。(n 是小于10的自然数) 8、计算n门课程的平均值,计算结果作为函数值返回。例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。

10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun 用比较法对主程序中用户输入的具有10 个数据的数组a 按由大到小排序,并在主程序中输出 排序结果。 13、编写main 程序调用函数fact 求解从m 个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m 不能小于n ,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a 和b 分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 19、对任意输入的 x ,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10

C语言程序设计期末考试试题及答案

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

汇编语言程序设计试题

汇编语言程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A ) A.20640H B.2063EH C.2063FH D.21900H 2.使用DOS功能调用时,子程序编号应放在( B ) A.AL B.AH C.AX D.任意指定 3.没有 ..语法错误的输出指令是( B ) P76 A.OUT AX,30H B.OUT DX,AL C.OUT AL,DX D.OUT 30H,AH 4.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( B ) A.MOV AX,89 B.MOV AX,0809H C.MOV AX,89H D.MOV AX,0809 5.设AX=8765H,DX=4321H,执行CWD指令后,DX中的内容是( B ) P117 A.4321H B.0FFFFH C.8000H D.0001H 6.设CL=05H,要获得CL=0AH,可选用的指令是( A) A.XOR CL,0FH B.NOT CL C.OR CL,0AH D.AND CL,0FH 7.假设执行ADD指令后AL=8CH,再执行DAA指令,AL中的值是( A ) A.92H B.0104H C.74H D.8CH 8.MOV AL,79H ADD AL,B1H 上面指令执行后,设置的标志位CF和ZF的值是( D ) A.CF=0,ZF=1 B.CF=l,ZF=1 C.CF=0,ZF=0 D.CF=1,ZF=0 9.TEST DL,55H P123 JZ NEXT NEXT:…… … 上述程序段,执行JZ指令时能产生转移的情况是( D ) A.DL>55H B.DL<55H C.DL=55H D.DL中第0、2、4、6位均为0 10.假设AL=28H, 执行ROL AL,1 指令之后的情况是( D ) P125 A.AL=14H, CF=1 B.AL=50H, CF=1 C.AL=14H, CF=0 D.AL=50H, CF=0 11. 98的BCD码是(B) A)10011001 B) 10011000 C) 10011010 D) 10001010 12. –0110110 的补码是(A) A) 11001010 B) 11001001 C) 10110110 D) 00110110

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