【通用】C语言选择题(1-4章期末复习).docx

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

第1章
1.以下叙述不正确的是()。

A、C程序的基本组成单位是函数
B、在C程序中,注释说明只能位于一条语句的后面
C、一个C源程序必须包含一个main函数
D、一个C源程序可由一个或多个函数组成
2.C语言的注释定界符是()。

A、\* *\
B、{ }
C、[ ]
D、/* */
3.C语言规定,在一个源程序中,main函数的位置()。

A、必须在最开始
B、必须在系统调用的库函数的后面
C、必须在最后
D、可以任意
4.一个C程序的执行是从()。

A、本程序文件的第一个函数开始,到本程序main函数结束
B、本程序的main函数开始,到main函数结束
C、本程序的main函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
5.以下叙述中正确的是()。

A、C程序中注释部分可以出现在程序中任意合适的地方
B、分号是C语句之间的分隔符,不是语句的一部分
C、花括号“{“和”}”只能作为函数体的定界符
D、构成C程序的基本单位是函数,所有函数名都可以由用户命名
6.以下叙述正确的是()。

A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误
B、C语言本身没有输入输出语句
C、在C程序中,main函数必须位于程序的最前面
D、C程序的每行中只能写一条语句
7.C语言源程序的基本单位是()。

A、子程序
B、过程
C、函数
D、标识符
8.下列标识符中,不合法的C语言用户自定义标识符是()。

A、printf
B、sin
C、enum
D、_
9.下列四个选项中,均是C语言关键字的选项是()。

A、if struct type
B、switch typedef continue
C、signed union scanf
D、auto enum include
10.以下叙述中错误的是()
A、用户所定义的标识符应尽量做到"见名知意"
B、用户所定义的标识符允许使用关键字
C、用户定义的标识符中,大、小写字母代表不同标识
D、用户所定义的标识符必须以字母或下划线开头
11.下列字符序列中,可用作C标识符的一组字符序列是()。

A、#md,&12x,month,student_n!
B、D56,r_1_2,name,_st_1
C、S.b,sum,average,_above
D、class,day,lotus_1,2day
12.下面四个选项中,均是不合法的用户标识符的选项是()。

A、_123 temp int
B、A P_0 do
C、b-a goto int
D、float la0 _A
13.下列四组选项中,均不是C语言关键字的选项是()。

A、file IF type
B、include scanf case
C、while go pow
D、getc char printf
14.下列字符序列中,不可用作C语言标识符的是()。

A、symbol
B、#ab
C、a_1
D、b70
15.C语言中不合法的字符串量是()
A、”\121”
B、’y=’
C、”ABCD\x6d”
D、”\n\n”
16.下列数据中,为字符串常量的是()。

A、$abc
B、"house"
C、A
D、How do you do.
17.C语言中不合法的字符常量是()
A、’\65’
B、’\xff’
C、’\028’
D、’&’
18.设有语句char a= ‘\172’;,则变量a()
A、说明不合法
B、包含2个字符
C、包含1个字符
D、包含3个字符
答案:C
19.以下常量中,能够代表逻辑“真”值的常量是()。

A、‘\0'
B、'0'
C、0
D、NULL
20.以下所列的C语言常量中,错误的是()。

A、0xFF
B、2L
C、'\72'
D、1.2e0.5
21.以下数据中,不正确的数值或字符常量是()。

A、10
B、0xff00
C、8.9e1.2
D、82.5
22.以下数据中,不正确的数值或字符常量是()。

A、0xaa
B、66
C、c
D、50
23.与十进制数97不等值的字符常量是()
A、’\101’
B、’\x61’
C、’\141’
D、’a’
24.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是()
A、非法的常量
B、字符a
C、字符e
D、字符A
25.不合法的八进制数是()
A、01
B、0
C、07700
D、028
26.要将字符a赋给变量c,下列语句中正确的是()。

A、c="a";
B、C='97';
C、c='a';
D、c="97";
27.设C语言中,int类型数据占2个字节,则long类型数据占()。

