二级C语言程序选择题精选.docx
《二级C语言程序选择题精选.docx》由会员分享,可在线阅读,更多相关《二级C语言程序选择题精选.docx(40页珍藏版)》请在冰豆网上搜索。
二级C语言程序选择题精选
C语言题库
1.表示关系x<=y<=z的c语言表达式为A
A)(X<=Y)&&(Y<=Z)
B)(X<=Y)AND(Y<=Z)
C)(X<=Y<=Z)
D)(X<=Y)&(Y<=Z)
2.不能把字符串:
Hello!
赋给数组b的语句是:
B
A)charb[10]={'H','e','l','l','o','!
'};
B)charb[10];b="Hello!
";
C)charb[10];strcpy(b,"Hello!
");
D)charb[10]="Hello!
";
3.表达式:
10!
=9的值是D
A)true
B)非零值
C)0
D)1
4.C语言中,运算对象必须是整型数的运算符是A
A)%
B)\
C)%和\
D)*
5.C语言可执行程序的开始执行点是(C)
A)程序中第一条可执行语句
B)程序中第一个函数
C)程序中的main函数
D)包含文件中的第一个函数
6.C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为__D___。
A、该数组的长度。
B、该数组的元素个数。
C、该数组中各元素的值。
D、该数组的首地址。
7.程序中若有如下说明和定义语句A
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
......
}
以下选项中对函数fun的正确调用语句是
A)(*f1)(a);B)*f1(*s);C)fun(&a);D)ch=*f1(s);
8.C语言规定,程序中各函数之间A
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
9.C语言中函数返回值的类型是由(D)决定。
A)return语句中的表达式类型
B)调用函数的主调函数类型
C)调用函数时临时
D)定义函数时所指定的函数类型
10.在C语言程序中,可以用做变量名的是_B___
A)2e5B)a1C)intD)*p
11.C语言程序的三种基本结构是__A__
A、顺序结构,选择结构,循环结构
B、递归结构,循环结构,转移结构
C、嵌套结构,递归结构,顺序结构
D、循环结构,转移结构,顺序结构
12.当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为B
A)1B)2C)3D)6
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
13.对于基类型相同的两个指针变量之间,不能进行的运算是C
A)<
B)=
C)+
D)-
14.当执行下面程序且输入:
ABC时,输出的结果是A
main(){
charss[10]="12345";
gets(ss);
printf("%s",ss);
}
A)ABCB)ABC9C)123456ABCD)ABC45
15.当调用函数时,实参是一个数组名,则向函数传送的是____B
A)数组的长度
B)数组的首地址
C)数组每一个元素的地址
D)数组每个元素中的值
16.设有如下定义:
intx=10,y=3,z;则语句printf("%d",z=(x%y,x/y));的输出结果是A
A)1B)0C)4D)3
17.intf(inta)
{returna%2;}
main()
{
ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s[i]);i++)
d+=s[i];
printf("%d\n",d);
}
程序运行后的输出结果是____9____.
18.假定x和y为double型,则表达式x=2,y=x+3/2的值是:
__D_______
A、3.500000B、3C、2.000000D、3.000000
19.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是D
A)3
B)6
C)10
D)20
20.假定有以下变量定义:
intk=7,x=12;则能使值为3的表达式是D
A)x%=(k%=5)
B)x%=(k-k%5)
C)x%=k-k%5
D)(x%=k)-(k%=5)
21.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:
A
A)7和5B)6和3C)7和4D)6和4
main(){
intx;
scanf("%d",&x);
if(x++>5)printf("%d",x);
elseprintf("%d",x--);
}
17main()
{
inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf("%d\n",c);
}
以上程序的输出结果:
C
A)0B)1C)2D)3
21.main(A)
{
inta[]={1,2,3,4,5,6,7,8,9,10,11,12};
int*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
程序运行后的输出结果是
A)运行后报错B)66C)611D)510
22.main()
{
inta=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是___4_____.
23.main()
{
intj,k,s;
for(k=2;k<6;k+=2)
{
s=1;
for(j=k;j<6;j++)s=s+j;
}
printf("%d",s);
}
程序运行后的输出结果是____10____.
24.main()
{
intnum[4][4]={{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
},i,j;
for(i=0;i<4;i++)
{
for(j=0;j<=i;j++)printf("%4c",'');
for(j=___i__;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是
25.求x的y次方,填空。
doublefun(doublex,inty)
{inti;doublez;
for(i=1;i<=y;i++)
z=____z*x________;
returnz;}
25.若有定义和语句:
D
chars[10];
s="abcd";
printf("%s",s);
则结果是(以下u代表空格)
A)输出abcd
B)输出a
C)输出abcduuuuu
D)编译不通过
26.若有以下定义:
chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为D
A)floatB)intC)charD)double
27.若变量a是int类型,并执行了语句:
a=‘A'+1、6;,则正确的叙述是B
A)a的值是字符C
B)a的值是浮点型
C)不允许字符型和浮点型相加
D)a的值是字符‘A’的ASCII值加上1
28.若有以下函数调用语句:
fun(a+b,(x,y),fun(n+k,d,(a,b)));A
在此函数调用语句中实参的个数是
A)3B)4C)5D)6
29.若有以下定义:
chars[20]="programming",*ps=s;A
则不能代表字符o的表达式是
A)ps+2
B)s[2]
C)ps[2]
D)ps+=2,*ps
30.若有以下说明:
A
intw[3][4]={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是
A)*w[1]+1
B)p++,*(p+1)
C)w[2][2]
D)p[1][1]
31.若有以下定义和语句
charc1='b',c2='e';
printf("%d,%c",c2-c1,c2-'a'+"A");
则输出结果是:
B
A)2,M
B)3,E
C)2,E
D)输出项与对应的格式控制不一致,输出结果不确定
32.若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是C
A)1
B)2
C)2.0
D)2.5
33.若有以下说明和语句,请选出D是对c数组元素的正确引用intc[4][5],(*cp)[5];cp=c;
A)cp+1
B)*(cp+3)
C)*(cp+1)+3
D)*(*cp+2)
34.若有以下定义和语句:
A
intu=010,v=0x10,w=10;
printf("%d,%d,%d",u,v,w);
则输出结果是:
A)8,16,10
B)10,10,10
C)8,8,10
D)8,10,10
35.设有说明语句:
chara='\72';则变量aA
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法
36.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是C
A)-3
B)9
C)-12
D)6
37.若执行以下程序时从键盘上输入9,则输出结果是B
A、11B、10C、9D、8
main()
{
intn;
scanf("%d",&n);
if(n++<10)printf("%d\n",n);
elseprintf("%d\n",n--);}
38.若执行下面的程序时从键盘上输入5,则输出是___B___
main()
{
intx;
scanf("%d",&x);
if(x++>5)printf("%d",x);
elseprintf("%d",x--);
}
A)7B)6C)5D)4
39.若执行下面的程序时从键盘上输入6,则输出是A
main()
{
intx;
scanf("%d",&x);
if(x++>6)
printf("%d",x);
else
printf("%d",x--);
}
A)7
B)6
C)5
D)4
40.若有以下定义和语句:
D
doubler=99,*p=&r;*p=r;
则以下正确的叙述是
A)以下两处的*p含义相同,都说明给指针变量p赋值
B)在"doubler=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元
C)语句"*p=r;"把变量r的值赋给指针变量p
D)语句"*p=r;"取变量r的值放回r中
41.若有以下定义和语句:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则不能表示a数组元素的表达式是D
A)*pB)a[10]C)*aD)a[p-a]
42.若有以下说明和语句:
D
intc[4][5],(*p)[5];p=c;
能正确引用c数组元素的是:
________
A)p+1B)*(p+3)
C)*(p+1)+3D)*(p[0]+2))
43.数字字符0的ASCII值为48,若有以下程序C
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是:
:
________
(A)3,2(B)50,2(C)2,2(D)2,50
44.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
B
scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋给i和f,则正确的输入为
A、100765.12
B、i=100,f=765.12
C、100765.12
D、x=100y=765.12
45.设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的值为_C___
A)0B)1C)2D)3
46.sizeof(float)是(C)
A)一种函数调用
B)一个不合法的表示形式
C)一个整型表达式
D)一个浮点表达式
47.设x、y、t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后,
y的值为:
__C______
A、不定值B、4C、3D、1
48.设有说明语句:
chara='\72';则变量aA
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法
49.设x和y均为int型变量,则以下语句:
x+=y;y=x-y;x-=y;的功能是D
A、把x和y按从大到小排列
B、把x和y按从小到大排列
C、无确定结果
D、交换x和y中的值
50.设intx=1,y=1;表达式(!
x||y--)的值是B
A)0B)1C)2D)-1
51.设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为c
A4B16C32D52
52.设有如下定义:
char*aa[2]={"abcd","ABCD"};则以下就法中正确的是C
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
53.设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是Dprintf("%d,%d",x--,--y);
A)10,3B)9,3C)9,2D)10,2
54.设有数组定义:
chararray[]="China";则数组array所占的空间为C
A)4个字节B)5个字节C)6个字节D)7个字节
55.设有如下定义:
intx=10,y=3,z;则语句printf("%d",z=(x%y,x/y));的输出结果是D
A)1B)0C)4D)3
56.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是___D_____
A)'a'&&'b'
B)a<=b
C)a||b+c&&b-c
D)!
((a
c||1)
57.设有说明int(*ptr)[m];其中的标识符ptr是:
__C______
A)M个指向整型变量的指针
B)指向M个整型变量的函数指针
C)一个指向具有M个整型元素的一维数组的指针
D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量
58.t为int类型,进人下面的循环之前,t的值为0while(t=l){……}则以下叙述中正确的是B
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
59.voidf(int*x,int*y)D
{
intt;
t=*x;*x=*y;*y=t;
}
main()
{
inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p{
f(p,q);
p++;
q--;
}
for(i=0;i<8;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是
A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,
60.voidfunc(int*a,intb[])6
{b[0]=*a+6;}
main()
{
inta=0,b[5];
b[0]=3;
func(&a,b);
printf("%d\n",b[0]);
}
61.下列运算符其优先级最高的是____c___。
A、||B、&&C、+D、=
62.下面程序的输出是_D___
intw=3;
main()
{
intw=10;
printf("%d",fun(5)*w);
}
fun(intk)
{
if(k==0)returnw;
return(fun(k-1)*k);
}
A)360B)3600C)1080D)1200
63.下列条件语句中,功能与其他语句不同的是:
_____D___
A)if(a)printf("%d\n",x);elseprintf("%d\n",y);
B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a!
=0)printf("%d\n",x);elseprintf("%d\n",y);
D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
64.下列程序段的输出结果为___A_____
inty=1;
while(y--);
printf("y=%d",y);
A、y=-1
B、y=0
C、死循环
D、y=9
65.下面程序的输出是:
B
#include
main(){
inty=9;
for(;y>0;y--)
{
if(y%3==0)
{
printf("%d",--y);
continue;
}
}
}
A)741B)852C)963D)875421
66.下列描述中不正确的是C
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
67.下列程序的输出结果是C
A、非法B、a[4]的地址C、5D、3
main()
{
inta[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
68.下面函数的功能是:
A
intfun(char*x)
{
char*y=x;
while(*y++);
return(y-x-1);
}
A)求字符串的长度
B)比较两个字符串的大小
C)将字符串x复制到字符串y
D)将字符串x连接到字符串y后面
69.下面函数的功能是:
C
intfun(char*s,char*t)
{
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}
A)求字符串的长度
B)比较两个字符串的大小
C)将字符串s复制到字符串t中
D)将字符串s接续到字符串t中
70.下列说法中正确的是____B____。
A、在switch语句中一定要使用break语句
B、在switch语句中不一定要使用break语句
C、break语句是switch语句的一部分
D、break只能用于switch语句中
71.#include
intm=13;
intfun2(intx,inty)
{
intm=3;
return(x*y-m);
}
main()
{
inta=7,b=5;
printf("%d",fun2(a,b)/m);
}
A)1B)2C)7D)10
72.下面程序的输出是A
A)3B)4C)1D)2
main()
{
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d",*(p+2));
}
73.有以下程序:
B
main()
{
charstr[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是
A)ChinaB)BeijingC)ngD)ing
74.以下程序运行后,输出结果是C
A)8,15B)8,16C)8,17D)8,8
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
75.有以下程序A
main()
{
chars[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是:
________
A)15B)16C)12D)59
76.下面程序的输出是A
A)3B)4C)1D)2
main()
{
inta[10]={1,2,3,4,5,6,7,8,9,