admin 管理员组

文章数量: 887021


2023年12月16日发(作者:begin的中文是什么)

C语言-基本选择题及参考答案

计算机程序设计基础( C语言)

单项选择练习题

一、基本概念

1. C 语言程序是由

C

构成的。

A) 一些可执行语言 B)main 函数 C) 函数 D) 包含文件中的第一个函数

2.( A

)是构成 C 语言程序的基本单位。

A、函数

B

、过程

C

C

、子程序

开始执行。

D

、子例程

3. C 语言程序从

A)

程序中第一条可执行语句

B)

程序中第一个函数

C) 程序中的 main 函数

函数

D)

包含文件中的第一个

4. C 语言程序从 main() 函数开始执行,所以这个函数要写在

_D___。

A) 程序文件的开始

B)

D)

)。

程序文件的最后

程序文件的任何位置

C) 它所调用的函数的前面

5、以下说法中正确的是(

C

A 、 C 语言程序总是从第一个定义的函数开始执行

B 、在 C 语言程序中,要调用的函数必须在main( ) 函数中定义

C 、 C 语言程序总是从 main( ) 函数开始执行

D 、 C 语言程序中的 main( ) 函数必须放在程序的开始部分

6. 下列方法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体。

B. 主函数可以调用任何非主函数的其它函数。

C. 任何非主函数可以调用其它任何非主函数。

D. 程序可以从任何非主函数开始执行。

7. 下列说法错误的是: ( B )

1/26

1 / 29

C语言-基本选择题及参考答案

A. C 程序运行步骤是编辑、编译、连接、执行。

B. C 语言的变量名必须用小写,常量用大写。

C. C 语言的三种基本结构是顺序、选择、循环。 D. C 程序一定由函数构成的。

8. 下列关于 C 语言的说法错误的是(

B

A) C 程序的工作过程是编辑、编译、连接、运行

B) C 语言不区分大小写。

C) C 程序的三种基本结构是顺序、选择、循环

D) C 程序从 main 函数开始执行

9.

系统默认的

C 语言源程序扩展名为

.C, 需经过

C

之后 , 生

成.exe 文件 , 才能运行 ?

A)

编辑 ?编译

B )

编辑 ?连接

C)

编译 ?连接

D)

辑 ?改错

10. 下列说法中正确的是( B )。

A. 由于 C 源程序是高级语言程序,因此一定要在

TC 软件中输入。

B. 由于 C 源程序是由字符流组成的,因此可以作为文本文件在任何

文本编辑的软件中输入。

C. 由于 C 程序是高级语言程序,因此输入后即可执行。

D. 由于 C 程序是高级语言程序,因此它是由命令组成的。

二、数据类型、运算符与表达式

1. 不是 C 语言提供的合法关键字是( B )。

t

2.C 语言提供的合法关键字是(

D

)。

B

2/26

case

t

3. 下列不属于 C 语言中关键字的是

2 / 29

C语言-基本选择题及参考答案

A)long B)print C)default D)typedef

4. 下列正确的标识符是( C )。

A.-a1

B.a[i]

C.a2_i

t

5. 下列 C 语言用户标识符中合法的是 ( B ) 。

A

、 *y

B

、sum

C

、 int

D

、%5f

6. 下面四个选项中,合法的标识符是: ( D )

A. auto B. define C. 6a

D. c

7.下列 C 语言用户标识符中合法的是(

B

)。

A)3ax B)x C)case D)-e2

E)union

8.

以下选项中合法的用户标识符是

B

A) long

B) _2Test

C) 3Dmax

D)

9.下列四组选项中,正确的

C 语言标识符是( C

)。

A) %x

B

) a+b

C

) a123

D

10. 请选出可用作 C 语言用户标识符的一组标识符 ( B )

A) void

B) a3_b3

C) For

define

_123

DO

WORD

sum

sizeof

11、下列四组字符串中都可以用作

C 语言程序中的标识符的是(

A

、 print _3d

db8 aBc B

、 Iam one_half start$it

3pai

C

、 str_1

Cpp pow while

D、 Pxq My->book

12. 下列 C 语言标识符中合法的变量名是

B

A)2e3

B)you

C)*y

D)float

13.C 语言中的简单数据类型包括(

D

)。

3/26

3 / 29

)123

D) 2a

-abc

Case

A )。line#

