钱能c++程序设计教程(第二版)第三章答案

合集下载

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案C语言程序设计教程第二版课后习题答案在学习编程的过程中,课后习题是检验自己理解和掌握程度的重要方式。

对于C语言程序设计教程第二版的学习者来说,课后习题的答案是必不可少的。

本文将为大家提供C语言程序设计教程第二版课后习题的答案,希望能够帮助大家更好地学习和理解C语言编程。

第一章:C语言概述1. C语言的起源可以追溯到1972年,由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发。

2. C语言的特点包括语法简洁、执行效率高、可移植性强等。

3. C语言的应用领域广泛,包括操作系统、嵌入式系统、游戏开发等。

第二章:C语言基础1. C语言的基本数据类型包括整型、浮点型、字符型和指针型。

2. 整型数据可以分为有符号整型和无符号整型。

3. C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。

第三章:控制结构1. C语言中的控制结构包括顺序结构、选择结构和循环结构。

2. 选择结构包括if语句、switch语句等。

3. 循环结构包括while循环、do-while循环和for循环等。

第四章:数组和字符串1. 数组是一种存储相同类型数据的集合。

2. 字符串是由字符组成的字符数组。

3. C语言中的字符串处理函数包括strcpy、strcmp、strlen等。

第五章:函数1. 函数是一段完成特定任务的代码块。

2. 函数可以返回值,也可以不返回值。

3. 函数的参数可以是值传递或地址传递。

第六章:指针1. 指针是一个变量,存储的是内存地址。

2. 指针变量可以指向其他变量或函数。

3. 指针的运算包括指针的加法、减法和比较等。

第七章:结构体和共用体1. 结构体是一种自定义的数据类型,可以包含多个不同类型的成员变量。

2. 共用体是一种特殊的结构体,所有成员变量共用同一块内存空间。

3. 结构体和共用体可以嵌套使用。

第八章:文件操作1. 文件操作包括打开文件、读写文件和关闭文件等步骤。

C语言程序设计第二版第三章课后习题程序源码详细答案

C语言程序设计第二版第三章课后习题程序源码详细答案

C语言程序设计第二版第三章课后习题程序源码详细答案(1)判断输入的3位正整数是否是水仙花数;#includeint main(void){int n;printf("请输入一个三位正整数:\");scanf("%d",&n);int a,b,c;a=n%10;b=(n/10)%10;c=n/100;int w;w=a*a*a+b*b*b+c*c*c;if(w==n){printf("yes \");}else{printf("no \");}return 0 ;}(2)判断任意字符,小写改为大写。

#includeint main(void){char ch;ch=getchar();if(ch>='A'&&ch<='Z'){putchar(ch);printf("\");}else{ch=ch-32;putchar(ch);printf("\");}return 0;}(3)计算字母序号。

输入大写或者小写字母,输出他们对应的字母表序号。

#includeint main(void){char ch;printf("请输入一个字符:\");ch=getchar();int n;if(ch>='A'&&ch<='Z'){n=ch-'A';printf("%d\",n);}else if(ch>='a'&&ch<='z'){n=ch-'a';printf("%d\",n);}else{printf("输入错误请重新启动输入\",n);}return 0;}(4)输入一个年份,判断是否是闰年#includeint main(void){int n;printf("请输入一个年份:\");scanf("%d",&n);if((n%4==0&&n%100!=0)||(n%400==0)) {printf("闰年\");}else{printf("非闰年\");}return 0;}(5)计算某年某月有多少天#includeint main(void){int n;printf("请输入一个年份:");printf("\");scanf("%d",&n);if((n%4==0&&n%100!=0)||(n%400==0)){printf("闰年\");int y;printf("请输入一个月份:");printf("\");scanf("%d",&y);if(y==1||y==3||y==5||y==7||y==8||y==10||y==12) {printf("31天\");}else if(y==4||y==6||y==9||y==11){printf("30天\");}else{printf("29天\");}}else{printf("平年\");int y;printf("请输入一个月份:");printf("\");scanf("%d",&y);if(y==1||y==3||y==5||y==7||y==8||y==10||y==12) {printf("31天\");}else if(y==4||y==6||y==9||y==11){printf("30天\");}else{printf("28天\");}}return 0;}(6)根据百分制成绩分等级#includeint main(void){int n;scanf("%d",&n);printf("等级评定为:");if(n>=90)printf("A\");else if(n>=80&&n<=89)printf("B\");else if(n>=70&&n<=79)printf("C\");else if(n>=60&&n<=69)printf("D\");else if(n<=59)printf("E\");return 0;}(7)计算员工收入#includeint main(void){float h=1500;printf("本月基本工资:%.2f元\",h); printf("请输入本月销售额度:"); float n;scanf("%f",&n);if(n<=10000){float x;x=n*5/100;printf("本月销售提成:%.2f元\",x); printf("本月总工资:%.2f元\",x+h); }else if(n>=10000&&n<=50000) {float x;x=(n-10000)*3/100+10000*5/100; printf("本月销售提成:%.2f元\",x); printf("本月总工资:%.2f元\",x+h); }else{float x;x=(n-50000)*2/100+(50000-10000)*3/100+10000*5/100; printf("本月销售提成:%.2f元\",x);printf("本月总工资:%.2f元\",x+h);}return 0;}。

C++程序设计(第二版)钱能-第3章--数据类型

C++程序设计(第二版)钱能-第3章--数据类型

第3章数据类型3.9 练习3(Exercises 3)1.模仿程序f0302.cpp,打印整数-1234567的二进制位码。

解答:#include <iostream>using namespace std;int main(){long int l = -1234567;int* pa = (int*) &l;for(int i = 31; i >= 0; i--)cout << (*pa>>i & 1) << (i == 31 || i == 23 ? "-":"");cout << endl;return 0;}2.整型分long int、int、char、bool,浮点数分float、double、long double,试分别输出各类型的字节长度和位长,输出形式如:long int: 4 byte 32 bits解答:#include <iostream>using namespace std;int main(){long int a = 1;int b = 2;char c = 'A';bool d = 0;float e = 3;double f = 4;long double g = 5;cout << "long int:" << sizeof(a) << " byte " << 8*sizeof(a) << " bits" << endl;cout << "int:" << sizeof(b) << " byte " << 8*sizeof(b) << " bits" << endl; cout << "char:" << sizeof(c) << " byte " << 8*sizeof(c) << " bits" << endl;cout << "bool:" << sizeof(d) << " byte " << 8*sizeof(d) << " bits" << endl;cout << "float:" << sizeof(e) << " byte " << 8*sizeof(e) << " bits" <<endl;cout << "double:" << sizeof(f) << " byte " << 8*sizeof(f) << " bits" << endl;cout << "long double:" << sizeof(g) << "byte " << 8*sizeof(g) << " bits" <<endl;return 0;}3.定义一个数组,数据为:6,3,7,1,4,8,2,9,11,5.请创建一个向量,把数组的初值赋给它,然后对该向量求标准差(均方差):s=解答:#include <iostream>#include <vector>#include <cmath>using namespace std;int main(){int num[10] = {6, 3, 7, 1, 4, 8, 2, 9, 11, 5};vector<int> vnum(num, num+10);double ave, sum1 = 0, sum2 = 0, s;for(vector<int>::iterator it = vnum.begin(); it != vnum.end(); it++) {cout << *it << " ";sum1 += *it;}ave = sum1/10;for(int i = 0;i < 10;i ++)sum2 += pow((vnum[i] - ave), 2);s = sqrt(sum2/10);cout<<" 的标准差是:"<<s<<endl;return 0;}4.有一些日期,在文件abc.txt中,后面加*号的表示要加班的日期,试汇总每个月25号的天数,如果是加班日,则该天乘2。

