31.在以下一组运算符中,优先级最高的运算符是(C)。
A.<=B.=C.%D.&&
32.在以下一组运算符中,优先级最高的运算符是(A)。
A.--B.==C.||D.&&
33.若有以下定义语句:
chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为(D)。
A.floatB.intC.char·D.double
34.关于运算时的数据类型转换,下列说法中错误的是(C)。
A.表达式计算中,数据要转换成数据长度最长的数据类型再运算
B.赋值时,右边表达式的运算结果转换成左边变量的数据类型再赋值
C.赋值时,左边变量的数据类型转换成右边表达式的运算结果类型再赋值
D.(noat)(n+m)是先计算n+m,然后将结果转换成单精度实型
二、填空题
1.C语言中的常量有四种类型:
整型、实型、字符型和字符串型。
2.用十进制表示整型常量-017为-15,表示整型常量-0xf为-15。
3.无符号短整型数据的范围是0至65535。
4.在内存中存储”A”要占用2个字节,存储’A’要占用1字节。
5.在内存中存放字符串,其最后一个字符称为“空字符”,对应的转义字符是\0,其值为0。
6.符号常量的定义方法是#define。
7.设有宏定义#definex3-2;则2*x的宏替换结果是2*3-2。
8.定义变量的语句格式是数据类型符变量。
9.无符号基本整型的数据类型符为int,双精度实型数据类型符为double,字符型数据类型符为char。
10.定义整型有名常量nn的初值为199,正确的定义语句是constintnn=199;。
11.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1。
12.请写出数学式
的c语言表达式a/(b*c)。
13.设a=3,b=2,c=1,则a>b的值为1,a>b>c的值为0。
14.C语言中作为运算对象时的逻辑值“真”是用非0表示的,逻辑值“假”是用0表示的。
逻辑表达式值为“真”是用1表示的,逻辑表达式值为“假”是用0表示的。
15.若已知a=10,b=20,则表达式!
a
16.能表述“2020&&x<30)||x<-100。
17.设变量x、y、z均为实型,表示其中至少有一个负数的表达式应为x<0||y<0||z<0。
18.表达式“’a’>’A’>=1<=0==1!
=0”的值等于0。
19.设二进制数A是,若想通过按位加运算A^B使A的高4位取反,低4位不变,则二进制数B应是。
20.设整型变量x,y,z均为5:
A.执行“x-=y-z”后x=5,
B.执行“x%=y+z”后x=5,
c.执行“x=(y>z)?
x+2:
x-2,3,2”后x=3。
21.设有下列运算符:
.<<、+、++、&&、<=,其中优先级最高的是.,优先级最低的是&&。
22.C语言中运算结果可以当成逻辑值使用的表达式有关系表达式、逻辑表达式、算术表达式、位表达式、赋值表达式和逗号表达式。
第4章
一、单项选择题(题中的口代表一个空格符)
1.设a=3,b=4,执行语句“printf("%d,%d",(a,b),(b,a));"的输出是(B)。
A.3,4B.4,3C.3,3D.4,4
2.使用语句“scanf("x=%f,y=%f",&x,&y);”使x,y均为1.25,正确的输入是(C)。
A.1.25,1.25B.1.25口1.25
C.x=1.25,y=1.25D.x=1.25口y=1.25
3.设有inti=010,j=10;则printf("%d,%d\n",++i,j--);的输出是(B)。
A.11,10B.9,10C.010,9D.10,9
4.设a、b为字符型变量,执行语句“scanf(”a=%c,b=%c”,&a,&b);”后使a为’A’,b为’B'。
从键盘上的正确输入是(D)。
A.‘A’B’B.‘A’,’B’C.A=A,B=BD.a=A,b=B
5.设x,y,z,t均为int型变量,则执行以下语句串后,t的值为(C)。
x=y=z=1;t=++x||++y&&++z;
A.不定值B.2C.1D.0
6.设x,y,z,t均为int型变量,则执行下列语句串后,变量t的值为(C)。
x=y=z=0:
if(x=y)t=z;elset=!
z;
A.不定值B.2C.1D.0
7.假定所有变量均已正确定义,下列程序段运行后x的值是(A)。
a=b=c=0;x=35;
if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
8.下面的程序段所表示的数学函数关系是(C)。
y=-1;
if(x!
=0)if(x>0)y=1;elsey=0;
A.y=
B.y=
C.y=
D.y=
9.设整型变量m1值为3、m2值为2、m3值为1,执行下列语句后,整型变量m4值是(A)。
switch(m1=m2==m3+1)
{case1:
m4=1;break;
case3:
m4=3;break;
case2:
m4=2;break;
default:
m4=4;
}
A.1B.2C.3D.4
10.下列语句中,错误的是(B)。
A.while(x=y)5;B.dox++while(x==10);
C.while(0);D.do2;while(a==b);
11.设有循环语句“for(i=-1;i<4;i++)i++;”,其循环体执行的次数是(C)。
A.无限B.0C.3D.4
12.设有循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);其循环体执行的次数是(C)。
A.无限次B.不确定次C.4次D.3次
13.若i、j已定义为int类型,则以下程序段中内循环体{...}的执行次数是(A)。
for(i=5;i;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
14.假定a和b为int型变量,则执行以下语句后b的值为(D)。
a=1;b=10;
do{b-=a;a++;}
while(b--<0);
A.9B.-2C.-1D.8
15.设x和y均为int型变量,则执行下面的循环后,y的值为(C)。
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A.2B.4C.6D.8
16.设有数据定义语句“ints,k;”,不能正确计算s=1+2+…+10的程序段是(A)。
A.s+=1+2+3+4+5;B.s=k=0:
s+=6+7+8+9+10;dos+=k:
while(k++<10);
C.s=k=0;D.for(s=k=0;k<11:
k++)
while(k<11)s+=k:
s+=k++:
17.在C语言中,下列说法中正确的是(D)。
A.不能使用“do语句;while(表达式);”实现循环结构。
B.“do语句;while(表达式);”的循环必须使用"break"语句退出循环。
C.“do语句;while(表达式);”的循环中,当表达式为非0时将结束循环。
D.“do语句;while(表达式);”的循环中,当表达式为0时将结束循环。
18.以下说法中正确的是(A)。
A.continue只能在循环体中使用B.break只能在循环体中使用
C.break不能在循环体中使用D.break只能在switch语句中使用
二、填空题
1.结构化程序设计规定的三种基本结构是顺序结构、选择结构和循环结构。
2.选择结构通常包括三种形式:
单分支选择结构、双分支选择结构、多分支选择结构。
3.先执行循环体,后判断控制循环条件的循环一般称为直到型型循环;先判断控制循环条件,后执行循环体的循环一般称为当型循环。
4.使用系统函数getchar(),必须在程序的开头写上一条命令include。
5.printf()系统函数的第一个参数是格式串,后面参数是表达式表。
6.在格式输入/输出函数中,“%d’,格式可以用于整型、短整型、无符号整型、字符型的数据。
“%ld”格式可以用于长整型、型的数据。
对格式输入函数,“%f”.格式只可以用于无符号长整型的数据,“%lf’格式只可以用于实型的数据;对格式输出函数,“%f”格式既可以用于实型的数据,又可以用于双精度型的数据。
7.语句“if(e1)if(e2)s;”的基本功能是:
表达式e1、e2均为真时,执行语句s。
8.语句“if(e1)s1;elseif(e2)s2;”的基本功能是:
表达式e1为真时执行语句s1,e1为假且e2为真时执行语句s2。
9.若有定义语句“inta=25,b=14,c=19;”,则下列语句的执行结果是输出:
###a=26,b=13,c=19。
if(a++<=25&&b--<=2&&c++)printf(“***a=%d,b=%d,c=%d\n”,a,b,c);
elseprinff(“###a=%d,b=%d,c=%d\n”,a,b,c);
10.以下两条if—else语句可合并成一条if—else语句:
if(a<=b){
x=1;
printf(”%d”,x);
}
else{
y=2;
printf(“%d”,y);
}
if(a<=b)x=1;
elsey=2:
if(a>b)printf(”%d”,y);
elseprintf(”%d”,x);
11.语句“do语句;while(表达式);”的基本功能是:
循环执行语句,直到表达式为假。
12.语句“for(;表达式;)语句;”的基本功能是:
循环执行语句,直到表达式为假。
13.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
三、阅读程序题
1.阅读下列程序,写出程序运行的输出结果。
voidmain()
{charc1=’A’,c2=’\101’,c3=’\x41’;
printf(“A=%d,%C=0101,%c=0x41\n”,c1,c2,c3);
}
2.阅读下列程序,写出程序运行的输出结果。
voidmain()
{inta=10,b=4,c=3;
if(a
if(aprintf(“%d,%d,%d”,a,b,c);
}
3.阅读下列程序,写出程序运行的输出结果。
voidmain()
{intx=100,a=10,b=20,ok1=5,ok2=0;
if(a
=15)if(!
ok1)x=1;
elseif(ok2)x=10;
elsex=-1:
prinff(“%d\n”,x);
}
4.阅读下列程序,写出程序运行的输出结果。
voidmain()
{intm,n,i;
m=n;i=4;
do{n+=1;
i--;
m-=n;
}while(i>0);
printf(“%d,%d,%d\n”,i,n,m);
}
5.阅读下列程序,写出程序运行的输出结果。
voidmain()
{inty=9;
for(;y>0;y--)
if(y%3==0){prinff(”%d”,--y);continue;}
6.阅读下列程序,写出程序的主要功能。
voidmain()
{intx;
while
(1)
{scanf(“%d”,&x);
if(x<0)printf(“-1\n”);
elseif(x>0)printf(”1\n”);
elsebreak;
}
}
7,阅读下列程序,写出程序的主要功能。
voidmain()
{inti,x,s1,s2;
s1=s2=0:
for(i=1;i<11;i++)
{seanf(“%d”,&x);
if(x%2==0)s1+=x;
if(x%2==1)s2+=x;
}
printf(“s1=%ds2=%d\n”,s1,s2);
}
8.阅读下列程序,写出程序的主要功能。
voidmain()
{intn;
for(n=1;n<100;n++)
if((n%10==1)&&(n%3==0O))
printf(“%d\n”,n);
}
四、程序填空题
1.下列程序的功能是将变量x、y、z中大者存放到x中,请填写程序中缺少的语句。
voidmain(){
intx,y,z;
scanf("%d,%d,%d",&x,&y,&z);
if(x_____________
printf("%d\n",x);
}
2.下列程序的功能是求输入的4个实数之和并输出,
请填写程序中缺少的语句成分
voidmain()
{floata,x;
inti;
for(___________;i>=0;i)
{scanf("%f",&x);
s=s+x;
}
printf("%f\n",s);
}
3.假定运行下列程序输出的是:
“***”,
请填写程序中缺少的语句成分
voidmain()
{intx=6;
do{printf("*");
x--;
x--;
}while__________;
}
4.下列程序的功能是求输入输入1个正整数,判断是否为素数,
若为素数输出1,否则输出0.,请填写程序中缺少的语句成分
voidmain()
{inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if_________{y=0;break;}
printf("%d\n",y);
}
5.下列程序是按照以下公式计算并输出л的值,请填写程序中缺少的语句
л/4=1-1/3+1/5-1/7+…+1/n(精度要求|1/n|<1e-4)
#include
voidmain()
{doublepi=1.0,t1=3.0,t2=3.0,t3=-1;
while(fabs(t1)>=1e-4)
{t1=t3/t2;
pi+=t1;
t2+=2;
____________
}
printf("%f\n",4*pi);
}
五、程序设计题
1.编写一个程序输入华氏温度(F),按下列公式计算并输出华氏温度(C)。
C=
2.编一个程序,输入一个整数,输出其符号(若>=0,输出1,若<0,输出-1)
3.编写一个程序,输入实数x的值,按下列计算并输出y的值:
y=
4.编一个程序,输入三个单精度数,求出其中的最小数。
5.编一个程序求一个短整型正整数的最大数字。
例如整数12354中的最大数字是5.
6.编一个程序,求出所有各位数字的立方和等于1099的3位整数。
7.编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。
8.编写程序按以下公式计算e的值:
e=
(精度为10-6)
9.编写程序按下列公式计算y的值:
(提示:
y的值约为1.)
y=
10.编一个程序显示ASCII代码0x30~0x5f的10进制数值及其对应字符
11.用三种循环语句分别编写程序显示1~100的平方值。