第一章C语言概述习题附答案

合集下载

国家开放大学C语言程序设计章节测试参考答案

国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。

(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。

(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。

(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。

(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。

(√)3.C语言中使用的字符常量,其起止标记符是()。

a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。

a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。

a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。

a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。

a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。

a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。

a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。

a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。

a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。

a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个 main函数。

c) 在C语言中,输出操作是有库函数 printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为 main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。

《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案

《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。

它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。

1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。

其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。

1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。

每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。

1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。

通过运算符和表达式可以进行各种数值计算和逻辑判断。

第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。

整型数据类型可以表示整数值,并具有不同的取值范围。

2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。

浮点型数据可以表示较大或较小的数值,并具有一定的精度。

2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。

字符型数据可以用于表示各种字符(包括字母、数字、符号等)。

2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。

c语言程序设计第三版谭浩强课后习题及答案

c语言程序设计第三版谭浩强课后习题及答案

c语言程序设计第三版谭浩强课后习题及答案C语言程序设计是一门基础而重要的编程课程,谭浩强教授的《C语言程序设计》第三版是许多高校计算机专业学生的必修教材。

课后习题是检验学生对课程内容掌握程度的重要手段,以下是部分习题及答案的示例。

# 第一章:C语言概述习题1:简述C语言的特点。

答案: C语言是一种结构化编程语言,具有以下特点:1. 简洁、紧凑、贴近硬件。

2. 丰富的运算符和数据类型。

3. 具有结构化控制语句。

4. 支持模块化程序设计。

5. 可移植性好。

习题2:为什么说C语言具有“高级语言”的特点?答案: C语言被称为高级语言,因为它:1. 抽象了机器语言的复杂性。

2. 允许使用变量名代替内存地址。

3. 提供了丰富的控制结构和数据类型。

4. 支持高级的编程概念,如函数、数组和指针。

# 第二章:数据类型、运算符和表达式习题3:写出C语言中的基本数据类型。

答案: C语言中的基本数据类型包括:- 整型:`int`- 浮点型:`float` 和 `double`- 字符型:`char`习题4:解释赋值运算符的右结合性。

答案:赋值运算符的右结合性意味着当多个赋值运算符出现在同一个表达式中时,它们将从右向左进行计算。

例如,在表达式 `a = b = c;` 中,首先计算 `b = c`,然后将结果赋值给 `a`。

# 第三章:控制语句习题5:描述if语句的基本用法。

答案: if语句用于基于条件执行代码块。

基本语法如下:```cif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```其中条件是一个表达式,如果其值为真(非零),则执行if块中的代码;如果为假(零),则执行else块中的代码。

习题6:举例说明for循环的使用。

答案: for循环用于重复执行一段代码,直到给定条件不再满足。

基本语法如下:```cfor (初始化表达式;条件表达式;更新表达式) {// 循环体}```例如,打印0到9的数字:```cfor (int i = 0; i < 10; i++) {printf("%d ", i);}```以上是部分习题及答案的示例。

c语言课本习题及解答

c语言课本习题及解答

第一篇习题及解答本篇按教材上的章目,先对各章所附的习题进行解答,给出参考答案;然后按各章内容给出各类课外习题,并对习题进行了解答,给出参考答案;接着编写了假期作业并进行了解答,供大家参考选用;最后还有4套综合性的模拟试卷及解答,供我们在学习中检测自己的学习效果。

本篇所有内容中,涉及到编程、设计、算法等问题时,可能不会有唯一解,给出的解也不一定是最好的解法。

所以对这些答案只能用于参考,启发我们的思维。

第一章概论教材上习题一解答1.什么是结构化程序设计方法?参考答案:结构化程序设计强调程序设计风格和程序结构的规范化。

结构化程序设计方法的基本思路是,把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

其具体做法是:自顶向下,逐步求精,模块化设计和结构化编码。

2.什么是面向对象程序设计方法?参考答案:面向对象的设计方法, 是在近年来、软件工程研究领域中有益成果的基础上发展起来的一种软件设计方法。

它集抽象性、封闭性、继承性、多态性于一体,•将传统软件中的数据和操作, 组合成易于赋予语义的对象, 使软件设计中人们普遍遵循的模块化、信息隐藏、抽象、代码共享等思想,•在面向对象语言机制的帮助下, 得以充分实现。

3.C语言是在什么语言的基础上发展起来的?当初设计它的目的是什么?参考答案:1971 年, Ken Thompson 在 PDP-11/20 计算机上实现了 B 语言, 并用该语言书写了系统软件─ UNIX 操作系统和一些应用程序。

为了很好地适应系统程序设计的要求,在1972─1973年间,贝尔实验室的Dennis •M. Ritchie在B语言的基础上再发展,重新设计了一种新的、通用程序设计语言,取BCPL的第二个字母C,称为C语言。

现在人们一般都认为C语言是美国贝尔实验室的D. M. Ritchie 在1972年设计实现的。

UNIX 操作系统提供一种高级语言工具,但C语言本身并没有被束缚在任何特定的操作系统和特定的硬件之上,它具有良好的可移植性。

c语言课后答案

c语言课后答案

《C程序设计》课外作业及参考答案说明:(1)章节顺序按照PowerPoint电子教案;(2)教材上的作业注明了章节和题号;(3)所用教材是《C程序设计(第二版)》谭浩强清华大学出版社;第一章C语言概述1.1 简答题:写出C语言的主要特点(教材习题1.1)。

1.2填空题:1.C语言与操作系统并称“栾生兄弟”。

2.C语言俗称为形式。

3.C源程序文件经过处理后产生目标文件,目标文件经处理后生成可执行文件。

1.3 单项选择题1. 以下说法中正确的是。

(A)C语言程序总是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main函数中定义(C)C语言程序总是main函数开始(D)C语言程序中的main函数必须放在程序的开始部分2. 以下正确的C标识符是。

(A)_125 (B)C# (C)C++ (D)A$1.4 多项选择题1. 以下关于C语言的说法中,错误的是。

(A)俗称为“低级语言的高级形式”,因此功能简单(B)不是结构化程序设计语言(C)可能直接访问内存(D)语法限制不严2. 以下标识符属于C语言关键字的有。

(A)integer (B)else (C)include (D)while第二章C语言基本数据类型、变量、常量与表达式2.1简答题1.求下面算术表达式的值。

(教材习题3.9)a)x+a%3*(int)(x+y)%2/4设x=2.5, a=7, y=4.7b)(float)(a+b)/2+(int)x%(int)y设a=2, b=3, x=3.5, y=2.52.写出下面程序的运行结果。

(教材习题3.10)main(){ int i, j, m, n;i=8; j=10; m=++i; n=j++;printf("%d,%d,%d,%d", i, j, m, n);}3.写出下面表达式运算后a的值,设原来a=12。

设a和n已定义为整型变量。

(教材习题3.12)a)a+=a b) a-=2 c) a*=2+3b)d) a/=a+a e) a%=(n%=2), n的值等于5 f) a+=a-=a*=a4.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?2.2 填空题1. 写出下面各逻辑表达式的值。