A、8个字节
B、2个字节
C、1个字节
D、4个字节
28.设C语言中,int类型数据占2个字节,则short类型数据占()。

A、1个字节
B、2个字节
C、8个字节
D、4个字节
29.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()
A、由C语言编译系统决定
B、均占4个字节
C、由用户自己定义
D、根据数据的大小来决定所占内存的字节数
30.C语言中,字符(char)型数据在微机内存中的存储形式是()
A、反码
B、EBCDIC码
C、ASCII码
D、补码
31.C语言中,char类型数据占()。

A、2个字节
B、8个字节
C、4个字节
D、1个字节
32.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为()。

A、0—255
B、0—2147483647
C、0—32767
D、0--65535
33.C语言中,double类型数据占()。

A、4个字节
B、1个字节
C、2个字节
D、8个字节
34.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为()
A、float
B、int
C、double
D、char
35.C语言中要求对变量作强制定义的主要理由是()。

A、便于移植
B、便于确定类型和分配空间
C、便于编辑预处理程序的处理
D、便于写文件
36.若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j和k的值为()
A、j=3, k=3
B、j=4, k=4
C、j=3, k=4
D、j=4, k=3
37.设有 int x=11; 则表达式 (x++ * 1/3) 的值是()。

A、3
B、4
C、11
D、12
38.以下选项中,与k=n++完全等价的表达式是()。

A、k=++n
B、k+=n+1
C、k=n,n=n+1
D、n=n+1,k=n
39.执行下列语句后变量x和y的值是()。

y=10;x=y++;
A、x=10,y=10
B、x=11,y=10
C、x=11,y=11
D、x=10,y=11
40.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。

int x=1,y=2,z=3;
A、6
B、3
C、2
D、5
41.设 int x=1, y=1; 表达式(!x||y--)的值是()。

A、-1
B、0
C、2
D、1
42.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。

A、int 18.5%3
B、a:=b+1
C、a=a+7=c+b
D、a=b=c+2
答案:D
43.如果p是一个整型数,下列表达式始终为真的是( )。

A、p && p
B、p || p
C、p && !p
D、p || !p
44.能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是()
A、a>=0 && a<=10
B、a>=10 or a<=0
C、a>=10 && a<=0
D、a>=10 || a<=0
45.以下运算符中,优先级最高的运算符是()。

A、+
B、*=
C、>=
D、(类型)
46.下列运算符中优先级别最高的是( )
A、!
B、%
C、-=
D、&&
47.以下关于运算符优先顺序的描述中正确的是()。

A、赋值运算符<逻辑运算符<关系运算符<算术运算符
B、算术运算符<关系运算符<赋值运算符<逻辑运算符
C、逻辑运算符<关系运算符<算术运算符<赋值运算符
D、关系运算符<算术运算符<赋值运算符<逻辑运算符
48.以下的选择中,正确的赋值语句是()。

A、y=int(x)
B、j++
C、a=b=5;
D、a=1,b=2
49.以下非法的赋值语句是( )
A、j++;
B、x=j>0;
C、n=(i=2,++i);
D、++(i+1);
50.以下不符合C语言语法的赋值语句是()。

A、a=b=5;
B、a=1,b=2
C、++j;
D、y=(a=3,6*5);
51.如果int a=2,b=3,c=0,下列描述正确的是( )
A、a||(b=c)执行后b的值为0
B、a>b!=c和a>(b!=c)的执行顺序是一样的
C、a&&b>c的结果为假
D、!a!=(b!=c)表达式的值为1
52.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是( )
A、6
B、1
C、0
D、2
53.若给定条件表达式(M)?(a++):(a--),则其中表达式M()。

A、和(M!=1)等价
B、和(M==1)等价
C、和(M!=0)等价
D、和(M==0)等价
54.用下列语句定义a,b,c,然后执行b=a、c='b'+b,则b,c的值是()。

