当前位置:文档之家› C语言练习题及参考答案

C语言练习题及参考答案

C语言练习题及参考答案
C语言练习题及参考答案

练习题1及参考答案

1. 单项选择题

(1)以下并非C语言的特点的是。

A. C语言简洁和紧凑

B. 能够编制出功能复杂的程序

C. C语言可以直接对硬件进行操作

D. C语言移植性好

【答】B

(2)一个C程序的执行是从。

A. main()函数开始,直到main()函数结束

B. 第一个函数开始,直到最后一个函数结束

C. 第一个语句开始,直到最后一个语句结束

D. main()函数开始,直到最后一个函数结束

【答】A

(3)在C程序中,main()的位置。

A. 必须作为第一个函数

B. 必须作为最后一个函数

C. 可以任意

D. 必须放在它所调用的函数之后

【答】C

(4)一个C程序是由。

A. 一个主程序和若干子程序组成

B. 一个或多个函数组成

C. 若干过程组成

D. 若干子程序组成

【答】B

(5)下列说法正确的是。

A. 在执行C程序时不是从main()函数开始的

B. C程序书写格式限制严格,一行内必须写一个语句

C. C程序书写格式比较自由,一个语句可以分行写在多行上

D. C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C

2. 填空题

(1)一个C源程序至少有① 个main()函数和② 个其他函数。【答】①一②若干

(2)任何C语句必须以结束。

【答】分号

(3)C语言源程序的基本单位是。【答】函数

(4)C编译程序的功能是。【答】将C源程序编译成目标代码

练习题2及参考答案

1. 单项选择题

(1)以下字符串为标识符的是。

A. _MY

B. 2_2222

C. short

D. LINE 5

【答】A

(2)下列符号可以作为变量名的是。

A. +a

B. *p

C. _DAY

D. next day

【答】C

(3)设c是字符变量,则以下表达式正确的是。

A. c=666

B. c='c'

C. c="c"

D. c="abcd"

【答】B

(4)23+'m'+'b'的结果是型数据。

A. char

B. double

C. int

D. long int

【答】和均为double型,运算结果也是double型。本题答案为B。

(5)若变量已正确赋值,以下符合C语言语法的表达式是。

A. a=a+7;

B. a=7+b+c,a++

C. int%4)

D. a=a+7=c+b

【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。

(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是。

A. x=(x=1+2,x*2)

B. x=y>26:5

C. x=9-(--y)-(--y)

D. x=y*(int)2)

【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)2)=y*2=6。本题答案为C。

(7)若定义

int m=7,n=12;

则能得到值为3的表达式是。

A. n%=(m%=5)

B. n%=(m-m%5)

C. n%=m-m%5

D. (n%=m)-(m%=5)

【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。

(8)以下程序的运行结果是。

#include <>

main()

{

int i=5,j=6,m=i+++j;

printf("%d,%d,%d\n",i,j,m);

}

A. 6,6,11

B. 5,6,11

C. 5,6,12

D. 6,6,12

【答】m=i+++j等价于m=(i++)+j。本题答案为A。

(9)以下程序的运行结果是。

#include <>

void main()

{

double f=;

int n;

n=(int)(f+10)%3;

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

}

A. 1

B. 0

C. 2

D. 3

【答】f+10=,(int)(f+10)=13,13%3=1。本题答案为A。

(10)以下程序的运行结果是。

#include <>

void main()

{

int n,i=2,j=4;

n=(++i==j--);

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

}

A. 0

B. 1

C. 2

D. 3

【答】++i返回3,j--返回4,两者不等,故n=0。本题答案为A。

2. 填空题

(1)表达式语句与表达式的不同是。

【答】语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。

(2)在C语言中可以利用将一个表达式的值转换成指定的类型。

【答】强制类型转换

(3)写出完成下列功能的表达式:

· 如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。①

· 如果d是数字,则将d转换成相应的整数,否则d的值不改变。②

· 返回两个整数x、y中较大者。③

· 返回三个整数x、y和z中最大者。④

【答】① c=(c>='A' && c<='Z') c-'A'+'a' : c

② d=(d>='0' && d<='9') d-'0' : d

③ (x>y) x : y

④ (x>y) (x>z x : z) : (y>z y : z) 或 (x>y && x>z) x : (y>z y : z)

(4)以下程序的运行结果是。

#include <>

#include <>

main()

{

char s[]="ab\n\\\'\r\b";

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

}

