省二级选择题题库C语言.docx
《省二级选择题题库C语言.docx》由会员分享,可在线阅读,更多相关《省二级选择题题库C语言.docx(41页珍藏版)》请在冰豆网上搜索。
省二级选择题题库C语言
51001.以下数组定义中,正确的是()。
A
A)inta[5]={0};
B)inta[]={012};
C)inta[5]=0;
D)inta[];
51002.下列数组定义中,正确的是().A
A)inta[10];
B)intn=10,a[n];
C)intN=10;inta[N];
D)intn;scanf("%d",&n);inta[n];
51003.已知inta[10];则对a数组元素引用不正确的是().A
A)a[10]
B)a[3+5]
C)a[10-10]
D)a[5]
51004.若有定义:
inta[3]={0,1,2};则a[1]的值为()。
B
A)0
B)1
C)2
D)3
51005.若有定义:
inta[5]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为()。
A
A)6
B)5
C)1
D)2
51006.以下能对一维数组a进行正确初始化的语句是()。
D
A)inta[5]=(0,0,0,0,0);
B)inta[5]=[0];
C)inta[5]={1,2,3,4,5,6,7};
D)inta[]={0};
51007.下面程序段的运行结果是()。
D
inti=0,a[]={3,4,5,4,3};
do{
a[i]++;
}while(a[++i]<5);
for(i=0;i<5;i++)
printf("%d",a[i]);
A)45654
B)34543
C)45554
D)45543
51008.下面程序段的运行结果是()。
C
inti=0,a[]={7,5,7,3,8,3};
do{
a[i]+=2;
}while(a[++i]>5);
for(i=0;i<6;i++)
printf("%d",a[i]);
A)9795105
B)9593103
C)957383
D)757383
51009.下面程序段的运行结果是()。
A
inti=0,a[]={1,2,3,4,5};
do{
a[i]+=10;
}while(a[++i]>2);
for(i=0;i<5;i++)
printf(“%d”,a[i]);
A)112345
B)12345
C)1112131415
D)1112345
51101.设有如下程序段:
inta[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j
s=s+a[i][j];
则执行该程序段后,s的值是()。
C
A)0
B)1
C)2
D)3
51102.有如下定义:
inta[][3]={1,2,3,4,5,6,7,8};则数组a的行数是().B
A)2
B)3
C)4
D)无法确定的
51103.以下数组定义中,正确的是()。
D
A)inta[2][3]={1,2,3,4,5,6,7};
B)inta[][]={{1,2,3},{4,5,6},{7,8,9}};
C)inta[2][]={1,2,3,4,5,6};
D)inta[][4]={6};
51104.若有定义:
inta[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为()。
A
A)0
B){1,2}
C)1
D)3
51105.若有定义:
inta[3][3];则表达式&a[2][1]-a的值是().A
A)7
B)8
C)6
D)9
51106.若有定义:
inti=0,x=0;inta[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为()。
C
for(;i<3;i++)x+=a[i][2-i];
A)0
B)12
C)15
D)18
51107.若有定义inta[2][3];则对数组元素的非法引用是()。
D
A)a[0][1/2]
B)a[1][1]
C)a[4-4][0]
D)a[0][3]
51108.以下数组定义中,正确的是()。
C
A)inta[2][]={1,2,3,4,5};
B)inta[][2]={{0},{}};
C)inta[2][2]={{1,2},{3}};
D)inta[][]={1,2,3,4};
51109.若有定义inta[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0])的值为()。
D
A)3
B)4
C)5
D)9
51201.设有以下变量定义:
charstr1[]="string",str2[8],*str3,*str4="string";
()是正确的。
A
A)strcpy(str1,"China");
B)str2="China";
C)strcpy(*str3,"China");
D)strcpy(str4[0],"China");
51202.有如下定义:
charstr[6]={‘a’,’b’,’\0’,’e’,’f’};
则语句:
printf(“%s”,str);的输出结果是()。
D
A)ab\
B)abdef
C)ab\0
D)ab
51203.设有如下数组定义:
charstr[8]={"FuJian"};
则分配给数组str的存储空间是()个字节。
C
A)6
B)7
C)8
D)9
51204.若有定义:
chara[]="abcdef";charb[]="xyz";则以下程序段运行后屏幕输出为()。
B
strcpy(a,b);
printf("%c",a[2]);
A)c
B)z
C)\0
D)d
51205.以下程序段运行后屏幕输出为()。
C
chara[]="abc\0mis";
printf("%d",strlen(a));
A)5
B)8
C)3
D)4
51206.若有定义:
inta=2;则语句a=strcmp("miss","miss");运行后a的值为().B
A)1
B)0
C)-1
D)2
51207.以下程序段运行后屏幕输出为()。
B
charstr[]="ab\\cd";
printf("%d",strlen(str));
A)4
B)5
C)6
D)7
51208.以下程序段运行后屏幕输出为()。
A
charstr[80];strcpy(str,"hello");printf("%d",strlen(str));
A)5
B)6
C)7
D)80
51209.若有定义:
charstr1[6]="abcdm",*ps,*str2="abcdef";()是正确的。
B
A)strcpy(str1,str2);
B)表达式strcmp(str1,str2)的值大于0
C)str1=str2;
D)表达式strlen(str1)的值为6
51301.设有如下函数定义:
intfun(char*str)
{char*p=str;
while(*p!
='\0')p++;
return(p-str);
}
则以下语句执行后的输出结果是()。
A
printf("%d\n",fun("Student"));
A)7
B)8
C)9
D)10
51302.以下程序的运行结果是()。
A
intfun(intarray[4][4])
{intj;
for(j=0;j<4;j++)printf("%2d",array[2][j]);
printf("\n");
}
main()
{inta[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};
fun(a);
}
A)2005
B)1004
C)0120
D)0450
51303.如下fun函数的类型是()。
C
fun(floatx)
{doubley;intz;
y=x*x;
z=(int)y;
return(z);
}
A)void
B)double
C)int
D)float
51304.以下程序运行后屏幕输出为()。
B
#include
intf(intx,inty)
{
return(x+y);
}
main()
{
inta=2,b=3,c;
c=f(a,b);
printf("%d+%d=%d\n",a,b,c);
}
A)0
B)2+3=5
C)2+3=0
D)3+2=5
51305.以下程序运行后屏幕输出为()。
D
#include
inta=2,b=3;
intmax(inta,intb)
{
intc;
c=a>b?
a:
b;
return(c);
}
main()
{
inta=4;
printf("%d",max(a,b));
}
A)2,3
B)2
C)3
D)4
51306.以下程序运行后屏幕输出为()。
B
#include
voidf(inti)
{
inta=2;
a=i++;
printf("%d,",a);
}
main()
{
inta=1,c=3;
f(c);
a=c++;
printf("%d",a);
}
A)4,3
B)3,3
C)4,5
D)3,5
51307.若有如下函数定义:
intfun()
{
staticintk=0;
return++k;
}
以下程序段运行后屏幕输出为()。
D
inti;
for(i=1;i<=5;i++)fun();
printf("%d",fun());
A)0
B)1
C)5
D)6
51308.下面程序的输出结果是()。
D
#include
intglobal=100;
fun()
{
intglobal=5;
return++global;
}
voidmain()
{
printf(“%d\n”,fun());
}
A)100
B)101
C)5
D)6
51309.下列关于C语言函数的描述中,正确的是()。
B
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用都可以嵌套
D)函数的定义和函数的调用都不可以嵌套
51401.若有以下宏定义,
#defineMOD(x,y)x%y
则执行以下程序段后,z的值是()。
D
intz,a=15,b=100;
z=MOD(b,a);
A)100
B)15
C)11
D)10
51402.以下叙述中,正确的是()。
B
A)“#definePRICE=30”定义了与30等价的符号常量PRICE
B)预编译处理命令行都必须以“#”开头
C)宏名只能包含大写字母和数字字符
D)在程序的一行上可以书写几个有效的宏定义
51403.以下叙述中,正确的是()。
A
A)宏展开不占用运行时间,只占用编译时间
B)预编译处理命令行必须以分号结束
C)一个源程序只能有一个预编译处理命令行
D)使用带参数的宏定义时,应该说明每个参数的数据类型
51404.以下的叙述不正确的是().C
A)宏展开不占用运行时间,只占用编译时间
B)宏名无类型
C)宏名必须用大写字母表示
D)预处理命令行都必须以#号开始
51405.若有定义:
#definePI3,则表达式PI*2*2的值为()。
A
A)12
B)4
C)3
D)不确定
51406.以下程序运行后,屏幕输出为()。
C
#defineMIN(a,b)((a)<(b)?
(a):
(b))
main()
{intx=2,y=3,z;
z=2*MIN(x,y);
printf("%d",z);
}
A)2
B)3
C)4
D)6
51407.下面程序的是出结果是()。
A
#include
#defineSQR(x)(x*x)
voidmain()
{inta,b=3;
a=SQR(b+2);
printf("\n%d",a);
}
A)11
B)25
C)不定值
D)产生错误
51408.下面程序的输出结果是()。
C
#include
#defineONE1
#defineTWOONE+1
#defineTHREETWO+1
voidmain()
{
printf("%d\n",THREE-ONE);
}
A)产生错误
B)1
C)2
D)3
51409.以下叙述正确的是()。
B
A)预处理命令行必须位于C源程序的起始位置
B)在C语言中,预处理命令行都以"#"开头
C)每个C程序必须在开头包含预处理命令行:
#include
D)C语言的预处理不能实现宏定义和条件编译的功能
51501.设有以下语句,则()是对a数组元素的不正确引用,其中0≤i<10。
D
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A)a[p-a]
B)*(&a[i])
C)p[i]
D)*(*(a+i))
51502.对于基类型相同的两个指针变量之间,不能进行的运算是()。
C
A)<
B)=
C)+
D)-
51503.执行以下程序段的输出结果是()。
B
inta=10,*p=&a;
printf("%d",++*p);
A)10
B)11
C)变量a的地址
D)变量a的地址+1
51504.以下程序段运行后*(p+3)的值为()。
A
chara[]="good";
char*p;
p=a;
A)'d'
B)'\0'
C)存放'd'的地址
D)'o'
51505.以下程序段运行后*(++p)的值为()。
C
chara[5]="work";
char*p;
p=a;
A)'w'
B)存放'w'的地址
C)'o'
D)存放'o'的地址
51506.若有定义:
int*p,a=4;p=&a;则以下均代表地址的是()。
B
A)a,p
B)&a,p
C)&a,*p
D)a,*p
51507.若有说明语句:
double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是()。
D
A)*p=&a;scanf("%lf",p);
B)*p=&a;scanf("%lf",*p);
C)p=&a;scanf("%lf",*p);
D)p=&a;scanf("%lf",p);
51508.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;当执行p++;后下列叙述错误的是()。
A
A)p向高地址移了一个字节
B)p与a+1等价
C)语句printf("%d",*p);输出20
D)p指向数组元素a[1]
51509.下面语句正确的是()。
B
A)int*p;*p=20;
B)char*s="abcdef";printf("%s\n",s);
C)charstr[]="abcd";str++;
D)charstr[]={'a','b','c'};printf("%s",str);
51601.若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是()。
D
inti,j,(*p)[3];
inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
A)*(*(a+i)+j)
B)p[i][j]
C)(*(p+i))[j]
D)p[i]+j
51602.若函数fun的函数头为:
intfun(inti,intj)且函数指针变量p定义如下:
int(*p)(inti,intj);
则要使指针p指向fun的赋值语句是()。
B
A)p=*fun;
B)p=fun;
C)p=fun(i,j);
D)p=&fun;
51603.设有如下变量定义:
charaa[][3]={'a','b','c','d','e','f'};
char(*p)[3]=aa;
则以下程序段的运行结果是()。
D
p++;
printf("%c",**p);
A)a
B)b
C)c
D)d
51604.以下程序段运行后x的值为()。
D
inta[]={1,2,3,4,5,6,7,8};
inti,x,*p;
x=1;
p=&a[2];
for(i=0;i<3;i++)
x*=*(p+i);
A)不确定
B)24
C)120
D)60
51605以下程序段运行后x的值为()。
B
inta[]={1,2,3},b[]={4,2,5};
int*p,*q;
inti,x;
p=a;q=b;
for(i=0;i<3;i++)
if(*(p+i)==*(q+i))
x=*(p+i)*2;
A)2
B)4
C)6
D)不确定
51606.以下程序段运行后x的值为()。
C
inta[9]={1,2,3,4,5,6,3,8,9};
int*p,*q;
inti,x;
p=&a[0];
q=&a[8];
for(i=0;i<3;i++)
if(*(p+i)==*(q-i))
x=*(p+i)*2;
A)2
B)4
C)6
D)不确定
51607.下面程序的输出结果是()。
A
#include
voidmain()
{
inti;
char*s="abc";
for(i=0;i<3;i++)
printf("%s\n",s+i);
}
A)abc
bc
c
B)c
bc
abc
C)abc
c
bc
D)a
ab
abc
51608.下面程序的输出结果是()。
A
#include
voidmain()
{
char*str="12345",*ps=str+4;
printf("%c\n",ps[-4]);
}
A)1
B)2
C)3
D)错误
51609.以下程序执行时,输入12345<回车>,输出为:
()。
A
#include
#defineN5
voidmain()
{inta[N];
int*p=a;
while(pwhile(p>a)printf("%d",*(--p));
}
A)54321
B)12345
C)23451
D)43215
51701.设有以下定义语句:
structstudent
{intnum;
charname[10];
floatscore;
}wang,zhang;
则不正确的叙述是()。
C
A)struct是结构体类型的关键字
B)zhang是结构体变量名
C)wang是结构体类型名
D)num,name,score都是结构体类型student的成员名
51702.设有以下定义语句:
structstudent
{intnum;
charname[10];
floatscore;
}wang,zhang;
则变量wang所占的内存字节数是()。
B
A)14
B)16
C)18
D)20
51703.设有如下定义语句:
unionu_type
{inti;
doublex;
floatf;
};
structstr_type
{charstr[100];
unionu_typeu[2];
};
则语句“printf("%d",sizeof(structstr_type));”的输出结果是()。
B
A)100
B)116
C)120
D)200
51704.若有定义:
structteacher
{intnum;
charname[10];
charsex;
intage;
floatscore;
}teacher1;
则变量teacher1所占用的内存字节数是()。
C
A)5
B)14
C)19
D)20
51705.下列对结构体类型变量定义不正确的是()。
C
A)structteacher
{intnum;
intage;
}teach1;
B)struct
{intnum;
intage;
}teach1,teach2;
C)struct
{intnum;
intage;
}teacher;
structteacherteach1;
D)structteacher
{intnum;
intage;
};
structteacherteach1;
51706.若有定义:
structteacher
{intnum;
charsex;
intage;
}teacher1;
则下列叙述不正确的是()。
D
A)struct是结构体类型的关键字
B)structteacher是用户定义的结构体类型
C)num,sex,age都是结构体变量teacher1的成员
D)teacher1是结构体类型名
51707.以下程序的运行结果是()。
D
#include
unionUtype{
inti;
floatf;
}u[2];
voidmain()
{
printf("sizeof(u):
%d\n",sizeof(u));
}
A)2
B)4
C)6
D)8
51708.以下程序的运行结果是()。
D
#include<