long a=3;
int b; char c;
A、2和101
B、3和101
C、3和100
D、3 和99
55.表达式18/4*sqrt(4.0)/8值的数据类型为()。

A、不确定
B、double
C、int
D、float
56.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A、9
B、-12
C、6
D、-3
57.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足
要求的表达式是()。

A、!(A%2)
B、A%2==1
C、!(A%2==0)
D、A%2
58.判断char型变量cl是否为小写字母的正确表达式是()。

A、(cl>=a)&&(cl<=z)
B、'a'<=cl<='z'
C、('a'>=cl)||('z'<=cl)
D、(cl>='a')&&(cl<='z')
59.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

A、7
B、2
C、6
D、8
60.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)
运算后,n的值为()。

A、3
B、0
C、1
D、2
61.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。

A、1
B、2.0
C、2.5
D、2
62.已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||year%400==0的值为“真”的数据是
()。

A、1992
B、1990
C、2000
D、1996
63.能正确表示逻辑关系:"10≥a≥0"的C语言表达式是()。

A、a>=0||a<=10
B、a>=10‖a<=0
C、a<=10 && a>=0
D、a>=10&&a<=0
64.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。

A、6
B、17
C、23
D、8
65.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。

A、3.500000
B、0.000000
C、2.750000
D、2.500000
第2章
1. b reak语句的正确的用法是()。

A、无论在任何情况下,都中断程序的执行,退出到系统下一层。

B、在多重循环中,只能退出最靠近的那一层循环语句。

C、跳出多重循环。

D、只能修改控制变量。

2.对于以下程序片段,描述正确的是()。

int x = -1;
do {
x = x * x;
}while(!x);
A、是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误
3.两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。

int x;
scanf(“%d”,&x);
if(x++>5)
printf(“%d”,x);
else printf(“%d\n”,x - -);
A、7和5
B、6和3
C、7和4
D、6和4
4. 为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关
系。

A、缩排位置相同的if
B、在其之前未配对的if
C、在其之前未配对的最近的if
D、同一行上的if
5.下列程序段的输出结果是()
int x=0;
while(++x<3)
printf("%4d",x);
A、4
B、0 1 2
C、1 2
D、3
6.循环结束后,count 的值是()
count=1;
while(count<=145)
{
a=a+7;
count++;
}
A、1
B、144
C、145
D、146
7.有如下程序片段:
int i = 0;
while(i++ <= 2);
printf("%d", i);
则正确的执行结果是( )
A、2
B、3
C、4
D、以上都不对
8.在下面的条件语句中(其中S1和S2表示C语言的语句),只有一个在功能上与其他3条语句不等价,
它是()
A、if(a) S1; else S2;
B、if(a==0) S2; else S1;
C、if(a!=0) S1; else S2;
D、if(a==0) S1; else S2;
9.执行下列代码后的输出是( ).
int a=1,b=0;
switch (a){
case 1:
switch(b) {
case 0: printf("**0**");
break;
case 1: printf("**1**");
break;
}
case 2:
printf("**2**");
break; }
A、**0**
B、**0****2**
C、**0****1****2**
D、运行出错
10.执行下列语句后,sum 的值是()。

sum=0;
for(count=1;count<=5;count++)
sum=sum+2*count;
A、28
B、18
C、10
D、30
第3章
===================================================================================
1.以下不正确的说法是:C语言规定( B )。

A、形参应与其对应的实参类型一致
B、形参可以是常量,变量或表达式
C、形参应与其对应的实参个数一致
D、实参可以是常量,变量或表达式
2.下面叙述中不正确的是( B )
A、函数可以返回一个值,也可以什么值也不返回
B、空函数不完成任何操作,所以在程序设计中没有用处
C、声明函数时必须明确其参数类型和返回类型
D、用户若需调用标准库函数,调用前要使用预编译命令将该函数所在文件包括到用户源文件中
3.以下函数调用语句中实参的个数是( D )。

