2024年4月27日发(作者:)

期末总复习(基础知识+程序设计部分)

一. 填空

1.已知char ch='A’; 则下列表达式的值是: a

Ch=(ch>=’A’ && ch〈=’Z’)? (ch+32):ch;

2。 若x=1,y=2,z=3, 则表达式z+=++x+y++之值是 7

3. 若x=2,y=3,则x%=y+3之值为 2

4.. 若有定义int y=3; float z=5.2, x=4.8; 则表达式y+=(int)x+x+z的值为 17

5。 设x,y,z为int型变量,且x=3,y=—4,z=5,请写出下列各表达式的值

1)(x&&y)==(x||z) 1

2) !(x>y)+(y!=z)||(x+y)&&(y-z) 0

3)x++-y+(++z) 13

6。 设x,y,z为int型变量,请用C语言表达式描述下列命题

1)x和y中有一个小于z (x〈z&&y>z||x>z&&y〈z )==1

2) x,y和z中有两个为负数 (x〈0&&y<0&&z>=0||z<0&&y<0&&x〉=0||y<0

&&x〈0&&z>=0)==1

3)y是奇数y%2 !=0

7。 下面for循环语句最多可执行 4 次

For (x=0,y=0 ;(y !=99)&&(x<4) ;x++)

8。 设i,j,k均为int型变量,则执行以下for语句后,k的值是 10

for (i=0,j=10 ;i〈=j ;i++,j——)

k=i+j ;

9.若已知x,y,z,m,n均为int 型变量,则执行下面语句后,x的值为 7 y的

值为 9 z的值为 7

m=10 ; n=5;

x=(-—m==n++)? —-m : ++n;

y=m++;

z=n;

10。 若有说明语句: w=1,x=2,y=3,z=4; 则表达式w〉x? w:z〉y? z:x值是 4

11。 若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符 void

12. 凡在函数中未指定存储类型的变量,其隐含的存储类别为 动态存储

13。 在C语言中,一个函数直接或间接地调用自身,编构成函数的 递归

14。 如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将

该文件的存储类型定义成 型,在调用函数的文件中将该函数

说明为 型.

15. 对于所定义的二维数组a[2][3],元素a[1][2]是数组的第 6 个元素.N*j+m+1

16.若有定义:char *str="I am a student.”; 则字符串在存储单元中占 16 个字

节。

17. 在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是 0 。

18. 调用strlen(“abc0ef0g”)的返回值是 3 .0为停止符

19. 设有定义:char s[12]=“string"; 则printf(“%dn”,strlen(s));的输出值是 6

20. 执行下列程序段后,*p等于 3

int a[5]={1,3,5,7,9}; *p=a;p++;

二. 判断(true or false)

1. 调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。

T

2. 函数可以嵌套定义F

3. 函数必须有返回值,否则不能正确作用F

4. C程序中有调用关系的所有函数必须放在同一源程序文件中。F

5. 全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F

6. 函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F

7. 当函数定义放在main()函数前面时,可以缺省函数声明。T

8. C语言中允许函数嵌套调用T

9. 局部静态变量是在编译时赋初值的,即只赋一次初值。T

10. 外部变量必须定义在文件的开头部分F

11. 字符’0’是字符串的结束标记,其ASCII码为0。T

12. 若有说明 :int a[3][4]={0};则数组a中每个元素的初值都为0。T

13. 若有说明 :int a[2][4]={0,0};则只有a[0][0]和a[0][1]的初值为0, 其余元素的

初值均不为0. F

14. 若有说明 :int a[3][4];则数组a中各元素可在程序的编译阶段达到初值0。F

15. 若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。F

16. 在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。F

17. 当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。T

18. 在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。F

19. &b指的是变量b的地址处所存放的值;F

20. 指针变量可用于保存同类型变量的地址值;F

21. 存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;F

22. 指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。F

23. 如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变

量,数组名或简单变量的地址T

24. char *name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符

数据的指针型数据。F

25. 语句y=*p++;和y=(*p)++;是等价的。F

26. 函数指针指向的是函数的入口地址。T

27. int *p;定义了一个指针变量,其值是整型的。F

28. 用指针作为函数参数时,采用的是“地址传送”方式。T

三、 选择题

1.下列变量名中哪些是合法的?

 2a a# C$ t3 _var  int

2.语言中用________表示逻辑值“真”。

A) true B) 整型值0 C) 非零整数值 D) T

3。下列合法的字符常量为________。

A) "a" B) 'n' C) ’china’ D) a