福建省10级二级C选择题.docx
《福建省10级二级C选择题.docx》由会员分享,可在线阅读,更多相关《福建省10级二级C选择题.docx(35页珍藏版)》请在冰豆网上搜索。
福建省10级二级C选择题
2010级二级C语言选择题练习
50124、以下叙述正确的是()。
答案:
A、注释部分可单独占用一行,也可跟在语句的后面
B、函数体定界符也可用一对方括号"[]"
C、C语言源程序每一行就是一条语句
D、由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面
50125、下面叙述错误的是()。
答案:
A、所有语句都必须以分号";"结束
B、语句是构成C语言源程序的基本单位
C、C语言源程序必须包含一个main()函数
D、注释部分在程序编译和运行时不起作用
50126、main()函数的位置()。
答案:
A、必须位于程序文件的最前面
B、必须位于用户自定义函数的前面
C、可位于用户自定义函数之前,也可位于用户自定义函数之后
D、必须位于用户自定义函数的后面
50127、()是结构化程序设计应遵循的原则。
答案:
A、选用的控制结构可有多个入口和一个出口
B、根据需要可使用嵌套基本控制结构表示程序逻辑
C、应使用顺序、选择、循环三种基本控制结构表示程序逻辑
D、为提高程序效率,应尽量使用Goto语句
50128、描述一个算法可以有不同的方式,常见的有()。
答案:
A、汇编语言、高级语言和低级语言
B、自然语言、流程图和伪代码
C、机器语言、汇编语言和高级语言
D、高级语言、自然语言和伪代码
50224、下列不属于C语言数据类型的是()。
答案:
A、双精度型
B、枚举类型
C、复数类型
D、长整型
50225、下列合法的浮点数的是()。
答案:
A、.65
B、E2
C、2E0.5
D、123
50226、下列不合法的字符常量的是()。
答案:
A、'\t'
B、'\n'
C、'\\'
D、"a"
50227、下列()是不正确的常量形式。
答案:
A、'x5'
B、1.6E6
C、1E-2
D、"\0"
50228、下列()是不合法的用户标识符。
答案:
A、_f6
B、div
C、5x
D、_num
50324、若已定义:
intn=2;doublex=2.5;则下列表达式中不符合语法的是()。
答案:
A、(int)x%n
B、(int)(x%n)
C、(int)(x/n)
D、(int)x/n
50325、若已定义:
longinti;charc;doublex;则表达式i*c+(int)x结果的类型是()。
答案:
A、int
B、char
C、double
D、longint
50326、若已定义:
intx=3,y=2;则下列不正确的赋值表达式是()。
答案:
A、x=2,y=2;
B、x-y=1;
C、x-=x+=y;
D、x=y+2
50327、若已定义:
intx;则逗号表达式x=5,3+x,x=x*2的值是()。
答案:
A、16
B、10
C、5
D、15
50328、对应代数式3a÷(b+c),C语言的表达式是()。
答案:
A、3*a/b+c
B、3*a\(b+c)
C、3a/(b+c)
D、3*a/(b+c)
50424、若已定义:
intx=2,y=3;则执行语句y=x+++(--y);后,y的值为()。
答案:
A、3
B、6
C、5
D、4
50425、若已定义:
inti=2,j=2;floatx=2.5,y=3.5;则表达式(float)(i+j)/2+(int)x%(int)y的值为()。
答案:
A、4.5
B、4.0
C、3.5
D、3.0
50426、若已定义:
intx=2,y;则逗号表达式y=3,x+=x+(++y)%x的值是()。
答案:
A、2
B、3
C、4
D、5
50427、若已定义:
doublex,y;则下列表达式不能正确计算(x-2)/3*y的是()。
答案:
A、y/3*(x-2)
B、(x-2)*y*1/3
C、y*(x-2)/3
D、(1/3)*(x-2)*y
50428、若已定义:
intx=2,y;则执行语句y=x%2+(--x);后y的值是()。
答案:
A、0
B、1
C、2
D、3
50524、若已定义:
charc;则下列正确的输入语句是()。
答案:
A、gets(c);
B、scanf("%s",&c);
C、scanf("%c",c);
D、getchar(c);
50525、若已定义:
doublex;则exp(x)+sqrt(x)/2所表示的数学式是()。
答案:
A、公式
(1)
B、公式
(2)
C、公式(3)
D、公式(4)
50526、若已定义:
intx=5,y=7;正确实现输出形式:
5+7=12的语句是()。
答案:
A、printf("x+y=%d",x+y);
B、printf("%d+%d=%d",x,y,x+y);
C、printf("%d+%d=x+y",x,y);
D、printf("x+y=x+y");
50527、若已定义:
doublex=2.5;则求x的平方的正确的函数调用是()。
答案:
A、pow(x,2)
B、sqrt(x)
C、rand(2,x)
D、exp(x)
50528、要使用以下程序段给三个整变量x1,x2,x2分别赋值1,2,3,正确的数据输入格式是()。
intx1,x2,x3;
scanf("%d,%d,%d",&x1,&x2,&x3);
答案:
A、1
2
3
B、1,2,3
C、123
D、123
50624、若已定义:
intx=2,y=3;则下列表达式值为假的是()。
答案:
A、x>y||xB、x==(y=x)
C、x&&y
D、!
x||!
y
50625、若已定义:
inta=0,b=1;则下列表达式值为真的是()。
答案:
A、a++&&b++
B、(a=0)&&(b=1)
C、a==1||a!
=1
D、a!
=0||b!
=1
50626、判断char型变量cl是否为小写字母的正确表达式为()。
答案:
A、'a'<=c1<='z'
B、(c1>='a')&&(c1<='z')
C、('a'>=c1)&&('z'<=c1)
D、(c1>=a)&&(c1<=z)
50627、下列当x的值在5至10之间为“假”,否则为“真”的逻辑表达式为()。
答案:
A、x<=5&&x>=10
B、x>=5&&x<=10
C、!
(5<=x<=10)
D、!
(5<=x&&x<=10)
50628、若已定义:
intx,y;则下列不能正确表示数学关系式|x-y|>5的表达式是()。
答案:
A、(x-y)>5||(x-y)<-5
B、abs(x-y)>5
C、(x-y)<-5&&(x-y)>5
D、(x-y)*(x-y)>25
50724、若已定义:
inta=1,b=2,c=2;则表达式(a+b)/1.0/c的值是()。
答案:
A、1.5
B、1
C、0.0
D、1.0
50725、若已定义:
intx=11;doubley=3.5;则表达式y/2+x%2/2的值是()。
答案:
A、1.5
B、1.75
C、1.0
D、3.5
50726、下列四个运算符,按优先级别由高到低排列的是()。
答案:
A、!
、%、==、=
B、%、!
、==、=
C、!
、%、=、==
D、!
、=、%、==
50727、若已定义:
doublex=3,y;intz=2;则语句y=(x+z)/2*z;执行后,y的值为()。
答案:
A、4.0
B、5.0
C、1.0
D、1.25
50728、若已定义:
intx=2,y=4;则表达式(double)x/y+y%x的值是()。
答案:
A、2
B、0
C、0.5
D、2.5
50824、若已定义intk;下列()语句与其他三条语句不等价。
答案:
A、if(k)
printf("Yes!
\n");
else
printf("No!
\n");
B、if(k==0)
printf("No!
\n");
else
printf("Yes!
\n");
C、if(k!
=0)
printf("Yes!
\n");
else
printf("No!
\n");
D、if(k==0)
printf("Yes!
\n");
else
printf("No!
\n");
50825、若已定义intk=4,s=10;则下列程序段的运行结果是()。
if(2*k>9)
s=k+5;
printf("%d\n",s+k);
答案:
A、10
B、14
C、19
D、13
50826、下列()不能当作一条语句。
答案:
A、if(k>0)
m=1;
else
n=2;
B、m=1,n=2,k=3;
C、if(k>0);
D、if(k==0)
m=1;
n=2;
50827、若已定义intx=5;则下列程序段的运行结果是()。
if((x--)<5)
printf("%d\n",x);
else
printf("%d\n",x++);
答案:
A、3
B、4
C、5
D、6
50828、下列程序段的运行结果是()。
intk=8;
switch(k%5)
{default:
printf("DD");
case1:
printf("AA");
break;
case2:
printf("BB");
case0:
printf("CC");
}
答案:
A、CC
B、AA
C、DDAA
D、DD
50924、下列程序段运行时,语句k+=2;执行的次数是()。
inti,k=0;
for(i=7;i>3;i--,i--)
k+=2;
答案:
A、3
B、2
C、1
D、4
50925、若已定义:
inti=5,m=1;则()语句不会产生无限循环。
答案:
A、for(;i>0;i--)
m+=3;
B、while(i=1)
m+=3;
C、for(;i<10;)
m+=3;
D、do
{m+=3;
}while(i==5);
50926、循环语句的循环体中,continue语句的作用是()。
答案:
A、继续执行continue语句之后的循环体各语句
B、结束本次循环,跳出循环体
C、结束本次循环
D、立即终止程序运行
50927、下列程序段运行后m的值为()。
inti,j,m=0;
for(i=1;i<=3;i++)
for(j=2;j<=4;j++)
m=m+i+j;
答案:
A、33
B、45
C、27
D、30
50928、下列程序段运行后sum的值为()。
inti=8,sum=0;
while((i--)>=5)
{sum+=2;
}
答案:
A、10
B、8
C、6
D、4
51024、若已定义:
inta[8],k=2;无法正确引用数组a中元素的是()。
答案:
A、a[8/k]
B、a[8-k]
C、a[8+k]
D、a[0]
51025、下列叙述正确的是()。
答案:
A、数组中每一个元素都属于同一个数据类型
B、定义数组时,若不加类型说明符则为整型
C、C语言中,数组长度在程序运行中可作动态调整
D、可利用数组名引用数组的第一个元素
51026、下列程序段的运行结果是()。
inta[]={1,3,4,6,9},i,x=1;
for(i=0;i<3;i++)
x+=a[i+1];
printf("%d\n",x);
答案:
A、9
B、14
C、15
D、10
51027、下列程序段的运行结果是()。
inta[]={8,7,6,5,4,3,2,1},i,sum=0;
for(i=0;i<8;i++)
if(i<=3)
sum+=a[i];
else
sum-=a[i];
printf("%d\n",sum);
答案:
A、0
B、16
C、10
D、15
51028、下列程序段的运行结果是()。
inta[]={0,1,2,3,4,5,6,7,8,9},i=0,t;
while(i<=7)
{t=a[i];
a[i]=a[i+2];
a[i+2]=t;
i+=2;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
答案:
A、0123456789
B、2143658709
C、2468013579
D、1357924680
51124、对二维数组arr初始化正确的是()。
答案:
A、intarr[2][3]={{1,2},{3,4},{0}};
B、intarr[2][]={1,2,3,4,5};
C、intarr[2][3]={{1,2},{3,4}};
D、intarr[][]={{1},{3,4,5}};
51125、下列程序段的运行结果是()。
intarr[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("%d\n",arr[1][3]);
答案:
A、8
B、3
C、11
D、12
51126、若已定义:
inta[][4]={{1,2},{3,4},{5,6,7},{8,9,10,11}};则a[2][2]的值为()。
答案:
A、7
B、4
C、10
D、6
51127、下列程序段的运行结果是()。
inta[3][3]={1,2,3,4,5,6,7,8,9},i;
for(i=0;i<3;i++)
printf("%2d",10-a[2-i][i]);
答案:
A、357
B、753
C、951
D、841
51128、二维数组元素在内存中的存放顺序是()。
答案:
A、由用户自己定义
B、按列优先
C、按行优先
D、由编译器决定
51224、若已定义charstra[50],strb[50];能正确从键盘读入字符串的是()
答案:
A、gets(strb,stra);
B、scanf("%s%s",stra[50],strb[50]);
C、scanf("%s%s",stra,strb);
D、getch(stra,strb);
51225、若已定义:
charstr1[20]="guangzhou",str2[20]="2010";能形成字符串"GUANGZHOU2010"的语句是()。
答案:
A、strcpy(strupr(str1),str2);
B、strcat(strupr(str1),str2);
C、strcpy(str2,strupr(str1));
D、strcat(str2,strupr(str1));
51226、下列程序段的运行结果是()。
charstr[]={'Y','o','u','\0','a','r','e','\0','w','e','l','c','o','m','e'};
puts(str);
答案:
A、welcome
B、Youare
C、Youarewelcome
D、You
51227、若已定义:
charstr[20]={"Good\0morning"};则函数strlen(str)的值是()。
答案:
A、4
B、5
C、6
D、12
51228、下列程序段的运行结果是()。
chars1[7]="abcdef",s2[4]="123";
strcpy(s1,s2);
printf("%s%c",s1,s1[4]);
答案:
A、abc
B、123
C、abce
D、123e
51324、下列程序段中函数调用语句tnk((a,b),m+n);的实参值是()。
inta=1,b=2,m=3,n=4;
tnk((a,b),m+n);
答案:
A、2和7
B、3和7
C、1和7
D、2和3
51325、对于无返回值的自定义函数,在定义时最好使用()类型标识符。
答案:
A、void
B、float
C、int
D、long
51326、下列叙述错误的是()。
答案:
A、定义函数时可以有参数,也可以没有参数
B、形参是变量名时,实参也只能是变量名,不可以是表达式
C、函数的形参在函数被调用前是没有确定值的
D、函数的形参和对应的实参个数应相等,类型应相同或赋值兼容
51327、下列叙述正确的是()。
答案:
A、函数的定义允许嵌套,但函数的调用不允许嵌套
B、函数的定义不允许嵌套,但函数的调用允许嵌套
C、函数的定义和调用都不允许嵌套
D、函数的定义和调用都允许嵌套
51328、下列程序的运行结果是()。
#include
intfun(intx,inty)
{intz;
z=x>y?
x:
y;
return(x+z);
}
main()
{inta=6,b=1,c=3;
printf("%d\n",fun(a-b,b+c));
}
答案:
A、10
B、5
C、4
D、9
51424、下列程序的运行结果是()。
#defineK5
voidmain()
{inta=3,b=4;
printf("%d\n",K*(a+b));
}
答案:
A、20
B、5
C、35
D、15
51425、下列叙述错误的是()。
答案:
A、预处理命令行都必须以#号开始
B、#definePER1.5的作用是用标识符PER代表1.5
C、C语言源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
D、宏定义可出现在源程序中任意合适的位置,且必须在行末加分号
51426、下列程序的运行结果是()。
#defineM5
#defineNM+1
#defineNNN*N-M
voidmain()
{printf("%d\n",3*NN);
}
答案:
A、108
B、21
C、16
D、103
51427、下列叙述正确的是()。
答案:
A、为提高程序运行速度可在源程序中加入一些宏定义
B、宏定义不占用程序运行时间,但与程序中的语句一样需要编译
C、一个C语言源程序只能有一条预处理命令
D、宏定义中的宏名必须用大写字母表示
51428、下列程序中定义的二维数组a的()。
#defineM3
#defineN4
voidmain()
{inta[M][N];
……
}
答案:
A、第一维为3,第二维为4
B、第一维为4,第二维为3
C、第一维和第二维都为3
D、第一维和第二维都为4
51524、若已定义:
inta=5,*p1=&a;floatf=6.5,*p2=&f;则下列正确的赋值语句是()。
答案:
A、p1=&f;
B、p2=p1;
C、f=*p1+*p2;
D、p2=&a;
51525、若已定义:
inta,b=5,*p=&a;与语句a=b;等价的是()。
答案:
A、a=*p;
B、*p=*&b;
C、a=&b;
D、a=**p;
51526、变量的指针,其值是该变量的()。
答案:
A、值
B、标识符
C、一个标志
D、内存单元地址
51527、若已定义:
inta[5]={1,2,3,4,5},*pa=a;下列叙述错误的是()。
答案:
A、a++与pa++的作用相同
B、pa与a的值相等
C、a[2]与pa[2]的值相等
D、*(pa+2)与a[2]的值相同
51528、若已定义:
inta[5]={1,2,3,4,5},*p=a;且p值未发生变化,下列不能表示a[1]地址的是()。
答案:
A、p+1
B、a++
C、a+1
D、++p
51624、下列程序的运行结果是()。
voidmain()
{inta[5]={2,3,5,11,4},b[5]={12,1,6,9,8};
int*pa=a,*pb=b;
inti;
for(i=0;i<5;i++)
if(*(pa+i)<*(pb+i))
printf("%d",*(pa+i));
}
答案:
A、5
B、254
C、311
D、2
51625、下列程序的运行结果是()。
voidmain()
{charstr[]="abcd",*p=str;
inti;
while(*p)
printf("%c",*(p++));
}
答案:
A、cd
B、abcd
C、abc
D、bcd
51626、下列程序的运行结果是()。
voidmain()
{inta=11,b=22,temp;
int*pa=&a,*pb=&b;
temp=*pa;
*pa=*pb;
*pb=temp;
printf("%d,%d\n",a,b);
}
答案:
A、11,11
B、22,22
C、22,11
D、11,22
51627、下列程序的运行结果是()。
voidmain()
{inta[]={1,2,3,4,5,7},*p;
p=a;
*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
}
答案:
A、1,5
B、1,3
C、1,4
D、1,6
51628、下列程序的运行结果是()。
voidfn(int*p,intn)
{intj;
for(j=0;j*(p+j)+=10;
}
voidmain()
{inta[5]={1,2,3,4,5};
inti;
fn(a,5);
for(i=0;i<5;i++)
printf("%d",*(a+i));
}
答案:
A、12345
B、112345
C、123415
D、1112131415
51724、若已定义:
structstudent
{intnum;
charname[20];
}stu1,stu2;
下列语句不正确的是()。
答案:
A、stu1=stu2;
B、stu1.num=stu2.num;
C、strcpy(stu1.name,stu2.name)