内蒙古科技大学C++第四章习题答案
C++第4章 习题 参考答案

《计算机软件技术基础2》教学要求
说明:教学要求分为了解、掌握和熟练掌握三个层次,它们的含义大致为:了解即掌握概念,掌握就是能够理解和分析现有知识,熟练掌握就是会运用所学知识解决实际问题。
凡教学要求上没列举的内容不做要求。
第四章函数
教学要求:
1)熟练掌握C++函数的定义和函数的调用方法;
2)熟练掌握函数原型说明;
3)了解对函数的嵌套调用和递归调用;
4)熟练掌握函数间参数的各种传递机制;
5)了解变量的作用域、生存期和可见性;
6)了解函数参数的缺省、函数的重载;
7)了解函数返回指针和返回引用;
8)掌握对C++的主要系统函数的使用及其相应头文件的包含,例如:exit(), strcat(), strcmp(), strcpy(), strlen(), sqrt() 等;
9)了解编译预处理的概念;掌握包含文件命令的两种写法。
部分习题参考答案第四章
1、问答题(略)
2、写出下列程序运行结果:
(1)(2)(3)
(4)(5)(6)
3.
4.
5.
6.
7.
8.模板函数没有讲,不要求
9.
10.
11.
12.需用模板函数
13.
14.
15.
16.。
c++程序设计原理与实践第四章课后答案

第四章2.#include<iostream>#include<algorithm>#include<vector>using namespace std;int main(){vector<double>temps;double temp;double med;cout<<"请您输入一组数据:\n";while(cin>>temp)temps.push_back(temp);sort(temps.begin(),temps.end());//利用algorithm标准函数库的sort函数对向量进行排序。
if(temps.size()%2==0) //判断向量长度的奇偶性,假如有n个数,当n为偶数时,//中位数为第n/2位数和第(n+2)/2位数的平均数;//如果n为奇数,那么中位数为第(n+1)/2位数的值。
med=(temps[(temps.size()-2)/2]+temps[temps.size()/2])/2;else med=temps[(temps.size()+1)/2-1];cout<<"中值为:"<<med<<endl;return 0;}Vc6.0环境下运行情况如图:3.#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){vector<double>dists;double dist;double sum=0;double max;double min;cout<<"请您输入一组距离:\n";while(cin>>dist)dists.push_back(dist);for(int i=0;i<dists.size();i++)sum+=dists[i];sort(dists.begin(),dists.end());//利用标准函数库algorithm的sort函数对向量进行升序排列,//找出最大数。
内蒙古科技大学C++第四章习题答案