exce((v1,v2),(v3,v4,v5),v6);
A、6
B、5
C、4
D、3
4.以下函数调用语句中,含有的实参个数是 func( (exp1, exp2), (exp3, exp4, exp5));
A、1
B、5
C、2
D、4
5.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。

A、函数调用可以作为一个函数的实参
B、函数调用可以出现在表达式中
C、函数调用可以作为一个函数的形参
D、函数调用可以作为独立的语句存在
6.函数的形式参数隐含的存储类型说明是()。

A、static
B、register
C、extern
D、auto
7.C语言规定,函数返回值的类型是由()。

A、调用该函数时的主调函数类型所决定
B、return语句中的表达式类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定
8.关于return语句,下列正确的说法是()。

A、可以在同一个函数中出现多次
B、使用return语句只能返回整型数据
C、必须在每个函数中出现
D、只能在除主函数之外的函数中出现一次
9.以下正确的说法是:在C语言中()。

A、实参和与其对应的形参各占用独立的存储单元
B、形参是虚拟的,不占用存储单元
C、只有当实参和与其对应的形参同名时才共占用存储单元
D、实参和与其对应的形参共占用一个存储单元
10.下面叙述中错误的是()
A、在其它函数中定义的变量在主函数中也不能使用
B、主函数中定义的变量在整个程序中都是有效的
C、形式参数也是局部变量
D、复合语句中定义的变量只在该复合语句中有效
11.C语言中不可以嵌套的是()。

A、选择语句
B、循环语句
C、函数调用
D、函数定义
12.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( )的可执行文件
A、.obj
B、.exe
C、.c
D、.bas
13.C语言中,如果函数不需要返回值,函数类型应该定义为()。

A、double
B、int
C、void
D、float
14.若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数()。

A、没有返回值
B、返回若干个系统默认值
C、返回一个不确定的值
D、能返回一个用户所希望的值
15.C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。

A、由实参传给形参,再由形参传回给实参
B、由用户指定的传递方式
C、单向值传递
D、地址传递
16.下面所列举的函数名正确且具有良好风格的是( )。

A、abcde()
B、GetNumber()
C、find@()
D、gotofirstline()
17.C语言程序中必须有的函数是()。

A、#include "stdio.h"
B、main
C、printf
D、scanf
18.C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。

A、int
B、void
C、char
D、double
19.以下正确的描述是:在C语言程序中()。

A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均可以嵌套
D、函数的定义和函数的调用均不可以嵌套
20.C语言中函数调用的方式有()。

A、函数调用作为语句或函数表达式两种
B、函数调用作为语句一种
C、函数调用作为语句、函数表达式或函数参数三种
D、函数调用作为函数表达式一种
21.对于返回值是void类型的函数,调用时不可作为()。

A、以上答案都不对
B、if语句的内嵌语句
C、循环体里的语句
D、表达式的一部分参与计算
22.对于建立函数的目的,正确的说法是()
A、提高程序的执行效率
B、减少程序的篇幅
C、减少程序文件所占的内存
D、提高程序的可读性
23.以下叙述正确的是()
A、C程序中各函数之间允许直接递归调用不允许间接递归调用
B、C程序中各函数之间不允许直接递归调用允许间接递归调用
C、C程序中各函数之间不允许直接递归调用也不允许间接递归调用
D、C程序中各函数之间既允许直接递归调用也允许间接递归调用
24.执行下面程序后,输出结果是()。

