C语言-基本选择题及答案[1]

C)嵌套调用,递归调用均可 D)不可以嵌套调用 9.以下叙述中正确的是 A

A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main()函数必须放在其它函数之前

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

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

A)数组首地址 B)数组第一个元素的值 C)数组全部元素的值 D)数组元素的个数

11.有一函数的定义如:void fun(char *s){……},则不正确的函数调用是( D )。 A.main()

{char a[20]=”abcdefgh”; fun(a); ?? } B.main()

{ 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[]); ?? }

13、函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是( D )。 A、funa(int *x, int *y) { int *p;

13

B、funb(int x , int y)

{ int t;

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

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

C、func(int *x, int *y) { int *p;

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

}

14. 有如下程序

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 C) 14 D) 15 *15. 以下程序的输出结果是 B

int a, b; void fun()

{ a=100; b=200; } main()

{ int a=100, b=100;

fun();

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

A) 100200

*16. 下列说法中正确的是:( A )

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

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

局部变量不起作用。

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

D. 函数体内的局部静态变量,在函数体外也有效。 17. 在C语言中,表示静态存储类别的关键字是: ( C )

A) auto

D、fund(int *x, int *y)

{ int t;

t=*x; *x=*y; *y=t; }

B) 100100 C) 200100 D) 200200

B) register C) static

14

D) extern

18.未指定存储类别的变量,其隐含的存储类别为( A )。 A)auto B)static C)extern D)register

七、结构体

1. 若有以下说明语句: struct student { int num; char name[ ]; float score; }stu;

则下面的叙述不正确的是: ( D )

A. struct是结构体类型的关键字

B. struct student 是用户定义的结构体类型 C. num, score都是结构体成员名 D. stu是用户定义的结构体类型名 2.若有以下说明语句: struct date { int year; int month; int day; }brithday;

则下面的叙述不正确的是__C___.

A) struct是声明结构体类型时用的关键字 B) struct date 是用户定义的结构体类型名 C) brithday是用户定义的结构体类型名 D) year,day 都是结构体成员名

*3. 已知:(设整型2字节,字符型1字节,浮点型4字节) struct { int i; char c; float a; }test;

则sizeof(test)的值是 D 。 A) 4 B) 5 C) 6 D) 7

4. 以下对结构变量stul中成员age的非法引用是 B struct student

15

{ int age; int num; }stu1,*p; p=&stu1;

A) stu1.age B) student.age C) p->age D) (*p).age

*5. 有如下定义

struct person{char name[9]; int age;};

struct person class[10]={“Tom”,17,“John”,19,

“Susan”,18,“Adam”,16,};

根据上述定义,能输出字母A的语句是( B ) A) printf(“%c\\n”,class[3].name); B) printf(“%c\\n”,class[3].name[0]); C) printf(“%c\\n”,class[3].name[1]); D) printf(“%c\\n”,class[2].name[3]);

6.存放100个学生的数据、包括学号、姓名、成绩。在如下的定义中,不正确的是( B )。

A.struct student

{int sno; char name[20];

float score;} stu[100]; B. struct student stu[100]

{int sno; char name[20]; float score}; C. struct { int sno; char name[20];

float score;} stu[100]; D. struct student

{int sno; char name[20]; float score;}; struct student stu[100];

16

联系客服:779662525#qq.com(#替换为@)