c语言程序设计案例教程第二版答案

c语言程序设计案例教程第二版答案

c语言程序设计案例教程第二版答案篇一:C语言程序设计案例教程第3章参考答案C语言程序设计案例教程(第二版)廖湖声叶乃文周珺人民邮电出版社第三章习题参考答案习题3-1#include<tdio.h>#include<math.h>intmain(){inti,j,c=0;//c用来控制一行输出元素的个数for(i=2;i<100;i++)//判断从2到100之间那个数为素数{ for(j=2;j<=qrt(i);j++)//判断到i的平方根即可减少循环次数{ if(i%j==0)break;}if(j>qrt(i)){printf("%5d",i);c++;//每输出一个数计数器加1if(c%5==0)printf("\n");}}return0;}习题3-2#include<tdio.h>intmain(){inti,n;//n为从键盘上接收的数printf("请输入一个正整数:");canf("%d",&n);for(i=2;i<n;i++)//从2~n依次查找满足条件的数{if(n%i==0)//判断i是否为n的因子printf("%5d",i);}printf("\n");return0;}习题3-3#include<tdio.h>/某韩信点兵问题穷举法实例某/intmain(){intn;printf("假设韩信带兵在1000~10000人之间,则可能的人数为:\n");for(n=1000;n<10000;n++){if(n%5==1&&n%6==5&&n%7==4&&n%11==10)printf("%7d",n);}printf("\n");return0;}习题3-4#include<tdio.h>intmain(){inti,j,k,n;//i,j,k分别为水仙花数n的百位、十位、个位printf("所有的水仙花数为:");for(n=100;n<1000;n++)//对每个三位数进行分解、判断{i=n/100;j=n/10%10;k=n%10;if(n==i某i某i+j某j某j+k某k某k)//判断该三位数是否是其各位数立方和printf("%5d",n);}printf("\n");return0;}习题3-5#include<tdio.h>intmain()int=0,i=99;while(i>=1){=+i某(i+1)某(i+2);i=i-2;}printf("1某2某3+3某4某5+...+99某100某101=%d\n",);return0;}习题3-6#include<tdio.h>intmain(){inta,n,i,a,an;printf("请输入a和n的值:");canf("%d,%d",&a,&n);a=an=a;for(i=2;i<=n;i++)an=an某10+a;//计算第i项,即i个aa=a+an;//累加求和} printf("a+aa+aaa+...+aa...a=%d\n",a);return0;}习题3-7#include<tdio.h>intmain(){intn=1,i;printf("请输入猴子吃桃子的天数:");canf("%d",&i);while(i>1){n=(n+1)某2;i--;}printf("最初有%d个桃子\n",n);return0;}篇二:c语言程序设计教程(第2版)课后题及模拟题参考答案习题1.............................................................. .. (4)1-1填空题............................................................. . (4)1-2思考题............................................................. . (4)1-3编程题............................................................. . (5)习题2.............................................................. .. (6)2-1单选题............................................................. . (6)2-2思考题............................................................. (6)习题3.............................................................. .. (7)3-1选择题............................................................. . (7)题............................................................. (7)3-3编程题............................................................. (8)习题4.............................................................. .. (11)4-1单选题............................................................. . (11)4-2填空题............................................................. . (11)4-3编程题............................................................. (11)习题5.............................................................. .. (16)5-1单选题............................................................. (16)5-2填空题............................................................. (16)题............................................................. .. (16)习题6.............................................................. . (22)6-1单选题............................................................. . (22)6-2填空题............................................................. (22)6-3编程题............................................................. .. (22)习题7.............................................................. . (25)7-1单选题................... (25)7-2填空题............................................................. (25)7-3编程题............................................................. .. (25)习题8.............................................................. . (26)8-1单选题............................................................. (26)8-2填空题............................................................. (26)8-3编程题............................................................. .. (26)习题9............................................................... (30)9-1单选题.............................................................. . (30)9-2填空题.............................................................. . (30)9-3编程题.............................................................. (30)习题10............................................................. . (38)10-1单选题............................................................. .. (38)10-2填空题............................................................. . (38)10-3编程题............................................................. (38)习题11............................................................. .. (41)11-1单选题............................................................. (41)11-2填空题............................................................. (41)习题12............................................................. . (42)12-1单选题............................................................. (42)12-2填空题............................................................. . (42)实验篇............................................................. . (43)实验1熟悉ViualC++6.0可视化集成开发环境 (43)实验2顺序结构程序设计 (43)实验3选择结构程序设计 (43)实验4循环结构程序设计 (44)实验5函数............................................................. . (47)实验6数组............................................................. . (54)实验7指针............................................................. . (58)实验8结构体和共用体 (61)实验9文件............................................................. (63)实验10综合编程 (64)模拟试卷(一)参考答案 (65)模拟试卷(二)参考答案 (67)习题11-1填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{,}6./某,某/7.顺序结构,选择结构,循环结构8..c,.obj,.e某e1-2思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。

c课后题答案 钱能第二版

c课后题答案 钱能第二版

