当前位置:文档之家› C语言程序设计各章练习题

C语言程序设计各章练习题

C语言程序设计各章练习题
C语言程序设计各章练习题

《C 语言程序设计》各章练习题

2016年12月汇编

第1-3章 C 语言基础、编程规范、顺序结构程序设计

编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。

附加要求:(1)允许定义第3个变量,实现交换; (2)不允许定义第3个变量,实现交换。

第4章选择结构程序设计

编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。 编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。

编程题3:求 ax 2+bx+c=0方程的解。(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)

第5章 循环结构程序设计

编程题4:编程计算∑=n

i i 1。要求提示键盘输入n ,如n 为负数,不予计算,直接返回。

编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。 编程题6:从键盘输入一个数n ,判断n 是否是素数。

编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。

编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。 编程题8:求满足下列条件的三位数n ,它除以11(整数相除)所得到的商等于n 的各位数字的平方和,且其中至少有二位数字相同的数。

编程题9:有一些十进制整数对ab 和cd 具有如下特性:ab×cd=ba×dc ,其中a≠b 且c≠d 。如:12×42=21×24。请编程找出30~50之间满足上述等式所有m ,n 值,并按上述等式的格式输出。(×用*表示)

编程题10:从键盘上输入一个整数,然后把这个整数的各位逆序输出。例如,输入123456,输出654321。

第6章数组

编程题11:有一个已排好序的数组int a[11]={-5,-3,0,6,8,12,16,28,66,88};,要求输入一个数后,按原来排序的规律将它插入数组中。

编程题12:输入一个字符串(字符个数为小于100),统计其中字母、数字、空格以及其它符号的个数,并将大写字母改为小写字母,输出改变后的字符串。(提示:A的ASCII值为65,a的ASCII值为97)

编程题12:输入一行字符(字符数组的个数小于100),统计其中字母、数字以及其它符号的个数。(注:数组限定字符个数小于100)

编程题12:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。(注:字符个数不受限制)

第7章函数

编程题13:编写一个子函数int fun ( int n),其功能是判断整数n是否为素数,n是素数,返回值为1;n不是素数,返回值为0。调用该函数,将100~200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。(循环、条件分支、子函数、变量的值传递、屏幕显示格式控制)

编程题14:主函数中定义两个数组int a[5]={5,4,8,-1,2},b[10]={1,-1,2,4,8,4,0,9,3,7};用子函数实现从小到大的冒泡排序,子函数为void bubble(int [ ],int);要求在主函数中显示排序前、后的数组a和b的元素。(循环、条件分支、子函数、数组、地址传递)

编程题15:主函数中定义两个数组int a[5]={5,4,8,-1,2},b[10]={1,-1,2,4,8,4,0,9,3,7};用子函数实现从小到大的选择法排序,子函数为void sort(int [ ],int);要求在主函数中显示排序前、后的数组a和b的元素。(循环、条件分支、子函数、数组、地址传递)

编程题16:用递归函数计算n!。

编程题17:编写一个子函数int fact ( int n),计算n的阶乘。调用该函数计算1!+2!+3!+…+n!,要求n从键盘输入,如输入n小于0,不予计算。(循环、递归函数)

编程题18:将16进制或8进制或2进制数转换为十进制数(字符数组、字符串函数、子函数、字符ASCII值与10进制数的转换,指数函数的调用)

编程题18:编程实现八进制数转换为十进制数(注:用字符数组n[100]接收输入,输入的八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为int htoi(char hnum[ ]);)编程题18:编写一个子函数,将16进制数转换为10进制数。

编程题19:编写一个子函数,主函数用字符数组作为实参,统计字符串中字母、数字、空格以及其他符号的个数,要求主函数中显示字符串与统计结果。

编程题20:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并

显示结果。

编程题21:用递归法将一个整数n 转换为字符串。例如:输入483,输出字符串“483”,n 的位数不确定。

编程题22:写一个子函数,将输入的字符串按反序存放,在main 中输入和输出字符串。

第8章指针

编程题23:编写一个子函数mystrcmp(char *s1,char *s2)实现2个字符串的比较。 编程题23:编程实现两个字符串连接起来,不要用strcat 函数。 编程题23:用函数调用实现字符串的复制。

