C语言第5章
c语言第五章习题答案
第一题: 1. 从键盘输入10个数,求和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;} printf("s=%d\n",s ); } 2. 从键盘输入10个数,求平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;}
ave=s/10; printf("s=%d,ave=%d\n",s ,ave ); } 3. 从键盘输入10个数,求偶数的和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) s+=x;} printf("s=%d\n",s ); } 4. 从键盘输入10个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0;
for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) {s+=x;k++;} } ave=s/k; printf("s=%d,ave=%d\n",s,ave ); } 5. 从键盘输入n个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0; int n; scanf("%d",&n); for(i=0;i 作业四:简单程序设计 1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B);如果字符串长度小于5,则输出按方式(C)。(5分)(重要) A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 2.阅读以下程序,当输入数据的形式为:25,13,10 scanf(“%c%c%c”,&ch1,&ch2,&ch3); printf(“%c%c%c”,ch1,ch2,ch3); } 4.以下的输出结果是(x=1,y=2*sum*=3 10 Squard is : 100)。(5分) main() { int x=1,y=2; printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y); printf(“10 Squared is : %d\n”,10*10); } 5.若a=3,b=4,c=5,x=,y=,z=,u=51274,n=128765,c1=’a’,c2=’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:(20分) a= 3 b= 4 c= 5 x=,y=,z= x+y= y+z= z+x= u= 51274 n= 128765 c1=’a’ or 97(ascll) c2=’b’ or 98(ascll) main() { int a=3,b=4,c=5; 1 判断一个整型数据有几位v2.0(4分) 题目内容: 从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1 个1,2个6,2个4。 程序运行结果示例1: Please enter the number: 12226↙ 12226: 5 bits 1: 1 2: 3 6: 1 程序运行结果示例2: Please enter the number: -12243↙ -12243: 5 bits 1: 1 2: 2 3: 1 4: 1 输入格式: "%d" 输出格式: 输入提示信息:"Please enter the number:\n" 判断该整数共有几位:"%d: %d bits\n" 包含数字0的个数:"0: %d\n" 包含数字1的个数:"1: %d\n" 包含数字2的个数:"2: %d\n" 包含数字3的个数:"3: %d\n" 包含数字4的个数:"4: %d\n" 包含数字5的个数:"5: %d\n" 包含数字6的个数:"6: %d\n" 包含数字7的个数:"7: %d\n" 包含数字8的个数:"8: %d\n" 包含数字9的个数:"9: %d\n" 为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你 的程序中。 题目内容: 企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时,高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 程序运行结果示例1: 789↙ bonus=78 练习5-1答案 一、选择题 1.合法的数组说明语句是( B )。 A.int a[]="string"; B.int a[]={0,1,2,3,4,5}; C.char a="string"; D.char a[5]={'0', '1', '2', '3', '4', '5'}; 2.以下对一维整型数组a的说明正确的是( D )。 A.int a(10); B.int n=10, a[n]; C.int n; D.#define SIZE 10 scanf("%d", &n); int a[SIZE]; int a[n]; 3.已知:int a[10];,则对a数组元素的正确引用是( D )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 4.以下对一维数组a进行正确初始化的语句是( C )。 A.int a[10]=(0, 0, 0, 0, 0); B.int a[10]={}; C.int a[]={0}; D.int a[2]={10, 9, 8}; 5.对以下说明语句的正确理解是( B )。 int a[10]={6, 7, 8, 9, 10}; A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10] D.因为数组长度与初值的个数不相同,所以此语句不正确 二、填空题 6.求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。 例如:满足题意要求的数有:N=1,11*11=121;N=111,111*111=12321。 #include 单选题 1、关于数组的定义与初始化,下列哪一项是错误的() A.int arr[5] = {1,2,3,4,5}; B.int arr[] = {1,2,3,4,5}; C.int arr[5] = {1,2,3}; D.int arr[5] = {1,2,3,4,5,6}; 2、在定义数组intarr[10]后,下列选项中对arr的引用正确的是() A.arr[10] B.arr[6.3] C.arr(6) D.arr[0] 3、在C语言中,引用数组元素时,其数组下标的数据类型允许是() A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 4、若intarr[5] = {1,2,3}; 则arr[2]的值为() A.1 B.2 C.3 D.null 5、在执行intarr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为() A.4 B.1 C.2 D.5 6、关于二维数组,下列选项能正确定义并赋初值的是() A.int n = 5,b[n][n]; B.int a[1][2] = {{1},{3}}; C.int c[2][] = {{1,2},{3,4}}; D.int a[3][2] = {{1,2},{3,4}}; 7、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s); 其输出结果为() A.a book! B.a book C.abo D.a 8、阅读下列程序: int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } }; printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]); c语言函数库 第五章(数学函数) 1. abs、labs、fabs:求绝对值函数................... 错误!未定义书签。 2. acos:反余弦函数............................... 错误!未定义书签。 3. asin:反正弦函数............................... 错误!未定义书签。 4. atan:反正切函数................................ 错误!未定义书签。 5. atan2:反正切函数2.............................. 错误!未定义书签。 6. ceil:向上舍入函数.............................. 错误!未定义书签。 7. cos :余弦函数.................................. 错误!未定义书签。 8. cosh:双曲余弦函数............................. 错误!未定义书签。 9. div、ldiv:除法函数............................. 错误!未定义书签。 10. exp:求e的x次幂函数......................... 错误!未定义书签。 11. floor:向下舍入函数........................... 错误!未定义书签。 12. fmod:求模函数................................ 错误!未定义书签。 13. frexp:分解浮点数函数......................... 错误!未定义书签。 14. hypot:求直角三角形斜边长函数................. 错误!未定义书签。 15. ldexp:装载浮点数函数......................... 错误!未定义书签。 16. log、log10:对数函数.......................... 错误!未定义书签。 17. modf:分解双精度数函数........................ 错误!未定义书签。 18. pow、pow10:指数函数.......................... 错误!未定义书签。 19. rand:产生随机整数函数........................ 错误!未定义书签。 20. sin:正弦函数................................. 错误!未定义书签。 21. sinh:双曲正弦函数........................... 错误!未定义书签。 22. sqrt:开平方函数.............................. 错误!未定义书签。 23. srand:设置随机时间的种子函数................. 错误!未定义书签。 24. tan:正切函数................................ 错误!未定义书签。 25. tanh:双曲正切函数............................ 错误!未定义书签。 1.abs、labs、fabs:求绝对值函数 函数原型:int abs(int x); long labs(long x); double fabs(double x); 头文件:#include<> 是否是标准函数:是 函数功能:函数int abs(int x);是求整数x的绝对值;函数long labs(long n);是求长整型数x的绝对值;函数double fabs(double x); 是求浮点数x的绝对值。 返回值:返回计算结果。 例程如下:计算整数的绝对值。 #include <> int main(void) 第五章 1、设二维数组A【8】【10】是一个按行优先顺序存储在内存中的数组,已知A【0】【0】的起始存储位置为1000,每个数组元素占用4个存储单元,求: (1)A【4】【5】的起始存储位置。 A【4】【5】的起始存储位置为1000+(10*4+5)*4=1180; (2)起始存储位置为1184的数组元素的下标。 起始存储位置为1184的数组元素的下标为4(行下标)、6(列下标)。 2、画出下列广义表D=((c),(e),(a,(b,c,d)))的图形表示和它们的存储表示。 略,参考第5·2节应用题第5题分析与解答。 3、已知A为稀疏矩阵,试从时间和空间角度比较采用两种不同的存储结构(二维数组和三元组表)实现求∑a(i,j)运算的优缺点。 稀疏矩阵A采用二维数组存储时,需要n*n个存储单元,完成求∑ii a(1≤i≤n)时,由于a【i】【i】随机存取,速度快。但采用三元组表时,若非零元素个数为t,需3t+3个存储单元(t个分量存各非零元素的行值、列值、元素值),同时还需要三个存储单元存储存稀疏矩阵A的行数、列数和非零元素个数,比二维数组节省存储单元;但在求∑ii a(1≤i≤n)时,要扫描整个三元组表,以便找到行列值相等的非零元素求和,其时间性能比采用二维数组时差。 4、利用三元组存储任意稀疏数组时,在什么条件下才能节省存储空间? 当m行n列稀疏矩阵中非零元素个数为t,当满足关系3*t 5.3输入两个正整数m和n,求其最大公共约数和最小公倍数。 解:用"辗转相除取余"法求之。 参考程序如下: #include #include printf("它们的最大公约数为:%d\n",n); printf("它们的最小公约数为:%d\n",p/n); return 0; } xt5-4 #include 第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、 !。其中优先级最高的为! ,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以 0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x P124 2古典问题:兔子总数(斐波那契数列)#include printf("请输入一个整数:\n"); scanf("%d",&a); while(a>0) { n=a%10; printf("%d",n); a=a/10; } return 0; } P124 5输出回文数 #includeC语言课后练习题答案第五章
第五章 MOOC C语言
C语言第五章习题带答案更新Word版
C语言程序设计教程第五章练习题题目
c语言函数库-第五章(数学函数)
数据结构(c语言版)第五章答案
c语言第五章 答案
C语言第五章课后答案
c语言第五章选择结构程序设计(习题册答案)
C语言程序设计教程 第五章 课后习题参考答案