C语言-基本选择题及参考答案

A

、整型、实型、逻辑型

B

D

、整型、实型、逻辑型、字符型

、整型、实型、字符型

A )。

C 、整型、字符型、逻辑型

14、下列可以正确表示字符型常量的是(

A

、’ t ’

B

、” a”

C

、” n ”

D

、 297

15. 下列表达式中,D 是正确的 C 语言字符常量。

A)”x” B)e3 C) ”COMPUTER” D) ’ #’

16. 在下列表达式中,属于字符型常量的是

B

A) A

B) 'a'

C) "A"

D) b

17. 以下选项中合法的字符常量是 ( B )

A)

“B”

B)

‘ n ’

C)

D )

‘68’

D) E

18.下面字符常量表示错误的是(

A)

’a’ B)

’ ?’

C)

’ n ’ D) ”n ”

( C )

19.

已定义 c 为字符型变量,则下列语句中正确的是

A)c='97'

B

)c="97"

C

) c=‘a’

D

)c="a"

(

A

)

20.

已知 ch 是字符型变量,不正确的赋值语句是

A) ch='a+b' ;

B) ch=' 0 ' ;

C) ch=' 7' ;

D) ch= ’;’;

( D ) 21.C语言中字符型 (char)

数据在内存中的存储的是

A) 原码 B) 补码 C) 反码 D) ASCII 码

22.在 C 语言中,字符型数据所占的内存空间是

( C )

D)

由用户自定义

A)2

个字节

B) 4

字节

C) 1

字节

*23 .若 int

类型数据占

2 个字节 , 则 unsigned int

围是(

类型数据的取值范

B )

~ 65535

C)-32768

D )

~ 32767

D)-256

~ 255

A)0

255

B)0

*24. 若有以下类型说明语句: char a; int b; float

表达式 a*b+d-c 的结果类型为 (

c; double d;

A)float B) char C) int

D)double

4/26

4 / 29

C语言-基本选择题及参考答案

*25. 若有以下类型说明语句:

char w;int x;float y;double z;则表达式

的结果为 (

C ) w-x*y/z

的结果为 (

D )

类型 , 表达式 (int)(x+y-z*w)

类型。

A)float B)char C)int

D)double

26 .C 语言中运算对象必须是整型的运算符是

(

A )

A)%=

B)/

C)=

D)

〈 =

27. 在 C 语言程序中,表达式 8/5 的结果是 ( B )

A)1.6

B)1

C)3

D)0

B

28. 设 x 为 int

型变量 , 则执行以下语句后

,x 的值为

x=10; x+=x;

A) 10 B) 20 C) 40

D) 30

29. 在 C 语言程序中,表达式 5%2的结果是 C 。

A)2.5

B)2

C)1

D)3

30.如果 int a=3,b=4

A)3

;则条件表达式

"a

的值是 __A__。

C)0

D)1 B)4

31.若 int x=2,y=3,z=4

则表达式 x

B ).

A)4 B)3 C)2 D)0 E)1

32. C 语言中,关系表达式和逻辑表达式的值是(

B

A)0

B)0

或 1

C)1

D)

‘T’或’F’

33.设 a,b 和 c 都是 int

值为 0 的表达式是(

型变量,且

a=3,b=4,c=5,

则下面表达式中,

D

B

D

a<=b

A、’ a’&&’b’

C、a||b+c&&b-c

、 !((a

34. 下面 ( D ) 表达式的值为 4.

A) 11/3

B) 11.0/3

D) (int)(11.0/3+0.5)

5/26

C) (float)11/3

5 / 29

C语言-基本选择题及参考答案

*35. 已知 int x=5,y=5,z=5

;执行语句

x%=y+z;后, x 的值是 ( C )

D.6 A.0 B.1

C.5

36. 已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型, 则执行语

句 c2='A'+'6'-'3';

后, c2 中的值为

(

‘D’

C)

错误

A

B )

D)

‘ d’

A) 68

B)

37.下列关于 C 语言的叙述错误的是(

A) 大写字母和小写字母的意义相同

B) 不同类型的变量可以在一个表达式中

C) 在赋值表达式中等号 (=) 左边的变量和右边的值可以是不同

类型

D) 同一个运算符号在不同的场合可以有不同的含义

38.

有: int w=11,x=12,y=3,m;