C语言习题集(平时练习含答案)1

C语言习题集(平时练习含答案)1

C语言习题集第一章C语言概述复习要点:1. 程序的构成,main函数和其他函数。

2.语句,注释3.运行C程序的步骤和方法习题:1.C程序是由函数构成的,一个C程序中至少包含一个main函数。

2.函数是C程序的基本单位。

(最小单位是表达式)3.C程序有且只有一个main函数。

4.C程序从main函数开始执行。

5.C程序注释符是由/*和*/组成,且不能嵌套使用。

6.C程序的语句是以; 结束。

7.C程序一条语句可分多行写,需要以为连接符。

(可以直接换行)8.C程序可以用{ 和} 将多条语句括起来,形成复合语句。

9.上机运行一个C程序必须经过源代码输入,编译,连接,运行4个步骤。

10.C程序的源文件扩展名是。

c 。

11.以下叙述中正确的是(C)A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,main必须小写,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数12.以下叙述中错误的是(D)A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令13.以下不是语句的是(A)A) a=10 B)a=b+c;c=20;C) ; D){a=b;b++;}14.运行以下程序main(){int a=10; /* 定义一个变量 aa=20; */printf(“%d”,A); 此程序应该改写为:printf(“%d”,a)}输出的结果是 B 。

A) 10 B)2015.牢记VC++6.0的出错提示英文提示中文实际意义missing ; , ( { 等表示缺少;,( {'T' : undeclared identifier T没有定义(T要先定义然后才能使用)'sqrt' undefined; sqrt如果是函数名则表示它的头文件没有包含'T' : redefinition T重复定义(可能是多次定义了T)Cannot open include file 头文件的拼写或路径的不对第二章数据类型,运算符与表达式复习要点:1. C的数据类型(整型,字符型,浮点型)及其定义方法。

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。

#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。

C语言全部章节习题集(参考答案)

C语言全部章节习题集(参考答案)
}
选择结构答案
一、单项选择题
1.B 2.A 3.D 4.C 5.D 6.B 7.C
二、填空题
1. 5 5 4
5 5 4
3 3 4
2. 4 0
3. VeryGood
Good
VeryGood
A. 8 B. 4 C. 2 D. 出错
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( D )。
A. 4 B. 3 C. 2 D. 1
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
{ float a,b,temp;
printf("input a and b:");
scanf("%d,%d",&a ,&b);
temp = a; a = b; b = temp;
printf("a=%d , b=%d\n", a , b);
scanf(“%f”,&t);
if(t>=90) ch=’A’;
else if(t>=80) ch=’B’;
24、下列不正确的转义字符是( C )。
A. \\ B. \' C. 074 D. \0
二、填空题:
1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。

C语言程序设计-第一章C语言概述练习题【附答案】

C语言程序设计-第一章C语言概述练习题【附答案】

C语言程序设计-第一章C语言概述练习题第一章 C语言概述1.1 选择题【题1.1】一个C程序的执行是从 。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束【题1.2】以下叙述正确的是 。

A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误【题1.3】以下叙述不正确的是 。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面【题1.4】C语言规定:在一个源程序中,main函数的位置 。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后【题1.5】一个C语言程序是由 。

A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成1.2填空题【题1.6】C源程序的基本单位是【 】。

【题1.7】一个C源程序至少应包括一个【 】。

【题1.8】在一个C源程序中,注释部分两侧的分界符分别为【1】和【2】。

【题1.9】在C语言中,输入操作是由库函数【1】完成的,输出操作是由库函数【2】完成的。

C语言程序设计-第一章答案第一章 C语言概述【题1.1-1.5】 ACDCB【题1.6】函数【题1.7】主函数(或:main函数)【题1.8】【1】/*【2】*/【题1.9】【1】scanf【2】printf。

《C语言程序设计》第1章 C语言概述练习题答案

《C语言程序设计》第1章 C语言概述练习题答案

第一章 C语言概述练习题一、选择题1.C语言是一种( )。

A) 机器语言B) 汇编语言C)高级语言D) 低级语言2.下列各项中,不是C语言的特点是( )。

A)语言简洁、紧凑,使用方便B) 数据类型丰富,可移植性好C) 能实现汇编语言的大部分功能D)有较强的网络操作功能3.下列叙述正确的是()。

A)C语言源程序可以直接在DOS环境中运行B)编译C语言源程序得到的目标程序可以直接在DOS环境中运行C) C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D)Turbo C系统不提供编译和连接C程序的功能4.下列叙述错误的是()。

A)C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符C) C程序中的变量必须先定义,后使用D)C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写5.一个C程序的执行是从( )。

A)本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束6.以下叙述不正确的是()。

A)一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面7.C语言规定:在一个源程序中,main函数的位置( ).A)必须在程序的开头B)必须在系统调用的库函数的后面C)可以在程序的任意位置D)必须在程序的最后8.一个C语言程序是由()。

