c语言作业 下载本文

5、以下能对一维数组a进行正确初始化的语句是

A) int a[10]=(0,0,0,0,0) B)int a[10]={}

C) int a[]={0}; D) int a[10]={10*1};

6、以下对二维数组a的正确说明是

A)int a[3][]; B)float a(3,4); C) double a[1][4]; D)float a(3)(4);

7、若有说明:int a[3][4]; 则对a数组元素的正确引用是

A) a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1);

8、若有说明:int a[3][4];则对a数组元素的非法引用是

A) a[0][2*1] B) a[1][3] C)a[4-2][0] D)a[0][4]

9、以下能对二维数组a进行正确初始化的语句是

A) int a[2][]={{1,0,1},{5,2,3}}; B) int a[][3」={{1,2,3},{4,5,6}}; C) int a[2][4]={{1,2,3},{4,5},{6}}; D) int a[][3={{1,0,1},{},{1,1}};

10、以下不能对二维数组a进行正确初始化的语句是

A) int a[2][3]={0};

B) int a[][3」={{1,2},{0}};

C) int a[2][4]={{1,2},{3,4},{5,6}}; D) int a[][3]={1,2,3,4,5,6};

11、若有说明: int a[3][4]={0};则下面正确的叙述是

A)只有元素a[0][0]可得到初值0 B)此说明语句不正确:。

C)数组a中各元素都可得到初值,但其值不一定为0。 D)数组a中每个元素均可得到初值0

12、若有说明:int a[][4]={0,0};则下面不正确的叙述是

A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)因为二维数组0中第二维大小的值除以初值个数的商为1,故数组a行数为1

D)只有元素a[0][0]和a[0][1]可得初值0,其余元素均得不到初值0

13、若有说明:int a[3]「4」则数组a各元素

A)可在程序的运行阶段得到初值0 B)可在程序的编译阶段得到初值0

C)不能得到确定的初值 D)可在程序的编译或运行阶段得初值0

14、以下各组选项中,均能正确定义二维实型数组a的选项是

A)float a[3][4]; B)float a(3,4);

float a[][4]; float a[3][4];

float a[3][]={{1},{0}}; float a[][]={{0},{0}}; C)float a[3][4]; D)float a[3][4];

static float a[][4]={{0},{0}}; float a[3][]; auto float a[][4]={{0},{0},{0}}; float a[][4]

15、下面程序(每行程序前面的数字表示行号)

1 main() 2 {

3 int a[3]={3*0}; 4 int i;

A)第3行有错误 B) 第7行没有错误 C)第5行有错误 D) 没有错误 16、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上。)

A)i*m+j B)j*p+i。C)i*m+j-1 D)i*m+j+1

17、下面程序的运行结果是 __. main()

{int a[6],i;

for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5; printf(\

A)—40404 B)—40403 C)一40443 D)一40440 18、不能把字符串:Hello!赋给数组b的语句是 A)char b[10]={'H','e','l','l','o','!'}; B)char b[10];b=\

C)char b[10];strcpy(b,\D)char b[10]=\

19、能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是

A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=0

20、下面是对s的初始化,其中不正确的是

A) char s[5」={\ C) char s[5]=\

21、下面程序段的运行结果是

char c[5]={'a','b','\\0','c','\\0'}; printf(\

A)’a’’b’ B)ab C)ab c D)ab (其中 表示空格)

22、对两个数组a和6进行如下初始化 char a[]=\

char b[]={’A’,’B’,’C’,’D’,’E’,’F’}; 则以下叙述正确的是

A) a与b数组完全相同 B) a与b长度相同

C) a和b中都存放字符串 D) a数组比b数组长度长

23、有两个字符数组a、b,则以下正确的输入格式是

A) gets(a,b); B) scanf(\ C) scanf(\

二、填空题

1、下面程序的运行结果是

main()

{char a[80」=\ int i=0;strcat(a,b);

whi1e(a[i++]!='\\0')b[i]=a[i];puts(b);}

2、下面程序的运行结果是

main()

{char str[]=\for(k=2;(c=str[k]!='\\0';k++) {switch(c)

{case 'I':++k;break; case 'L':continue;

default:putchar(c);continue;} putchar('*');}}

3、下面程序的运行结果是

#include main()

{char a[]=\int i,j=0;

for(i=1;i<7;i++) if(a[j]

a[7]=a[j];puts(a);}

4、有如下程序

main( )

{ int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ case 2: a++;b++ }

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

该程序的输出结果是

作业八 函数

一、选择题

1 若使用一维数组名作函数实参,则以下正确的说法是( ). A)必须在主调函数中说明此数组的大小 B)实参数组类型与形参数组类型可以不匹配 C)在被调函数中,不需要考虑形参数组的大小 D)实参数组名与形参数组名必须一致 2 以下正确的说法是( ).

A)如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效

B)在该函数中有效

C)在本程序范围内均有效 D)非法变量

3凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ).

自动(auto) B)静态(static) C)外部(extern) D) 寄存器(register) 4以下程序的正确运行结果是( ). #include void num()

{extern int x,y;int a=15,b=10; x=a-b; y=a+b; }

int x,y; main()

{ int a=7,b=5;