执行下面语句后

m的结果是 (

C )

m=(w

m=(m

A. 1 B. 2 C. 3 D.

以上结果都不对

39.

有: int w=7, x=12, y=3, m;

执行下面语句后

m的值是 (

A )

m=(w>x)?w:x;

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

A.12

B.0 C.3 D.1

b 的值不为 0.5 40. 设整型变量 a=2 ,则执行下列语句后,浮点型变量

的是(

B

B.b=(float)(1/a)

D.b=1/(a*1.0)

B

A.b=1.0/a

C.b=1/(float)a

41.

以下运算符中优先级最高的运算符是(

A)&& B)++ C)+=

D)!=

42. 若“ int n; float f=13.8; ” , 则执行“ n=(int)f%3 ”后, n 的值是(A)

6/26

6 / 29

C语言-基本选择题及参考答案

A.1

B.4

43.

设 x 为 int 型变量 , 则执行以下语句后 ,x 的值为(

C )

x=10; x*=x;

A) 10 B) 20 C) 100 D) 0

44.

若有语句 int a=1,b; double y=2.3; b=(int)y;

则 b 的值为 ( B )

?

A) 3 B)2 C)1 D)2.3

45. 已知 int x;char y;则下面错误的 scanf 函数调用语句为 ( B )

A)scanf( “%d,%d”,&x,&y);

B)

scanf( “%d,%c”,x,y)

C)

scanf( “%d%d”,&x,&y)

D)

scanf( “%d,%c”,&x,&y)

46.在 C语言的库函数中 , 可以输出 char 型变量 x 值的语句是

C

A)getchar(x);

B)fputc(x)

C)putchar(x)

D)puts(x)

47. 以下说法正确的是( C )

A) 'x'+5 是一个错误的表达式

B) C 语言不允许类型的混合运算

C) 强制类型转换时,类型说明符必须加括号

D) (int ) x+y 和( int )( x+y )是完全等价的表达式

48. 设 int x=0, y=1;

表达式 (x||y) 的值是

C)2

D)-1

( B )

A)0

B)1

三、选择结构

1.

在 C语言中,认为 (

D )

为逻辑 " 真"

A) true

B

)大于 0的数

C

7/26

)非 0整数

D

)非 0的数

7 / 29

C语言-基本选择题及参考答案

2.

表示关系 x<=y<=z 的 c 语言表达式为

B) (x<=y)AND(y<=z)

D) (x<=y)&(y<=z)

A

A) (x<=y)&&(y<=z)

C) (x<=y<=z)

3. 能正确表示逻辑关系:

(

“ a≥ =10 或

a≤ 0”的 C 语言表达式是

D

)

A) a>=10 or a<=0 B) a>=0|a<=10

C) a>=10 &&a<=0 D) a>=10

‖ a<=0

D )。

4、判断 char 型变量 c1 是否为大写字母的表达式为(

A

、 ’ A’ <=c1<=’ Z’

B 、 (c1>= ’ A’ )

&

(c1<= ’ Z’ )

C 、(’ A’ <=c1)AND (‘ Z’ >=c1)

Z’

D

、 c1>= ’ A’ && c1<= ’

5. 为表示逻辑表达式 79

A)( X>79 )&&( X<90 )

B) ( X>79 )!=( X<90 )

C) 79

D) (X>79 )||( X<90 )

6.

设 有 语 句 “ int

a=2,b=3,c=-2,d=2;

” , 则 逻 辑 表 达 式

“a>0&&b&&c<0&&d>0”的值是( A )

A.1 B.0

C.-1 D.

出错

7.

设 a 为整型变量,则不能正确表达数学关系

达式是(

10< a< 15 的 C 语言表

A )。

A.10

C. a>10&&a<15

B.a==11||a==12||a==13||a==14

D.!(a<=10)&&!(a>=15)

8.

设 x,t 均为 int

型变量,则执行语句“

x=10;t=x&&x>10;

”后, t 的

