整理福建省c语言考试试题c题库选择题答案0608Word文件下载.docx
《整理福建省c语言考试试题c题库选择题答案0608Word文件下载.docx》由会员分享,可在线阅读,更多相关《整理福建省c语言考试试题c题库选择题答案0608Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。
else
scanf(“%d”,&
y);
D)if(x<
y)
{x++;
y++;
}
9、设有整型变量x,下述语句(B)不会出现死循环。
A)for(;
;
x+=1)B)for(;
(x=getchar())!
=’\n’;
);
C)while
(1){x++;
}D)for(x=10;
x--);
10、下列数组声明中,正确的是(A)。
A)inta[5]={0};
B)inta[]={012};
C)inta[5]=0;
D)inta[];
11、以下数组定义中,正确的是(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};
12、设有如下数组定义:
charstr[8]={“FuJian”};
则分配给数组str的存储空间是(C)字节。
A)6B)7C)8D)9
13、以下程序的运行结果是(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)2005B)1004
C)0120D)0450
14、若有以下宏定义,
#defineMOD(x,y)x%y
则执行以下程序段后,z的值是(D)。
intz,a=15,b=100;
z=MOD(b,a);
A)100B)15
C)11D)10
15、对于基类型相同的两个指针变量之间,不能进行的运算是(C)。
A)<
B)=
C)+D)-
16、若函数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;
17、设有以下定义语句:
structstudent
{intnum;
charname[10];
floatscore;
}wang,zhang;
则不正确的叙述是(C)。
A)struct是结构体类型的关键字B)zhang是结构体变量名
C)wang是结构体类型名D)num,name,score都是结构体类型student的成员名
18、若有以下定义:
structlink
{intdata;
structlink*next;
}*head,*p;
并已建立如下图所示的链表结构:
head
指针p指向如下结点:
p
则能够把p所指结点插入到链表中成为链表第2个结点的程序段是(A)。
A)p->
next=head->
next;
head->
next=p;
B)head->
p->
C)p.next=head.next;
head.next=p;
D)(*head).next=p;
(*p).next=(*head).next;
19、设有如下定义:
typedefint*INTEGER;
INTEGERp,*q;
则(C)是正确的叙述。
A)p是int型变量B)q是基类型为int的指针变量
C)p是基类型为int的指针变量D)程序中可用INTEGER代替int类型名
20、以下程序的可执行文件名是file.exe。
intargc;
char*argv[];
{inti;
for(i=2;
i<
argc;
i++)
printf(“%s%c”,argv[i],(i<
argc-1)?
’‘:
‘\n’);
在DOS命令行输入:
fileMyCLanguageandProgramming<
回车>
,其输出结果是(A)。
A)CLanguageandProgrammingB)MyCLanguageandProgramming
C)MyCLanguageandProgrammingD)fileMyCLanguageandProgramming
21、在C语言源程序中,以下叙述正确的是(C)。
A)main函数必须位于文件的开头B)每行只能写一条语句
C)程序中的一个语句可以写成多行D)每个语句的最后必须有点号
22、下面关于算术运算符的叙述,错误的是(A)。
A)其运算对象不包含函数
B)%(模运算符)的运算对象只能为整型量
C)算术运算符的结合方向是“自左至右”
D)自加和自减运算符的结合方向是“自右至左”
23、下面叙述中,(A)不是结构化程序设计中的三种基本结构之一。
A)数据结构B)选择结构
C)循环结构D)顺序结构
24、已知doublea=5.2;
A)a+=a-=(a=4)*(a=3)B)a=a*3=2
C)a%3D)a=double(-3)
25、逻辑运算符的优先级依次为(C)。
A)||&
B)&
||!
C)!
&
||D)!
||&
26、对于整型变量x,与while(!
x)等价的是(B)。
A)while(x!
=0)B)while(x==0)
C)while(x!
=1)D)while(~x)
27、下列数组声明中,正确的是(A)。
A)inta[10];
B)intn=10,a[n];
C)intN=10;
inta[N];
D)intn;
n);
inta[n];
28、有如下定义:
charstr[6]={‘a’,’b’,’\0’,’d’,’e’,’f’};
则语句:
printf(“%s”,str);
的输出结果是(D)。
A)ab\B)abdef
C)ab\0D)ab
29、执行以下程序段的输出结果是(B)。
inta=10,*p=&
a;
printf(“%d”,++*p);
A)10B)11
C)变量a的地址D)变量a的地址+1
30、若有以下程序段,且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
31、若有以下定义:
structlink*next;
则能保留链表其它结点,而删除P所指向结点的程序段是(A)。
A)head->
next=p->
free(p)
free(p);
C)free(p);
D)free(p);
32、假定已有如下变量说明和枚举定义:
charch;
intj,k;
enumday{sun,mon,tue,wed,thu,fri,sat};
inta[sat]
判断下列语句是否符合语法规则,结果是(C)。
chara;
/*语句1*/
j+k=j;
/*语句2*/
if(a[mon]>
0)j++;
/*语句3*/
A)语句2错误,其它正确B)语句1正确,其它错误
C)语句3正确,其它错误D)语句1错误,其它正确
33、以下(D)是正确的常量。
A)E-5B)1E5.1
C)’a12’D)32766L
34、标准函数fgets(s,n,f)的功能是(B)。
A)从文件f中读取长度为n的字符串存入指针s所指的内存
B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C)从文件f中读取n个字符串存入指针s所指的内存
D)从文件f中读取长度为n-1的字符串存入指针s所指的内存
35、关于C语言的源程序的叙述中,错误的是(C)。
A)C语言的源程序由函数构成
B)main函数可以书写在自定义函数之后
C)必须包含有输入语句
D)一行可以书写多个语句
36、下面叙述正确的是(A)。
A)强制类型转换运算的优先级高于算术运算
B)若a和b是整型变量,(a+b)++是合法的
C)’A’*’B’是不合法的
D)”A”+”B”是合法的
37、设有以下语句,则(D)是对a数组元素的不正确引用,其中0≤i<
10。
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))
38、结构化程序设计不包括(A)。
A)最优化B)自顶而下,逐步细化
C)模块化设计D)结构化编码
39、已知inta=3,b=5;
则表达式a==3&
b!
=1的值为(C)。
A)3B)5
C)1D)0
40、已知inta[10];
则对a数组元素引用不正确的是(A)。
A)a[10]B)a[3+5]
C)a[10-10]D)a[5]
41、有如下定义
inta[][3]={1,2,3,4,5,6,7,8};
则数组a的行数是(B)。
A)2B)3
C)4D)无法确定的
42、设有以下变量定义:
charstr1[]=”string”,str2[8],*str3,*str4=”string”;
(A)是正确的。
A)strcpy(str1,”china”);
B)str2=”china”;
C)strcpy(*str3,”china”);
D)strcpy(str4[0],”china”);
43、如下fun函数的类型是(C)。
fun(floatx)
{doubley;
intz;
y=x*x;
z=(int)y;
return(z);
A)voidB)double
C)intD)float
44、以下叙述中,正确的是(A)。
A)宏展开不占用运行时间,只占用编译时间
B)预编译处理命令行必须以分号结束
C)一个源程序只能有一个预编译处理命令行
D)使用带参数的宏定义时,应该说明每个参数的数据类型
45、设有如下变量定义:
charaa[][3]={‘a’,’b’,’c’,’d’,’e’,’f’};
char(*p)[3]=aa;
则以下程序段的运行结果是(D)。
p++;
printf(“%c”,**p);
A)aB)b
C)cD)d
46、设有以下定义语句:
则变量wang所占的内存字节数是(B)。
A)14B)16
C)18D)20
47、若有以下定义:
}a,b,c,*head,*p;
其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示:
abc
headp
则能够把c插入到a和b之间并形成新链表的程序段是(D)。
A)a.next=c;
c.next=b;
B)head.next=p;
p.next=head.next;
C)head->
next=&
c;
D)(*head).next=p;
(*p).next=&
b;
48、设有如下定义:
typedefint*INTEGER;
INTEGERp,*q;
则(C)是正确的叙述。
49、已知inta=’R’;
则正确的表达式是(A)。
A)a%10B)a=int(3e2)
C)2*a=a++D)a=a+a=a+3
50、C语言对if嵌套语句的规定:
else总是与(B)配对。
A)第一个ifB)之前最近的且尚未配对的if
C)缩进位置相同的ifD)之前最近的if
51、设有如下函数定义:
intfun(char*str)
{char*p=str;
while(*p!
=‘\0’)p++;
return(p-str);
则以下语句执行后的输出结果是(A)。
printf(“%d\n”,fun(“Student”));
A)7B)8
C)9D)10
52、设有如下定义语句:
unionu_type
doublex;
floatf;
};
structstr_type
{charstr[100];
unionu_typeu[2];
则语句printf(“%d”,sizeof(structstr_type));
的输出结果是(B)。
A)100B)116
C)120D)200
53、对于整型变量x,下述if语句(B)与赋值语句:
x=x%2==0?
1:
0;
不等价。
A)if(x%2!
=0)x=0;
elsex=1;
B)if(x%2)x=1;
elsex=0;
C)if(x%2==0)x=1;
D)if(x%2==1)x=0;
54、对于整型变量x和y,语句
for(x=0,y=0;
(y!
=123)&
(x<
4);
x++)y++;
中的“y++;
”被执行(A)。
A)4次B)0次
C)123次D)3次
55、以下(D)是正确的变量名。
A)5fB)if
C)f.5D)_f5
56、设有如下程序段:
inta[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;
for(i=0;
3;
i;
j++)
s=s+a[i][j];
则执行该程序段后,s的值是(C)。
A)0B)1
C)2D)3
57、以下叙述中,正确的是(B)。
A)“#definePRICE=30”定义了与30等价的符号常量PRICE
B)预编译处理命令行都必须以“#”开头
C)宏名只能包含大写字母和数字字符
D)在程序的一行上可以书写几个有效的宏定义
58、对枚举类型进行定义,不正确的是(A)。
A)enumb{1,2,3};
B)enuma{A,B,C};
C)enumc{D=3,E,F};
D)enumd{X=0,Y=5,Z=9};
59、以下程序的功能是(C)。
#include<
stdio.h>
{FILE*fp;
longintn;
fp=fopen(“wj.txt”,”rb”);
fseek(fp,0,SEEK_END);
n=ftell(fp);
fclose(fp);
printf(“%ld”,n);
A)计算文件wj.txt的起始地址B)计算文件wj.txt的终止地址
C)计算文件wj.txt内容的字节数D)将文件指针定位到文件末尾
60.C在C语言源程序中,以下叙述正确的是()
A)main函数必须位于文件的开头
B)每行只能写一条语句
C)程序中的一个语句可以写成多行
D)每个语句的最后必须有点号
61.C关于C语言的源程序的叙述中,错误的是()。
A)
C语言的源程序由函数构成
B)
main函数可以书写在自定义函数之后
C)
必须包含有输入语句
D)
一行可以书写多个语句
62.CC程序中main函数的位置()
A)必须在最开始
B)必须在系统库函数后面
C)可以在自定义函数后面
D)必须在最后
63.BC语言的函数体由()括起来
A)(
)B){}C)[]D)/**/
64.D关于C语言的叙述中,不正确的是()。
A)C程序可由一个或多个函数组成
B)C程序必须包含一个main()函数
C)C程序的基本组成单位是函数
D)注释说明只能位于一条语句的后面
65.D下面关于C语言用户标识符的描述,正确的是()
A)不区分大小写
B)用户标识符不能描述常量
C)类型名也是用户标识符
D)用户标识符可以作为变量名
66.D以下()是正确的变量名。
A)5f
B)if
C)f.5
D)_f5
67.D以下()是正确的常量。
A)E–5
B)1E5.1
C)'
a12'
D)32766L
68.D以下()是正确的变量名。
A)bee
B)–p11
C)int
D)p_11
69.C以下()是正确的字符常量。
A)"
c"
B)'
\\'
'
W'
D)"
\32a"
70.A若有定义:
intx=2;
则正确的赋值表达式是()
A)a–=(a*3)
B)double(–a)
C)a*3
D)a*4=3
71.C语句x=(a=3,b=++a);
运行后,x、a、b的值依次为()。
A)3,3,4
B)4,4,3
C)4,4,4
D)3,4,3
72.B语句a=(3/4)+3%2;
运行后,a的值为()。
A)0
B)1
C)2
D)3
73.Achar型变量存放的是()。
A)ASCII代码值
B)字符本身
C)十进制代码值
D)十六进制代码值
74.C若有定义:
intx,a;
则语句x=(a=3,a+1);
运行后,x、a的值依次为()。
A)3,3
B)4,4
C)4,3
D)3,4
75.B若有定义:
inta;
则语句a=(3*4)+2%3;
运行后,a的值为()。
A)12
B)14
C)11
D)17
76.A下面关于算术运算符的叙述,错误的是()。
A)其算术运算对象不包含函数
B)%(模运算符)的运算对象只能为整型量
C)算术运算符的结合方向是"
自左至右"
D)自加和自减运算符的结合方向是"
自右至左"
77.A下面叙述正确的是()。
A)强制类型转换运算的优先级高于算术运算
B)若a和b是整型变量,(a+b)++是合法的
A'
*'
B'
是不合法的
A"
+"
B"
是合法的
78.B若有定义:
intk,i=2,j=4;
则表达式k=(++i)*(j--)的值是().
A)8
B)12
C)6
D)9
79.C设整型变量a为5,使b不为2的表达式是()。
A)b=(++a)/3
B)b=6–(––a)
C)b=a%2
D)b=a/2
80.C若有定义:
inta=1,b=2,c=3;
则语句++a||++b&
++c;
运行后b的值为()。
A)1B)0C)2D)3
81.B已知inta;
使用scanf()函数输入一个整数给变量a,正确的函数调用是()。
A.scanf("
%d"
a);
B.