学习资料收集于网络,仅供参考1-1#include<iostream>using namespace std;void main(){cout<<I'm a student<<endl;}1-2#include<iostream>using namespace std;int i,j;void main(){for(i=1;i<=4;i++){for(j=1;j<=4-i;j++){cout<< ;}for(j=1;j<=2*i-1;j++){cout<<*;}cout<<endl<<endl; }for(i=1;i<=3;i++){for(j=1;j<=i;j++){cout<< ;学习资料.学习资料收集于网络,仅供参考for(j=1;j<=(7-2*i);j++){cout<<*;}cout<<endl<<endl; }}2-13#include<iostream>using namespace std;int i,j;void main(){for(i=1;i<=9;i++)cout<<i<<\ ;for(i=1;i<=9;i++)cout<<-<<\ ;cout<<endl<<endl;for(i=1;i<=9;i++) // 下三角形式{for(j=1;j<=i;j++)//{cout<<i*j<<\ ;//}cout<<endl;}cout<<endl<<endl;学习资料.学习资料收集于网络,仅供参考for(i=1;i<=9;i++) //shang三角形式cout<<\ <<i;for(i=0;i<9;i++)cout<<\ <<-;cout<<endl<<endl;for (i=1;i<=9;i++){for(j=1;j<=i;j++)cout<<\ ;for(j=i;j<=9;j++)//{cout<<i*j<<\ ;//}cout<<endl; }}3-3#include<iostream>#include<vector>#include<cmath>using namespace std;void main(){int a[11]={6,3,7,1,4,8,2,9,11,5};vector<int> ve(a,a+10);int he=0;int sum=0;学习资料.学习资料收集于网络,仅供参考float average;float s;for(int i=0;i<ve.size();i++){sum+=ve[i];}average=sum/ve.size();for( i=0;i<ve.size();i++){he+=(ve[i]-average)*(ve[i]-average);}s=sqrt(he/ve.size());cout<<s=<<s<<endl;}4-6#include<iostream>#include<fstream>#include<sstream>using namespace std;void main(){int a=0;ifstream in(D:\\aaa.txt);for(string s;getline(in,s);)for(istringstream sin(s);sin>>a;){if((a%3==0)&&(a%5==0)&&(a%7==0))挠畯?愼?能同时被3 5 7整除<<endl;else if((a%3==0)&&(a%5)&&(a%7)) 学习资料.学习资料收集于网络,仅供参考挠畯?愼?能被3整除不能被5整除也不能被7整除<<endl; else if((a%3)&&(a%5==0)&&(a%7))挠畯?愼?能被5整除不能被3整除也不能被7整除<<endl;else if((a%3)&&(a%5)&&(a%7==0))?挠畯?愼?能被7整除不能被3整除也不能被5整除<<endl;else if((a%3)&&(a%5)&&(a%7))??潣瑵??尼不能被3 5 7 任意一个整除<<endl;}}4-8#include<iostream>using namespace std;void transform(int );int n;void main() //十进制数转换为二进制数{潣瑵?输入要转换的十进制整数:<<endl;int num;cin>>num;transform(num);}void transform(int n){if (n<2)cout<<n;else if(n>=2){学习资料.学习资料收集于网络,仅供参考transform(n/2);cout<<n%2;}5-5#include<iostream>#include<fstream>#include<sstream>#include<vector>#include<algorithm>using namespace std;typedef vector<vector<int> > vii;//---------------------------------------------------------------vector<int> read(){vector<int>a;ifstream in(D:\\aaa.txt);for(string s;getline(in,s);){int c;for(istringstream sin(s);sin>>c;)a.push_back (c);}if(a.empty())cout<<NO ELement!<<endl;else<<endl; 从磁盘中读取数据输出结果是:潣瑵?for(int i=0;i<a.size();i++) 学习资料.学习资料收集于网络,仅供参考cout<<a[i]<< ; //输出读取的数据cout<<endl<<endl;return a;}//---------------------------------------------------------------int bit_twice_sum(int a){int sum=0;for(int x=a;x;x/=10)sum+=(x_x0010_)*(x_x0010_);return sum;}//-----------------------------------------------------------------------bool compare(int sum1,int sum2){return bit_twice_sum(sum1)<bit_twice_sum(sum2);}//----------------------------------------------------------------------- void insert_cout(vector<int>ve){<<endl; 请输入你想插入的数:?潣瑵? int num;cin>>num;ve.push_back(num);sort(ve.begin(),ve.end(),compare);挠畯?攼摮?尼插入数之后,再按各位数字平方之和的大小输出:<<endl;for(int i=0;i<ve.size();i++)cout<<ve[i]<< ;学习资料.学习资料收集于网络,仅供参考cout<<endl;}//-----------------------------------------------------------------------void main(){vector<int>v0=read();sort(v0.begin(),v0.end(),compare);挠畯?攼摮?尼按各位数字平方之和的大小输出:<<endl;for(int i=0;i<v0.size();i++)cout<<v0[i]<< ;cout<<endl;insert_cout(v0);//----------------------------------------------------------------------- 8-1#include<iostream>#include<cmath>using namespace std;//------------------------------------class Point{protected:double x,y; //x y 轴分量public:void set(double ix,double iy)// 设置坐标{x=ix;y=iy;}学习资料.学习资料收集于网络,仅供参考//------------------------------------------double xoffset()//取y轴坐标分量{return x;}//------------------------------------------轴坐标分量double yoffset()//取x{return y;}//----------------------------------------@ 取点的极坐标double angle()//{return (180/3.14159)*atan2(y,x);}//--------------------------------------double radius()//取点的极坐标半径{return sqrt(x*x+y*y);void Point:: add(){x+=5;y+=6;潣瑵?硜尽??攼摮?尼??礼?湥汤※}};void main(){Point p;double x,y;学习资料.学习资料收集于网络,仅供参考cout<<Enter x and y:<<endl;cin>>x>>y;p.set(x,y);潣瑵?慜杮敬尽??湡汧??攼摮?尼慲楤獵尽??慲楤獵?湥汤?硜offset=<<p.xoffset()<<endl<<y offset=<<p.yoffset()<<endl; p.add();}8-3#include<iostream>#include<iomanip>using namespace std;class Date{private:int year,month,day;public:void set(int d,int m,int y);void add();void print();};void Date::set(int d,int m,int y){year=y;month=m;day=d;void Date::add(){day=day+1;<<day<<endl; ??潣瑵?加一天之后日期是:学习资料.学习资料收集于网络,仅供参考}void Date::print(){cout<<setfill('0');cout<<setw(2)<<day<<'/'<<setw(2)<<month<<'/'<<setw(4)<<year<<en dl;//cout<<setfill(' ');}void main(){Date d1,d2;d1.set(10,4,2012);d1.print();d2.set(10,4,2012);d2.add();d2.print();}8-4/**多文件结构*///Time.cpp#includeTime.hvoid Time::set(int h,int m,int s){hour=h;minite=m;学习资料.学习资料收集于网络,仅供参考second=s;}void Time::print(){setfill('0');cout<<setw(2)<<hour<<':'<<setw(2)<<minite<<':'<<setw(2)<<second<<endl; }#includeTime.h//主函数void main(){Time t;t.set(14,47,39);t.print();}9-1#include<iostream>using namespace std;class MyClass{int number;public:MyClass();MyClass(int);~MyClass();void Display();};//--------------------------------------------------MyClass::MyClass(){cout<<Constructing normally.\n;}学习资料.学习资料收集于网络,仅供参考//------------------------------------------------------MyClass::MyClass(int m):number(m){cout<<Constructing with a number:<<number<<endl;}//-----------------------------------------------------void MyClass::Display(){cout<<Display s number:<<number<<endl;}//-----------------------------------------------------------------MyClass ::~MyClass(){cout<<Destructing.\n;}//---------------------------------------------------void main(){MyClass obj1;MyClass obj2(20);obj1.Display();obj2.Display();}//--------------------------------------------------------------- 9-3#include<iostream>using namespace std;//----------------------------class CAT{int *itsAge;public:CAT():itsAge(new int(5)){}~CAT(){delete itsAge;}学习资料.学习资料收集于网络,仅供参考int GetAge() const {return *itsAge;}void SetAge(int age){*itsAge=age;}};//-------------------------------------------void main(){CAT friskey;cout<<\n; cout<<Setting friskey to 6……friskey.SetAge(6);cout<<Creating boots from friskey\n;CAT boot(friskey);cout<<cout<<oot's age: <<boot.GetAge()<<endl; \n; cout<<setting friskey to 7……friskey.SetAge(7);cout<<cout<<oot's age: <<boot.GetAge()<<endl; }学习资料.。