A)一个主程序和若干个子程序组成B)函数组成C)若干过程组成D)若干子程序组成9.以下有4组用户标识符,其中合法的一组是()。

A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define10. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。

C语言基础知识习题答案——第一章

C语言基础知识习题答案——第一章

第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。

这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。

这个题目考察用户标识符的概念。

4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。

16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D 中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D对于++、--单目运算符来说,其运算对象可以是char型、int型和float 型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B 中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D 中,%(求余运算符)运算对象只能是整形数。

(完整版)C教材习题答案(1-8章)

(完整版)C教材习题答案(1-8章)
#include <stdio.h>
main()
{
int score;
char ch;
printf("请输入一个百分制分数:");
scanf("%d",&score);
if(score>100 || score<0){
printf("非法输入!\n");
return 0;
}
switch(score/10) {
#include<math.h>
main(){
float s=0;
int i,j,n,t;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1;i<=n;i++){
t=1;
for(j=1;j<=i;j++)
t*=j;
s+=1.0/t;
}
printf("%.2f\n",s);
}
2.输出100以内所有能被13和17整除的数。
#include<stdio.h>
main(){
int i;
for(i=1;i<=100;i++)
if(i%13==0 || i%17==0)
printf("%4d",i);
}
3整元换零钱问题。把5元兑换成1角,2角,5角的硬币,一共有多少种换法,编写求解此问题。
printf("5角:%d个\t2角:%d个\t1角:%d个\n",i,j,k);
n++;

C语言课后习题答案(第1-8章)

C语言课后习题答案(第1-8章)

C语言课后习题答案(第1-8章)1.有的编程题答案有多种,只给出一种参考答案。

2.结合课本学习编程思想与技巧。

第一章C语言概述一、简答题1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C 语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。

2.顺序结构,分支结构,循环结构3.所谓算法就是为解决一个问题而采取的方法和步骤。

算法的特性:有穷性、确定性、输入、输出、可行性。

表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。

二、算法1.瓶子A里盛有醋瓶子B里盛有酱油有一个空瓶C将A中的醋倒入C将B中的酱油倒入A将C中的醋倒入B2.输入一个数放在a中max = a以下步骤重复9次:输入一个数放在a中如果a>max,max=a打印max的值3.如果a<b< bdsfid="85" p=""></b<>temp=aa=bb=temp如果c>atemp = aa=cc=temp否则如果c>btemp=bb=cc=temp打印a,b,c的值4.i=1sum=0以下程序循环100遍: sum=sum+i i=i+1 打印sum 的值5.如果(n 除以3的余数为0 并且 n 除以5的余数为0)n 能够同时被3和5整除否则 n 不能够同时被3和5整除 6.i=101以下语句循环50遍:j=2 flag=1 当j<(i 除以2的整数部分)时循环以下语句:如果i 除以j 的余数为零flag=0 退出该循环如果flag==1 打印i 的值 i=i+2 7.如果m做以下循环,直到m,n 能够被i 整除:如果m 能够被i 整除并且n 能够被i 整除 i 即是m 和n 的最大公约数跳出循环否则 i=i-1 打印i 的值8.data=b*b —4*a*c 如果data >0否则如果data=0 x1=x2=—b/2 否则无实数解三、编程题1.main () { a data b x 2)(1+-=adata b x 2)(2--=printf(“How do you do?\n”);printf(“##############################\n”);}2.main(){int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“sum=%d”,a+b+c);}第二章数据类型与表达式一、单项选择题1. B2. C3. A4. A5. D6. B7.A8.C9.D二、写出下列程序的运行结果1.aabb cc abcAN2.ab97983. 9,11,9,104.a=2,b=3,c=25.s1=2.500000s2=3三、编程题main(){char c1='c',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}第三章顺序程序设计选择题1)B 2)D 3)D 4)A 5)A 6)B 7)B 8)A 9)D 10)C 11)D 12)A填空题1)b 2)261 3)25 21 37 4)abc 5)5.0,4,c=3 6)3编程题#define PI 3.1415926main( ){float h, r, l, sv, sz ;printf(“请输入圆的半径r,圆柱高h:\n”) ;scanf(“%f,%f”,&r, &h) ;l=2* PI *r ;s= PI *r*r ;sv=3.0/4.0* PI *r*r*r ;sz= PI *r*r*h ;printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2f\n”, l, s) ;printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2f\n”, sv, sz) ;}2、main( ){float c, f ;printf(“请输入一个华氏温度:\n”) ;scanf(“%f”, &f) ;c=5.0/9.0*(f-32) ;printf(“摄氏温度为:%6.2f\n”, c) ;}第四章循环程序设计一、选择题1.D2.D3.D4.C5.D6.A7.B8.B9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D21.A二、填空题1.5858582.03.184.89215.20,06.67.1,3,28.Year%400==0year%100!=0count++三、编程题1.main(){long a;scanf(“%ld”,&a);if (a>=10000&&a<=99999) printf(“这是个五位数”);else if (a>=1000&&a<=9999) printf(“这是个四位数”);else if (a>=100&&a<=999) printf(“这是个三位数”);else if (a>=10&&a<=99) printf(“这是个二位数”);else if (a>=0&&a<=9)printf(“这是个一位数”);elseprintf(“输入错误”);}3.main(){int a;int g,s,b;//个位、十位、百位printf("水仙花数有:\n"); for(a=100;i<=999;a++){g=a%10;s=a/10%10;b=a/100;if (a==g*g*g+s*s*s+b*b*b) printf("%d ",a);}printf("\n");}4、main(){int i,n;printf("input n:");scanf("%d",&n);printf("\n%d=",n);for(i=2;i<=n;i++){while(i!=n)if(n%i==0){printf("%d*",i);n/=i;} else break;}printf("%d\n",n);}5、#include “stdio.h”main(){char c;int w,x,y,z;w=x=y=z=0;while((c=getchar())!=’\n’){if((c>’a’&&c<’z’)||(c>’A’&&c<’Z’)) w++;else if (c==’’)x++;else if (c>’0’&&c<’9’)y++;else z++;}printf(“英文字母个数:%d\n”,w); printf(“空格个数:%d\n”,x);printf(“数字个数:%d\n”,y);printf(“其他字母个数:%d\n”,z); }6、main(){float h=100,t=100;int j;for(j=1;j<10;j++){t=t/2;h=h+t*2;}printf(“共经过:%f 米\n”,h); printf(“第十次反弹%f 米\n”,t/2); }第五章数组一、单项选择题1. B2. A3. C4. C5. D6. B7.C8.B9.C 10. B二、写出下列程序的运行结果1.S=3682.*************************3.S1=18S2=104.!margorP5.数字0的出现次数是:3数字1的出现次数是:2数字2的出现次数是:2数字3的出现次数是:2数字4的出现次数是:0数字5的出现次数是:1数字6的出现次数是:1数字7的出现次数是:1数字8的出现次数是:1数字9的出现次数是:1 三、编程题1.#include "stdio.h" main(){int a[11];int i,j,t;printf("input 10 number:\n");for (i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for (i=1;i<=9;i++)for (j=1;j<=10-i;j++)if (a[j]<a[j+1])< bdsfid="320" p=""></a[j+1])<> {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("the sorted number is:\n");for (i=1;i<11;i++)printf("%4d",a[i]);}2.#include "stdio.h"main(){int a[11],i,b;printf("imput 10 sorted number:\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("input an integer:\n");scanf("%d",&b);for (i=9;i>=0&&a[i]>b;i--)a[i+1]=a[i];a[i+1]=b;printf("sorted numbers:\n");for (i=0;i<11;i++)printf("%5d",a[i]);}3.#include "stdio.h"main(){int a[5],i,j,t;printf("input 5 integer:\n");for (i=0;i<5;i++) /*输入5个整数*/scanf("%d",&a[i]);for (i=0,j=4;i<="" bdsfid="348" p="">{t=a[i];a[i]=a[j];a[j]=t;}for (i=0;i<5;i++) /*逆序存放后重新输出*/printf("%5d",a[i]);}4.#include "stdio.h"main(){int i,j,a[10][10]={{1},{1,1}};for (i=2;i<10;i++) /*给二维数组每个元素赋值*/ {a[i][0]=1; for (j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for (i=0;i<10;i++) /*输出二维数组*/{for (j=0;j<=i;j++)printf("%-5d",a[i][j]);printf("\n");}}5.#include "stdio.h"main(){int a[3][4],i,j,max,row,col;printf("input 3*4 matrix:\n");for (i=0;i<3;i++) /*输入3*4矩阵*/for (j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0]; row=0; col=0;for (i=0;i<3;i++) /*寻找矩阵中的最大值及其行列号*/ for (j=0;j<4;j++)if (max<a[i][j])< bdsfid="376" p=""></a[i][j])<>{max=a[i][j]; row=i, col=j;}printf("\n数组中最大的数是%d,其行号是%d,列号是%d\n",max,row,col);}6.#define N 3#define M 4#include "stdio.h"main(){int a[N][M],i,j,k,max,row,col;printf("input %d*%d matrix: \n",N,M);for (i=0;i<="" bdsfid="387" p="">for (j=0;j<m;j++)< bdsfid="389" p=""></m;j++)<>scanf("%d",&a[i][j]);for (i=0;i<="" bdsfid="392" p="">{max=a[i][0]; row=i; col=0;for(j=1;j<a[i][j])<="" *求矩阵中每一行的最大值及其所行列号*="" bdsfid="395" if="" p="">{max=a[i][j]; col=j;}for (k=0;k<max)<="" *判断每一行的最大值在其所在列是否最大*="" bdsfid="398" if="" p="">break;if (k==N) /*得到鞍点*/{printf("the point is %d,row=%d,col=%d\n",max,row,col);break;}}if (i==N) /*没有鞍点*/printf("no point\n");}7.#include "stdio.h"{int num=0,word=0;/*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/char c;printf("please input a string :\n");while ((c=getchar())!='\n')if (c==' ')word=0;else if (word==0){word=1; num++;}printf("There are %d words in the line\n",num);}8.#include "stdio.h"main(){int i,j,uppn,lown,dign,span,othn;/*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}9.#include "stdio.h"{int i,j;char str1[20],str2[20];printf("input two strings:\n");gets(str1);gets(str2);j=strlen(str1); /*求字符串1的长度*/for (i=0;str2[i]!='\0';i++,j++) /*字符串合并*/ str1[j]=str2[i];str1[j]='\0'; /*加上字符串结束标志*/puts(str1);}10.#include "stdio.h"main(){int i,n;char str1[20],str2[20];printf("input two strings:(no more than 20 characters)\n"); gets(str1); gets(str2);n=strlen(str1)printf("%d\n",str1[i]-str2[i]);}第六章函数与编译预处理一、单项选择题1. C2. B3. B4. B5. A6. B7.A8.C9.D 10. A二、写出下列程序的运行结果1.92.4,B8,B3.-4.0000004.a=6,b=55.48三、编程题1.main(){ int prime(int n);int n;printf("input n(n>0):\n");scanf("%d",&n);if (prime(n))printf("%d is a sushu\n",n);else printf("%d is not a sushu\n",n); }int prime(int n){int flag=1,i;for (i=2;i<=n/2&&flag==1;i++)if (n%i==0) flag=0;return(flag);}2.#define N 3convert(int array[3][3]){ int i,j,t;for (i=0;i<n-1;i++)< bdsfid="507" p=""></n-1;i++)<> for (j=i+1;j<n;j++)< bdsfid="509" p=""></n;j++)<> {t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){int i,j;int a[N][N];printf("input a:\n");for (i=0;i<n;i++)< bdsfid="520" p=""></n;i++)<>for (j=0;j<n;j++)< bdsfid="522" p=""></n;j++)<> scanf("%d",&a[i][j]);printf("Array a:\n");for (i=0;i<n;i++)< bdsfid="526" p=""></n;i++)<> {for (j=0;j<n;j++)< bdsfid="528" p=""></n;j++)<> printf("%5d",a[i][j]);printf("\n");}convert(a);printf("a de zhuanzhi is:\n");for (i=0;i<n;i++)< bdsfid="535" p=""></n;i++)<>{for (j=0;j<n;j++)< bdsfid="537" p=""></n;j++)<>printf("%5d",a[i][j]);printf("\n");}}3. #include#includemain(){char str[100];printf("input a string:\n") ;gets(str);inverse(str);printf("the reversed string is:%s\n",str);}inverse(char str[]){char t;int i,j;for (i=0,j=strlen(str)-1;i<j;i++,j--)< bdsfid="558" p=""></j;i++,j--)<>{t=str[i];str[i]=str[j];str[j]=t;}4. #includeconcat(char str1[],char str2[]){ int i=0,j;while (str1[i]!='\0')i++;for (j=0;str2[j]!='\0';i++,j++)str1[i]=str2[j];str1[i]='\0';}main(){char str1[100],str2[100];gets(str1);gets(str2);concat(str1,str2);puts(str1);}5. main(){char str[80];printf("input a string (4 ge shu zi zi fu):\n"); scanf("%s",str); insert(str);printf("result is:\n%s\n",str);}insert(char str[]){int i;for (i=strlen(str);i>0;i--){str[2*i]=str[i];str[2*i-1]=' ';}6. #include "stdio.h"int i,ndight,nwhite,nletter,nother;count(char str[]){ndight=nwhite=nletter=nother=0;for (i=0;str[i]!='\0';i++)if (str[i]>='0'&&str[i]<='9')ndight++;else if ((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')) nletter++;else if (str[i]==' ')nwhite++;else nother++;}main(){char text[80];printf("input a string:\n");gets(text);count(text);printf("ndight=%d,nletter=%d,nwhite=%d,nother=%d\n",n dight,nletter,nwhite,nother); }7. #define N 10#includesort(char str[]){int i,j;char t;for (i=1;i<n;i++)< bdsfid="625" p=""></n;i++)<>for (j=0;j<n-i;j++)< bdsfid="627" p=""></n-i;j++)<> if (str[j]>str[j+1]){t=str[j];str[j]=str[j+1] ;str[j+1]=t;}}main(){char str[N];int i ;printf("Input 10 ge zi fu:\n");gets(str);printf("The sorted result:\n") ;for(i=0;i<n;i++)< bdsfid="639" p=""></n;i++)<> printf("%c",str[i]);}8.这题较复杂#include#include#define N 10void input_e(int num[],char name[N][8]){int i;for (i=0;i<n;i++)< bdsfid="651" p=""></n;i++)<> { printf("input gong hao:");scanf("%d",&num[i]);printf("input name:");getchar();gets(name[i]);}for (i=0;i<n;i++)< bdsfid="659" p=""></n;i++)<> printf("%5d%10s\n",num[i],name[i]);}void sort(int num[],char name[N][8]) /*选择法排序*/{int i,j,min,temp1;char temp2[8];for (i=0;i<n-1;i++)< bdsfid="666" p=""></n-1;i++)<> {min=i;for (j=i+1;j<n;j++)< bdsfid="669" p=""></n;j++)<>if (num[j]temp1=num[i];strcpy(temp2,name[i]);num[i]=num[min];strcpy(name[i],name[min]);num[min]=temp1;strcpy(name[min],temp2);}printf("the sorted result:\n");for (i=0;i<n;i++)< bdsfid="681" p=""></n;i++)<>printf("%5d%10s\n",num[i],name[i]);}void search(int n,int num[],char name[N][8]) /*折半查找法*/ { int top,bott,mid,find;bott=N-1;if ((nnum[N-1]))find=-1;while ((find==0)&&(top<=bott)){mid=(bott+top)/2;if (n==num[mid]){find=1; printf("%d name is:%s\n",n,name[mid]);}else if (n<num[mid])< bdsfid="695" p=""></num[mid])<> bott=mid-1;else top=mid+1;}if ((find==-1)||(find==0))printf("%d is not found.\n",n);}main(){int num[N],number,c,flag;char name[N][8];input_e(num,name);sort(num,name);for (flag=1;flag;){printf("please input chazhao de gonghao:"); /*输入查找的工号*/ scanf("%d",&number);search(number,num,name);printf("continue Y/N?"); /*是否继续查找*/getchar();c=getchar();if (c=='N'||c=='n')flag=0;}}9. #include "stdio.h"#define MAX 10main(){char str[MAX];char c;int i;i=0;printf("input number(16 jinzhi): "); /*输入一个十六进制的数*/while((c=getchar())!='\n'&&i<max)< bdsfid="727" p=""></max)<>{ str[i]=c;i++;printf("result is :%d\n",htod(str));}int htod(char s[]){int i,n;n=0;for(i=0;s[i]!='\0';i++){if (s[i]>='0'&&s[i]<='9')n=n*16+s[i]-'0';if (s[i]>='a'&&s[i]<='f')n=n*16+s[i]-'a'+10;if (s[i]>='A'&&s[i]<='F')n=n*16+s[i]-'A'+10;}return(n);}10. #define SW AP(a,b) t=a;a=b;b=t main(){int a,b,t;printf("input a,b:") ;scanf("%d,%d",&a,&b);SW AP(a,b);printf("result:a=%d,b=%d\n",a,b);}11. #define SURPLUS(a,b) ((a)%(b)) main(){int a,b;printf("input a,b:");scanf("%d,%d",&a,&b);printf("result is: %d\n",SURPLUS(a,b)); } 12. main(){int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%d\n",max(a,b,c));}int max(int x,int y,int z){int t;t=(x>y ? x : y);return(t>z?t:z);}#define MAX(x,y) ((x)>(y)?(x):(y)) main(){int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%d\n",MAX(MAX(a,b),c)); }13. #include "stdio.h"#define CHANGE 1#define MAX 80main(){char str[MAX];int i;printf("input a string:\n");gets(str);#if (CHANGE){ for (i=0;str[i]!='\0';i++)if (str[i]>='a'&&str[i]<'z'||str[i]>='A'&&str[i]<'Z')str[i]=str[i]+1;else if (str[i]=='z'||str[i]=='Z')str[i]=str[i]-25;}#endifprintf("%s\n",str);}第七章指针一、选择题1)A 2)D 3)D 4)C 5)B 6)B 7)B 8)C 9)B 10)C 11)A 12)A 13)A 14)C 15)B 16)A 17)C 18)B 19)D 20)B二、阅读下面程序,写出程序运行结果1)abcdeedcba 2)1113151719 3)(TurboC中是11,9 7,11 )(VisualC是9,9 7,11)4)3 6 5)6385三、编程题1、main( ){ int a[10],i,temp,*p=a;printf("Please input array a:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]);printf("array a:\n");for(i=0;i<10;i++)printf("%4d",a[i]);for(i=0;i<5;i++){ temp=p[i];p[i]=p[10-i-1];p[10-i-1]=temp;}printf("\n Now array a:\n");for(i=0;i<10;i++)printf("%4d",a[i]);}2、main( ){ int a[3][3],*p,i,j;printf("please input matrix:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++)scanf("%d",&a[i][j]);p=&a[0][0];move(p);printf("\n Now matrix:\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%4d",a[i][j]);printf("\n");}}move(int *q){ int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){ t=*(q+3*i+j);*(q+3*i+j)=*(q+3*j+i); *(q+3*j+i)=t;}}3、#include#include。

第1章 c语言概述(习题答案及解析)

第1章 c语言概述(习题答案及解析)

习题1 参考答案一、选择题1.1 C 分析:简单程序设计步骤为:确定数据结构、确定算法、编码、调试、整理文档,不包括安装编译程序,故答案为C选项。

1.2 D 分析:一个算法应该具有以下五个重要的特征:有穷性,确定性,输入,输出以及可行性,故答案选D选项。

1.3 A 分析:编译就是把高级语言变成计算机可以识别的二进制语言,不经过编译的源程序是不能运行的,A选项正确。

算法不一定要包含所有三种基本结构,也可以只包含一种或两种,B选项错误。

结构化程序主要由3种基本控制结构组成,循环结构、选择结构、顺序结构,它们组成的算法结构可以解决任何复杂的问题,C选项错误。

算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量,D选项错误。

1.4 A 分析:计算机只能识别机器语言,不能直接识别由高级语言编写的程序,答案为A选项。

1.5 A 分析:C语言程序必须要定义main()函数,B选项错误;只有同时包含三种基本结构时,程序才是结构化程序,C选项错误;程序中的语法错误在编译时能显现,排除D选项,答案选A。

1.6 A 分析:计算机只能识别机器码,机器码是由二进制构成的,因此只能识别二进制构成的代码程序,不可以直接识别由十六进制代码构成的程序,十六进制的代码必须转为二进制才能在计算机上直接执行。

因此选项A错误。

1.7 A 分析:书写风格良好的程序易读性好,方便团队合作,分模块来完成复杂的程序设计,B选项叙述正确。

但是书写风格与程序执行效率无关,程序执行效率与程序的数据结构有关,由算法的时间复杂度和空间复杂度决定,A选项叙述错误。

C语言程序书写规范中,良好的书写习惯中一般一行上写一条语句,这样方便阅读,但是一行写多条语句是符合C程序编写规则的,C选项叙述正确。

C程序允许将一条较长的语句分写在多行,D选项叙述正确。

叙述中错误的是A选项,故选择A选项。

1.8 A 分析:程序中,注释可以出现在程序的任何位置,B选项错误;注释中间不能嵌套另一个注释,C选项错误;注释内容不影响程序编译,D选项错误,答案为A选项。

第一章C语言概述习题附答案

第一章C语言概述习题附答案

第一章C 语言概述一、单选题1、C语言程序的执行,总是起始于()。

CA.程序中的第一条可执行语句B.程序中的第一个函数C.main 函数D.包含文件中的第一个函数分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main 函数开始,并且在main 函数中结束。

本题正确答案为C。

2、C 语言程序的基本单位是()。

CA)程序行B)语句C)函数D)字符3、C 语言中规定:在一个源程序中main 函数的位置()。

