一、单项选择题(25道小题,共50分) 1、以下说法中正确的是(C)(2分)
A、C语言程序总是从第一个的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分
2、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)(2分)
A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 3、以下选项中,不合法常量的是 (B)(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0
4、C语言中最简单的数据类型包括(B)(2分) A、整型、实型、逻辑型 B、整型、实型、字符型
C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 5、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 (D)(2分) A、 10>=a>=0 B、 a>=0 and a<=10 C、 a>=0||a<=10 D、 a>=0&&a<=10
6、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000
7、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 (B)(2分)
A、 INPUT x、y、z; B、 scanf(\ C、 scanf(\ D、 read(\
8、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是(D)(2分) A、 把x和y按从大到小排列 B、 把x和y按从小到大排列 C、 无确定结果 D、 交换x和y中的值
9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分) A、 0 B、 0.5 C、 1 D、 2
10、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。 (2分) A、A B、a C、Z D、z
11、执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d %d %d\\n”,k,a,b);后的输出结果是( D ) 。 (2分)
A、1 0 4 B、1 0 3 C、0 0 3 D、0 0 4
12、设 int x=1, y=1; 表达式(!x||y--)的值是( B )。(2分) A、0 B、1 C、2 D、-1
13、程序段 int x=3; do { printf(“%d”,x-=2); } while (!(--x));的输出结果是( C )。(2分)
1
A、1 B、3 0 C、1 -2 D、死循环
14、程序段for (i=2; i==0; ) printf(“%d” , i--) ;的循环次数是( B )。(2分) A、无限次 B、0次 C、1次 D、2次
15、语句int k=1; while (k++<10);执行后,变量k的值是( B )。(2分) A、10 B、11 C、9 D、无限循环,值不定
16、程序 int i,sum; for(i=1;i<=3;sum++)sum+=i; printf(“%d\\n”,sum); 的执行结果是( C )。(2分)
A、6 B、3 C、不确定 D、0
17、以下对二维整形数组a的正确说明是( C)。(2分) A、int a[3][]; B、float a(3,4); C、double a[1][4]; D、float a(3)(4)
18、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是(B )。 (2分) A、s+1 B、s++ C、&s[0]+1 D、&s[1]
19、对两个字符数组a和b进行初始化char a[ ]=\ char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是(D ) 。 (2分)
A、a与b数组完全相同 B、a与b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长
20、有说明:char *language[]={\VA\则表达式*language[1]>*language[2]比较的是( A )
A、字符B和字符P B、字符串FORTRAN和字符串BASIC C、字符F和字符B D、字符串BASIC和字符串PASCAL 21、C语言程序由函数组成,它的( B)。(2分)
A、主函数必须在其它函数之前,函数内可以嵌套定义函数 B、主函数可以在其它函数之后,函数内不可以嵌套定义函数
C、主函数必须在其它函数之前,函数内不可以嵌套定义函数 D、主函数必须在其它函数之后,函数内可以嵌套定义函数
22、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是( D )。(2分) A、extern B、registerC、auto D、static
23、已知:int a[]={1,2,3,4,5,6},*p=a;则值为3的表达式是 ( A )。 .(2分) A、p+=2,*(p++) B、p+=2,*++p C、p+=3,*p++ D、p+=2,++*p
24、设有说明语句“struct stu{ int a; float b;}stutype;”,则叙述不正确的是(D )(2分) A、struct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。 C、stutype是用户定义的结构体变量名。 D、a和b都是结构体变量。 25、下列关于文件指针的描述中,错误的是(D )(2分)
A、文件指针是由文件类型FILE定义的。 B、文件指针是指向内存某个单元的地址值。 C、文件指针是用来对文件操作的标识。 D、文件指针在一个程序中只能有一个。 26、以下叙述中正确的是(B)(2分)
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行
2
D、C语言中的函数不可以单独进行编译 27、以下叙述中正确的是 (C)(2分)
A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法可以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出 28、C语言中, 下列字符常量合法的是(A)(2分) A、'\\t' B、\ C、65 D、A
29、下列关于赋值运算符的表述中,错误的是(B)(2分) A、赋值运算符优先级高于逗号运算符
B、赋值运算符的结合性是从左至右 C、赋值运算符是双目运算符 D、赋值运算符可在表达式中连用
30、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000 31、以下不是关键字的是(C)(2分) A、continue B、char C、If D、default
32、设x,y为浮点型变量,合法赋值语句是(A)(2分) A、x=8+y; B、(float)3 ; C、y=(x%2)/10 ; D、*x=10; 33、已定义ch为字符型变量,以下赋值语句中错误的是(B)(2分) A、 ch='\\'; B、 ch=62+3; C、 ch=' '; D、 ch='\\xaa';
34、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分) A、scanf(\
B、scanf(\、scanf(\ D、scanf(\
35、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与( B )配对。 (2分)
A、缩排位置相同的ifB、其之前最近的if C、其之后最近的if D、同一行上的if
36、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是( C)。(2分)
A、 (x>=1)&&(x<=100)&&(x>=200)&&(x<=300)
B、 (x>=1)||(x<=100)||(x>=200)||(x<=300) C、 (x>=1)&&(x<=100)||(x>=200)&&(x<=300) D、 (x>=1)||(x<=100)&&(x>=200)||(x<=300) 37、若
w,x,y,z,m
均为
int
型变量,则执行语句
w=1;x=2;y=3;z=4;
m=(w B、do-while语句构成的循环必须用break语句才能退出 C、do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环 D、do—while语句构成的循环,当while语句中的表达式值为零时结束循环 39、设j为int型变量,则for(j=10;j>3;j--) {if (j%3) j--; --j;--j;printf(“%d ”,j); }的执行结果是( A )。 (2分 A、7 4B、4 7 C、5 6D、1 3 3 40、以下描述正确的是( C )。(2分) A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。 C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while 41、以下正确的定义语句是( D )。(2分) A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 42、下面描述正确的是( D )。 (2分) A、字符串所包含的字符个数相同时,才能比较字符串 B、字符个数多的字符串比字符个数少的字符串大 C、字符串\ \与\相等 D、字符串“That”小于字符串\ 43、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C )。(2分) A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式 44、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( B )。(2分) A、2B、3 C、4D、无确定值 45、已知int f(int);和int g(int);是函数f 和g 的原形。下列语句中,将函数f作为函数参数的有( A )。 (2分) A、f(3); B、p=f(3); C、g(f(3)); D、f(g(3)); 46、函数调用结束后,形式参数(C )。(2分) A、继续占用相同大小的内存B、占用的内存减小 C、释放内存 D、不确定 47、已知:int a,*p=&a;则下列函数调用中错误的是( D )。(2分) Ascanf(\、scanf(\、printf(\ D、printf(\48、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C )(2分) A、1,0 B、1,1 C、0,1D、0,0 49、语句“fseek(fp,100L,2);”的功能是(B )(2分) A、将fp所指向文件的位置指针移至距文件首100个字节。 B、将fp所指向文件的位置指针移至距文件尾100个字节。 C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。 D、将fp所指向文件的位置指针移至距当前位置 指针的文件尾方向100个字节。 50、以下叙述错误的是(D)(2分) A、一个C程序总是从main函数开始执行的; B、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上; C、每个语句和数据定义的最后必须有一个分号; D、C语言本身有输入输出语句。 51、若有以下类型说明语句:char w; int x; float y; double z;则表达式 w*x+z-y 的结果类型是(D)(2分) A、float B、char C、int D、double 52、下面不正确的字符串常量是(A)(2分) 4 A、 'abc' B、 \ C、 \ D、 \ \ 53、已知各变量的类型说明如下:int k,a,b=1; unsigned long w=5;则以下不符合C语言语法的表达式是(A)(2分) A、 k=b+2=w B、 w+= -2 C、 k=(a=2,b=3,a+b) D、 a+=a-=(b=4)*(a=3) 54、执行下列语句int x=10,y=3;printf(\后的输出是(C)(2分) A、 0 B、 1 C、 3 D、 不确定的值 55、若执行以下程序段: int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%d\\n”,a, b, c); 其输出结果是(B)(2分) A、0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10 56、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分) A、scanf(\ B、scanf(\、scanf(\ D、scanf(\57、以下错误的if语句是( C )。(2分) A、 if(x>y) z=x; B、 if(x==y) z=0; C、 if(x!=y) printf(\ D、 if(x 58、条件运算符的结合方向是( A )。(2分) A、自右至左; B、自左至右; C、任意; D、前后顺序; 59、对于程序段int x=-1; do { x=x*x; }while(!x);说法正确的是( C )。(2分) A、是死循环 B、循环执行两次 C、循环执行一次 D、有语法错误 60、t为int类型,进人下面的循环之前,t的值为0,则对于while( t=l ) { ?? }叙述中正确的是( B )。 (2分) A、循环控制表达式的值为0 B、循环控制表达式的值为1 C、循环控制表达式不合法 D、以上说法都不对 61、执行语句x=y=0; while (x<15) y++,x+=++y ;printf(“%d,%d”,y,x);的结果是( D )。(2分) A、20,7 B、6,12 C、20,8 D、8,20 62、以下对一维整形数组a进行正确初始化的语句是( C )。(2分) A、int a[10]=(0,0,0,0,0); B、int a[10]={}; C、int a[]={0};D、int a[10]={10*1}; 63、若有说明:int a[3][4];则对a数组元素的非法引用是( D )。(2分) A、a[0][2*1]B、a[1][3] C、a[4-2][0] D、a[0][4] 64、以下能对二维整形数组a进行正确初始化的语句是( D )。(2分) A、int a[2][3]={0};B、int a[][3]={{1,2},{0}}; C、int a[2][3]={{1,2},{3,4},{5,6}};D、int a[][3]={1,2,3,4,5,6}; 65、程序char c[5]={‘a’,’b’,’\\0’,’c’c,’\\0’}; printf(“%s”,c);}的运行结果是( D )。(2分) A、'a''b'B、ab C、ab cD、ab 66、一个C程序的执行是从( A )。(2分) A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函 5 数开始,到本程序main函数结束 67、在定义语句int *f();中,标识符f代表的是( D )。(2分) A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的行指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名 68、设p1和p2是指向同一个字符串的指针变量,e为字符变量,则以下不能正确执行的赋值语句是(B)。(2分) A、c=*p1+*p2;B、p2=c C、p1=p2 D、c=*p1*(*p2); 69、C语言结构体类型变量在程序执行期间(A )(2分) A、所有成员一直驻留在内存中。B、只有一个成员驻留在内存中。 C、部分成员驻留在内存中。 D、没有成员驻留在内存中。 70、语句“fseek(fp,100L,1);”的功能是(C )(2分) A、将fp所指向文件的位置指针移至距文件首100个字节。 B、将fp所指向文件的位置指针移至距文件尾100个字节。 C、将fp所指向文件的位置指针移至距当前位置指针的文件首方向100个字节。 D、将fp所指向文件的位置指针移至距当前位置 指针的文件尾方向100个字节。 71、以下不是结构化程序设计方法的是(B)(2分) A、循环结构B、模块结构 C、顺序结构D、选择结构 72、以下选项中,不合法常量的是 (B )(2分) A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0 73、若变量已正确定义,以下非法的表达式是(B)(2分) A、a/=b+cB、a%(4.0) C、a=1/2*(x=y=20,x*3)D、a=b=c 74、下列语句中符合C语言语法的赋值语句是(D)(2分) A、 a=7+b+c=a+7; B、 a=7+b++=a+7; C、 a=7+b,b++,a+7 D、 a=7+b,c=a+7; 75、若有以下定义和语句:char c1='b',c2='e';printf(\则输出结果是(B)(2分) A、2,M B、3,E C、2,E D、输出项与对应的格式控制不一致,输出结果不确定 76、若变量已正确说明,要求用语句:scanf(“%f%c%f%c”, &a, &c1, &b, &c2);给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是(B)(2分) A、2.0 % 4.0 #B、2.0%4.0# C、2% 4# D、2 % 4 # 77、下述表达式中,( A )可以正确表示x≤0或x≥1的关系。(2分) A、(x>=1) || (x<=0) B、x>=1 | x<=0 C、x>=1 && x<=0D、(x>=1) && (x<=0) 78、若a=-14,b=3,则条件表达式 a 79设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( B ) 。(2分) A、1B、2 C、3D、4 80、对for(表达式1; ;表达式3)可以理解为( B )。(2分) A、for(表达式1;0;表达式3) B、for(表达式1;1;表达式3) C、for(表达式1;表达式1;表达式3) D、for(表达式1;表达式3;表达式3) 81、若I为整型变量,则for(I=2;I==1) printf(“%d”,I--);的循环执行次数是( B )。(2分) A、无限次B、0次 C、1次D、2次 6 82、程序 int i,sum; for(i=1;i<=3;sum++)sum+=i; printf(“%d\\n”,sum); 的执行结果是( C )。(2分) A、6 B、3 C、不确定D、0 83、若有说明:int a[3][4];则对a数组元素的正确引用是( C )。(2分) A、a[2][4]B、a[1,3] C、a[1+1][0] D、a(2)(1) 84、下面是对数组a的初始化,其中不正确的是( D )。(2分) A、a[5]={\、a[5]={'A','B','C','D'} C、a[5]=\、a[5]=\85、判断字符串a是否大于b,应当使用( D )。(2分) A、if (a>b)B、if (strcmp(a,b)) C、if (strcmp(b,a)>0)D、if (strcmp(a,b)>0) 86、若已定义char s[2][40]={\;则在下面表达式中能表示字符‘E’的地址的是( B )。 (2分) A、&s[2][1] B、s[1] C、&s[1]D、&(s[1]+1) 87、关于局部变量,下列说法正确的是 ( D )。(2分) A、 定义该变量的程序文件中的函数都可以访问。 B、 定义该变量的函数中的定义处以下的任何语句都可以访问。 C、 定义该变量的复合语句的定义处以下的任何语句都可以访问。 函数之间传递数据。 88、程序char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p);的输出结果是( C )。(2分) A、非法 B、a[4]的地址 C、5 D、3 89、C语言结构体类型变量在程序执行期间(A)(2分) A、所有成员一直驻留在内存中。 B、只有一个成员驻留在内存中。 C、部分成员驻留在内存中。 D、没有成员驻留在内存中。 90、下列正确定义一个文件指针pm的语句是(C )(2分) A、FILE pm;B、file *pm; C、FILE *pm;D、file pm; 91、以下叙述中正确的是(B)(2分) A、C语言的源程序不必通过编译就可以直接运行 B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译 92、结构化程序由三种基本结构组成, 由这三种基本结构组成的算法(A)(2分) A、可以完成任何复杂的任务 B、只能完成部分复杂的任务 C、只能完成符合结构化的任务 D、只能完成一些简单的任务 93、以下正确的叙述是(D)(2分) A、 在C程序中,每行中只能写一条语句 B、 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C、 在C程序中,无论是整数还是实数,都能被准确无误地表示 D、 在C程序中,%是只能用于整数运算的运算符 94、以下叙述中正确的是( C)(2分) A、在C程序中,无论是整数还是实数,只要在允许的范围内都能准确无误的表示。 B、C程序由主函数组成 C、C程序由函数组成 D、 局部变量可用于 7 D、C程序由函数和过程组成 95、设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为 (C)(2分) A、 4 B、 16 C、 32 D、 52 96、能正确表示逻辑关系:“10≥=a≥=0”的C语言表达式是 ( D )(2分) A、 10>=a>=0 B、 a>=0 and a<=10 C、 a>=0||a<=10 D、 a>=0&&a<=10 97、执行以下程序段:int x = 496;printf(“*%-6d*\\n”, x);的输出是 (A)(2分) A、*496 * B、* 496* C、*000496* D、输出格式不合法 98、执行下列语句int a;printf(\后,a的值是(B)(2分) A、 65 B、 20 C、 15 D、 10 99、若有以下定义和语句:int u=010,v=0x10,w=10;printf(\则输出结果是(A)(2分) A、8,16,10 B、10,10,10 C、8,8,10 D、8,10,10 100、以下关于运算符优先顺序的描述中正确的是( C )。(2分) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 101、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )。(2分) A、不定值B、4 C、3 D、1 103、程序段 int x=3; do { printf(“%d”,x-=2); } while (!(--x));的输出结果是( C )。(2分) A、1 B、3 0 C、1 -2D、死循环 104、C语言中while和do-while循环的主要区别是( A )。(2分) A、do—while的循环体至少无条件执行一次 B、while的循环控制条件比do—while的循环控制条件严格 C、do—while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 105、对于程序段 int k=0; while(k=1)k++; while 循环执行的次数是( A )。 (2分) A、无限次 B、有语法错,不能执行 C、一次也不执行 D、 执行1次 106、若I为整型变量,则for(I=2;I==1) printf(“%d”,I--);的循环执行次数是( B )。(2分) A、无限次B、0次 C、1次D、2次 107、以下正确的定义语句是(D )。(2分) A、int a[1][4]={1,2,3,4,5};B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 108、若有char a[80],b[80];则正确的是( D )。 (2分) A、puts(a,b);B、printf(\、putchar(a,b); D、puts(a);puts(b); 109、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是( B )。 (2分) A、s+1 B、s++ C、&s[0]+1 D、&s[1] 110、若有说明:int a[3][4];则数组a中各元素( C )。(2分) A、可在程序的运行阶段得到初值0 B、可在程序的编译阶段得到初值0 C、不能得到确定的初值 D、可在程序的编译或运行阶段得到初值0 8 111、函数调用语句fun((exp1,exp2), (exp3,exp4,exp5))中实参的个数是( B )。 (2分) A、1B、2 C、4D、5 112、有程序 char s[]=”ABCD”, *P; for(p=s+1; p A、ABCD BCD CD D B、A B C D C、B C D D、BCD CD D 113、当说明一个共用体变量时系统分配给它的内存是(C )(2分) A、各成员所需内存量的总和。 B、第一个成员所需内存量。 C、成员中占内存量最大者所需的容量。 D、最后一个成员所需内存量。 114、系统的标准输入文件是指是(A )(2分) A、键盘B、显示器 C、软盘D、硬盘 115、下列运算符中,结合性为自左向右的是(B)(2分) A、?: B、, C、+=D、++ 116、以下选项中正确的实型常量是(B)(2分) A、0 B、3.1415 C、0.03x10 D、.32 117、若变量c为char类型,能正确判断出c为小写字母的表达式是 (D)(2分) A、 'a'<=c<= 'z' B、 (c>= 'a')||(c<= 'z') C、 ('a'<=c)and ('z'>=c) D、 (c>= 'a')&&(c<= 'z') 118、若所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)(2分) A、7 B、8 C、6D、2 119、若执行以下语句:int a;float b,c;scanf(“-?O”, &a, &b, &c); printf(“\\na=%d,b=%f,c=%f\\n”,a, b, c);在键盘上从第一列开始,输入9876543210 A、a=98,b=765,c=4321B、a=10,b=432,c=8765 C、a=98,b=765.000000,c=4321.000000 D、a=98,b=765.0,c=4321.0 120、有以下语句 int m=0,n=0; char c='a'; scanf(\ printf(\若从键盘上输入:10A10<回车>,则输出结果是(A)(2分) A、10,A,10 B、 10,a,10 C、 10,a,0 D、 10,A,0 121、执行下列语句int x=10,y=10;printf(\后的输出是(D)(2分) A、10 10 B、9 9 C、9 10 D、10 9 122、下列表达式中,( C )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。 A、x%2==0 B、!x%2!=0 C、(x/2*2-x)==0 D、!(x%2) 123、已知:int n,i=1,j=2;执行语句n=i 124、执行语句for(I=1;I++<4; );后变量I的值是( C )。(2分) A、3 B、4 C、5 D、不定 125、a和b为int型变量,则执行a=1;b=10;do {b- =a;a++; } while (b--<0);后b的值为( C )。 (2分) A、9B、-2 C、-1D、8 126、有程序段char a[3],b[ ]=\ 则( C )。 (2分) A、运行后将输出China B、运行后将输出Ch C、编译出错 D、运行后将输出Chi 127、不能正确为字符数组输入数据的是( A )。 (2分) A、char s[5]; scanf(\,&s); B、char s[5]; scanf(\,s); C、char s[5]; scanf(\,&s[0]); D、char s[5]; gets(s); 9 128、程序段char s[]=\ (\的输出结果是( A )。(2分) A、9 B、12 C、13D、14 129、已知:char s[20]=\则不能引用字母o的表达式是 ( A )。 (2分) A、ps+2 B、s[2] C、ps[2] D、ps+=2,*ps 130下列关于文件打开方式“w”和“a”的描述中,错误的是(D )(2分) A、它们都可以向文件写入数据。 B、以“w”方式打开的文件从头写入数据。 C、以“a”方式打开的文件从尾写入数据。 D、它们都不清除原文件内容。 131、C语言程序的注释是(A)(2分) A、由\开头,\结尾B、由\开头,\结尾C、由\开头D、由\或\开头 133、若有以下类型说明语句:char w; int x; float y; double z;则表达式 w*x+z-y 的结果类型是(D)(2分) A、float B、char C、int D、double 134、以下选项中属于C语言的数据类型是(C)(2分) A、 复数型 B、 逻辑型 C、 双精度型 D、 集合型 `135、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 (c)(2分) A、 1 B、 2 C、 2.0 D、 2.5 137、对于程序段 int a,b=1,c=2; a=b+c,a+b,c+3; c=(c)?a++:b--; printf(\正确的说法是( A )。(2分) A、无错误B、第三句有错误C、第四句有错误D、第五句有错误 138、对于条件表达式(k)?(i++):(i--)来说,其中的表达式k等价于( C )。(2分) A、k==0 B、k==C、k!=0D、k!=1 139、以下描述正确的是( C )。(2分) A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。 C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while 140、若使用一维数组名作函数实参,则以下正确的说法是( A )。(2分) A、 必须在主调函数中说明此数组的大小 B、实参数组类型与形参数组类型可以不匹配 C、在被调函数中,不需要考虑形参数组的大小 D、实参数组名与形参数组名必须一致 141、函数从形式上可分为(B )两类。(2分) A、嵌套函数和被嵌套函数 B、无参函数和有参函数 C、标准函数和自定义函数 D、调用函数和被调用函数 142、已知:char b[5],*p=b;则正确的赋值语句是( D )。 (2分) A、b=\ B、*b=\ C、p=\ D、*p=\ 143、设有说明语句“struct stu{ int a; float b;}stutype;”,则叙述不正确的是(D )(2分) A、stuct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。 10 C、stutype是用户定义的结构体类型名。 D、a和b都是结构体成员名。 144、以“w+”方式打开一个文件,下列描述中正确的是( C)(2分) A、文件打开时,原有文件内容不被删除,位置指针移动文件末尾,可进行写和读操作。 B、文件打开时,原有文件内容不被删除,位置指针移动文件开头,可进行重写和读操作。 C、文件打开时,原有文件内容被删除,可进行写和读操作。 D、以上说法都不正确。 145、若变量已正确定义并赋值,下面符合C语言语法的表达式是(B)(2分) A、 a:=b+1 B、 a=b=c+2 C、 int 18.5%3 D、 a=a+7=c+b 146、为表示“x大于等于y, y大于等于z”,应使用C语言表达式(A)(2分) A、(x>=Y)&&(Y>=z) B、(x>=Y)AND(y>=z) C、(x>=Y>=z) D、(x>=Y)&(Y>=z) 147、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是(C)(2分) A、a=a+b, b=a-b, a=a-b; B、t=a; a=b; b=t; C、a=t; t=b; b=a;D、t=b; b=a; a=t; 148以下语句char c='a';if('a' 149、程序段 int a=1,b=2, c=3, t; while (a 150若二维数组a有m列,则在a[i][j]前面的元素个数为( 不 )。(2分) A、j*m+iB、i*m+j C、i*m+j-1D、i*m+j+1 151、以下不正确的定义语句是( B )。(2分) A、double x[5]={2.0,4.0,6.0,8.0,10.0}; B、int y[5]={0,1,3,5,7,9}; C、char c1[]={‘1’,’2’,’3’,’4’,’5’}; D、char c2[]={‘\\x10’,’\\xa’,’\\x8’}; 152、若有说明:int a[][4]={0,0};则下面正确的叙述是( )。(2分) A、数组a中每个元素均可得到初值0 B、二维数组a的第一维大小为1 C、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1 D、只有元 素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 153 表示指向结构体变量的指针的运算符是(C )(2分) A、>>B、<< C、-> D、: 155、若执行以下程序段: int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%d\\n”,a, b, c); 其输出结果是(B)(2分) A、0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10 156、程序段char a[7]=”abcdef”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]); 输出结果是( D )。(2分) A、一个空格 B、\\0 C、e D、f 157在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是( C )类型。(2分) A、void B、double C、int D、char 158、对于某个函数调用,不用给出被调用函数的原形的情况是( C )。(2分) A、被调用函数是无参函数 B、被调用函数是无返回值的函数 C、函数的定义在调用处之前 11 D、函获得的定义在别的程序文件中 5、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分) A、 2.500000 B、 2.750000 C、 3.500000 D、 0.000000 160、以下运算符中,运算对象必须是整型的是 (B)(2分) A、 / B、 %= C、 != D、〈= 7、若变量已正确说明为float类型,要通过语句scanf(\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:(B)(2分) A、 10<回车>22<回车>33<回车>B、 10.0,22.0,33.0<回车>C、 10.0<回车>22.0 33.0<回车> D、 10 22<回车>33<回车> 161、若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是( C )。(2分) A、①和②B、②和③C、①和③D、③和④ 162、在C语言中,一位数组的定义方式为:类型说明符 数组名(A)。(2分) A、[常量表达]B、整型表达式C、[整型常量]或[整型表达式] D、[整型常量] 163、若用数组名作为函数调用的实参,传递给形参的是( A )。(2分) A、数组的首地址B、数组第一个元素的值C、数组中全部元素的值D、数组元素的个数 164、能正确进行字符串赋值的是( B )。 (2分) A、char s[5]={'a','e','i','o','u'}; B、char s[5]; s=\、char s[5]=\ D、char s[5]; s[ ]=\ 165、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为( D )。 (2分) A、该数组的长度 B、该数组的元素个数 C、该数组中各元素的值D、该数组的首地址 166、已知:int a[10],*p=a;则下面说法不正确的是 ( A )。(2分) A、p指向数组元素a[0] int a[10],*p=&a[0];与上述语句等价 D、以上均不对 167、下列关于文件指针的描述中,错误的是(D )(2分) A、文件指针是由文件类型FILE定义的。 B、文件指针是指向内存某个单元的地址值。 C、文件指针是用来对文件操作的标识。 D、文件指针在一个程序中只能有一个。 168C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的(B)(2分) A、适应性B、移植性 C、兼容性D、操作性 169、以下叙述不正确的是(D)(2分) A、在C程序中,逗号运算符的优先级最低 B、在C程序中,APH和aph是两个不同的变量 C、若a和b类型相同,在执行了赋值表达式a=b后b的值将放入a中,而b的值不变 D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 170、逻辑运算符两侧运算对象的数据类型可以是( D )。(2分) A、只能是0或1B、只能是0或非0正数 C、只能是整型或字符型数据 D、可以是任何类型的数据 171、设int a=3,b=4,c=5,则下面表达式中,值为0的表达式是( D )。 (2分) A、'a'&&'b'B、a<=b C、a||b+c&&b-cD、!((a 172、有int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此处循环的结束条件是( D )。(2分) B、数组名a表示数组中第一个元素的地址 C、 12 A、P的值不等于12345并且n的值小于3 B、P的值等于12345并且n的值大于等于3 C、P的值不等于12345或者n的值小于3 D、P的值等于12345或者n的值大于等于3 173、 一个完整的C源程序是( B )。 (2分) A、要由一个主函数(或)一个以上的非主函数构成 B、由一个且仅由一个主函数和零个以上(含零)的非主函数构成 C、要由一个主函数和一个以上的非主函数构成 D、由一个且只有一个主函数或多个非主函数构成 174、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是( D )。(2分) A、extern B、register C、autoD、static 175、已知:char s[10],*p=s;则在下列语句中,错误的语句是 ( B )。(2分) A、p=s+5; B、s=p+s; C、s[2]=p[4]; D、*p=s[0]; 1`76、以“w+”方式打开一个文件,下列描述中正确的是(B )(2分) A、被打开的文件一定要存在。 B、被打开的文件既可以写又可以读。 C、被打开的文件内容不被删除。 D、被打开的文件可以是文本文件,也可以是二进制文件或其它类型的文件。 177、在C语言中,int型数据在内存中是以(B)形式存储的。(2分) A、原码 B、补码 C、ASCII码 D、反码 179、若要用fopen函数打开一个新的二进制文件,该文件既能读也能写,则文件打开方式为(B )(2分) A、ab+B、wb+ C、rb+D、ab 180、若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是(C)(2分)A、a=b=c=100; B、d++; C、c+b; D、d=(c=22)-(b++); 181下列循环语句会进入死循环的是( c )。 (2分) A、i=0; do { i++; }while(i = =100); B、for(i=0; i<100; i+=3.14); C、for(i=0; ; i+=2); D、k=1; do { k--;} while(k); 183、下面的函数是无参函数的是A )。(2分) A、main()B、int max(int x, int y) C、return(z)D、scanf(\ 184、有函数fun ( float x ) { float y; y= 3*x-4; return y; },其函数值的类型是( D )。(2分) A、intB、不确定 C、void D、float 185、下述标识符中,(B)是合法的用户标识符。(2分) A、 A#C B、 getch C、 void D、 ab* 188、以下运算符中优先级最低的算符为(B)(2分) A、&& B、 ?: C、!= D、|| 190、执行语句int x=5,a=0,b=0;if(x=a+b) printf(\后,结论是( D )。(2分) A、有语法错,不能通过编译B、能通过编译,但不能连C、输出****D、输出 #### 191、以下描述正确的是(C )。(2分) A、goto语句只能用于退出多层循环B、switch语句中不能出现continue语句 C、只能用continue语句来终止本次循环D、在循环中break语句不能独立出现 192、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是( D )。(2分) A、用户指定传递方式B、无传递C、单向值传递D、地址传递 193、以下所列的各函数首部中,正确的是( C )。(2分) 13 A、void play(var a:integer,var b:integer) B、void play(int a,b) C、void play(int a,int b) D、sub play(a as integer,b as integer) 194、已知:char s1[4]=\char *ptr; 则执行ptr=s1; printf(\语句后输出为 ( A )。 (2分) A、字符'2' B、字符'1' C、字符'2'的地址 D、不确定 195、若变量已正确定义,执行以下语句: x=5.16894; printf(“%f\\n”, (int)(x*1000+0.5)/(float)1000); 的输出结果是(D)(2分) A、输出格式说明与输出项不匹配,输出无定值 B、5.17000 C、5.168000 D、5.169000 196、在C语言中,以下正确的描述是( B )。(2分) A、 函数的定义可以嵌套,但函数的调用不可以嵌套B、 函数的定义不可以嵌套,但函数的调用可以嵌套 C、 函数的定义和函数的调用均不可以嵌套D、 函数的定义和函数的调用均可以嵌套 197、下述对C语言字符数组的描述中错误的是( C )。(2分) A、字符数组可以存放字符; B、字符数组中的字符串可以整体输入、输出; C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值; D、不可以用关系运算符对字符数组中的字符串进行比较。 199、C语言程序由函数组成,它的( B )。(2分) A、主函数必须在其它函数之前,函数内可以嵌套定义函数 函数内不可以嵌套定义函数 C、主函数必须在其它函数之前,函数内不可以嵌套定义函数 D、主函数必须在其它函数之后,函数内可以嵌套定义函数 200、在定义函数中指定的形参,在未出现函数调用时(B )。(2分) A、占用固定大小的内存B、不占用内存C、不确定D、占用大小不确定的内存 201、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)(2分) A、 必须为字母 B、 必须为下划线 C、 必须为字母或下划线 D、 可以是字母,数字和下划线中任一字符 202、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(D)(2分) A、scanf(\、scanf(\ C、scanf(\ D、scanf(\ 203、若有定义: int a[5]; 则对数组中首元素的地址可以表示为(C)。(2分) A、&a B、a+1 C、a D、&a[1] 204、在C语言中,以下数据类型关键字不合法的是(C)(2分) A、double B、short C、integer D、char 205、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(\为了把100和765.12 分别赋给i和f,则正确的输入为(B)(2分) A、 100765.12 B、 i=100,f=765.12 C、 100 765.12 D、 x=100y=765.12 206、若已定义char s[2][40]={\;则在下面表达式中能表示字符‘E’的地址的是( C )。 (2分) A、&s[2][1] B、s[1] C、&s[1] D、&(s[1]+1) 207、以下正确的说法是( C )。(2分) A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为 B、主函数可以在其它函数之后, 14 准 D、如果形参与实参的类型不一致,以实参类型为准 208、已知:int a[]={1,2,3,4},y,*p=&a[0]; 则执行语句\后,下面( A )元素的值发生了变化。 A、a[0] B、a[1] C、a[2] D、都没发生变化 209、已有定义“struct xy{int a; double b;}m;”,变量m的成员a的正确表示是(A )(2分) A、m.a B、m->a C、*m.a D、xy.a 210、下列打开文件的方式中,对二进制文件操作的是(D )(2分) A、rB、a C、w+ D、rb+ 211、以下不是关键字的是(C)(2分) A、continue B、char C、If D、default 212、下面有关for循环的正确描述是( D )。(2分) A、for循环只能用于循环次数已经确定的情况。 B、for循环是先执行循环体语句,后判断表达式。 C、在for循环中,不能用break语句跳出循环体。 D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。 214、已知:char s[100]; int i=10;则在下列引用数组元素的语句中,错误的表示是 ( D )。(2分) A、s[i+10] B、*(s+i) C、*(i+s) D、*((s++)+i 一、单项选择题(25道小题,共50分) 1、C语言规定,在一个源程序中,main函数的位置(C) (2分) A、必须在最开始 B必须在系统调用的库函数的后面 C、 可以任意 D、 必须在最后 2、以下叙述中正确的是 (C)(2分) A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法可以没有输入但必须要有输出 D、用C程序实现的算法可以既没有输入也没有输出 3、以下叙述不正确的是(D)(2分) A、在C程序中,逗号运算符的优先级最低 B、在C程序中,APH和aph是两个不同的变量 C、若a和b类型相同,在执行了赋值表达式a=b后b的值将放入a中,而b的值不 D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 4、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)(2分) A、 必须为字母B、 必须为下划线 C、 必须为字母或下划线 D、 可以是字母,数字和下划线中任一字符 5、在C语言中,int型数据在内存中是以(B)形式存储的。(2分) A、原码 B、补码 C、ASCII码 D、反码 6、已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1 && y+z/2的值是(D)(2分) A、 6 B、 0 C、 2 D、 1 7、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(D)(2分) A、scanf(\、scanf(\、scanf(\、scanf(\ 8、执行下列语句: double d; float f; long L; int i; i=f=L=d=20/3; printf(\ 输出结果是(小数点后只写一位) (A)(2分) A、6 6 6.0 6.0 B、 6 6 6.7 6.7 C、6 6 6.0 6.7 D、 6 6 6.7 6.0 15 9、若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(A)(2分) A、 0 B、 0.5 C、 1 D、 2 10、下述表达式中,( A )可以正确表示x≤0或x≥1的关系。(2分) A、(x>=1) || (x<=0) B、x>=1 | x<=0 C、x>=1 && x<=0 D、(x>=1) && (x<=0) 11、以下语句char c='a';if('a' A、LOW B、UP C、LOWUP D、语句错误,编译不能通过 12、程序int k= 4,a=3,b=2,c=1;printf(\的运行结果是( D )。 (2分) A、4 B、3 C、2 D、1 13、对于程序段int x=-1; do { x=x*x; }while(!x);说法正确的是(C )。(2分) A、是死循环 B、循环执行两次 C、循环执行一次 D、有语法错误 14、设有int k=10;while (k=0) k=k-1;则下面描述中正确的是( C )。 (2分) A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行D、循环体语句执行一次 15、下列循环语句会进入死循环的是( C )。 (2分) A、i=0; do { i++; }while(i = =100); B、for(i=0; i<100; i+=3.14); C、for(i=0; ; i+=2); D、k=1; do { k--;} while(k); 16、以下描述正确的是( C )。(2分) A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。 C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while 17、以下对二维整形数组a的正确说明是( C )。(2分) A、int a[3][]; B、float a(3,4); C、double a[1][4]; D、float a(3)(4) 18、对两个字符数组a和b进行初始化char a[ ]=\ char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是( D )。 (2分) A、a与b数组完全相同 B、a与b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 19、以下不正确的定义语句是(B )。(2分) A、double x[5]={2.0,4.0,6.0,8.0,10.0}; B、int y[5]={0,1,3,5,7,9}; C、char c1[]={‘1’,’2’,’3’,’4’,’5’}; D、char c2[]={‘\\x10’,’\\xa’,’\\x8’}; 20、程序段 char c[ ]=\ printf(\的运行结果是( B )。 (2分) A、14 B、3 C、9 D、字符串中有非法字符,输出值不确定 21、实际参数不能是(D )。(2分) A、常量 B、变量 C、表达式 D、不确定值 22、函数调用结束后,形式参数(C )。(2分) A、继续占用相同大小的内存 B、占用的内存减小 C、释放内存 D、不确定 23、已知:int a,*p=&a;则下列函数调用中错误的是( D )。(2分) A、scanf(\ B、scanf(\ C、printf(\ D、printf(\ 24、设有说明语句“struct stu{ int a; float b;}stutype;”,则叙述不正确的是D )(2分) A、struct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。 C、stutype是用户定义的结构体变量名。 D、a和b都是结构体变量。 16 25、系统的标准输入文件是指是(A )(2分) A、键盘 B、显示器 C、软盘 D、硬盘 26、C语言程序的执行,总是起始于(C)(2分) A、程序中的第一条可执行语句 B、程序中的第一个函数 C、main函数 D、包含文件中的第一个函数 27、以下不是结构化程序设计方法的是(B)(2分) A、循环结构 B、模块结构 C、顺序结构 D、选择结构 28、优先级最高的为(C)。(2分) A、 && B、 ?: C、 != D、 || 29、以下选项中正确的整型常量是(B)(2分) A、5. B、-10 C、1.000 D、4/5 30、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000 31、以下选项中,与k=n++完全等价的表达式是(A)(2分) A、 k=n,n=n+1 B、 n=n+1,k=n C、 k=++n D、 k+=n+1 32、以下选项中不是C语句的是(C)(2分) A、{int i; i++; printf(“%d\\n”, i); } B、; C、a=5,c=10 D、{ ; } 33、若变量已正确说明,要求用语句:scanf(“%f%c%f%c”, &a, &c1, &b, &c2);给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是(B)(2分) A、2.0 % 4.0 # B、2.0%4.0# C、2% 4# D、2 % 4 # 34、执行以下语句 int x=102,y=012; printf(\后输出结果是(C)(2分) A、10,01 B、002,12 C、102,10 D、02,10 35、设char ch='A';则ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是( B )。 (2分) A、A B、a C、Z D、z 36、以下错误的if语句是( C )。(2分) A、if(x>y) z=x; B、if(x==y) z=0; C、if(x!=y) printf(\(2分) A、0 B、3 C、2 D、1 38、程序段for (i=2; i==0; ) printf(“%d” , i--) ;的循环次数是( A )。(2分) A、无限次 B、0次 C、1次 D、2次 39、程序段 int a=1,b=2, c=3, t; while (a A、1,2,0 B、2,1,0 C、1,2,1 D、2,1,1 执行语句for (i=1;i++<4;) ; 后变量i的值是( C )。(2分) A、3 B、4 C、5 D、不定 40、while构成的循环int ks=0; while (ks=2) ks++;执行的次数是( A )。 (2分) A、无限次 B、有语法错误,不能执行 C、一次也不执行 D、执行一次 41、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是(C )。(2分) A、用户指定传递方式B、无传递 C、单向值传递 D、地址传递 42、在C语言中,一位数组的定义方式为:类型说明符 数组名(A )。(2分) A、[常量表达] B、整型表达式 C、[整型常量]或[整型表达式] D、[整型常量]