admin 管理员组文章数量: 887021
2023年12月16日发(作者:如何使用frequency函数)
.
第一章
【随堂练习1-2】
1. 下面哪些标识符属于合法的用户自定义标识符:
Main、void、_num、my$、a*、N4、3m、a-2
答:合法的用户自定义标识符是:Main、_num、N4
2. 结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。
答:关键字:void、int
预定义标识符:include、main、printf、scanf
用户自定义标识符:a、b、c
3. 分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。
答:函数首部: void main( ),其中函数返回值类型为void、函数名为main、形式参数无;
函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。
3.标识符是用来标识程序中的某个对象名字的字符序列。C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。对于用户自定义标识符的命名C语言规定:
(1) 所有的用户标识符必须先定义后使用;
(2) 用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是 数字 ;
(3) 区分大小写;
(4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。
4.理论上讲,程序开发过程分为四个步骤,分别为:
(1) 编辑源程序
(2) 编译源程序,生成目标程序
(3) 连接目标程序及其相关模块,生成可执行文件
(4) 运行可执行文件
Word资料
.
一. 单元练习
一.选择题
1.构成C语言程序的基本单位是( )。
A.框架 B.预处理 C.函数 D.语句
2.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为( )。
A.编辑 B.编译 C.连接 D.运行
3.关于主函数,下列说法不正确的是( )。
A.一个完整的C语言应用程序有唯一的主函数
B.主函数的名称只能是main
C.主函数可以被其他自定义函数调用
D.C语言程序的运行从主函数开始,以主函数为核心展开
4.关于标识符,下列说法不正确的是( )。
A.库函数名称为预定义标识符,不建议用作用户自定义标识符
B. 关键字不能作为用户自定义标识符
C.用户自定义标识符中不区分大小写字母
D.标识符中可以出现下划线,且可以出现在标识符的任意位置
5.以下可用作用户自定义标识符的一组是( )。
A.void、return、if
B.printf、include、fabs
D.2abc、pay$、sum-10 C.Max、_abc、Main
二.填空题
1.C语言程序一般由若干个函数构成,程序中应至少包含一个_________,其名称只能为_________。
2.C语言程序中每条语句必须以_________结束。
3.C语言程序的注释是以_________开头,以________结束的,在VC++6.0编程环境中,可使用_________作为注释的起始标识,注释对程序的执行不起任何作用。
4.最初编写的C语言程序称为_________,其扩展名为_________,编译后生成的文件为_________,其扩展名是_________,连接后生成的文件是_________,其扩展名是_________。
.
.
5.C语言规定,标识符只能由_________、_________和_________三种字符组成,而且,首字符只能是_________或_________。
*******************************************************************************
习题答案:
一.选择题
1.C 2.B 3.C 4.C 5.C
二.填空题
1.主函数 main
2.分号;
3./* */ //
4.源程序 .cpp或.c
序) .exe
目标文件(或目标程序) .obj 可执行文件(或可执行程5.字母(A~Z,a~z)、数字(0~9)、下划线“_” 字母或下划线
*******************************************************************************
第二章
1.单元总结
本单元中,核心内容有C语言中基本的数据类型、常量和变量、运算符和表达式以及算法的概念。通过本单元的学习,我们应该知道:
1.C语言中最基本的数据类型有: 整型、字符型、浮点型 。
2.C程序中使用的常量按照表现形式可分为直接常量和符号常量。
(1)直接常量
1)整型常量,有十进制、八进制和十六进制三种描述方式,其中,八进制的前置符号标志为 0 ,十六进制的前置符号标志为 0x或0X 。
2)浮点型常量,有十进制小数和指数两种描述方式,指数形式的符号标志是 e或E 。
3)字符型常量,是用单撇引号括起来的单一字符,对一些特殊字符和控制字符用
的形式表示。
4)字符串常量,是用双撇引号括起来的一串字符序列。字符串的结束标志为 ‘0’ 。
(2)符号常量
符号常量是使用某个符号代表的常量,符号常量使用编译预处理中的宏定义命令
定义。
.
.
3.C程序中使用变量,必须先 定义 ,后 使用 。变量定义后,系统会根据变量的类型分配相应的存储空间。
4.C语言有丰富的运算符,其中算术运算符包括+、-、*、/、%,运算符中的 仅用于整数间的运算;赋值运算符包括“=”和相应的复合赋值运算符 +=、-=、*=、/= ,赋值运算的含义是将“=”右侧的表达式的计算结果赋值给“=”左侧的变量,这与数学中“=”的含义不同,需要注意。
5.由运算符和数据构成表达式,若表达式中各数据的类型不同,则存在类型自动转换问题,必要时也可以使用强制类型转换。
6.对于面向过程的程序设计来说,程序= 数据结构 + 算法 。
7.在C语言中,对于每一个程序设计单元可采用结构化程序设计方法,有三种基本的程序结构,分别为: 顺序 、 选择 和 循环 。
通过本单元的学习,应该掌握C语言程序设计所需要的基本知识,为后续内容的学习打下坚实的基础。
一. 单元练习
一.选择题
1.在C语言中,int、short、char三种类型数据所占用的存储空间是( )。
A.均为2个字节
B.int和short占2个字节,char占1个字节
D.由用户自己定义 C.与编译环境有关
2.下面定义字符型变量ch的语句不正确的是( )。
A.char ch=‘X2A’;
C.char ch=65;
B.char ch="c";
D.char ch=NULL;
3.已知大写字母A的ASCII是65,小写字母a的ASCII是97,以下不能将字符型变量c中的大写字母转换成对应的小写字母的语句是( )。
A.c=
(c-'A')%26+'a';
C.c=
c-'A'+'a';
B.c2=tolower(c);
D.c=('A'+c)%26-'a';
4.设有定义:double d,h;,其中d为三角形的底边长,h为三角形的高,则以下C语言表达式与其面积公式1dh计算结果不相符的是( )。
2B.1/2*d*h C.d*h*1/2 D.d/2*h A.d*h/2
.
.
5.以下选项中,与k=n++;完全等价的语句是( )。
A.k=n;n=n+1; B.n=n+1;k=n; C.k=++n; D.k+=n+1;
二.填空题
1.写出整型变量a、无符号长整型变量b、双精度浮点型变量c和字符型变量d的定义语句:
。
2.常量‘a’和”a”分别占用_____个字节和_____个字节的存储空间。
3.有定义 int a=1234;,获取其百位数码的表达式为________________________。
4.若有定义:char a=97,c;,则表达式c='a'+'8'-'3'的值为_________。
5.已知int x=6;,则执行x+=x-=x-3;语句后,x的值是_________。
6.将一个浮点型变量n四舍五入精确到小数点后两位,其表达式为: 。
7.C语言中基本的数据类型有 、 、 。
8.结构化程序设计中基本的程序结构有 、 、 。
*******************************************************************************
习题答案:
一.选择题
1.C 2.B 3.D 4.B 5.A
二.填空题
1.int a; unsigned long b; double c; char d;
2.1 2
3.a/100%10
4.f
5.6
6.((int)(n*100+0.5))/100.0;
7.整型、浮点型、字符型
8.顺序、选择、循环
*******************************************************************************
第三章 顺序结构程序设计
.
.
一. 单元总结
本单元中,核心内容是顺序程序结构程序设计中标准输入输出库函数的使用。通过本单元的学习,我们应该知道:
1.C语言提供了标准输入输出库函数用于实现数据输入输出操作,其对应的头文件为
stdio.h 。
2.单字符输入和输出函数分别为 getchar() 和 putchar() 。
3.格式化输入和输出函数分别为 scanf() 和 printf() 。
4.格式化输出函数有两种调用格式:
(1) printf("字符串常量");
(2) printf("格式控制字符串",输出项列表);
5.格式化输入/输出中,格式控制符由 % 开头。常用的格式控制符有:整型int格式符 %d 、float浮点型格式符 %f 、double浮点型格式符 %lf 、字符型格式符 %c ;对于浮点型格式可以用 m.n 形式的附加格式说明小数的宽度和小数位数。
6.格式化输入中的输入项为地址列表,对变量取地址的运算符为 & 。
通过本单元的学习,应对顺序结构程序设计的特点和设计思路有所了解,同时重点学会单字符输入函数getchar()、单字符输出函数putchar()、格式化输出函数printf()和格式化输入函数scanf()的正确使用。
三.单元练习
一.选择题
1.已定义x为float型变量,其值为213.45678,则printf("%-4.2fn",x);的输出结果为( )。
A.213.46
C.-213.45
B.213.45
D.输出格式控制说明的域宽不够,不能输出
2. 有以下程序,程序运行时输入:1,2,3<回车>,则输出的结果为( )。
#include
void main( )
{ int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("a+b+c=%dn",a+b+c);
}
.
.
A.6 B.a+b+c=6 C.123 D.不确定的值
3.下面输入语句中,正确的是( )。
A.scanf("a=b=%d",&a,&b); B.scanf("%d,%d",&a,&b);
C.scanf("%c",c); D.scanf("%d %dn",&f1,f2);
4.在VC++6.0环境中,下列说法正确的是( )。
A.输入函数scanf()输入多个数据时,有时数据间不必加间隔符。
B.输入函数scanf()中单精度或双精度浮点型数据都要用%f作为格式控制符。
C.使用输出函数printf()输出字符或字符串都用格式控制符%s。
D.输出函数printf()中单精度或双精度浮点型数据都要用%f作为格式控制符。
5.下面程序的功能是实现两个字符变量互换值,若为ch1输入a,ch2输入b,则程序运行时正确的输入是( )。
#include
void main( )
{ char ch1,ch2,ch;
scanf("%c%c",&ch1,&ch2);
ch=ch1;ch1=ch2;ch2=ch;
printf("ch1=%c,ch2=%cn",ch1,ch2);
}
A.a,b B.a<空格>b C.ab D.a<回车>b
二.填空题
1.有语句putchar(getchar()),程序运行时输入:A,则输出结果是____________。
2.printf("%6.2f%%",1.0/3);的输出结果是____________。
3.补充程序: int n1=10,n2=20; printf(" ",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始。
n1=0010
n2=0020
4.有以下程序,程序运行时输入:1234<回车>,执行后输出的结果是_________________。
#include
void main( )
{ char ch1,ch2;
int n1,n2;
ch1=getchar();
.
.
ch2=getchar();
n1=ch1-’0’;
n2=n1*10+(ch2-’0’);
printf("n1=%d,n2=%d.n",n1,n2);
}
5. 输入多个非字符型的数值数据时,数据输入时可用 、 和 作为间隔符。
*******************************************************************************
习题答案:
一.选择题
1.A 2.D 3.B 4.A 5.C
二.填空题
1.A
2.0.33%
3.n1=%04dnn2=%04d
4.n1=1,n2=12
5.空格,TAB键,回车
*******************************************************************************
四 选择结构程序设计
一. 随堂练习
【随堂练习4-1】
1.当a=3,b=2,c=1时,判断例4-1中条件表达式的值?
(1)a>b==c 真 (2)a=b 2.当r的值为3时,判断下列条件表达式的值。 (1)r==3 真 (2) r=4 真 (3)0 3.整型变量n为偶数的关系表达式为 n%2==0 。 【随堂练习4-2】 1.判断字符变量ch的值为大写字母的逻辑表达式为: ch>=’A’&&ch<=’Z’ 。 2.判断某一年份是否为闰年。闰年是符合以下条件的年份:能被4整除但不能被100整除,或者能被400整除。若用整型变量year 表示年份,则闰年的逻辑判断表达式为: . . year%4==0&&year%100!=0||year%400==0 。 【随堂练习4-3】 1.以下程序段的运行结果是 x=20,y=20 。 int x=10,y=20; if(x x=y; y=x; printf(“x=%d,y=%d”,x,y); 2.以下程序段的功能是计算一个整数的绝对值,将程序补充完整。 int n; scanf(“%d”,&n); if(n<0) n=-n; printf(“该整数的绝对值是%d.”,n); 【随堂练习4-4】 1.以下程序可判断指定的年份是否为闰年,补充完整。 int year,f; //f是闰年的标志位,year表示年份 scanf(“%d”,&year); if(year%4==0&&year%100!=0||year%400==0) f=1; else f=0; if( f==1 ) printf(“%d年是闰年。”,year); else printf(“%d年不是闰年。”,year); 2.以下程序用于判断输入的字符是否为字母,补充完整,然后将程序改写成仅一对if-else的形式。 char ch; ch=getchar( ); if( ch>=’A’&&ch<=’Z’ ) printf(“%c是字母。”,ch); else if(ch>=’a’&&ch<=’z’ ) printf(“%c是字母。”,ch); else printf(“%c不是字母。”,ch); . . 改成一对if-else的形式: char ch; ch=getchar( ); if( ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’ ) printf(“%c是字母。”,ch); else printf(“%c不是字母。”,ch); 【随堂练习4-6】 1.输入1~7之间的任意数字,输出其对应的星期几的英文,如输入5,程序输出Friday。若输入1~7以外的数字,则提示输入错误。 参考程序代码如下: #include void main( ) { int m; printf("请输入1~7任意数字:"); scanf("%d",&m); switch(m) { } } case 1:printf("Monday");break; case 2:printf("Tuesday");break; case 3:printf("Wednesday");break; case 4:printf("Thursday");break; case 5:printf("Friday");break; case 6:printf("Saturday");break; case 7:printf("Sunday");break; default:printf("输入错误!"); 二. 单元总结 在选择结构程序设计中,条件判断表达式和选择结构实现语句是两个核心内容。通过本单元的学习,我们应该知道: . . 1.条件判断表达式由关系运算符及其表达式、逻辑运算符及其表达式构成,其中: (1) 关系运算符有: > 、 < 、 >= 、 <= 、 !=、 == (2) 逻辑运算符有: &&、||、 ! 2.选择结构实现语句有三种方式: (1) 单分支if选择结构,一般格式为: if ( 表达式 ) { 语句;} (2) 双分支if-else选择结构,一般格式为: if ( 表达式 ) { 语句1;} else { 语句2;} (3) 多分支 switch选择结构,一般格式为: switch( 表达式 ) { case 常量表达式1: [语句序列1;] [break;] case 常量表达式2: [语句序列2;] [break;] …… } case 常量表达式n: [语句序列n;] [break;] default: 语句序列n+1; 3.在应用选择结构时,应注意以下问题: (1)在if嵌套语句中,要弄清else与if的匹配关系,书写if语句嵌套时一般采用缩进的阶梯式写法,在实际编程中,为了表明编程者的意图,也常常通过“{}”来强制if和else的配对关系。 (2)switch语句中,“表达式”和“常量表达式”的类型只能是整型或字符型数据,且“常量表达式”只能由常量构成,通过“表达式”与“常量表达式”之间的对等关系构造出多分支选择结构。 (3)在某些多分支选择结构程序设计中,既可使用if-else语句实现,也可以使用switch语句实现。switch语句与if语句的不同之处在于:switch语句仅能判断一种逻辑关系,即“表达式”和指定“常量表达式”的值是否相等,而不能进行大于,小于某一个值的判断,不能表达区间数据的概念;if语句可以计算和判断各种表达式。所以switch语句不能完全替代if语句。 . . 总之,通过本单元的学习,应该掌握C语言选择结构程序设计的思路和语句的基本用法。 三.单元练习 一.选择题 1.以下选项中,当x为大于1的奇数时,值为0的表达式( )。 A.x%2==1 B.x/2 C.x%2!=0 D.x%2==0 2.在C语言中,if语句后的一对圆括号中有一个用以决定分支走向的表达式,该表达式(A.只能是关系表达式 B.只能是逻辑表达式 C.只能是关系或逻辑表达式 D.可以是任何合法表达式 3.读下面程序段,当x=-3时,输出y的值为( )。 int x,y; y=0; scanf(“%d”,&x); if(x>=0) if(x>0) y=1; else y=-1; printf(“y=%d”,y); A.1 B.-1 C.0 D.不确定 4.下列语句将小写字母转化为大写字母,正确的语句为( )。 A.if(’z’>=ch>=’a’) ch=ch-32; B.if(ch>=’a’&&ch<=’z’) ch=ch-32; C.ch=(’z’>=ch>=’a’)?ch-32:ch; D.ch=( ch>=’a’&&ch<=’z’)?ch:ch-32; 5.关于与switch语句配套的case语句中所使用的表达式,说法正确的是( )。 A.可以是变量 B.可以是常量或变量 C.只能是常量或常量表达式 D.无论是何种表达式,只要在执行时有确定的值就行 二.填空题 . )。 . 1.在算术运算符、关系运算符、逻辑运算符和赋值运算符中,运算优先级最高的运算符是 ,最低的是 。
版权声明:本文标题:《C语言程序设计》复习参考答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702699718h427296.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论