CA.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后4、以下述叙正确的是()。

CA.在C 程序中,main 函数可有可无B.C 程序的每行中只能写一条语句C.C 语言本身没有输入输出语句D.在对一个C 程序进行编译的过程中,可发现注释中的拼写错误5、能将高级语言编写的源程序转换为目标程序的是()。

CA.链接程序B.网络程序C.编译程序D.WORD字处理程序6、下列说法中正确的是()。

CA)C程序书写时,不区分大小写字母B)C程序书写时,一行只能写一个语句C)C程序书写时,一个语句可分成几行书写D)C程序书写时每行必须有行号分析:C语言严格区分大小写字母,如"A1"和"al"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。

本题正确答案为C。

7、下面对C 语言特点,不正确描述的是()。

CA)C语言兼有高级语言和低级语言的双重特点,执行效率高B)C语言既可以用来编写应用程序,又可以用来编写系统软件C)C语言的可移植性较差D)C语言是一种结构式模块化程序设计语言分析:C 语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C 语言既可以编写应用程序,又可以开发系统软件,而且C 程序可移植性好于汇编语言,程序清晰具有模块化的特点。

c语言第五版课本课后习题答案

c语言第五版课本课后习题答案

c语言第五版课本课后习题答案C语言是一门广泛应用的编程语言,其第五版课本通常包含了大量的理论知识和实践练习。

