1、int a,b,c;a=10;b=23;c=a+b; a+b=【解】前两个cout语句在输出数据后不换行,第3个cout语句输出一个换行,因此输出的结果为 a+b=337分析下面程序运行的结果。请先阅读程序写出程序运行时应输出的结果,然后上机 运行程序,验证自己分析的结果是否正确。以下各题同。int f(int x,int y,int z;cinabc;c=f(a,b,c;int f(int x,int y,int zint m;if (xelse m=y;if (zreturn(m;程序的作用是:输入3个整数,然后输出其中值最小的数。在主函数中输入3个整数,然后调用f函 数,在f函数中实现找
2、最小的整数,用if语句比较两个数,将小者存放在变量m中,经过两个if语 句的比较,m中存放的是3个整数中最小的数。运行情况如下:1 5 3 (输入3个整数1 (输出其中最小的数8在你所用的C + 系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改 程序,再进行编译,直到没有错误,然后进行连接和运行,分析运行结果。int main( ;int a,b;cout a+b;上机编译出错,编译出错信息告知在第2行出错,经检查,发现第1行的末尾多了一个分号,编译 系统无法理解第2行的花括号,导致报告第2行出错。将第1行的末尾的分号去掉,重新编译,编 译出错信息告知在第5行和第6行出错。第5
3、行出错原因是cout未经声明,因为cout不是C+ 语言 提供的系统的关键字,而是输出流的对象,必须使用头文件iostream。第6行出错原因是main是i nt型函数,应返回一个整型值。将程序改为重新编译。编译出错信息告知在第5行和第6行出错。第5行出错原因是变量c未定义,第6行出错 原因是cout未经声明,说明#include 命令行未能起作用,原因是未指明命名空间。couta+b;编译出错信息告知在第7行出错,经检查,是“”用得不当,“”是提取运算符,应与 cin联合使用,用来从输入流中提取数据,输出时应该用插入运算符“”都改为“ a b;c=add(a,b;cout c y z;sor
4、t(x,y,z;void sort(int x, int y, int zint temp;if (xy temp=x;x=y;y=temp; / 内3个语句的作用是将x和y的值互换if (z , x y else if (z z else cout c; max(a,b,c= max(a,b,c a a=b;if(ca a=c;return a;13 5 76max(a,b,c=76 (从3个数中找最大者)max(a,b=13 (从前2个数中找最大者)如 果 想 从 3 个 数 中 找大 者, 可以 在调 用 时 写 成 “ max(a,b,c ” 形 式 , 如 果 只 想 从 2 个 数
5、 中 找大 者 , 则 在 调 用 时 写 成 “ max(a,b ” 形 式 , 此 时 c 自 动 取 默 认 值 0 , 由 于 0 比 任 何正 整数 都小 , 因 此 从 1 4 , 5 , 0 中 选 最 大 者 和 从 1 4 , 5 中 选 大 者 的 结 果 是 一 样 的 。12 输 入 两 个 整 数 , 将 它 们 按 由 大 到 小 的 顺 序 输 出 。 要 求 使 用 变 量 的 引 用 。 void change(int &,int &if(a如果a ,使 a 和 b 的值互换max= min= void change(int &r1,int &r2 /函数的作
6、用是使r1与r2互换 int temp;temp=r1;r1=r2;r2=temp;1267max=67min=1213 对 3个 变 量 按由小到大顺序排序,要求使用变量的引用。void sort(int &int a,b,c,a1,b1,c1; Please enter 3 integers:a1=a;b1=b;c1=c;sort(a1,b1,c1; in sorted order is ;void sort(int &i,int &j,int &kif (ij change(i, j;k change(i, k;if (jk change(j, k;x,int &ytemp=x;Plea
7、se enter 3 integers:23 67 -5523 67 55 in sorted order is 55 23 67这个程序很容易理解,不易出错。由于在调用sort函数时虚实结合使形参i,j,k成为实 参a1,b1,c1的引用(别名),因此通过调用函数sort(a1,b1,c1)既实现了对i,j,k排序,也就同 时实现了对a1,b1,c1排序。同样,执行change(i,j)函数,可以实现对实参i和j的互换。14编一程序,将两个字符串连接起来,结果取代第一个字符串。要求用string方法。#include / 程序中若使用字符串变量,必须包含头文件string string s1
8、= week ,s2= end s1= s1 s2= s2 s1=s1+s2; The new string is:s1=weeks2=endThe new string is: weekend15输入一个字符串,把其中的字符按逆序输出。如输入LIGHT,输出THGIL。要求用 string方法。 string str; /定义字符串变量strint i,n;char temp; /定义字符变量temp please input a string:str; /输入一个字符串赋给字符串变量strn=str.size( ; /测量str的长度nfor(i=0;i / 使 str 中的字符对称互换t
9、emp=stri;stri=strn-i-1;strn-i-1=temp; str please input a string:LIGHTTHGIL注意:输入的字符串中不能含有空格。16有5个字符串,要求将它们按由小到大的顺序排列,用string方法。 【解】 可以编写出以下程序: int i;string str5= BASIC, C FORTRANPASCAL; void sort(string ;sort(str; /对字符串排序 the sorted strings :i5;i+ / 按已排好的顺序输出字符串void sort(string s int i, j;string t;fo
10、r (j=0; j j+ isi+1t=si;si=si+1;si+1=t;运行结果如下:the sorted strings :BASIC C C+ FORTRAN PASCAL17编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单 精度型、双精度型。用重载函数实现。【解】 可以编写出以下两个程序:(1)建立3个函数,分别用于处理整型、单精度型、双精度型数据的排序,在3个函数中都采 用选择法排序方法。long a5=10100,-123567, 1198783,-165654, 3456;int b5=1,9,0,23,-45;float c5=2.4, 7.6,
11、5.5, 6.6, -2.3 ;void sort(long ;void sort(int ;void sort(float ;sort(a;sort(b;sort(c;void sort(long a long t;if (aiai+1t=ai;ai=ai+1;ai+1=t; cout the sorted numbers : for(i=0;void sort(int a int i, j, t;void sort(float a float t;jaj min=j; ai=amin; amin=t; void sort(int a /对整型数据用选择法排序的函数 int i, j, t;void sort(float a /对单精度型数据用起泡法排序的函数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1