14.请写出数学式的C语言表达式__________.
15.C语言中运算结果可以当成逻辑值使用的表达式有:
__________表达式、__________表达式、__________表达式、__________表达式、__________表达式和__________表达式
第三章基本结构程序设计
一、基本内容
1.程序结构:
是指程序中语句的执行顺序。
2.三种基本结构:
顺序结构、选择结构和循环结构。
3.赋值语句:
一般形式为变量赋值运算符表达式;
功能:
将表达式的值或将变量和表达式进行指定的运算后赋予变量。
其中:
赋值运算符有=,*=,/=,%=,+=,-=,&=,|=,^=,>>=,<<=(共11个)
举例:
x=1;y=1;z=x+y;z%=x+y;等
4.系统函数(库函数):
系统提供了大量的函数,这些函数存储在函数库中,在程序中使用这些函数时,要先说明。
对库函数的说明都保存在“头文件”中。
即只要在程序开始写上:
#include"头文件"或#include<头文件>
如:
#include"stdio.h"
#include"string.h"
5.字符输入函数:
getchar()从键盘上读取一个字符。
举例:
ch=getchar();
6.字符输出函数:
putchar(ch)输出字符ch到显示器上。
举例:
putchar('A');putchar('\n');putchar('\x41');
7.格式输入函数:
scanf("格式字符串",变量地址表)依据格式串的格式要求输入若干个数据,按“变量地址表”中变量的顺序,依次存入对应的变量。
常用的格式说明如下:
%d、%o、%x、%u、%md、%mo、%mx、%mld、%mlo、%mlx、%f、%e、%c、%s等
举例:
scanf("%d",&n)输入一个整数保存在变量n中。
scanf("%d%d%d",&a,&b,&c)输入三个整数(空格或回车分隔)保存在变量a,b,c中。
scanf("%f,%f",&x,&y)输入两个实数(逗号分隔)保存在变量x,y中。
8.格式输出函数:
printf("格式字符串",表达式表)按自右向左的顺序计算各表达式的值,然后按“格式字符串”中规定的格式输出到显示器上。
输出格式字符详见教材。
9.程序调试:
包括输入源程序清单,编辑修改源程序,编译和连接源程序生成可执行的程序,运行程序,从运行结果判断程序的正确性。
10.选择控制语句:
①if(表达式)语句;
②if(表达式)语句1;else语句2;
③if(表达式1)语句1;
elseif(表达式2)语句2;
……
elseif(表达式n)语句n;
else语句n+1;
④switch(表达式)
{case常量表达式1:
语句组1;break;
case常量表达式2:
语句组2;break;
……
case常量表达式n:
语句组n;break;
default:
语句组n+1;
}
11.循环控制语句:
①while(表达式)语句
②do语句while(表达式);
③for(表达式1;表达式2;表达式)语句
④break和continue
12.多重循环:
是由嵌套的循环结构组成的,是指在某个循环语句的循环体中含有另一个循环语句。
外面的循环语句称为“外层循环”,外层循环语句的循环体中的循环语句称为“内层循环”。
二、习题
(一)单项选择题
1.设a=3,b=4,执行printf("%d,%d",(a,b),(b,a);的输出是_____
①3,4②4,3③3,3④4,4
2.使用scanf("x=%f,y=%f",&x,&y);要使x,y均为1.25,正确的输入是_____
①1.25,1.25②1.251.25③x=1.25,y=1.25④x=1.25y=1.25
3.设有inti=010,j=10;则printf("%d,%d\n",++i,j--);的输出是_____
①11,10②9,10③010,9④10,9
4.执行scanf("a=%c,b=%c",&a,&b);后使a为'A',b为'B',从键盘上的正确输入是_____
①'A''B'②'A','B'③A=A,B=B④a=A,b=B
5.设x,y,z,t均为int型变量,则执行以下语句后,t的值为_____
x=y=z=1;t=++x||++y&&++z;
①不定值②2③1④0
6.启动TurboC的命令是_____
①TC②C③TURBO-C④TURBOC
7.假定所有变量均已正确定义,下列程序段运行后x的值是_____
a=b=c=0;x=35;
if(!
a)x--;elseif(b);if(c)x=3;elsex=4;
①34②4③35④3
8.下面的程序片段所表示的数学函数关系是_____
y=-1;
if)x!
=0)if(x>0)y=1;elsey=0
①②③④
9.下列语句中,错误的是_____
①while(x=y)5;②dox++while(x==10);
③while(0);④do2;while(a==b);
10.循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);的循环执行_____
①无限次②不确定次③4次④3次
11.若i,j已定义为int类型,则以下程序段中内循环体的执行次数是_____
for(i=5;i;i--)
for(j=0;j<4;j++){…}
①20②24③25④30
12.假定a和b为int型变量,则执行以下语句后b的值为_____
a=1;b=10;
do{b-=a;a++;}while(b--<0);
①9②-2③-1④8
13.设x和y均为int型变量,则执行下面的循环后y的值为_____
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
①2②4③6④8
14.在C语言中,下列说法正确的是_____
①不能使用“do语句while(条件)”的循环
②“do语句while(条件)”的循环必须使用“break”语句退出循环
③“do语句while(条件)”的循环中,当条件为非0时将结束循环
④“do语句while(条件)”的循环中,当条件为0时将结束循环
15.若有以下程序段,w和k都是整型变量,则不能与左边程序段等价的循环语句是_____
……①for(w=k;w!
=0;w--)printf("*");
w=k;②w=k;
LB:
if(w==0)gotoLE;do{w--;printf("*");
w--;}while(w!
=0);
printf("*");③w=k;
gotoLB;while(w--!
=0)printf("*");w++;
LE:
④for(w=k;w;--w)printf("*");
(二)填充题
1.结构化程序设计规定的三种基本结构是__________结构、选择结构和__________结构。
2.若有定义语句inta=25,b=14,c=19;以下语句的执行结果是____________________
if(a++<=25&&b--<=2&&c++)printf("***a=%d,b=%d,c=%d\n",a,b,c);
elseprintf("###a=%d,b=%d,c=%d\n",a,b,c);
3.以下两条if语句可合并为一条if语句为________________________________________
if(a<=b)x=1;________________________________________
elsey=2;
if(a>b)printf("***y=%d\n",y);
elseprin