中国科学技术大学C语言上机操作
更新时间:2023-10-13 12:57:01 阅读量: 综合文库 文档下载
上机操作11 实验目的: 1. 函数与递归 2. 程序设计实例 3. 程序调试
实验操作 1. 若an?编制程序求a5,a10,a20,a50,a100,该数列是否存在极2?2?2?...共n项2,
限,若存在请求出并进行验证。(提示:定义函数double a(int n))
2. fun(int x){
if(x/2>0) fun(x/2-2); printf(\main(){
fun(20); printf(\
运行结果是 。 A)20 8 2 -1 B)2 8 20
C)8 D)-1 2 8 20
3. #include
#include
double mysqrt(double a,double x0){ double x1,y;
x1=0.5*(x0+a/x0);
if(fabs(x1-x0)>0.00001) y=mysqrt(a,x1); else y=x1; return y;} int main(){ double x;
printf(\ scanf(\
printf(\
上述程序是应用递归算法求某数a的平方根,请填空。求平方根的迭代公式如下:
1ax1?(x0?)
2x04. (简易计算器)假定它从键盘上读入如下形式的输入行:
128+365 254+1438
程序每读入一个形式正确的行之后就计算并输出结果,直到用户要求结束。
#include
using namespace std; int main(){ int left,right;
printf(\
printf(\ while(scanf(\
if(getchar()!='+'||scanf(\
printf(\ while(getchar()!='\\n') /*丢掉本行剩余字符*/ ; }
printf(\ }
system(“pause”);
}
进一步思考:如何实现其他计算功能?
注:本章中的输入命令采用EOF文件结束标志方法暂时实现不了,要等到学完文件操作后才有可能使用到。
5. 程序调试:编程包括编制代码和调试程序两部分,其中调试占用2/3时间强,可见其重
要性,对于初学者而言,要做到如下几点可以最大程度减少程序出错的可能性: a) 如果看不到程序里面的错误,请先将程序的格式整理好。
b) 注意不同数据类型混合计算可能出现的意外结果,并避免除零现象 c) 如果不知道循环在干什么,何不在循环体中加上循环内容的输出呢。
上机操作12 实验目的: 4. 数据类型
5. 随机数函数应用 6. 函数形参和实参 7. 函数原型和声明 8. 常量定义
实验操作
6. 下列哪条在书写数65上不是合法的方式?
?A? 0b1000001 0101 0x41 7. 假设程序包含下列声明:
char c='\\1'; short int s=2; int i=-3; long int m=5; float f=6.5;
double d=7.5;
请给出下列每个表达式的值和类型。 a) c*i d) s+m
b) f/c e) d/s
c) f-d f) (int)f
8. 请定义函数判断一个点与坐标原点的距离是否小于1,是否在单位圆内。借助这一函数
写一个通过随机模拟(Monte Carlo)方法计算圆周率值的程序:每次计算机生成两个0到1之间的实数(利用标准库的随机数生成函数产生这种实数),看这两个值形成的点是否在单位圆内。生成一系列随机点,统计位于单位圆内的点数与总点数,看它们之比的4倍是否趋向圆周率值。请生成100,200,…,1000,10000个数据点做试验。
#include
int incircle(double x,double y){ return x*x+y*y<=1.0?1:0; } //判断点(x,y)是否在单位圆内 int main(){ }
(注:该法原理来自一正方形中点落在其最大内切圆内的概率是圆和正方形的面积之比,为什么?) int i,n,m=0; //m代表落在单位圆内的点数,初始值为0;n代表模拟的次数 double x,y;
printf(\); scanf(\,&n);
srand(99); //初始化种子,这里设定为99,可以自行调整 for(i=1;i<=n;i++){ }
printf(\,4.0*m/n,n);
x=rand()/32767.0; y=rand()/32767.0; m+=incircle(x,y);
9. 假设函数f有下列定义:int f(int a, int b){……},那么下列哪条语句是合法的?(假设i
的类型为int而x的类型为float。) a) i=f(83,12); b) x=f(83,12); c) i=f(3.15,9.28); d) x=f(3.15,9.28); e) f(83,12);
10. 对于返回为空且有一个float型形式参数的函数,下列哪个函数原型是有效的?
a) void f(float x); b) void f(float); c) void f(x); d) f(float x);
11. 下列计算三角形面积的函数有两处错误,找出这些错误,并且说明修改它们的方法。(提
示:公式没有错误)
float triangle_area(float base,height) float product;{
product=base*height;
return(product/2); }
12. 下列程序的输出结果是什么? #include
void swap(int a,int b); int main(){ }
void swap(int a,int b){ //a,b为形参
int temp; temp=a; a=b;
int x=1,y=2;
swap(x,y); //x,y为实参,调用时实参单项传值给形参进行计算,但形参值无法返回给对应实参 printf(\,x,y); //注意理解这一输出结果 return 0;
b=temp;}
13. 以下合法的字符型变量是 (2007.4)
A)?\\x13? B) ?\\081? C)?65? D) “\\n” 14. 有以下程序
void fun2(char a,char b){printf(\,a,b);} char a='A',b='B'; void fun1(){a='C',b='D';} main(){ fun1();
printf(\,a,b); fun2('E','F');}
程序运行结果是 (2006.9) A) C D E F B) A B E F C) A B C D D) C D A B 15. 设函数fun的定义形式为
void fun(char ch, float x){ }
则下列对函数fun调用语句中,正确的是 (2005.9) A) fun(“abc”,3.0) B)t=fun(?D?,16.5) C)fun(?65?,2.8) D) fun(32,32)
16. 若程序中定义了以下函数
double myadd(double a, double b) {return (a+b);}
并将其放在调用语句之后,则在调用之前应该对函数进行声明,以下选项中错误的说明是 (2004.4)
A) double myadd(double a, b); B) double myadd(double, double); C) double myadd(double b, double a); D) double myadd(double x, double y);
17. 总结第四章作业参考答案
18. 弦线法求方程的根(教材P157-159)
正在阅读:
中国科学技术大学C语言上机操作10-13
政法干警考试申论热点精析:火场救人的最美“富二代”04-19
描写雪景散文03-30
2018年最新房屋租赁合同协议(最新、详细版模板范本)07-08
重庆川仪自动化股份有限公司实习报告提交版 - 图文04-21
苏教版语文第四册期末总复习资料08-21
光学显微镜分辨率11-25
秋季运动会加油稿02-11
第20课《古诗两首》06-13
劲克汽车俱乐部实施及管理办法08-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上机
- 中国
- 科学技术
- 语言
- 操作
- 大学