C语言基本选择题及答案Word文档下载推荐.docx
《C语言基本选择题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言基本选择题及答案Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
(D)
A.autoB.defineC.6aD.c
7.下列C语言用户标识符中合法的是(B)。
A)3axB)xC)caseD)-e2E)union
8.以下选项中合法的用户标识符是B
A)longB)_2TestC)3DmaxD)A.dat
9.下列四组选项中,正确的C语言标识符是(C)。
A)%xB)a+bC)a123D)123
10.请选出可用作C语言用户标识符的一组标识符(B)
A)voidB)a3_b3C)ForD)2a
define_123-abcDO
WORDsumCasesizeof
11、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\amone_halfstart$it3pai
C、str_1CpppowwhileD、PxqMy->
bookline#His.age
12.下列C语言标识符中合法的变量名是B。
A)2e3B)youC)*yD)float
13.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型D、整型、实型、字符型
14、下列可以正确表示字符型常量的是(A)。
A、’\t’B、”a”C、”\n”D、297
15.下列表达式中,D是正确的C语言字符常量。
A)”x”B)e3C)”COMPUTER”D)’#’
16.在下列表达式中,属于字符型常量的是B。
A)AB)'
a'
C)"
A"
D)b
17.以下选项中合法的字符常量是(B)
A)“B”B)‘\n’C)‘68’
D)E
18.下面字符常量表示错误的是(D)
A)’a’B)’?
’C)’\n’D)”\n”
19.已定义c为字符型变量,则下列语句中正确的是(C)
A)c='
97'
B)c="
97"
C)c=‘a’D)c="
a"
20.已知ch是字符型变量,不正确的赋值语句是(A)
A)ch='
a+b'
;
B)ch='
\0'
C)ch='
7'
D)ch=’;
’;
21.C语言中字符型(char)数据在内存中的存储的是(D)
A)原码B)补码C)反码D)ASCII码
22.在C语言中,字符型数据所占的内存空间是(C)
A)2个字节B)4字节C)1字节D)由用户自定义
*23.若int类型数据占2个字节,则unsignedint类型数据的取值范围是(B)
A)0~255B)0~65535C)-32768~32767D)-256~255
*24.若有以下类型说明语句:
chara;
intb;
floatc;
doubled;
则表达式a*b+d-c的结果类型为(D)
A)floatB)charC)intD)double
*25.若有以下类型说明语句:
charw;
intx;
floaty;
doublez;
则表达式w-x*y/z的结果为(D)类型,表达式(int)(x+y-z*w)的结果为(C)类型。
A)floatB)charC)intD)double
26.C语言中运算对象必须是整型的运算符是(A)
A)%=B)/C)=D)〈=
27.在C语言程序中,表达式8/5的结果是(B)
A)1.6B)1C)3D)0
28.设x为int型变量,则执行以下语句后,x的值为B
x=10;
x+=x;
A)10B)20C)40D)30
29.在C语言程序中,表达式5%2的结果是C。
A)2.5B)2C)1D)3
30.如果inta=3,b=4;
则条件表达式"
a<
b?
a:
b"
的值是__A__。
A)3B)4C)0D)1
31.若intx=2,y=3,z=4则表达式x<
z?
y:
z的结果是(B).
A)4B)3C)2D)0E)1
32.C语言中,关系表达式和逻辑表达式的值是(B)。
A)0B)0或1C)1D)‘T’或’F’
33.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是(D)
A、’a’&
&
’b’B、a<
=b
C、a||b+c&
b-cD、!
((a<
b)&
!
c||1)
34.下面(D)表达式的值为4.
A)11/3
B)11.0/3
C)(float)11/3
D)(int)(11.0/3+0.5)
*35.已知intx=5,y=5,z=5;
执行语句x%=y+z;
后,x的值是(C)
A.0B.1C.5D.6
36.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='
A'
+'
6'
-'
3'
;
后,c2中的值为(B)
A)68B)‘D’C)错误D)‘d’
37.下列关于C语言的叙述错误的是(A )
A)大写字母和小写字母的意义相同
B)不同类型的变量可以在一个表达式中
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
38.有:
intw=11,x=12,y=3,m;
执行下面语句后m的结果是(C)
m=(w<
x)?
w:
x;
m=(m<
y)?
m:
y;
A.1B.2C.3D.以上结果都不对
39.有:
intw=7,x=12,y=3,m;
执行下面语句后m的值是(A)
m=(w>
m=(m>
A.12B.0C.3D.1
40.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B )
A.b=1.0/aB.b=(float)(1/a)
C.b=1/(float)aD.b=1/(a*1.0)
41.以下运算符中优先级最高的运算符是(B )
A)&
B)++C)+=D)!
=
42.若“intn;
floatf=13.8;
”,则执行“n=(int)f%3”后,n的值是(A)
A.1B.4C.4.333333D.4.6
43.设x为int型变量,则执行以下语句后,x的值为( C )
x*=x;
A)10B)20C)100D)0
44.若有语句inta=1,b;
doubley=2.3;
b=(int)y;
则b的值为(B)。
A)3B)2C)1D)2.3
45.已知intx;
chary;
则下面错误的scanf函数调用语句为(B)
A)scanf(“%d,%d”,&
x,&
y);
B)scanf(“%d,%c”,x,y)
C)scanf(“%d%d”,&
y)D)scanf(“%d,%c”,&
y)
46.在C语言的库函数中,可以输出char型变量x值的语句是C。
A)getchar(x);
B)fputc(x)C)putchar(x)D)puts(x)
47.以下说法正确的是(C)
A)'
x'
+5是一个错误的表达式
B)C语言不允许类型的混合运算
C)强制类型转换时,类型说明符必须加括号
D)(int)x+y和(int)(x+y)是完全等价的表达式
48.设intx=0,y=1;
表达式(x||y)的值是(B)
A)0B)1C)2D)-1
三、选择结构
1.在C语言中,认为(D)为逻辑"
真"
A)trueB)大于0的数C)非0整数D)非0的数
2.表示关系x<
=y<
=z的c语言表达式为A
A)(x<
=y)&
(y<
=z)B)(x<
=y)AND(y<
=z)
C)(x<
=z)D)(x<
3.能正确表示逻辑关系:
“a≥=10或a≤0”的C语言表达式是(D)
A)a>
=10ora<
=0B)a>
=0|a<
=10
C)a>
=10&
=0D)a>
=10‖a<
=0
4、判断char型变量c1是否为大写字母的表达式为(D)。
A、’A’<
=c1<
=’Z’B、(c1>
=’A’)&
(c1<
=’Z’)
C、(’A’<
=c1)AND(‘Z’>
=c1)D、c1>
=’A’&
c1<
=’Z’
5.为表示逻辑表达式79<
X<
90,应使用的C语言表达式是A。
A)(X>
79)&
(X<
90)B)(X>
79)!
=(X<
90)
C)79<
90D)(X>
79)||(X<
6.设有语句“inta=2,b=3,c=-2,d=2;
”,则逻辑表达式“a>
0&
b&
c<
d>
0”的值是(A )
A.1B.0 C.-1D.出错
7.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是( A)。
A.10<
15B.a==11||a==12||a==13||a==14
C.a>
10&
15D.!
(a<
=10)&
(a>
=15)
8.设x,t均为int型变量,则执行语句“x=10;
t=x&
x>
10;
”后,t的值为(D )
A.不定值 B.10C.1D.0
9.若inti=10;
执行下列程序后,变量i的正确结果是(A)。
switch(i)
{case9:
i+=1;
case10:
case11:
default:
}
A、13B、12C、11D、10
10.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是(D)。
A、if(a)s1;
elses2;
B、if(a==0)s2;
elses1;
C、if(a!
=0)s1;
D、if(a==0)s1;
11.假定所有变量均已正确定义,则下列程序段运行后y的值是(A )
inta=0,y=10;
if(a=0)y--;
elseif(a>
0)y++;
elsey+=y;
A.20B.11C.9D.0
12.假定所有变量均已正确定义,则下列程序段运行后x的值是(B )。
a=b=c=0;
x=35;
if(!
a)x--;
elseif(b);
if(c)x=3;
elsex=4;
A.34B.4C.35D.3
13.C语言对嵌套if语句的规定是:
else语句总是与(D)配对。
A)其之前最近的ifB)第一个if
C)缩进位置相同的ifD)其之前最近的且尚未配对的if
14.在C语言语句中,用来决定分支流程的表达式是(A )。
A.可用任意表达式 B.只能用逻辑表达式或关系表达式
C.只能用逻辑表达式 D.只能用关系表达式
15.C语言中用(B)表示逻辑“真”。
A.trueB.整数值1
C.非零整数值D.false
16、若k是int型变量,且有下面的程序段:
intk;
k=-3;
if(k<
=0)printf(“####”);
elseprintf(“&
”);
上面程序段的输出结果是(A)
A、####B、&
C、####&
D、有语法错误,无输出结果
17.main()
{intx=0,a=0,b=0;
switch(x){
case0:
b++;
case1:
a++;
case2:
b++;
}
printf(“a=%d,b=%d\n”,a,b);
该程序的输出结果是D
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
18.以下程序的输出结果是:
(C)
main()
{intx=-10,y=1,z=1;
if(x<
if(y<
0)z=0;
elsez=z+1;
printf(“%d\n”,z);
A.0B.1C.2D.3
19.以下程序段的输出结果是(B)
inta=10,b=50,c=30;
if(a>
b)
a=b;
b=c;
c=a;
printf("
a=%2db=%2dc=%2d\n"
a,b,c);
A)a=10b=50c=10B)a=10b=30c=10
C)a=50b=30c=10D)a=50b=30c=50
四、循环结构
*1.在C语言中,下列说法中正确的是(D )。
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)do-while语句构成的循环在while后的表达式非零时结束循环。
D)do-while语句构成的循环,在while后的表达式为零时结束循环。
2.break语句不能出现在(D )语句中
A.switchB.forC.whileD.if…else
*3.对于break语句和continue语句的说法错误的是(B)
A)break语句不能用于循环语句和switch语句之外的任何其他语句中。
B)break和continue也可以用于if语句中
C)continue语句只结束本次循环,而不是终止整个循环的执行。
D)break语句是结束整个循环过程,不再判断执行循环的条件是否成立。
4.语句while(!
y);
中的表达式!
y等价于A
A)y==0B)y!
=1C)y=!
0D)y==1
5.若有“inta=1,x=1;
”,则循环语句“while(a<
10)x++;
”的循环执行(A )
A.无限次 B.不确定次 C.10次 D.9次
6.有以下程序段
intk=0
while(k)k++;
则while循环体执行的次数是C
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
7.下列循环语句中有语法错误的是(D)
Awhile(x=y)5;
Bwhile(0);
Cdo2;
while(x==b);
Ddox++while(x==10);
*8.当运行时输入:
abcd$abcde,下面程序的运行结果是B
#include<
stdio.h>
{while(putchar(getchar())!
='
$'
);
end"
A)abcd$abcdeB)abcd$endC)abcdendD)abcd$abcdeend
9.以下程序段(A)
x=-1;
do{x=x*x;
while(x>
0);
A.是死循环B.循环执行一次C.循环执行二次D.有语法错误
10.下面程序段执行后的结果为:
(B)
intsum=0,n=10;
do{sum=sum+n;
n++;
while(n<
10)
printf(“%d,%d”,sum,n)
A.0,10B.10,11C.0,11D.以上结果都不对
11.对以下程序段的叙述正确的是___A____.
intx=1;
do
{x=-1*x;
while(!
x)
A)是死循环B)循环执行一次C)循环执行二次D)有语法错误
12.循环“for(i=0,x=1;
i=10&
0;
i++);
”的循环执行(A )。
A.无限次 B.不确定次 C.10次 D.9次
13.执行语句{for(j=0;
j<
=3;
j++)a=1;
}后变量j的值是C.
A)0B)3C)4D)1
14.有如下程序
{inti,sum=2;
for(i=1;
i<
i+=2)sum+=i;
printf(“%d\n”,sum);
该程序的执行结果是A
A)6B)3C)死循环D)4
*15、执行语句”for(i=0;
i++<
3;
);
”后,变量i的值为(C)。
A、2B、3C、4D、5
16.设x和y均为int型变量,则执行以下的循环后,y的值为(D )。
for(y=1,x=1;
y<
=50;
y++)
{
if(x>
=0)break;
if(x%2==1){x+=5;
continue;
x-=3;
A.2B.4C.6D.1
五数组
1.以下对一维数组a的正确说明是:
D
A)chara(10);
B)inta[];
C)intk=5,a[k];
D)chara[3]={‘a’,’b’,’c’};
2.以下能对一维数组a进行初始化的语句是:
(C)
A.inta[5]=(0,1,2,3,4,)B.inta(5)={}
C.inta[3]={0,1,2}D.inta{5}={10*1}
3.在C语言中对一维整型数组的正确定义为D。
A)inta(10);
B)intn=10,a[n];
C)intn;
a[n];
D)#defineN10
inta[N];
4、已知:
inta[10];
则对a数组元素的正确引用是(D)。
A、a[10]B、a[3.5]C、a(5)D、a[0]
5.执行下面的程序段后,变量k中的值为C
A)不定值B)33C)30D)10
intk=3,s[2];
s[0]=k;
k=s[0]*10;
*6.下列说法中错误的是C
A构成数组的所有元素的数据类型必须是相同的
B用指针法引用数组元素允许数组元素的下标越界
C一维数组元素的下标依次是1、2、3……
D定义数组时的长度可以是整型常量表达式
7.若有以下数组说明,则数值最大的和最小的元素下标分别是(B )。
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
A.1,12B.0,11C.1,11D.0,12
8.若有以下数组说明,则i=10;
a[a[i]]元素数值是(B )。
inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A.10B.9C.6D.5
9.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};
,则数组x在内存中所占字节数是D
A)3B)6C)10D)20
10.若有说明:
inta[][3]={{1,2,3},{4,5},{6,7}};
则数组a的第一维的大小为:
A.2B.3C.4D.无确定值
11.以下定义语句中,错误的是(D)
A)inta[]={1,2};
B)char*a;
C)chars[10]=“test”;
D)intn=5,a[n];
12.下面程序段的输出结果是:
(C)
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9}