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
{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 {extern int x,y;int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5;