一、选择题1.标志着C++从面向过程变成面向对象的主要措施是(D )。
A.增加了新的运算符B.允许函数重载,设置默认参数C.规定函数声明必须用原型D.引用了类和对象的概念2.有关类的说法错误的是(D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中如果不作特殊说明,所指的数据均为私有类型D. 在类中如果不作特殊说明,所指的成员函数均为公有类型3.有关类和对象的说法错误的是(C )。
A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似4.下列关于构造函数的描述中,错误的是(D )。
A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明5.对任意一个类,析构函数的个数最多为(B )个。
.6.通常拷贝构造函数的参数是(D )。
A.某个对象名B.某个对象的成员名C.某个对象的指针名D.某个对象的引用名7.已知A是一个类,则执行语句A a;时,将自动调用该类的(B )。
A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数二、简答题1.比较C++中的结构(struct)和类(class)的概念的相同和不同之处。
答:相同处:struct和class都可以包含成员函数和数据成员,struct和class都可以继承,struct和class 都可以实现多态不同处:struct和class的默认继承访问权限不同,struct默认是public的,class默认是private2.类中的公有(public)成员和私有(private)成员有什么区别答:公有权限的数据成员或成员函数可以作为与外界联系的公共接口,由外界访问,称为类的外部接口,外界只能通过公有成员这个借口与类发生联系.共有成员不仅可以由该类的成员函数访问,还可以在类外的程序中通过对象来访问.私有成员只能通过该类的成员函数或友元函数访问,在类外的程序中不能通过对象来访问,对私有成员来说,来自类外的任何访问都是非法的.通常将类中的数据成员全部或大部分定义为私有的,这是类封装体最隐蔽的部分,实现了类内部数据的有效保护,提高了类封装数据的安全性.在类外,可以通过对象调用共有成员函数,实现对私有成员的访问.3.构造函数和析构函数的作用是什么答:构造函数是类中一个特殊的成员函数,他的作用是为对象的数据成员分配存储空间,对数据成员赋初值.析构函数的作用与构造函数正好相反,它用来完成对象被删除前的一些内存释放工作.4.构造函数是否可以重载为什么析构函数呢答:构造函数可以重载,因为一个类可以定义无参数或者参数个数不同的多个构造函数.析构函数不可以重载,因为析构函数没有参数,不可以像构造函数一样重载.5.拷贝构造函数的作用是什么何时调用拷贝构造函数答:拷贝构造函数的作用是用一个已存在的对象去初始化创建一个同类的新对象.拷贝构造函数一般在三种情况下调用:1.用已存在的对象去初始化创建同类的一个新对象.2.对象作为函数的参数3.函数的返回值为一个对象6.分析下面的程序,写出运行结果。
C 课后习题答案第四章

case 'c' : cout << '*' ; break ;
case 'd' : continue ;
}
cout << '#' << endl ;
}
}
答案:
$#
*#
*#
%
7.#include <iostream.h>
void main()
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int isPrime(int);
void createAry(int[], int);
void outAry(const int[], int);
void main()
cout << f( a, 3, 3 ) << endl ;
}
int f( int a[][3], int row, int col )
{int i, j, t=1 ;
for( i=0; i<row; i ++ )
for( j=0; j<col; j++ )
{a[i][j] ++ ;
if( i == j ) t*= a[i][j] ;
}
void createAry(int a[], int n)
{ srand( time(0) );
c++课后答案第四章

CHAP 4:03:#include <iostream.h>void main(void){double x,y;cout<<"输入X的值:";cin>>x;if(x>2.5)cout<<"X="<<x<<"时"<<"Y="<<(y=9.32*x-34.2)<<'\n';else cout<<"X="<<x<<"时"<<"Y="<<(y=1.5*x+7.5)<<'\n';}04:#include "stdafx.h":#include <iostream.h>void main(void){float x,y,t;cout<<"输入X和Y:";cin>>x>>y;if(x>y) cout<<(t=x-y)<<'\n';else cout<<(t=y-x)<<'\n';}05:#include "stdafx.h"#include <iostream.h>#include <math.h>void main(void){float a,b,c;double s,m;cout<<"输入三个系数:";cin>>a>>b>>c;s=b*b-4*a*c;m=sqrt(s);if(s<0)cout<<"无解"<<'\n';else if(s=0)cout<<"x1=x2="<<(-b)/(2*a)<<'\n';else{ cout<<"x1="<<(-b+m)/2/a<<"\n";cout<<"x2="<<(-b-m)/2/a<<'\n';}}:06:# include<iostream.h>void main(){double a;cout<<"输入分数:";cin>>a;if(a>90)cout<<"A"<<'\n';if(a>=80&&a<=89)cout<<"B"<<'\n';if(a>=70&&a<=79)cout<<"C"<<'\n';if(a>=60&&a<=69)cout<<"D"<<'\n';if(a<60)cout<<"E"<<'\n';}07:# include<iostream.h>void main(){int a;cout<<"1.90分以上\n";cout<<"2.80~89\n";cout<<"3.70~79\n";cout<<"4.60~69\n";cout<<"5.60以下\n";cout<<"请输入您的分数段:";cin>>a;switch(a){case 1:cout<<"A"<<'\n';break;case 2:cout<<"B"<<'\n';break;case 3:cout<<"C"<<'\n';break;case 4:cout<<"D"<<'\n';break;case 5:cout<<"E"<<'\n';break;case 6:cout<<"您搞错了!"<<'\n';break;}}08:# include<iostream.h>void main(){float a,b,n;cout<<"请按提示依次输入10个数!\n"<<"请输数:";b=0;n=0;while(n!=10){cout<<"请输入下个数:";cin>>a;b+=a;n++;}cout<<"10个数的和为:"<<b<<'\n';cout<<"10个数的平均数为:"<<b/10<<'\n';}:09:# include<iostream.h>void main(){float a,b,n;cout<<"请按提示依次输入10个数!\n"<<"请输数:";b=0;n=0;while(n!=10){cout<<"请输入下个数:";cin>>a;b+=a;n++;}cout<<"10个数的和为:"<<b<<'\n';cout<<"10个数的平均数为:"<<b/10<<'\n'; }10:# include<iostream.h>void main(){int a,b,c,m,n,s;m=99;n=0;while(n!=900){m++;s=m;n++;a=m/100;b=m/10-a*10;c=m-a*100-b*10;if(s==a*a*a+b*b*b+c*c*c)cout<<s<<'\n';}}11:# include<iostream.h># include<math.h>void main(void){int a,b,c,d;a=100;while(a!=201){b=a-1;d=0;while(b!=1){c=a%b;if(c==0)d++;b--;}if(d==0)cout<<a<<'\n';a++;}}12:# include<iostream.h>void main(){for(int m=1;m<=3;m++){switch(m){case 1:cout<<"* * *"<<'\n';break;case 2:cout<<" * * *"<<'\n';break;case 3:cout<<" * * *"<<'\n';}}}13:# include<iostream.h>void main(){int a=0,b=1,c=2,d;cout<<"n=1"<<" "<<"y="<<b<<'\n';cout<<"n=2"<<" "<<"y="<<c<<'\n';for(int m=3;m<=20;m++){d=c+b+a;cout<<"n="<<m<<" "<<"y="<<d<<'\n';a=b;b=c;c=d;}}14:# include<iostream.h>void main(){int a,b,c,d,x;cout<<"请输入一个四位数:";cin>>x;for(int i=1;i<=4;i++){switch(i){case 1:a=x/10;a=a/10;a=a/10;break;case 2:b=x/10;b=b/10;b=b-a*10;break;case 3:c=x/10;c=c-a*100-b*10;break;case 4:d=x-a*1000-b*100-c*10;}}cout<<a+b+c+d<<'\n';}15:# include<iostream.h>void main(){int m,n,s=0,t=0,x=0,y=0;cout<<"依次输入若干实数(当输入0时结束输入):";cin>>m;while(m!=0){if(m>0)n=1;if(m<0)n=2;switch(n){case 1:s+=m;x++;break;case 2:t+=m;y++;break;}cout<<"请输入下个数:";cin>>m;}cout<<"正数个数为:"<<x<<'\n';cout<<"负数个数为:"<<y<<'\n';cout<<"正数和为:"<<s<<'\n';cout<<"负数和为:"<<t<<'\n';cout<<"总平均数为:"<<(s+t)*1.0/(x+y)<<'\n'; }16:# include<iostream.h># include<math.h>void main(){int x,a,b,c,d;cout<<"输入一个四位数:";cin>>x;for(int i=1;i<=4;i++){switch(i){case 1:a=x/10;a=a/10;a=a/10;break;case 2:b=x/10;b=b/10;b=b-a*10;break;case 3:c=x/10;c=c-a*100-b*10;break;case 4:d=x-a*1000-b*100-c*10;break;}}cout<<d*1000+c*100+b*10+a<<'\n';}17:# include<iostream.h>void main(){int s=0;for(int n=1;s<=600;n++){s+=n;}cout<<"s="<<s<<" "<<"n="<<n-1<<'\n'; }18:# include<iostream.h>void main(){float m,n;n=1;m=1;while(n<=1000){m*=2*n/(2*n-1)*2*n/(2*n+1);n++;}cout<<m<<'\n';}19:# include<iostream.h>void main(){int x,a,b,c,d,e;for(int i=1;i<=599;i++){x=i%3;if(x==0){if(i>=1&&i<=99){a=i/10;b=i-a*10;if(a==5)cout<<i<<'\n';if(b==5)cout<<i<<'\n';}if(i>=100&&i<=599){c=i/100;d=i/10;d=d-c*10;e=i-c*100-d*10;if(c==5||d==5||e==5)cout<<i<<'\n';}}}}20:# include<iostream.h>void main(){int a,b,c,s;for(int i=100;i<=999;i++){a=i/100;b=i/10-a*10;c=i-a*100-b*10;if(a==b||a==c||b==c){s=i/11;if(s==a*a+b*b+c*c)cout<<i<<'\n';}}}。
C++第四章 函数习题解答

第四章函数习题一.基本概念与基础知识自测题4.1 填空题4.1.1 被定义为形参的是在函数中起(1)作用的变量,形参只能用(2)表示。
实参的作用是(3),实参可以用(4)、(5)、(6)表示。
答案:(1)自变量(2)变量名(3)将实际参数的值传递给形参(4)具有值的变量(5)常量(6)表达式4.1.2 局部域包括(1)、(2)和(3)。
使用局部变量的意义在于(4)。
答案:(1)块域(2)函数域(3)函数原型域(4)局部变量具有局部作用域使得程序在不同块中可以使用同名变量4.1.3 静态局部变量存储在(1)区,在(2)时候建立,生存期为(3),如定义时未显式初始化,则其初值为(4)。
答案:(1)全局数据区(2)编译(3)全局生存期(4)全04.1.4局部变量存储在(1)区,在(2)时候建立,生存期为(3),如定义时未显式初始化,则其初值为(4)。
答案:(1)栈(2)在函数或块开始执行时(3)函数或块的执行期(4)随机值4.1.5 编译预处理的作用是(1),预处理指令的标志是(2)。
多文件系统中,程序由(3)来管理,用户自定义头文件中通常定义一些(4)。
答案:(1)将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译并生成目标代码(2)#(3)工程文件(4)用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量4.1.6设有函数说明如下:f(int x, int y){ return x%y+1; }假定a=10,b=4,c=5,下列语句的执行结果分别是(1)和(2)。
(1) cout<<f(a,b)+f(a,c); (2) cout<<f(f(a+c,b),f(b,c));答案:(1)6(2)54.1.7下列程序的输出结果分别为(1)和(2)。
(1) #include<iostream.h>int a,b;void f(int j){static int i=a;int m,n;m=i+j; i++; j++; n=i*j; a++;cout<<”i=”<<i<<’\t’<<”j=”<<j<<’\t’;cout<<”m=”<<m<<’\t’<<”n=”<<n<<endl;}void main(){a=1; b=2;f(b); f(a);cout<<”a=”<<a<<’\t’<<”b=”<<b<<endl;}答案:(1)i=2 j=3 m=3 n=6i=3 j=3 m=4 n=9a=3 b=24.2 简答题4.2.1 函数的实参和形参怎样对应?实参和形参数目必须一致吗?什么情况下可以不同?答:实参和形参的个数和排列顺序应一一对应,并且对应参数应类型匹配(赋值兼容),当有缺省参数时可以不同。
大二C#第四章课后第二题答案——蒙祖强编
大二C#第四章课后第二题答案——蒙祖强编using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T4._2{class Program{class bigIntegerClass{private char[] chars = new char[101];private string lineStr;public int getcharslen() { return chars.Length; } public char getChars(int i) { return chars[i]; } public void setChars(int i, char c) { chars[i] = c; } public string initLineStr;public int flag = 0;public int startInChars;public int endInChars;public bigIntegerClass(){lineStr = "0";initLineStr = lineStr;for (int i = 0; i < chars.Length; i++) chars[i] = '0'; toChars();}public bigIntegerClass(string s){lineStr = s;initLineStr = lineStr;for (int i = 0; i < chars.Length; i++) chars[i] = '0';toChars();}private void toChars() //将字符串数字散列到字符数组chars中{if (lineStr.Substring(0, 1)=="+") //if(lineStr.Substring(0,1).Equals("+")) {chars[chars.Length-1] = '+';lineStr = lineStr.Trim('+');}else if(lineStr.Substring(0,1).Equals("-")){chars[chars.Length - 1] = '-';lineStr = lineStr.Trim('-');}else chars[chars.Length - 1] = '+';lineStr = lineStr.TrimStart('0'); //去掉前面的0if (lineStr == "") //为0{startInChars = chars.Length - 2;endInChars = chars.Length - 2;chars[startInChars] = '0';return;}startInChars = chars.Length - lineStr.Length - 1;endInChars = chars.Length - 2;for (int i = startInChars; i <= endInChars; i++){char[] cs = lineStr.Substring(i - startInChars, 1).T oCharArray();chars[i] = cs[0];}}public static bigIntegerClass Abs(bigIntegerClass bi) //返回当前整数对象的绝对值对象bigIntegerClass{bigIntegerClass newbi = new bigIntegerClass(bi.initLineStr);newbi.setChars(newbi.getcharslen() - 1, '+');return newbi;}public static Boolean operator ==(bigIntegerClass i1, bigIntegerClass i2) //==重载{if(((i1.startInChars == i1.chars.Length - 2) && (i1.chars[i1.startInChars] == '0')) && //两个整数都为0 ((i2.startInChars == i2.chars.Length - 2) && (i2.chars[i2.startInChars] == '0')))return true;if(i1.chars[i1.getcharslen() - 1] != i2.chars[i2.getcharslen() - 1]) return false; //符号不同,非0整数对象肯定不相等if (i1.startInChars != i2.startInChars) return false; //位数不一样,整数对象肯定不相等//剩下的是位数相等的情况for (int i = i1.startInChars; i < i1.getcharslen() - 1; i++){int n1 = int.Parse(i1.getChars(i).ToString());int n2 = int.Parse(i2.getChars(i).ToString());//Console.WriteLine(i);if (n1 != n2) return false; //只要有一位数字不能,则它们肯定不等}return true;}public static Boolean operator !=(bigIntegerClass i1, bigIntegerClass i2) //!=重载{if (i1 == i2) return false;return true;}public static Boolean operator <(bigIntegerClass i1, bigIntegerClass i2) //<重载{if (i1 == i2) return false;if ((i1.chars[i1.getcharslen() - 1] == '+') && (i2.chars[i2.getcharslen() - 1] == '-')) return false;if ((i1.chars[i1.getcharslen() - 1] == '-') && (i2.chars[i2.getcharslen() - 1] =='+')) return true;//剩下的是同符号的整数char op = i1.chars[i1.getcharslen() - 1];bigIntegerClass i11 = bigIntegerClass.Abs(i1); //获取绝对值对象bigIntegerClass i22 = bigIntegerClass.Abs(i2);if (i11.endInChars - i11.startInChars < i22.endInChars - i22.startInChars){if (op == '+') return true; //正整数的位数越多,值越大else return false; //op == '-' //负整数的位数越多,值越小}if (i11.endInChars - i11.startInChars > i22.endInChars - i22.startInChars){if (op == '+') return false;else return true; //op == '-'}//剩下的是位数相等的情况for (int i = i1.startInChars; i < i1.getcharslen()-1;i++ ){int n1 = int.Parse(i1.getChars(i).ToString());int n2 = int.Parse(i2.getChars(i).ToString());//Console.WriteLine(i);if (n1 > n2) return (op == '+' ? false : true);if (n1 < n2) return (op == '+' ? true : false);//如果n1 == n2,则看下一位}return false; //两个大整数的绝对值相等}public static Boolean operator >(bigIntegerClass i1, bigIntegerClass i2) //>重载{if (i1 == i2) return false;if (i1 < i2) return false;return true;}public static bigIntegerClass operator +(bigIntegerClass i1, bigIntegerClass i2) //加号+重载{bigIntegerClass i3 = new bigIntegerClass();int minlen = Math.Min(i1.startInChars, i2.startInChars);if (i1.chars[i1.getcharslen() - 1] == i2.chars[i2.getcharslen() - 1]) //同符号 {i3.chars[i3.getcharslen() - 1] = i1.chars[i1.getcharslen() - 1];i3.startInChars = minlen;for (int i = i1.getcharslen() - 2; i >= minlen; i--){int n1 = int.Parse(i1.getChars(i).ToString());int n2 = int.Parse(i2.getChars(i).ToString());int n = n1 + n2 + i3.flag;if (n >= 10){n = n - 10;i3.flag = 1; //有进位}else i3.flag = 0; //无进位char[] cs = n.ToString().ToCharArray();i3.setChars(i, cs[0]);}if (i3.flag == 1){i3.startInChars--;if (i3.startInChars < 0){Console.WriteLine("已经产生溢出!");return null;}i3.setChars(i3.startInChars, '1');}}//end if //同符号else//符号不同的时候{bigIntegerClass tempi;bigIntegerClass i11 = bigIntegerClass.Abs(i1); //获取绝对值对象bigIntegerClass i22 = bigIntegerClass.Abs(i2);if(i11 == i22) i3.startInChars = i3.getcharslen() - 2; i3.chars[i3.startInChars] = '0'; i3.chars[i3.startInChars+1] = '+'; //相加为0if (i11 > i22) { i3.chars[i3.getcharslen() - 1] = i1.chars[i1.getcharslen() - 1]; } //以i1的符号为准else i3.chars[i3.getcharslen() - 1] = i2.chars[i2.getcharslen() - 1]; //以i2的符号为准if (i11 < i22) //保证i11为大的整数{tempi = i11;i11 = i22;i22 = tempi;}for (int i = i11.endInChars; i >= i11.startInChars; i--){int n1 = int.Parse(i11.getChars(i).ToString());int n2 = int.Parse(i22.getChars(i).ToString());int n = n1 - n2 + i3.flag;if (n1 + i3.flag < n2){n = n + 10;i3.flag = -1; //有借位}else i3.flag = 0; //无借位if (n != 0) i3.startInChars = i;char[] cs = n.ToString().ToCharArray();i3.setChars(i, cs[0]);}}return i3;}public static bigIntegerClass operator -(bigIntegerClass i1, bigIntegerClass i2)//加号-重载{if (i2.chars[i2.getcharslen() - 1]=='+')i2.chars[i2.getcharslen() - 1] = '-';else i2.chars[i2.getcharslen() - 1] = '+';bigIntegerClass i3 = i1 + i2;return i3;}public static implicit operator bigIntegerClass(string s){bigIntegerClass bi = new bigIntegerClass(s);return bi;}public string getResult(){string result = "";if (chars[endInChars + 1] == '-') result = "-";for (int i = startInChars; i <= endInChars; i++) result += chars[i].T oString();return result;}}static void Main(string[] args){bigIntegerClass bi1 = "-823456789123456789";bigIntegerClass bi2 = "123456789123456789";bigIntegerClass bi3 = bi1 + bi2;Console.WriteLine("{0} + {1} = {2}", bi1.getResult(), bi2.getResult(),bi3.getResult());bigIntegerClass bi4 = bi1 - bi2;Console.WriteLine("{0} + {1} = {2}", bi1.getResult(), bi2.getResult(),bi4.getResult());Console.WriteLine("----------------------------------------------------------------");bigIntegerClass bi5 = "-123";bigIntegerClass bi6 = "-123";Console.WriteLine("{0} 等于{1} 吗?", bi5.getResult(), bi6.getResult());if (bi5 == bi6) Console.WriteLine("YES!");else Console.WriteLine("NO!");Console.WriteLine("----------------------------------------------------------------");Console.WriteLine("{0} 小于{1} 吗?", bi5.getResult(), bi6.getResult());if (bi5 < bi6) Console.WriteLine("YES!");else Console.WriteLine("NO!");Console.WriteLine("----------------------------------------------------------------");Console.WriteLine("{0} 大于{1} 吗?", bi5.getResult(),bi6.getResult());if (bi5 > bi6) Console.WriteLine("YES!");else Console.WriteLine("NO!");Console.ReadKey();}}}。
内蒙古科技大学计算机应用基础期末题目及答案
计算机应用基础期末题目一、单项选择题(每小题2 分,共 40分)1、在衡量计算机的主要性能指标中,字长是( )A、计算机运算部件一次能够处理的二进制数据位数B、8位二进制长度C、计算机的总线数D、存储系统的容量【答案】A2、每一种进制数都有组成的三个要素,其中下列 ( )是其中之一.A、基数B、进位规则C、借位规则D、位数限制【答案】A3、计算机中数据的表示形式是______。
A、八进制B、十进制C、二进制D、十六进制【答案】C4、在Windows中,按下鼠标右键在同一个驱动器的不同文件夹中拖动某一文件,不可能发生的结果是_________。
A、移动该文件B、在目标文件夹创建快捷方式C、删除该文件D、复制该文件【答案】C5、Pentium4/3.2G中的3.2G表示 ____.A、CPU为Pentium4的3.2G系列B、CPU的时钟主频为3.2GHzC、CPU与内存间的数据交换速率是3.2GKB/sD、CPU的运算速度为3.2GMIPS【答案】B6、在多媒体计算机中最关键的技术是( ).A、压缩和解压缩技术B、VR技术C、数字化处理技术D、数字多媒体通信技术【答案】A7、载波侦听多路访问(CSMA/CD) 。
A、只用于环型拓扑结构B、只用于总线拓扑结构C、不能用于总线拓扑结构D、能用于环型拓扑结构和总线拓扑结构【答案】B8、在一个EXCEL工作表中,怎样快速移到工作表的最后一行( )A、按Ctrl+ ↑组合键B、按Ctrl+ ↓组合键C、按Ctrl+End组合键D、拖滚动条【答案】B9、PowerPoint2010 编辑幻灯片中插入的表格时,单击表格工具,可以设置________.A、表格底纹(颜色)B、动画、审阅C、设计、切换D、幻灯片放映【答案】A10、计算机的技术性能指标主要是指( )。
A、显示器的分辨率,打印机的性能等配置B、字长、运算速度,内/外存容量和CPU的时钟频率C、计算机所配备语言、操作系统、外部设备D、硬盘的容量和内存的容量【答案】B11、在word的文档窗口进行最小化操作( )。
第四章课后作业答案ppt资料
AREA1: DB 15H,03H,03H,08H,-4;AREA1=0500H
ቤተ መጻሕፍቲ ባይዱBUF: DS 02H;
BUF=0505H
TIME EQU 01H;
TIME=01H
ACK: DB ‘GH’;
ACK=0507H
第二页,编辑于星期五:十四点 二十八分。
二、编程与问答题
6.设内RAM从20H单元开始存有40H个无符号数,试编制程序
将它们按从大到小的顺序排列,结果仍存放在原存贮区域内。
ORG 0000H AJMP MAIN ORG 0030H
MAIN: MOV R0,#3FH
MAIN1:MOV R1,#20H MOV A,R0
MOV R2,A
LOOP1:MOV A,@R1
INC R1 MOV B,@R1 CJNE A,B,LOOP2
MOV @R1,A DEC R1 MOV @R1,70H
INC R1 SETB F0
LOOP3: DJNZ R2,LOOP1 JB F0,MAIN
SJMP $ END
第四页,编辑于星期五:十四点 二十八分。
谢谢观看
第五页,编辑于星期五:十四点 二十八分。
单片机原理及应用
—— 第四章课后作业解答
李峥
淮北师范大学 物理与电子信息学院
第一页,编辑于星期五:十四点 二十八分。
一、填空题
1. 编写子程序和中断服务程序时,必须注意现场的保护 和恢复。
2. 计算机(微处理器)能够唯一识别的语言时机器语言。
3. 下列伪指令汇编后,各标号的值分别为
ORG 0500H
CJNE A,70H,LOOP2MOV @R1,70H
DEC R1
流体力学之美与哲学科学启示智慧树知到课后章节答案2023年下内蒙古科技大学
流体力学之美与哲学科学启示智慧树知到课后章节答案2023年下内蒙古科技大学内蒙古科技大学第一章测试1.神奇的九寨沟在中国哪个省()。
答案:四川2.涟波的恢复力是什么?()答案:表面张力3.人间瑶池黄龙在我国哪个地区?()答案:四川松潘4.瑞利因为下面哪一项成果获得了1904诺贝尔奖()。
答案:发现了惰性气体氩。
5.丁达尔现象属于哪类散射?( )答案:米散射6.汽车一般前雾灯为黄光后雾灯为红光,因而有更远的穿透力,这是利用的是哪类散射?( )答案:瑞利散射7.下面哪几位大师研究过天为什么这么蓝()?答案:瑞利;爱因斯坦;达芬奇;亚里士多德8.瑞利散射又叫分子散射,其散射光的强度与()答案:波长四次方成反比;频率的四次方成正比9.拉曼是()。
答案:印度人10.第一个获得诺贝尔物理学奖的亚洲人是 ( )答案:拉曼第二章测试1.列奥纳多.达芬奇是()答案:意大利人2.谁的科学成就可以让当时的整个科技进程推进30甚至100年。
( )答案:达芬奇3.1994年,谁以3080万美元的高价买下了达芬奇72页的“莱斯特手稿”。
()答案:比尔盖茨4.蒙娜丽莎是下列谁的作品。
( )答案:达芬奇5.蒙娜丽莎目前珍藏在。
( )答案:法国卢浮宫6.达芬奇一生的完整画作有 ( )十多件7.关于蒙娜丽莎的身世目前认为 ( )答案:更可能是丽莎.德尔.焦孔多8.列奥纳多.达芬奇被誉为()。
答案:画家;人类历史上绝无仅有的全才;科学家;文艺复兴三杰之一9.晕涂法为下列哪位画家所创。
()答案:达芬奇10.关于晕涂法的说法正确的是()。
答案:晕涂法又称薄雾法。
;在蒙娜丽莎的肖像画中发挥到了极致。
;让皮肤弹性与肉感更逼真。
;让皮肤更加柔和、圆润。
第三章测试1.“……God said "Let Newton be" and all was light.”这句话是谁说的。
()。
英国诗人波普2.艾萨克·牛顿(1643年1月4日—1727年3月31日)爵士,是哪国著名的物理学家,百科全书式的“全才”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题1.标志着C++从面向过程变成面向对象的主要措施是(D )。
A.增加了新的运算符B.允许函数重载,设置默认参数C.规定函数声明必须用原型D.引用了类和对象的概念2.有关类的说法错误的是(D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中如果不作特殊说明,所指的数据均为私有类型D. 在类中如果不作特殊说明,所指的成员函数均为公有类型3.有关类和对象的说法错误的是(C )。
A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似4.下列关于构造函数的描述中,错误的是(D )。
A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明5.对任意一个类,析构函数的个数最多为(B )个。
A.0 .B.1C.2D.46.通常拷贝构造函数的参数是(D )。
A.某个对象名B.某个对象的成员名C.某个对象的指针名D.某个对象的引用名7.已知A是一个类,则执行语句A a;时,将自动调用该类的(B )。
A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数二、简答题1.比较C++中的结构(struct)和类(class)的概念的相同和不同之处。
答:相同处:struct和class都可以包含成员函数和数据成员,struct和class都可以继承,struct和class都可以实现多态不同处:struct和class的默认继承访问权限不同,struct默认是public的,class默认是private 2.类中的公有(public)成员和私有(private)成员有什么区别?答:公有权限的数据成员或成员函数可以作为与外界联系的公共接口,由外界访问,称为类的外部接口,外界只能通过公有成员这个借口与类发生联系.共有成员不仅可以由该类的成员函数访问,还可以在类外的程序中通过对象来访问.私有成员只能通过该类的成员函数或友元函数访问,在类外的程序中不能通过对象来访问,对私有成员来说,来自类外的任何访问都是非法的.通常将类中的数据成员全部或大部分定义为私有的,这是类封装体最隐蔽的部分,实现了类内部数据的有效保护,提高了类封装数据的安全性.在类外,可以通过对象调用共有成员函数,实现对私有成员的访问.3.构造函数和析构函数的作用是什么?答:构造函数是类中一个特殊的成员函数,他的作用是为对象的数据成员分配存储空间,对数据成员赋初值.析构函数的作用与构造函数正好相反,它用来完成对象被删除前的一些内存释放工作.4.构造函数是否可以重载?为什么?析构函数呢?答:构造函数可以重载,因为一个类可以定义无参数或者参数个数不同的多个构造函数.析构函数不可以重载,因为析构函数没有参数,不可以像构造函数一样重载.5.拷贝构造函数的作用是什么?何时调用拷贝构造函数?答:拷贝构造函数的作用是用一个已存在的对象去初始化创建一个同类的新对象.拷贝构造函数一般在三种情况下调用:1.用已存在的对象去初始化创建同类的一个新对象.2.对象作为函数的参数3.函数的返回值为一个对象6.分析下面的程序,写出运行结果。
程序(1):#include <iostream.h>class exap{int x,y;public:exap(int a,int b){x=a;y=b;}exap(exap &P){x=P.x; y=P.y;}int set(int x1,int y1){x=x1; y=y1;}int geta(){ return a; }int getb(){ return b; }};void main(){exap A(1,2); exap B=A;cout<<"A="<<A.geta()<<","<<A.getb()<<endl;cout<<"B="<<B.geta()<<","<<B.getb()<<endl;B.set(10,20);cout<<"B="<<B.geta()<<","<<B.getb()<<endl;}运行结果:A=1,2B=1,2B=10,20Press any key to continue程序(2):#include <iostream.h>#include <string.h>class example1{public:example1(){cout<<"constructing example1."<<endl;}~example1(){ cout<<"destructing example1."<<endl; }};class example2{public:example2(){ cout<<"constructing example2 ."<<endl; } ~example2(){ cout<<"destructing example2."<<endl; }};void main(){example1 stu1;example2 tea1;cout<<"end in main"<<endl;}运行结果:constructing example1.constructing example2 .end in maindestructing example2.destructing example1.Press any key to continue7.设类A的定义如下:class A{int a;……}若用类A定义了两个对象x1,x2,它们各自的数据成员a是同一个变量吗?取值是否可以不同?答:是同一个变量,因为创建对象通过构造函数构造的数据成员都是同一个变量,可以取值不同,调用构造函数时若传递的实参不同或者无参数时,即可以使构造的数据成员取值不同.8.下面是一个产品类Product的定义。
完成成员函数的定义,并用数据测试这个类。
class Product{char *name; // 产品名称int price; // 产品单价int quantity; // 剩余产品数量public:Product(char *n, int p, int q);~Product();void buy( int money); // 购买产品void get () const; // 返回剩余产品数量};答:#include<iostream.h>#include<string.h>class Product{public:Product(char *n,int p,int q);//构造函数~Product();//析构函数void get(); //显示剩余产品数量void buy(int money); //购买产品private:char name[20]; //产品名称int price; //产品单价int quantity;//剩余产品数量};Product::Product(char *n,int p,int q){strcpy(name,n);price=p;quantity=q;}Product::~Product(){cout<<"析构函数已调用"<<endl;}void Product::get(){cout<<"产品名称:"<<name<<endl;cout<<"产品单价:"<<price<<endl;cout<<"剩余数量:"<<quantity<<endl;}void Product::buy(int money){quantity-=money;cout<<"已购买"<<money<<"此产品"<<endl;}void main(){char n[10];int p,q;cout<<"请输入产品名称,产品单价,产品数量:"<<endl;cin>>n>>p>>q;Product P1(n,p,q);P1.get();int money;cout<<"请输入您要购买的数量:"<<endl;cin>>money;P1.buy(money);P1.get();}三、编程题1.#include<iostream.h>#include<string.h>class Cuboid{int length;int width;int height;public:Cuboid(int l=0,int w=0,int h=0){length=l;width=w;height=h;}~Cuboid(){cout<<"析构函数已调用"<<endl;}void areavolume(int length,int width,int height); };void Cuboid::areavolume(int length,int width,int height) {int area,volume;area=(length*width+width*height+length*height)*2;volume=length*width*height;cout<<"表面积为"<<area<<endl;cout<<"体积为"<<volume<<endl;}void main(){int l,w,h;cout<<"请输入长方体的长,宽,高:"<<endl;cin>>l>>w>>h;Cuboid C1(l,w,h);C1.areavolume(l,w,h);}#include<iostream.h>#include<string.h>class Cuboid{int length;int width;int height;public:Cuboid(int l=0,int w=0,int h=0){length=l;width=w;height=h;}~Cuboid(){cout<<"析构函数已调用"<<endl;}void areavolume();};void Cuboid::areavolume(){cout<<"表面积为"<<(length*width+width*height+length*height)*2<<endl;cout<<"体积为"<<length*width*height<<endl;}void main(){int l,w,h;cout<<"请输入长方体的长,宽,高:"<<endl;cin>>l>>w>>h;Cuboid C1(l,w,h);C1.areavolume();}2.#include <iostream.h>class point{int x;int y;public:point(int xp=0,int yp=0){x=xp;y=yp;}int getx(){return x;}int gety(){return y;}};void main(){int x,y;cout<<"请输入x和y的值:"<<endl;cin>>x>>y;point p1(x,y);cout<<"x的值为"<<p1.getx()<<",y的值为"<<p1.gety()<<endl; }4. #include<iostream.h>#include<string.h>#define N 20class Student{long ID;char name[N];int score1;int score2;public:Student(long ID1,char *n,int s1,int s2);~Student(){cout<<"析构函数已调用"<<endl;}void display();void average();};Student::Student(long ID1,char *n,int s1,int s2){ID=ID1;strcpy(name,n);score1=s1;score2=s2;}void Student::display(){cout<<"学生信息:"<<endl;cout<<"姓名:"<<name<<endl;cout<<"学号:"<<ID<<endl;cout<<"成绩1:"<<score1<<endl;cout<<"成绩2:"<<score2<<endl;}void Student::average(){cout<<"该学生两门课的平均成绩为:"<<(score1+score2)/2<<endl; }void main(){long ID;char name[N];int score1;int score2;cout<<"请输入学生姓名,学号,第一科目成绩,第二科目成绩:"<<endl;cin>>name>>ID>>score1>>score2;Student S1(ID,name,score1,score2);S1.display();S1.average();}。