二级C语言上机题库01.docx
《二级C语言上机题库01.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库01.docx(31页珍藏版)》请在冰豆网上搜索。
二级C语言上机题库01
一、选择题答案
1.以下所列的C语言常量中,错误的是
A)0xFF
B)1.2e0.5
C)2L
D)'\72'
你所选择的答案是:
B,正确答案是:
B√
2.有以下程序段
intx=3
do
{printf("%d",x-=2);}
while(!
(--x));
其输出结果是
A)1
B)30
C)1-2
D)死循环
你所选择的答案是:
C,正确答案是:
C√
3.当调用函数时,实参是一个数组名,则向函数传送的是
A)数组的长度
B)数组的首地址
C)数组每一个元素的地址
D)数组每个元素中的值
你所选择的答案是:
B,正确答案是:
B√
4.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是
A)EOF
B)-1
C)非零值
D)NULL
你所选择的答案是:
C,正确答案是:
C√
5.假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000
B)3
C)2.000000
D)3.000000
你所选择的答案是:
D,正确答案是:
D√
6.以下程序的输出结果是
main()
{inta=3;
printf("%d\n",(a+a-=a*a));
}
A)-6
B)12
C)0
D)-12
你所选择的答案是:
D,正确答案是:
D√
7.以下程序的输出结果是
main()
{inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A)0650
B)1470
C)5430
D)输出值不定
你所选择的答案是:
A,正确答案是:
A√
8.以下程序的输出结果是
#defineM(x,y,z)x*y+z
main()
{inta=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));
}
A)19
B)17
C)15
D)12
你所选择的答案是:
D,正确答案是:
D√
9.若变量a是int类型,并执行了语句:
a='A'+1.6;,则正确的叙述是
A)a的值是字符C
B)a的值是浮点型
C)不允许字符型和浮点型相加
D)a的值是字符'A'的ASCII值加上1。
你所选择的答案是:
B,正确答案是:
D×
10.以下程序中,while循环的循环次数是
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A)1
B)10
C)6
D)死循环,不能确定次数
你所选择的答案是:
D,正确答案是:
D√
11.以下程序的输出结果是
#include
main()
{
inti=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0)break;
elsei--;
}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21
B)32
C)33
D)11
你所选择的答案是:
A,正确答案是:
B×
12.以下程序段的输出结果是
chars[]="\\141\141abc\t";
printf("%d\n",strlen(s));
A)9
B)12
C)13
D)14
你所选择的答案是:
A,正确答案是:
A√
13.在C语言中,形参的缺省存储类是
A)auto
B)register
C)static
D)extern
你所选择的答案是:
A,正确答案是:
A√
14.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A)p=2*(int*)malloc(sizeof(int));
B)p=(int*)malloc(2*sizeof(int));
C)p=(int*)malloc(2*2);
D)p=(int*)calloc(2,sizeof(int));
你所选择的答案是:
A,正确答案是:
A√
15.以下程序的输出结果是
f(intb[],intm,intn)
{inti,s=0;
for(i=m;ireturns;
}
main()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A)10
B)18
C)8
D)15
你所选择的答案是:
A,正确答案是:
A√
16.以下程序的输出结果是
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A)3
B)4
C)1
D)9
你所选择的答案是:
B,正确答案是:
B√
17.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=i;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是
A)4
B)3
C)2
D)1
你所选择的答案是:
B,正确答案是:
B√
18.有以下程序
inta=3;
main()
{ints=0;
{inta=5;s+=a++;}
s+=a++;printf("%d\n",s);
}
程序运行后的输出结果是
A)8
B)10
C)7
D)11
你所选择的答案是:
D,正确答案是:
A×
19.C语言中用于结构化程序设计的三种基本结构是( )。
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
你所选择的答案是:
A,正确答案是:
A√
20.若有以下程序段(n所赋的是八进制数)
intm=32767,n=032767
printf("%d,%o/n",m,n);
执行后输出结果是( )。
A)32767,32767
B)32767,032767
C)32767,77777
D)32767,077777
你所选择的答案是:
A,正确答案是:
A√
21.有以下程序
main()
{char*s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是( )。
A)n,two
B)t,one
C)w,one
D)o,two
你所选择的答案是:
C,正确答案是:
C√
22.有以下程序
main()
{intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
for(i=0;i<3;i++)
{printf("%d",m[k][i]);}
}
执行后输出结果是( )。
A)456
B)258
C)369
D)789
你所选择的答案是:
C,正确答案是:
C√
23.以下叙述中正确的是( )。
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
你所选择的答案是:
B,正确答案是:
B√
24.有以下程序
voidfun(int*a,inti,intj)
{
intt;
if(i{
t=a[i];a[i]=a[j];a[j]=t;
fun(a,++i,--j);
}
}
main()
{
inta[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0;i<6;i++)
printf("%d",a[i]);
}
执行后的输出结果是
A)654321
B)432156
C)456123
D)123456
你所选择的答案是:
A,正确答案是:
A√
25.有以下程序
main()
{inta;charc=10;
floatf=100.0;doublex;
a=f/=c*=(x=6.5);
printf("%d%d%3.1f%3.1f\n",a,c,f,x);
}
程序运行后的输出结果是( )。
A)16516.5
B)1651.56.5
C)1651.06.5
D)2651.56.5
你所选择的答案是:
B,正确答案是:
B√
26.以下选项中非法的表达式是( )。
A)0<=x<100
B)i=j==0
C)(char)(65+3)
D)x+1=x+1
你所选择的答案是:
D,正确答案是:
D√
27.要求以下程序的功能是计算:
s=1+1/2+1/3+……+1/10
main()
{intn;floats;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是( )。
A)s=1.0;
B)for(n=10;n>1;n--)
C)s=s+1/n;
D)printf("%6.4f\n",s);
你所选择的答案是:
C,正确答案是:
C√
28.有以下程序
voidfun(char*a,char*b)
{a=b;(*a)++;}
main()
{charc1='A',c2='a',*p1,*p2;
p1=&c1;p2=&c2;fun(p1,p2);
printf("%c%c\n",c1,c2);
}
程序运行后的输出结果是( )。
A)Ab
B)aa
C)Aa
D)Bb
你所选择的答案是:
C,正确答案是:
A×
29.已定义以下函数
fun(int*p)
{return*p;}
该函数的返回值是( )。
A)不确定的值
B)形参p中存放的值
C)形参p所指存储单元中的值
D)形参p的地址值
你所选择的答案是:
C,正确答案是:
C√
30.有以下程序
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%d\n",r);
}
程序运行后的输出结果是( )。
A)3
B)6
C)8
D)12
你所选择的答案是:
D,正确答案是:
D√
31.有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structs*p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是( )。
A)10
B)11
C)20
D)21
你所选择的答案是:
B,正确答案是:
B√
32.有以下程序
main()
{
intx=102,y=012;
printf(“%2d,%2d\n”,x,y);
}
执行后输出结果是( )。
A)10,01 B)02,12 C)102,10 D)02,10
你所选择的答案是:
C,正确答案是:
C√
33.有以下程序
main()
{chark;intI;
for(i=1;i<3;i++)
{scanf(“%c”,&k);
switch(k)
{case‘0’:
printf(“another\n”);
case‘1’:
printf(“number\n”);
}
}
}
程序运行时,从键盘输入:
01<回车>,程序执行后的输出结果是( )。
A)another
number
another
B)another
number
number
C)another
number
D)number
number
你所选择的答案是:
D,正确答案是:
C×
34.有以下程序
main()
{inti,s=0;
for(i=1;i<10;i+=2)s+=i+1;
printf(“%d\n”,s);
}
程序执行后的输出结果是( )。
A)自然数1~9的累加和 B)自然数1~10的累加和
C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和
你所选择的答案是:
D,正确答案是:
D√
35.有以下程序
main()
{inti,n=0;
for(i=2;i<5;i++)
{do
{if(i%3)continue;
n++;
}while(!
i);
n++;
}
printf(“n=%d\n”,n);
}
程序执行后的输出结果是( )。
A)n=5 B)n=2 C)n=3 D)n=4
你所选择的答案是:
D,正确答案是:
D√
36.有以下程序
charfun(charx,chary)
{if(xreturny;
}
main()
{inta=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
}
程序的执行结果是( )。
A)函数调用出错 B)8 C)9 D)7
你所选择的答案是:
D,正确答案是:
D√
37.下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main()
{inti,j;
for(i=1;i<=4;i++)
{for(j=1;j<=4-i;j++)printf(““);
for(j=1;j<=_______;j++)printf(“*”);
printf(“\n”);
}
}
在下划线处应填入的是( )。
A)i B)2*i-1 C)2*i+1 D)i+2
你所选择的答案是:
B,正确答案是:
B√
38.以下定义语句中正确的是( )。
A)chara='A'b='B';
B)floata=b=10.0;
C)inta=10,*b=&a;
D)float*a,b=&a;
你所选择的答案是:
C,正确答案是:
C√
39.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是( )。
A)a=a+b=b++
B)w%(int)a+b)
C)(c+w)%(int)a
D)w=a==b;
你所选择的答案是:
D,正确答案是:
C×
40.有以下程序
intf(inta)
{returna%2;}
main()
{ints[8]={1,3,4,2,3,6},i,d=0;
for(i=0;f(s[i]);i++)
{d=d+s[i];printf("%d,%d\n",i,s[i]);}
printf("%d\n",d);
}
程序运行后的输出结果是( )。
A)9
B)4
C)19
D)21
你所选择的答案是:
B,正确答案是:
B√
41.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是( )。
A)p+1
B)*(p+3)
C)*(p+1)+3
D)*(p[0]+2])
你所选择的答案是:
D,正确答案是:
D√
42.有以下程序
main()
{
chars[]="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
你所选择的答案是:
D,正确答案是:
D√
43.有以下程序
main()
{chars[]="Yes\n/No",*ps=s;
printf("%s,",ps+4);
*(ps+4)=0;
printf("%s",s);
}
程序运行后的输出结果是( )。
A)/No,Yes
B)/No,/No
C)n/NO,Yes
D)Yes,Yes
你所选择的答案是:
A,正确答案是:
A√
44.有以下程序
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d",i,j,k);
}
程序运行后的输出结果是( )。
A)123
B)234
C)223
D)233
你所选择的答案是:
D,正确答案是:
D√
45.有以下程序
main()
{inta[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;
scanf("%d",ptr);
ptr++;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%2d",a[i][j]);
printf("");
}
}
若运行时输入:
123<回车>,则输出结果为( )。
A)产生错误信息
B)10
20
00
C)12
30
00
D)10
20
30
你所选择的答案是:
B,正确答案是:
B√
46.以下叙述中错误的是( )。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
你所选择的答案是:
A,正确答案是:
A√
47.有以下程序段
typedefstructNODE
{intnum;structNODE*next;
}OLD;
以下叙述中正确的是( )。
A)以上的说明形式非法 B)NODE是一个结构体类型
C)OLD是一个结构体类型 D)OLD是一个结构体变量
你所选择的答案是:
C,正确答案是:
C√
48.设有定义:
inta=2,b=3,c=4;,则以下选项中值为0的表达式是( )。
A)(!
a==1)&&(!
b==0) B)a C)a&&b D)a||(b+b)&&(c-a)
你所选择的答案是:
A,正确答案是:
A√
49.有以下程序
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf("%d\n",*p+*q);
}
程序运行后的输出结果是( )。
A)16 B)10 C)8 D)6
你所选择的答案是:
B,正确答案是:
B√
50.有以下程序
main()
{inta[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n",y);
}
程序运行后的输出结果是( )。
A)10 B)11 C)14 D)15
你所选择的答案是:
C,正确答案是:
C√
51.有以下程序
#include
main()
{charp[]={'a','b','c'},q[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是( )。
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
你所选择的答案是:
A,正确答案是:
B×
52.以下程序的功能是进行位运算
main()
{unsignedchara,b;
a=7^3;b=~4&3;
printf("%d%d\n",a,b);
}
程序运行后的输出结果是( )。
A)43 B)73 C)70 D)40
你所选择的答案是:
A,正确答案是:
A√
53.以下数组定义中错误的是
A)intx[][3]={0};
B)intx[2][3]={{1,2},{3,4},{5,6}};
C)ntx[][3]={{1,2,3},{4,5,6}};
D)intx[2][3]={1,2,3,4,5,6};
你所选择的答案是:
B,正确答案是:
B√
54.已定义以下函数
intfun(int*p)
{return*p;}
fun函数返回值是
A)不确定的值
B)一个整数
C)形参p中存放的值
D)形参p的地址值