课后习题是帮助学生巩固和检验学习成果的重要部分。

以下是一些C语言第五版课本课后习题的答案示例,请注意,这些答案仅供参考,具体答案可能因课本版本和习题内容的不同而有所变化。

# 第一章:C语言概述习题1:简述C语言的特点。

答案: C语言是一种结构化编程语言,具有高效性、可移植性、丰富的运算符和数据类型等特点。

它广泛应用于系统软件、嵌入式系统等领域。

习题2:解释编译型语言和解释型语言的区别。

答案:编译型语言在执行前需要通过编译器将源代码转换为机器语言,生成可执行文件;而解释型语言在执行时由解释器逐行解释执行,不需要编译过程。

# 第二章:数据类型与变量习题1:列举C语言中的基本数据类型。

答案: C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)等。

习题2:什么是变量?变量声明的一般形式是什么?答案:变量是存储数据值的容器,其名称可以代表内存中的一个存储位置。

变量声明的一般形式为:`数据类型变量名;`。

# 第三章:控制结构习题1:什么是条件语句?列举C语言中的条件语句类型。

答案:条件语句用于根据条件的真假来控制程序的执行流程。

C语言中的条件语句包括if语句、if...else语句和switch语句。

习题2:循环语句的作用是什么?C语言中有哪些循环语句?答案:循环语句用于重复执行一段代码直到满足特定条件。

C语言中的循环语句包括for循环、while循环和do...while循环。

# 第四章:函数习题1:函数的定义是什么?函数的作用是什么?答案:函数是一段具有特定功能的代码块,可以被重复调用。

函数的作用是实现代码的模块化,提高代码的复用性。

习题2:函数声明和函数定义的区别是什么?答案:函数声明提供了函数的名称、返回类型和参数列表,但不包含函数的实现细节;函数定义则包含了函数的实现代码。

C语言概述(题目与答案).

C语言概述(题目与答案).

第一章 C语言概述1、要把高级语言编写的源程序转换为目标程序,需要使用__D_ ___。

A) 编辑程序B) 驱动程序C) 诊断程序D) 编译程序2、以下叙述正确的是__C____。

A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点3、下列叙述中正确的是__D____A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数4、C语言中用于结构化程序设计的三种基本结构是___A_____A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-while D) if、for、continue5、在一个C程序中___B____A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置6、下列叙述中正确的是__D_____A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型7、下列关于C语言用户标识符的叙述中正确的是___B___A) 用户标识符中可以出现在下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头8、能将高级语言编写的源程序转换成目标程序的是___C____A) 链接程序B) 解释程序C) 编译程序D) 编辑程序9、用C语言编写的代码程序__D__B__A) 可立即执行B) 是一个源程序C) 经过编译即可执行D) 经过编译解释才能执行10、以下叙述中正确的是__A_C__A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出第2章基本数据类型和运算符选择题一、关键字、标识符和保留标识符和基本数据类型1、下列选项中,合法的C语言关键字是 DA) V AR B) cher C) integer D) default2、以下有4组用户标识符,其中合法的一组是 CA) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define3、以下选项中,非法的字符常量是 CA) ‘\t’B) ‘\17’C)“n”D) ‘\xaa’4、以下选项中合法的字符常量是 BA)“B”B)‘\010’C) 68 D) D5、在C语言中,合法的长整型常数是 AA) 0L B) 4962710 C) 324562& D) 216D6、下列变量定义中合法的是 AA) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;7、以下所列的C语言常量中,错误的是 A BA) 0xFF B) 1.2e0.5 C) 2L D) ‘\72’8、设有说明语句:char a=’\72’;则变量a AA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法9、下列不正确的转义字符是 CA) '\\' B) '\ ’’C) '074' D) '\0'10、以下选项中属于C语言的数据类型是 CA) 复数型B) 逻辑型C) 双精度型D) 集合型二.运算符和表达式1、设有int x=11; 则表达式(x++ * 1/3) 的值是 AA) 3 B) 4 C) 11 D) 122、下列程序的输出结果是 CA) 3 B) 3.2 C) 0 D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}3、设int x=1, y=1; 表达式(!x||y--)的值是 BA) 0 B) 1 C) 2 D) –14、若变量已正确定义并赋值,下面符合C语言语法的表达式是 BA) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b5、C语言中运算对象必须是整型的运算符是 AA) %= B) / C) = D) 〈=6、若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是 CA) 1 B) 2 C) 2.0 D) 2.57、若变量a、i已正确定义,且i已正确赋值,合法的语句是 BA) a==1 B) ++i; C) a=a++=5; D) a=int(i);8、若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 AA) 0 B) 0.5 C) 1 D) 29、有如下程序main0{ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是 DA) 3 4 B) 4 2 C) 4 3 D) 3 310、能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是 DA) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=011、有如下程序段int a=14,b=15,x;char c=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为 DA) ture B) false C) 0 D) 112、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 CA) -3 B) 9 C) -12 D) 613、设x、y、t均为int型变量,则执行语句:x=y=3; t=++x||++y;后,y的值为 CA) 不定值B) 4 C) 3 D) 114、若变量c为char类型,能正确判断出c为小写字母的表达式是 DA) ‘a’<=c<= ‘z’ B) (c>= ‘a’)||(c<= ‘z’)C) (‘a’<=c)and (‘z’>=c) D) (c>= ‘a’)&&(c<= ‘z’)15、以下程序的输出结果是AA) 0 B) 1 C) 2 D) 3main(){ int x=0.5; char z=’a’;printf(“%d\n”, (x&1)&&(z<’z’) ); }16、假定x和y为double型,则表达式x=2,y=x+3/2的值是 DA) 3.500000 B) 3 C) 2.000000 D) 3.00000017、以下合法的赋值语句是 A BA) x=y=100 ; B) d--; C) x+y; D) c=int(a+b);18、设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 Dprintf(”%d,%d\n”,x--,--y);A) 10,3 B) 9.3 C) 9.2 D)10.219、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为 CA) 0 B) 1 C)2 D) 320、以下各选项企图说明一种新的类型名,其中正确的是 A CA) typedef v1 int; B) typedef v2=int;C) typedef int v3; D) typedef v4: int;填空题1、设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为double __。