编程题23:写一个函数,求一个字符串的长度。在main 函数中输入字符串,并输出其长度。

编程题24

编程题25:输入一个字符串,内有数字和非数字字符,如: A123x456 tab5876,将其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这些数。 编程题26:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入n 个整数,用子函数void bubble(int [ ],int)实现从小到大的冒泡排序。

第9章 结构

编程题27:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

编程题28:13个人围成一圈,从第一个人开始顺序报号,凡报到3者退出圈子,找出最后留在圈子中的人原来的序号。要求用链表实现。

编程题29:阅读链表操作相关函数,完成指定的操作函数。 #include "" #include "" #include "" struct Student {

char name[20]; int num;

int math;

struct Student *next;

};

struct Student *Create(struct Student *head); 低级 B. 面向对象 C. 高级 D.

智能

2. 下列特性中,( D)不是C语言的特征。

A.运行效率高

B.结构化程序设计

C.能直接访问物理地址

D.类型检测严格

3.下列标识符中,( D)不是C的关键字;

A. int

B. float

C. char

D. scanf

4.下列标识符中,( D )不是C的关键字;

A. sizeof

B. short

C. long

D. define

5.下列标识符中,( D)不是C的关键字;

A. goto

B. break

C. auto

D. printf

6.下列标识符中,( D)不是C的关键字;

A. static

B. struct

C. void

D. include

7.下列自定义标识符中,( C)是不符合规定。

A. point1x

B. _point1x

C. 2pointx

D. pointx_2

8.下列自定义标识符中,( C)是不符合规定。

A. MAX

B. _MIN

C. MAX$

D. MIN_2

9.下列自定义标识符中,( D)是不符合规定。

A. point1_

B. _point1x

C. pointx

D. pointx_?#

10.下列自定义标识符中,( A )是不符合规定。

A. 2_point1x

B. _point1x

C. pointx

D. pointx_2

11.下列四个选项中,是不合法的用户标识符的选项是( C )

A.P_0 B._abcC.gotoD.temp

12.下面是不正确的字符串常量的是( A )

A.’abc’B.“12’12”C.“0”D.“”

13. 已知int a; float f; scanf(“a=%d,f=%f”,&a,&f); 为了把10和分别赋值给a和f,则正确的输入为(C)

A.10, B. 10 C. a=10,f= D. a=10 f=

14.输入语句为:scanf("%f,%f\n",&radius,&high);下列键盘输入( D )是正确的。

A.1 2↙;B.1,2\n↙;C.1↙2↙;D.1,2↙;

15.输入语句为:scanf("a=%f,b=%f",&radius,&high);从键盘输入( D )是正确的。

A.1 2↙;B.1,2↙;C.1↙2↙;D.a=1,b=2↙;

16.输入语句为:scanf("a=%f,b=%f\n",&radius,&high);从键盘输入(D)是正确的。

A.1 2↙;B.1,2↙;C.1↙2↙;D.a=1,b=2\n↙;

17.输入语句为:scanf("a=%fb=%f",&radius,&high);从键盘输入(D)是正确的。

A.1 2↙;B.1,2↙;C.1↙2↙;D.a=1b=2↙;

18.double PI=, 输出语句为:printf("%",PI);下列输出结果( D )是正确的。

A.;B.;C.;D.;

19.double PI=, 输出语句为:printf("%",PI);下列输出结果(B)是正确的。

A.;B.;C.;D.;

20.double PI=, 输出语句为:printf("%",PI);下列输出结果()是正确的。

A.;B.;C.;D.;

21.设x,y均为float型变量,则下列不合法的赋值语句是()

A.++x B.y=(x%2)/10

C.x*=y+8 D.x=y=0

22.double PI=, 输出语句为:printf("%",PI);下列输出结果()是正确的。

A.;B.;C.;D.;

23. int a=-1;C语言整型数分配4个字节,在计算机中下列十六进制表示的(A)是正确的。

A.ffffffff;B.;C.;D.00000001;

24. int a=1;C 语言整型数分配4个字节,在计算机中下列十六进制表示的a ()是正确的。 A .00000001; B .; C .; D .ffffffff ;

