福建省计算机等级考试二级选择题附答案.docx
《福建省计算机等级考试二级选择题附答案.docx》由会员分享,可在线阅读,更多相关《福建省计算机等级考试二级选择题附答案.docx(42页珍藏版)》请在冰豆网上搜索。
福建省计算机等级考试二级选择题附答案
一、单项选择题
(1).下面程序运行后,文件d_f.dat的内容是
(1)。
main()
{FILE*fp;inti=10,j=20;
fp=fopen("d_f.dat","w");
fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d_f.dat","a");
fprintf("%d",j);
fclose(fp);
}
①1020②20③2010④10
(2).若有定义:
enumday{sun,mon,tue,wed,thu,fri,sat};,则枚举常量sun、mon的值分别为(4)。
①70②12③71④01
(3).下列程序段运行后,表达式
(2)的值为3。
structpoint
{intx;
inty;
}*p;
structpointa[3]={1,2,3,4,5,6};
p=a;
①p[3].x②p[1].x③*(p+2)④p[2].x
(4).以下程序段的运行结果是(3)。
intx[]={2,3,4,5,6,7},*p=x;
inti,s=0;
for(i=1;i<5;i++)s+=p[i++];
printf("%d",s);
①20②14③8④6
(5).C语言的函数体由
(1)括起来。
①{}②[]③<>④()
(6).若有定义:
intx,y,z;语句x=(y=z=3,++y,z+=y);运行后,x的值为
(2)。
①7②6③8④3
(7).若有定义:
intx;charc='A';则正确的赋值表达式是(4)。
(说明:
'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97)
①x='ABC'②x=c+'ABC'③x=c+'CBA'④x=c+32
(8).下面叙述错误的是(3)。
①C语言规定可逐个引用数组元素但不能一次引用整个数组②数组中每一个元素都属于同一个数据类型③C语言数组长度在定义数组时可不作确定④C语言数组名称是数组在内存中的首地址
(9).以下程序的运行结果是(4)。
intf(intc)
{c+=2;
returnc;
}
main()
{inta=2,c=5;
a=f(a);
printf("%d%d\n",a,c);
}
①24②25③44④45
(10).C语言中,二维数组元素在内存中的存放顺序是(3)。
①由用户自己定义②按列存放③按行存放④随机存放
(11).以下程序的运行结果是
(1)。
#defineXa+b
main()
{inta=3,b=4,s1;
s1=2*X;
printf("%d\n",s1);
}
①10②14③8④6
(12).若有定义:
charstr1[10],str2[10]="Fujian";,能将字符串"Fujian"赋给数组str1的正确语句是
(1)。
①strcpy(str1,str2);②strcpy(str2,str1);③strcopy(str1,str2);④str1="Fujian";
(13).若有定义:
inti,x;(3)不是死循环。
①for(;;i+=2);②for(i=10;;i--);③for(x=5;x>0;x--);④while(x=1);
(14).只能向终端输出一个字符的是
(1)。
①putchar()函数②scanf()函数③printf()函数④getchar()函数
(15).C语言的基本数据类型包括(3)。
①整型、字符型、指针型②整型、实型、逻辑型③整型、实型、字符型④整型、实型、空类型
(16).若有定义:
inta,b=5;语句a=(b/2)+b%2;运行后,a的值为
(2)。
①4②3③2④0
(17).x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为(3)。
①!
(x>-20)&&!
(x<-5)②-5-20&&x<-5④-20(18).以下程序的运行结果是(3)。
voidmain()
{inta,b=2,c=6;
a=3;
if(a>6)
a=a+b;
elseif(a==6)
b=a+c;
else
a=b+c;
printf("%d\n",a);
}
①5②6③8④9
(19).若有定义:
inta[3][4]={{1,2},{3,4},{5,6,7}};,则a[1][1]的值为(4)。
①2②3③1④4
(20).若有定义:
structteacher
{intnum;
charsex;
intage;
}teacher1;
则下面叙述错误的是(4)。
①struct是结构类型的关键字②structteacher是用户定义的结构类型③num、sex、age都是结构变量teacher1的成员④teacher1是结构类型名
(21).
(1)是关于C语言数据类型的正确叙述。
①变量使用前应定义相应的数据类型②不允许使用空类型③枚举类型不是基本类型④数组不是构造类型
(22).(4)为非法的字符串常量。
①"case"②""③"056"④'123'
(23).若有定义:
intb=-15;则
(2)为正确的赋值表达式。
①b=*5②b+=b*3③*b=6④b+10=-5
(24).若有定义:
inta,b=6;语句a=--b;运行后,a、b的值分别是(4)。
①65②56③66④55
(25).若有定义floatx;要从键盘输入数据6.02赋给x,则应选用(3)语句。
①scanf("%1.2f",&x);②scanf("%4.2f",&x);③scanf("%f",&x);④scanf("%8.2f",&x);
(26).若有定义:
inta=1,b=2,c=3,d=4,t=2,k=2;语句(t=a
①0②2③-1④1
(27).若有定义:
inta=6,b=7,k=0,t=1;语句(k=a
①00②11③10④01
(28).以下程序段运行时,若从键盘输入5,则运行结果是(4)。
inta,y=10;
scanf("%d",&a);
if(a>10)
y=a+6;
printf("%d\n",y+a);
①10②16③11④15
(29).以下程序段运行后x的值为
(1)。
inti=0,x=2;
while(i++<=5)
{x+=2;
}
①14②12③8④10
(30).以下程序段运行后x的值为(4)。
inta[8]={1,2,3,4,5,6,7,8},i,x=0;
for(i=0;i<8;i++,i++)
x=x+a[i];
①20②18③36④16
(31).以下程序段运行后s的值是
(2)。
inta[3][3]={1,2,3,1,2,3,1,2,3};
inti,j,s=0;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
s+=a[i][j];
①15②14③13④12
(32).以下程序的运行结果是
(2)。
inta=2,b=3;
intmin(inta,intb)
{intc;
c=a
a:
b;
return(c);
}
main()
{inta=4;
printf("%d",min(a,b));
}
①4②3③2④2,3
(33).若有定义:
#definePI3,则表达式PI*2*2的值为
(2)。
①322②12③4④不确定
(34).以下程序段运行后*(p+1)的值为
(2)。
chara[]="good";
char*p;
p=a;
①a[1]的地址②'o'③不确定④'g'
(35).以下程序段运行后x的值为(4)。
inta[]={1,2,3,4,5,6,7,8};
inti,x,*p;
x=1;
p=&a[1];
for(i=0;i<3;i++)
x*=*(p+i);
①6②1③120④24
(36).以下程序段的运行结果是(4)。
union
{intnum1;
intnum2;
}s;
s.num1=20;
s.num2=30;
printf("%d",s.num1);
①20②2030③50④30
(37).下面程序运行后,屏幕显示Fileopenerror!
,则可能的原因是(4)。
#include
main()
{
FILE*fp;
charstr[256];
fp=fopen("test.txt","rt");
if(fp==NULL)
{printf("Fileopenerror!
");
return;
}
fscanf(fp,"%s",str);
fclose(fp);
}
①当前工作目录下的test.txt文件是空文件②函数fopen()的参数是错误的③test.txt文件已经打开④当前工作目录下没有test.txt文件
(38).
(1)为正确的用户标识符。
①max_at②3_row③union④min-5
(39).若有定义:
intx,a,b;语句x=(a=2,b=3,a+b);运行后,x、a、b的值依次为
(2)。
①235②523③532④325
(40).下面叙述正确的是
(2)。
①模运算符"%"两边运算数的数据类型是任意的②C语言中整型与字符型变量的混合运算表达式的结果是整型③(3+9)++是正确表达式④"abc"+"xxx"是正确表达式
(41).若有定义inta=8,b=5;要实现输出形式为:
8*5=40,正确的printf()函数调用语句是(4)。
①printf("a*b=%d\n",a*b);②printf("%d*%d=a*b\n",a,b);③printf("a*b=a*b\n");④printf("%d*%d=%d\n",a,b,a*b);
(42).下列运算符中优先级最低的是
(1)。
①=②!
③>④*
(43).以下程序段的运行结果是(4)。
ints=15;
switch(s/4)
{default:
printf("Over");
case1:
printf("One");
break;
case2:
printf("Two");
}
①One②Two③OverTwo④OverOne
(44).下面叙述正确的是
(1)。
①for循环的循环体可包含多条语句,但必须用花括号{}括起来②for循环只能用于循环次数已经确定的情况③在for循环中,不能用break语句跳出循环体④for循环是先执行循环体语句,后判断表达式
(45).若有定义:
intarr[15],n=5;无法正确引用arr数组元素的是(4)。
①arr[15-n]②arr[0]③arr[n]④arr[10+n]
(46).以下程序段的运行结果是(4)。
charstr[3][2]={'a','b','c','\0','e','f'};
printf("%s",str[0]);
①abcef②a③abc\0ef④abc
(47).以下程序段运行后*(p++)的值为(3)。
chara[5]="work";
char*p;
p=a;
①a[0]的地址②'o'③'w'④a[1]的地址
(48).若有定义:
structdata
{chara;
floatb[3];
longc;
}d1;
则变量d1的长度是(4)。
①12②4③15④17
(49).若有定义:
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,则(3)表达式是错误的。
①p++②a[2]③a++④p[2]
(50).若由定义:
typedefintNUM[100];
NUMn;
则(3)语句是正确的。
①NUM=n;②n=2;③n[0]=2;④NUM=2;
(51).下面程序运行后,屏幕显示writeok!
,则下面叙述正确的是(3)。
main()
{FILE*fp;
fp=fopen("data.txt","wt");
if(fp!
=NULL)
{fprintf(fp,"%s\n","Filewritesuccessed!
\n");
fclose(fp);
printf("writeok!
\n");
}
}
①当前工作目录下找不到data.txt文件②当前工作目录下存在data.txt文件,其中的内容是“writeok!
”③当前工作目录的data.txt文件已经关闭④当前工作目录的data.txt文件已经打开
(52).(3)为正确的变量名。
①case②else③pro_5④5_pro
(53).若有定义:
floatx=2,y;inta=3;语句y=1*(x+a)/3;运行后,y的值为(3)。
①1.0②0③1.666667④2.0
(54).若有定义:
intx,a;赋值语句a=(x%3==0)?
0:
1;与(4)语句不等价。
①if(!
(x%3==0))a=1;elsea=0;②if(x%3!
=0)a=1;elsea=0;③if(x%3==0)a=0;elsea=1;④if(x%3)a=0;elsea=1;
(55).以下程序段的运行结果是
(1)。
intt[][3]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("%d\n",t[1][1]);
①5②3③1④4
(56).以下程序段运行后a的值为
(2)。
inta=2;
a=strcmp("miss","miss");
①1②0③true④-1
(57).以下程序的运行结果是
(2)。
fun()
{staticinta=0;
a++;
printf("%d",a);
}
main()
{inti;
for(i=1;i<=2;i++)
fun();
}
①11②12③01④00
(58).若有定义:
int*p1,*p2;,则不能用于指针变量p1、p2之间的运算符是(4)。
①==②=③-④+
(59).以下程序段的运行结果是
(2)。
intx[3]={1,2,3};
int*p;
p=x;
for(p++;p<&x[2];p++)
printf("%d",*p);
①3②2③23④12
(60).下列(4)对结构类型变量定义是错误的。
①struct
{intnum;
intage;
}teach1,teach2;
②structteacher
{intnum;
intage;
}teach1;
③structteacher
{intnum;
intage;
};
structteacherteach1;
④struct
{intnum;
intage;
}teacher;
structteacherteach1;
(61).若有定义:
charch;
intj,k;
enumday{sun,mon,tue,wed,thu,fri,sat};
inta[sat];
则
(2)对下列语句是否符合语法规则的判断是正确的。
sun=0;/*语句1*/
j=mon+tue;/*语句2*/
if(a[mon]>0)j++;/*语句3*/
①语句1、2、3均错误②语句1错误,语句2和语句3正确③语句1、2、3均正确④语句2正确,语句1和语句3错误
(62).下面叙述正确的是
(2)。
①程序中必需含有自定义函数②所有语句都必须以分号";"结束③main()函数必须位于源程序文件的开头④每行最多只能写两条语句
(63).若有定义:
floatx=3.5,y=3.6;则表达式
(2)的值为6。
①(int)(x+y)②(int)x+(int)y③int(x+y)④x+y
(64).以下程序段运行后x的值为
(1)。
inti=0,x=0;
for(;i<=5;i++,i++)
{x+=3;}
①9②15③6④12
(65).若有定义:
inta[3][2];,则表达式&a[2][1]-a的值为(3)。
①5②4③3④2
(66).以下程序的运行结果是(4)。
intfun(intarray[3][3])
{intj;
for(j=0;j<3;j++)array[1][j]++;
printf("\n");
}
main()
{intj,a[3][3]={0,1,2,1,0,4,2,4,5};
fun(a);
for(j=0;j<3;j++)printf("%2d",a[1][j]);
printf("\n");
}
①104②123③012④215
(67).下面叙述错误的是
(1)。
①宏定义也是C语句,必须在行末加分号②“#definePRICE30”命令的作用是定义一个与30等价的符号常量PRICE③C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率④“#inclue”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令
(68).下面叙述错误的是(4)。
①任何指针变量都可以与空指针NULL进行比较②一个指针变量只能指向同一类型的变量③一个变量的地址称为该变量的指针④可以将一个整数值赋给指针变量
(69).以下程序段运行后x的值为(4)。
inta[]={1,2,3},b[]={4,3,3};
int*p,*q;
inti,x;
p=a;q=b;
for(i=0;i<3;i++)
if(*(p+i)==*(q+i))
x=*(p+i)*2;
①4②2③不确定④6
(70).以下程序的运行结果是
(2)。
main()
{inta[3]={1,2,3};
int*num[3];
int**p,i;
for(i=0;i<3;i++)
num[i]=&a[i];
p=num;
printf("%d",**p);
}
①&a[0]②1③3④num
(71).
(2)不是文件读库函数。
①fgetc()②fputs()③fscanf()④fread()
(72).C源程序中main()函数的位置(4)。
①必须位于程序的最前面②可以在自定义函数后面③必须在自定义函数前面④必须在系统库函数后面
(73).若有定义:
inta=3;语句a+=a-=a*a;运行后,a的值为(3)。
①-6②-3③-12④0
(74).若有语句inta;charc;scanf("%3d%c",&a,&c);为将整数135赋给a,字符'6'赋给c,正确的数据输入方式是(3)。
(说明:
代表换行,__代表空格)
①1356②135__6③1356④135__6__
(75).若有定义:
intx=1,y=2,z=3;则表达式
(2)的值为0。
①x>y||x((x(76).以下程序段运行后x的值为(4)。
inta=3,b=6,x;
x=(a==b)?
a++:
--b;
①3②4③6④5
(77).若有定义:
inti,x=0;语句for(i=1;i<=3;i++)x+=2;与下列
(2)程序段不等价。
①i=1;
for(;i<=3;i++)x+=2;
②i=1;
for(;;i++)x+=2;
③i=1;
for(;i<=3;)
{x+=2;i++;}
④for(i=1;i<=3;)
{x+=2;i++;}
(78).(3)能正确定义一个指向函数的指针。
①int(*p)()②int(*p())③int*p()④(int*)p()
(79).若有定义:
enumnum{a1,a2=3,a3,a4=10};,则枚举常量a2、a3的值分别为
(2)。
①23②34③33④12
(80).C语言中,对文件操作的一般步骤是(4)。
①打开文件,定义文件指针,读写文件,关闭文件②定义文件指针,读文件,写文件,关闭文件③操作文件,定义文件指针,修改文件,关闭文件④定义文件指针,打开文件,读写文件,关闭文件
(81).若有定义:
inti=3,j=6;则表达式(--i)*(j++)的值为
(2)。
①18②12③10④15
(82).若有定义:
inta;且表达式!
a的值为0,则表达式(4)的值为1。
①!
(a<0||a>0)②a=0③a==0④a!
=0
(83).以下程序段运行后x的值为(4)。
inta[8]={1,2,3,4,5,6,7,8