c语言考试题.docx
《c语言考试题.docx》由会员分享,可在线阅读,更多相关《c语言考试题.docx(61页珍藏版)》请在冰豆网上搜索。
![c语言考试题.docx](https://file1.bdocx.com/fileroot1/2023-1/7/da365074-138f-432e-a84f-53b5aa2f1d8f/da365074-138f-432e-a84f-53b5aa2f1d8f1.gif)
c语言考试题
一、单项选择共246题(共计246分)
第1题(1.0分)
以下程序的运行结果是()。
main()
{
inti=1,sum=0;
while(i<10)sum=sum+1;i++;
printf("i=%d,sum=%d",i,sum);
}
A:
i=10,sum=9
B:
i=9,sum=9
C:
i=2,sum=1
D:
运行出现错误
第2题(1.0分)
以下数据中,不正确的数值或字符常量是()。
A:
c
B:
66
C:
0xaa
D:
50
第3题(1.0分)
下列语句的输出结果是()。
printf("%d\n",(int)(2.5+3.0)/3);
A:
有语法错误不能通过编译
B:
2
C:
1
D:
0
第4题(1.0分)
以下程序的输出结果是()。
main()
{floatx=3.6;
inti;
i=(int)x;
printf("x=%f,i=%d\n",x,i);
}
A:
x=3.600000,i=4
B:
x=3,i=3
C:
x=3.600000,i=3
D:
x=3i=3.600000
第5题(1.0分)
以下对枚举类型名的定义中正确的是()。
A:
enuma={sum,mon,tue};
B:
enuma{sum=9,mon=-1,tue};
C:
enuma={"sum","mon","tue"};
D:
enuma{"sum","mon","tue"};
第6题(1.0分)
下列运算符中,不属于关系运算符的是()。
A:
<
B:
>
C:
>=
D:
!
第7题(1.0分)
设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为()。
A:
12
B:
144
C:
0
D:
132
第8题(1.0分)
C语言执行程序的开始执行点是()。
A:
程序中第一条可以执行语言
B:
程序中第一个函数
C:
程序中的main函数
D:
包含文件中的第一个函数
第9题(1.0分)
若给定条件表达式(M)?
(a++):
(a--),则其中表达式M()。
A:
和(M==0)等价
B:
和(M==1)等价
C:
和(M!
=0)等价
D:
和(M!
=1)等价
第10题(1.0分)
执行下列语句后,a和b的值分别为()。
inta,b;
a=1+'a';
b=2+7%-4-'A';
A:
-63,-64
B:
98,-60
C:
1,-60
D:
79,78
第11题(1.0分)
已知year为整型变量,不能使表达式(year%4==0&&year%100!
=0)
||year%400==0的值为“真”的数据是()。
A:
1990
B:
1992
C:
1996
D:
2000
第12题(1.0分)
设有如下定义:
structsk{inta;floatb;}data,*p;
若要使p指向data中的a域,正确的赋值语句是()。
A:
p=(structsk*)&data.a;
B:
p=(structsk*)data.a;
C:
p=&data.a;
D:
*p=data.a;
第13题(1.0分)
下列程序的输出结果是()。
main()
{
printf("%d\n",null);
}
A:
0
B:
变量无定义
C:
-1
D:
1
第14题(1.0分)
设有定义:
intx,*p=&x;下面表达式中错误的是
A:
&*x;
B:
*&x;
C:
&*p;
D:
*&p;
第15题(1.0分)
以下能正确说明一维数组的选项是
A:
intnum[];
B:
#defineN100
intnum[N];
C:
intnum[0…100];
D:
intN=100;intnum[N];
第16题(1.0分)
下列数组说明中,正确的是()。
A:
staticcharstr[]="China";
B:
staticcharstr[];str="China";
C:
staticcharstr1[5],str2[]={"China"};str1=str2;
D:
staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
第17题(1.0分)
以下不符合C语言语法的赋值语句是()。
A:
j++;
B:
j=j=5;
C:
k=2*4,k*4;
D:
y=float(j);
第18题(1.0分)
下面选择中正确的赋值语句是(设chara[5],*p=a;)()。
A:
p="abcd";
B:
a="abcd";
C:
*p="abcd";
D:
*a="abcd";
第19题(1.0分)
设j和k都是int类型,则for循环语句
for(j=0,k=-1;k=1;j++,k++)printf("****\n");()。
A:
循环结束的条件不合法
B:
是无限循环
C:
循环体一次也不执行
D:
循环体只执行一次
第20题(1.0分)
若k,g均为int型变量,则下列语句的输出为()。
k=017;g=111;printf("%d\t",++k);printf("%x\n",g++);
A:
156f
B:
1670
C:
1571
D:
166f
第21题(1.0分)
以下对C语言函数的描述中,正确的是()。
A:
C程序必须由一个或一个以上的函数组成
B:
C函数既可以嵌套定义又可以递归调用
C:
函数必须有返回值,否则不能使用函数
D:
C程序中有调用关系的所有函数必须放在同一个程序文件中
第22题(1.0分)
在位运算中,操作数每右移一位,其结果相当于()。
A:
操作数乘以2
B:
操作数除以2
C:
操作数乘以16
D:
操作数除以16
第23题(1.0分)
在以下给出的表达式中,与do--while(E)语句中的(E)不等价的
表达式是()。
A:
(!
E==0)
B:
(E>0||E<0)
C:
(E==0)
D:
(E!
=0)
第24题(1.0分)
在C语言中,if语句后的一对原括号中,用以决定分支的流程的表
达式()。
A:
只能用逻辑表达式
B:
只能用关系表达式
C:
只能用逻辑表达式或关系表达式
D:
可用任意表达式
第25题(1.0分)
以下运算符中,优先级最高的运算符是()。
A:
=
B:
!
=
C:
*(乘号)
D:
()
第26题(1.0分)
设C语言中,int类型数据占2个字节,则long类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
第27题(1.0分)
当定义一个结构体变量时,系统分配给它的内存是()。
A:
各成员所需内存量的总和
B:
结构中第一个成员所需内存量
C:
结构中最后一个成员所需内存量
D:
成员中占内存量最大者所需的容量
第28题(1.0分)
以下对结构体变量stu1中成员age的非法引用是
structstudent
{intage;
intnum;
}stu1,*p;
p=&stu1;
A:
stu1.age
B:
student.age
C:
p->age
D:
(*p).age
第29题(1.0分)
在C语言中,能代表逻辑值“真”的是()。
A:
True
B:
大于0的数
C:
非0整数
D:
非0的数
第30题(1.0分)
设有说明int(*ptr)[M];其中标识符ptr是()。
A:
M个指向整型变量的指针
B:
指向M个整型变量的函数指针
C:
一个指向具有M个整型元素的一维数组的指针
D:
具有M个指针元素的一维指针数组,每个元素都只能指向整型量
第31题(1.0分)
Thenumber5.16819e-2couldbewritteninafloating-pointformas:
A:
0.0516819
B:
5.16819
C:
51.6819
D:
561.869
第32题(1.0分)
经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是()。
A:
p=p+2;
B:
p=a[5];
C:
p=a[2]+2;
D:
p=&(j+2);
第33题(1.0分)
以下的选择中,正确的赋值语句是()。
A:
a=1,b=2
B:
j++
C:
a=b=5;
D:
y=int(x)
第34题(1.0分)
下列程序的输出结果是()。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A:
a=1,b=0
B:
a=2,b=1
C:
a=1,b=1
D:
a=2,b=2
第35题(1.0分)
若有下列定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
A:
*(p+5)
B:
*p+2
C:
*(a+2)
D:
*&a[5]
第36题(1.0分)
执行下列语句后的输出为()。
intj=-1;
if(j<=1)printf("****\n");
elseprintf("%%%%\n");
A:
****
B:
%%%%
C:
%%%%c
D:
有错,执行不正确
第37题(1.0分)
经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在
微机上的值分别为()。
charx=65;
floaty=7.3;
inta=100;
doubleb=4.5;
A:
2,2,2,4
B:
1,2,2,4
C:
1,4,2,8
D:
2,4,2,8
第38题(1.0分)
下列程序的输出结果是()。
main()
{inta=7,b=5;
printf("%d\n",b=b/a);
}
A:
0
B:
5
C:
1
D:
不确定值
第39题(1.0分)
若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。
A:
intp=&x;
B:
int*p=x;
C:
int*p=&x;
D:
*p=*x;
第40题(1.0分)
以下函数调用语句中实参的个数是()。
func((e1,e2),(e3,e4,e5));
A:
2
B:
3
C:
5
D:
语法错误
第41题(1.0分)
若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是
A:
p+1
B:
a+1
C:
a++
D:
++p
第42题(1.0分)
在下列程序段中,枚举变量c1,c2的值依次是()。
enumcolor{red,yellow,blue=4,green,white}c1,c2;
c1=yellow;c2=white;
printf("%d,%d\n",c1,c2);
A:
1,6
B:
2,5
C:
1,4
D:
2,6
第43题(1.0分)
Basedonthefollowingarraydeclaration,whichofthefollowingisNOTavalidelement?
intday[5]
A:
day[1+2]
B:
day[1*2]
C:
day[2*3]
D:
day[2%3]
第44题(1.0分)
以下对结构体变量stu1中成员num的非法引用是__
structstudent
{intage;
intnum;
}stu1,*p;
p=&stu1;
A:
stu1.num
B:
student->num
C:
(*p).num
D:
p->num
第45题(1.0分)
下列标识符中,非法的C语言标识符是
A:
sum
B:
5AB
C:
temp_3
D:
_123
第46题(1.0分)
以下运算符中,优先级最高的运算符是()。
A:
*=
B:
>=
C:
(类型)
D:
+
第47题(1.0分)
下列定义数组的语句中不正确的是()。
A:
staticinta[2][3]={1,2,3,4,5,6};
B:
staticinta[2][3]={{1},{4,5}};
C:
staticinta[][3]={{1},{4}};
D:
staticinta[][]={{1,2,3},{4,5,6}};
第48题(1.0分)
下列说法不正确的是()。
A:
主函数main中定义的变量在整个文件或程序中有效
B:
不同函数中,可以使用相同名字的变量
C:
形式参数是局部变量
D:
在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效
第49题(1.0分)
Giventhefollowingdeclaration:
intcar_n;
whichofthefollowingpointerdeclarationsisvalid?
A:
ptr=&car_n;
B:
int*ptr=&car_n;
C:
int*ptr;
D:
intptr=&car_n;
第50题(1.0分)
表达式1,3,5,7的值为
A:
1
B:
3
C:
5
D:
7
第51题(1.0分)
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:
For
B:
Printf
C:
WORD
D:
sizeof
第52题(1.0分)
C语言中函数调用的方式有()。
A:
函数调用作为语句一种
B:
函数调用作为函数表达式一种
C:
函数调用作为语句或函数表达式两种
D:
函数调用作为语句、函数表达式或函数参数三种
第53题(1.0分)
执行下列语句后变量x和y的值是()。
y=10;x=y++;
A:
x=10,y=10
B:
x=11,y=11
C:
x=10,y=11
D:
x=11,y=10
第54题(1.0分)
设有intx=11;则表达式(x++*1/3)的值是()。
A:
3
B:
4
C:
11
D:
12
第55题(1.0分)
以下数值中,不正确的八进制数或十六进制数是()。
A:
0x16
B:
16
C:
-16
D:
0xaaaa
第56题(1.0分)
变量p为指针变量,若p=&a,下列说法不正确的是()。
A:
&*p==&a
B:
*&a==a
C:
(*p)++==a++
D:
*(p++)==a++
第57题(1.0分)
C语言允许函数值类型缺省定义,此时该函数值隐含的类型是
A:
float
B:
int
C:
long
D:
double
第58题(1.0分)
设C语言中,int类型数据占2个字节,则unsigned类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
第59题(1.0分)
a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。
A:
a*b/a*b==1
B:
a/b*b/a==1
C:
a/b*b+a%b==a
D:
a/b*b==a
第60题(1.0分)
以下运算符中,优先级最高的运算符是()。
A:
||
B:
%
C:
!
D:
==
第61题(1.0分)
C语言中的文件类型只有()。
A:
索引文件和文本文件两种
B:
ASCII文件和二进制文件两种
C:
文本文件一种
D:
二进制文件一种
第62题(1.0分)
若有下列定义和语句,则对a数组元素的非法引用是()。
inta[2][3],(*pt)[3];pt=a;
A:
pt[0][0]
B:
*(pt+1)[2]
C:
*(pt[1]+2)
D:
*(a[0]+2
第63题(1.0分)
设有以下语句,若0charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];
intj;
for(j=0;j<4;j++)
strp[j]=str[j];
A:
strp
B:
str[k]
C:
strp[k]
D:
*strp
第64题(1.0分)
关于指针概念说法不正确的是()。
A:
一个指针变量只能指向同一类型变量
B:
一个变量的地址称为该变量的指针
C:
只有同一类型变量的地址才能放到指向该类型变量的指针变量之中
D:
指针变量可以由整数赋,不能用浮点赋
第65题(1.0分)
fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
A:
字符串读入后不会自动加入'\0'
B:
fp是file类型的指针
C:
fgets函数将从文件中最多读入n-1个字符
D:
fgets函数将从文件中最多读入n个字符
第66题(1.0分)
在C语言中,为了结束由while语句构成的循环,while后一对圆括号
中表达式的值应该为()。
A:
0
B:
1
C:
True
D:
非0
第67题(1.0分)
若有以下定义:
chars='\092';则该语句()。
A:
使s的值包含1个字符
B:
定义不合法,s的值不确定
C:
使s的值包含4个字符
D:
使s的值包含3个字符
第68题(1.0分)
C语言的if语句嵌套时,if与else的配对关系是()。
A:
每个else总是与它上面的最近的if配对
B:
每个else总是与最外层的if配对
C:
每个else与if的配对是任意的
D:
每个else总是与它上面的if配对
第69题(1.0分)
Basedonthefollowingarraydeclaration,whichofthefollowingisNOTavalidelement?
()
intday[5]
A:
day[1+2]
B:
day[1*2]
C:
day[2%3]
D:
day[2*3]
第70题(1.0分)
C语言程序中,当调用函数时()。
A:
实参和虚参各占一个独立的存储单元
B:
实参和虚参可以共用存储单元
C:
可以由用户指定是否共用存储单元
D:
计算机系统自动确定是否共用存储单元
第71题(1.0分)
下列程序的输出结果是()。
main()
{inta=011;
printf("%d\n",++a);
}
A:
12
B:
11
C:
10
D:
9
第72题(1.0分)
执行下面程序后,输出结果是()。
main()
{a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(x,y)
intx,y;
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
A:
45
B:
27
C:
18
D:
72
第73题(1.0分)
若有下列定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
A:
&a[5]
B:
p+2
C:
a++
D:
&a
第74题(1.0分)
下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。
A:
8
B:
23
C:
17
D:
6
第75题(1.0分)
在C语言程序中()。
A:
函数的定义可以嵌套,但函数的调用不可以嵌套
B:
函数的定义不可以嵌套,但函数的调用可以嵌套
C:
函数的定义和函数调用均可以嵌套
D:
函数的定义和函数调用不可以嵌套
第76题(1.0分)
Considerthefollowingstatement:
inti=90,j=0;
whichofthefollowingstatementsaretrue?
A:
(i>0)||(j>50)
B:
!
(j<1)
C:
i<3
D:
(j
第77题(1.0分)
以下函数调用语句中实参的个数是()。
exce((v1,v2),(v3,v4,v5),v6);
A:
3
B:
4
C:
5
D:
6
第78题(1.0分)
设C语言中,int类型数据占2个字节,则short类型数据占()。
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
第79题(1.0分)
Thenumber5.16819e-1couldbewritteninafloating-pointformas:
A:
0.516819
B:
51.6819
C:
516.819
D:
5618.69
第80题(1.0分)
下面能表示a不等于0的关系的是
A:
if(a<>0)
B:
if(!
a)
C:
if(!
a=0)
D:
if(a)
第81题(1.0分)
C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。
A:
void
B:
double
C:
int
D:
char
第82题(1.0分)
按位与运算:
inta=7,b=13,c=a&b;变量c的值是
A:
19
B:
4
C:
5
D:
9
第83题(1.0分)
下列标识符中,非法的C语言标识符是( )
A:
sum
B:
5AB
C:
temp_3
D:
_123
第84题(1.0分)
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指定的文件的调用
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行都是预处理指令
D:
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
第85题(1.0分)
若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,则不能表示a[2]地址的表达式是
A:
a+2
B:
p+2
C:
++(a+1)
D:
(p+1)++
第86题(1.0分)
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:
a3_b3
B:
void
C:
_123
D:
IF
第87题(1.0分)
执行下列语句后的结果为()。
intx=3,y;
int*px=&x;
y=*px++;
A:
x=3,y=4
B:
x=3,y=3
C:
x=4,y=4
D:
x=3,y不知
第88题(1.0分)
以下程序的输出结果是()。
main()
{chars[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
A:
123
B:
321
C:
213
D:
312
第89题(1.0分)
经过以下语句定义后,表达式z+=x>y?
++x:
++y的值为()。
intx=1,y=2,z=3;
A:
2
B:
3
C:
6
D:
5
第90题(1.0分)
下列数据中,为字符串常量的是()。
A:
A
B:
"house"
C:
Howdoyoudo.
D: