C语言-第3课 最简单的C程序设计 练习题
c语言程序设计第五版谭浩强习题答案第三章课后答案

c语⾔程序设计第五版谭浩强习题答案第三章课后答案第三章最简单的C程序设计 ----顺序程序设计1、假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
计算公式为$p = (1+r)^n$ ,其中r为年增长率,n为年数,p为与现在相⽐的倍数。
题⽬解析:此题的关键主要是利⽤数学库math中pow函数进⾏计算,若不熟悉可以查阅帮助⽂档,查看pow函数的⽤法。
代码⽰例:#include<stdio.h>#include <math.h>int main(){Cfloat p, r, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);return 0;}运⾏结果:2、存款利息的计算。
有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: $P=1000* (1+r)^n$;活期存款本息和: P= 1000 *(1+$\frac{r}{4}$)$^{4n}$;说明: 1000*(1+$\frac{r}{4}$)是⼀个季度的本息和。
题⽬解析:理解题意很关键,其次就是利⽤数学库math中pow函数进⾏幂次⽅计算代码⽰例:#include<stdio.h>#include <math.h>int main(){float r5, r3, r2, r1, r0, p, p1, p2, p3, p4, p5;p = 1000;r5 = 0.0585;r3 = 0.054;r2 = 0.0468;r1 = 0.0414;r0 = 0.0072;p1 = p*((1 + r5) * 5); // ⼀次存5年期p2 = p*(1 + 2 * r2)*(1 + 3 * r3); // 先存2年期,到期后将本息再存3年期p3 = p*(1 + 3 * r3)*(1 + 2 * r2); // 先存3年期,到期后将本息再存2年期p4 = p*pow(1 + r1, 5); // 存1年期,到期后将本息存再存1年期,连续存5次p5 = p*pow(1 + r0 / 4, 4 * 5); // 存活期存款。
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语言程序设计学习资料及答案

重庆科技学院20___ /20__ 学年第学期试卷参考答案及评分标准( 卷)课程名称:C语言程序设计选课课号:适用专业/年级:抽(命)题人:考试方式:卷面总分:分试卷编号:[7FCA4DA8(2015-04-20)]本卷共100题,卷面100分题源:陈应祖组卷:陈应祖一、单选题(共100题,100分)1.1 [库中题号:01010005] 1 分设计一个计算机程序最基本的工作是:()A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是答案: C1.2 [库中题号:01010012] 1 分下列各项中,不是C语言的特点是:()A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能答案: D1.3 [库中题号:01010014] 1 分C语言规定:在一个C源程序中,main()函数的位置( )。
A.必须在所有函数的最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在所有函数的最后答案: C1.4 [库中题号:01010016] 1 分构成C语言源程序的基本单位是:()A.子程序B.过程C.文本D.函数答案: D1.5 [库中题号:01010022] 1 分某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:()A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行答案: B1.6 [库中题号:01010023] 1 分C语言规定,一个C源程序的主函数名必须为:()A.main B.functionC.program D.include答案: A1.7 [库中题号:01010026] 1 分下列说法正确的是:()A.无论注释内容的多少,在对程序编译时都被忽略B.C程序每行只能写一个语句C.在书写C语言源程序时,每个语句以逗号结束D.注释时,…/‟和…*‟号间可以有空格答案: A1.8 [库中题号:01010034] 1 分C程序中的复合语句指的是:()A.并列的多个C语句B.写在同一行中的多个C语句C.用一对大括号对括的多个C语句D.就是函数体中的语句答案: C1.9 [库中题号:01010039] 1 分C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符:() A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种答案: C1.10 [库中题号:01010042] 1 分下列选项中,是C语言提供的合法的关键字的是( )A.swicth B.CherC.default D.Case答案: C1.11 [库中题号:01010047] 1 分程序设计中所谓数据类型是指:()A.数据的内容B.数据的描述方法C.数据的处理方法D.数据用于哪些方面答案: B1.12 [库中题号:01010049] 1 分在C语言中把最常用的一些数据类型,如int、double,char等称作:() A.常用类型B.数值类型C.字符类型D.基本类型答案: D1.13 [库中题号:01010052] 1 分程序中所谓的常量是指:()A.大小不变的量B.在程序运行中不能被改变的量C.形式不变的量D.在程序设计中不能被改变的量答案: B1.14 [库中题号:01010054] 1 分C语言中的常量有整型常量、实型常量、字符常量以及:()A.数值常量B.非数值常量C.字符串常量D.一般常量答案: C1.15 [库中题号:01010059] 1 分下列不合法的八进制数是( )。
第3章 最简单的C程序设计[详版课资]
![第3章 最简单的C程序设计[详版课资]](https://img.taocdn.com/s3/m/44edddb04afe04a1b071defb.png)
说明
➢ 两个整数相除的结果为整数
如5/3的结果值为1,舍去小数部分
如果除数或被除数中有一个为负值,舍入方向 不固定。例如,-5/3,有的系统中得到的结 果为-1,在有的系统中则得到结果为-2
VC++采取“向零取整”的方法
如5/3=1,-5/3=-1,取整后向零靠拢
➢ % 运算符要求参加运算的运算对象(即操作数) 为整数,结果也是整数。如8%3,结果为2
p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3);
return 0;
}
课堂优质
8
3.2 数据的表现形式及其运算
3.2.1 常量和变量
3.2.2 数据类型
3.2.3 整型数据
3.2.4 字符型数据
3.2.5 浮点型数据
课堂优质
11
3.2.1 常量和变量
3.常变量:const int a=3; 4.标识符:一个对象的名字大小写字母是不同的字符 ➢ C语言规定标识符只能由字母、数字和下划线3
种字符组成,且第一个字符必须为字母或下划线 ➢ 合法的标识符:如sum,average, _total,
Class, day, BASIC, li_ling ➢ 不合法的标识符:M.D.John,¥123,#33
(2) 如果int型与float或double型数据进行运算, 先把int型和float型数据转换为double型,然 后进行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的 ASCII代码与整型数据进行运算
课堂优质
30
3.2.7 运算符和表达式
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语言课件第3章最简单的C程序设计1-改

例3.2
解题思路:确定计算本息和的公式。
从数学知识可知:若存款额为p0,则: 活期存款一年后本息和为:
p1=p0(1+r1) 一年期定期存款,一年后本息和为:
p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
p3 = p0(1+ r3)(1+ r3 ) 22
例3.2
#include <stdio.h> int main ( )
一个字符变量在内存中占一个字节。
字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,, 而是将该字符的相应的ASCII代码放到存 储单元中。例如字符‘a’的ASCII代码为 97,‘b’为98,在内存中变量c1、c2的值如图
(a)所示。实际上是以二进制形式存放的,如 图(b)所示。P48
[signed ] int unsigned int
注意: 取值范围 举例P47
例:
#include<stdio.h>
void main( )
运行结果:
{int a,b,c,d;
a十u=22,b+u=-14
unsigned u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d ,b+u=%d”,c,d);
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符.
• 字符常量如的值‘:a’该字‘A符’ 的‘?’ASC‘I\nI’码值‘\101’
• 转转义义字字如符符:反及‘‘斜其A0’’线含——后义——面:6458跟P,4,一0表‘‘个\n3a字’.’——1符——或190一7,个代码值表示
C语言程序设计综合实训题目

一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号, 姓名, 年龄, 性别, 出生年月, 政治面貌, 籍贯, 家庭住址, 电话, E-mail等。
试设计一学生信息管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序, 可以按学号, 按姓名, 按性别, 按出生年月日, 按籍贯进行查询(5)信息统计a) 可以按性别, 按出生年, 按籍贯统计学生人数b) 可以按班级统计学生人数c) 可以按政治面貌统计学生人数按班级统计学生党员人数, 团员人数, 以及所占比例, 设计并输出统计报表。
(6)学生信息的删除与修改●设计要求:●界面比较美观;有一定的容错能力, 比如输入的成绩不在0~100之间, 就提示不合法, 要求重新输入;●最好用链表的方式实现。
算法分析:首先, 一个学生包括这么多的属性, 应该考虑定义一个结构, 其次, 我们应该考虑数据的存储形式:是定义一个数组来存储, 还是定义一个链表呢?在这里假如我们以数组的方式来存储, 当然可以, 但是我们知道, 假如我们定义一个数组的话, 我们首先必须知道学生人数大概是多少, 以便我们确定数组的大小, 但是题目中没有给出, 而且题目要求中有大量的删除、插入操作, 所以用链表的方式比较方便。
对于菜单的实现, 其实也比较简单, 首先我们用printf语句把程序的功能列出来, 然后等待用户输入而执行不同的函数, 执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
(2)、学生综合测评系统每个学生的信息为: 学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%。
C语言课程习题

一、C语言程序设计(1)1.以下不能定义为用户标识符的是()。
A. ScanfB. voidC. _3com_D. int2.以下选项中可作为C语言合法整数的是()。
A. 10110BB. 0386C. 0XffaD. x2a23.十进制数127转换成二进制数是()。
A. 11111111B. 01111111C. 10000000D. 11111110【作业1】取一个整数a从右端开始的4~7位,并把值打印到屏幕。
【作业2】在程序中声明若干个整数变量、浮点数,并将它们以二进制,十进制的格式打印在屏幕上。
二、C语言程序设计(2)1.假定x和y为double型,则表达式x=2,y=x+3/2的值是()。
A. 3.500000B. 3C. 2.000000D. 3.0000002.以下合法的赋值语句是()。
A. x=y=100B. d--;C. x+y;D. c=int(a+b);3.设正x、y均为整型变量,且x=10 y=3,则以下哪个是语句的输出结果?(d )pprintf("%d,%d\n",x--,--y);A. 10,3B. 9.3C. 9.2D.10.2【作业1】根据某个抛物线的点的x值计算y值参考公式:y=x2+2x+1【作业2】a是一个浮点数,它可能取任意值,书写表达式,求X,如果A在0~10范围内,结果X的值就为A,如果A>10,X取10,如果A<0,X就取0。
三、流程控制语句1.选择题(单选题)1.在下面的语句中,不属于循环语句的是()A.if语句B.while语句C.do-while语句D.for语句2.执行下面的程序片段,变量a的值为()int a=3 ; if(a=5) a=4;A.3 B.4C.5 D.出现编译错误2.关于for语句,以下说法正确的是()for(表达式1;表达式2;表达式3)A.表达式1不能省略B.表达式2不能省略C.表达式3不能省略D.所有表达式都可以省略【作业1】计算1到100内所有偶数的和思路分析:偶数即能够被2整除的数,利用循环语句,进行相加【作业2】使用循环语句打印“*”组成一个菱形思路分析:可以用一个等差数列来计算每一行的“*”的数量四、数组1.选择题(单选题)1.以下定义语句中,错误的是()A.int a[]={1,2}; B.char a[3];C.char s[10]="test"; D.int n=5,a[n];2.以下数组定义中不正确的是()。
《C语言程序设计课程设计》题目

1 一元稀疏多项式的运算问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。
实现要求:⑴输入并建立多项式;⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。
序列按指数降序排列;⑶多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式;⑹设计一个菜单,至少具有上述操作要求的基本功能。
测试数据:(1) (2x+5x8-3.1x11)+(7-5x8+11x9)(2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)2 成绩排序假设某年级有4个班,每班有45名同学。
本学期有5门课程考试,每门课程成绩是百分制。
假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求:⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩;⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中;⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑷ 用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑸ 对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表;⑹ 设计一个菜单,至少具有上述操作要求的基本功能。
3 栈及其操作问题描述:栈(Stack):是限制在表的一端进行插入和删除操作的线性表。
最简单的程序设计

班级: 104031009课程: 程序设计语言C1章节: 最简单的程序设计本次作业考试时间:2011-3-15 8:00:00本次作业截止时间:单选题:1、以下程序段的输出结果是int a=1234;printf("%2d\n",a);A.12B.34C.1234D.提示出错、无结果学生答案: A参考答案: C2、以下合法的赋值语句是A.x=y=100B.d--;C.x+y;D.c=int(a+b);学生答案: C参考答案: B3、以下程序的输出结果是main(){ int a=3;printf("%d\n",(a+=a-=a*a));} }A.-6B.12C.0D.-12学生答案: B参考答案: D4、以下程序的输出结果是main(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A.5B.4C.6D.不确定学生答案: B参考答案: c5、以下程序的输出结果是main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A.1B.0C.非0的数D.-1学生答案: B参考答案: A6、已知字符A的ASCII码为十进制的65,下面程序的输出是_____main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A.67,DB.B,CC.C,DD.不确定的值学生答案: B参考答案: A7、下面程序的输出是______main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A.k=11,k=12,k=13B.k=11,k=13,k=13C.k=11,k=013,k=oXbD.k=11,k=13,k=b学生答案: B参考答案: D8、设x为int型变量,则执行以下语句后,x的值为x=10; x+=x-=x-x;A.10B.20C.40D.30学生答案: D参考答案: B9、以下程序的输出结果是main( ){ int k=17;printf("%d,%o,%x \n",k,k,k);}A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,11学生答案: C参考答案: D10、下面程序的输出是____main(){ int x=023;printf("%d\n",--x);}A.17B.18C.23D.24学生答案: D参考答案: B11、以下程序的输出结果是_____main(){char str[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}A.6B.7C.11D.12学生答案: B参考答案: A12、下列程序的输出结果是main(){ double d=3.2;int x,y;x=1.2,y=(x+3.8)/5.0;printf("%d \n", d*y);}A.3B. 3.2C.0D. 3.07学生答案: A参考答案: C13、语句:printf("%d \n",12&&12);的输出结果是________.A.12B.1C.24D.0学生答案: B参考答案: B14、有以下程序#includemain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是A.2,1B.3,2C.4,3D.2,-1学生答案: C参考答案: A15、下面程序的输出是main(){char p1[10] ="abc", p2[] ="ABC";printf("%s\n", strcat(p1,p2));}A.ABCabcB.ABabcC.abcABCD.不确定的值学生答案: C参考答案: C16、下列程序执行后的输出结果是main(){ int x='f';printf("%c \n",'A'+(x-'a'+1)); }A.GB.HC.ID.J学生答案: B参考答案: A17、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是A.11B.9C.10D.8学生答案: C18、请读程序:main(){ int A;float B, C;scanf("%2d%3f%4f",&A,&B,&C);printf("\nA=%d,B=%f,C=%f\n",A,B,C);}若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是A.A=98, B=765, C=4321B.A=10, B=765.000000, C=4321.000000C.A=98, B=765.0, C=4321.0D.以上答案都不正确学生答案: B参考答案: D19、请读程序片段(字符串内没有空格字符):printf("%d\n", strlen("ATS\n012\1\\"));上面程序片段的输出结果是A.11B.10C.9D.8学生答案: A参考答案: C20、合法的C语言赋值语句是()A.a=b=1B.k=int(a+b);C.a=1,b=2D.--i;学生答案: C参考答案: D21、为表示关系:x≥y≥z,应使用的C语言表达式是( )。
《C语言程序设计》课程自测题

《C语言程序设计》课程自测1章C语言概述一、判断题1. C语言程序中,任何英语单词均可以作标识符。
()×2. 在C语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。
()×3. C语言是一种面向过程的语言。
()√4. 当主程序执行完毕时,亦即程序执行完毕。
()√5. C程序有且仅有一个main()函数。
()√6. C语言中不区分大小写英文字母。
()×7. 用C语言编写的程序是一种需要经过编译和连接才能运行的程序。
()√8. C语言是一门对标识符大小写敏感的程序设计语言。
()√二、单选题1. 一个C程序的组成部分可以是()。
A)一个主函数和一至若干个其他函数B)一至若干个主函数C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序A2. 以下叙述的是()。
A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错C3. C语言规定,C程序执行的开始处为()。
A)源程序中排列在最前面的函数B)一个指定的系统库函数C)用户指定的一个特定函数D)程序的主函数D4. 一个C程序的执行是从()。
(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束A5. 一个C语言程序是由()组成。
(A)一个函数(B)一个或若干个函数(C)一个过程(D)一个过程或若干个过程B6. 下列说法中错误的是()。
(A)程序的执行总是从主函数开始。
(B)主函数可以调用任何非主函数的其它函数(C)任何非主函数可以调用其它任何非主函数(D)程序可以从任何非主函数开始执行D7. C程序的基本单位是()。
《C语言程序设计》期末程序设计练习题库_12月11日更新

9、输入一串字符,以回车键作为结束,统计出其中英文字母、数字和其他字符的个数。
10.编程计算 2!+4!+6!+8!+10!+12!+14!+16!+18!+20!,并输出结果。
第 4 章 数组
1、采用“冒泡法”对任意输入的 10 个整数按由小到大的顺序排序。算法过程必须小的数向上冒,也就是第 一遍扫描结束,最小的数组元数放在 a[0],第二遍扫描结束,次小的数组元数放在 a[1]。要求程序代码完 整,程序在运行过程中输入 10 个整数,10 个整数一行输入,每个整数输入时空一个空格;在排序算法处理 后,按由小到达的顺序输出,输出也一行输出,每个整数之间空一个空格。
3、编写函数 fun,该函数的功能是:求出整型数组 a 中 N 个数值的平均值,并将大于平均值 的整数放入数组 b 中,数组 b 中的个数作为函数值返回。在 main 函数中,输入 N 个整数,调 用 fun 函数,最后输出这 N 个整数中所有大于平均值的整数,每行输出 5 个数。 4、数组元素作为函数参数,任输入10个三位数,计算有多少个数其各位数字和是5 5、用递归法求 n!
6、请编写一个函数完成将用户输入的一串整型数字字符转换为整型数值, 例如用户输入串”567”, 应该能 返回整数值 567。在 main()函数中接收用户输入的数字,调用函数进行转换,并输出转换后的结果(必须是 输出整型) 。 7、请编写一函数 strcpy,函数原型声明为:void strcpy(char* target, char *src); 能实现将字符串 src 拷贝到字符数组 target。 在 main()函数中接收用户输入的一个字符串 (不超出 256 个字符) , 调用 strcpy 函数将其复制到一个数组中,并输出字符数组的内容。 8、请编写一函数 getFileExtName,函数原型声明为:char *getFileExtName(char *filename);能实现返 回传入文件名的扩展名,例如用户传入的文件名为”d:\\finalexame\\exam.c”,函数返回字符串”c”。 在 main()函数中接收用户输入的一个文件名(含路径) ,调用函数获取其扩展名,并输出的结果。 9、请编写一函数 strcmp,函数原型声明为:int strcmp(char *str1, char *str2);能实现两个串的大小 比较,若 str1 比 str2 大返回 1,若 str1 等于 str2 返回 0,若 str1 小于 str2 返回-1。在 main()函数中接 收用户输入的两个字符串,调用 strcmp 函数进行比较,并输出比较的结果。 10. 请编写一函数 draw,函数原型声明为:void drawPyramid(int level);能实现绘制 level 层高度的金 字塔。例如,输入层高为 12,输出如下的图形
《C语言程序设计(第2版)》课后习题参考答案prt

《C语言程序设计》(邱晓红主编)课后习题参考答案第1章C语言及程序设计概述1.单选题(1)A (2)B (3)A (4)B (5)C2.填空题(1)//,/*…*/(2)scanf()(3)printf()3.判断题(1)对(2)错(3)错(4)对1.4简答题①概述C语言和C语言程序的主要特点。
答:1.C语言是高级语言。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
2。
C语言是结构式语言。
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
①C语言功能齐全。
具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
②C语言适用范围大。
适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。
②请编程,在计算机屏幕上显示:“您好,欢迎进入C语言世界!”解:#include<stdio.h>void main(){printf("您好,欢迎进入c预言世界!");}第二章:数据类型运算符与表达式1.单选题(1)C (2)D (3)C (4)B (5)C (6)A (7)B (8)D (9)A (10)B(11)C (12)C (13)D (14)A (15)B (16)C (17)A (18)A (19)B (20)C (21)C (22)D (23)C (24)A (25)D (26)B (27)C (28)B (29)B (30)A 2.填空题(1)sqrt(pow(y,x)+log10(y)) (2)36(3)6 (4)3 3(5)6 (6)36(7)int x=8,y=8; (8)1(9)E (10)7,9,6,8)(11)6 (12)66,96(13)240 (14)1,1,-1,-1(15)5,2,6 (16)1(17)!(18)2(19)(a>0&&a<101)&&(a%3==0||a%7==0)(20)A3.程序分析题(1)2 7 (VC++环境下,其它编译环境可能有不一样的结果)2 74 94 412 12(2)3 1 4 01 -616(3)100 d 68 D97 a 49 1(4)0 1 0 1(5)2 4 6 7-0.5800000 7.00000046.5800007.500000(6)33 12 113 13 082 32(7)618 30181(8)1 1 0 04.改错题(1)①无初始赋值,不能输出②数据精度丢失③少“;”号④单字符变量不能保存字符串常量⑤不能连续初始化⑥非法标识符(2)short i=38000溢出PI=3.1416 常量不能修改值Printf(“%d”,x%y) %必须是整数a*=(b+c)/=d复合赋值左边不能是表达式5、(1)#include <stdio.h>int main(){int H;float v,L1,L2,L,T,s1,M;printf("请输入开始里程数,单位为千米:\n");scanf("%f",&L1);printf("请输入结束里程数,单位为千米:\n");scanf("%f",&L2);printf("请输入时间,格式为时,分,秒\n");scanf("%d,%f,%f",&H,&M,&s1);T=H+M/60.0+s1/3600.0;//将时间折算成小时;L=L2-L1;//计算出这段时间走的路程,以千米计;v=L/T;printf("%f\n",v);return 0;}(2)#include <stdio.h>#define PI 3.14int main(){double r=2.5,h=5,V;V=(PI*r*r*h)/3;printf("%f\n",V);return 0;}第三章:算法概念与顺序结构程序设计1.选择题(1)D (2)D (3)D (4)B (5)C (6)A (在16位机答案为D)(7)B (8)C (9)B (10)D2.填空题.(1)一条语句;(2)小于左右(3)%%(4)输出项列表输出控制符(5)取地址取a的地址(6)从盘获取一个字符(7)大括号(8)f=68.000000(9)n1=%d\n n2=%d(10)7,5,c=33.程序分析题.(1)i=100,c=a,f=1.234000(2)i=65535,j=65536(10)1234,123.5,12345.53.4 编程题①编写一个程序,交换两个数的值。
C语言第三、四章作业题答案

东华理工大学:C语言第三章作业题C程序设计第三章闭/开卷课程类别:考试/考查第三章顺序结构程序设计一、选择题1.C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。
如果格式说明的个数小于输出项的个数,多余的输出项将 A ;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。
A)不予输出B)输出空格C)照样输出D)输出不定值或02.在scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配。
如果类型不匹配,系统 B 。
A)不予接收B)并不给出出错信息,但不可能得出正确信息数据C)能接受正确输入D)给出出错信息,不予接收输入3.下列说法正确的是 D 。
A)输入项可以是一个实型常量,如scanf("%f",4.8);B)只有格式控制,没有输入项也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%5.3f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);4.根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是B 。
main(){int a;float x;printf("input a,x:");输入语句输出语句}输入形式input a,x:3 2.1输出形式a+x=5.10A)scanf("%d,%f",&a,&x);printf("\na+x=%4.2f",a+x);B)scanf("%d %f",&a.&x);printf("\na+x=%4.2f",a+x);C)scanf("%d %f",&a,&x);printf("\na+x=%6.1f",a+x);D)scanf("%d %3.1f",&a,&x);printf("\na+x=%4.2f",a+x);5.以下程序的输出结果是 A 。
C语言程序设计教程(第二版)

``1-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数首部,函数体5. {, }6. 顺序结构,选择结构,循环结构7. .c, .obj, .exe2-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 553-1 选择题1-5 BDABC 6-10 ADCAC 11-12 BB3-2 填空题1. 32. 02613. 0x104. 2, 1 互换a,b的值5. 6.66. –0038. 77. 5.0,4,c=3<Enter>8. i=10,j=20<Enter>9. (1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600``(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310. a=2 b=5x=8.8 y=76.34c1=65 c2=974-1单选题1~5 AADAD 6~10 ACB BB 11~12BA4-2填空题1. 12. (1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c3.(1)0 (2)1 (3)1(4)0 (5)14. (max=a>b?a:b)>c?max:c5.-46.17.5,0,38. (1) (a==0) (2) (b==0)(3) (disc<0)5-1单选题1~5 CDABA 6~10 ABDDB11~14 DBCB5-2填空题1.202.3333.(1) i<10 (2) j%3!=04. (1) flag*(float)k/(k+1) (2) flag=-flag5.(1) max=x (2) x!=-1 (3) scanf("%d", &x)6-1单选题1-5 CBBAD 6-10 DBCCD 11-15 DCABC6-2填空题1. 1202. x``3 . 3,2,2,3 4. fac/i 5. 8,176. 97. 1.0/(i*i)8. fun-in:30,20,10fun-end:1015,35,1050 10,20,309. 012345 10. 936367-1单选题1-5 DBCCB 6-8 BDC7-2填空题1. c2. 603. 1000 104. 16 习题88-1单选题1~15 CADAC6~10 CCDAB11~15 CBBCD8-2填空题1 (1)2345 (2) 10010 (3) QuickC (4)2. (1) j+=2 (2) a[i]>a[j]3. (1) r+b[k] (2) *x9-1单选题1~5 DDACB6~10 ACBAD11~15CDB CC9-2填空题1 . (1) 2,1 (2) 10#30#(3) FOUR ,O(4) 602. (1) 49 (2) 2(3)2(4) 7 5 3 1 9 (5)15(6)10000010000010000010000011,1,1, 1,1 3,3,3, 3,3``(7)3. (1) *x (2) t4. (1) '\0'或0 (2) n++或n+=1或n=n+15. 02410-1单选题1-5 CDBBB6-10 BBBAD11-15 CCBDA10-2填空题1. 所有结构体成员所占存储空间的总和2. 与占用存储空间最大的那个成员相等3. (1) 结构体 (2) 3 (3) sa.a (4) 9 (5) psa=&sa4. 805. struct node6. 011-1单选题1-4 BADD11-2填空题1. 3d3d3302. (1) 28 (2) 20 (3) 0 (4) -93. (1) 251 (2) 42 (3) 209 (4) –295 (5) 84812-1单选题1-5 BCDCA 6-8 ADA 12-2 填空题1. rewind(文件指针)2. "d1.dat","rb"3. stdin4. 文本文件 二进制文件5. (1)"w" (2) str[i]-32 (3) "r"6. fopen7. Hell8. (1) "r" (2) fgetc(fp) (3) time++1 00 0 10 1 0 1 00 0 1 0 00 1 0 1 011``模拟试卷(一)参考答案一.选择题(1~30每题1分,31~50每题2分,共70分)12345678910C BD C D D B A C A 11121314151617181920B B DC A B C C A C 21222324252627282930A B B B B C D D A C 31323334353637383940C D D C B B B A B A 41424344454647484950C CD C C B C C D C 二.填空题(每空2分,共30分)空序号答案空序号答案【1】main()【9】10 20 0【2】11 6 4【10】 1 B【3】5【11】 4 3 3 4【4】 1 1 0 1【12】0 10 1 11 2 12【5】i<=9 或i<10【13】yes【6】k%3【14】-f【7】0【15】 1 3 7 15【8】b模拟试卷(二)参考答案一.选择题(共35道小题,70分,每题2分)12345678910A A A CB D A BC D11121314151617181920C D A A B B B D A C21222324252627282930A A DB D A A B D A3132333435D A B B C``二.填空题(每空2分,共30分)题空号答案题空号答案【1】double【2】x==0【3】0【4】–f 或f*-1 或–1*f 或f*(-1) 或(-1)*f 【5】fun(10)【6】x【7】a=1.0;b=1.0;s=1.0;【8】-1 或(-1)【9】*sn 或sn[0]【10】&a[i]【11】a[i] 或*(a+i)【12】row【13】a[row][colum]【14】!(s[i]>='0' && s[i]<='9') 或s[i]<'0' || s[i] > '9'【15】'\0' 或0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章最简单的C程序设计—顺序程序设计一、单项选择题1. 不是C语言提供的合法关键字是。
A)switch B)cher C)case D)default2. C语言提供的合法关键字是。
A)next B)string C)do case D)struct3. 下列不属于C语言中关键字的是。
A) long B) print C)default D)typedef4. 下列不正确的标识符是。
A) -a1 B) a[i] C)a2_i D)x5. 下列C语言用户标识符中合法的是。
A)*y B)sum C)int D)%5f6. 下面四个选项中,合法的标识符是。
A)auto B)define C)6a D)c7.下列C语言用户标识符中合法的是。
A)3ax B)x C)case D)-e28. 以下选项中合法的用户标识符是。
A) long B) _2Test C) 3Dmax D) A.dat9.下列四组选项中,正确的C语言标识符是。
A)%x B)a+b C)a123 D)12310. 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123-abc DOWORD sum Case sizeof11. 下列四组字符串中都可以用作C语言程序中的标识符的是。
A)print _3d oodb aBc B)I\am one_half start$it 3paiC)str_1 Cpp pow while D)Pxq My->book line# His.age12. 下列C语言标识符中合法的变量名是。
A)2e3 B)you C)*y D)float1-12题解析:参照讲义中知识点--标识符与关键字,13. C语言中的简单数据类型包括。
A)整型、实型、逻辑型B)整型、实型、逻辑型、字符型C)整型、字符型、逻辑型D)整型、实型、字符型13题解析:C语言中没有逻辑型变量14.下列可以正确表示字符型常量的是。
A)’\t’ B)”a” C)”\n” D)29715. 下列常数是正确的C语言字符常量。
A)”x” B)e3 C)”COMPUTER” D)’#’16. 在下列常量中,属于字符型常量的是。
A) A B) 'a' C) "A" D) b17. 以下选项中合法的字符常量是A) “B” B) ‘\n’C) ‘68’D) E18.下面字符常量表示错误的是A)’a’ B)’?’ C)’\n’ D)”\n”19. 已定义c为字符型变量,则下列语句中正确的是。
A)c='97' B)c="97" C)c=‘a’ D)c="a"14-19题解析:字符型常量是由单引号括起来的单个字符,另外C语言还规定了一些转义字符的表示形式例如’\t’表示制表符,‘\n’表示回车等,参照教材上P40的转义字符表。
20. 已知ch是字符型变量,不正确的赋值语句是。
A)ch='a+b' ; B)ch=' \0 ' ; C) ch=' 7'+' 9' ; D) ch=5+9;21.C语言中字符型(char)数据在内存中的存储形式是。
A) 原码B) 补码C) 反码D) ASCII码22.在C语言中,字符型数据所占的内存空间是。
A)2个字节B) 4字节C) 1字节D)由用户自定义20-22题解析:字符常量具有数值含义,其值即ASCII码对应的数值,范围为0-12724. 若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为。
A)float B) char C) int D)double25.若有以下类型说明语句:char w;int x;float y;double z; 则表达式w-x*y/z的结果为D类型,表达式(int)(x+y-z*w)的结果为C类型。
A)float B)char C)int D)double24-25解析:参照数据类型转换知识点。
26 . C语言中运算对象必须是整型的运算符是。
A) %= B) / C) = D) 〈=27. 在C语言程序中,表达式8/5的结果是。
A)1.6 B)1 C)3 D)028. 设x为int型变量,则执行语句x=10; x+=x; 后,x的值为A) 10 B) 20 C) 40 D) 3030.如果int a=1,b=2,c=3,d=4;则条件表达式"a>b?a:(c<d?c:d)"的值是。
A)1 B)2 C.)3 D )431. 在C语言程序中,表达式5%2的结果是。
A)2.5 B)2 C)1D)332.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是____。
A) 3B) 4 C) 0 D) 134.C语言中,关系表达式和逻辑表达式的值是。
A) 0 B) 0或1 C) 1 D) ‘T’或’F’34解析:C语言中没有逻辑型数据,逻辑假用0表示,逻辑真用1表示。
反之,0表示逻辑假,非0表示逻辑真。
35.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是。
A)’a’&&’b’ B)a<=b C)a||b+c&&b-c D)!((a<b)&&!c||1)35解析:注意运算符的优先级别。
36.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后x的值。
A)4 B)16 C)32D)5236解析:(y=4,z=16,k=32)是一个逗号表达式,逗号表达式的值是指最后一个表达式的值。
37. 下面表达式的值为4.A) 11/3 B) 11.0/3 C) (float)11/3 D) (int)(11.0/3+0.5)38. 有: int a=2,b=10,c=3,d=4,m=2,n=1;执行(m=a>b)&&(n=c>d)后n的值为A) 0 B) 1C) 2 D) 没有结果38解析:&&运算有一种称为短路的情况,即当&&左边的表达式值为0时,已经能够确定整个表达式的值为0,此时将不再计算&&右边表达式的值。
因此本题n=c>d没有运算,所以n的值不变。
39. 已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是A )0 B) 1 C) 5 D) 640. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为A) 68 B) D C) 错误D) d41.下列关于C语言的叙述错误的是。
A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个符号在不同的场合可以有不同的含义42. 有:int w=11,x=12,y=3,m; 执行下面语句后m的结果是。
m=(w<x)?w:x;m=(m<y)?m:y;A)1 B) 2 C) 3 D) 以上结果都不对44. 设整型变量m,n,a,b,c,d均为0,则执行“(m=a==b)||(n=c==d)”后,m,n的值是。
A)0,0 B)0,1 C)1,0 D)1,145. 设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是。
A)b=1.0/a B)b=(float)(1/a) C)b=1/(float)a D)b=1/(a*1.0)46. 执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为。
A)3,3,2B)3,2,2 C)3,2,3 D)2,3,246解析:自减运算符用于复合语句的时候,如果运算符在变量后面,则变量先参与执行语句,然后值再自减,所以b的值为3,a的值为2。
(a=3,b=a--)为逗号表达式,其值为最后一个表达式的值,所以x被赋值为3。
47. 若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是。
A)1 B)2 C)2.0 D)2.547解析:“x=1,y=x+3/2”为逗号表达式。
3/2值为1而非1.5。
y为doube类型,所以其值为2.0而不是2。
48. 表达式“1?(0?3:2)(10?1:0)”的值是()。
A)3 B)2 C)1 D)049. 若“int n; float f=13.8;”,则执行“n=((int)f)%3”后,n的值是。
A)1 B)4 C)4,333333 D)4.650. 设int x=0, y=1; 表达式(x||y)的值是。
A) 0 B) 1 C) 2 D) -152. 设x为int型变量,则执行语句x=10; x*=x;后,x的值为。
A) 10 B) 20 C) 100 D) 053. 若有语句int a=1,b; double y=2.3; b=(int)y; 则b的值为。A) 3 B) 2C) 1 D) 2.354. 已知int x;char y;则下面错误的scanf函数调用语句为。
A)scanf(“%d,%d”,&x,&y); B) scanf(“%d,%c”,x,y)C) scanf(“%d%d”,&x,&y) D) scanf(“%d,%c”,&x,&y)56.在C语言的库函数中,可以输出char型变量x值的语句是。
A)getchar(x); B)fputc(x) C)putchar(x) D)puts(x)57. 设x、y均为整型变量,且x=10 y=3,则语句printf(”%d,%d\n”,x--,++y);的输出结果是。
A) 10,3 B) 9,3 C) 9,4 D)10,457解析:自加(或自减)运算符用于复合语句的时候,如果运算符在变量前面,则变量的值先自加(或自减),然后用自加(或自减)后的值执行语句。
如果运算符在变量后面,则变量先参与执行语句,然后值再自加(或自减)。
58. 以下说法正确的是。
A) 'x'+101是一个错误的表达式B) C语言不允许类型的混合运算C) 强制类型转换时,类型说明符必须加括号D) (int)x+y 和(int)(x+y) 是完全等价的表达式59.表达式sizeof(double)是。
A) 函数调用B) double型表达式C) int型表达式D) 非法表达式62. 以下运算符中优先级最高的运算符是:A)&& B)++C)?D)!=二、阅读程序,写出运行结果1.#include <stdio.h>main(){printf("a_bc\td\re\t_f\n"); printf("gh_\tij_\b\b__k"); }注:“_”代表一个空格。