C语言期末考试选择题题库含答案.docx
《C语言期末考试选择题题库含答案.docx》由会员分享,可在线阅读,更多相关《C语言期末考试选择题题库含答案.docx(27页珍藏版)》请在冰豆网上搜索。
C语言期末考试选择题题库含答案
0001以下不是C语言规定保留字的是(B)。
A.floatB.integerC.signedD.unsigned
-------------------------------------------------------------------
0002设int型变量x有初始值3,则表达式x++*5/10的值是(B)
A.0B.1C.2D.3
------------------------------------------------------------------
0003下述程序段执行后的输出结果是(A )
intx='F';
printf("%c\n",'A'+(x-'A'+1));
A.GB.HC.ID.J
-----------------------------------------------------------------
0008以下合法的数组说明是(D)。
A.chara[6]="string";
B.inta[5]={0,1,2,3,4,5};
C.chara="string";
D.inta[]={0,12,3,4,5};
-----------------------------------------------------------------
0009下述程序代码中有语法错误的行是(D)。
inti,ia[10],ib[10];/*第1行*/
for(i=0;i<=9;i++)/*第2行*/
ia[i]=0;/*第3行*/
ib=ia;/第4行*/
A.第1行B.第2行C.第3行D.第4行
-----------------------------------------------------------------
0013以下符合语法规则的用户标识符是(C )。
A.1stB.breakC.b757D.TwoWords
-----------------------------------------------------------------
0014以下叙述中不正确的是(D)。
A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
----------------------------------------------------------------
0020以下不正确的转义字符是(D)。
A.'\\'B.'\"'C.'074'D.'\0'
---------------------------------------------------------------
0023以下叙述正确的是(D)。
A.do-while语句构成的循环不能用其他语句构成的循环来代替
B.do-while语句构成的循环只能用break语句退出
C.do-while语句构成的循环,在while后的表达式为非零时结束循环
D.do-while语句构成的循环,在while后的表达式为零时结束循环
---------------------------------------------------------------
0024若有以下程序片段
charstr[]="ab\n\012\\\"";
printf("%d\n",strlen(str));
则执行printf语句的输出结果是(A)。
A.6B.12C.3D.4
---------------------------------------------------------------
0028对于如下之程序段,应有(D)。
chara[10],b[]="china";
a=b;
printf("%s",a);
A.运行后将输出chinaB.运行后将输出ch
C.运行后将输出cD.程序出错,不能运行
--------------------------------------------------------------
0031决定C语言中函数返回值类型的是(D)。
A.return语句中的表达式类型
B.调用该函数的主调函数类型
C.调用函数时临时指定的类型
D.定义函数时在函数首部中所指定的类型
--------------------------------------------------------------
0032在C语言中,合法的整型常数是(A)
A.-0x123B.3.14159
C.01001101BD.6.7e10
------------------------------------------------------------
0039以下选项中属于C语言的数据类型是(C)。
A.复数型B.逻辑型
C.双精度型D.集合型
------------------------------------------------------------
0040设x和y均为int型变量,则下列语句
x+=y;
y=x-y;
x-=y;
的功能是(D)。
A.把x和y按从大到小排序B.把x和y按从小到大排序
C.无确定结果D.交换x和y的值
------------------------------------------------------------
0043在C语言中,变量所分配的内存空间大小(C)
A.均为一个字节
B.由用户自己定义
C.由变量的类型决定
D.是任意的
------------------------------------------------------------
0044执行以下程序的输出结果是(B)。
inti;
for(i='a';i<'i';i++,i++)
printf("%c",i);
A.编译不通过B.acegC.acegi(4)abcdefghi
------------------------------------------------------------
0045以下不形成死循环的是(D)。
A.for(;;x+=i);
B.while
(1)x++
C.for(i=10;;i--)sum+=i;
D.for(;(c=getchar())!
='\n';)printf("%c",c);
------------------------------------------------------------
0047若有以下定义和语句
chars[10];
s="ABCD";
printf("%s\n",s);
则结果是(D)。
A.输出ABCDB.输出A
C.输出ABCD.有语法错误,编译不能通过
------------------------------------------------------------
0048下列关于带初始赋值的字符数组说明中,错误的是(B)。
A.charstr[]={'T','u','r','b','o','','C','\0'};
B.charstr[7]="TurboC";
C.charstr[]="TurboC";
D.char*str="TurboC";
------------------------------------------------------------
0056若有说明:
chars1='\067';chars2="1";chars3='1';则s2中(D)。
A.包含1个字符B.包含2个字符
C.包含3个字符D.无定值,说明不合法
------------------------------------------------------------
0058能将C语言编写的源程序转换成目标程序的是(B)。
A.编辑程序B.编译程序C.解释程序D.链接程序
-----------------------------------------------------------
0060执行下述程序的输出结果是(A)。
#include
intmain()
{
inta,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A.2,1B.3,2C.4,3D.2,-1
-----------------------------------------------------------
0063两次运行下述程序,如果从键盘上分别输入6和4,则输出结果是(A)。
#include
intmain()
{
intx;
scanf("%d",&x);
if(x++>5)
printf("%d\n",x);
else
printf("%d\n",x--);
}
A.7和5B.6和3C.7和4D.6和4
-----------------------------------------------------------
0067若inti;则以下循环语句的循环执行次数是(B)
for(i=2;i==0;)printf("%d",i--);
A.无限次B.0次C.1次D.2次
-----------------------------------------------------------
0080设有变量说明
intk=7,x=12;
则能使值为3的表达式是(D)。
A.x%=(k%=5)B.x%=(k-k%5)
C.x%=k-k%5D.(x%=k)-(k%=5)
-----------------------------------------------------------
0102若设n是个整型变量且已有值,则与给定条件表达式
(!
n)?
n+10:
n-10
等价的条件表达式是(C)。
A.(n!
=0)?
n+10:
n-10B.(n!
=1)?
n+10:
n-10
C.(n==0)?
n+10:
n-10D.(n==1)?
n+10:
n-10
------------------------------------------------------------
0104设有程序
#include
intmain()
{
intx=3,y=0,z=1;
if(x=y+z)
printf("****\n");
else
printf("####\n");
}
则以下叙述正确的是(A)。
A.程序有语法错误,不能通过编译
B.程序可执行,输出结果是****
C.程序可以通过编译,但是不能通过连接,因而不能运行
D.程序可执行,输出结果是####
------------------------------------------------------------
0111下述对于C语言字符数组的描述中错误的是(C)。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
------------------------------------------------------------
0115阅读程序
#include
intfunC(intB[],intn)
{
inti,r;
r=1;
for(i=0;i<=n;i++)
r=r*B[i];
return(r);
}
intmain()
{
intx,A[]={2,3,4,5,6,7,8,9};
x=funC(A,3);
printf("%d\n",x);
}
执行下述程序的输出结果是(B)。
A.720B.120C.24D.6
------------------------------------------------------------
0123已知intA=6;则执行A+=A-=A*A;语句后,A的值为D
A.36B.0C.-24D.-60
------------------------------------------------------------
0128若i、j已定义为int类型,则以下程序段中内循环体执行printf语句的总执行次数是(A )。
for(i=5;i;i--)
for(j=0;j<4;j++)
printf("OK.\n");
A.20B.24C.25D.30
------------------------------------------------------------
0133以下关于数组说明的描述中正确的是(C)。
A.数组的大小是固定的,但可以有不同类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同类型的数组元素
------------------------------------------------------------
0146语句printf("%d\n",(A=2)&&(B=-2));则输出结果是(D)。
A.无输出B.结果不确定C.-1D.1
------------------------------------------------------------
0147设有如下的变量定义
inti=8,k,A,B;
unsignedlongw=5;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是(A)。
A.A+=A-=(B=4)*(A=3)B.x%(-3)
C.A=A*3=2D.y=float(i);
------------------------------------------------------------
0150给出以下定义
charx[]="ABCDefg";
chary[]={'A','B','C','D','e','f','g'};
则正确的叙述为(C)。
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
------------------------------------------------------------
0153下述描述中不正确的是(C)。
A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出
C.可以对整型数组进行整体进行输入、输出
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
------------------------------------------------------------
0158在计算机上可以直接运行的程序是写(C)
A.高级语言程序 B.汇编语言程序 C.机器语言程序 D.C语言源程序
------------------------------------------------------------
0163下列符号串中,合法的C.语言标识符是(A)
A._121 B.121_ C.a.121 D.#121
------------------------------------------------------------
0165下列符号串中,合法的十进制整型常量是(D)
A.09876 B.0x9876 C.9.876*e4D.-9876
------------------------------------------------------------
0166字符串"m\x43\\\np\102q"的长度是(A)
A.7B.9C.15D.16
------------------------------------------------------------
0168执行下列程序后的输出结果是(C)
intfun(intx1,intx2)
{intx;x1>x2?
(x=3):
(x=4);return(x+x1);}
intmain()
{printf("%d\n",fun(7,8));}
A.9B.10C.11D.12
------------------------------------------------------------
0175执行下列程序段后的输出结果是(C)
x=9;
while(x>7)
{printf("*");x--;}
A.****B.***C.**D.*
------------------------------------------------------------
0177能正确表达逻辑关系“-1<x<1并且-1<y<1”的表达式是(D)
A.(-1<x<1)&&(-1<y<1)
B.(-1<x<1)&(-1<y<1)
C.((-1<x)¦¦(x<1))&&((-1<y)¦¦(y<1))
D.(-1<x)&&(x<1)&&(-1<y)&&(y<1)
0179若整型变量x的值为8,则下列表达式中值为1的表达式是(B)
A.x+=x-=x=xB.x%=x-1C.x%=x%=3D.x/=x+x
-----------------------------------------------------------
0187已知x,y,z均为整型变量,且值均为1,则执行语句++x||y++&&z++;后,表达式x+y的值为(C)
A.1B.2C.3D.4
-----------------------------------------------------------
0188已知inta=1,b=1;则语句printf("%d\n",(a--,++b));的输出结果是(C)
A.2B.0C.1D.语句错误
-----------------------------------------------------------
0194以下叙述中错误的是A
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标越界"的出错信息
D.可以通过赋初值的方式确定数组元素的个数
------------------------------------------------------------
0201有以下程序段
chara[7]="A0\0A0\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
程序运行后的输出结果是(C)
A.22B.76C.72D.62
------------------------------------------------------------
0202已知inta=6;则执行a+=a-=a*a;语句后,a的值为(D)
A.36B.0C.-24D.-60
------------------------------------------------------------
0205有以下程序段
intm=12,n=34;
printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);
程序运行后的输出结果是(A)
A.12353514B.12353513C.12343514D.12343513
------------------------------------------------------------
0207数字字符0的ASCII值为48,若有以下程序
intmain()
{
charA=’1’,B=’2’;
printf("%c,",B++);
printf("%d\n",B-A);
}
程序运行后的输出结果是C
A.3,2B.50,2C.2,2D.2,50
------------------------------------------------------------
0208以下叙述中正确的是C
A.用C语言实现的算法必须要有输入和输出操作
B.用C语言实现的算法可以没有输出但必须要有输入
C.用C程序实现的算法可以没有输入但必须要有输出
D.用C程序实现的算法可以既没有输入也没有输出
------------------------------------------------------------
0209阅读以下程序,当输入数据的形式为:
25,13,10,正确的输出结果是(D)。
intmain()
{intx,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);}
A.x+y+z=48B.x+y+z=35
C.x+z=35D.不确定值
------------------------------------------------------------
0210一个C程序的执行是从(A)。
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
------------------------------------------------------------
0211若x、i、j和k都是int型变量,则计算下面表达式后,x的值为(C)。
x=(i=4,j=16,k=32)
A.4