值为( D

A. 不定值

B.10 C.1

D.0

9.

若 int i=10;

执行下列程序后,变量

i 的正确结果是(

A )。

switch ( i )

{ case 9: i+=1;

8 / 29

C语言-基本选择题及参考答案

8/26

9 / 29

C语言-基本选择题及参考答案

case 10: i+=1;

case 11: i+=1;

default :

i+=1; }

A

、13

B

、12

C

、11

D

、10

10. 在下面的条件语句中(其中 s1 和 s2 表示是 C 语言的语句),只有

一个在功能上与其它三个语句不等价,它是(

D

)。

A

、 if (a)

s1 ; else s2;

B

、 if (a= =0) s2; else

s1;

C、

if (a!=0) s1; else s2; D

、 if

(a= =0) s1; else

s2;

11. 假定所有变量均已正确定义,则下列程序段运行后

y 的值是( A

int a=0,y=10;

if(a=0) y--;

else if(a>0) y++;

else y+=y;

A.20

B.11

C.9

D.0

12. 假定所有变量均已正确定义, 则下列程序段运行后 x 的值是( B )。

a=b=c=0; x=35;

if(!a) x--;

else if(b);

if(c) x=3;

else x=4;

A.34

B.4

C.35

D.3

13. C 语言对嵌套 if 语句的规定是: else 语句总是与( D )配对。

A)

其之前最近的 if

B)

第一个 if

C) 缩进位置相同的 if

D)

其之前最近的且尚未配对的

if

9/26

10 / 29

C语言-基本选择题及参考答案

14. 在 C 语言语句中,用来决定分支流程的表达式是(

A

)。

A.可用任意表达式

B. 只能用逻辑表达式或关系表达

C.只能用逻辑表达式

D. 只能用关系表达式

)表示逻辑“真” 。

15.C 语言中用(

B

B.

A. true

整数值 1

C. 非零整数值

D. false

16、若 k 是 int

型变量,且有下面的程序段:

int k;

k= -3;

if (k<=0) printf(

“####”) ;

“&&&&”) ;

el se printf(

上面程序段的输出结果是(

A、####

A

B

D

、 &&&&

C、####&&&&

、有语法错误,无输出结果

17. main()

{ int x=0,a=0,b=0;

switch(x){

case 0:

b++;

case 1:

a++;

case 2: a++;b++;}

printf( “a=%d,b=%d n”,a,b);}

该程序的输出结果是

D

C) a=1,b=0

D)

A) a=2,b=1

B) a=1,b=1

a=2,b=2

18.

以下程序的输出结果是: (

C

10/26

11 / 29

C语言-基本选择题及参考答案

main()

{ int x=-10,y= 1,z=1;

if(x

if(y<0) z=0;

else z=z+1;

printf(“%dn” ,z);

}

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

19.

以下程序段的输出结果是(

B

int a=10,b=50,c=30

if(a>b)

a=b;

b=c;

c=a;

printf("a=%2d b=%2d c=%2dn",a,b,c)

A) a=10 b=50 c=10

B) a=10 b=30 c=10

C) a=50 b=30 c=10

D) a=50 b=30 c=50

四、循环结构

*1. 在 C 语言中,下列说法中正确的是(

D

)。

A) do-while 语句构成的循环不能用其它语句构成的循环来代替。

B) do-while语句构成的循环只能用 break 语句退出。

C) do-while语句构成的循环在 while 后的表达式非零时结束循环。

D) do-while 语句构成的循环 , 在 while 后的表达式为零时结束循

环。

2. break 语句不能出现在( D )语句中

11/26

12 / 29

C语言-基本选择题及参考答案

A. switch

C. while

D. if

语句的说法错误的是(

B )

else

*3 .对于 break 语句和 continue

A) break 语句不能用于循环语句和 switch 语句之外的任何其他语句

中。

B) break 和 continue 也可以用于 if 语句中

C) continue 语句只结束本次循环, 而不是终止整个循环的执行。

D) break 语句是结束整个循环过程, 不再判断执行循环的条件是否成立。

4.

语句 while (! y );中的表达式! y 等价于A

A)y == 0 B)y

5.

若有“ int a=1,x=1;

!= 1 C)y = !0 D) y==1

” , 则循环语句“ while(a<10) x++; a++;”的

B. 不确定次

C.10 次

D.9

循环执行( A

A. 无限次

6. 有以下程序段

int k=0

while(k)k++;

则 while 循环体执行的次数是

C

B) 有语法错,不能执行

D) 执行 1 次

B while(0)

B

A) 无限次

C) 一次也不执行

7. 下列循环语句中有语法错误的是 ( D )

A while(x=y) 5

C do 2 ; while(x= =b)

; D do x++ while(x= =10)

*8. 当运行时输入: abcd$abcde

, 下面程序的运行结果是

#include

main()

12/26

13 / 29

C语言-基本选择题及参考答案

{ while(putchar(getchar())!='$');

printf("end");

}

A ) abcd$abcde

B ) abcd$end

C ) abcdend

D)

abcd$abcdeend

9. 以下程序段 ( A )

x=-1;

do { x=x*x; }

while(x>0);

A. 是死循环 B.

循环执行一次

C.

错误

10. 下面程序段执行后的结果为 : ( B )

int sum=0, n=10;

do { sum=sum+n;

n++; }

while(n<10)

printf(

“ %d,%d” ,sum,n)

A. 0, 10 B. 10, 11 C. 0, 11 D.

11. 对以下程序段的叙述正确的是 ___A____.

int x=1;

do

{ x= -1*x; }

while(!x)

A) 是死循环 B)

循环执行一次

C)

12. 循环“ for(i=0,x=1;i=10&&x>0;i++);

A. 无限次

B. 不确定次

13/26

14 / 29

循环执行二次

以上结果都不对循环执行二次

C.10 次

D.

有语法

D) 有语法错

A

)。

D.9

”的循环执行(

C语言-基本选择题及参考答案

13. 执行语句 {for(j=0;j<=3;j++) a=1;}

后变量 j 的值是

C

.

A)0 B)3 C)4 D)1

14. 有如下程序

main()

{ int i,sum=2;

for(i=1;i<=3;i+=2) sum+=i;

printf( “%d n”,sum); }

该程序的执行结果是

A

A) 6

B) 3

D) 4

*15 、执行语句” for ( i=0; i++<3 ; )

;”后,变量( C

)。

A

、2

B

、3

C

、4

D

16. 设 x 和 y 均为 int 型变量,则执行以下的循环后,for(y=1,x=1;y<=50;y++)

{

if(x>=0) break;

if(x%2==1) {x+=5;continue;}

x-=3;

}

A.2

B.4

C.6

D.1

五 数组

1.

以下对一维数组

a 的正确说明是:

D

A) char a ( 10);

B) int a[]

14/26

15 / 29

C)

死循环

i

的值为、5

y 的值为( D )。

C语言-基本选择题及参考答案

C)int k

= 5, a[k] ;

D

) char a[3]={ ‘a’ , ’ b’, ’ c’ };

2.

以下能对一维数组

a 进行初始化的语句是 : (

C )

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

C. int a[3]={0,1,2} D. int a{5}={10*1}

3.

在 C 语言中对一维整型数组的正确定义为

D。

A)int a(10); B)int n=10,a[n];

C)int n;a[n]; D)#define N 10

int a[N];

4、已知: int a[10];

则对 a 数组元素的正确引用是( D )。

A 、 a[10] B 、 a[3.5] C、 a(5)

D、 a[0]

5.

执行下面的程序段后

, 变量 k 中的值为

C

A)

不定值

B) 33 C) 30 D) 10

int k=3, s[2];

s[0]=k; k=s[0]*10;

*6. 下列说法中错误的是

C

A 构成数组的所有元素的数据类型必须是相同的

B 用指针法引用数组元素允许数组元素的下标越界

C 一维数组元素的下标依次是 1、2、 3

D 定义数组时的长度可以是整型常量表达式

7. 若有以下数组说明, 则数值最大的和最小的元素下标分别是 ( B )。a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12

B.0,11

C.1,11

D.0,12

8. 若有以下数组说明,则 i=10;a[a[i]]

元素数值是(

B

)。

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

A.10

B.9

C.6

D.5

9.

假定 int 类型变量占用两个字节, 其有定义:int x[10]={0,2,4};

15/26

16 / 29

int

C语言-基本选择题及参考答案

则数组 x 在内存中所占字节数是

D

A)3

10. 若有说明: int a[][3]={{1,2,3},{4,5},{6,7}};

维的大小为 :( B )

A.2 B.3 C.4 D.

无确定值

11. 以下定义语句中,错误的是 ( D )

A) int a[]={1,2};

B) char *a;

C) char s [10]= “ test ” ;

D) int n=5,a[n];

12. 下面程序段的输出结果是 : ( C ) int i;

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

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

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

A)159