百度文库c语言概述试题及答案

百度文库c语言概述试题及答案

百度文库c语言概述试题及答案一、选择题(每题2分,共10分)1. C语言是由谁开发的?A. 比尔·盖茨B. 丹尼斯·里奇C. 史蒂夫·乔布斯D. 拉里·佩奇答案:B2. C语言是一种:A. 编译型语言B. 解释型语言C. 汇编语言D. 机器语言答案:A3. 下列哪个关键字用于定义一个函数?A. returnB. functionC. defD. void答案:D4. 在C语言中,哪一个是正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释答案:B5. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. classD. typedef答案:A二、填空题(每题2分,共10分)1. C语言的标准输入输出函数分别是________和________。

答案:scanf, printf2. C语言中,用于定义一个整型变量的关键字是________。

答案:int3. 在C语言中,________运算符用于将一个浮点数转换为整数。

答案:强制类型转换4. C语言中,数组的索引从________开始。

答案:05. C语言中,________关键字用于定义一个全局变量。

答案:extern三、简答题(每题5分,共20分)1. 请简述C语言的特点。

答案:C语言是一种高级编程语言,具有结构化、可移植、可扩展等特点。

它支持多种数据类型,并且具有丰富的运算符和控制语句,适用于系统编程和嵌入式开发。