【答】字符串s由字符'a'、'b'、'\n'、'\\'、'\''、'\r'、'\b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'\0'。所以,s的长度为7,在内存中占用8个字节。输出为:8,7。

(5)以下程序的运行结果是。

#include <>

main()

{

int a=2,b=4,c=6,x,y;

y=(x=a+b),(b+c);

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

}

【答】结果为y=6,x=6。

(6)以下程序的运行结果是。

#include <>

main()

{

char a,b;

a='a';b='b';

a=a-32;b=b-32;

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

}

【答】A,B,65,66

(7)以下程序的运行结果是。

#include <>

main()

{

int i,j,x,y;

i=5;j=7;

x=++i;y=j++;

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

}

【答】执行x=++i后,i=6,x=6;执行y=j++后,j=8,y=7;所以输出为:6,8,6,7。

(8)以下程序的运行结果是。

#include <>

main()

{

int a=1;

char c='a';

float f=;

printf("①:%d\n",a+2!=c-100);

printf("②:%d\n",(a>c)>=(f>4));

printf("③:%d\n",!a==!f);

printf("④:%d\n",(!a&&1)!=(!c||1));

printf("⑤:%d\n",(!a>2)3:0)<((f!=1)0:1);

printf("⑥:%d\n",(1,2,3)==(3,3,3));

}

【答】①:1 (a+2=3,c-100=-3,表达式结果=1(真))

②:1(a>c的结果是0(假),f>4的结果是0,表达式结果=1)

③:1(!a的结果是0,!f的结果是0,表达式结果=1)

④:1(!a&&1的结果是0,!c||1的结果是1,表达式结果=1)

⑤:0(!a>2的结果是0,(!a>2)3:0的结果是0,f!=1的结果是1,(f!=1)0:1的结果是0,表达式结果=0)

