C语言课后习题答案
更新时间:2023-10-28 17:40:01 阅读量: 综合文库 文档下载
- c语言课后题及答案推荐度:
- 相关推荐
C语言课后习题答案
第一章 习题答案 一、选择题
1~5:BDCDA 6~10:DABBB 11~12:CC 二、填空题
1、main()
2、函数首部 ,函数体 3、函数
4、编辑、编译、连接、运行 5、.cpp、.obj、 .exe 6、; 或 分号 三、编程题
#include
void main() /* 定义名为main 的函数,它不接受参数值 */ { /* main函数的语句都被括在花括号中 */ printf(\
/* main 函数调用库函数printf 以显示字符序列,其中\\n代表换行符 */ }
第二章 习题答案 一、选择题
1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD 二、填空题
1、整型,实型,字符型,枚举类型 2、1 3、9 4、12353514 5、2,1 6、2,2 7、10 20 0 8、a=14 9、2,3,1
10、double
第三章 习题答案
一、选择题
1~5:CBBBC 6~10:DDDBB 二、填空题
1、控制语句,表达式语句, 复合语句 2、 ; 3、{} 4、1 5、a
6、c:dec=120,oct=170,hex=78,ASCII=x 7、32767,32767 8、10,A,10 9、3 3 10、
(1) 123.456001
(2) □□□□□□□ 123.456 (3) 123.4560 (4) 8765.456700
(5) □□□□□□ 8765.457 (6) 8765.4567 (7) 8765.4567 三、编程题 1、参考答案: #include
void main() {
int a,b,c; long int u,n; float x,y,z; char c1,c2; a=3;b=4;c=5;
x=1.2;y=2.4;z=-3.6; u=51274;n=128765; c1='a';c2='b'; printf(\
printf(\ b=- c=-\\n\ printf(\
printf(\ y+z=%5.2f z+x=%5.2f\\n\
printf(\ n=%9ld\\n\
printf(\ printf(\ }
2、参考答案:
#include
float a, b, c, t;
printf(\ scanf (\ t=(a+b+c)/3;
printf (\、%6.2f and %6.2f }
3、参考答案: #include
main() {
int R, d; float s;
printf(\请输入圆的半径\ scanf(\ d=2*R;
c=2*3.14159*R;
printf(\ }
4、参考答案:
#include
int h, f, x, y; /* x为鸡的数量,y为兔的数量 */ printf(\请输入鸡兔的总头数h,总脚数 f:\ scanf(\ x=(4*h-f)/2; y=(f-2*h)/2;
printf(\笼中有鸡%d 只,有兔%d只。\\n\}
第四章 习题答案 一、选择题 CDDDD CDBBC 二、填空题
is %6.2f\\n\ 1、&&, || , !, ! , | | 2、(y%2 0) 3、1
4、(a+b>c&&a+c>b&&b+c>a) 5、2 3 3 6、7 三、编程题 1、参考答案: #include
scanf( \
if (x%5 0 && x%7 0) printf(\ else
printf(\ }
2、参考答案: #include
void main( )
{ int a, b, c, max ;
printf (\请输入三个整数:%%d%%d%%d\\n\ scanf( \ if ( a>=b )
if ( a>=c ) max=a; else max=c; else
if ( b>=c ) max=b; else max=c;
printf (\最大数为:%d\\n\ }
3、参考答案: #include
void main ( ) {
float x , y ;
printf( \请输入x 的值:\
scanf( \ if (x<1) y=1; else if (x<10) y=2*x-1; else
y=3*x-11;
printf(\ }
4、参考答案: #include
void main( ) {
int year;
float money,rate,total; /* money:本金 rate:月利率 total:本利合计 */
printf(\
scanf(\ /* 输入本金和存款年限 */ if(year 1) rate=0.00315; /* 根据年限确定利率 */
else if(year 2) rate=0.00330; else if(year 3) rate=0.00345; else if(year 5) rate=0.00375; else if(year 8) rate=0.00420; else rate=0.0;
total=money + money * rate * 12 * year; /* 计算到期的本利合计 */ printf(\ }
第五章 习题答案 一、选择题 1~5: ACCBA 6~10:ACDCB 二、填空题
1、(1) i<=9 或 i<10 (2) j%3!=0 2、7
3、(1) ch=ch+1、(2) printf(\ 三、编程题 1、参考答案: #include
{ int a[11]={3,4,7,9,10,13,14,15,18,20}; int i,j,n;
scanf (\ i=0;
while (i<10) { if (n
for (j=10; j>i; j--) a[j]=a[j-1]; a[i]=n; break; } i++; }
if (i>=10) a[10]=n;
for (i=0;i<11;i++) printf(\ }
第八章 习题答案 一、选择题
1?5 A B C C B 6?10 D A C B B 11?15 D A C C C 二、填空题
1. (1)* (2) &
2. (1) *p (2) **a (3) 2 3. 10 4. *p>*s 5. *(++p) 三、编程题
1. 编程实现从键盘输入一个字符串, 将其字符顺序颠倒后重新存放, 并输出这个字符串。 #include
void Inverse(char *pStr)? main() {
char str[80]?
printf(\
gets(str)? /*输入字符串*/
Inverse(str)? /*将存于 str 数组中的字符串逆序存放*/ printf(\
puts(str)? /*输出字符串*/
}
/*函数功能: 实现字符串逆序存放
函数参数: 字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此 返回值: 无*/
void Inverse(char *pStr) {
int len? char temp?
char *pStart? /*指针变量 pStart 指向字符串的第一个字符*/
char *pEnd? /*指针变量 pEnd指向字符串的最后一个字符*/ len = strlen(pStr)? /*求出字符串长度*/
for (pStart=pStr,pEnd=pStr+len?1? pStart temp = *pStart? *pStart = *pEnd? *pEnd = temp? } } 2.从键盘任意输入 10 个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组 中的位置。 #include int FindMax(int num[], int n, int *pMaxPos)? int FindMin(int num[], int n, int *pMinPos)? main() { int num[10], maxValue, maxPos, minValue, minPos, i? printf(\ for (i=0? i<10? i++) { scanf(\ /* 输入 10 个数*/ } maxValue = FindMax(num, 10, &maxPos)? /* 找最大值及其所在下标位置 */ minValue = FindMin(num, 10, &minPos)? /* 找最小值及其所在下标位置 */ printf(\ maxValue, maxPos, minValue, minPos)? } /*函数功能:求 n个数中的最大值及其所在下标位置 函数入口参数:整型数组 num,存储 n个整数,整型变量 n,表示数组元素个数 函数出口参数:整型指针变量 pMaxPos,指向的地址单元存储最大值在数组中的下标位置 函数返回值: 最大值*/ int FindMax(int num[], int n, int *pMaxPos) { int i, max? max = num[0]? /*假设 num[0]为最大*/ *pMaxPos = 0? /*假设最大值在数组中的下标位置为 0 */ for (i = 1? i < n? i++) { if (num[i] > max) { max = num[i]? *pMaxPos = i? } } return max ? } /*函数功能: 求 n个数中的最小值及其所在下标位置 函数入口参数: 整型数组 num,存储 n个整数,整型变量 n,表示数组元素个数 函数出口参数: 整型指针变量 pMinPos,指向的地址单元存储最小值在数组中的下标位置 函数返回值: 最小值*/ int FindMin(int num[], int n, int *pMinPos) { int i, min? min = num[0]? /*假设 num[0]为最小*/ *pMinPos = 0? /*假设最小值在数组中的下标位置为 0 */ for (i = 1?i < 10?i++) { if (num[i] < min) { min = num[i]? *pMinPos = i? } } return min ? } 3. 将 5 个字符串从小到大排序后输出。 #include char *pcolor[5]={ \ \ \ \ void fsort(char *color[ ], int n)? fsort( pcolor, 5 )? for(i = 0? i < 5? i++) printf(\ } void fsort(char *color[ ], int n) { int k, j? char *temp? for(k = 1? k < n? k++) for(j = 0? j < n?k? j++) if(strcmp(color[j],color[j+1])>0) { temp = color[j]? color[j] = color[j+1]? color[j+1] temp? } } 4. 编写一个能对任意m×n阶矩阵进行转置运算的函数 Transpose()。 #include void Transpose(int (*a)[COL], int (*at)[ROW], int row, int col)? void InputMatrix(int (*s)[COL], int row, int col)? void PrintMatrix(int (*s)[ROW], int row, int col)? main() { int s[ROW][COL]? /*s 代表原矩阵*/ int st[COL][ROW]? /*st 代表转置后的矩阵*/ printf(\ InputMatrix(s, ROW, COL)? /*输入原矩阵,s 指向矩阵 s的第 0行,是行指针*/ Transpose(s, st, ROW, COL)?/*对矩阵 s 进行转置,结果存放于 st 中*/ printf(\ PrintMatrix(st, COL, ROW)? /*输出转置矩阵,*st 指向 st 的第 0 行,是行指针*/ } /* 函数功能:对任意row行 col 列的矩阵转置 函数入口参数:指向一维整型数组的指针变量a,指向单元存放转置前的矩阵元素 整型变量 row,矩阵的行数即二维整型数组的行数 整型变量 col,矩阵的列数即二维整型数组的列数 函数出口参数:指向一维整型数组的指针变量at,指向单元存放转置后的矩阵元素 函数返回值: 无*/ void Transpose(int (*a)[COL], int (*at)[ROW], int row, int col) { int i, j? for (i=0? i for (j=0? j *(*(at+j)+i) = *(*(a+i)+j)? } } } void InputMatrix(int (*s)[COL], int row, int col) /*输入矩阵元素*/ { int i, j? for (i=0? i for (j=0? j scanf(\*(s+i)+j)? /*这里*(s+i)+j 等价于&s[i][j]*/ } } } void PrintMatrix(int (*s)[ROW], int row, int col) /*输入矩阵元素*/ { int i, j? for (i=0? i for (j=0? j printf(\这里*(*(s+i)+j)等价于 s[i][j]*/ } printf(\ } } 第九章 习题答案 一、选择题 1?5 B D D A C 6?10 B C A D C 二、填空题 1. struct DATA d={2006,10,1}? 2. sizeof(struct node) 3. person[i].sex 4. 13431 5. (1)struct node* (2)*s (3)p 三、编程题 1. 定义一个能正常反映教师情况的结构体 teacher,包含教师姓名、性别、年龄、所在部门和 薪水; 定义一个能存放两人数据的结构体数组 tea, 并用如下数据初始化:{{ “Mary “, ?W?,40, ?Computer? , 1234 },{“Andy“, ?M?,55, ?English? , 1834}};要求:分别用结构体数组 tea 和指针 p输出各位教师的信息,写出完整定义、初始化、输出过程。
正在阅读:
C语言课后习题答案10-28
肝硬化病人的心理护理07-20
艺术理论电影及电视广播常识Word 文档05-23
基层党组织现状调研调查问卷306-08
2016中国大学软件学院排名02-08
工作票、操作票使用和管理标准(2015年新版) - 图文06-23
全国海水养殖石斑鱼市场行情分析与行业发展前景报告2018目录07-08
2019-2020学年第一学期六年级语文第二次月考试题10-31
锅炉污染物计算01-25
英语专业四级语法与词汇总结05-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 课后
- 习题
- 答案
- 语言
- 余杭区政府投资项目工程变更和概预算调整管理规定
- 创建国家卫生县城典型材料(新)1
- 如家酒店营销策略存在的问题和对策
- 网络程序设计 - ASP模拟试卷
- 传播学引论笔记
- 腹腔镜手术器械技术审查指导原则(2017年第30号) - 图文
- 邢台医学高等专科学校教案首页 - 图文
- 人教版四年级数学下册全册教案(表格式)
- 测量放大器设计
- 运动控制系统电子教案
- 东北财经大学导学资料微观经济学
- 维修电工高级技师试题库(包括隐藏)判断、选择
- 第五批无锡市中小学教学能手名单
- 2016年中考文言文复习-《陋室铭》(含答案)
- 成本会计实训题
- 工程流体力学课后习题答案1-3
- 2019精选中考物理题型训练二动态电路和电路故障专题复习题
- 郭锡良古代汉语之授课教案
- 企业管理案例分析 麦当劳
- JP柜技术规范