C语言 课后作业题
- 格式:docx
- 大小:36.21 KB
- 文档页数:25
c语言《程序设计基础》课后习题参考答案与解析1. 习题一:编写一个C程序,输出“Hello World!”。
解析:这是一个非常简单的C程序,只需要使用printf函数输出所需的字符串即可。
```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 习题二:编写一个C程序,计算两个整数的和并输出结果。
解析:这个程序需要使用scanf函数从用户输入中读取两个整数,并使用printf函数输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```3. 习题三:编写一个C程序,判断一个数是奇数还是偶数并输出结果。
解析:这个程序需要使用scanf函数读取用户输入的整数,并使用if-else语句判断该数的奇偶性,然后使用printf函数输出结果。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数");} else {printf("该数是奇数");}return 0;}```4. 习题四:编写一个C程序,判断一个年份是否为闰年并输出结果。
一、二、三、、选择1.2.3.4.5.、填空1.2.3.4.5.、算法1.2.1. 以下2. 在一3. 以下4. 结构5. 在程1. 一个2. 3. 算法4. 结构5. 结构算法设1. 求三2. 选择题以下叙A. B. C.D.(句在一个A. B. C.D.(程序以下叙A. B. C.D.(结构化A. B. C.D.(在程序A. B. C.D.填空题一个简一个算法的结构化结构化算法设计求三个求1+2择题 以下叙述 C 语言C. D. (解释句,另外 必须 可以C. 必须D. 必须(解释程序也就以下叙述 C 语言C. D. 同一(解释结构化程 程序 程序C. 程序D. 程序(解释在程序设 不限 减少C. 程序D. 程序空题 一个简单C 算法的特结构化程结构化程法设计题求三个数1+2+3下叙述不正一个语言程在一个解释:一个必须在程可以在任必须在程必须在系解释:序也就执下叙述中正在语言程构成同一个解释:构化程序设程序的规程序的易程序的执程序的可解释:程序设计时不限制减少或取程序越短程序结构个简单的语言法的特性是构化程序由构化程序设计题三个数中的+2+3+述不正确个C 语言语言程序C 语言程个C 语言:另外被C 须在程序以在任意须在程序须在系统:一个也就执行述中正确C 语言程语言程序成C 语言一个:程序设计序的规模序的易读序的执行序的可移:结构设计时限制got 少或取消序越短越序结构应单的语言程序特性是程序由程序设计 数中的最+3+不正确的语言程言程序的语言程序语言程C 语言程外被“程序中在程序的在任意地在程序的在系统调一个就执行完了中正确的语言程序言程序中语言程C 语言main 序设计主的规模的易读性的执行效的可移植结构化程计时,或取消注越短越好结构应有C 语言言程序是性是 有穷序由 顺序序设计方中的最大…正确的是语言程序程序的基本言程序中语言程序语言程序/*”序中,程序的最任意地方程序的最系统调用个C 程序行完了正确的是言程序中程序中有输语言程序语言程ain 函数设计主要强规模易读性执行效率可移植性构化程序,应采纳goto 语句取消注释短越好构应有助语言程程序是从顺序结设计方法的的最大者+100的是(言程序可的基本组程序中言程序必言程序中”和“,序的最后面意地方序的最前面统调用的库程序总完了)的是(程序中,中有输入言程序的语言程序函数在一主要强调读性行效率移植性化程序设应采纳的语句的消注释行越好应有助于读语言程序至序是从有穷性顺序结构方法的主大者。
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语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。
课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。
```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。
1.输入一个不超过五位的正整数,输出其逆数。
例如输入12345,输出应为54321。
#include<stdio.h>main(){int s[5];int n,j;printf("请输入一个正的五位数");scanf("%d",&n);s[0]=n%10;printf("%d",s[0]);s[1]=(n%100-s[0])/10;printf("%d",s[1]);s[2]=(n%1000-s[0]-s[1])/100;printf("%d",s[2]);s[3]=(n%10000-s[0]-s[1]-s[2])/1000;printf("%d",s[3]);s[4]=(n%100000-s[0]-s[1]-s[2]-s[3])/10000;printf("%d",s[4]);printf("输出逆转后的5位数");for(j=0;j<=4;j++){printf("%d",s[j]);}}2.计算1+2+3…+n的值,n是从键盘输入的自然数。
#include <stdio.h>main(){int n;int i;printf("请输入一个自然数:");scanf("%d",&n);i=n*(n+1)/2;printf("输出1-n的自然数之和:%d\n",i);}3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。
#include <stdio.h>#define naxx 10main(){int s[naxx];int a[naxx];int i=0;int j=0;int l=0;int sum=0;int k;printf("请输入:");for(i=0;i<naxx;i++){scanf("%d",&s[i]);}for(j=0;j<naxx;j++){ if(s[j]>0){a[l]=s[j];sum+=a[l];l++;}}for(i=0;i<l;i++){ printf("%d\n",a[i]);}printf("输入数之和%d\n",sum);}4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。
C语言1-7章课后作业答案第一章 C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】请从以下的4个选项中选择一个正确答案。
(1)A (2)C (3)B (4)D(5)A (6)C【习题1-3】填空。
(1)英文字母、下划线、数字(2)函数(3) 函数头、函数体(4)独立(5);、#、/*…*/、{、}、 main、main【习题1-4】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。
101 int 3ip x_1 x+1 count 1234Xy x%y if while a.bc x&y _ _1_112 Abc name x break for x=y合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for合法的用户标识符有:x_1、count、Xy、Abc、name、x【习题1-5】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-6】上机运行本章的3个例题。
略【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第二章基本数据类型和运算符【习题2.1】上机编辑并调试本章所有例题。
C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。
存储器是计算机中具有记忆能力的部件,用来存放程序和数据。
输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。
在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
C语言作业题【输出形式】用户在下一行显示输出结果【样例输入】3.47【样例输出】3【样例说明】与输入值3.47接近的整数为3和4,3.47比3.5小,舍掉小数部分,结果为3。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0104.c。
当前编程题:第一次作业--- 计算空格换行个数5. 【问题描述】编写一程序,分别计算所输入的字符串中空格,换行符的个数。
【输入形式】输入可以是键盘上的任意字符。
【输出形式】分别输出空格,换行符的个数,输出的结果一行显示,数字之间以空格格开。
【输入样例】bb ss pp=fz【输出样例】2 1【样例说明】字符b与s之间有一个空格,s与p之间有一个空格,p与f之间有一个换行。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0105.c。
当前编程题:第一次作业--- 整数组合(选做题)6. 【问题描述】假设unsigned short类型占16位,x、y、z都是short类型。
编写一程序,从键盘输入x,y 的值(十进制形式),然后将x的高8位作为z的高8位,y的高8位作为z的低8位,最后输出z的值(十进制形式)。
【输入形式】以十进制形式输入x和y的值,以空格隔开。
【输出形式】以十进制形式在新的一行上输出z值。
【输入样例】840 2177【输出样例】776【样例说明】840的二进制形式为:0000 0011 0100 10002177的二进制形式为:0000 1000 1000 0001将840的高8位作为结果的高8位,2177的高8位作为结果的低8位,所以结果为:0000 0011 0000 1000,即十进制形式为:776【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0106.c。
当前编程题:第二次作业--- 数字排序1. 【问题描述】编写一个程序,将输入的三个数从小到大排列出来。
【输入形式】用户在第一行输入三个数字,每个数字用空格分开。
【输出形式】程序在下一行按照从小到大的顺序将三个数字输出出来,每个数字也用空格分开。
要求程序可以处理整数和浮点数两种输入情况的比较。
【样例输入】2.4 5.6 1.5【样例输出】1.5#2.4#5.6 #表示空格(要求输出时输出空格,而不是输出#,这里#只是表示空格而已!)【样例说明】输入3个数字,每个数字之间用空格分开,并且进行从小到大排列,最后进行输出。
这里的数字可以是整数,也可以是浮点数。
提示:输入时以%f格式读入到float类型的变量中,排完序以后,输出时以%g格式输出即可。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:sort.c。
当前编程题:第二次作业--- 找最大最小整数2. 【问题描述】编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。
【输入形式】用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】程序在下一行输出数据的最大值和最小值【样例输入】589 62 96 74 52【样例输出】96 52【样例说明】用户第一次输入的为数据个数,在下一行依次输入数据。
输出为5个数中的最大值和最小值,输出时候两个数之间用空格分隔。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:getmaxandmin.c 当前编程题:第二次作业--- 日期天数转换3. 【问题描述】编写一个程序,用户输入日期,计算该日期是这一年的第几天。
【输入形式】用户在第一行输入一个日期(年月日,中间以空格分割)【输出形式】程序在下一行输出一个整数【样例输入】2006 2 21【样例输出】52【样例说明】用户以年月日的格式输入,中间以空格分割,程序计算出该天是输入年份的第几天并输出该天数。
另外还需要判断这一年是否为闰年。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:datetoday.c当前编程题:第二次作业--- 求和4. 【问题描述】编写一个程序,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。
【输入形式】输入一个正整数n,根据求s公式计算s并输出。
【输出形式】输出的为s的结果。
【样例输入】5【样例输出】35【样例说明】用户输入一个正整数,按照公式将输入值赋给n,输出计算后的结果。
【评分标准】结果完全正确得20分,每个测试点4分。
当前编程题:第二次作业--- 简易计算器5. 【问题描述】编程实现简易的计算器:读入两个整数运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可以是+,-,*,/.【输入形式】控制台输入运算数和运算符:1.首先输入以空格分隔的两个整数,分别是data1和data2;2.输入一个字符作为运算符op,op可以是’+’,’-’,’*’,’/’。
输入时,data1、data2、op之间各留有一个空格。
具体格式见样例输入。
【输出形式】控制台输出运算结果【样例输入】23 5 *【样例输出】115【样例说明】输入中先后输入第一个运算数23,第二个运算数5,运算符’*’,要求对23和5进行乘法运算。
计算结果为115。
【评分标准】该题共20分,每个测试点4分。
本题要求上传程序的源文件。
所采用语言可以是C(.c).即所上传的文件名为calculator.c当前编程题:第二次作业--- 正整数的打印6. 【问题描述】给出一个不多于5位的正整数,要求:1.求出它是几位数。
2.分别打印出每一位数字。
3.按照逆序打印出每一位数字。
【输入形式】控制台输入该正整数。
【输出形式】控制台分行输出输出结果。
【样例输入】1234【样例输出】412344321【样例说明】1234位数为4,分别为1,2,3,4,逆序为4321【评分标准】该题共有三个输出整数,完全正确得10分,每答错一个扣掉4分,直至得分为0。
本题要求上传程序的源文件。
所采用语言可以是C(.c)。
主文件名设定为intprint.c当前编程题:第三次作业--- 求水仙花数1. 【问题描述】编写一个程序,输入一个正整数N(N大于等于100小于等于999),求出100~N之间的所有水仙花数。
所谓的水仙花数是:如果一个三位数的个位数、十位数、百位数的立方和等于该数自身,就称这个数为水仙花数。
【输入形式】输入一个正整数N。
【输出形式】输出从100到N之间的所有水仙花数,每个数以回车结束。
【样例输入】400【样例输出】153370371【样例说明】输入一个的正整数400,输出为100~400之间的水仙花数153,370,371 【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:shuixianhua.c。
当前编程题:第三次作业--- 时钟指针2. 【问题描述】普通时钟都有时针和分针,在任意时刻时针和分针都有一个夹角,并且假设时针和分针都是连续移动的。
现已知当前的时刻,试求出该时刻时针和分针的夹角A (0≤A≤180)。
注意:当分针处于0分和59分之间时,时针相对于该小时的起始位置也有一个偏移角度。
【输入形式】从标准输入读取一行,是一个24小时制的时间。
格式是以冒号(“:”)分隔的两个整数m(0≤m≤23)和n(0≤n≤59),其中m是小时,n是分钟。
【输出形式】向标准输出打印结果。
输出一个浮点数A,是时针和分针夹角的角度值。
该浮点数保留3位小数值。
【输入样例】8:10【输出样例】175.000【样例说明】8:10那个时刻时针与秒针的夹角是175.000度【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:clock.c。
当前编程题:第三次作业--- 打印正六边形3. 【问题描述】编写一个程序,输入一个正整数N,在屏幕上用‘*’打印以N为边长的正六边形。
【输入形式】输入一个正整数N。
【输出形式】屏幕上输出以N为边长的正六边形。
【样例输入】4【样例输出】***** ** ** ** ** *****【样例说明】输入的为一个正整数,打印输出一个以这个正整数为边长的正六边形.###****##*####*#*######**########*#*######*##*####*###****#号代表空格。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:libianxing.c。
当前编程题:第三次作业--- 判断可逆素数4. 【问题描述】若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数。
编写一个判断某数是否可逆素数的函数,在主函数中输入一个整数,再调用此函数进行判断【输入形式】用户在第一行输入一个整数。
【输出形式】程序在下一行输出yes或是no,yes表示此数是可逆素数,no表示不是。
用户输入的数必须为正整数。
注意:yes或是no全是小写输出。
【样例输入】23【样例输出】no【样例说明】用户输入23,23各位数字颠倒之后得到32,23是素数,但32不是素数,所以23不是可逆素数。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:getprimenum.c当前编程题:第三次作业--- 回文数5. 【问题描述】所谓“回文数”是指具有如下性质的整数:一个整数,当它的各位数字逆序排列,形成的整数与原整数相同,这样的数称为回文数。
例如,素数11,373,其各位数字对换位置后仍然为11,373,因此这两个整数均为回文数。
编写函数int loop(int x),判断一个整数是否为回文数,如果x是回文数则返回1,否则返回0。
编写程序loop.c,接收控制台输入的两个整数a,b。
调用loop函数输出a到b之间(包括a和b)的所有回文数【输入形式】控制台输入两个整数a和b(必有a<b),以空格分隔。
【输出形式】输出有若干行,每行有一个a和b之间的回文数。
输出各行上的数字不重复,且从小至大依次按序输出。
【样例输入】3 120【样例输出】3456789112233445566778899101111【样例说明】输入整数a=3,b=120,要求输出所有[3, 120]之间的回文数。
按升序分行输出所有符合题意的整数。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:loop.c。
当前编程题:第三次作业--- 矩形相交6. 【问题描述】平面上有两个矩形A和B,其位置是任意的。
编程求出其相交部分(如图中阴影部分)的面积。
(0≤a,b≤1000)【输入形式】从标准输入读取两行以空格分隔的整数,格式如下:Ax1 Ay1 Ax2 Ay2Bx1 By1 Bx2 By2其中(x1,y1)和(x2,y2)为矩形对角线上端点的坐标。
各坐标值均为整数,取值在0至1000之间。
【输出形式】向标准输出打印一个整数,是两矩形相交部分的面积(可能为0)。