13. 对二维数组的正确定义是(C )

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

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

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

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

14.已知 int a[3][4];

则对数组元素引用正确的是

A)a[2][4] B)a[1,3] C)a[2][0]

D)a(2)(1)

六、字符数组

1. 在 C 语言中,以D 作为字符串结束标志

A) ’ n ’

B)’ ’

C) ’ 0’ D)

2. 下列数据中属于“字符串常量”的是(

A )。

A. “ a”

B.{ABC}

C.

‘ abc0

17 / 29

B)6C)10D)20

则数组 a 的第一

B)147

C)357

D)369

__C___

0 ’

D.

‘a’ ’

C语言-基本选择题及参考答案

16/26

18 / 29

C语言-基本选择题及参考答案

3. 字符串 “ABCD”在内存占用的字节数是( D )。

A.4

B.6

C.1

D.5

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

A.

‘ PROGRAM’

B

“ 12’ 12”

C

“0”

D

“ ”

5. 设有数组定义 : char array [ ]="abcd";

则数组 array

所占的空间

B

B)5

个字节

C)6

个字节

D)7

个字

A)4 个字节

*6. 下述对 C 语言中字符数组的描述错误的是

C

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

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

C) 可在赋值语句中通过赋值运算符“ =”对字符数组整体赋值

D) 可在对字符数组定义时通过赋值运算符“ =”对字符数组整

体初始化

7. 已知 char x[]="hello", y[]={'h','e','a','b','e'};,

则关于两

个数组长度的正确描述是

B .

C)x

小于 y

D)

以上答案都不对

A) 相同

B)x

大于 y

8. 给出以下定义 :

char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为

C

B)

数组 x 和数组 y 的长度

A) 数组 x 和数组 y 等价

相同

C) 数组 x 的长度大于数组

y 的长度

D

D) 数组 x 的长度小于数组

y 的长度

9、若有以下语句,则正确的描述是(

)。

17/26

19 / 29

C语言-基本选择题及参考答案

static char x[ ]=

” 12345” ;

static

char

y[

]={ ‘1’ , ‘ 2’, ‘ 3’, ‘ 4’ ,

5’, ’0 ’} ;

A

、 x 数组长度大于

y 数组长度

B

、x 数组和 y 数组不相同

C 、 x 数组长度小于 y 数组长度 D 、x 数组等价于 y 数组

10、已知: char s[20]=

” programming ”, *ps=s;

则不能引用字母

)。

o

的表达式是( C

A 、 ps[2]

B、s[2]

C、 ps+2

D 、ps+=2,

*ps

*11 .判断两字符串 s1,s2 是否相等 , 应使用 ( D ).

A)if(s1==s2)

B)if(s1=s2)

D)if(strcmp(s1,s2)==0)

A

C)if(strcpy(s1,s2))

*12 .以下 printf

printf(

语句的输出结果为:

存在语法错误

“ %dn” ,strlen(

“ school ” ));

D)

不定值

A) 7 B) 6 C)

13. 对字符数组 s 赋值 , 不合法的一个是 ( C )

A. char s[]="Beijing"

; B. char s[20]={"beijing"}

C. char s[20]

; s="Beijing" ;

(

D )

D. char s[20]={'B','e','i','j','i','n','g'}

14.

对字符数组

str

赋初值, str 不能作为字符串使用的一个是

A. char str[]="shanghai"

’ 0 ’ } ;

B. char str[]={"shanghai"}

C. char str[9]={'s','h','a','n','g','h','a','i',

D. char str[8]={ 's','h','a','n','g','h','a','i'}

15.

合法的数组定义是

C

a[]={ “ string

” };

B)

int

A)int

a[5]={0,1,2,3,4,5};

18/26

20 / 29

C语言-基本选择题及参考答案

C)char

a[]=

“ string ” ;

D)

char

a[5]={0,1,2,3,4,5};

16. 对字符数组 s 赋值 , 不合法的是 : ( C )

A) char s[]="china"

B) char s[20]={" china "}

C) char s[20]

; s=" china" ;

D) char s[20]={'c','h','i','n','a'}

17. 下面初始化与此初始化 charc[ ]=“ I am happy”; 等价的是( A )

A)

char

c[ ]={ ‘I ’, ’’, ’a’, ’m’, ’’, ’h’, ’a’, ’p’, ’p’, ’y’, ’0 ’} ;

