实验8 输入输出流
班级: 学号: 姓名: 成绩:
1、实验目的
(1)掌握流的概念。
(2)掌握C++中对标准输入输出流的使用。
2、实验内容
(1)编程序,在显示屏上显示一个由字母B组成的三角形。
B BBB BBBBB
BBBBBBB BBBBBBBBB BBBBBBBBBBB BBBBBBBBBBBBB BBBBBBBBBBBBBBB
(2)运行以下程序,并分析输出结果。
? P334 例12.6 ? P335 例12.7 ? P336 例12.8 ? P338 例12.9 ? P340 例12.11
3.试验过程
(1)
#include<iostream> #include<iomanip> using namespace std; int main() { cout<<"输出的结果为:"<<endl; for(int n=1;n<8;n++) cout<<setw(20-n)<<setfill(' ')<<" "<<setw(2*n-1)<<setfill('B')<<"B"<<endl; cout<<"程序执行结束"<<endl; return 0;
}----------------------------------------------- #include <iostream> #include <iomanip>
using namespace std; void main() { cout<<"请输入显示的符号B"<<endl; int i,j; for(i=1;i<=8;i++) { for(j=1;j<=8-i;j++) cout<<" "; for(j=1;j<=2*i-1;j++) cout<<"B"; cout<<endl; } }
#include <iostream> /*#include <iomanip>*/
using namespace std; void main() { char str[20]; cout<<"请输入字符窜:"<<endl; cin.getline(str,20); cout<<str<<endl; cout<<"------------"<<endl; cin.getline(str,20); cout<<str<<endl; }
(2)
#include <iostream> /*#include <iomanip>*/ using namespace std; void main() { char str[20]; cout<<"请输入字符窜:"<<endl; cin.get(str,20); cout<<str<<endl; cin.get(str,20); cout<<str<<endl;
}
#include <iostream> #include <iomanip> using namespace std; void main() { int i=1024,j=256; double p=3.1415927,q=3.14; cout<<i<<endl; cout<<setw(12)<<i<<j<<endl;
cout<<hex<<i<<endl;
cout<<j<<endl; cout<<dec<<j<<endl; cout<<setw(10)<<setiosflags(ios::left)<<setfill('#')<<i<<endl; cout<<setw(6)<<setfill('*')<<i<<endl; cout<<p<<endl; cout<<setprecision(5)<<p<<endl; cout<<p<<endl; cout<<resetiosflags(ios::left)<<setw(10)<<setfill('$')<<j<<endl; }
#include <iostream> #include <iomanip> using namespace std; void main() { int i=1024; double j=3.1415927; cout<<i<<endl; cout.width(10); cout<<i<<endl; cout<<i<<endl; cout.width(10); cout.fill('$'); cout.setf(ios::left,ios::adjustfield); cout<<i<<endl; cout.width(12); cout.setf(ios::right,ios::adjustfield); cout.precision(5); cout<<j<<endl; cout<<"width:"<<cout.width()<<endl;
}
#include <iostream> /*#include <iomanip>*/ using namespace std; void main() { int i=255; cout.setf(ios::showbase); cout<<i<<endl; cout.setf(ios::hex); cout<<i<<endl; cout.setf(ios::oct,ios::basefield); cout<<i<<endl; cout.setf(ios::uppercase); cout<<hex<<i<<endl;
}
#include <iostream> /*#include <iomanip>*/ using namespace std; void main() { int i,j; cout<<"请输入数据:"<<endl; cin>>hex>>i; cout<<i<<endl; cout<<"请输入数据:"<<endl; cin>>j; cout<<j<<endl; cout<<"请输入数据:"<<endl; cin>>oct; cin>>i; cout<<i<<endl; }
第二篇:第8章试验报告二
实验八 函数(二) 注意:答案以记事本格式保存上交,独立完成。
要求:记事本名字:学号后三位+姓名:如:002张三 , 程序也拷贝在该记事本中,标清题号。作业请提交以后自行删除,以免他人复制。
一、选择题:
1.下列的结论中正确的是:( )
A.所有的递归函数均可以采用非递归算法实现
B.只有部分递归函数可以采用非递归算法实现
C. 所有的递归函数均不可以采用非递归算法实现
D.以上3种说法都不对
2.在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( )
A.称为函数的直接递归 B.称为函数的间接递归 C.称为函数的递归定义D.C语言中不允许这样的递归形式
3. 在C语言程序中,下面哪一个是正确的?( )
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义可以嵌套,函数的调用也可以嵌套
D. 函数的定义和函数的调用都不可以嵌套
4.阅读程序,选择程序的运行结果:( )
#include”stdio.h”
main()
{int x;
x=try(5); printf(“%d”,x);}
try(int n)
{if (n>0) return(n*try(n-2));
else return(1);}
A.12 B. 120 C. 1 D前面3个答案都错误。
5.选择程序的运行结果:
#include<stdio.h>
long fib(int n)
{if(n>2) return(fib(n-1)+fib(n-2));
else return(2);}
main()
{ printf(“%ld”,fib(6));}
A.8 B. 16 C. 30 D前面3个答案都错误。
二、程序填空:
1.以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第五位学生的年龄.
#include<stdio.h>
age(int n)
{int c; if(n==1) c=10; else c= 1 ;
return(c);}
main( )
{ printf(“age:%d \n”, 2 );
2.下面的函数是一个求阶乘的递归调用函数:
facto(int n) {if (n==1) 3 ;
else return( 4 );}
3. 分析下面的程序,并写出运行结果。 #include <stdio.h> long sum(int a,int b); long factorial(int n); main( ) {
int n1,n2; long a;
scanf("%d,%d",&n1,&n2); a=sum(n1,n2);
printf("a=%1d",a); } 转右
运行时若输入:2,3 则输出:_______ 运行时若输入:0, 5 则输出:_______
三、程序设计题
1)用递归的方法计算X的n次方。 2)用递归的方法编写求Hermite的函数:
?
?
H0(x)?1n?0?
H1(x)?2x n?1??Hn
(x)?2xHn?1(x)?2(n?1)Hn?2(x)n?1
long sum(int a,int b) {
long c1,c2; c1=factorial(a); c2=factorial(b); return(c1+c2); } long factorial(int n) { long rtn=1; int i;
for(i=1;i<=n;i++) rtn*=i; return(rtn); }