C语言程序设计题目及解答-07

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计题目及解答-07

一、判断题 (24分)

1. 函数的递归调用不过是一个函数直接地调用它自身。2分

2. 在c语言中,在main函数中定义的变量称为全局变量。2分

3. 静态变量和外部变量都是全局变量,它们的存储是静态的。2分

4. 静态局部变量只在本函数内可用。2分

5. 静态外部变量只在本文件内可用。2分

6. 变量根据其作用域的范围可以分作局部变量和全局变量.2分

7. 任何数组在使用时必须先定义。2分

8. 如果想使一个数组中全部元素的值为1,可以写成int a[10]={1*10};2分

9. 如果定义数组int b[6]={1,2,3,4};则b[6]为0。2分

10. int n=10; int a[n];则数组a有10个元素。2分

11. int b[][3] = {1,2,3,4,5,6,7} ,表示数组b是3行3列的数组。2分

二、选择题 (36分)

1.根据下面函数print的定义,选出调用函数print(5378)的值是()。 [A] 2分

void print(long n)

{

if (n==0) return ;

else{

print(n/10);

printf("% d", n%10);

return ;

}

}

A. 5 3 7 8

B. 8 7 3 5

C. 3 5 7 8

D. 8 7 5 3

2.根据下面函数f,选出f(f(3))的值是()。 [C] 2分

int f(int x)

{

static int k=0;

x=x+k;

k--;

return x;

}

A. 5

B. 3

C. 2

D. 4

3.如果在函数中定义一个变量,有关该变量作用域正确的是()。

[A] 2分

A. 只在该函数中有效

B. 在该文件中有效

C. 在本程序中有效

D. 为非法变量

4.下列叙述中,正确的叙述项是()。 [B] 2分

A. 定义函数时,必须要有形参

B. 函数中可以没有return语句,也可以有多条return语句

C. 函数f可以用f(f(x))形式调用,这种调用形式是递归调用

D. 函数必须有返回值

5.下列说法正确的是( ) [D] 2分

A. 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

B. 在C语言中,数组元素的个数可以不确定,允许随机变动

C. 在C语言中,数组元素的数据类型可以不一致

D. 在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数

6.以下能正确定义一维数组的选项是( )。 [D] 2分

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

B. char a={′A′,′B′,′C′};

C. int a[5]="0123";

D. char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};

7.若有定义语句:int a[10];则下列对a中数组元素正确引用的是()。 [A] 2分

A. a[10/2–5]

B. a[10]

C. a[4.5]

D. a(1)

8.能对一维数组正确初始化的语句是()。 [A] 2分

A. int a[6]={6*1}

B. int a[6]={1,,,3}

C. int a[6]={}

D. int a[6]=(0,0,0)

9.下面对数组定义正确的是() [C] 2分

A. int b[];

B. int b[n],n=5;

C. int b[10/2];

D. int b[4.8];

10.假设int型变量占两个字节的存储单元,若有定义:

int x[10]={0,2,4};

则数组x在内存中所占字节数为______。 [D] 2

A. 3

B. 6

C. 10

D. 20

11.下列程序运行后的输出结果是______。 [D] 2分Main()

{int n[3],t,j,k;

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

n[t]=0;

k=2;

for(t=0;t<k;t++)< p="">

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

n[j]=n[t]+1;

printf("%d",n[1]);}

A. 2

B. 1

C. 0

D. 3

12.有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf("%d", k);

}

执行后输出结果是_______。 [D] 2

A. 58

B. 56

C. 45

D. 24

13.若定义如下变量和数组_________。

int j;

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

相关文档
最新文档