B) char c[ ]={

‘I ’, ’am’ , ’happy ’};

C)

char

c[ ]={ ‘I ’, ’’, ’a’, ’m’, ’’, ’h’, ’a’, ’p’, ’p’, ’y’}; D)char c[ ]={ ‘ I ’ , ’am’ , ’happy ’ , ’ 0 ’ };

18. 下面各语句中,能正确进行赋字符串操作的语句是( C ) 。

A. char s[5]={

“ ABCDE” };

B. char s[5]={

‘ A’,‘ B’,‘C’,‘D’,‘ E’ , ’0 ’};

C. char *s;s=

“ ABCDE” ;

D. char *s;scanf(

“%s” ,&s);

19.下列字符串赋值方式不正确的是

( A )

A) . char str[20];

B). char *str ;

str= ”I am a boy!

” ;

str= ”I am a boy!

” ;

C). char *str=

” I am a boy!; ”

D) . char str[20]=

” I am a; boy!七.指针

1. 语句 int *p;

说明了

C

19/26

21 / 29

C语言-基本选择题及参考答案

A)p 是指向一维数组的指针

B)p 是指向函数的指针 , 该函数返回一 int

型数据

C)p 是指向 int

型数据的指针

D)p 是函数名 , 该函数返回一指向

int

型数据的指针

2. 变量的指针,其含义是指该变量的:( B )

A.

B.

地址

C.

D.

一个标志

3. 若 x 是整型变量, pb 是基类型为整型的指针变量,则正确的赋值表达式是( A )

A) pb=&x

B) pb=x

C) *pb=&x

则下列函数调用中错误的是(

、scanf( “%d” ,p);

D) *pb=*x

4、已知: int a, *p=&a;

D

)。

A

、 scanf( “ %d” ,&a);

B

C 、 printf(

“ %d” ,a);

D

、printf(

“%d” ,p);

5. 对于同类型的指针变量,不可能进行的运算是(

C

)。

A.-

B.=

C.+

D.==

6.

对于基类型相同的两个指针变量之间,不能进行的运算是

C

A)<

B)=

C)+

A

D)-

)。

7.下列不正确的定义是(

A. int *p=&i,i;

*p,i;

C.int i,*p=&i;

i,*p;

则 以 下 非 法 的 赋 值 语 句 是 :

8.

若 有 说 明 : int

n=2,*p=&n,*q=p,

D

A)p=q

B

)*p=*q

C

) n=*q

D

)p=n

9. int *p,a=10,b=1; p=&a; a=*p+b;

执行该程序段后, a 的值为 C

A) 编译出错B) 10

C) 11

A

20/26

D) 12

10.下列函数的功能是

22 / 29

C语言-基本选择题及参考答案

void fun(int *p1,int *p2)

{ int p;

p=*p1;*p1=*p2;*p2=p;

}

A) 交换 *p1 和 *p2 的值

B)

语法正确,但无法交换 *p1 和 *p2

的值

C) 交换 *p1 和 *p2 的地址

D)

有语法错误

八、函数

1.C 语言中函数返回值的类型是由

A

B)

决定的 .

A) 函数定义时指定的类型

return

语句中的表达式类

C) 调用该函数时的实参的数据类型D) 形参的数据类型

2. 在 C 语言中,函数的数据类型是指 ( A )

A 函数返回值的数据类型

B.

函数形参的数据类型

C 调用该函数时的实参的数据类型

D.

任意指定的数据类型

A

B)

决定的 .

*3 . C 程序中函数返回值的类型是由

A) 函数定义时指定的函数类型

函数中使用的最后一个变量

的类型

C) 调用函数时临时确定

D)

调用该函数的主调函数类

*4. C

语言规定,简单变量做实参时,它和对应形参之间的数据传递

方式为(

A.

B)

B.

单向值传递

C.

由用户指定传递方式

D. 由系统选择

地址传递

21/26

23 / 29

C语言-基本选择题及参考答案

5.