main()
{ int a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
int max(int x,int y)
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
A、18
B、27
C、45
D、72
25.以下程序的输出结果为()。

main()
{int a=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
int func(int x,int y)
{ return(x+y); }
A、15
B、9
C、13
D、函数调用出错
26.下列存储类别中,()的可见性与生存期不一致。

A、外部变量
B、自动变量
C、静态变量 D. 寄存器变量
27.以下函数的类型是()。

fff(float x)
{ return 5; }
A、无法确定
B、int类型
C、与参数x的类型相同
D、void 类型
28.下列说法不正确的是()。

A、在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效
B、形式参数是局部变量
C、不同函数中,可以使用相同名字的变量
D、主函数main中定义的变量在整个文件或程序中有效
29.以下关于变量beta的说法正确的是( )。

void fun(int a)
{
static int beta=25;

}
A、当首次调用函数时被初始化一次。

B、每次调用函数时都要进行初始化。

C、在函数中不能改变它的值。

D、A和C都对
30.全局变量的定义不可能在()。

A、函数内部
B、文件外面
C、最后一行
D、函数外面
31.以下不正确的说法是:C语言规定()。

A、实参可以为任何类型
B、形参可以是常量,变量或表达式
C、形参应与其对应的实参类型一致
D、实参可以是常量,变量或表达式
32.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存
储类型是()
A、static
B、register
C、auto
D、extern
33.以下对C语言函数的描述中,正确的是()。

A、C函数既可以嵌套定义又可以递归调用
B、C程序必须由一个或一个以上的函数组成
C、函数必须有返回值,否则不能使用函数
D、C程序中有调用关系的所有函数必须放在同一个程序文件中
34.以下正确的函数原型为( )。

A、func (int x ; int y);
B、void (x , y);
C、void (int x , y);
D、void func (int , int);
35.有如下函数原型和变量定义:void fix(int, float &);
int someInt;
float someFloat;
下列最适合的函数调用是( )。

A、fix(24,6.85);
B、sumeFloat=0.3*fix(someInt,6.85);
C、fix(somInt, someFloat);
D、以上都不对
36.使用重载函数编程序的目的是( )。

A、使用相同的函数名调用功能相似的函数
B、共享程序代码
C、提高程序的运行速度
D、节省存储空间
37.C++中,关于参数默认值的描述正确的是( )。

A、只能在函数定义时设置参数默认值
B、设置参数默认值时,应当全部设置
C、设置参数默认值时,应当从右向左设置
D、设置参数默认值后,调用函数不能再对参数赋值
38.已知程序中已经定义了函数test,其原型是int test(int, int, int);则下列重载形式中错误的是
()
A、char test(int, int, int);
B、double test(int, int, double);
C、int test(int, int);
D、float test(int, int, float=3.5F);
39.以下描述中,正确的是()。

A、预处理是指完成宏替换和文件包含中指定的文件的调用
B、预处理指令只能位于C源文件的开始
C、C源程序中凡是行首以#标识的控制行都是预处理指令
D、预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
40.以下程序的输出结果是()
#define MIN(x, y) (x) < (y) ? (x) : (y)
main()
{ int i , j, k;
i = 10; j = 15;
k = 10 * MIN(i, j);
printf("%d\n", k);
}
A、10
B、150
C、15
D、100
41.下列程序运行结果为:()
#define P 3
#define S(a) P*a*a
main()
{int ar;
ar=S(3+5);
printf("\n%d",ar);
}
A、192
B、25
C、29
D、27
42.C程序中的宏展开是在()。

A、编译前预处理时进行的
B、编辑时进行的
C、编译时进行的
D、程序执行时进行的
43.宏定义#define PI 3.14中的宏名PI代替()
A、不确定类型的数
B、一个单精度实数
C、一个字符串
D、一个双精度实数
第4章
1.int a[4]={5,3,8,9};其中 a[3]的值为( )。

A、5
B、3
C、8
D、9
2.以下对一维整型数组a的正确说明是()。

A、int n; scanf("%d",&n); int a[n];
B、#define SIZE 10 (换行) int a[SIZE];
C、int a(10);
D、int n=10,a[n];
3.若有以下说明,则数值为 4 的表达式是( )。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;
A、a[g-c]
B、a[4]
C、a['d'-'c']
D、a['d'-c]
4.数组定义为 int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( )。

A、a[3][2]
B、a[2][1]
C、a[1][2]
D、a[2][3]
5.若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。

A、数组的第一个元素的值
B、数组的首地址
C、数组中全部元素的值
D、数组元素的个数
6.以下()能将数组元素初始化为10,20和30?
A、int data[3]={10,20,30};
B、int data[ ]={10,20,30};
C、int data[3]={10 20 30};
D、A和B都可以
7.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。

A、将5个初值依次赋给a[1]至a[5]
B、将5个初值依次赋给a[6]至a[10]
C、因为数组长度与初值的个数不相同,所以此语句不正确
D、将5个初值依次赋给a[0]至a[4]
8.int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是()。

A、for(i=1;i<11;i++)a[0]=1;
B、for(i=1;i<11;i++)a[i]=i;
C、for(i=1;i<11;i++)a[i+1]=i;
D、for(i=1;i<11;i++)a[i-1]=i;
9.若有说明:int a[10];则对a数组元素的正确引用是()。

A、a(5)
B、a[3,5]
C、a[10-10]
D、a[10]
10.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数
是()。

A、10
B、3
C、20
D、6
11.下列说法中错误的是( )
A、数组的名称其实是数组在内存中的首地址
B、一个数组只允许存储同种类型的变量
C、如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
D、当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改
12.若使用一维数组名作函数实参,则以下正确的说法是()。

A、必须在主调函数中说明此数组的大小
B、实参数组类型与形参数组类型可以不匹配
C、实参数组名与形参数组名必须一致
D、在被调用函数中,不需要考虑形参数组的类型
13.以下对二维数组a的正确说明是()。

A、float a(3,4);
B、int a[3][];
C、float a(3)(4);
D、double a[1][4];
14.以下正确的数组定义语句是()
A、int y[1][4]={1,2,3,4,5};
B、float x[3][]={{1},{2},{3}};
C、long s[2][3]={{1},{1,2,},{1,2,3}};
D、double t[][3]={0};
15.若有说明: int a[][4]={0,0};则下面不正确的叙述是()。

A、数组a的每个元素都可得到初值0
B、有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
C、二维数组a的第一维大小为1
D、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1
因为二维数组a中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加1,故数组a的行数为1
16.若二维数组a有m列,则在a[i][j]之前的元素个数为:()。

A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1
17.对两个数组a和b进行如下初始化:
char a[] = “ABCDEF”;
char b[] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则以下叙述正确的是()
A、a与b中都存放字符串
B、a数组比b数组长度长
C、a与b长度相同
D、a与b完全相同
18.设有数组定义: char array [ ]="China"; 则数组 array所占的空间为()。

A、5个字节
B、7个字节
C、4个字节
D、6个字节
19.下列数组说明中,正确的是()。

A、static char str[]; str="China";
B、static char str[]="China";
C、static char str1[5],str2[]={"China"}; str1=str2;
D、static char str1[],str2[];str2={"China"}; strcpy(str1,str2);
20.static char str[10]="China";数组元素个数为()。

A、5
B、10
C、6
D、9
21.若有定义语句:char c[5]={‘a’,’b’,’\0’,’c’,’\0’};,则执行语句pritnf(“%s”, c);的结
果是()
A、ab c
B、ab\0c
C、‘a’’b’
D、ab
22.若有 char s1[]="abc",s2[20];gets(s2); 则下列语句中能够实现当字符串s1大于字符串s2时,
输出s2的语句是()。

A、if(strcmp(s2,s1)>0) puts(s2);
B、if(strcmp(s1,s2)>0) puts(s2);
C、if(strcmp(s1,s2)==0) puts(s2);
D、if(strcmp(s1,s2)<0) puts(s2);
23.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是()。

A、strcat(a1,a2);
B、strcat(a2,a1);
C、strcpy(a2,a1);
D、strcpy(a1,a2);
24.char a[10];不能将字符串"abc"存储在数组中的是()。

A、strcpy(a,"abc");
B、int i;for(i=0;i<3;i++) a[i]=i+97; a[i]=0;
C、a="abc";
D、a[0]=0;strcat(a,"abc");
编程算法(函数实现):
●分段函数
●求和
精.选。

相关文档
最新文档