内容正文:
2.(1)num/10 (2)num%10
3.(1)math.h
(2)a+b>c&&b+c>a&&a+c>b
(3)(a+b+c)/2.0
(4)sqrt(p∗(p-a)∗(p-b)∗(p-c))
(5)%.2f
4.(1)area=π∗r∗r;改成area=3.14∗r∗r;
(2)volume=1/3∗area∗h;
改成volume=1.0/3∗area∗h;
5.#include<stdio.h>
intmain()
{
doublex,xs;intzs;
scanf("%lf",&x);
zs=(int)x;
xs=x-zs;
printf("%.lf=%d+%.lf",x,zs,xs);
}
第三章 基本语句顺序结构程序设计
第一节 基本语句
【知识梳理】
一、表达式语句
分号
二、空语句
只有一个分号
三、复合语句
大括号"{}" 一个整体的语句
【巩固练习】
1.B 2.B 3.B 4.D
5.12 35 35 14
6.3
【拓展练习】
1.C
2.g,d
3.c,c,c 99,99,99
4.x=7,y=3,z=18
5.T
6.0,0,4
7.1,0,4
8.16
43,3,10
【技能实践】
1.x=2.80,y=8.20
x=8.20,y=2.80
2.2 2 3 2
3 3 2 1
3.getchar() c1+32
4.&x (int)(x∗100+0.5)/100.0
5.#include<stdio.h>
intmain()
{ intn;
printf("请输入一个四位正整数:");
scanf("%4d",&n);
printf("%d%d%d%d
",n%10,n%100/
10,n%1000/100,n/1000);
}
第二节 数据输入与输出
【知识梳理】
一、字符数据的输入输出函数
1.getchar();
2.putchar(c); 字符型或整型
二、格式化输入输出函数
(1)printf(格式控制[,输出表列]);
(2)scanf(格式控制,地址表列);
空格 TAB键 回车键
#include<stdio.h>或#include“stdio.h”
【巩固练习】
1.-1023.012,□-1023.012
2.1
3.18
4.14
5.579
6.0000032767 32767
7. 1
1 1
1 1
8.x=123,y=45.000000
9.不确定值
10.1
2
3
4
【拓展练习】
1.20,10,3
2.i=5,j=83.521.86A,B
31
总复习方案参考答案
3.
4.
5.a=12,b=345
6.c=A
【技能实践】
1.
2.6.6 .2f
3.(1)A改a,并增加定义语句floatb;
(2)scanf("%d";a);改scanf("%d",&a);
(3)b=3.14后加;
4.scanf(“%d%d”,&a,&b);
s=a∗b;
c=2∗(a+b);
printf(“area=%d,perimeter=%d
”,s,c);
第三节 顺序结构程序设计
【知识梳理】
一、头文件
2.include
3.#include<stdio.h> #include“stdio.h”
4..h
5.(2)平方根函数 x 指数函数xy 指数函数ex
对数函数lnx 绝对值函数|x| 浮点数绝对值
函数|x| 正弦函数sinx 余弦函数cosx
正切函数tanx 反正切函数arctanx
(3)判断是否是字母或数字字符 判断是否是字母
字符 判断是否是字母字符
判断是否是大写字母字符 判断是否是小写字母
字符
将小写字母转换为大写字母 将大写字母转换为
小写字母
(4)求串长 串中小写字母转为大写字母 串中大
写字母转为小写字母
串逆序 串连接 串复制或串拷贝 串比较
二、随机函数的用法
3.rand()%51+50 rand()%90+10 rand()%
900+100
rand()%(n-m+1)+m 2∗rand()%51 3%
rand()%34+1
rand()%10+48 rand()%26+65 rand()%26+97
三、顺序结构程序设计
书写顺序 逐条
【巩固练习】
1.1,3,1 49,51,49
2.x=7,y=3
z=18
3.x=20,x=17
4.6
YES!
a=4,b=6,c=8
5.#include<stdio.h>
intmain()
{ inta,b;
scanf("%d,%d",&a,&b);
printf("a=%d,b=%d
",a,b);
printf("%d+%d=%d
",a,b,a+b);
printf("%d-%d=%d
",a,b,a-b);
printf("%d∗%d=%d
",a,b,a∗b);
printf("%d/%d=%d
",a,b,a/b);
printf("%d∗%d+%d∗%d=%d
",a,a,
b,b,a∗a+b∗b);
}
【拓展练习】
1.(1)#definePRICE15
(2)sum=PRICE∗num
2.#include<stdio.h>
intmain()
{ inta;
printf("请输入一个两位正整数:");
scanf("%d",&a);
printf("个位数%d∗十位数%d=%d",a%
10,a/10,a%10∗(a/10));
41
单招零距离计算机专业综合下册
单招零距离·计算机专业综合·下册
米米PROGRAM关米米米并米米*/
兴兴兴米兴*关米*兴**米¥头头米END*兴兴*米兴****兴兴/
第二节
数据输人与输出
知识体系
%⑤
字符数据的输入输出函数Putchar函数(字符输出函数)
getchar函数(字符输入函数)
数据输入输出
printf函数(格式输出函数)
格式化输入输出函数
scanf函数(格式输入函数)
知识梳理
85
一个完整的程序,都应该含有数据输入/输出操作。将原始数据输入,经程序处理后,输出
有用的信息。C语言程序的输入输出功能是由系统提供的输入输出标准函数实现的。常用
的输入输出标准函数有两类:格式化输人输出函数和字符输入输出函数。
一、字符数据的输入输出函数
l.getchar()函数先将输入字符放到缓冲区里,等待回车键,当敲入回车键后才能获取所
输入的字符并把结果回显到显示器上。其一般形式为:
2.putchar函数的作用是向终端输出一个字符。其一般形式为:
:它的作用是
输入变量c的内容,c可以是
变量。
二、格式化输出输出函数。
1.格式化输入/输出函数
(1)printf()函数
printf()函数的一般形式为:
,它的作用是向终端(显示
屏)输出若干个任意类型的数据。
"格式控制"是用双撇号括起来的字符串,也称”转换控制字符串”,它包括两部分:①格式
说明:格式说明由"%"和格式字符组成,如%d,%c等,作用是将输出的数据转换为指定的格
式输出:②普通字符:普通字符即为原样输出的字符。
"输出表列"是需要输出的一些数据,可以是表达式,也可以是变量。用"[门"括起来表示内
容可以省略,当省略该项时,pitf()函数仅输出"格式控制"中的内容,注意双撇号不输出;输
·36·
总复习方案·第三章基本语句与顺序结构程序设计
出项有多项时,之间必须用逗号作为分隔符。
(2)scanf函数
scanf()函数的一般形式:
,"格式控制"的含义同printf
函数;"地址表列"是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
scanf处理输入数据时,遇到下列情况时该数据认为结束:
一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:
2.输入格式串和输出格式串用法如下表所示:
格式字符
说明
d
以带符号的十进制整数形式输人输出整数
0
以八进制无符号形式输入输出整数
x.X
以十六进制无符号形式输入输出整数
以无符号十进制形式输入输出整数
以字符形式输人输出
输入输出字符串
以小数形式输入输出单、双精度数
e.E
以指数形式输入输出实数,用eE时指数以"e"或"E"表示
选用%f或%格式中输入输出宽度较短的一种格式,用G时,指数
g.G
以大写表示。输出时将小数点后末尾无用的0过滤掉。
1,L
用于长整型整数,可加在格式符d,o,x,u前面
m(代表一个正整数)
数据最小宽度
n(代表一个正整数)
对实数,表示输入输出位小数;对字符串,表示截取的字符个数
输出的数字或字符在域内向左靠
表示本输入项在读入后不赋给相应的变量
典例精析
@Y⑤
【例1】用scanf("%4d%4d%c%c%f%f%*f%f",&a,&b,&chl,&.ch2,&x,&y,&-z);
输入数据,使a=22,b=44,ch1=‘A’,ch2=‘z’,x=2.24,y=一4.5,z=12.3。请问在键盘上
如何输入?(建议可用符号“☐”表示空格,“”表示回车)
程序如下:
#include<stdio.h>
int main()
int a,b;
float x,y,z:
char chl,ch2;
scanf("%4d%4d%c%c%f%f%*f%f",&a,&b,&.chl,&.ch2,&.x,&y,&.z):
printf("%4d%4d%c%c%f%f%f",a,b,chl,ch2,x,y,z);
·37·
单招零距离·计算机专业综合·下册
【分析】按照scanf格式控制符可以确定各个变量类型,在输入a,b值时,它们的格式均
为%4d,当为和b输入的值不足4位时,需要在输入的数据间添加能分隔数据的符号,比如
空白符等。例如,在输入22之前两先输入两个空格,输入44之前,先输入两个空格。对于%
*f是用来禁止赋值的,因此可以任意输入一个实数(例如3.1),该值不会赋给任何变量。
【答案】
程序运行时可按如下方式输入数据:
☐☐22☐☐44Az2.24☐-4.5☐3.1☐12.3
(符号“☐”表示空格,“”表示回车)
当然也可以按下列方式实现同样目标:
22☐☐44Az2.24-4.5-3.1☐12.34
22☐44Az2.24-4.5☐3.1☐12.3
【例2】以下程序输出结果是
#include<stdio.h
int main()
{inta=4,b=127,c=-5:
float x=12.3456,y=-246.135;
char ch='B';
1ongn=7654321;
unsigned u=65535;
printf("%d\t%d\t%d
",a,b.c);
printf("%-3d%2d%3d
",a,b,c);
printf("%f.%f n",x,y)
printf("%8.2f,%-8.2f,%4f,%.4f
",x,y,x,y):
printf("%e,%10.2e
",x,y);
printf("%c,%d,%0,%x
".ch,ch,ch,ch);
printf("%ld,%lo.%lx
",n,n,n)
printf("ou,%0,%x,%din",u,u,u.u);
【分析】注意第3行的输出结果为“12.345600,一246.134995”,与程序中定义的值不同,
主要原因有两个,一是C编译系统通常把实型常量按双精度处理,将实型常量赋值给一个单
精度变量时需要将双精度数据转换为单精度数,然后赋值给单精度变量,这种转换会损失精
度;二是十进制数小数转换为二进制小数时也会损失精度。
【答案】
4
127
-5
4127-5
12.345600,-246.134995
12.35,-246.13,12.345600.-246.1350
1.234560e+001,-2.46e+002
B,66,102,42
7654321,35145661,74cbb1
65535,177777,ffff.65535
·38·
总复习方案·第三章基本语句与顺序结构程序设计
【例3】以下程序输出结果是
#include<stdio.h
int main()
printf("%s,%3s,%.2s
","Chinese","Chinese","Chinese");
printf("%8.2s,%5.6s,%-8.2s
","Chinese","Chinese","Chinese");
【分析】%m.ns:输出占m列,但只取字符串中左端n个字符;这n个字符输出在m列
的右侧,左补空格。%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限
制,将字符串全部输出;若串长小于m,则左补空格。%一ms:如果串长小于m,则在m列范围
内,字符串向左靠,右补空格。%一m.ns:其中m、n含义同上,n个字符输出在m列范围的左
侧,右补空格:如果n>m,则自动取n值,即保证n个字符正常输出。
【答案】Chinese,Chinese,Ch
Ch,Chines,Ch
【例4】以下程序输出结果是
#include "stdio.h"
int main()
int x=0x22,y=0xA2;
printf("%d,%0,%x,%X
",x,x,x,x)
printf("%d,.x,%#X
",y,y,y,y);
【分析】%共。是以数字0开始,之后为对应的八进制数;%共x是以0x或者0X开始,
之后为对应的十六进制数。
【答案】34,42,22,22
162,0242,0xa2,0XA2
巩固练习
Y⊙
1.执行下列程序片段时输出结果是
f1oatx=-1023.012;
printf("%08.3f,",x);
printf("%10.3f",x);
2.执行下列程序片段时输出结果是
int x=13,y=5;
printf("%d",x%=(y./=2)):
3.下列程序的输出结果是
#include <stdio.h
int main (
{intx=023:
printf("%d",--x):
·39·
单招零距离·计算机专业综合·下册
4.执行下列程序片段时输出结果是
int x=5,y;
y=2+(x+=x++,x+8,++x):
printf("%d",y);
5.若运行时输入:12345678,则下列程序运行结果为
#include <stdio.h>
int main (
int a,b;
scanf("%2d%*2d%3d",&a,&.b);
printf("%od
",a+b);
}
6.执行下列程序后的输出结果为
#include <stdio.h
int main()
{intn=32767;
printf("%010d\t",n);
printf("%10d小n",n);
7.执行以下列程序后输出结果为
#include <stdio.h
int main()
char x='1';
printf("%3c
",x):
printf("%62c%2c
",x.x):
printf("%1c%4c
",x,x):
}
8.执行下面程序,如果从键盘输人数据1234567890,则下列程序运行结果为
#include <stdio.h
int main()
int x;float y:
scanf("%3d%f",&.x.&-y):
printf("x=%d,y=%fn",x,y):
9.执行下面程序,如果从键盘输入数据7,8,9,则下列程序运行结果为
#include <stdio.h
int main()
int xl,x2,x3;
scanf("%d,%d,%d",&.xl,&x2,&.x3):
printf("%d",x1+x2+x3);
·40·
总复习方案·第三章基本语句与顺序结构程序设计
10.执行下列程序后,运行结果为
#include <stdio.h
int main()
{
char d1=1,d2=2,d3=3,d4=4:
printf("%1c
",d1);
printf("%2c
",d2);
printf("%3c
",d2);
printf("%04c
",d4);
2
拓展练习
Y⊙
1.以下程序运行时,若从键盘输入205010,则输出的结果是
#include <stdio.h>
int main()
{
int i,j,k;
i=j=k=3:
scanf("d%*dod",81,&.j,&.k);
printf("%d,%d.%d",i,j,k);
}
2.用下面的scanf函数输人数据,使i=5,j=8,x=3.5,y=21.86,c1=A',c2=B。问在
键盘上如何输入?
#include <stdio.h>
int main()
int i.j;
float x,y;
char cl,c2:
scanf("i=%d,j=%d",8.i,8.j);
scanf("f%e",&.x.&.y);
scanf("%c,%c",&.cl,&.c2);
printf("%d,%d,%f,%e,%c,%c",i,j,x,y.cl,c2):
}
3.程序阅读题:
#include<stdio..h≥
int main()
int i=5,j=8;
float x=35.8764,y=-786.123:
·41…
单招零距离·计算机专业综合·下册
printf("%d%d
",i,j):
printf("%3d%-3d
",i.j);
printf("f%An",x,y);
printf("%-10f%-1of
",x,y)
printf("%-10.2f%10.2f%3f%3f%.4f%-.4fn",x,x,yy,x,y):
printf("%e%10.2e%-10.2en",y,y,x):
4.程序阅读题:
#include <stdio.h>
int main()
char c=A';
unsigned u=65535;
printf("%c,%d,%0,%x
",c.c,c,c):
printf("%u,%0.%x,%d
",u,u,u,u):
printf("%s,%5.2s","COMPUTER","COMPUTER"):
printf("%-5.2s,%.3s
","COMPUTER","COMPUTER");
5.以下程序输入123456<CR>后的执行结果是
#include <stdio.h
int main(
{
int a,b;
scanf("%2d%3d",&.a,&.b):
printf("a=%od,b=%d
",a,b);
6.以下程序输入ABC<CR>后的执行结果是
#include <stdio.h
int main()
{
char c;
scanf("%3c",&.c);
printf("c=%c
",c);
技能实践
⊙
1.程序阅读题:
#include "stdio.h"
#include "string.h"
int main()
int x=0x23,y=0xc2;
·42·
总复习方案·第三章基本语句与顺序结构程序设计
char s]="ab\659\tc\bd\x61g";
printf("d,%0,%x,%x
",x,x,x,x);
printf("%d,x,%#X
",y.y.y,y);
printf("size=%d,len=%d
",sizeof(s),strlen(s));
puts(s);
2.下列程序的输出结果是16.00,请填空使程序完整。
#include <stdio.h
int main (
int a=9,b=2;
float x=
,y=1.1,z;
z=a2+b¥x/y+12:
printf("%
n",z):
}
3.程序改错题:
#include<stdio.h
int main()
关***关米0**米米0f0und***关米米米/
int A;
:**米米米米000米*弟f0und米*弟米*米*
scanf("%d";a);
/著**米米000米米弟*「0und**0**关米/
b=3.14
printf("a=%d,b=%.2f",a,b);
}
4.程序设计题:从键盘输入矩形的长和宽,求该矩形的面积和周长。
#include<stdio.h
int main()
int a,b,s,c;
/关并*关并关兴*关*关BEGIN米米*米米*关米*米*
/兴关¥¥¥¥兴兴米米米END兴关¥¥*¥兴¥兴关米/
·43·