C.a>10&&a<15D.!
(a<=10)&&!
(a>=15)
(17)设f是实型变量,下列表达式中不是逗号表达式的是。
A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)
(18)设ch是char型变量,其值为'A',则下面表达式的值是。
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch
A.AB.aC.ZD.Z
(19)以下运算符中,结合性与其他运算符不同的是。
A.++B.%C./D.+
(20)以下用户标识符中,合法的是。
A.intB.nitC.123D.a+b
(21)C语言中,要求运算对象只能为整数的运算符是。
A.%B./C.>D.*
(22)PC机中,'\n'在内存占用的字节数是。
A.1B.2C.3D.4
(23)字符串"ABC"在内存占用的字节数是。
A.3B.4C.6D.8
(24)要为字符型变量a赋初值,下列语句中哪一个是正确的。
A.chara=3;B.chara=”3”;C.chara=%;D.chara=*;
(25)下列不正确的转义字符是。
A.\\B.\'C.074D.\0
2.填空题
(1)C语言中的逻辑值“真”是用表示的,逻辑值“假”是用表示的。
(2)符号常量的定义方法是。
(3)无符号基本整型的数据类型符为,双精度实型数据类型符为,字符型数据类型符为。
(4)设c='w',a=1,b=2,d=-5,则表达式'x'+1>c,'y'!
=c+2,-a-5*b<=d+1,b==(a=2)的值分别为、、、。
(5)设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为。
(6)判断变量a、b的值均不为0的逻辑表达式为。
(7)求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c的值依次为。
(8)求解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为。
(9)数学式a/(b*c)的C语言表达式。
3.简答题
(1)用户标识符在命名时,应注意哪几个方面?
(2)设inti=1,j=2,k=3;,请写出以下表达式的值及计算后变量i、j、k的值。
①(++i)*(++j)*(++k)②(i++)*(++j)*(k++)
③i=i+j,j=j+k,k=k+i④!
(i=j)&&(j=k)
4.编程题
(1)设长方形的高为1.5,宽为2.3,编程求该长方形的周长和面积。
(2)编写一个程序,将大写字母A转换为小写字母a。
习题三结构化程序设计习题
1.选择题
(1)printf("f=%3.2f%%",3.478);的输出结果是。
A.f=3.48%B.f=3.5%C.f=3.48%%D.f=347.8%
(2)printf("%c,%d",'a','a');的输出结果是。
A.a,97B.a97C.97,aD.97a
(3)scanf("%c",&a);若要给变量输入大写字母A,则以下正确的输入是。
A.'A'B.A\
C."A"D.以上都不对
(4)若一个int类型的数据占2字节,则程序段:
intx=-1;printf("%u,%d",x,x);的输出结果是。
A.65535,-1B.1,65535
C.32767,32768D.32768,32767
(5)在TC中,getchar、putchar、printf、scanf四个函数,均包含在头文件
中。
A.math.hB.stdio.h
C.stbio.hD.stdlib.h
(6)复合语句是用括起来的语句组。
A.()B.[]C.{}D.<>
(7)下列格式符中,哪一个可以用于以八进制形式输出整数。
A.%dB.%8dC.%oD.%ld
(8)下列格式符中,哪一个可以用于以十六进制形式输出整数。
A.%16dB.%8xC.%d16D.%d
(9)a是int类型变量,c是字符变量,下列输入语句中哪一个是错误的。
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;的数据能正确的输出,输出语句应是。
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()
{charc
getchar(c);
putchar('\007');/*鸣笛*/
c=putchar();
(2)以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。
main
{
inta,b,s,l;
scanf("%d,%d",&a,&b);
s=a*b;
l=a+b;
printf("l=%f,s=%f\n",l);
}
3.写出程序运行结果
(1)
main()
{
inta,b;
scanf("%2d%*2s%2d",&a,&b);
printf("%d\n",a+b);
}
运行时输入:
12345678
(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);
}
4.编程题
输入3个整数,计算它们的和与平均值,平均值的结果保留2位小数。
习题四选择结构程序设计习题
1.单项选择题
(1)选择结构程序设计的特点是_______。
A.自上向下逐个执行B.根据判断条件,选择其中一个分支执行
C.反复执行某些程序代码D.以上都是
(2)假定所有变量均已正确定义,下列程序段运行后x的值是______。
a=b=c=0,x=35;
if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
(3)下面的程序片段所表示的数学函数关系是______。
if(x<0)y=-1;
elseif(x>0)y=1;
elsey=0;
(4)下列各语句序列中,能够且仅输出整型变量a、b中最大值的是()。
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)以下程序段的输出结果是
intx=5;
if(x>0)y=1;
elseif(x==0)y=0;
elsey=-1;
printf("%d",y);
A.1B.-1C.0D.2
(6)程序段intx=5,y=8,max;max=(x>y)?
x:
y;printf("%d",max);的输出结果是。
A.5B.8C.3D.13
(7)程序段intx=3,a=1;switch(x){case4:
a++;case3:
a++;case2:
a++;case1:
a++;}printf("%d",a);的输出结果是。
A.1B.2C.3D.4
(8)下列语句应将小写字母转换为大写字母,其中正确的是()。
A.if(ch>='a'&ch<='z')ch=ch-32;
B.if(ch>='a'&&ch<='z')ch=ch-32;
C.ch=(ch>='a'&&ch<='z')?
ch-32:
’’;
D.ch=(ch>'a'&&ch<'z')?
ch-32:
ch;
2.阅读程序,写出运行结果
(1)
voidmain()
{
inta=10,b=4,c=3;
if(a
if(aprintf("%d,%d,%d\n",a,b,c);
}
(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);
}
(3)
intk,a=1,b=2;
k=(a++==b)?
2:
3;
printf("%d",k);
(4)
voidmain()
{
ints=1,k=0;
switch(s)
{
case1:
k+=1;
case2:
k+=2;
default:
k+=3;
}
printf(“%d”,k);
}
(5)
voidmain()
{
ints=1,k=0;
switch(s)
{
case1:
k+=1;break;
case2:
k+=2;break;
default:
k+=3;
}
printf(“%d”,k);
}
3.程序设计题
(1)编一个程序,输入三个单精度数,输出其中最小数。
(2)输入一个实数,输出它的平方根值,如果输入数小于0,输出“输入数据错误”提示。
(3)if语句编程序,输入x后按下式计算y值并输出。
(4)编程序,输入一个百分制的成绩t后,按下式输出它的等级,要求分别写作if结构和switch结构。
90~100为“A”,80~89为“B”,70~79为“C”,60~69为“D”,50~0为“E”。
(5)输入3个整数,按从大到小的顺序输出。
(6)某商场举行购物优惠活动,(x代表购物款,y代表折扣):
x<1600时y=0%,x<2400时y=5%,x<3200时y=10%,x<6400时y=15%,x>=6400时y=20%,输入一个顾客的购物款后,显示它的应付款数。
习题五循环结构程序设计习题
1.单项选择题
(1)for(i=1;i<9;i+=1);该循环共执行了次。
A.7B.8C.9D.10
(2)inta=2;while(a=0)a--;该循环共执行了次。
A.0B.1C.2D.3
(3)执行完循环for(i=1;i<100;i++);后,i的值为。
A.99B.100C.101D.102
(4)以下for语句中,书写错误的是。
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)语句,在循环条件初次判断为假,还会执行一次循环体。
A.forB.whileC.do-whileD.以上都不是
(6)循环结构的特点是。
A.从上至下,逐个执行B.根据判断条件,执行其中一个分支
C.满足条件时反复执行循环体D.以上都对
(7)i、j已定义为int类型,则以下程序段中内循环体的执行次数是。
for(i=5;i;i--)
for(j=0;j<4;j++){…}
A.20B.24C.25D.30
(8)C语言while语句中,用于条件的表达式是。
A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式
(9)inta=1,x=1;循环语句while(a<10)x++;a++;的循环执行。
A.无限次B.不确定次C.10次D.9次
(10)下列程序段执行后s的值为。
inti=1,s=0;while(i++)if(!
(i%3))break;elses+=i;
A.2B.3C.6D.以上均不是
2.填空题
(1)三种循环语句是价的。
(2)当循环体中的switch语句内有break语句,则只跳出语句。
同样,当switch语句中有循环语句,内有break语句,则只跳出语句。
(3)循环体执行遇到continue语句时。
(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出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)输入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",);
if(no1>nmax)nmax=no1;
}
printf("MAX=%fMIN=%f\n",nmax,nmin);
}
(6)输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include
voidmain()
{ints1=0,s2=0
charch;
while(()!
='\n')
{
if(ch>='0'&&ch<='9')s1++;
if(ch>='a'&&ch<='z'||)s2++;
}
}
3.阅读下列程序,写出程序运行的输出结果
(1)
voidmain()
{inty=9;
for(;y>0;y--)
if(y%3==0){printf("%d",--y);continue;}
}
(2)
main()
{
intk,n,m;
n=10;m=1;k=1;
while(k++<=n)
m*=2;
printf("%d\n",m);
}
(3)
voidmain()
{
inti=5;
do
{
switch(i%2)
{
case4:
i--;break;
case6:
i--;continue;
}
i--;i--;
printf("i=%d",i);
}while(i>0);
}
(4)
#include
voidmain()
{
intk=0;char