2. 在C语言中,如何定义一个指针?答案:在C语言中,定义一个指针需要使用星号(*)符号,例如:int *p; 表示定义了一个指向整型的指针变量p。

3. 请解释C语言中的预处理指令。

答案:C语言中的预处理指令是在编译之前进行处理的指令,例如#include用于包含头文件,#define用于定义宏,#ifdef和#ifndef 用于条件编译等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章C语言概述
一、单选题
1. C语言程序的执行,总是起始于()。

C
A.程序中的第一条可执行语句
B.程序中的第一个函数
C.main函数
D.包含文件中的第一个函数
分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。

本题正确答案为C。

2、C语言程序的基本单位是()。

C
A)程序行B)语句C)函数D)字符
3、C语言中规定:在一个源程序中main函数的位置()。

C
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
4、以下述叙正确的是()。

C
A.在C程序中,main函数可有可无
B. C程序的每行中只能写一条语句
C. C语言本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
5、能将高级语言编写的源程序转换为目标程序的是()。

C
A.链接程序
B.网络程序
C.编译程序
D.WORD字处理程序
6、下列说法中正确的是()。

C
A)C程序书写时,不区分大小写字母
B)C程序书写时,一行只能写一个语句
C)C程序书写时,一个语句可分成几行书写
D)C程序书写时每行必须有行号
分析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。

本题正确答案为C。

7、下面对C语言特点,不正确描述的是()。

C
A)C语言兼有高级语言和低级语言的双重特点,执行效率高
B)C语言既可以用来编写应用程序,又可以用来编写系统软件
C)C语言的可移植性较差
D)C语言是一种结构式模块化程序设计语言
分析:C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。

本题正确答案为C。

8、C语言源程序的最小单位是()。

D
A)程序行B)语句C)函数D)字符
分析:程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。

本题正确答案为D。

9.计算机内部运算使用的数是()。

C
A)十进制数B)十六进制数C)二进制数D)八进制数
分析:在实际生活中找不到具有十个稳定状态的物理元件,而具有两种稳定状态的元件到处可见,如一个开关具有通电和断电两个稳定状态,计算机内部的元件正是以"1"代表通电,以"0"代表断电的,所以计算机内部运算使用的数是二进制数,至于八进制数和十六进制数是对二进制数的人为缩写。

本题正确答案为C。

10、一个C语言程序是由()。

B
A)一个主程序和若干个子程序组成
B) 函数组成
C) 若干过程组成
D) 若干子程序组成
11、C语言具有低级语言的能力,主要指的是()。

C
A)程序的可移植性
B)具有控制流语句
C)能直接访问物理地址,可进行位操作
D)具有现代化语言的各种数据结构
12、以下哪个叙述是不正确的编程风格()。

C
A)大小写字母用在不同场合,一般除了符号名和常量名用大写字母外,其它一律用小写字母
B)使用有意义的标志符
C)程序中的注释可有可无
D)使用括号来改善表达式的清晰度
13、不正确的C程序描述是()。

B
A)每个语句和数据定义的最后必须有个分号
B)一个C程序的书写格式要求严格,一行只能写一个语句
C) C语言的本身没有输入输出语句
D)一个C程序总是从main()函数开始执行
14、以下C语言正确结构形式的描述是()。

C
A)main()函数必须放在程序之首
B)每一行只能写一个语句,每个语句之后必须有分号
C)C语言没有输入输出语句
D)C语言的自由度大,可以从任何函数执行
二、填空题
1、C语言具有()语言的优点和()语言的特点。

高级低级
2、C程序是由一个或多个()组成的,必须包含()。

函数main主函数
3、C源程序的基本单位是()。

函数
4、一个C源程序至少应包括一个()。

主函数(或:main函数)
5、在一个C源程序中,注释部分两侧的分界符分别为()和()。

/* */
6、在C语言中,输入操作是由库函数()完成的,输出操作是由库函数()完成的。

scanf printf
7、一个C语言程序总是从()开始执行。

主函数(或:main函数)
8、C语言源程序文件的后缀是(),经过编译后,生成文件的后缀是(),经过连接后,生成文件的后缀是()。

.c .obj .exe
三、教材p13习题1.3-1.5
1.3参考答案:
编译预处理命令
全局变量定义
main( ) /*主函数*/
{
……
}
sub1( ) /*自定义函数sub1*/
{
……
}
……
subn() /*自定义函数subn*/
{
……
}
1.4参考答案:实现程序的模块化
1.5参考答案:
#include<stdio.h>
void main()
{
printf("*********************************\n"); printf(" V ery good!\n");
printf("*********************************\n"); }。

相关文档
最新文档