C语言 下载本文

6. 定义如下变量和数组: int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( )。 for(i=0;i<3;i++) printf(\ \

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9 答案为C

7. 下述程序的输出结果是( )。 #include \void main()

{

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

for(i=0;i<=3;i++) rt*=x[i];;

printf(\

}

A) 120 B) 720 C) 24 D) 6 答案为A

8. 调用strlen(\的结果为( )。

(A) 4 (B) 5 (C) 8 (D) 10 答案为A

9. 在C语言中引用数组元素时,数组下标允许是( ) A)只能是整型变量 B)只能是整型表达式 C)整型常量或整型表达式 D)任何类型的表达式

答案为C

10. 已知:int a[3][4], p = a; p += 6; 那么与*p的值相同的是( )。 A)*(a+6) B)*(&a[0]+6) C)*(a[1]+2) D)*(&a[0][0]+6) 答案为D

11. 若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=''a'',d,g;

则数值为4的表达式是( )

A)a[g-c] B)a[4] C)a[''d''-''c''] D)a[''d''-c] 答案为D

12. 在C语言中,下面关于数组的描述的是( )。 (A)数组的大小是固定的,但可以有不同类型的数组元素 (B)数组的大小是可变的,但所有数组元素的类型必须相同 (C)数组的大小是固定的,所有数组元素的类型必须相同 (D)数组的大小是可变的,可以有不同的类型的数组元素 答案为C

单选题共12道 0道 错误12道 率0% 三、多选题

1. 在下列有关C语言数组的描述中,的是( )。

(A)数组是按\行优先\的原则存取的 (B)数组下标的下界均默认为0

(C)数组名本身是一个常量 (D)在C语言里不能一次引用整个数组。 (E)数组名是一个指针 答案为ABCDE

2. 在C语言中,如下说法是的( )。 (A)数组在系统内存中按其下标的顺序连续存储元素值。

(B)对于没有初始化的静态整型数组,编译系统会为其元素自动设置初值。 (C)如果有char str[]=”abc”;则sizeof(str)的值为5,strlen(str)的值为4。 (D)如果有char str[]=”abc”,*ptr; 则语句ptr=str和ptr=str++都是合法的。 (E)可把二维数组看作是特殊的一维数组,它的每个元素又是一个一维数组。 答案为ABE

3. 下列说法的是( )

A)若某自定义函数中无return语句,则该函数一定没有返回值。

B)C语言的编译系统对宏命令的处理是在对源程序中其他成份正式编译之前进行的。 C)在C语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。 D)如果strcmp (s1,s2)的返回值为负数,则表明字符串s1一定小于字符串s2。 E)一个C程序可由多个源文件组成。 答案为BDE

4. strcpy库函数用于复制一个字符串。若有以下定义:

char *str1=”copy”,str2[10],*str3=”hijklmn”,*str4,*str5=”abcd”; 则对strcpy库函数的调用是( )。

(A) strcpy(str2,str1) (B) strcpy(str3,str1) (C) strcpy(str4,str1) (D) strcpy(str5,str1) (E) strcpy(str1, str5) 答案为ABCDE

5. 在下列定义中,的是( ).

(A) int a[10]={12,23}; (B) char *b[10]; (C) char s[20]=”china”; (D) int n=9,aa[n]; (E) int qq[3][]={1,2,34,45,676,7,69,9}; 答案为ABC

8章 函数

一、判断题

1. 在函数定义中,形参变量有时也可以是全局变量。( )答案为× 2. 在C程序中,函数调用可以作为函数的形参。( )答案为× 3. 在C程序中,函数调用可以作为函数的实参。( )答案为√

4. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是指针类型。答案为×

5. 对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。( )答案为√ 6. C语言程序必须包含库函数。( )答案为×

7. 如果被定义函数的返回值是整型,可以不必进行说明。( )答案为√ 8. 一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量。( )答案为√ 9. return语句可以带有表达式也可以不带。( )答案为√

10. 若某自定义函数中无return语句,则该函数一定没有返回值。答案为× 11. 在C语言中,变量的初始化都是在编译阶段完成的。答案为×

12. 在同一源文件中,全局变量与局部变量同名,在局部变量作用范围内,全局变量的值等于局部变量的值。答案为×

13. return语句作为函数的出口,在某一个函数体内必须唯一。( )答案为× 14. C语言程序必须包含库函数。( )答案为×

15. C语言中,任意两个函数间不能嵌套定义,但可以互相调用。( )答案为× 16. 在函数的定义中,若函数没有参数,则可以省略函数名后的括号。答案为× 17. 函数返回值的数据类型取决于return语句中表达式的数据类型。答案为× 18. 函数返回值的数据类型取决于主调函数传递过来的实参的数据类型。答案为× 19. 函数返回值的数据类型取决于函数定义时为函数指定的数据类型。答案为√ 20. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。答案为√

