《C语言程序设计基础》单元总结与练习题及答案

更新时间:2024-05-23 19:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计基础》课程单元总结与单元练习 答案

《C语言程序设计》单元总结与练习题

答 案

《C语言程序设计基础》课程单元总结与单元练习 答案

单元一 程序设计宏观认识

单元总结提升

本单元中,核心内容有C语言程序框架结构、程序的构成和程序开发过程。通过本单元的学习,我们应该知道:

1.C语言程序最基本的程序框架由两部分构成,分别是: (1) 编译预处理 (2) 函数组

2.C程序最大的特点就是所有的程序都是用函数来装配的,函数是构成C语言程序的基本单位,函数包括主函数、库函数和自定义函数。函数的一般结构形式为: 函数返回值类型 函数名(形式参数) //函数首部 { 说明语句; //函数体 可执行语句;

}

3.标识符是用来标识程序中的某个对象名字的字符序列。C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。对于用户自定义标识符的命名C语言规定:

(1) 所有的用户标识符必须先定义后使用;

(2) 用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是 数字 ; (3) 区分大小写;

(4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。

4.理论上讲,程序开发过程分为四个步骤,分别为:

(1) 编辑源程序 (2) 编译源程序,生成目标程序 (3) 连接目标程序及其相关模块,生成可执行文件 (4) 运行可执行文件 5.简单描述使用VC++6.0开发应用程序的步骤:

《C语言程序设计基础》课程单元总结与单元练习 答案

如图所示:

启动VC++6.0 打开或 新建工程 打开或 新建文件 编辑、编译 连接、运行 完成 图 VC++6.0开发程序的步骤 总之,通过本单元的学习,应该掌握C语言程序框架结构和程序开发过程,还要对C语言程序设计的知识脉络有一定的了解。

单元练习

一.选择题

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

二.填空题

《C语言程序设计基础》课程单元总结与单元练习 答案

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)、下划线“_” 字母或下划线

*******************************************************************************

《C语言程序设计基础》课程单元总结与单元练习 答案

单元二 程序设计基础知识

单元总结提升

本单元中,核心内容有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语言程序设计基础》课程单元总结与单元练习 答案

else }

void main( ) { int i;

char string[20],str[3][20]; for(i=0;i<3;i++)

gets(str[i]);

strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[2])); printf(\}

return(s2);

*******************************************************************************

习题答案:

一.选择题

1.D

2.D

3.C

4.C

5.A

二.填空题

1.12,10,10,12

2.*p>*a 3.15

4.*p p-str 5.abba

*******************************************************************************

《C语言程序设计基础》课程单元总结与单元练习 答案

单元九 结构类型的使用

单元总结提升

在本单元中,结构类型数据的含义、结构类型的描述方法、结构类型数据的基本操作是核心内容。通过本单元的学习,我们应该知道:

1.结构类型数据使用的基本步骤为 结构类型说明、 结构类型变量定义 和 结构变量使用 。

2.结构类型说明的关键字为 struct 。结构类型变量所占用内存字节数为结构变量所包含的各个成员变量所占字节数之和 。

3.若定义了一个结构变量和一个指向结构变量的指针,则可以用以下三种形式访问结构成员:

(1)利用结构变量与成员运算符相结合,基本格式为: 结构变量.成员名 。 (2)利用结构指针与成员运算符相结合,基本格式为: (*结构指针).成员名 。 (3)利用结构指针与指向运算符相结合,基本格式为: 结构指针->成员名 。

4. 结构变量不能作为一个整体进行输入和输出,但结构变量作为一个整体可以被复制、赋值、传递参数,以及作为函数返回值。当用结构变量作函数参数进行整体传送时,要将全部成员逐个传送,特别是成员为数组时,将会使传送的时间和空间开销很大,所以一般不将结构变量作为函数参数,而用结构指针变量作函数参数。这时由实参向形参传递的只是地址,从而减少了时间和空间的开销。

通过本单元的学习,应明确结构类型的数据特点,掌握结构类型数据描述和操作的基本步骤和方法。

单元练习

一.选择题

1.以下描述正确的是( )。 A.结构类型中的成员可以是结构类型 B.结构类型的成员不能是指针类型 C.结构类型中各成员共享同一个内存单元 D.在结构类型说明后就立即分配内存空间

《C语言程序设计基础》课程单元总结与单元练习 答案

2.已知如下定义的结构类型变量,若有p=&data,则对data中的成员a的正确引用是

( )。

struct sk {

int a; float b;

}data,*p;

A.(*p).data.a B.(*p).a C.p->data D.p.data.a

3.若有如下定义,则下列输入语句正确的是( )。

struct stu {

int a; int b;

}student;

A.scanf(“%d”,&a); B.scanf(“%d”,&student); D.scanf(“%d”,&student.a);

C.scanf(“%d”,&stu.a);

4.有如下结构类型说明和变量定义,则操作语句正确的是( )。

struct worker { int num; char name[10]; char sex; int age; } s1,s2,t;

A.if(s1.age>s2.age) {t=s1; s1=s2; s2=t; } B.s1={1101,”zhangsan”,’f’,28}; C.gets(&s1.name);

D.printf(“%d,%s,%c,%d”,s1.num,s1.name,s1->sex,s1->age); 5.以下叙述正确的是( )。

A.结构类型说明与结构变量的含义一样,都可以用来存放数据。

B.对于不同类型的数据,若想形成一个有机的整体,可以使用结构类型。 C.可以使用“==”或“!=”对同一个结构类型的两个变量进行整体比较。 D.同一结构类型中的成员变量名称可以相同。

二.填空题

1.若有如下定义:

struct student {

int num; char name[12]; double score;

《C语言程序设计基础》课程单元总结与单元练习 答案

}stu;

