大学c习题答案习题13答案
习题13答案一、简答题1.什么是运算符重载?实现运算符重载有几种方法?如何实现?答案:C++提供的运算符重载机制能够实现将已有运算符应用到新的数据类型变量上,赋予运算符新的含义。
C++对运算符重载有一些限制,见有两种方法可以实现运算符重载,它们是:类的成员函数方式和有友元函数方式。
定义友元的目的是在友元函数中直接访问类的私有成员。
实际上,可以通过类的公有函数接口访问类的私有成员,所以实现运算符重载,可以使用非成员、非友元实现运算符的重载。
但是这种实现方法增加了访问私有数据成员的公有函数的调用时间,不值得提倡。
见2.如何实现本类对象与其它类对象之间的相互类型转换?答案:可以使用“类型转换函数”将本类对象转换成其他类对象。
而“类型转换函数”本质上就是运算符的重载。
另外,可以使用“构造函数”将其他类对象转换成本类对象。
3.什么是虚函数?什么是纯虚函数?它们的作用是什么?答案:多态性是面向对象程序设计的重要特性,它与前面讲的封装性和继承性构成面向对象程序设计的三大特性。
这三大特性是互相关联的,封装性是基础,继承性是关键,而多态性是补充。
多态分为静态多态和动态多态。
函数重载和运算符重载属于静态多态。
动态多态是运行时的多态,如某些函数的调用关系在运行阶段才能确定。
为了实现函数调用关系的动态多态,可以将函数定义成虚函数。
将一个成员函数定义成虚函数的方法是,在函数定义的返回值类型前加virtual。
在抽象类中,有时无法实现某一功能(即无法决定某一函数的具体实现),只能将函数定义成纯虚函数。
虚函数具有函数实现的函数体,而纯虚函数没有函数体,即没有函数实现。
对纯虚函数,只能在其派生类中实现该函数的功能。
4.试比较虚函数与虚基类的概念及作用。
答案:虚函数用于实现动态多态。
而虚基类用于实现在多重继承情况下,基类数据成员在派生类中保留一个副本,见12.6节。
二、选择题答案:1. C2. D3. A4. D5. B6. C7. D8. C三、运行结果、完善程序1.运行结果:n=4n=32, 32.答案:先看虚线框中的程序,运行结果为:D::show( ) called. 8若将A行的virtual去掉,则结果为:B::show( ) called. 5对本题,若将虚线框中的fun( )和main( )函数同时修改成右侧实线框中的对应函数,则若A行有virtural时,结果为:D::show( ) called. 8 ;若A行无virtual时,结果为:B::show( ) called. 5 。
3.运行结果为:The B version BThe D1 info: 4 version 1The D2 info: 100 version BThe D3 info: -25 version 3去掉A行的virtual,则运行结果为:The B version BThe B version 1The B version BThe B version 34.答案:(1)operator char *( )(2)return s;(3)str = num;四、编程题1.答案:// 实现1,赋值运算符重(=和+=)载函数的返回值为对象的引用。
// 缺点:不可实现对象的连续赋值,只能c1= c2#include<iostream.h>class Complex{float Real, Image;public:Complex(float r=0,float i=0){Real=r;Image=i;}void show( ){cout<<"("<<Real<<','<<Image<<")\n";}void operator=(Complex &); //用成员实现,注意:=不能用友元实现void operator+=(Complex &); //用成员实现,+=可以用友元实现friend Complex operator+(Complex &,Complex &); //用友元实现friend Complex operator-(Complex &,Complex &); //用友元实现};void Complex:: operator=(Complex &c) //返回值void{Real=c.Real;Image=c.Image;}void Complex:: operator+=(Complex &c) //返回值void{Real=Real+c.Real;Image=Image+c.Image;}Complex operator+(Complex &c1, Complex &c2){Complex t;t.Real=c2.Real+c1.Real;t.Image=c2.Image+c1.Image;return t;}Complex operator-(Complex &c1, Complex &c2){Complex t;t.Real=c1.Real-c2.Real;t.Image=c1.Image-c2.Image;return t;}void main( ){Complex c1(1,2),c2(3,4),c3;c3=c1; c3.show( );c3=c1+c2; c3.show( );c3+=c2; c3.show( );c3=c1-c2; c3.show( );}// 实现2,赋值运算符重(=和+=)载函数的返回值为对象的引用。
// 优点:可实现对象的连续赋值,如c1=c2=c3#include<iostream.h>class Complex{float Real, Image;public:Complex(float r=0,float i=0){Real=r;Image=i;}void show( ){cout<<"("<<Real<<','<<Image<<")\n";}Complex & operator=(Complex &); //用成员实现,注意:=不能用友元实现Complex & operator+=(Complex &); //用成员实现,+=可以用友元实现friend Complex operator+(Complex &,Complex &); //用友元实现friend Complex operator-(Complex &,Complex &); //用友元实现};Complex & Complex:: operator=(Complex &c) //返回值为对象的引用{Real=c.Real;Image=c.Image;return *this;}Complex & Complex:: operator+=(Complex &c) //返回值为对象的引用{Real=Real+c.Real;Image=Image+c.Image;return *this;}Complex operator+(Complex &c1, Complex &c2){Complex t;t.Real=c2.Real+c1.Real;t.Image=c2.Image+c1.Image;return t;}Complex operator-(Complex &c1, Complex &c2){Complex t;t.Real=c1.Real-c2.Real;t.Image=c1.Image-c2.Image;return t;}void main( ){Complex c1(1,2),c2(3,4),c3;c3=c2=c1; c3.show( );c3=c1+c2; c3.show( );c3+=c2; c3.show( );c3=c1-c2; c3.show( );}2.答案:#include <iostream.h>#include <math.h>class Fraction{int m, n; // m 是分子,n 是分母public:Fraction(int im=0,int in=1){int t=gcd(im,in);m=im/t; n=in/t;if(m*n>0) // 若分子和分母同号{ m=abs(m); n=abs(n); }else // 若分子和分母异号{ m=-abs(m); n=abs(n); };}int gcd(int x,int y);Fraction & operator= ( Fraction b ){m=b.m; n=b.n;return *this;}Fraction operator+ ( Fraction b ){ return Fraction(m*b.n+n*b.m,n*b.n); }Fraction operator- ( Fraction b ){ return Fraction(m*b.n-n*b.m,n*b.n); }friend Fraction operator* ( Fraction a, Fraction b );friend Fraction operator/ ( Fraction a, Fraction b );void Show(){ cout<<m<<'/'<<n<<endl; }};int Fraction::gcd(int x,int y ) //返回的最大公约数是正数{int r;if(x<0) x= -x;if(y<0) y= -y;while( r=x%y ){ x=y; y=r; }return y;}Fraction operator* ( Fraction a, Fraction b ){ return Fraction(a.m*b.m, a.n*b.n); }Fraction operator/ ( Fraction a, Fraction b ){ return Fraction(a.m*b.n, a.n*b.m); }void main( ){Fraction a(1,3),b(3,-12),c;cout<<"a="; a.Show( );cout<<"b="; b.Show( );c=a+b;cout<<"a+b="; c.Show();c=a-b;cout<<"a-b="; c.Show();c=a*b;cout<<"a*b="; c.Show();c=a/b;cout<<"a/b="; c.Show();}3.答案:#include<iostream.h>class Point{float x,y;public:Point(float a=0,float b=0){ x=a;y=b; }void show( ){ cout<<"x="<<x<<'\t'<<"y="<<y<<'\n'; }Point & operator++( ); //用成员函数实现前置,返回引用Point operator++(int); //用成员函数实现后置,返回对象friend Point & operator--(Point &); //用友元函数实现前置,返回引用friend Point operator--(Point & ,int);//用友元函数实现后置,返回对象// 前置或后置,一般应返回对象或引用,否则只能单独使用// 既a++ 合法,而b=a++; 非法};Point & Point::operator++( )//前置,成员实现{x++;y++;return *this;}Point Point::operator++(int)//后置,成员实现{Point t=*this;x++;y++;return t;}Point & operator--(Point &p)//前置,友元实现{p.x--; p.y--;return p;}Point operator--(Point &p,int)//后置,友元实现{Point temp=p;p.x--;p.y--;return temp;}void main( ){Point m(1,2), c;c=m++; // 如果只写m++; m.show( ); 则无法测出是前置还是后置c.show( );m.show( );c=++m;c.show( );m.show( );c=m--;c.show( );m.show( );c=--m;c.show( );m.show( );}4.答案:#include<iostream.h>#include<string.h>class string{char *str;int len;public:string(char *s=0)//构造函数,含缺省构造函数{if(s) //此处必须判断s是否为空指针。
大物书后习题答案整理(杨晓峰版)-习题13
习题 13-9 解答: 两个圆环形导体垂直放置,a 导体产生的磁场与 b 导体所在线圈的法线相互
垂直,即 b 中的磁通量为零,同理 a 中的磁通量也为零,两个线圈中不会产生互 感电动势,因此没有互感。但是由于自身电流的变化,在每个线圈中产生自感电 流。
习题 13-10 解答: 电流和电压的均方根值等于它们瞬时值的平方在一个周期内的积分的平均
0 2π (x + d )
负号表示棒上动生电动势的方向与 dx 的方向相反,即由 B 到 A 。
习题 13-13 解答: 金属线框平面的法线和磁场方向相互垂直,因此金属框在旋转过程中通过它
的磁通量没有变化,因此回路中的感应电动势为零。a、c 两点间的电势差只要 通过求解 ac 棒中的感应电动势即可得到。
习题 13-5 解答: 感应电场电场线是闭合的,感生电场是非保守力场,且在闭合曲线上 EK 不
一定相等,故(A)、(B)、(C)排除,又由于电势的概念是根据静电场力是保守力而 引入,故答案为(D)。
习题 13-6 解答: 联结 OA 、OB ,构成闭合回路 OBAO(三角型)或 OBCAO(扇型),由于 OA
t2 t1
Iidt
1 R
2 d
1
1 R
(2
1 )
可知,线圈中通过的电荷与时
间无关,又2
1
BS
cos 60
BS
1 2
BS
,则电荷与线圈面积成正比。
习题 13-3 解答:
当 aOc 以速度v 沿 x 轴正向运动时, 选定 aoc 为正方向,根据动生电动势的
定义 i
b (v
a
B) dl
,可得 co
得到金属棒上产生的动生电动势。
大学C语言程序设计(编程题)
⼤学C语⾔程序设计(编程题)C语⾔程序设计习题(编程题 C语⾔程序设计习题(编程题习题1(编程题)[知识点:基础知识编制程序,要求输⼊整数a和b,若a2+b2⼤于100,则输出a2+b2百位以上的数字,否则输出两数之和。
习题1-参考答案 main() printf("Input a & b:"); if(a*a+b*b>100) printf("%d\n",(a*a+b*b)/100); elseprintf("%d\n",a+b); } 习题2(编程题)[知识点:基础知识试编程判断输⼊的正整数是否既是5⼜是7的整数倍,若是输出yes,否则输出no。
习题2-参考答案 main() printf("Input a:"); if(a%5==0&&a%7==0) printf("yes\n"); else printf("no\n"); } 习题3(编程题)[知识点:选择结构输⼊⼀个整数,判断它能否被3,5,7整除,并输出以下信息之⼀: (1)能同时被3,5,7整除 (2)能被其中两数整除(要指出哪两个)。
(3)能被其中⼀个数整除(要指出哪⼀个)。
(4)不能被任何⼀个整除。
习题3-参考答案 main()printf("Input a number:"); if(m%3==0&&m%5==0&&m%7==0)printf("能同时被3,5,7整除 elseif((m%3==0&&m%5==0)||(m%3==0&&m%7==0)||(m%5==0&&m%7==0)) {printf("能被其中两数整除 if(m%3==0&&m%5==0) printf("(3,5)"); else if(m%3==0&&m%7==0) printf("(3,7)");else printf("(5,7)"); else if(m%3==0||m%5==0||m%7==0) {printf("能被其中⼀个数整除 C语⾔程序设计习题(编程题if(m%3==0) printf("(3)"); else if(m%5==0) printf("(5)"); else printf("不能被任何⼀个整除"); } 习题4(编程题)[知识点:选择结构将以下程序段改⽤⾮嵌套的if语句实现。
《C语言程序设计》课后习题参考答案 李勃 邱晓红 主编 清华大学出版社
《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.单选题(1)C (2)D (3)C (4)B (5)C (6)A (7)B (8)D (9)A(8)D(9)A(10)B(11)C(12)C(13)D(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)A2.填空题(1)sqrt(pow(y,x)+log10(y)) (2)36(3)6(4)3 3(6)36(7)int x=8,y=8;(8)1(9)E(10)6,7,8,9(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 72 74 94 412 12116(3)100 d 68 D97 a 49 1 (4)0 1 0 1 (5)2 4 6 7-0.58 7046.587.5(6)33 12 113 13 082 32(7)618 30181814.改错题(1)①无初始赋值,不能输出②数据精度丢失③少“;”号④单字符变量不能保存字符串常量⑤不能连续初始化⑥非法标识符(2)short i=38000溢出PI=3.1416 常量不能修改值Printf(“%d”,x%y) %必须是整数a*=(b+c)/=d符合赋值左边不能是表达式第三章:算法概念与顺序结构程序设计1.选择题(1)D(2)B、D(3)D(4)B(5)C(6)A(8)C(9)B(10)D2.填空题.(1)一条语句;(2)小于左右(3)%%(4)输出项列表输出控制符(5)取地址取a的地址(6)从盘获取一个字符(7)大括号(8)f=68.00(9)n1=%d\n n2=%d(10)7,5,c=33.程序分析题.(1)i=100,c=a,f=1.234000(2)65535,65536(10)1234,123.5,12345.5第四章:选择结构程序设计(1)C (2)B (3)B (4)B (5)D (6)D (7)D (8)A (9)B (10)A (11)B (12)B (13)D (14)A (15)C (16)A (17)C (18)D (19)B (20)D (21)A(23)A(24)A2.填空题.(1)1(2)5 8 8(3)4 5 99(4)2(5)10 20 0(6)2 1(7)-4(8)3(9)No(10)25(11)45 45(12)0(13)5.5(14)13(15)3第五章:循环结构程序设计(1)C(2)A(3)D(4)B(5)D(6)B(7)A A或B(8)输出4444(9)B(10)A(11)B(12)C(13)A(14)B2.填空题.(1)r=m;m=n;n=rm%n(2)3(3)-5(4)i%3==2&&i%5==3&&i%7==2 j==5j!=k(6)int s=8,j=i+2k+i+j==8(7)8(8)k&&i<=500 k/10 continue第六章:数组1.选择题(1)B(2)C(3)D(4)D(5)B(6)C(7)B(8)A(9)A(10)D2.填空题.(1)按行序优先的原则(2)0 9(4)1 2(5)6(6)前者以回车后者以空格或回车作为间隔符(7)gets()(8)&a[i](9)char k -1(10)9 83.程序分析题.(1)1 3 7 15(2)0 0 0(3)读取输入字符串中数字字符(4)①if(str1==str2) (strcmp(str1,str2)==0)②&c1[0]③m[i][k-1]第七章:函数的调用1.选择题(1)B(2)C(3)C(4)A(6)D(7)D(8)D(9)B(10)D(11)A(12)A(13)B(14)B2.填空题.(1)有参无参(2)顺序类型(3)定义调用(4)①fmax(a,N) ②s[k]=s[p](5)①age(n-1)+2 ②age(5)(6)①prt(c,n-1) ②prt(…‟,n-i) ③prt(…*‟,2*i-1) 3.程序分析题.(1)h l o(2)3(3)2 6(4)5 25。
大学C C++语言程序设计课后习题答案1-8(电子工业出版社 阳小华 马淑萍
习题答案习题 1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
昆明理工大学C语言程序设计课后习题答案
昆明理工大学C语言程序设计课后习题答案第1章认识C语言(一)、是非题1.程序是指挥计算机进行各种信息处理任务的一组指令序列。
A.对B.错2.机器语言与硬件平台相关,但汇编语言和硬件平台无关。
A.对B.错3.编译型高级语言明显优于解释型高级语言。
A.对B.错4.C语言把高级语言的基本结构和低级语言的实用性紧密结合起来,不仅适合编写应用软件,而且适于编写系统软件。
A.对B.错5.面向对象的程序设计方法明显优于面向过程的程序设计方法。
A.对B.错6.计算机算法要有一个明确的起点和确定的步骤序列。
A.对B.错7.main函数是C程序的入口,由计算机系统负责调用。
A.对B.错8.在C语言中,同一行上可以写一条或多条语句,但一条语句不能写在多行上。
A.对B.错9.在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。
A.对B.错10.注释语句会增加编译结果的复杂性,因此要尽量减少注释语句的数量。
A.对B.错11.声明变量的含义是通知编译系统为变量分配合适大小的存储空间。
A.对B.错12.C语言不允许使用关键字作为变量的名称,但可以使用保留字为变量命名。
A.对B.错13.符号常量提高了程序的可读性,但降低了程序维护的方便性。
A.对B.错14.变量声明把一个具体的标识符名称和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。
A.对B.错15. C语言允许在同一条语句中定义多个相同类型的变量,其间用分号进行分隔。
A.对B.错16.在ISO/ANSI 1999规定中,允许将变量声明放在程序中的任何位置。
A.对B.错17.不同类型的数据在内存中所占存储单元的大小不同,内部存储方式不同,取值范围不同,甚至能够参与的运算种类也不相同。
A.对B.错18.有符号和无符号整数的区别仅在于对数据最高位的解释不同。
若最高位解释为数据位,则为signed类型;若最高位解释为符号位,则为unsigned类型。
大学物理课后习题答案13电磁感应习题
(2) v = at
(3)
e =0.2t(V)
e
=0
0.2 (4) I = = =0.1 t (A) 2 R
e
结束 目录
13-5 在两平行导线的平面内,有一矩 形线圈,如图所示。如导线中电流I随时间 变化,试计算线圈中的感生电动势。
l2 I I d1
l1
d2
结束 目录
已知: I, I1, I2, d1, d2 。 求:ei 解: Φ =Φ 1 Φ 2 m I I1 d1+ I2 m I I1 d2+ I2 ln ln = 2 2 π π d1 d2 m I I1 d1+ I2 d2+ I2 ln ln = 2 π d1 d2 m I I1 ( d1+ I2 )d2 ln = 2 ( d2+ I2 )d1 π m I1 ( d1+ I2 )d2 d I d Φ ln ei = d t = 2 ( d2+ I2 )d1 d t π
结束 目录
已知:Φ = 6t2+7t+1(Wb) 求:e (t =2s) 解: Φ e= d = -(12 t +7) ×10-3 dt
t =2
× × × × × × × × × × × × × × × × × × ×
e = -(12×2+7)×10
=-3.1×10 (V)
-2
-3
× × ×
B×
×
0 0 0 0
目录
2 dy 2 r m I π R 3 e dt 2y 4 y d 将 y=NR 及 v = 代入得到: dt 2 r m I π e = 32R2N 4 v
d Φ = dt =
《C++程序设计》课后习题参考答案
for(j=1;j<14;j++)
for(i=0;i<15-j;i++)
if(a[i]>a[i+1])
{
m=a[i];a[i]=a[i+1];a[i+1]=m;
}
for(i=0;i<15;i++)
cout<<setw(4)<<a[i];
cout<<end1;
}
5.从键盘为1个N×N的整型数组a输入数据,并显示每一行的最大值。
高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案
――武汉大学出版社
习题1参考答案
三、简答题
1.简述三代计算机语言各自的特点。
解答如下:
机器语言是用二进制指令表示的、计算机能够直接识别和执行的语言。由于计算机可以直接执行机器语言,执行速度快是机器语言的主要优点。在计算机发展初期,软件工程师使用机器语言来编写程序。在计算机指令集不断增大的情况下,机器语言不易记忆,不便于学习,软件开发难度大、周期长、易出错,软件维护工作量大等缺点更加突出,机器语言已不能胜任编程工作。
i++
}
cout<<"共有"<<num<<"个单词"<<endl;
}
4.用冒泡法对输入的15个整数按由小到大顺序排列。
程序设计如下:
#include<iostream.h>
#include <iomanip.h>
void main()
{
int i,j,m,a[15];
大学_C语言程序设计教程课后习题答案下载
C语言程序设计教程课后习题答案下载C语言程序设计教程内容简介第1章C语言概述11.1简单的C语言程序11.2C语言的发展历史与特点31.2.1C语言的发展历史31.2.2C语言的'特点41.3C程序的开发步骤和上机调试流程51.3.1C程序的开发步骤51.3.2C程序的上机开发过程6习题112第2章基本数据类型的输入/输出132.1C语言的输入/输出132.2整型数据的输入/输出132.3浮点型数据的输入/输出142.4字符数据的输入/输出152.5字符串数据的输入/输出152.6格式化输入/输出举例172.7阅读材料182.7.1格式化输出函数printf的格式说明和使用182.7.2格式化输入函数scanf的格式说明和使用19习题221第3章流程控制223.1算法223.1.1算法的概念223.1.2算法的表达方式233.1.3基本流程控制结构253.1.4案例3.1 求1+1/2+…+1/100的和263.2选择语句263.2.1案例3.2 求三个整数的最大值(if语句)263.2.2案例3.3 百分制成绩转换成五分制成绩(多分支if语句)293.2.3案例3.4 判断所输入的一个字符是数字、空白符还是其他字符(switch语句)313.2.4案例3.5 百分制成绩转换成五分制成绩(switch语句)333.3循环语句343.3.1案例3.6 求1+1/2+…+1/100的和(while语句)343.3.2案例3.7 求1+1/2+…+1/100的和(do...while语句)353.3.3案例3.8 求1+1/2+…+1/100的和(for语句)373.4转向语句393.4.1案例3.9 判断所输入的一个大于1的正整数是否是素数(break语句)393.4.2案例3.10 输出100~200之间能被3整除的数(continue语句)413.5应用举例423.5.1案例3.11 计算1! + 2! + … + 10!(并讨论溢出问题)423.5.2案例3.12 计算级数1-1/3+1/5-1/7+…的和443.5.3案例3.13 统计输入的数字字符、字母字符和其他字符的个数453.5.4案例3.14 求两个正整数的最大公约数和最小公倍数453.5.5案例3.15 将一个正整数逆序输出463.5.6案例3.16 输入日期并检查其合理性,直到输入合理为止473.6阅读材料483.6.1C语言的语句483.6.2goto语句简介493.6.3exit()函数493.6.4程序调试简介50习题351C语言程序设计教程目录本书定位于将C语言作为计算机编程入门语言,以帮助读者树立计算机程序设计的思想,培养学生程序设计基本能力为目标的教材。
大学C 语言练习题答案
}
2..输入:输入两个整数,两个整数之间用空格分隔,如输入 20 30
输出:输出两个数中的较小数
#include <stdio.h>
int min(int x,int y)
{ return(x<y?x:y);
}
int main()
int main()
{
float c,f;
scanf("input F:");
scanf("%f",&f); c=5.0/9.0Fra bibliotek(f-32);
printf("c:%1.2f\n",c);
return 0;
}
7..输入三角形的三条边的边长,编写求其面积的程序。
提示:三角形面积公式:area=sqrt(s*(s-a)*(s-b)*(s-c)),s=1/2*(a+b+c)
#include <stdio.h>
#include <math.h>
{i=i+1;
scanf("%d",&x);
scanf(" ");
if(min>x)
min=x;
if(max<x)
max=x;
}
scanf("%d,%d",&h,&f);
chick=(4*h-f)/2;
rabbit=(f-2*h)/2;
printf("rabbit:%d\nchick:%d\n",rabbit,chick);
大学C语言复习题_附答案
(A)字节 (B)位 (C)字 (D)记录 12. 因特网中某主机的二级域名为“edu” ,表示该主机属于______。C (A)赢利性商业机构 (B)军事机构 (C)教育机构 (D)非军事性政府组织机构 13. 下列字符中,其 ASCII 码值最大的是______。D (A)9 (B)D (C)a (D)y 14. 语句 printf(“%%d%d”, 123); 将输出: A、%123%d B、%%d123 √C、%d123 D、上述语句语法有错 15. 对于 int x, y; 语句 if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于: A、 y=0; if (x>=0) if (x) y=1; else y= -1; √B、 if (x!=0) if (x>0) y=1; else y= -1; else y=0; C、 if (x<0) y= -1; if (x!=0) y=1; else y=0; D、 y= -1; if (x!=0) if (x>0) y=1; else y=0; 16. 语句 if (a>b) k=0; else k=1;等价于: A、k=(a>b)?1:0; B、k=a>b; √C、k=a<=b; D、以上均不是 17. 执行下列程序段: int i, j; i = 3/2 + 7/2 == 5; j = 45 % 11 + (((7>8) ? 14:21) == 14); 后变量 i,j 的值应为: √A、i=0 j=1 B、i=1 j=1 C、i=0 j=2 D、i=1 j=2 18. 如果 int i=16, j=23 ; 执行 printf("%x--%o",i, j)后输出为: A、10—23 √B、10--27 C、16--23 D、16—27 19. 若 x 是 double 型变量,n 是 int 型变量,执行 ,并输入 3 1.25 后,x=1.25, n=3。 √A、scanf("%d%lf", &n, &x); B、scanf("%lf%d", &x, &n); C、scanf("%lf%d", &n, &x); D、scanf("%d,%lf", &n, &x); 20. 若变量已经被正确定义,为表示“变量 x 和 y 都能被 3 整除” ,应使用的 C 表达式 是 。 A、(x%3 != 0) || (y%3 != 0) B、(x%3 != 0) && (y%3 != 0) C、(x%3 == 0) || (y%3 == 0) √D、(x%3 == 0) && (y%3 == 0) 21. while( ) 等价于 while(x)。 A、x == 0 √B、x != 0 C、x == 1 D、x != 1 22. 下列程序段的输出结果是 。 int count = 0, x, y, z; for(x = 1; x <= 2; x++) for(y = 1; y <= 3; y++) for(z = 1; z <= 4; z++) count++; printf("%d", count); A、10 B、9 √C、24 D、0 23. 判断变量 ch 是英文字母的表达式为 。 A、( 'a' <= ch <= 'z') || ( 'A' <= ch <= 'Z')