在函数调用时,以下说法正确的是(

A. 函数调用后必须带回返回值

B. 实际参数和形式参数可以同名

C. 函数间的数据传递不可以使用全局变量

B

D. 主调函数和被调函数总是在同一个文件里

*6. 在 C 语言程序中,有关函数的定义正确的是

( B ) 。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套

B. 函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的均可以嵌套

*7. 以下对 C 语言函数的有关描述中,正确的是

( A )

A. 在 C 语言程序中,调用函数时,如函数参数是简单变量,则只能

把实参的值传递给形参,形参的值不能传送给实参

B.C 语言函数既可以嵌套定义又可递归调用

C.C 语言函数必须有返回值,否则不能使用函数

D.在 C 语言程序中有调用关系的所有函数必须放在同一个源程序文件中

*8.C 语言中对函数的描述正确的是

C

D)

.

A) 可以嵌套调用 , 不可以递归调用B)可以嵌套定义

C)

嵌套调用,递归调用均可

9. 以下叙述中正确的是

A

不可以嵌套调用

A) 构成 C 程序的基本单位是函数

B) 可以在一个函数中定义另一个函数

C) main() 函数必须放在其它函数之前

D) 所有被调用的函数一定要在调用之前进行定义

10. 用数组名作为函数调用时的实参时,传递给形参的是A。

22/26

24 / 29

C语言-基本选择题及参考答案

A)数组首地址

B)

数组第一个元素的值

D) 数组元素的个数

} ,则不正确的函数调用

C)数组全部元素的值

11.有一函数的定义如: void fun(char *s){

是(D)。

()

{char a[20]=

” abcdefgh ”;

fun(a);

}

()

{ char a[20]= ” abcdefgh ” ;

fun(&a[0]);

}

C. main()

{ char a[20]= ”abcdefgh ” ;

char *p=a;fun(p);

}

D. main()

{char a[20]= ” abcdefgh ”;

fun(a[]);

}

12、函数的功能是交换变量

x 和 y 中的值,且通过正确调用返回交换

25 / 29

C语言-基本选择题及参考答案

的结果。能正确执行此功能的函数是(

D

)。

B、 funb(int x , int y)

A

、 funa(int *x, int *y)

{ int t;

23 / 26

}

26 / 29

t=x; x=y; y=t;

C语言-基本选择题及参考答案

{ int *p;

*p=*x ; *x=*y;

*y=*p;

}

C 、 func(int *x, int *y)

D、fund(int *x,

int *y)

{ int t;

{ int *p;

p=x;x=y; y=p;

}

}

13. 有如下程序

int func(int a,int b)

{ return(a+b);}

main()

{ int x=2,y=x,z=8,r;

r=func(func(x,y),func(y,z));

printf(

“%d n”,r);

}

该程序的输出的结果是

C

A) 12 B) 13

15

以下程序的输出结果是

B

int

a, b;

void fun()

{

a=100; b=200; }

main()

{

int

a=100, b=100;

fun();

pri ntf(

“%d% d n” , a,b);

}

24/26

27 / 29

t=*x; *x=*y;

C)

*y=t;

14 D)

*14.

C语言-基本选择题及参考答案

A) 100200

B) 100100

A

C) 200100

D) 200200

*15. 下列说法中正确的是: (

A. 局部变量在一定范围内有效,且可与该范围外的变量同名。

B. 如果一个源文件中,全局变量与局部变量同名,则在局部变量

范围内,局部变量不起作用。

C. 局部变量缺省情况下都是静态变量。

D. 函数体内的局部静态变量,在函数体外也有效。

16.

在 C 语言中,表示静态存储类别的关键字是

:

C

A) autoB) register

C) static

D) extern

17.未指定存储类别的变量,其隐含的存储类别为(

A

)。

A)auto B)static C)extern D)register

九、编译预处理

*1. 在 C 语言程序中,以 #号带头的行是预编译处理 ( A ) 。

A.命令

B.

语句

C.

函数

字符串

2. 下列正确的预编译命令是 ( D ) 。

A. define PI 3.14159

B. #define P(a,b)=strcpy(a,b)

C. #define stdio.h

D. #define PI 3.14159;

3. 下列命令或语句中,正确的是 ( C ) 。

A. #define MYNAME= ” ABC”

B. #include stdio.h

C. for(i=0;i<10;i++);

D. struct int stu{int name};

*4. 下列命令或语句中,错误的是

( C ) 。

25/26

28 / 29

D.

C语言-基本选择题及参考答案

A.#define PI 3.14159

B.#include ;

(;;) if(1) break; (2);

26/26

29 / 29


本文标签: 函数 语言 语句 数组 程序