25.?int a=-1;C 语言整型数分配4个字节,在计算机中下列十六进制表示的a ()是正确的。

A .;

B .-00000001;

C .-1;

D .ffffffff ;*

26 .int a=-1;C 语言整型数分配4个字节,在计算机中下列十六进制表示的a ()是正确的。

A .-ffffffff ;

B .;

C .ffffffff ;

D .-1;**

27.设有下列变量说明:char a; int x; float y; double z; 则表达式a*x -z+y 的值的数据类型为()。***

A .float B.char C.int D.double

28.已知字母a 的ASCII 码为十进制数97,且设ch 为字符型变量,则表达式ch=’a’+’8’-‘3’的值为()

A .’f’ B.’a’ C.’d’ D.102 29.已知ch 是字符型变量,下列不正确的赋值语句是()

A .ch=’a+b’ B.ch=’\0’ C.ch=’a’+’b’ D.ch=5+9 30.若s 是int 型变量,则表达式s=25/3%3的值为()

A .25 B.1 C.2 D.3 31.若s 是int 型变量,则表达式s%2+(s -1)%2的值为()

A .0 B.1 C.–1 D.2 32.若s 是int 型变量,则表达式s%2+(s+1)%2的值为()

A .0 B.1 C.2 D.不确定 33.下列表达式中,不能正确表达代数式

ab

xy

2含义的C 语言表达式是() A .x/a/b*y*2 B.2*x*y/a/b C.2*x*y/a*b D.x*y/b/a*2 34.若x 、i 、j 、k 均为int 变量,则计算表达式x=(i=4,j=16,k=32);后,x 的值为() A. 4 B. 16 C. 32 D. 52

35. 已知int a=6,b=6; 执行b=(++b)+(a++);后,a和b的值为()。

A. a=7,b=13

B. a=7,b=14

C. a=6,b=13

D. a=6,b=14

36.若有定义:int x=5,y=2; 则计算表达式y+=y–=x*=y后, y的值为()A.16 B.–16C.7D.10

37.若a是int型变量,且其初值为6,则计算表达式a+=a-=a*a后,a的值为()A.-30B.-60C.-24D.6

38.若x的初值为7,执行语句x+=x-=x+x;后,x的值为()

A.21B.-14C.14D.-21

39.C语言的编译系统对宏命令的处理是()

A.在程序运行时进行的

B.在程序连接时进行的

C.和C程序中的其他语句同时进行编译的

D.在对源程序中其他成分正式编译之前进行的

40.以下正确的叙述是()

A.C语言的预处理功能是指完成宏替换和包含文件的调用

B.预处理指令只能位于C源程序文件的首部

C.凡是C源程序中行首以“#”标识的控制行都是预处理命令

D.C语言的编译预处理就是对源程序进行初步的语法检查

41.以下在任何情况下计算平方数时都不会引起二义性的宏定义是()A.#define POWER(x) x*x B.#define POWER(x) (x)*(x)

C.#define POWER(x) (x*x) D.#define POWER(x) ((x)*(x)) 42.以下有关宏替换的叙述中错误的是()

A.宏替换不占用运行时间B.宏替换只是字符替换

C.宏替换在编译之前进行D.宏名必须用大写字母表示43. 下列程序段的运行结果为()。

void main()

{ char c1,c2;

c1=’A’+’5’-‘3’; c2=’A’+’6’-‘3’;

printf(“%d,%c”,c1,c2)

}

A. C,D

B. 67,D

C. B,C

D. 无确定值

二、填空题

1.在C语言中,实型变量可以分为两种类型,它们是和。

2.若x,a为整型变量,则计算表达式x=(a=4,6*2)后的x值为,计算表达式x=a=4,6*2后的x值为。

3.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值,n的值为。

三、阅读下列程序,在下划线上写出输出结果

1.程序段:

#define MUL(x) (x)*(x)*(x)

main( )

{printf(“%d”,MUL(1+2)+3);}

的结果是。

2.程序段:

#define y(t) (t)*(t)

main( )

{printf(“%d”,y(1+2)+3);}

的结果是。

3.以下程序的输出结果是(19) 21 。

#include <>

#define M(x,y,z) x*y+z