C 程序设计教程第二版习题答案

C  程序设计教程第二版习题答案

C 程序设计教程第二版习题答案C 程序设计教程第二版习题答案C 程序设计是一门广泛应用于计算机科学和工程领域的编程语言,它具有高效、灵活和可移植等优点。

对于初学者来说,掌握C 程序设计的基本知识是非常重要的。

而《C 程序设计教程》是一本经典的教材,为学习者提供了一系列的习题来巩固所学知识。

本文将为大家提供《C 程序设计教程第二版》习题的答案,帮助大家更好地理解和掌握C 程序设计。

第一章:C 程序设计入门1.1 习题答案:1. 编写一个C程序,输出"Hello, World!"。

```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```1.2 习题答案:1. 编写一个C程序,输入两个整数,然后输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```第二章:C 程序设计基本要素2.1 习题答案:1. 编写一个C程序,输入一个字符,然后输出它的ASCII码。

```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);printf("该字符的ASCII码为:%d", ch);return 0;}```2.2 习题答案:1. 编写一个C程序,输入一个整数,然后输出它的绝对值。

c 程序设计(第2版)课后习题答案

c 程序设计(第2版)课后习题答案

c 程序设计(第2版)课后习题答案C 程序设计(第2版)是一本经典的计算机编程教材,被广泛应用于计算机科学与技术专业的教学中。

该教材的每一章都附带了一系列的习题,这些习题在巩固学生对于 C 语言的理解和掌握方面起到了重要的作用。

然而,很多学生在自学或者课后复习的过程中常常会遇到习题解答的困扰。

因此,本文将为大家提供一些 C 程序设计(第2版)课后习题的答案,希望能够对大家的学习有所帮助。

第一章:C 程序设计概述1.1 习题解答:1) C 程序设计的特点包括高效性、可移植性、灵活性和可扩展性。

2) C 程序设计的基本结构包括预处理指令、函数定义和主函数。

3) C 程序设计的编译过程包括预处理、编译、汇编和链接四个阶段。

第二章:C 语言基础2.1 习题解答:1) C 语言中的标识符是指用于标识变量、函数、数组等各种程序实体的名称。

标识符的命名规则包括:只能由字母、数字和下划线组成,且不能以数字开头;不能使用 C 语言的关键字作为标识符;标识符区分大小写。

2) C 语言中的常量是指在程序中直接使用的固定值,包括整型常量、实型常量、字符常量和字符串常量。

3) C 语言中的变量是指用于存储数据的内存空间,包括整型变量、实型变量、字符变量和字符串变量。

第三章:运算符和表达式3.1 习题解答:1) C 语言中的算术运算符包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和取模运算符(%)等。

2) C 语言中的关系运算符包括大于运算符(>)、小于运算符(<)、等于运算符(==)、不等于运算符(!=)等。

3) C 语言中的逻辑运算符包括与运算符(&&)、或运算符(||)和非运算符(!)等。

第四章:选择结构4.1 习题解答:1) C 语言中的 if 语句用于实现单一条件的判断,格式为:if (条件表达式) {语句块}。

2) C 语言中的 if-else 语句用于实现两个条件的判断,格式为:if (条件表达式) {语句块1} else {语句块2}。

c 语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题答案C语言程序设计教程第二版课后习题答案C语言是一种广泛使用的计算机编程语言,它在软件开发领域有着广泛的应用。

对于初学者来说,学习C语言程序设计是一个重要的基础。

《C语言程序设计教程》是一本经典的教材,第二版的习题更加丰富多样,有助于学生巩固所学的知识。

本文将为大家提供《C语言程序设计教程第二版》课后习题的答案,希望能够帮助大家更好地理解和掌握C语言编程。

第一章:C语言概述1. 答案略第二章:C语言基础1. 答案略第三章:运算符和表达式1. 答案略第四章:选择结构1. 答案略第五章:循环结构1. 答案略第六章:数组1. 答案略第七章:函数1. 答案略第八章:指针1. 答案略第九章:字符串1. 答案略第十章:结构体1. 答案略第十一章:文件操作1. 答案略第十二章:位运算1. 答案略以上是《C语言程序设计教程第二版》课后习题的答案。

这些答案只是供参考,可以帮助学生更好地理解和掌握C语言的编程技巧。

然而,作为学习者,我们不能仅仅依赖答案,更重要的是理解其中的原理和思想。

通过自己的思考和实践,才能真正掌握C语言的编程能力。

在学习C语言的过程中,我们还可以通过参考其他资料和教程来进一步提高自己的编程水平。

除了课后习题,我们还可以尝试编写一些小项目,锻炼自己的实际操作能力。

同时,多与他人交流和讨论,互相学习和进步也是非常重要的。

总之,C语言程序设计是一门非常有用的技能,掌握它可以为我们的职业发展和学术研究提供很多帮助。

通过学习《C语言程序设计教程第二版》课后习题的答案,我们可以更好地理解和掌握C语言编程的基础知识。

希望大家在学习过程中能够坚持不懈,不断提高自己的编程能力。

c程序设计(第二版)课后习题答案

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.6】 /*给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 分为 'B',70~79 分为'C',60~69 分为'D',60 分以下为'E'。*/ #include<stdio.h> void main() { int score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。

#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。

c程序设计第二版习题答案

c程序设计第二版习题答案

c程序设计第二版习题答案C程序设计第二版习题答案第一章:C语言概述1. 描述C语言的特点。

- C语言是一种结构化编程语言,以其高效性、灵活性和可移植性而闻名。

它支持过程式编程和低级内存操作,适合编写系统软件、操作系统和嵌入式系统。

2. 解释C语言的编译过程。

- C语言的编译过程通常包括预处理、编译、汇编和链接四个步骤。

预处理阶段处理宏定义和条件编译指令,编译阶段将源代码转换为汇编代码,汇编阶段将汇编代码转换为目标代码,链接阶段将目标代码与库函数链接生成可执行文件。

第二章:数据类型、运算符和表达式1. 列举C语言的基本数据类型。

- C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及枚举型(enum)。

2. 说明赋值运算符的用法。

- 赋值运算符(=)用于将一个值赋给一个变量。

例如,`a = 5;`表示将整数5赋给变量a。

第三章:控制语句1. 描述if语句的语法结构。

- if语句的基本语法是:`if (条件) { 语句; }`。

如果条件为真,则执行花括号内的语句。

2. 解释while循环的工作原理。

- while循环在每次迭代之前都会检查条件是否为真。

如果条件为真,循环体内的语句将被执行,然后再次检查条件。

这个过程会一直重复,直到条件为假。

第四章:函数1. 函数的定义和声明。

- 函数定义是创建函数的主体,包括函数名、参数列表和函数体。

函数声明是告诉编译器函数的原型,包括函数名、返回类型和参数列表。

2. 函数的调用过程。

- 函数调用包括函数名和参数列表。

调用时,实际参数的值将传递给形式参数,函数执行完毕后,返回值(如果有的话)将返回给调用者。

第五章:数组和指针1. 数组的基本概念。

- 数组是一种数据结构,可以存储固定大小的同类型元素的集合。

数组的元素可以通过索引访问。

2. 指针的用途。

- 指针用于存储内存地址,可以直接操作内存。

指针可以指向基本数据类型、数组、结构体等。

钱能c++程序设计教程(第二版)第三章答案

钱能c++程序设计教程(第二版)第三章答案

读研需要c++,以前只学过C,根据网评,找了国内的钱能老师写的《c++程序设计教程(第二版)》,书上的例子比较不错,但是在网上一直没有下到完整的包括例子和习题的解答,于是我就突发奇想,一方面也是督促自己学习C++,想把书上和习题上的所有编程题目的答案都写出来,可以在VS2010上运行,供正在学习C++的同学参考。

现在看到第二章,以后会经常的更新答案,我也是新手,可能在编程风格和思路上有待提高,也有一些题目不知道该如何下手,路过的朋友知道的可以告诉我,我的邮箱是guosheng-14@,可以督促我继续写以后的答案。

实在VS2010上运行的,vc++6.0可能在头文件上有所区别。

第三章第一部分//3.3.2—浮点数表示#include<iostream>using namespace std;int main(){float f=19.2F;cout<<f<<endl;unsigned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//3.4.2—字符操作函数相关#include<iostream>using namespace std;int main(){char* s1="Hello";char* s2="123";char a[20];strcpy(a,s1);cout<<(strcmp(a,s1)==0?"":"not ")<<"equal."<<endl;cout<<strcat(a,s2)<<endl;cout<<strrev(a)<<endl;cout<<strset(a,'c')<<endl;cout<<(strstr(a,"ell")?"":"not ")<<"find."<<endl;cout<<(strchr(a,'c')?"":"not ")<<"find"<<endl;}//3.4.3string函数相关#include<iostream>#include<string>using namespace std;int main(){string a,s1="hello",s2="123";a=s1;cout<<(a==s1?"":"not ")<<"equal."<<endl;cout<<a+s2<<endl;reverse(a.begin (),a.end());cout<<a<<endl;cout<<a.replace (0,9,9,'c')<<endl;cout<<(a.find("ell")?"":"not ")<<"find"<<endl;cout<<(a.find('c')?"":"not ")<<"find"<<endl; }//3.4.5string流+文件流#include<iostream>#include<sstream>#include<fstream>using namespace std;int main(){ifstream fin("original.txt");for(string s;getline(fin,s);){int a,sum=0;for(istringstream sin(s);sin>>a;sum+=a);cout<<sum<<endl;}}//3.5.2--sizeof()#include<iostream>using namespace std;int main(){int a[]={1,15,8,3,8,48,2,64,5};for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)cout<<" "<<a[i];cout<<endl;}//3.5.3--初始化#include<iostream>using namespace std;int array1[5]={1,2,3};int array2[5];int main(){int array3[5]={2};int array4[5];cout<<"array1: ";for(int i=0;i<sizeof(array1)/sizeof(array1[0]);i++) cout<<array1[i]<<" ";cout<<endl;cout<<"array2: ";for(int i=0;i<sizeof(array2)/sizeof(array2[0]);i++) cout<<array2[i]<<" ";cout<<endl;cout<<"array3: ";for(int i=0;i<sizeof(array3)/sizeof(array3[0]);i++) cout<<array3[i]<<" ";cout<<endl;cout<<"array4: ";for(int i=0;i<sizeof(array4)/sizeof(array4[0]);i++) cout<<array4[i]<<" ";cout<<endl;}//3.5.4—二维数组#include<iostream>using namespace std;int main(){int a[2][3]={1,2,3,4,5};int b[2][3]={{1,2},4};cout<<"array1:"<<endl;for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){cout<<" ";for(int j=0;j<sizeof(a[0])/sizeof(a[0][0]);j++) cout<<a[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl;cout<<"array2:"<<endl;for(int i=0;i<sizeof(b)/sizeof(b[0]);i++){cout<<" ";for(int j=0;j<sizeof(b[0])/sizeof(b[0][0]);j++)cout<<b[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl;}//3.6.2—文件流+向量#include<iostream>#include<fstream>#include<vector>using namespace std;int main(){ifstream fin("original.txt");vector<int> va;for(int a;fin>>a;)va.push_back(a);int s=0;for(vector<int>::iterator p1=va.begin();p1<va.end();p1++) {for(vector<int>::iterator p2=p1+1;p2<va.end();p2++) if((*p1)==(*p2))s++;}cout<<s<<endl;}//3.6.3二维向量#include<iostream>#include<sstream>#include<fstream>#include<vector>using namespace std;typedef vector<vector<int>> matrix;matrix input();void sort(matrix &a);void print(matrix &a);int main(){matrix a=input();sort(a);print(a);}matrix input(){matrix a;ifstream in("aa.txt");for(string s;getline(in,s);){vector<int> b;istringstream sin(s);for(int t;sin>>t;) b.push_back(t);a.push_back(b);}return a;}void sort(matrix &a){for(int i=0;i<a.size();i++){for(int j=i;j<a.size();j++){if(a[i].size()>a[j].size())a[i].swap(a[j]);}}}void print(matrix &a){for(int i=0;i<a.size();i++){for(int j=0;j<a[i].size();j++)cout<<a[i][j]<<" ";cout<<endl;}}//3.7.2指针类型#include<iostream>using namespace std;int main(){float f=34.5;int *p=reinterpret_cast<int *>(&f);cout<<"float:"<<endl;cout<<&f<<"=>"<<f<<endl;cout<<"======================"<<endl;cout<<"int:"<<endl;cout<<p<<"=>"<<*p<<endl;cout<<"======================="<<endl; }//3.7.3数组与指针#include<iostream>using namespace std;int main(){int a[6];for(int i=0;i<6;i++) a[i]=i*2;for(int *p=a;p<a+6;p++) cout<<*p<<" ";cout<<endl;}//3.7.5引用#include<iostream>using namespace std;int main(){int a=5;int &alias=a;cout<<&a<<" "<<a<<endl;cout<<&alias<<" "<<alias<<endl;int b=8;alias=8;cout<<&alias<<" "<<alias<<endl;}第二部分//1--二t进?制?码?#include<iostream>using namespace std;int main(){int f=-1234567;cout<<f<<endl;unsigned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//2—字节,位长#include<iostream>using namespace std;int main(){cout<<"long int:"<<sizeof(long int)<<" byte "<<8*sizeof(long int)<<" bit"<<endl;cout<<"int:"<<sizeof(int)<<" byte"<<8*sizeof(int)<<" bit"<<endl;cout<<"char:"<<sizeof(char)<<" byte "<<8*sizeof(char)<<" bit"<<endl;cout<<"bool:"<<sizeof(bool)<<" byte "<<8*sizeof(bool)<<" bit"<<endl;cout<<"long double:"<<sizeof(long double)<<" byte "<<8*sizeof(long double)<<" bit"<<endl;cout<<"double:"<<sizeof(double)<<" byte "<<8*sizeof(double)<<" bit"<<endl;cout<<"float:"<<sizeof(float)<<" byte "<<8*sizeof(float)<<" bit"<<endl;}//3—均方差#include<cmath>#include<iostream>#include<vector>using namespace std;int main(){int a[]={6,3,7,1,4,8,2,9,11,5};vector<int> v(a,a+10);for(vector<int>::iterator i=v.begin();i<v.end();i++) cout<<*i<<" ";cout<<endl;double everage=0,sum=0;for(int i=0;i<v.size();i++) sum+=v[i];everage=sum/double(v.size());cout<<"eve: "<<everage<<endl;double item=0;for(int i=0;i<v.size();i++){item+=pow(v[i]-everage,2.0);}cout<<"s="<<sqrt(item/double(v.size()))<<endl;}//4—加班+文件流#include<fstream>#include<iostream>#include<sstream>#include<string>using namespace std;int main(){ifstream in("aa.txt");int days=0;for(string s;getline(in,s);){if(s.find("25")<s.size()){cout<<s<<((s.find("*")<s.size())?" 还是个加班日哦":"")<<endl;}}}//5—字符加密//我没有看懂“在32(‘’)~122(‘’)之间做模运算”是什么意思,只做了加数字部分的加密,求解答#include<iostream>#include<sstream>using namespace std;int main(){int a[7]={4,9,6,2,8,7,3},i=0;for(char ch;(ch=cin.get())!='\n';){ch+=a[(i++)/7];cout<<ch;}cout<<endl;}//6—运行结果#include<iostream>using namespace std;int main(){int sum[5]={0};int iArray[]={1,4,2,7,13,21,48,16,30};int size=sizeof(iArray)/sizeof(*iArray);int *iPtr=iArray;for(int n=0;n<size;++n)sum[3]+=iPtr[n];for(int n=0;n<size;++n)sum[2]+=*(iPtr+n);for(int n=0;n<size;++n)sum[1]+=*iPtr++;for(int n=0;n<size;++n)sum[0]+=iArray[n];for(int n=0;n<size;++n)sum[4]+=*(iArray+n);for(int i=0;i<5;i++)cout<<sum[i]<<endl;}//7—修改成#include<iostream>using namespace std;void myswap(int &a,int &b);int main(){int a=16,b=48;int &aa=a,&bb=b;cout<<"a="<<a<<",b="<<b<<endl;myswap(aa,bb);cout<<"after being swapped:"<<endl;cout<<"a="<<a<<",b="<<b<<endl;}void myswap(int &a,int &b){int item;item=a;a=b;b=item;}。

C程序设计(第二版)答案

C程序设计(第二版)答案

第三章3.3请将下面各数用八进制和十六进制(补码)表示:(1)10 (2)32 (3)75 (4)-617 (5)-111(6)2483 (7)-28654 (8)210033.5 字符常量与字符串常量有什么区别?3.6 写出以下程序运行的结果。

main( ){ char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c%c”,c4,c5);}3.7 要将”China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。

例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。

因此,”China”应译为”Glmre”。

请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

3.8 例3.6能否改成如下:main( ){ int c1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}3.9 求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.53.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.12写出下面表达式运算后a的值,设原来a=12。

设a和已定义为整型变量。

(1)a+=a (2)a-=2(3)a*=2+3 (4)a/=a+a(5)a%=(n%=2), n的值等于5 (6)a+=a-=a*=a第四章4.3 C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?4.4 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。

c语言程序设计教程第二版课后习题答案.doc

c语言程序设计教程第二版课后习题答案.doc

c 语言程序设计教程第二版课后习题答案【篇一:c 语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2 .填空题(1)函数(2)主函数(main )(3)printf() ,scanf()第2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 ,4 ,2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0) (16)double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b)) (19)sqrt((x*x+y*y)/(a+b))第3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*l s f)(4)m%5==0 ,printf( “%n d”,k)(5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2). #includestdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3). #include stdio.h int main() {int y,m,d,flag,s=0,w,i; scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) { switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0) printf( 星期日\n); elseprintf( 星期%d\n,s); return 0; }(4).#include stdio.h int main() { float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01;printf(%f\n,r); return 0; } (5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) { printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; } printf(%u\n,t); return 0; }第4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2 (5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) ,x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p;scanf(%u,s); } printf(%u\n,fun(s)); (2).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsignedint p=0; void f2(float,float,float,float);【篇二:《c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.1 什么是计算机程序 11.2 什么是计算机语言 11.3c 语言的发展及其特点 31.4 最简单的 c 语言程序 51.4.1 最简单的 c 语言程序举例 61.4.2c 语言程序的结构101.5 运行c 程序的步骤与方法121.6 程序设计的任务141-5 #include stdio.h int main( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n); return 0;}1-6#include stdio.h int main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c); max=a; if (maxb)max=b; if (maxc) max=c;printf(the largest number is %d\n,max); return 0;}第2 章算法——程序的灵魂162.1 什么是算法162.2 简单的算法举例172.3 算法的特性212.4 怎样表示一个算法222.4.1 用自然语言表示算法222.4.2 用流程图表示算法222.4.3 三种基本结构和改进的流程图262.4.4 用n?s 流程图表示算法282.4.5 用伪代码表示算法312.4.6 用计算机语言表示算法322.5 结构化程序设计方法34习题36第章最简单的 c 程序设计——顺序程序设计37 3.1 顺序程序设计举例373.2 数据的表现形式及其运算393.2.1 常量和变量393.2.2 数据类型423.2.3 整型数据443.2.4 字符型数据473.2.5 浮点型数据493.2.6 怎样确定常量的类型513.2.7 运算符和表达式523.3c 语句573.3.1c 语句的作用和分类573.3.2 最基本的语句——赋值语句593.4 数据的输入输出65 3.4.1 输入输出举例653.4.2 有关数据输入输出的概念673.4.3 用printf 函数输出数据683.4.4 用scanf 函数输入数据753.4.5 字符数据的输入输出78 习题823-1 #include stdio.h#include math.hint main() {float p,r,n;r=0.1; n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint 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 年期。

程序设计第二版习题答案

程序设计第二版习题答案

程序设计第二版习题答案程序设计第二版习题答案在学习编程的过程中,我们经常会遇到一些难题和疑惑。

而《程序设计第二版》这本书,作为一本经典的编程教材,为我们提供了丰富的习题。

在这篇文章中,我将为大家提供一些《程序设计第二版》习题的答案,希望能够帮助大家更好地理解和掌握编程知识。

第一章:引论1. 编程是什么?答案:编程是将问题转化为计算机可以理解和执行的指令的过程。

通过编程,我们可以利用计算机解决各种实际问题。

2. 什么是计算机程序?答案:计算机程序是一系列指令的集合,用于告诉计算机如何执行任务。

程序可以包含条件判断、循环、函数等结构,以实现特定的功能。

第二章:C++基础知识1. 什么是变量?答案:变量是用于存储数据的一块内存空间。

在C++中,我们可以通过声明变量来指定变量的类型和名称,然后可以对其进行赋值和操作。

2. 如何定义一个整型变量并赋初值为10?答案:可以使用以下代码来定义一个整型变量并赋初值为10:int num = 10;第三章:控制结构1. 什么是条件语句?答案:条件语句用于根据条件的真假来执行不同的代码块。

在C++中,常用的条件语句有if语句和switch语句。

2. 如何使用if语句判断一个数是否为正数?答案:可以使用以下代码来判断一个数是否为正数:if (num > 0) {cout << "该数为正数" << endl;} else {cout << "该数不为正数" << endl;}第四章:函数1. 什么是函数?答案:函数是一段封装了特定功能的代码块,可以通过函数名和参数来调用执行。

函数可以提高代码的可读性和重用性。

2. 如何定义一个函数来计算两个数的和?答案:可以使用以下代码来定义一个函数来计算两个数的和:int sum(int a, int b) {return a + b;}第五章:数组和指针1. 什么是数组?答案:数组是一种用于存储多个相同类型元素的数据结构。

c程序设计(第2版)课后习题答案

c程序设计(第2版)课后习题答案

c程序设计(第2版)课后习题答案C程序设计是一门基础的计算机编程课程,它教授学生如何使用C语言编写程序。

C语言是一种结构化编程语言,广泛用于系统软件、嵌入式系统和各种应用程序的开发。

以下是一些C程序设计课后习题的答案示例,这些答案仅供参考,具体习题的答案可能会有所不同。

第一章:C语言概述1. 简述C语言的特点。

- C语言是一种高级语言,同时具有汇编语言的效率。

- 它支持结构化编程,允许模块化设计。

- C语言具有丰富的运算符和数据类型。

- 它提供了指针功能,增强了编程的灵活性。

2. 描述C程序的基本结构。

- C程序由预处理指令、函数定义和主函数`main()`组成。

- 每个函数由函数声明、函数体和花括号包围的代码块组成。

第二章:数据类型、运算符和表达式1. 列出C语言的基本数据类型。

- 整型:`int`、`short int`、`long int`- 浮点型:`float`、`double`- 字符型:`char`- 枚举型:`enum`2. 解释赋值运算符的左结合性和右结合性。

- 赋值运算符是右结合性,意味着从右向左进行赋值。

第三章:控制语句1. 什么是条件语句?- 条件语句允许程序根据条件是否满足来执行不同的代码路径。

2. 描述循环语句的类型及其用法。

- `for`循环:用于已知迭代次数的循环。

- `while`循环:用于未知迭代次数,条件为真时循环。

- `do-while`循环:至少执行一次循环体,然后检查条件。

第四章:函数1. 函数的定义是什么?- 函数是一段具有特定功能的代码块,可以接收参数并返回值。

2. 解释函数原型和函数定义的区别。

- 函数原型声明了函数的名称、返回类型和参数列表,但不包含函数体。

- 函数定义包含了函数的完整实现,包括函数体。

第五章:数组1. 一维数组的声明和初始化方式。

- 声明:`type arrayName[arraySize];`- 初始化:`int arr[5] = {1, 2, 3, 4, 5};`2. 二维数组的访问方式。

C程序设计(第二版)习题解答

C程序设计(第二版)习题解答

4.4 若 a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765, c1=’a’ ,c2=’b’ 。想得到以下的输出格式和结果,请写出程序(包括定义变 量类型和设计输出) 。 要求输出的结果如下: a=□3□□b=□4□□c=□5 x=1.200000,y=2.400000,z=-3.600000 x+y=□3.60□□y+z=-1.20□□z+x=-2.40 u=□51274□□n=□□□128765 c1=’a’ □or□97(ASCII) c2=’b’ □or□97(ASCII) 4.5 请写出下面程序的输出结果: #include "stdio.h" main( )
2
2 -2 0 2
-2
6.1 输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
n个a aa aaa aa a 之值,其中 a 是一个数字。 6.3 求 S n a
例如:2+22+222+2222+22222(此时 n=5) ,n 由键盘输入。
IT 在线 单片机技术交流 单片机系统设计开发
IT 技术
40 万元<I≤60 万元时,高于 40 万元的部分按 3%提成;60 万元<I≤100 万元 时,高于 60 万元的部分按 1.5%提成;I>100 万元时,超过 100 万元的部分按 1%提成。从键盘输入当月利润 I,求应发奖金总数。 要求: (1)用 if 语句编程序; (2)用 switch 语句编程序。 5.9 输入 4 个整数,要求按由小到大的顺序输出。 5.10 有 4 个圆塔,圆心分别为(2,2) , (-2,2) , (-2,-2) , (2,-2) ,圆半 径为 1。这 4 个塔的高度为 10m,塔以外无建筑物。今输入任一点的坐标,求 该点的建筑高度(塔外的高度为零) 。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

读研需要c++,以前只学过C,根据网评,找了国内的钱能老师写的《c++程序设计教程(第二版)》,书上的例子比较不错,但是在网上一直没有下到完整的包括例子和习题的解答,于是我就突发奇想,一方面也是督促自己学习C++,想把书上和习题上的所有编程题目的答案都写出来,可以在VS2010上运行,供正在学习C++的同学参考。

现在看到第二章,以后会经常的更新答案,我也是新手,可能在编程风格和思路上有待提高,也有一些题目不知道该如何下手,路过的朋友知道的可以告诉我,我的邮箱是guosheng-14@,可以督促我继续写以后的答案。

实在VS2010上运行的,vc++6.0可能在头文件上有所区别。

第三章第一部分//3.3.2—浮点数表示#include<iostream>using namespace std;int main(){float f=19.2F;cout<<f<<endl;unsi gned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//3.4.2—字符操作函数相关#include<iostream>using namespace std;int main(){char* s1="Hello";char* s2="123";char a[20];strcpy(a,s1);cout<<(strcmp(a,s1)==0?"":"not ")<<"equal."<<endl;cout<<strcat(a,s2)<<endl;cout<<strrev(a)<<endl;cout<<strset(a,'c')<<endl;cout<<(strstr(a,"ell")?"":"not ")<<"find."<<endl;cout<<(strchr(a,'c')?"":"not ")<<"find"<<endl;}//3.4.3string函数相关#include<iostream>#include<string>using namespace std;int main(){string a,s1="hello",s2="123";a=s1;cout<<(a==s1?"":"not ")<<"equal."<<endl;cout<<a+s2<<endl;reverse(a.begin (),a.end());cout<<a<<endl;cout<<a.replace (0,9,9,'c')<<endl;cout<<(a.find("ell")?"":"not ")<<"find"<<endl;cout<<(a.find('c')?"":"not ")<<"find"<<endl; }//3.4.5string流+文件流#include<iostream>#include<sstream>#include<fstream>using namespace std;int main(){ifstream fin("original.txt");for(string s;getline(fin,s);){int a,sum=0;for(istringstream sin(s);sin>>a;sum+=a);cout<<sum<<endl;}}//3.5.2--sizeof()#include<iostream>using namespace std;int main(){int a[]={1,15,8,3,8,48,2,64,5};for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)cout<<" "<<a[i];cout<<endl;}//3.5.3--初始化#include<iostream>using namespace std;int array1[5]={1,2,3};int array2[5];int main(){int array3[5]={2};int array4[5];cout<<"array1: ";for(int i=0;i<sizeof(array1)/sizeof(array1[0]);i++) cout<<array1[i]<<" ";cout<<endl;cout<<"array2: ";for(int i=0;i<sizeof(array2)/sizeof(array2[0]);i++) cout<<array2[i]<<" ";cout<<endl;cout<<"array3: ";for(int i=0;i<sizeof(array3)/sizeof(array3[0]);i++) cout<<array3[i]<<" ";cout<<endl;cout<<"array4: ";for(int i=0;i<sizeof(array4)/sizeof(array4[0]);i++) cout<<array4[i]<<" ";cout<<endl;}//3.5.4—二维数组#include<iostream>using namespace std;int main(){int a[2][3]={1,2,3,4,5};int b[2][3]={{1,2},4};cout<<"array1:"<<endl;for(int i=0;i<sizeof(a)/sizeof(a[0]);i++){cout<<" ";for(int j=0;j<sizeof(a[0])/sizeof(a[0][0]);j++)cout<<a[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl;cout<<"array2:"<<endl;for(int i=0;i<sizeof(b)/sizeof(b[0]);i++){cout<<" ";for(int j=0;j<sizeof(b[0])/sizeof(b[0][0]);j++)cout<<b[i][j]<<" ";cout<<endl;}cout<<"================================="<<endl; }//3.6.2—文件流+向量#include<iostream>#include<fstream>#include<vector>using namespace std;int main(){ifstream fin("original.txt");vector<int> va;for(int a;fin>>a;)va.push_back(a);int s=0;for(vector<int>::iterator p1=va.begin();p1<va.end();p1++){for(vector<int>::iterator p2=p1+1;p2<va.end();p2++)if((*p1)==(*p2))s++;}cout<<s<<endl;}//3.6.3二维向量#include<iostream>#include<sstream>#include<fstream>#include<vector>using namespace std;typedef vector<vector<int>> matrix; matrix input();void sort(matrix &a);void print(matrix &a);int main(){matrix a=input();sort(a);print(a);}matrix input(){matrix a;ifstream in("aa.txt");for(string s;getline(in,s);){vector<int> b;istringstream si n(s);for(int t;si n>>t;) b.push_back(t);a.push_back(b);}return a;}void sort(matrix &a){for(int i=0;i<a.size();i++){for(int j=i;j<a.size();j++){if(a[i].size()>a[j].size())a[i].swap(a[j]);}}}void print(matrix &a){for(int i=0;i<a.size();i++){for(int j=0;j<a[i].size();j++)cout<<a[i][j]<<" ";cout<<endl;}}//3.7.2指针类型#include<iostream>using namespace std;int main(){float f=34.5;int *p=reinterpret_cast<int *>(&f);cout<<"float:"<<endl;cout<<&f<<"=>"<<f<<endl;cout<<"======================"<<endl;cout<<"int:"<<endl;cout<<p<<"=>"<<*p<<endl;cout<<"======================="<<endl; }//3.7.3数组与指针#include<iostream>using namespace std;int main(){int a[6];for(int i=0;i<6;i++) a[i]=i*2;for(int *p=a;p<a+6;p++) cout<<*p<<" ";cout<<endl;}//3.7.5引用#include<iostream>using namespace std;int main(){int a=5;int &alias=a;cout<<&a<<" "<<a<<endl;cout<<&alias<<" "<<alias<<endl;int b=8;alias=8;cout<<&alias<<" "<<alias<<endl;}第二部分//1--二t进?制?码?#include<iostream>using namespace std;int main(){int f=-1234567;cout<<f<<endl;unsi gned int* p=reinterpret_cast<unsigned int*>(&f);for(int i=31;i>=0;i--)cout<<(*p>>i&1)<<(i==31||i==23?"-":"");cout<<endl;}//2—字节,位长#include<iostream>using namespace std;int main(){cout<<"long int:"<<sizeof(long int)<<" byte "<<8*sizeof(long int)<<" bit"<<endl;cout<<"int:"<<sizeof(int)<<" byte"<<8*sizeof(int)<<" bit"<<endl;cout<<"char:"<<sizeof(char)<<" byte "<<8*sizeof(char)<<" bit"<<endl;cout<<"bool:"<<sizeof(bool)<<" byte "<<8*sizeof(bool)<<" bit"<<endl;cout<<"long double:"<<sizeof(long double)<<" byte "<<8*sizeof(long double)<<" bit"<<endl;cout<<"double:"<<sizeof(double)<<" byte "<<8*sizeof(double)<<" bit"<<endl;cout<<"float:"<<sizeof(float)<<" byte "<<8*sizeof(float)<<" bit"<<endl;}//3—均方差#include<cmath>#include<iostream>#include<vector>using namespace std;int main(){int a[]={6,3,7,1,4,8,2,9,11,5};vector<int> v(a,a+10);for(vector<int>::iterator i=v.begi n();i<v.end();i++) cout<<*i<<" ";cout<<endl;double everage=0,sum=0;for(int i=0;i<v.size();i++) sum+=v[i];everage=sum/double(v.size());cout<<"eve: "<<everage<<endl;double item=0;for(int i=0;i<v.size();i++){item+=pow(v[i]-everage,2.0);}cout<<"s="<<sqrt(item/double(v.size()))<<endl;}//4—加班+文件流#include<fstream>#include<iostream>#include<sstream>#include<string>using namespace std;int main(){ifstream in("aa.txt");int days=0;for(string s;getline(in,s);){if(s.find("25")<s.size()){cout<<s<<((s.find("*")<s.size())?" 还是个加班日哦":"")<<endl;}}}//5—字符加密//我没有看懂“在32(‘’)~122(‘’)之间做模运算”是什么意思,只做了加数字部分的加密,求解答#include<iostream>#include<sstream>using namespace std;int main(){int a[7]={4,9,6,2,8,7,3},i=0;for(char ch;(ch=cin.get())!='\n';){ch+=a[(i++)/7];cout<<ch;}cout<<endl;}//6—运行结果#include<iostream>using namespace std;int main(){int sum[5]={0};int iArray[]={1,4,2,7,13,21,48,16,30};int size=sizeof(iArray)/sizeof(*i Array);int *iPtr=iArray;for(int n=0;n<size;++n)sum[3]+=iPtr[n];for(int n=0;n<size;++n)sum[2]+=*(iPtr+n);for(int n=0;n<size;++n)sum[1]+=*iPtr++;for(int n=0;n<size;++n)sum[0]+=iArray[n];for(int n=0;n<size;++n)sum[4]+=*(iArray+n);for(int i=0;i<5;i++)cout<<sum[i]<<endl;}//7—修改成#include<iostream>using namespace std;void myswap(int &a,int &b);int main(){int a=16,b=48;int &aa=a,&bb=b;cout<<"a="<<a<<",b="<<b<<endl;myswap(aa,bb);cout<<"after bei ng swapped:"<<endl;cout<<"a="<<a<<",b="<<b<<endl;}void myswap(int &a,int &b){int item;item=a;a=b;b=item;}。

相关文档
最新文档