21. C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是整个数组。答案为×

22. C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首元素值。答案为×

23. C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首地址值。答案为√

24. 求n!既可以用递归的方式,也可以用递推的方式。 ( )答案为√

25. 递归函数在实现过程中,要使用“堆栈”这种数据结构来保存递归调用过程中的值。答案为√

26. 在C语言中,所有函数之间都可以相互调用。答案为×

27. 一个C程序无论有多少个源程序文件组成,在其中一个源程序文件中定义的全局变量的作用域默认为整个C程序。答案为×

28. 一个C程序无论有多少个源程序文件组成,在其中一个源程序文件中定义的全局变量的作用域默认为其所在的源程序文件。答案为√

29. 在C程序的主函数main中定义的变量就是全局变量。答案为× 30. 在C程序的主函数main中定义的变量也是局部变量。答案为√ 31. 在函数定义中,形参变量是局部变量。答案为√

32. 在函数定义中,形参变量可以是静态变量。答案为× 33. 在一个函数定义中,只能有一个return语句。答案为×

34. 在一个函数定义中,可以根据需要使用多个return语句。答案为√ 35. 在C程序中,函数可以嵌套定义,也可以嵌套调用。答案为× 36. 在C程序中,函数不能嵌套定义,但可以嵌套调用。答案为√ 37. 在C程序中,函数既不能嵌套定义,也不能嵌套调用。答案为× 38. 在C程序中,函数调用只能作为单独语句出现。答案为× 39. 在C程序中,函数调用不能作为单独语句出现。答案为× 40. 在C程序中,函数调用只能出现在表达式语句中。答案为×

41. 在C程序中,函数调用不能出现在表达式语句中。答案为×

42. 在C程序中,函数调用既可以出现在表达式语句中,也可以作为单独的语句出现。答案为√

43. 在C函数中,形参可以是变量、常量或表达式。答案为×

44. 在C程序中,实参可以是变量、常量或表达式。答案为√

45. C语言规定,函数调用时,若形参和实参都是简单变量,则它们之间的数据传递方式是双向值传递。答案为×

46. C语言规定,函数调用时,若形参和实参都是简单变量,则它们之间的数据传递方式是单向值传递。答案为√ 二、单选题

1. C语言中,以下叙述中错0的是( )。

A) 主函数中定义的变量是全局变量 B) 同一程序中,全局变量和局部变量可以同名 C) 全局变量的作用域从定义处开始到本源程序文件结束 D) 局部变量的作用域被限定在其所定义的局部范围中 答案为A

2. C语言中,以下叙述的是( )。

A) 函数不能嵌套定义但可以嵌套调用 B) 函数可以嵌套定义也可以嵌套调用 C) 函数可以嵌套定义但不能嵌套调用 D) 函数不能嵌套定义也不能嵌套调用 答案为A

3. C语言中,函数调用时若实参是数组名,则被调函数对应形参( )。 A) 可以是相应类型简单变量 B) 必须是相应类型数组名 C) 可以是相应类型数组名 D) 必须是相应类型的指针变量 答案为C

4. C语言中,函数调用时若实参是数组名,则被调函数对应形参( )。 A) 可以是相应类型简单变量 B) 必须是相应类型的指针变量 C) 必须是相应类型数组名 D) 可以是相应类型的指针变量 答案为D

5. 在下面C语言的函数说明语句中,的是( )。

A) int fun(int , int); B) int fun(int x,y); C) int fun(x,y); D)int fun(int x; int y); 答案为A

6. 在C程序中,如果限定一个局部变量只能在所定义的范围中起作用,那么这个变量的存储类型( )。

A) 只能是auto B) 只能是extern C) 可以是auto或static D) 可以是extern或static 答案为C

7. 在C语言中,若定义函数时未说明函数的类型,则该函数的数据类型为( )。 A) int B) float C) char D) double 答案为A

8. 在C语言中,函数默认的存储类型为( )。 A) auto B) register C) static D) extern 答案为D

9. C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )。

(A)地址传递 (B)单向值传递 (C)有实参传给形参,再由形参传回给实参 (D)由用户指定传递方式

答案为B

10. 已知函数的调用形式: fread ( buffer , size , count , fp ) ; 其中buffer代表的是( )。

(A)一个整型变量,代表要读入的数据项总数 (B)一个文件指针,指向要读的文件

(C)一个指针,指向要读入数据的存放地址 (D)一个存储区, 存放要读的数据项 答案为C

11. 如果在C程序中有main(int argc,char *argv[]),那么( )是指命令行中的参数个数。