void main()

{int a=2,b=3,c=4;

printf("%d\n", M(a+b,b+c,c+a));!(a%2)D.a%2

9.判断字符型变量x是否为大写字母的正确表达式是()

A.’A’<=x<=‘Z’B.(x>=A)&(x<=Z)

C.(x>=’A’)&&(x<=’Z’)D.(x>=’A’)and (x<=’Z’)

10.若x=5,y=2,z=1,则表达式x-y

A.0B.1C.3D.2

11.以下不正确的if语句形式是()

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

C.if (x!=y)x=1 else x=2; D.if (x

12.设有定义int a=1, b=2, c=3, d=4, m=2, n=2;执行(m=a>b)&&(n=c>d)后n的值是()

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

二、填空题

1.在C语言中,若x,y,z均为int型变量,则“x或y中有一个小于z”的表达式描述形式为。

三、阅读下列程序,在下划线上写出输出结果

1.#include <>

void 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(“%d,%d ”,a,b);

}/*输出结果:*/

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

#include <>

void main( )

{

int x=5;

if (x++>5)

printf(“%d\n”,x);

else

printf(“%d\n”,x--);

}

四、程序填空

1.下列程序的功能是实现输出a,b,c三个数中的最大值。请为程序填空。#include <>

void main( )

{

int a=5,b=4,c=8;

if ()

u=a;

else

u=b;

if ()

v=u;

else ;

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

}

2.下列程序的功能是根据下列函数关系,输入x的值,计算y的值。请为程序填空。#include <>

void main( )

{

int x, y;

scanf(“%d”, );

if ()

y=x*(x+5);

else if ()

y=4*x;

else

;

printf(“%d\n”, y);

}

第5章循环结构程序设计

一、选择题

1.执行语句for (i=1;i++<3;);后变量i的值的是()。

A.3 B.4 C. 5 D.不确定

2. 对于程序段int k=10; while(k) k=k-1; 下面描述正确的是()。

A. 循环体执行10次

B. 该循环为无穷循环

3.程序段:

a=10;b=0;

do {

b+=2;

a-=2+b;

} while (a>=0);

中循环体的执行次数()

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

C. 循环体执行一次

D. 循环体一次也不执行

4.设i为整型变量,则语句for (i=2;i==0;) a=3;中循环体的执行次数为()A.无限次B.0次C.1次D.2次

5.设有下列程序段:

x=1;

do {

x=x*x;

} while (!x)

则该循环是()

A.死循环B.循环执行一次C.循环执行二次D.语句错误6.设有程序段:

int k=10;

while (k==0)

k--;

则下列描述中正确的是()

A.while循环执行10次B.while循环执行无限次

C.while循环执行0次D.while循环执行1次

7.程序段:

x=y=0;

while (x<15)

y++,x+=++y;

执行后x值是()

A.7 B.12C.8 D.20 8.与语句while (!E)中表达式!E等价的是()

A.E==0 B.E!=1 C. E!=0 D.E==1 9.以下不是死循环的语句是()

A.for (y=0,x=1;x>++y; x=i++) i=x;

B.for(;;x++=i);

C.for (i=10;;i--) a+=i;

D.while (1) { a++;};

10.程序段i=11;

do

{i++;

}while (i<=10);

执行后i的值为()

A.11 B.12 C. 10 D.不确定11.执行语句for (i=1;i++<3;);后变量i的值的是()

A.3 B.4 C. 5 D.不确定

12.for (x=0,y=0;(y=123)&&(x<4);x++);的循环执行次数为()

A.无限次B.次数不定 C. 执行3次D.执行4次

13.程序段

x=2;

do {printf(“*”);x--;} while (!x==0)

的运行结果为()

A.* B.** C. ***D.****

14.执行语句for (i=4;i-->0;);后变量i的值的是()

A.0 B.1 C. 2 D.不确定

二、填空题

1.若for循环语句用以下形式表示:

for (表达式1;表达式2;表达式3) 循环体语句

则执行语句:for (i=0;i<4;i++) printf(“*”);时,表达式1执行次,表达式3执行了次。

三、阅读下列程序,在下划线上写出输出结果

1.设有程序段

k=1;n=263;

do

{ k*=n % 10;

n/=10;}

while (n);

其运行结束后k的值为,循环结束后n的值是。

2.写出以下程序的运行结果。

#include <>

main( )

{

int y=10;

do {

y--;

} while (--y);

printf(“%d, ”,y--);

}

3.阅读下列程序,在下划线上写出输出结果。

#include <>

main( )

{

int y= -10;

do {

y++;

} while (++y);

printf(“%d, ”,y++); /*输出结果:*/ }

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

#include <>

void main( )

{

int i;

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

switch(i %5)

{

case 0: printf(“*”);break;

case 1: printf(“#”);break;

default: printf(“,”);

case 2: printf(“&”);

}

}

四、程序填空

1.下列程序的功能是采用“顺序查找法”查找数组中是否存在元素x。请为程序填空。#include<>

void main( )

{

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

int i, x;

scanf (“%d”, );

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

{

if (x==a[i])

{

printf(“Found! The Index is: %d\n”,--i);

;

}

}

if ()

printf(“not found!”;

}

第6章数组

一、选择题

1.在C语言中引用数组元素时,其数组下标的数据类型可以是()。

A.整型常量B.整型表达式

C.整型常量或整型表达式D.任何类型的表达式

2. 以下能对一维数组a进行正确初始化的语句是()。

A.int a[10]=(0,0) B.int a[10]={ }; C.int a[ ]={0}; D.int a[10]={10*1};

3.若有说明:int a[10];则对a数组元素的正确引用是()

A.a[10] B.A[] C. a(5)D.A[10-10]

4.若有说明:int a[3][4];则对a数组元素的正确引用是()

A.a[2][4] B.A[2,4] C. a[1+1][0] D.A(2)(1)5.若有以下说明:int a[ ][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是()A.4 B.3 C. 2 D.不确定

6.二维数组x有m列,若元素x[0][0]是第一个元素,则x[i][j]在数组中的位置是()A.i*m+jB.j*m+i C. i*m+j-1 D.i*m+j+1

7.下面能正确进行字符串赋值操作的是()

A.char a[5]={“ABCDE”};B.char a[5]={’A’, ’B’, ’C’, ’D’, ’E’};

C.char *a;a= {“ABCDE”};D.char *a;scanf(“%s”,a);

8.若有定义:int a[5];则数组a中首元素的地址可以表示为()

A.& a B.a+1 C. a D.&a[1]

9.若已定义char s[10];则在下列表达式中不表示s[1]的地址的是()A.s+1 B.s++ C.&s[0]+1 D.&s[1]

10. 设有数组定义:char array[ ]=”China”; 则数组所占的空间是:()

A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节

11. 下面各行语句中正确的是()。

A. char s[5]=”ABCDE”;

B. char s[6]; s=”ABCDE”;

C. char *s=”ABCDE”

D. char *s; scanf(“%s”,s)

12.以下正确的定义语句是()

A.int a[1][4]={1,2,3,4,5};B.float x[3][ ]={{1},{2},{3}};

C.long b[2][3]= {{1},{1,2},{1,2,3}};D.double y[ ][3]={0};13.若有以下说明:int a[3][4]={0};则下列正确的叙述是()A.只有元素a[0][0]可得到初值0

B.此说明语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0

D.数组a中各元素都可得到初值0

14.两个数组a和b进行如下初始化

char a[ ]=”abcdef”;

char b[ ]={’a’,’b’,’c’,’d’,’e’,’f’}

15. 则下列叙述正确的是()

A.a和b数组完全相同B.a和b长度相同

C. a和b中都存放字符串D.a数组比b数组长度长16.以下不能对二维数组a进行正确初始化的语句是()A.int a[2][3]={0};B.int a[ ][3]={{1,2},{0}};

C.int a[2][3]={{1,2},{3,4},{5,6}};D.int a[][3]={1,2,3,4,5,6};17.下述对C语言中字符数组的描述错误的是()

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

B.字符数组的字符串可以整体输入和输出

C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D.不可以用关系运算符对字符数组中的字符串进行比较18.以下能对二维数组a进行正确初始化的语句是()

A.int a[2][ ]={{1,0,1}, {5,2,3}};B.int a[ ][3]={{1,2,3},{4,5,6}};

C.int a[2][4]={{1,2,3}, {3,4},{6}};D.int a[ ][3]={{1,2,3},{4,5}};

19.对数组说明语句:int a[10]={1,2,3,4,5};的正确理解是()

A.将5个初值依次赋给a[1]到a[5]元素

B.将5个初值依次赋给a[6]到a[10]元素

C.将5个初值依次赋给a[0]到a[4]元素

D.该语句出错

20.对数组说明语句:int a[10]={1,2,3,4,5};的正确理解是()

A.将5个初值依次赋给a[1]到a[5]元素

B.将5个初值依次赋给a[6]到a[10]元素

C.将5个初值依次赋给a[0]到a[4]元素

D.该语句出错

21.若有定义:int a[5];则数组a中首元素的地址可以表示为()

A.& a B.a+1 C. a D.&a[1]

二、填空题

1.若有如下定义:int a[3][5],则a数组中行下标的下限是,列下标的的上限是。

2.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。

3.在C语言中,数组名是一个不可改变的,不能对它进行赋值运算。数组在内存中占用一段连续的存储空间,它的首地址由表示。

三、阅读下列程序,在下划线上写出输出结果

1. 阅读下列程序,在下划线上写出输出结果。

#include <>

void main( )

{

int i,j, row, col, m;

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

m=a[0][0];

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

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

if (a[i][j]

printf(“m=%drow =%dcol =%d”,m,row,col);

/*输出结果:*/

}

2. 阅读下列程序,在下划线上写出输出结果。

#include<>

void main( )

{

int i,j, row, col, m;

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

m=a[0][0];

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

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

if (a[i][j]>m) {m=a[i][j];row=i;col=j;}

printf(“m=%drow =%dcol =%d”,m,row,col);

/*输出结果:*/

}

3、以下程序运行,输入hello world!,则输出结果的第一行是(19),第二行是(20)。

#include <>

void main()

{

完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5 用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理 上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。这些特殊功能寄存器颁 在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成 定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条 将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址 总线和8位数据总线,位。16位,数据总线为8P3.7分别作为外部存储器的写和读控制线。地址总线单片机堆栈的最大容量不能超过多少字8051、什么是堆栈?堆栈指针SP的作用是什么? 6 节?堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。修改SP值可以使堆栈设置在内部RAM的其它部分。在堆栈启 用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。8051单片机内部用作 数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开始设置直到7FH,共120个字节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以,8051 的堆栈区是比较小的,使用时要注意到这个限制。 8、8051内部RAM低128字节可分为几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少? 8051内部RAM的低128字节可以分为通用寄存器区、位寻址区、便签(工作或者堆栈RAM)1 中的个字节。设置PSW区和特殊功能寄存器区。通用寄存器区的地址从00H到1FH共3212816个字节RS1可以切换当前通用寄存器组。位寻址区地址从20H到2FH共位RSO和127. 0到位,占用地址8051单片机对外有几条专用控制线?其功能是什么?9、,高电位有效,当有条专用控制线。它们是复位信号线RST一般的说法是8051单片机有4,低电平有效,当此复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA先使用片单片机全部使用外部指令存贮器,而当此控制线为高电平时,控制线为低电平时,1000H(地址为,在4KB范围之外,才使用指令存贮器FFFFH内的4KB指令存贮器(0000H-)和外部地址锁存器允PSEN-FFFFH)。另有两条输出控制:外部程序存贮器的读选通信号。前者是低电平有效,在读外部程 序存贮器时使用。后者是高电平有效,在锁存ALE许信号P0口输出的低8位地址时使用。端必须怎样处理?为什么?10、8031的/EA为有效时,/EA访问内部ROM,当端是访问外部程序

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

c语言程序设计第五版习题答案()

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

C语言程序设计课后答案罗朝盛

第1章习题参考答案 1. (略) 2 3填空题 (1)main (2)函数的首部、函数体 (3){、} (4)main、main (5)语句、分号(;) 4 5选择题 (1) #include <> main() { int a, b, s; float t; printf("Enter A,B=?\n"); scanf("%d%d", &a, &b); s=a+b; t=a*b; printf("s=%d, t=%f\n", s, t); } (2) #include <> main() { printf("=================\n"); printf(" Hello! \n"); printf(" How do you do \n"); printf("=================\n"); } (3) #include <> main() {

int r, h; float v; printf("Enter R, H=?\n"); scanf("%d%d", &r, &h); v=*r*r*h; printf("v=%f\n",v); } 第2章 习题参考答案 一.(略) 二.填空题 (1) ab e d c b b a 2+ + + (2) (3) 16 (4) 10 (5) 16、16、11 (6) 4、10、6 (7) 18、3、3 (8) sin(65*180)+2*( +exp(y))/(x-y) (9) 25、25 (10) 27 (11) 4 (12) 0 四、编程题 1. #include <> main() { int x, a, b, c; printf("Enter a intger number x=?\n"); scanf("%d",&x); a=x /100; b=x%100/10; c=x%10;

标准C语言程序设计第五版课后练习题答案

课后练习题答案 Chapter 1 1.1×√×√√×√××√ 1.2b c 1.3ad 1.4semicolon printf math、h \n Chapter 2 2、1 ×√××√√×√××√× 2、2 typedef 255 external const Chapter 3 3、1 ×√××√√×××√√√ 3、2 integer modula 6 logical sizeof paratheses typeconversion precedence 3、3 F F T F F F 3、4 F T T T F 3、5 (b) (c) 3、6 0 -2 7 10、25 false 3 3 1 3、10 0 1 1 1 1 3、11 d } 100 3、12 110 111 3、13 1 3、14 200 3、15 x<=y 3、16 TRUE 3、19 2 1 4 3、20 -40 40 Chapter 4 4、1 ×√√√√√××√√√× 4、2 %hd %x ctype、h %l %*d [^] blank 6 - %e 4、4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c); (c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);

4、5 (a)10x1、230000 (b)1234x 1、23 (c)1234 456、000000 (d) “123、40 ” (e) 1020 1222(乱码) 4、7 (a)1988 x (b)乱码 (c)120 乱码 (d)乱码 x 4、8 (a)1275 -23 5、740000 (b) 1275 -235、740000 (c) 0 0、000000 (d) 1275xxxx-235、74 (e)Cambridge (f)1275 Cambridge 4、10 1988 无无 Chapter 5 5、1 √×√××××××√ 5、2 && switch break if-else x=y 5、4 (a)x = 2; y = 0; (b) x = 1; y = 0; 5、5 (a) if (grade <= 59) if (grade >= 50) second = second + 1; (b) if (number > 100) printf(“out of range”); else if (number < 0) printf(“out of range”); else sum = sum + number; (c) if (T > 200) printf(“admitted”); else if (M > 60) {if (M > 60) printf(“admitted”);} else printf(“not admitted”); 5、6 F T F T 5、8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0) (c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5) 5、9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1 (c) x = 5; y = 0; z =0 (d) 无变化 5、10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0; 5、12 8 5、13 Delhi Bangalore END 5、14 2 4 4 8 5、15 0 0 2 5、16 25 5、17 Number is negative 5、18 ABC

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

《C语言程序设计》课后习题答案(第四版)

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

C语言程序设计第14章在线测试

A B C D 、以下程序:5) printf( A B C D 、y均为则语句 printf( A B C D 、在函数中定义变量时,若省略存储类型符,系统默认存储类别为 A B C D 、下列选项中关于。 A r egister B 量 C r egister D register

B、p+=2,*++p C、p+=2,*p++ D、p+=2,++*p 2、以下叙述中,错误的叙述是: A、函数的形参都属于全局变量 B、全局变量的作用域不比局部变量的作用域范围大 C、静态(static)类别变量的生存期贯穿整个程序的运行期间 D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值 3、下列选项中关于外部变量的作用域,正确的是( )。 A、外部变量的作用域是所在的源文件 B、外部变量的作用域是整个源程序 C、可以通过extern,将一些外部变量的作用域扩展到多个源文件 D、外部变量若定义为静态的,其他源文件不能使用该外部变量 4、下列选项中关于外部变量,正确的是( )。 A、main函数是主函数,不在main函数内部定义的变量都是外部变量 B、外部变量必须定义在源程序的开始处 C、外部变量必须定义在所有函数的外面 D、定义外部变量时,可以进行初始化 5、下列选项中关于变量的生存期,不正确的描述是( )。 A、auto型变量是静态存储的,其生存期等同于程序的运行期。 B、static变量是动态存储的,函数调用结束时,static变量所占用的内存单 元被释放 C、register变量都是动态存储的 D、外部变量都是静态存储的 第三题、判断题(每题1分,5道题共5分)

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计1-4、12章习题解答

第1章C语言程序设计概述 1.1一个C程序的执行是从 A 。 A.从main()函数开始,直到main()函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D.main()函数开始,直到最后一个函数结束 1.2在C程序中,main()的位置 C 。 A.必须作为第一个函数B.必须作为最后一个函数 C.可以任意D.必须放在它所调用的函数之后 1.3C语言源程序的基本单位是 B 。 A.过程 B.函数 C.子程序 D.标识符 1.4一个C源程序有且仅有一个一个函数和__零个或多个_____个其他函数。 1.5C语言源程序的语句分隔符是__分号___。 1.6C语言开发的四个步骤是_编辑源程序→对源程序进行编译→与库函数连接→运行 目标程序__ 。 1.7C语言有哪些主要特点? C主要特点有: 1.C语言简洁、紧凑,使用方便、灵活; 2.运算符丰富; 3.数据类型丰富; 4.C语言是结构化语言; 5.语法限制不太严格,程序设计自由度大; 6.可直接与机器硬件打交道,直接访问内存地址; 7.生成的目标代码质量高,程序执行效率高; 8.C语言适用范围广,可移植性好。 1.8简述C编译和运行的基本方法。 略。 1.9常用的集成开发工具有哪些?各有什么特点? 略。 1.10编写一个程序,在屏幕上输出以下内容: *************************** * You are welcome! * *************************** #include void main( ) /*主函数 */ { /*函数体开始*/ printf ("***************************\n"); /*输出语句*/ printf ("* You are welcome! *\n"); printf ("***************************\n"); } 1.11 编写一个C程序,输入a、b、c 3个值,输出其中最大者。

c语言程序设计(科学出版社)课后习题解答

第3章习题解答 第1章 1.C 语言程序主要由预处理命令、函数、注释等组成。 2.填空 (1)分号 (2)main (3)stdio.h 3. 源程序: #include main( ) { printf(“*************************\n”); printf(“Hello World!\n”); printf(“*************************”); } 4. 源程序: #include main( ) { int a, b, c; /* 定义变量*/ scanf(“%d”, &a); /* 输入第一个整数*/ scanf(“%d”, &b); /* 输入第二个整数*/ c=a-b; /* 计算差*/ printf(“%d-%d=%d”,a,b,c); /* 输出结果*/ } 5. (1) (2)x=10; (3)printf(“s=%d\n”,s); 第2章 1. (1) c (2) a (3) b g (4) a d e (5) d 2. a. 5 b. 295 c. 4 d. 29 e. 9 3. a.x=4,y=6

b. x=4,y=3 f.x=3,y=6 4. 16 5. #include main() { int a,b,c; scanf("%d%d",&a,&b); c=a*b; printf("%d*%d=%d",a,b,c); } 第3章 1. (1) b (2) b (3) d (4) a (5) b 2. (1)&a,&b (2)l,s 3. printf(“x=%.2f,y=%.2f\n”,x,y); 4. #include main() { int num1,num2,num3,sum; float average; scanf("%d%d%d",&num1,&num2,&num3); sum=num1+num2+num3; average=sum/3.0; printf("sum=%d,average=%.2f\n",sum,average); } 5. #include main() { int hour,minute,second,total; /* 定义变量代表时、分、秒和总秒数*/ scanf("%d",&total); hour=total/3600; minute=total%3600/60; second=total%3600%60;

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

C语言程序设计(第2-3章)习题答案(魏为民)

习题2参考答案 一、基础题 1.若二维数组a有m列,则在a[i][j]前的元素个数为: A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 B 2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是: A) char=y&&ch<'B'&&!y)的值是:

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

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