C语言试题汇总西电第二版.docx
《C语言试题汇总西电第二版.docx》由会员分享,可在线阅读,更多相关《C语言试题汇总西电第二版.docx(39页珍藏版)》请在冰豆网上搜索。
C语言试题汇总西电第二版
第一章
1.选择题
(1)C语言程序的基本单位是()
A.程序行B.语句C.函数D.字符
(2)在计算机系统中,可以直接执行的程序是()
A.源程序B.汇编语言程序C.机器语言程序D.ASCII码
(3)下列对C语言程序的书写格式的描述,()是正确的。
A.C语言程序中,每行只能写一条语句
B.C语言程序书写时通常采用“缩排”方式
C.C语言程序的书写中要求每行都要以分号作结尾
D.注释行必须放在程序的头或程序的尾
(4)以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行
B.C语言程序总是从main()函数开始执行
C.C语言程序中的main()函数必须放在程序的开始部分
D.一个C函数中只允许一对花括号
(5)保存一个C语言源程序的快捷键是()
A.F1B.F2C.F3D.F4
(6)启动TCV2.0环境后,打开一个C语言源程序的快捷键是()
A.F1B.F2C.F3D.F4
(7)C语言源程序文件file.C经系统编译、连接后,生成的文件名为()
A.file.CB.fileC.D.
2.填空题
(1)一个C语言程序有且仅有一个___________函数
(2)C语言程序的执行,总是从_________函数开始,而不论其在程序中的位置。
(3)C语言程序是由一个主函数main()和___________函数结合而成的,或仅由一个main()函数构成。
(4)C语言程序总是从主函数main()开始执行,到___________函数执行完后结束
(5)所有函数(包括主函数main())都是由___________和___________两部分组成。
(6)执行一个C语言程序的一般过程是______________________
(7)在TC集成环境下,存盘、编译与连接、运行、查看运行结果操作的快捷键分别是___________、___________、___________、___________。
(8)C语言源程序经翻译成目标程序。
第二章
1.选择题
⑴下列选项中,合法的C语言关键字是()。
A.VARB.cherC.integerD.float
⑵以下所列的C语言常量中,错误的是:
A.0xFFB.1.2e0.5C.2LD.'\72'
⑶以下变量x,y,t均为double类型且已正确赋值,不能正确表示数学式子
的
C语言表达式是()。
A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z
⑷如下程序
main()
{
inty,x=3,z=1;
y=(++x)+(++x);
printf("%d%d\n",(y),z+2);
}
运行该程序的输出结果是()。
A.53B.43C.73D.63
⑸若已正确定义x和y为double类型,则表达式x=1,y=x+3/2的值是()。
A.1B.2C.2.0D.2.5
⑹在C语言中运算对象必须是整型的运算符是()。
A.%=B./C.=D.*
⑺设有intx=11;则表达式(x++*1/3)的值是()。
A.3B.4C.11D.12
⑻设x和y均为int型变量,则下列语句:
x+=y;y=x-y;x-=y;的功能是()。
A.把x和y按从大到小排列。
B.把x和y按从小到大排列。
C.无确定的结果。
D.交换x和y中的值
⑼若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d―c值的类型为()。
A.intB.charC.doubleD.float
⑽下列可作为C语言赋值语句的是()。
A.x=3,y=5B.a=b=6C.i+=1;D.y=int(x)
2.填空题
⑴设a,b,c为整数,且a=2、b=3、c=4,则执行完语句:
a*=16+(b++)-(++c);后,a的值是28。
⑵数学式子sin2x×
写成C语言表达式是。
⑶设x和y均为int型变量,且x=1,y=2,则以下表达式的值为4。
y=x++,x+y,++y,x*y
⑷以下程序的输出结果。
main()
{unsignedshorta=65535;
intb;
printf("%d\n",b=a);
}
0—6553532767---32768
00000000000000001111111111111111
00000000000000000111111111111111
1000000000000000
0000000000000001
⑸下列程序的输出结果是16.00,请填空。
main()
{
inta=9,b=2;
floatx=6.6,y=1.1,z;
z=a/2+b*x/y+1/2;6=x/y
printf("%5.2f\n",z);
}
3.应用题
⑴指出下列变量名中,哪些是合法的,哪些是非法的。
Int,char,315,ABC,C&D,string$,_213,alpha_beta,John-Smith?
⑵写出下面表达式运算后a的值,设a和n都已定义为整型变量且a=12,n=5。
(1)a+=n(4)a-=2+n
(2)a*=n+3(5)a/=a+n
(3)a%=(a%=n)(6)a+=a―=a*=n
⑶分析下列程序的运行结果。
①main()
{
inti,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
②main()
{intnum=5,num1,num2;
num1=num++;num2=++num;
printf("num=%d,num1=%d,num2=%d\n",num,,num2);
757
num1=num--;num2=--num;
printf("num=%d,num1=%d,num2=%d\n",num,num1,num2);
}575
⑷编程计算下列表达式的值。
①a+b%3*(int)(a-b)/4(设a=13.6,b=8)
②(x+y)/2+(int)x%(int)y(设x=4.5,y=2.5)
③z*=3+6,z/=z/2,z+=z-=z*=z(设z=5)
⑸编程实现从键盘上输入2个int型数,比较其大小,并输出其中较小的。
⑹编程实现输入km数,输出其英里数。
已知:
1英里=1.60934km。
⑺从键盘上输入任意一个float型的数,然后将该数保留2位小数输出。
⑻从键盘上输入任意一个小写字母,然后将该字符转换为对应大写字母输出,并同时输出该小写字母的ASCII码值。
第三章
1.选择题
(1)putchar函数可以向终端输出一个()。
A.整型变量或表达式值B.实型变量值
C.字符串D.字符或字符型变量值
(2)有如下程序段:
inta1,a2;
charc1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是()。
A.10A20B↙B.10A20B↙
C.10A20B↙D.10A20B↙
(3)有如下程序,输入数据:
12345m678↙后,x的值是(),y的值是()。
#include
main()
{
intx;floaty;
scanf("%3d%f",&x,&y);
}
①A.12345B.123C.45D.345
②A.45.000000B.45678.00000C.678.000000D.123.000000
(4)有如下程序,对应正确的数据输入是()
#include
main()
{
floata,b;
scanf("%f%f",&a,&b);
printf("a=%f,b=%f\n",a,b);
}
A.2.04↙B.2.04,5.67↙C.A=2.04,B=5.67↙5.67↙
D.2.045.67↙
(5)有输入语句:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是()
A.132↙B.1,3,2↙C.a=1,b=3,c=2↙D.a=1b=3c=2↙
(6)已知字母A的ASCII码是65,以下程序的执行结果是()
#include
main()
{
charc1='A',c2='Y';
printf("%d,%c\n",c1,c2);
}
A.A,YB.65,65C.65,YD.65,89
(7)以下程序的执行结果是()
#include
main()
{
inta=2,b=5;
printf("a=%d,b=%%d\n",a,b);
}
A.a=%2,b=%5B.a=2,b=5C.a=%%d,b=%%dD.a=2,b=%d
2.填空题
(1)以下程序的执行结果是___100144_64________。
#include
main()
{
inti=100;
printf("%d,%o,%x\n",i,i,;
}
(2)以下程序的执行结果是_。
#include
main()
{
charc='A';
printf("%d,%o,%x,%c\n",c,c,c,c);
}
(3)以下程序的执行结果是______。
#include
main()
{
floatf=3.1415926;
printf("%f,%5.4f,%.3f",f,f,f);
}
(4)以下程序的执行结果是______。
#include
main()
{
floatf=31.41592;
printf("%7.2f,%7.2e\n",f,f);
}
(5)以下程序的执行结果是______。
#include
main()
{
charc='A'+10;
printf("c=%c\n",c);
}
(6)以下程序运行时输入1□2□3↙(□代表空格)后,执行的结果是______。
#include
main()
{
inta,c;
charb;
scanf("%d%c%d",&a,&b,&c);
printf("a=%d,b=%c,c=%d\n",a,b,c);
}
(7)以下程序运行时输入123456789↙后,执行的结果是______。
#include
main()
{
inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
(8)以下程序运行时输入ABC↙后,执行的结果是______。
#include
main()
{
charc;
scanf("%3c",&c);
printf("c=%c\n",c);
}
(9)以下程序运行时输入100↙后,执行的结果是______。
#include
main()
{
intn;
scanf("%o",&n);
printf("n=%d\n",n);
}64
3.编程题
(1)编写程序从键盘输入圆锥体的半径r和高度h,计算其体积。
(2)编写程序,输入一个字符,输出其对应的ASCII码。
3)编写程序,输入一个三位整数,把三个(数字逆序组成一个新数,再输出。
例如输入369,输出963。
第四章
1.选择题
(1)最适合解决选择结构“x>0,则y=1;否则y=0”的语句是()。
A.switchB.嵌套的if-elseC.if-elseD.if
(2)下列表达式中,()不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。
A.x%2==0B.!
x%2!
=0C.x/2*2-x==0D.!
(x%2)
(3)以下程序片段()。
intx=2,y=3;
if(x=y)printf(″***x=%d″,x);
elseprintf(″###y=%d″,y);
A.语法错误B.输出为:
***x=3
C.输出为:
###y=2D.输出为:
###y=3
(4)能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。
A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B.(x>=1)||(x<=10)||(x>=200)||(x<=210)
C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)
(5)运行下列程序的输出结果是()。
main()
{inta1=10,a2=-9,a3=0,a4=100,x;
if(a1if(a1if(a1if(a2if(a2if(a3printf(″%d,%d,%d,%d\n″,a1,a2,a3,a4);
}
A.-9,0,10,100B.100,10,0,-9C.0,-9,10,100D.100,10,-9,0
(6)C语言对嵌套if语句的规定是:
else总是与()。
A.其之前最近的if配对B.第一个if配对
C.缩进位置相同的if配对D.其之前最近的且尚未配对的if配对
(7)设:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()。
A.1B.2C.3D.4
(8)下面()是错误的if语句(设intx,a,b;)。
A.if(a=b)x++;B.if(a=
(9)以下程序片段()。
main()
{intx=0,y=0,z=0;
if(x=y+z)printf(″***″);
elseprintf(″###″);
}
A.有语法错误,不能通过编译B.输出:
***
C.可以编译,但不能通过连接,所以不能运行D.输出:
###
(10)下述程序的输出结果是()。
main()
{inta=0,b=0,c=0;
if(++a>0||++b>0)
++c;
printf(″%d,%d,%d″,a,b,c);
}
A.0,0,0B.1,1,1C.1,0,1D.0,1,1
(11)下述程序的输出结果是()。
main()
{intx=-1,y=4,k;
k=(x++<=0&&!
(y--<=0));
printf(″%d,%d,%d″,k,x,y);
}
A.0,0,3B.0,1,2C.1,0,3D.1,1,2
2.填空题
(1)C语言提供6种关系运算符,按优先级由高到低它们分别是、、、、、等。
(2)C语言提供三种逻辑运算符,优先级最高的运算符是。
(3)将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式是y%4==0&&y%100!
=0||y%400==0 。
(4)设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式是 。
(5)已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A
C>B的值是0。
(6)有intx=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为1。
(7)若有x=1,y=2,z=3,则表达式(xx:
y)==z++的值是0。
(8)执行以下程序段后,a=10b=9c=11。
intx=10,y=9;
inta,b,c;
a=(x--==y++)?
x--:
y++;
b=x++;
c=y;
(9)下列程序段功能所对应的分段函数是
if(x<0)y=-1;
elseif(x==0)y=0;
elseif(x<1000)y=1;
elsey=2;
(10)运行下列程序的输出结果是 00
main()
{intn=1;
switch(n--)
{case0:
printf(″%1d″,n);
case1:
printf(″%1d″,n);
case2:
printf(″%1d″,n);
}
}
(11)根据以下函数关系,对输入的每个x值,计算出相应的y值,请填空使程序完整。
main()
{
intx,c,m;
floaty;
scanf(″%d″,&x);
if()c=-1;
elsec=;
switch(c)
{ case–1:
y=0;break;
case0:
y=x;break;
case1:
y=10;break;
case2:
case3:
y=-0.5*x+20;break;
default:
y=-2;
}
if()
printf(″y=%f″,y);
else
printf(″error!
″);
}
(12)以下程序输出x、y、z三个数中的最小值,请填空使程序完整。
main()
{intx=4,y=5,z=8;
intu,v;
u=xx:
y;
v=uu:
z;
printf(″%d″,v);
}
3.编程题
(1)从键盘上输入M,显示“GoodMorning!
”;输入H,显示“Hello!
”;输入N,显示“GoodNight!
”。
(2)从键盘上输入四个整数,分别存入变量a,b,c,d中,并按从小到大的顺序输出。
(3)给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。
90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。
(4)提高题:
给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别打印出每一位数字;
③按逆序打印出各位数字,例如原数是325,应输出523。
第五章
1.选择题
(1)关于下面程序段描述正确的是()。
intk=2;
while(k=0){ printf("%d",k);
k--;
}
A.while循环执行10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
1+2+3+。
。
。
。
。
。
+99+100
(2)下述程序段中,()与其他程序段的作用不同。
A.k=1;s=0;B.k=1;s=0;
while
(1)Repeat:
s+=k;
{ s+=k;if(++k<=100)
k=k+1;gotoRepeat;
if(k>100)break;printf("\n%d",s);
}
printf("\n%d",s);
C.k=1;s=0; D.k=1;s=0;
for(;k<=100;s+=++k);dos+=k;
printf("\n%d",s);while(++k<=100);
printf("\n%d",s);
(3)以下程序段的循环次数是()。
for(i=2;i==0;)printf("%d",i--);
A.无限次B.0次C.1次D.2次
(4)下面程序的输出结果是()。
main()
{
charc='A';
intk=0;
do{
switch(c++)
{case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k%=2;continue;
case'E':
k*=10;break;
default:
k/=3;
}
k++;
}while(c<'G');
printf("k=%d",k);
}
A.k=4B.k=3C.k=2D.k=0
(5)下面程序的输出结果是()。
main()