福建省二级c语言资料.docx
《福建省二级c语言资料.docx》由会员分享,可在线阅读,更多相关《福建省二级c语言资料.docx(104页珍藏版)》请在冰豆网上搜索。
福建省二级c语言资料
语法基础
12、在C语言中,正确的用户标识符是()
A.3fB._forC.structD._f.5
16、以下()是正确的字符常量
A.“c”B.‘//”C.‘W’D.“\32a”
17、以下()是不正确的字符串常量
A.‘abc’B.“12’12”C.“0”D.““
18、C语言的整型数据在内存中的存储形式是()
A.原码B.反码C.补码D.ASCII码
19、以下()是正确的浮点数
A.e3B..62C.2e4.5D.123
20、下列不属于C语言关键字的是()
A.continueB.integerC.staticD.signed
21、C语言的字符型数据在内存中的存储形式是()
A.原码B.补码C.反码D.ASCII
22、在C语言中,变量所分配的内存空间大小是()
A.由变量的类型决定B.由用户自己决定
C.任意的D.均为两个字节
23、若有定义:
inta=2;则正确的赋值表达式是()
A.a-=(a*3)B.double(-1)C.a*3D.a*4=3
24、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()
A.3,3,4B.4,4,3C.4,4,4D.3,4,3
25、语句a=(3/4)+3%2;运行后,a的值为()
A.0B.1C.2D.3
27、若有定义:
intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()
A.3,3B.4,4C.4,3D.3,4
28、若变量已正确定义并赋值,符合C语言语法的表达式是()
A.a=8+b+c,a++B.a=3aC.int(12.3%4)D.a=a+1=c+b
29、若有定义:
inta,b;doublex;则以下不符合C语言语法的表达式是()
A.x%(-3)B.a+=-1C.a=b=2D.x=a+b
30、若有定义:
intx=2,y=3;floati;则以下符合C语言语法的表达式是()
A.x=x*3=2B.x=(y==1)C.i=float(x)D.i%(-3)
31、若有定义:
intx;则语句x=(2*3)+6%5;运行后,x的值是()
A.8B.7C.6D.5
32、下面关于C语言变量的叙述中,错误的是()
A.可以用const关键字定义变量B.在C程序中,SUM和sum是不同的变量
C.变量名必须由字母或下划线组成D.变量的类型确定了变量的取值范围
33、若有定义:
intx=5,y=6;则表达式x=(y==6)的值为()
A.5B.1C.6D.0
34、下面叙述正确的是()
A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价
C.++5与6等价D.‘A’与”A”等价
35、下面叙述中,错误的是()
A.C语言基本的算术运算符不包含模运算符”%”
B.算术运算符的优先级高于关系运算符
C.自加和自减运算符的结合方向是”自右向左”
D.C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行
36、下面叙述正确的是()
A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)++是合法的
C.‘A’*’B’是不合法的D.“A”+”B”是合法的
38、设整型变量a为5,使b不为2的表达式是()
A.b=(++a)/3B.b=6-(--a)C.b=a%2D.b=a/2
39、若有定义:
inta=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为()
A.1B.0C.2D.3
40、若有定义:
inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()
A.7B.8C.9D.10
41、若有定义:
inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()
A.7B.8C.9D.10
42、若有定义:
inti=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为()
A.8B.6C.7D.5
43、若已定义:
inti=3,k;则语句k=(i--)+(i--);运行后k的值为()
A.4B.5C.6D.7
44、C语言的运算符按运算对象的个数可以分为()
A.单目运算符一种B.单目和双目运算符
C.单目、双目和三目运算符D.单目、双目、三目和四目运算符
45、若已定义:
floatm;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()
A.scanf(“%5.2f”,&m);B.scanf(“%3.2f”,&m);
C.scanf(“6.2f”,&m);D.scanf(“6f”,&m);
46、已知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()
A.scanf(“%ld”,&a);B.scanf(“%lf”,&a);
C.scanf(“%c”,&a);D.scanf(“%u”,&a);
47、已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()
A.scanf(“%d”,&a);B.scanf(“%lf”,&a);C.scanf(“%c”,&a);D.scanf(“%u”,&a);
48、putchar()函数的功能是向终端输出()
A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式
49、以下程序段运行后的输出结果是()
intk=11;
printf(“k=%d,k=%o,k=%x\n”,k,k,k);
A.k=11,k=13,k=cB.k=11,k=12,k=13
C.k=11,k=13,k=bD.k=11,k=13,k=a
50、若有定义:
intx=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为()
A.123412312B.12341234123412341231231231212
C.1234+1234+1234D.1234+123+12
51、已有如下定义和输入语句,
inta;charc1,c2;
scanf(“%d%c%c”,&a,&c1,&c2);
若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()
A.10ABB.10ABC.10ABD.10AB
52、以下程序段的运行结果是()
inta=0,b=0,c=0;
if(a&&++b)
c++;
printf(“%d,%d\n”,b,c);
A.0,0B.1,2C.2,2D.1,0
53、以下程序的运行结果是()
voidmain()
{
inta=65;
charc=’A’;
printf(“%x,%d”,b,c);
}
A.65,aB.41,aC.65,65D.41,65
54、若已定义:
inta=5;floatb=63.72;以下语句中能输出正确值的是()
A.printf(“%d%d”,a,b);B.printf(“%d%2f”,a,b);
C.printf(“%2f%2f”,a,b);D.printf(“%2f%d”,a,b);
55、运行以下程序段时编译出错,其原因是()
charc1='8',c2='2008';
printf("%c,%d\n",c1,c2);
A.c2是字符变量,只能赋以字符常量,不能赋以字符串常量
B.字符串要用“2008“表示,而‘2008’不是字符串表示
C.‘2008’只能赋值给字符数组
D.字符变量不能用%d格式输出
56、若已定义:
inta=3,b=15,c;则语句c=a>b;运行后c的值为()
A.1B.0C.tD.f
57、在C语言中,判定逻辑值为“真“的最正确的叙述是()
A.1B.非0的数C.大于0的数D.非0的整数
58、若已定义:
inta=-36,b=-30,c;则语句c=a
A.1B.tC.0D.f
59、能正确表示数学关系式800>=y>=500的C语言表达式为()
A.(y<=800)&&(y>=500)B.(y<=800)AND(y>=500)
C.800>=y>=500D.(y<=800)&(y>=500)
60、若有定义:
intx=3,y=4;则表达式!
x||y的值为()
A.1B.0C.3D.4
61、若有定义:
inti=7,j=8;则表达式i>=j||iA.1B.变量i的值C.0D.变量j的值
62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。
则不能满足要求的表达式是()
A.a%2==1B.!
(a%2==0)C.!
(a%2)D.a%2
63、若有定义:
intx=3,y=4,z=5;则值为0的表达式是()
A.‘x’&&yB.x<=y
C.x||y+z&&y-zD.!
((xz||1)
64、若有定义:
inta=5,b=2,c=1;则表达式a-bA.0B.1C.3D.-1
67、已知doublea=5.2;则正确的赋值表达式是()
A.a+=a-=(a=4)*(a=3)B.a=a*3=2
C.a%3D.a=double(-2)
68、已知chara='R';则正确的赋值表达式是()
A.a=(a++)%4B.a+2=3C.a+=256--D.a=’\078’
69、已知inta=’R’;则正确的表达式是()
A.a%10B.a=int(3e2)C.2*a=a++D.a=a+a=a+3
75、若有定义:
inta=6,b=2;charc1=’a’,c2=’b’;则表达式a+b%5+c2-c1的值是(c)
A.7B.8C.9D.表达式错误
77、设有定义:
charc;floatf;inti;unsignedu;doubled;下列各表达式的类型分别是()
1.u+92.d!
=f&&(i+2)3.8.2*i+c
A.1.unsigned,2.int,3.doubleB.1.double,2.double,3.double
C.1.int,2.double,3.charD.1.unsigned,2.double,3.int
控制结构
81、以下程序段运行的结果是()
inta,b,c,x;
a=b=c=0;x=15;
if(!
a)x--;
elseif(b);
if(c)x=3;
else
x+=4;
printf("%d\n",x);
A.15B.17C.18D.19
89、若有定义:
intx;以下不会产生死循环的是()
A.for(;(x=getchar())!
=’\n’;);B.while
(1){x++;}
C.for(i=10;;i++);D.for(;;x+=1);
90、在循环语句的循环体中,break语句的作用是()
A.暂停程序的运行B.结束本次循环
C.继续执行break语句之后的循环体各语句
D.提前结束循环,接着执行该循环后续的语句
96、以下程序的运行结果是()
voidmain()
{
intsum=0,item=0;
while(item<5)
{
item++;
sum+=item;
if(sum>=6)
break;
}
printf(“%d\n”,sum);
}
A.10B.15C.6D.7
97、以下程序的运行结果是()
voinmain()
{
intsum=0,item=0;
while(item<5)
{
item++;
if(item==2)
continue;
sum+=item;
}
printf(“%d\n”,sum);
}
A.10B.13C.15D.1
99、以下程序的运行结果是()
#include
main()
{
inty=10;
do
{y--;}
while(--y);
printf("%d\n",y--);
}
A.1B.2C.-1D.0
数组
101、下列数组定义中,正确的是()
A.inta[10];B.intn=10,a[n];
C.intN=10;inta[N];D.intn;scanf(“%d”,&n);inta[n];
102、若已定义:
inta[13];则不能正确引用a数组的元素的是()
A.a[0]B.a[10]C.a[10+3]D.a[13-5]
103、若有定义:
inta[3]={0,1,2};则a[1]的值为()
A.0B.1C.2D.3
104、若有定义:
inta[5]={1,2,3,4,5};
则语句a[1]=a[2]+a[2+2]-a[3-1];运行后a[1]的值为()
A.6B.5C.1D.2
106、若有如下程序段:
chars[10];
s=“abcd”;
printf(“%s\n”,s);
则()。
A.执行时输出:
abcdB.执行时输出:
a
C.执行时输出:
abD.编译不通过
107、下面程序段的运行结果是()
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.9795105B.9593103C.957383D.757383
108、下面程序段的运行结果是()
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.112345B.12345C.1112131415D.1112345
109、西面关于数组的叙述中,正确的是()
A.数组必须先定义,然后使用
B.定义数组时,可不加类型说明符
C.定义数组后,可通过赋值运算符“=”对该数组名直接赋值
D.在数据类型中,数组属于基本类型
110、一下程序段的运行结果是()
inti=0,a[]={6,5,3,7};
do
{
a[i]++;
}while(a[i]<4);
for(i=0;i<4;i++)printf("%d",a[i]);
A.6537B.7563C.7537D.5673
111、有如下程序段:
intt[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("%d\n",t[2][1]);
则执行该程序段后输出结果是()
A.8B.7C.4D.2
112、以下程序段运行后s的值是()
inta[3][3]={1,2,3,1,2,3,1,2,3};
inti,j,s=1;
for(i=0;i<3;i++)
for(j=i;j<3;j++)s*=a[i][j];
A.18B.108C.2D.12
113、以下不能对二维数组arr进行正确初始化的语句是()
A.intarr[2][3]={0};B.intarr[][3]={1,2,3,4,5};
C.intarr[2][3]={{1,2},{3,4},{5,6}};D.intarr[2][3]={{1},{3,4,5}};
114、若有定义:
inta[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为()
A.0B.{1,2}C.1D.3
116、若有定义:
inti=0,x=0;inta[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为()
for(;i<3;i++)x+=a[i][2-i];
A.0B.12C.15D.18
117、若有定义inta[2][3];则对数组元素的非法引用的是()
A.a[0][1/2]B.a[1][1]C.a[4-4][0]D.a[0][3]
118、以下数组定义中,正确的是()
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};
120、以下程序段运行后s的值是()
inta[3][3]={1,2,3,4,5,1,2,3,4};
inti,j,s=1;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
s*=a[i][j];
A.6B.120C.24D.480
121、设已定义:
inta[][4]={0,0};则下列描述错误的是()
A.数组a的每个元素都可得到初值0B.二维数组a的第一维大小为1
C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
122、设已定义:
charstr1[10],str2[10]=”Fujian”;则能将字符串”Fujian”赋给数组str1的正确语句是()
A.str1=”Fujian”B.strcpy(str1,str2);C.strcpy(str2,str1);D.str1=str2;
123、有如下定义:
charstr[3][2]={'a','b','c','\0','e','f'};则语句:
printf("%s",str[0]);的输出结果是()
A.abB.abcefC.abc\0D.abc
124、设有如下数组定义:
charstr[8]={"Fujian"};则分配给数组str的存储空间是()字节
A.6B.7C.8D.9
125、若有定义:
chara[]="abcdef";charb[]="xyz";则以下程序段运行后屏幕输出为()
strcpy(a,b);
printf("%c",a[2]);
A.cB.zC.\0D.d
126、以下程序段运行后屏幕输出为()
chara[]="abc\0mis";
printf("%d",strlen(a));
A.5B.8C.3D.4
127、若有定义:
inta=2;则语句a=strcmp("miss","miss");运行后a的值为()
A.1B.0C.-1D.2
128、以下对C语言字符数组描述中,正确的是()
A.可以用length函数计算字符数组中字符串的长度
B.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
C.存放在字符数组中的字符串,以’\0’作为该字符串结束标志
D.字符数组只能存放字符串,不能存放字符
129、以下程序段运行后屏幕输出为()
charstr[80];
strcpy(str,"hello");
printf("%d",strlen(str));
A.5B.6C.7D.80
131、已有定义:
charstr1[15]={“university”},str2[15];则以下语句中正确的是()
A.str2=str1;B.str2=”college”;C.scanf(“%s”,&str2);D.printf(“%s”,str1);
132、设已定义:
chars1[20]=”Youare”,s2[9]=”welcome!
”;若要形成字符串”Youarewelcome!
”,正确的语句是()
A.strcat(s1,s2);B.strcpy(s1,s2);C.s1+s2;D.s1&s2
函数
134、以下程序的运行结果是()
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.2005B.1004C.0120D.0450
136、以下程序运行后屏幕输出为()
#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.0B.2+3=5C.2+3=0D.3+2=5
137、以下程序运行后屏幕输出为()
#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.3,2B.2C.3D.4
138、以下程序的运行结果是()
fun(inti)
{
inta=2;
a=i++;
printf("%d",a);
}
main()
{
inta=5,c=3;
fun(c);
printf("%d",a);
}
A.45B.35C.44D.33
139、若有如下函数定义:
intfun()
{
staticintk=0;
return++k;
}
以下程序段运行后屏幕输出为()
inti;
for(i=1;i<=5;i++)fun();
printf("%d",fun());
A.0B.1C.5D.6
140、下面程序的输出结果是:
()
#include
intglobal=100;
fun()
{
intglobal=5;
return++global;
}
voidmain()
{
printf("%d\n",fun());
}
A.100B