C、a>10&&a<15D、!
(a<=10)&&!
(a>=15)
(17)设f就是实型变量,下列表达式中不就是逗号表达式得就是D。
A、f=3、2,1、0B、f>0,f<10C、f=2、0,f>0D、f=(3、2,1、0)
(18)设ch就是char型变量,其值为'A',则下面表达式得值就是B。
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch
A、AB、aC、ZD、Z
(19)以下运算符中,结合性与其她运算符不同得就是A。
A、++B、%C、/D、+
(20)以下用户标识符中,合法得就是B。
A、intB、nitC、123D、a+b
(21)C语言中,要求运算对象只能为整数得运算符就是%。
A、%B、/C、>D、*
(22)PC机中,'\n'在内存占用得字节数就是A。
A、1B、2C、3D、4
(23)字符串"ABC"在内存占用得字节数就是B。
A、3B、4C、6D、8
(24)要为字符型变量a赋初值,下列语句中哪一个就是正确得B。
A、chara="3";B、chara=’3’;C、chara=%;D、chara=*;
(25)下列不正确得转义字符就是C。
A、\\B、\'C、074D、\0
2、填空题
(1)C语言中得逻辑值“真”就是用非0表示得,逻辑值“假”就是用0表示得。
(2)符号常量得定义方法就是#defineN10。
(3)无符号基本整型得数据类型符为unsignedint,双精度实型数据类型符为double,字符型数据类型符为char。
(4)设c='w',a=1,b=2,d=5,则表达式'x'+1>c,'y'!
=c+2,a5*b<=d+1,b==a=2得值分别为1、0、1、表达式错误。
(5)设floatx=2、5,y=4、7;inta=7;,表达式x+a%3*(int)(x+y)%2/4得值为2、5。
(6)判断变量a、b得值均不为0得逻辑表达式为(a!
=0)&&(b!
=0)。
(7)求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c得值依次为4,4,10,6。
(8)求解逗号表达式x=a=3,6*a后,表达式值、x、a得值依次为18,3,3。
(9)数学式a/(b*c)得C语言表达式a/(b*c)。
第3章顺序结构程序设计习题
1、选择题
(1)printf("f=%3、2f%%",3、478);得输出结果就是A。
A、f=3、48%B、f=3、5%C、f=3、48%%D、f=347、8%
(2)printf("%c,%d",'a','a');得输出结果就是A。
A、a,97B、a97C、97,aD、97a
(3)scanf("%c",&a);若要给变量输入大写字母A,则以下正确得输入就是B。
A、'A'B、A\C、"A"D、以上都不对
(4)若一个int类型得数据占2字节,则程序段:
intx=1;printf("%u,%d",x,x);得输出结果就是A。
A、65535,1B、1,65535C、32767,32768D、32768,32767
(5)在TC中,getchar、putchar、printf、scanf四个函数,均包含在头文件B
中。
A、math、hB、stdio、hC、stbio、hD、stdlib、h
(6)复合语句就是用C括起来得语句组。
A、()B、[]C、{}D、<>
(7)下列格式符中,哪一个可以用于以八进制形式输出整数C。
A、%dB、%8dC、%oD、%ld
(8)下列格式符中,哪一个可以用于以十六进制形式输出整数B。
A、%16dB、%8xC、%d16D、%d
(9)a就是int类型变量,c就是字符变量,下列输入语句中哪一个就是错误得B。
A、scanf("%d,%c",&a,&c);B、scanf("%d%c",a,c);
C、scanf("%d%c",&a,&c);D、scanf("d=%d,c=%c",&a,&c);
(10)要使doublex;longa;得数据能正确得输出,输出语句应就是D。
A、printf("%d,%f",a,x);B、printf("%d,%1f",a,x);
C、scanf("%1d,%1f",&a,&x);D、printf("%1d,%lf",a,x);
2、程序改错题(以下各个程序段均有5个错误,请先找出错误得位置,然后再改正)
(1)以下程序得功能就是,从键盘输入一个字符并鸣笛输出。
#include"stdio、h"
mian//main
{charc//charc;
getchar(c);//c=getchar;
putchar('\007');/*鸣笛*/
c=putchar;//putchar(c);
//}
(2)以下程序得功能就是,输入长方形得两边长(边长可以取整数与实数),输出它得面积与周长。
main//main
{
inta,b,s,l;//doublea,b,s,l;
scanf("%d,%d",&a,&b);//scanf("%lf,%lf",&a,&b);
s=a*b;
l=a+b;//l=(a+b)*2;
printf("l=%f,s=%f\n",l);//printf("l=%lf,s=%lf\n",l,s);
}
3、写出程序运行结果
(1)
main
{
inta,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d\n",a+b);
}
运行时输入:
12345678//输出:
68
(2)
main
{
inta=3,b=5,x,y;
x=a+1,b+6;
y=(a+1,b+6);
printf("x=%d\ny=%d\n",x,y);
}
输出:
x=4
y=11
第4章选择结构程序设计习题
1、单项选择题
(1)选择结构程序设计得特点就是___B____。
A、自上向下逐个执行B、根据判断条件,选择其中一个分支执行
C、反复执行某些程序代码D、以上都就是
(2)假定所有变量均已正确定义,下列程序段运行后x得值就是__B_。
a=b=c=0,x=35;
if(!
a)x;elseif(b);if(c)x=3;elsex=4;
A、34B、4C、35D、3
(3)下面得程序片段所表示得数学函数关系就是_A____。
if(x<0)y=1;
elseif(x>0)y=1;
elsey=0;
(4)下列各语句序列中,能够且仅输出整型变量a、b中最大值得就是(C)。
A、if(a>b)printf("%d\n",a);printf("%d\n",b);
B、printf("%d\n",b);if(a>b)printf("%d\n",a);
C、if(a>b)printf("%d\n",a);elseprintf("%d\n",b);
D、if(a
(5)以下程序段得输出结果就是A
intx=5;
if(x>0)y=1;
elseif(x==0)y=0;
elsey=1;
printf("%d",y);
A、1B、5C、0D、2
(6)程序段intx=5,y=8,max;max=(x>y)?
x:
y;printf("%d",max);得输出结果就是B。
A、5B、8C、3D、13
(7)程序段intx=3,a=1;switch(x){case4:
a++;case3:
a++;case2:
a++;case1:
a++;}printf("%d",a);得输出结果就是D。
A、1B、2C、3D、4
(8)下列语句应将小写字母转换为大写字母,其中正确得就是(B)。
A、if(ch>='a'&ch<='z')ch=ch32;B、if(ch>='a'&&ch<='z')ch=ch32;
C、ch=(ch>='a'&&ch<='z')?
ch32:
’’;D、ch=(ch>'a'&&ch<'z')?
ch32:
ch;
2、阅读程序,写出运行结果
(1)
voidmain
{
inta=10,b=4,c=3;
if(a
if(aprintf("%d,%d,%d\n",a,b,c);
}
输出:
10,4,3
(2)
voidmain()
{
intx=100,a=10,b=20,ok1=5,ok2=0;
if(a
=15)if(!
ok1)x=1;
elseif(ok2)x=10;
elsex=1;
printf("%d\n",x);
}
输出:
1;
(3)
intk,a=1,b=2;
k=(a++==b)?
2:
3;
printf("%d",k);
输出:
3
(4)
voidmain
{
ints=1,k=0;
switch(s)
{
case1:
k+=1;
case2:
k+=2;
default:
k+=3;
}
printf(“%d”,k);
}输出:
6
(5)
voidmain
{
ints=1,k=0;
switch(s)
{
case1:
k+=1;break;
case2:
k+=2;break;
default:
k+=3;
}
printf(“%d”,k);
}
输出:
1
第5章循环结构程序设计习题
1、单项选择题
(1)for(i=1;i<9;i+=1);该循环共执行了B次。
A、7B、8C、9D、10
(2)inta=2;while(a=0)a;该循环共执行了A次。
A、0B、1C、2D、3
(3)执行完循环for(i=1;i<100;i++);后,i得值为B。
A、99B、100C、101D、102
(4)以下for语句中,书写错误得就是D。
A、for(i=1;i<5;i++);B、i=1;for(;i<5;i++);
C、for(i=1;i<5;)i++;D、for(i=1,i<5,i++);
(5)C语句,在循环条件初次判断为假,还会执行一次循环体。
A、forB、whileC、dowhileD、以上都不就是
(6)循环结构得特点就是C。
A、从上至下,逐个执行B、根据判断条件,执行其中一个分支
C、满足条件时反复执行循环体D、以上都对
(7)i、j已定义为int类型,则以下程序段中内循环体得执行次数就是A。
for(i=5;i;i)
for(j=0;j<4;j++){…}
A、20B、24C、25D、30
(8)C语言while语句中,用于条件得表达式就是D。
A、关系表达式B、逻辑表达式C、算术表达式D、任意表达式
(9)inta=1,x=1;循环语句while(a<10)x++;a++;得循环执行D。
A、无限次B、不确定次C、10次D、9次
(10)下列程序段执行后s得值为A。
inti=1,s=0;while(i++)if(!
(i%3))break;elses+=i;
A、2B、3C、6D、以上均不就是
2、填空题
(1)三种循环语句就是等价价得。
(2)当循环体中得switch语句内有break语句,则只跳出swicth语句。
同样,当switch语句中有循环语句,内有break语句,则只跳出循环语句。
(3)循环体执行遇到continue语句时跳过本次循环进入下次循环。
(4)下列程序得功能就是输入一个正整数,判断就是否就是素数,若为素数输出1,否则输出0,请为程序填空。
voidmain()
{
inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if(x%i==0){y=0;break;}
printf("%d\n",y);
}
(5)输入N个实数,输出其中得最大值、最小值。
#include
voidmain()
{
intn,i;
floatno1,nmax,nmin;
scanf("%d",&n);scanf("%f",&no1);
nmax=no1;
nmin=no1;
for(i=2;i<=n;i++)
{
scanf("%f",&no1);
if(no1>nmax)nmax=no1;
if(no1}
printf("MAX=%fMIN=%f\n",nmax,nmin);
}
(6)输入若干个字符,分别统计数字字符得个数、英文字母得个数,当输入换行符时输出统计结果,运行结束。
#include
voidmain()
{
charch;
ints1=0,s2=0;
while((ch=getchar)!
='\n')
{
if(ch>='0'&&ch<='9')s1++;
if(ch>='a'&&ch<='z'||ch>=’A’||ch<=’Z’)s2++;
}
}
3、阅读下列程序,写出程序运行得输出结果
(1)
voidmain()
{inty=9;
for(;y>0;y)
if(y%3==0){printf("%d",y);continue;}
}
输出:
852
(2)main
{
intk,n,m;
n=10;m=1;k=1;
while(k++<=n)
m*=2;
printf("%d\n",m);
}
输出:
1024
(3)
voidmain()
{inti=5;
do
{switch(i%2)
{case4:
i;break;
case6:
i;continue;
}
i;i;
printf("i=%d",i);
}while(i>0);
}
输出:
i=3i=1i=1
(4)#include
voidmain()
{
intk=0;charc='A';
do
{
switch(c++)
{
case'A':
k++;break;
case'B':
k;
case'C':
k+=2;break;
case'D':
k=k%2;break;
case'E':
k=k*10;break;
default:
k=k/3;
}
k++;
}while(c<'G');
printf("k=%d\n",k);
}
输出:
8
(5)输入数据:
2,4
#include
voidmain()
{
ints=1,t=1,a,n;
inti;
scanf("%d,%d",&a,&n);
for(i=1;it=t*10+1;s=s+t;
}
s*=a;printf("SUM=%d\n",s);
}
输出:
2468
4、程序改错
(1)以下程序就是显示[200,300]所有能被7整除得数,每行显示5个数,此程序有5处错。
main
{
inti,n=0;/*n用来记录每行已打印数得个数*/
while(i<300)//while((i<=300)&&(i>=200))
{//i++;
if(i%7==0)//if(i%7!
=0)
break;//continue;
printf("%5d",i);
n=n+1;
if(n=5)/*满5个换行*///if(n==5)
{
printf("\n");
n=0;
}
}
}
(