则结构类型的关键字是 ,用户定义的结构类型名是 ,用户定义的结构变量是 。 2.若有如下定义:

struct worker {

int num; char name[12]; char sex; int age; }s,*p;

则sizeof(struct worker)的值是 ,变量s所占内存字节数是 ,变量p所占内存字节数是 。 3.若有如下定义:

struct num {

int a; int b; float f;

}n={1,3,5.0}; struct num *pn=&n;

则表达式pn->b/n.a*pn->b的值是 ,表达式(*pn).a+pn->f的值是 。

4.结构数组中存有三个人的姓名和年龄,要输出年龄最大的人的姓名和年龄。将程序补充完整。

#include struct man {

char name[20]; int age;

}person[ ]={\void main( ) {

struct man *p,*q; int old=0;

for(p=person;p ;p++) }

if(oldage) {q=p; ; } printf(\

5. 下面程序的功能是从键盘上输入5个人的年龄、姓名和性别,然后输出。将程序补充完

整。

#include

《C语言程序设计基础》课程单元总结与单元练习 答案

struct man {

char name[20]; int age; char sex[4]; };

void data_in(struct man *p,int n) {

struct man *q= ; for( ;p

void data_out(struct man *p,int n) {

struct man *q= ; for( ;p

void main( ) {

struct man person[5]; data_in(person,5); data_out(person,5); }

printf(\printf(\

scanf(\ , , );

*******************************************************************************

习题答案:

一.选择题

1.A

2.B

3.D

4.A

5.B

二.填空题

1.struct student stu

2.21 21 1 (上机测试) 3.9 6.000000

4.page;

5.p+n p->name,&(p->age),p->sex p+n

*******************************************************************************

《C语言程序设计基础》课程单元总结与单元练习 答案

单元十 文件操作

单元总结提升

在本单元中,如何打开文件、如何读写文件以及如何关闭文件是核心内容。通过本单元的学习,我们应该知道:

1.C语言对文件的操作是通过文件指针实现的,文件指针是系统定义好的结构类型,名称为 FILE ,该类型已在头文件stdio.h中定义,对文件进行操作时,用该类型直接定义文件指针变量即可。定义形式为: FILE *文件指针变量名; 。 2.对文件的操作过程及相应的文件操作函数为: 第一步: 打开文件 ,相应的函数为 fopen() 。 第二步: 读写文件 ,相应的函数为 fputc()/fgetc()等 。 第三步: 关闭文件 ,相应的函数为 fclose() 。 通过本单元的学习,应理解文件指针FILE的含义,重点掌握利用文件指针操作文件的方法,以及文件操作函数的使用方法。

单元练习

一.选择题

1.设fp为FILE类型的指针,要以只写的方式打开文件d:\\data\\file.txt,正确的语句是( )。

A.fp=fopen(“d:\\data\\file.txt”,”w”); B.fp=fopen(“d:\\\\data\\\\file.txt”,”w”); C.fp=fopen(“d:\\data\\file.txt”,”r”); D.fp=fopen(“d:\\\\data\\\\file.txt”,”r”);

2.执行fopen函数时发生错误,则函数的返回值是( )。

A.地址值

B.NULL(0)

C.1

D.EOF(-1)

3.当正确执行了文件关闭操作时,fclose函数的返回值是( )。

A.-1

B.true

C.0

D.1

4.rewind函数的作用是( )。

A.使位置指针重新返回文件的开头 B.使位置指针指向文件所要求的特定位置

《C语言程序设计基础》课程单元总结与单元练习 答案

C.使位置指针从新返回文件的末尾 D.使位置指针自动移到下一个字符位置

5.以下程序想要把键盘输入的字符写到文件data.txt中,直到输入“*”为止,但程序有错误,出错的原因是( )。

#include void main() { }

} fclose(fp); FILE *fp; char ch;

fp=fopen(\ch=getchar(); while(ch!='*') { fputc(fp,ch);

ch=getchar();

A.函数fopen调用形式错误 B.函数fclose调用形式错误 C.函数fputc调用形式错误 D.函数getchar()调用形式错误

二.填空题

1.以下程序功能是:用变量count统计文件中字符的个数。请将程序补充完整。

#include #include void main() { }

FILE *fp; long count=0;

if((fp=fopen(\ ))==NULL) { printf(\不能打开文件.\ exit(0); }

while(fgetc(fp)!=EOF) ; printf(\文件中的字符个数为%ld.\\n\fclose(fp);

2.以下程序的功能是:找出文件file.txt中所有的整数。文本文件file.txt中存有一系列整数,各整数之间以空格、Tab符、回车符分隔。程序中用数组b[]存储不同的整数,变量k为已

《C语言程序设计基础》课程单元总结与单元练习 答案

存入数组b中的不同整数的个数,并假定文件的不同整数个数不超过1000个。请将程序补充完整。

#include #include #define N 1000 void main() { }

FILE ; int b[N],d,i,k;

if((fp= )==NULL) { printf(\不能打开文件.\ exit(0); } k=0;

while(fscanf( )==1) { }

b[k]=d;

for(i=0;b[i]!=d;i++); if(i==k) k++;

;

*******************************************************************************

习题答案:

一.选择题

1.B

2.B

3.C

4.A

5.C

二.填空题

1.\ count++

2.#include

#include #define N 1000 void main() {

FILE *fp ; int b[N],d,i,k;

if((fp= fopen(\{ printf(\不能打开文件.\ exit(0); } k=0;

《C语言程序设计基础》课程单元总结与单元练习 答案

}

while(fscanf(fp,\{ }

b[k]=d;

for(i=0;b[i]!=d;i++); if(i==k) k++;

fclose(fp) ;

*******************************************************************************

本文来源:https://www.bwwdw.com/article/7hx7.html

Top