⑥:1((1,2,3)表达式的结果是3,(3,3,3)的结果是3

练习题3及参考答案

1. 单项选择题

(1)以下说法正确的是。

A. 输入项可以为一个实型常量,如scanf("%f",

B. 只有格式控制没有输入项也能进行正确输入,如scanf("%d")

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)

D. 当输入数据时,必须指明变量的地址,如scanf("%f",&f)

【答】D

(2)若a为整型变量,则以下语句。

a=-2L;

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

A. 赋值不合法

B. 输出值为-2

C. 输出为不确定值

D. 输出值为2

【答】B

(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是。

A. scanf("%d%lx,%le",&x,&y,&z);

B. scanf("%2d*%d%lf",&x,&y,&z);

C. scanf("%x%*d%o",&x,&y);

D. scanf("%x%o%6.2f",&x,&y,&z);

【答】scanf()函数中没有精度控制。本题答案为D。

(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是。

A. read(a,b,c);

B. scanf("%d%d%d",a,b,c);

C. scanf("%D%D%D",a,b,c);

D. scanf("%d%d%d",&a,&b,&c);

【答】D

(5)若有定义和语句:

int n=10;

printf("%\n",n);

其输出结果是。

A. 输出10

B. 输出一空行

C. 没有输出

D. 编译不通过

【答】D

(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是。

A. scanf("%6.2f%d",&a,&b);

B. scanf("%f%n",&a,&b);

C. scanf("%f%3o",&a,&b);

D. scanf("%f%f",&a,&b);

【答】C

(7)字母a的ASCII码为97,则下列语句的运行结果为。

char a='a';

a--;

printf("%d,%c\n",a+'2'-'0',a+'3'-'0');

A. b,c

B. a--运算不合法,故有语法错

C. 98,c

D. 格式描述和输出项不匹配,输出无定值

【答】C

(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是。

scanf("%d%d",&k1,&k2);

scanf("%d,%d",&k3,&k4);

A. 1020

B. 10 20

C. 10,20

D. 10 20

1020

10 20

10,20

10,20

【答】D

(9)有如下程序,输入数据12345 678↙后,x的值是① ,y的值是② 。

#include <>

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

① A. 12345 B. 123 C. 45

【答】① B ② A

(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是。

#include <>

main()

{

int x,y,z;

scanf("%d%d%d",&x,&y,&z);

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

}

A. x+y+z=48

B. x+y+z=35

C. x+y+z=38

D. 不确定值

【答】输入的数据与scanf()函数的格式不匹配。本题答案为D。

(11)有如下程序,输入数据12 345↙后,x的值是① ,y的值是② 。

#include <>

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

① A. 12 B. 123 C. 12345 D. 0

② A. B. C. D.

【答】① A ② B

(12)有如下程序,输入数据后,程序的运行结果是。#include <>

main()

{

int a;

float b,c;

scanf("%2d%3f%4f",&a,&b,&c);

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

}

A. a=98,b=765,c=4321

B. a=10,b=432,c=8765

C. a=98,b=,c=

D. a=98,b=,c=

【答】C

(13)以下程序的运行结果是。

#include <>

main()

{

float a=;

printf("|%6.0f|\n",a);

}

A. ||

B. | |

C. | 3|

D. | 3.|

【答】C

(14)以下程序的运行结果是。

#include <>

main()

{

float a=;

printf("|%06.0f|\n",a);

}

A. |000003|

B. ||

C. ||

D. | 3|

【答】A

(15)以下程序的运行结果是。

#include <>

main()

{

float a=;

printf("|%-6.0f|\n",a);

}

A. |3 |

B. |000003|

C. ||

D. | |

【答】A

(16)以下程序的运行结果是。

#include <>

main()

{

int i=010,j=10;

printf("%d,%d\n",++i,j--);

}

A. 11.10

B. 9,10

C. 010,9

D. 10,9 【答】B

(17)以下程序的运行结果是。

#include <>

main()

{

int x=10,y=10;

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

}

A. 10,10

B. 9,9

C. 9,10

D. 10,9 【答】D

2. 填空题

(1)以下程序的运行结果是。

#include <>

main()

{

float f=;

printf("%f,%5.4f,%3.3f",f,f,f);

}

【答】,,

(2)以下程序的运行结果是。

#include <>

main()

{

float f=;

printf("%f,%g",f,f);

}

【答】,

(3)以下程序的运行结果是。

#include <>

main()

{

float f=;

printf("%f,%e",f,f);

}

【答】,+001

(4)以下程序的运行结果是。

#include <>

main()

{

int x=0177;

printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x);

}

【答】127, 127, 177, 7f, 127

(5)以下程序的运行结果是。

#include <>

main()

{

int x=0177;

printf("%-3d,%-6d,%-6o,%-6x,%-6u\n",x,x,x,x,x); }

【答】127,127 ,177 ,7f ,127

(6)以下程序的运行结果是。

#include <>

main()

{

char c='A'+10;

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

}

【答】c=K

(7)以下程序输入123456↙后,其运行结果是。

#include <>

main()

{

int a,b;

scanf("%2d%3d",&a,&b);

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

}

【答】a=12,b=345

(8)以下程序输入ABC↙后,其运行结果是。

#include <>

main()

{

char c;

scanf("%3c",&c);

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

}

【答】c=A

(9)以下程序输入100↙后,其运行结果是。

#include <>

main()

{

int n;

scanf("%o",&n);

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

}

【答】n=64

(10)以下程序输入x=,y=50↙后,其运行结果是。

#include <>

main()

{

float x,y;

scanf("x=%f,y=%f",&x,&y);

printf("x=%7.2f,y=%7.2f\n",x,y);

}

【答】x= ,y=

(11)执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=,y=, c1='A',c2='a'正确的数据输入形式是。

#include <>

main()

{

int a,b;

float x,y;

char c1,c2;

scanf("a=%d b=%d",&a,&b);

scanf("x=%f y=%f",&x,&y);

scanf("c1=%c c2=%c",&c1,&c2);

printf("a=%d,b=%d,x=%g,y=%g,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

}

【答】a=3 b=7x= y=71.82c1=A c2=a↙

3. 编程题

(1)编写一个程序,求出任一输入字符的ASCII码。

【解】程序如下:

/*文件名:*/

VC++

#include <>

main()

{

char c;

printf("输入字符:");

scanf("%c",&c);

printf("字符%c的ASCII码为%d\n",c,c);

}

(2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。【解】程序如下:

/*文件名:*/

VC++

#include <>

#define pi

main()

{

char c;

printf("输入一个字符:");

scanf("%c",&c);

printf("输出结果:%c,%c,%c\n",c-1,c,c+1);

}

(3)编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数。【解】直接使用printf()的格式符输出八进制数和十六进制数。程序如下:

/*文件名:*/

VC++

#include <>

main()

{

int i;

printf("输入一个整数:");

scanf("%d",&i);

printf("%d(10)<=>%o(8)\n",i,i);

printf("%d(10)<=>%x(16)\n\n",i,i);

}

(4)编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积。【解】圆锥体体积的计算公式为:

v=π×r×r×h/3

程序如下:

/*文件名:*/

VC++

#include <>

main()

{

float r,h,pi=,v;

printf("圆锥半径,高度:");

scanf("%f,%f",&r,&h);

v=pi*r*r*h/;

printf("圆锥体积=%g\n\n",v);

}

练习题4及参考答案

1. 单项选择题

(1)if后面的逻辑表达式之值。

A. 只能是0或1

B. 只能是正整数或负整数

C. 只能是整型或字符型数据

D. 可以是任何类型的数据

【答】A

(2)为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系。A. 缩排位置相同的if B. 在其之前未配对的if

C. 在其之前最近的未配对的if

D. 同一行上的if

【答】C

(3)选择出合法的if语句(设int x,a,b,c;)。

A. if (a=b) x++;

B. if (a=

C. if (a<>b) x++;

D. if (a=>b) x++;

【答】选项B、C、D中的比较运算符不正确,在选项A中,a=b返回b,若b为0或空字符,则为假,否则为真。本题答案为A。

(4)以下不正确的if语句是。

A. if (x>y);

B. if (x=y) && (x!=0) x+=y;

C. if (x!=y) scanf("%d",&x);else scanf("%d",&y);

D. if (x

【答】B。应改为if (x=y && x!=0) x+=y;

(5)若定义float x;int a, b;,则正确的switch语句是。

A. switch(x)

{

case :printf("*\n");

case :printf("**\n");

}

B. switch(x)

{

case :printf("*\n");

case 3:printf("**\n");

}

C. switch(a+b)

{

case 1:printf"*\n"};

case 1+2:printf("**\n")

}

D. switch(a+b)

{

case 1:printf("*\n");

case 2:printf("**\n");

}

【答】D

(6)执行下列程序,输入为1的运行结果是①,输入为3的运行结果是②。#include <>

main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1: printf("%d ",k++);

break;

case 2: printf("%d ",k++);

case 3: printf("%d ",k++);

break;

case 4: printf("%d ",k++);

default:printf("Full!\n");

}

}

① A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4

②A. 3 B. 4 C. 3 4 D. 4 5

【答】① A ② A

(7)执行下列程序,输入为1的运行结果是①,输入为3的运行结果是②。#include <>

main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1: printf("%d ",k++);

case 2: printf("%d ",k++);

case 3: printf("%d ",k++);

case 4: printf("%d ",k++);

break;

default:printf("Full!\n");

}

}

① A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4

②A. 3 B. 4 C. 3 4 D. 4 5

【答】① D ② C

(8)以下程序的运行结果是。

#include <>

main()

{

int x=1,y=0,a=0,b=0;

switch(x)

{

case 1:switch(y)

{

case 0:a++;break;

case 1:b++;break;

}

case 2:a++;b++;break;

}

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

}

A. a=2,b=1

B. a=1,b=1

C. a=1,b=0

D. a=2,b=2

【答】A

2. 填空题

(1)有定义int x;则“x是偶数”的表达式是。

【答】x % 2 == 0

(2)有定义int a,b;则“a是b的整数倍”的表达式是。

【答】a % b == 0

(3)有定义int a,b,c;它们表示三个边长,则能够构成一个直角三角形的条件是。【答】a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a

(4)有定义int a,b,c;它们表示三个边长,则能够构成一个三角形的条件是。【答】(a+b

(5)以下程序的运行结果是。

#include <>

main()

{

int k=2;

switch (k)

{

case 1: printf("%d\n",k++);

break;

case 2: printf("%d ",k++);

case 3: printf("%d\n",k++);

break;

case 4: printf("%d\n",k++);

default:printf("Full!\n");

}

}

【答】k=2,执行case 2分支,k++返回2,此时k=3,输出2,后跟一空格。由于没有break语句,继续执行case 3分支,k++返回3,此时k=4,输出3,由于有break语句,退出switch语句。所以输出为:2 3。

(6)以下程序的运行结果是。

#include <>

main()

{

int s=1,t=1,a=5,b=2;

if (a>0)

s++;

if (a>b)

t+=s;

else if (a==b)

t=5;

else

t=2*s;

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

}

【答】a>0,s变为2。a>b为真,t=t+s=3。所以输出为:s=2,t=3。

(7)以下程序的运行结果是。

#include <>

main()

{

int k=2;

switch(k)

{

case 1:printf("%d ",k++);

case 2:printf("%d ",k++);

case 3:printf("%d ",k++);

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

default:printf("Full!\n");

}

printf("\n");

}

【答】k=2,执行case 2分支,k++返回2,此时k=3,屏幕输出2,后跟一空格。由于没有break语句,继续执行case 3分支,k++返回3,此时k=4,屏幕输出3,由于没有break语句,继续执行case 4分支,k++返回4,此时k=5,屏幕输出4,由于有break语句,退出switch语句。所以输出为:2 3 4。

(8)以下程序的运行结果是。

#include <>

main()

{

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

switch(x)

{

case 0: switch(y==2)

{

case 1:printf("*");break;

case 2:printf("%");break;

}

case 1: switch(z)

{

case 1:printf("$");

case 2:printf("*");break;

default:printf("#");

}

}

}

【答】x=0,执行外层switch语句的case 0部分,y==2为真,则执行里层switch语句的case 1部分,输出“*”,遇到break语句,退出里层的switch语句,由于里层的switch语句之后没有break语句,所以转而执行外层switch语句的case 1部分,这时z=3,故执行里层switch语句的default部分,输出“#”,整个程序执行完毕。所以输出为:*#。

3. 编程题

(1)编写一个程序判断用户输入的字符是数字字符、字母字符还是其他字符。

【解】在'0'到'9'之间的为数字字符,在'a'到'z'或'A'到'Z'之间的为字母字符;否则为其他字符。程序如下:

/*文件名:*/

#include <>

main()

{

char c;

printf("输入一个字符:");

scanf("%c",&c);

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

printf("\n%c是数字字符\n\n",c);

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

printf("\n%c是字母字符\n\n",c);

else

printf("\n%c是其他字符\n\n",c);

}

(2)假设今天是星期日,编写一个程序,求123456天后是星期几。

【解】星期是7天一个轮回,由于今天是星期日,所以123456除以7的余数即为星期几。程序如下:Array

/*文件名:*/

#include <>

main()

{

int n=123456;

n=n%7;

printf("\n星期");

switch(n)

{

case 0: printf("天");

break;

case 1: printf("一");

break;

case 2: printf("二");

break;

case 3: printf("三");

break;

case 4: printf("四");

break;

case 5: printf("五");

break;

case 6: printf("六");

break;

}

printf("\n\n");

}

(3)编写一个程序,输入年号和月份,判断该年是否为闰年,并根据给出的月份判断是什么季节和该月有多少天闰年的条件是年号能被4整除但不能被100整除,或者能被400整除。

【解】直接根据闰年的定义求解,如果是闰年,2月份为29天;否则为28天,其他月份相同。规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季。本题程序如下:

/*文件名:*/

#include <>

main()

{

int y,m,leap,season,days;

printf("年份,月份:");

scanf("%d,%d",&y,&m);

if ((y%4==0 && y%100!=0) || (y%400==0))

leap=1;

else

leap=0;

if (m>=3 && m<=5)

season=1;

else if (m>=6 && m<=8)

season=2;

else if (m>=9 && m<=11)

season=3;

else

season=4;

switch (m) { case 1: case 3: case 5: case 7: case 8: case 10:

case 12:days=31;break; case 4: case 6: case 9:

case 11:days=30;break; case 2: if (leap==1) days=29;

else

days=28; }

printf("%d 年%s 闰年\n",y,(leap==1 "是" : "不是")); printf("该季度是");

switch(season) { case 1:printf("春季\n");break; case 2:printf("夏季\n");break; case 3:printf("秋季\n");break; case 4:printf("冬季\n");break; }

printf("当月天数:%d\n",days);

}

(4)报数游戏。A 、B 、C 、D 、E 、F 、G 、H 共8人站成一排,按图所示的方法从1开始报数。问谁先报到123456

A B C D E F G H 1→ 2→ 3→ 4→ 5→ 6→ 7→ 8 14←13←12←11←10← 9

15→16→17→18→19→20→

2122 28←27←26←25←24←23

→30→…

图 游戏报数过程

【解】从图中看到1到14是一个来回,再重复这一过程,所以只需对123456除以14的余数加以判断即可。程序如下: /*文件名:*/ #include <> main() {

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

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

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

执行上述两条指令后,正确的结果是( 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个字节数的总和并

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

C语言上机作业题及答案

实验一: 1、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误

差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include #include main() { float A,a,H,h,b; printf("父亲身高(厘米)\n"); scanf("%f",&A); printf("母亲身高(厘米)\n"); scanf("%f",&a); printf("孩子实际身高(厘米)\n"); scanf("%f",&H); printf("请选择孩子性别:女=0,男=1\n"); scanf("%f",&b); if(b) h=(A+a)*1.08/2; else h=(A*0.923+a)/2; if(fabs(H-h)<=3) printf("实际身高符合该公式\n"); else

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

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程序设计语言期末考试题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

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

扬州大学C语言上机作业1-9整理

答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a; a=b; b=c; printf("%d,%d\n",a,b); getch(); } 5.设计main函数实现从键盘上输入两个整型变量a、b的值,并将b的值加入到a中,输出a的值。 #include void main() { int a,b,c; printf("enter first integer : "); scanf("%d",&a); printf("enter second integer : "); scanf("%d",&b); c=a+b; a=c; printf("a=%d,b=%d\n",a,b); getch(); } 6.从键盘输入整数x的值,根据公式y=x3+3x2+x-10求y的值,输出x和y的值。 #include void main() { int x,y; printf("enter first integer : "); scanf("%d",&x); y=x*x*x+3*x*x+x-10;

printf("x=%d,y=%d\n",x,y); getch(); } 实验二 1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 #include void main() { int a,b,hour,min; printf("enter first integer : "); scanf("%d",&a); b=60; hour=a/b; min=a%b; printf("hour=%d,min=%d\n",hour,min); getch(); } 2.编写程序,输入两个整数(例如1500和350),求出它们的商和余数并进行输出。 #include void main() { int a,b,c,d; a=1500,b=350; c=a/b; d=a%b; printf("%d,%d",c,d); getch(); } 3.编写程序,读入3个整数给分别变量a,b,c,然后将a,b,c的值输出到屏幕,再交换它们中的数值,把a中原来的值给b,把b中原来的值赋给c,把c中原来的值赋给a,然后再次输出a,b,c的值到屏幕。 #include void main() { int a,b,c,d; printf("enter first integer : "); scanf("%d",&a);

大学C语言考试题库(含标准答案)

单项选择 ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10 。printf("%d",a++) 。 A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A' 的ASCⅡ代码值是65, 字符变量c1的值是'A',c2 的值是'D'. 执行语句printf("%d,%d",c1,c2-2) 。后, 输出结果是 A、65,66 B、A,B C、 65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10] 。合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 题号:45 能正确表示逻辑关系:" a ≥10或a≤0 " 的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0

D 题号:157 main() {int x=1,a=0,b=0 。 switch (x) { case 0: b++ 。 case 1: a++ 。 case 2: a++ 。b++。} printf("a=%d,b=%d",a,b) 。} 该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f 是实型,i 是双精度型,则表达式10+'a'+i*f 值的 数据类型为()。 A、不确定 B、double C、int D、 float 答案: B 题号:1647 以下程序中,while 循环的循环次数是______ main() { int i=0 。 while(i<10) { if(i<1) continue 。 if(i==5) break 。 i++ 。 } } A、死循环,不能确定次数 B、6 C、4 D、1

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

选择题 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

完整版汇编语言试题及答案..doc

一,单项选择题 (每小题 1 分,共 20 分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令 JMP FAR PTR DONE 属于 ( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是 ( A.对两个无符号数进行比较采用CMP 指令 ,对两个有符号数比较用CMP S 指令 B.对两个无符号数进行比较采用CMPS 指令 ,对两个有符号数比较用CM P 指令 C.对无符号数条件转移采用JAE/JNB 指令 ,对有符号数条件转移用JGE/J NL 指令 D.对无符号数条件转移采用JGE/JNL 指令 ,对有符号数条件转移用JAE/J NB 指令 3.一个有 128 个字的数据区 ,它的起始地址为 12ABH:00ABH, 请给出这个数据区最末一个字单元的物理地址是 ( A.12CSBH B.12B6BH

C.12C59H 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

C语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

汇编语言基础试题

第一章基本知识 一、单项选择题(共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.面向对象语言

汇编语言试题及答案.

一,单项选择题(每小题1分,共20分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令JMP FAR PTR DONE属于( C A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是( A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是( A.12CSBH B.12B6BH

C.12C59H 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的字节 9.执行如下程序:( MOV AX,0 MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后(BX=( A.99

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

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