二级C选择题Word格式文档下载.docx
《二级C选择题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《二级C选择题Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
A.++B./C.*D.%
0420、若已定义:
inti=5,j;
则语句j=(++i)+(i--);
运行后的j值为(D)。
A.9B.10C.11D.12
0421、若已定义:
intx=3,y=4;
则表达式--x+(y++)%y的值是(A)。
A.2B.3C.4D.5
0422、若已定义:
intn=10,i=4;
则赋值运算n%=i+1执行后,n的值是(D)。
A.3B.2C.1D.0
0423、若已定义:
doublex=3.5;
inty=14;
则表达式x+y%3/2的值是(B)。
A.4.0B.4.5C.3.5D.5.5
0519、若已定义:
floatf;
chars[20];
下列正确的输入语句是(D)。
A.scanf("
%s%f"
s,f);
B.scanf("
&
s,f);
C.scanf("
%c%f"
s,&
f);
D.scanf("
0520、若已定义:
doublex;
下列可以用于求x的绝对值的数学函数是(C)。
A.abs(x)B.labs(x)C.fabs(x)D.sqrt(x)0521、(B)可求得0到0.99的随机数。
A.srand()%100/100.0B.rand()%100/100.0C.srand()*100%100D.rand()%100/1000522、要使下列程序段输出的内容为123-123-45,正确的输入数据格式是(C)。
inti,j,k;
scanf("
%d%d%d"
&
i,&
j,&
k);
printf("
%d-%d-%d\n"
i,j,k);
A.12312345B.123,12345C.12312345D.123,123,45
0523、要使用以下程序段给三个字符型变量c1,c2,c2分别赋值'
a'
'
b'
c'
,正确的输入数据格式是(A)。
charc1,c2,c3;
%c%c%c"
c1,&
c2,&
c3);
A.abcB.a,b,cC.'
D.'
'
0619、若已定义:
intx;
下列与求x的绝对值等价的表达式是(B)。
A.x>
0?
-x:
xB.x>
x:
-xC.x<
-xD.x<
-x
0620、能正确表示a和b同时为正或同时为负的逻辑表达式是(D)。
A.(a>
0||b>
0)&
&
(a<
0||b<
0)B.(a>
0&
b>
b<
0)C.(a+b>
0)&
(a+b<
=0)D.a*b>
0
0621、能正确表示30>
x>
10的逻辑表达式是(B)。
A.10<
x<
30B.x>
10&
x<
30C.x>
10||x<
30D.30>
10
0622、若已定义:
inta=2,b=3,c=4;
则下列表达式中值为0的是(C)。
A.a>
=aB.(b-a)==(c/b)C.a%b&
b/cD.(b-a)&
(b-c)
0623、若已定义:
inta=3,b=4,c=5;
则下列表达式中值为0的是(D)。
&
B.a<
=bC.a||b+c&
b-cD.!
((a<
b)&
!
c||1)0719、下列运算符中,优先级最高的是(B)。
A.+B.++C.&
D.!
=
0720、若已定义intk=5;
floatd=3.5;
则表达式d+k%3/2的值为(B)。
A.3.5B.4.5C.5.5D.4
0721、若已定义:
intb=7;
floata=2.5,c=4.0;
则表达式a+(b/2*(int)(a+c))%4的值是(C)。
A.2.5B.3.5C.4.5D.5.5
0723、若已定义:
doublea,b,c;
下列表达式中与(a-b)*c/2计算结果不相符的是(C)。
A.(a-b)*c/2B.(a-b)*c*1/2C.(1/2)*(a-b)*cD.c/2*(a-b)0819、以下程序段的运行结果是(C)。
inta=-6,b;
if(a>
0)b=9;
elseif(a==0)b=0;
elseif(a<
-5)b=-8;
elseb=-1;
%d\n"
b);
A.-1B.0C.-8D.9
0820、若已定义:
inta=-1,b=-3,c=0,d=2;
则表达式a<
b?
c:
(a>
d?
b:
d)的值是(D)。
A.0B.-3C.-1D.2
0821、若已定义:
intm=3,n=2,k;
则下面正确的switch语句是(C)。
A.switch(m+n)
case3:
k=m+n;
break;
case2:
B.switch(m)
{casem<
0:
casem==0:
k=m-n;
default:
k=m*n;
}C.switch(m+n)
{case3:
}D.switch(m+n)
{caseis3:
caseis5:
}0822、以下程序的运行结果是(A)。
voidmain(){intk=5;
switch(k)
{default:
printf("
%d"
k);
case1:
2*k);
3*k);
}}
A.55B.5C.10D.15
0823、以下程序段所表示的函数关系是(A)。
if(x<
=2)
{if(x<
2)y=-1;
elsey=0;
}elsey=1;
A.y=1(x>
2)B.y=1(x=2)C.y=0(x>
2)D.y=1(x<
2)y=0(x=2)y=0(x<
2)y=1(x=2)y=0(x=2)y=-1(x<
2)y=-1(x>
2)y=-1(x<
2)0919、以下程序段运行后x的值为(D)。
inti,x=1;
for(i=3;
i>
0;
i--)x=(x+1)*3;
A.9B.27C.54D.66
0920、设有程序段inth=8;
while(h=0)
h=h-2;
叙述正确的是(C)。
A.循环体语句执行4次B.循环体语句执行3次
k=m-n;
default:
C.循环体语句一次也不执行D.循环体语句执行1次0921、以下程序段运行后m的值为(D)。
inti,m=1;
for(i=1;
i<
=4;
i++)
{m+=1;
if(m%2==0)continue;
m+=2;
}
A.12B.6C.5D.9
0922、以下程序段运行后m的值为(B)。
inti,m=3;
=3;
if(m%2!
=0)break;
A.6B.7C.8D.9
0923、叙述正确的是(D)。
A.while循环中,不能用break语句跳出循环体
B.while循环体至少无条件执行一次,而do…while循环体可能都不执行C.for循环中,不能用break语句跳出循环体
D.for循环中循环体可包含多条语句,但必须用{}括起来1019、给数组a所有元素赋初值0的语句是(A)。
A.inta[9]={0};
B.inta[9]=9*0;
C.inta[9]={};
D.inta[9]=0;
1020、(B)是inta[9]={3,5,6,8,9};
功能的正确描述。
A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[4]至a[8]D.将5个初值依次赋给a[5]至a[9]1021、已知a为一维整型数组,正确表示数组a元素个数的表达式是(C)。
A.sizeof(a)/intB.sizeof(int)/sizeof(a)C.sizeof(a)/sizeof(int)D.a/sizeof(int)1022、以下程序的运行结果是(D)。
voidmain(){ints[5]={1},i;
5;
i++)s[i]=s[i-1]+i;
for(i=0;
%d"
s[i]);
}
A.12345B.1261015C.12468D.1247111023、以下程序的执行功能是(A)。
voidmain()
{inta[5]={66,78,82,53,91},b[5]={70,58,81,65,90},i,n=0;
{if(a[i]>
b[i])n++;
}printf("
n=%d\n"
n);
A.统计数组a各元素值大于数组b对应元素值的个数B.统计数组a各元素值小于数组b对应元素值的个数C.统计数组a各元素值等于数组b对应元素值的个数D.统计数组a各元素值大于60的个数
1119、若已定义inta[][4]={1,2,3,4,5,6,7,8,9,10,11};
则表达式sizeof(a)/(sizeof(int)*4)的值为(B)。
A.数组a的元素个数B.数组a第一维长度C.数组a第二维长度D.数组a占用的字节数1120、若已定义intarr[][3]={1,2,5,6,8,9,11};
则数组a第一维长度是(D)。
A.5B.4C.2D.3
1121、若已定义inta[3][4];
无法正确引用数组a元素的是(C)。
A.a[0][3/2]B.a[2][1]C.a[2+1][3]D.a[1][5-2]1122、以下程序的运行结果是(B)。
{inta[3][3]={0},i,j;
for(i=0;
3;
i++)a[i][i]=1;
i++){for(j=0;
j<
j++)
a[i][j]);
\n"
);
}}A.000000000
B.100010001
C.001010100
D.111111111
1123、正确定义二维数组arr的语句是(C)。
A.floatarr[4][];
B.floatarr(4,3);
C.floatarr[4][3];
D.floatarr[4,3];
1219、使字符数组str正确存放字符串"
abc"
的语句是(B)。
A.charstr[]={'
};
B.charstr[4]={'
\0'
C.charstr[3]={'
D.charstr[4]={'
0'
1220、下列关于字符数组描述正确的是(B)。
A.只能用len函数计算字符数组中字符串的长度
B.可使用printf函数实现字符数组中字符串的输出,遇'
字符结束C.只能利用赋值语句实现字符数组的整体赋值D.字符数组只能存放字符串,不能存放单个字符1221、以下程序的运行结果是(C)。
#include<
stdio.h>
voidmain(){char*str;
str="
ThisisaBook"
;
str=str+8;
while(*str)
{putchar(*str);
str++;
A.isaBookB.BookC.aBookD.Thisis
1222、若已定义chars3[20],s1[10]="
Howare"
s[2]="
you"
语句strcpy(s3,strcat(s1,s2));
的功能是(A)。
A.将字符串s2连接到s1之后,再将s1复制到s3中B.将字符串s1复制到s2中,再连接到s3之后C.将字符串s2复制到s1中,再将s1连接到s3之后D.将字符串s2连接到s1之后,再将s3复制到s1中
1223、若已定义charb[20]="
Nicetomeetyou!
"
实现输出字符串"
meetyou!
A.printf("
%s"
B.printf("
b+8);
C.printf("
%c"
D.printf("
b[8]);
1319、下列叙述错误的是(A)。
A.定义函数时必须指明函数参数B.定义函数时函数类型可省略C.定义函数时函数名和函数类型必须指明D.定义函数时必须有函数体1320、函数调用中,若实参为数组名,则传递给对应形参的是(C)。
A.数组的长度B.数组中每个元素的地址C.数组的首地址D.数组中每个元素的值1321、叙述错误的是(B)。
A.所有形参都是局部变量
B.函数内复合语句中定义的变量在该函数内有效C.全局变量的作用域是从其定义处起至本程序结束处D.函数内定义的变量其有效范围不超出该函数1322、以下程序的运行结果是(C)。
intfun(intk){switch(k)
{case2:
return0;
case3:
case4:
return1;
return5;
}return-1;
voidmain()
{printf("
fun(3));
}A.0B.-1C.1D.5
1323、以下程序的运行结果是(D)。
inttm(intx)
{inty;
y=2*x;
returny;
}intad(inta)
{intb;
b=5+tm(a+1);
returnb;
}voidmain()
ad
(1));
}A.6B.4C.5D.9
1419、叙述正确的是(A)。
A.宏定义:
#defineCR15的作用是定义一个与15等价的符号常量CRB.宏定义命令可根据需要以"
#"
开头或省略"
C.宏定义命令也是语句,必须以分号结束
第6/10页
D.C源程序中加入一些宏定义是为了提高程序运行速度1420、以下程序的运行结果是(C)。
#defineM5#defineNM+1voidmain()
3*N);
}A.15B.6C.16D.18
1421、宏定义#definePI3.14中,用宏名PI代表一个(A)。
A.符号常量B.字符变量C.单精度数D.双精度数1422、以下程序的运行结果是(C)。
#defineM2#defineNM*3voidmain()
6/N);
}A.6B.2C.9D.1
1423、正确的宏定义命令是(A)。
A.#defineK9.78B.#defineK=9.78C.#defineK9.78;
D.#defineK=9.78;
1519、若已定义:
inta=5,*p1=&
a;
floatx=11.6,*p2=&
x;
下列能实现正确赋值的语句是(B)。
A.p2=a+x;
B.x=*p1+*p2;
C.x=p1+p2;
D.p1=x;
1520、若已定义:
inta=2,*p=&
a,b=5,*q=&
b;
下列运算无意义的是(A)。
A.q+pB.*q-*pC.b-aD.p=q
1521、若已定义:
intb=12,*p=&
下列描述错误的是(C)。
A.&
(*p)等价于pB.b等价于*(&
b)C.*(&
p)等价于bD.*p等价于b
1522、若已定义:
inta[6]={1,2,3,4,5,6},*p,i=3;
下列赋值语句不合理的是(D)。
A.p=a;
B.p=&
i;
C.p=&
a[i];
D.p=a[i];
1523、以下程序段的运行结果是(D)。
charstr[]="
Computer"
*p=str;
p);
A.rB.CC.retupmoCD.Computer1619、以下程序的运行结果是(C)。
{inta[5]={6,8,9,15,20};
inti=1,*p1,*p2;
p1=&
p2=&
a[i+3];
*p2-*p1);
A.0B.9C.12D.3
1620、以下程序的运行结果是(A)。
voidmain(){inta=5,b=6,c;
int*p1,*p2;
第7/10页
p2=p1;
c=*p1+2*(*p2);
c);
A.15B.18C.17D.16
1621、以下程序的运行结果是(B)。
p1=p2;
c=*p2+2*(*p1);
1622、以下程序的运行结果是(B)。
voidfn(intx,inty,int*p){*p=x+y;
}voidmain(){inta,b;
fn(5,3,&
a);
fn(7,a,&
b);
a=%d,b=%d\n"
a,b);
A.a=15,b=8B.a=8,b=15C.a=8,b=7D.a=7,b=81623、以下程序的运行结果是(B)。
{inta[2][3]={{1,3,5},{2,4,6}};
inti,*p;
p=a[0];
=5;
*(p+i));
A.135135B.135246C.246135D.246246
1719、若已定义:
structstudent{intnum;
charname[10];
floatscore;
}stu,*p=&
stu;
下列对结构成员的引用方式中,不正确的是(A)。
A.*p.numB.(*p).scoreC.p->
numD.stu.name
1720、若已定义:
下列对结构变量stu中成员num的合法引用是(C)。
A.p.numB.student.numC.p->
numD.stu->
num1721、下列程序的运行结果是(B)。
uniondata{charc;
intk;
}data1;
第8/10页
data1.c='
A'
data1.k=66;
%c\n"
data1.c);
A.AB.BC.CD.不确定
1722、若有以下对结构类型和结构变量的定义:
structdate{intyear;
intmonth;
intday;
};
structstudent{charname[20];
structdatebirthday;
}stu;
以下能对结构变量stu的birthday成员进行正确赋值的是(C)。
A.day=20B.stu.date.day=20C.stu.birthday.day=20D.birthday.day=201723、对结构类型变量定义不正确的是(B)。
A.structperson{intnum;
charname[20];
}person1;
B.struct{intnum;
}person;
struct