西安交通大学C++程序设计第三章作业

合集下载

西安交通大学C++程序设计第三章作业

西安交通大学C++程序设计第三章作业

西安交通大学实验报告课程_计算机程序设计_实验名称_控制结构_第 1 页共 15页系别_______________ 实验日期 2014年 3 月 10 日专业班级___ ____组别_____________ 实验报告日期 2014年 3 月 15 日姓名_ ___ __学号____ 报告退发 ( 订正、重做 ) 同组人_________________________________ 教师审批签字一、实验目的:掌握C++语言中的基本控制结构:顺序结构、条件结构、循环结构(do……while ;for ;while等)的使用,尤其是多重循环和条件结构的复合。

二、实验内容:1.第一题:编写程序求斐波那契数列的第n项和前n项和。

斐波那契数列是形如:0、1、1、2、3、5、8、13、……其通项为:F0=0; F1=1; Fn=Fn-1+Fn-2.(1)要点分析:步骤一:输入需要计算的项数n;步骤二:判断输入的项数是否合理,若否,返回第一步;步骤三:从第一项逐项加到第n项;步骤四:输出计算结果;步骤五:选择是否继续运算,若是,返回第一步;否则结束程序。

(2)源程序代码:#include<iostream>using namespace std;int main(){int an_1=0,ch,an=1,S=0,i=1,m=0;double n;//将n定义为双精度以便检验输入是否合理;do//开始循环体;{cout<<"请输入一个正整数n,将计算数列的前n项和:";cin>>n;while(n<=0||n!=(int)n)//对n输入有误的重新输入;{cout<<"您输入的不是正整数!请重新输入:";cin>>n;}while(i<n)//求前n项和,由1到n逐项相加;{S=S+an;m=an;//将an储存于m中;an=an+an_1;an_1=m;//将原来的an赋予an_1;i=i+1;}cout<<"前"<<n<<"项和为:"<<S<<";第"<<n<<"项为:F("<<n-1<<")="<<m<<endl;cout<<"如需继续计算请按1;如要结束请按2!";cin>>ch;}while(ch==1);//选择是否再进行新一轮运算;cout<<"运行结束!";return 0;}(3)实验结果:测试了输入合理和输入不合理以及多次输入的功能:(4)问题分析:不知道第n项是Fn还是Fn-1,最终按照Fn-1算了。

大学C 程序设计教程 - 西安交通大学共25页文档

大学C  程序设计教程 - 西安交通大学共25页文档

语句序列可以是一个语句,也可以是复合语句结构(分程序)
6
分程序
{ <局部数据变量说明部分> <执行语句段>
}
▪ 分程序在语法上是一个整体,相当于一个语句。 ▪ 分程序中也可以再嵌套新的分程序,用以构成更加复杂
的控制结构。
7
选择结构(之二)
▪ 多路(开关)选择语句 :
switch(整数表达式)
{ case 数值1: 语句序列1; …... case 数值n: 语句序列n; [default : 语句序列n+1;]
条件?
不成立
9
循环结构(之二)
▪ for语句用来实现计数循环: for (<表达式1>; <表达式2>; <表达式3>)
<循环体>
10
C++数据类型的分类
11
类型不同的数据之间的混合算术运算
▪ 不同类型的数据在参加运算之前会自动转换成 相同的类型, 然后再进行运算。
▪ 转换规则
• 转换的原则是由低级向高级转换 char -> int -> float -> double
化)处理,最后到求解域中只是比较简单的编程问题。
20
基本思想和方法
▪ 基本思想
• 从问题本身开始,经过逐步求精,将解决问题的步骤分解为由 基本程序结构模块组成的结构化程序框图,据此编写程序。
▪ 基本方法
• 从题目本身开始, 找出解决问题的基本思路, 将其用结构化框 图(可能是非常粗糙)表示。
• 对框图中的比较抽象的、用文字描述的模块进一步分析细化, 结果仍用结构化框图表示。
23
结束语

西安交大C++程序设计课外测验作业

西安交大C++程序设计课外测验作业

西安交通大学实验报告课程__计算机程序设计__实验名称_课外实验题目__第 1 页共 19 页系别___ _______ 实验日期 2014 年 4月 3日专业班级____组别_____________ 实验报告日期 2014 年4 月 5日姓名___ _____学号_ _报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的复习巩固本阶段所学的知识,包括数组的使用、函数的使用、循环语句和条件语句的使用等。

二、实验内容(一)第一题:1、编写一个程序,计算m~n范围内的每个正整数的全部素因子。

其中的m和n由键盘输入。

评分标准:(1)程序框架完整,代码规范;(20%)(2)数据类型的定义和使用方法正确;(20%)(3)程序控制结构使用正确;(20%)(4)算法正确,清晰合理;(20%)(5)运行结果正确,输入和输出格式如下所示。

(20%)请输入m和n:15 1815的非平凡因子:3 516的非平凡因子:2 4 817的非平凡因子:18的非平凡因子:2 3 6 91.源程序代码:#include<iostream>using namespace std;void suyinzi(int x);int main(){int m,n;cout<<"请输入正整数m和n(m<=n):";cin>>m>>n;while(m>n){cout<<"您输入有误,m应该小于等于n,请重新输入:";cin>>m>>n;}for(int j=m;j<=n;j++)//对于范围内的正整数逐一判断寻找因子{suyinzi(j);}return 0;}void suyinzi(int x)//寻找并输出x的所有非平凡因子{cout<<x<<"的非平凡因子为:";for(int i=2;i<=x/2;i++){if(x%i==0){cout<<i<<" ";}}cout<<endl;}2.实验结果:3.问题分析:此题简单,但当该数没有非平凡因子时,如能够输出:“x没有非平凡因子!”而非仅仅输出空白则更好。

西南交通大学C++第三章选择循环大作业(有答案)

西南交通大学C++第三章选择循环大作业(有答案)

、单项选择题:
⒈以下不是C++语言的特点。
A、运算符丰富B、数据结构丰富
C、可以直接访问物理地址D、C++函数包含的语句数目没有限制
⒉下列关于C++语言标识符的叙述中正确的是。
A、标识符中可以出现下划线和中划线(减号)。
B、标识符中不可以出现中划线,但可以出现下划线。
C、标识符中可以出现下划线,但不可以放在标识符的开头。
二、阅读下列程序,写出程序运行后的结果:
1、#include<iostream>
using namespace std;
void main()
{int i,s=0,t=0;
for(i=0;i<10;i++)
{s++;
if (i>5)break;
t++;}
cout<<"i="<<i<<endl;
cout<<"s="<<s<<endl;
if(count%4==0)cout<<end}}
cout<<endl;}
三、编写程序:
1、数学灯谜
有算式:A B C D
_C D C
________ ____________
A B C
其中A , B , C , D均为一位非负整数
要求:找出A , B , C , D各值。
2、编写程序,统计1005000之间各位数
c=c+32;i=i-32;cout<<c<<’;’<<i;

2009第三章 C语言语句与结构化程序的三种基本结构

2009第三章 C语言语句与结构化程序的三种基本结构

3.2.1 表达式语句
赋值表达式语句的一般格式: <变量名> = <表达式>; 其中 “=”是赋值号, 其意义是将赋值号右边表 达式的值赋到赋值号左边的变量中去。 如: x = 5; 表示将5赋给变量x x = x+20;表示将x的内容+20再赋给x
3.2.2 数据的输出
C语言的输入和输出是通过调用I/O函数来完成 的,常用的有三对:
2. %s格式符和附加的格式说明符“m .n ”一起
使用, 其中“.n”这个附加的格式说明符是使对
输出的字符串截取n位字符。
3.2.2 数据的输出
例如: main() { printf(”%3s,%7.2s,%.4s,%- 5.3s\n”,
“china”,”china”,”china”,”china”),
3.2.3 数据的输入
scanf()函数
用于接受键盘输入的各种类型的多个数据。 scanf (格式控制字符串, 变量地址表列) ; 在scanf()函数中格式控制字符串的含义与printf() 函数中略有不同(参见P64表3.3) 输入的格式说明字符有: 格式控制问题 %d %o %x %c %s %f %e
3.2.3 数据的输入
例如:关于格式说明符的使用的例子.
?
P66 4、scanf()函数在使用时应该 注意的问题+例3.7
输入:12345678901234 输出:1 , 234 , 789012 ,34.000000 输入:12345678901234 输出: , 12 , 345.000000
3.2.3 数据的输入
getchar( )函数
函数功能:从键盘读取用户输入的一个字符, 并 将该字符的ASCII码值作为函数返回值。 注: 用户在输入字符后, 再按回车键, 输入的内 容才能被getchar()函数处理。

C程序设计第四版第三章答案

C程序设计第四版第三章答案

/*假设国民生产总值的年增长率为9%,计算十年后的国民生产总值与现在的相比增长了多少百分比,计算公式为p=(1+r)^n.r为年增长率,n为年数,p为与现在相比的倍数。

*//*#include<stdio.h>#include<math.h>double Beishu(double r,int n){double p;p=pow(1+r,n);return (double)p;}int main(){printf("%f\n",Beishu(0.09,10));return 0;}*//*存款利息的计算,有1000元,想存5年,有5种存法。

*/#include<stdio.h>#include<math.h>/*double Summoney1(double r1,int n1)//一次存5年。

{double P1;P1=1000*(1+n1*r1);return P1;}*///先存两年到期后,本息和再存3年。

/*double Summoney2(double r2,int n2,double r3,int n3){double P2;P2=(1000*(1+n2*r2))*(1+n3*r3);return P2;}*///先存3年到期后,本息再存两年/*double Summoney3(double r4,int n4,double r5,int n5){double P3;P3=(1000*(1+n4*r4))*(1+n5*r5);return P3;}*///每次存一年,然后将本息和再存一年,一直存5次。

/*double Summoney4(double r6,int n6){double P4;P4=1000*pow((1+r6),n6);return P4;}*///存活期存款,利息每季度结算一次/*double Summoney5(double r7,int n7){double P5;P5=1000*pow((1+r7/4),4*n7);return P5;}int main(){//printf("%f\n",Summoney1(0.0585,5));//printf("%f\n",Summoney2(0.0468,2,0.054,3));//printf("%f\n",Summoney3(0.054,3,0.0468,2));//printf("%f\n",Summoney4(0.0414,5));printf("%f\n",Summoney5(0.0072,5));return 0;}*///3.购房贷款/*double Remoney(double d,double p,double r){double m;m=(log( p)-log(p-d*r))/log(r+1);return m;}int main(){printf("%.1f\n",Remoney(300000,6000,0.01));return 0;}*///4.程序分析/*int main(){int c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0;}/*当a,b是97.98是输出的是a,b,97,98;*当a,b是197.198是输出的是?,?,-59,-58;*///当第三行为int c1,c2;时,输出的是?,?,197,198//7。

《大学C++程序设计教程》课后习题-西安交通大学

《大学C++程序设计教程》课后习题-西安交通大学

第1章 C++语言简介1.在计算机上调试运行本章的所有例题,熟悉实验环境和方法。

2.仿照例1-3,编写一个计算矩形面积的程序。

3.乘法计算器程序:可以根据例1-4自行改编。

4.修改例1-5的生日卡程序,使其能够输入和显示日期。

5.使用梯形法计算下式定积分的值。

⎰-+11sin dx e x x积分区域等分数可取为200,并将计算结果和手算结果相比较。

提示:e x 用math.h 中得库函数exp(x)表示。

第2章 控制结构1.编写计算阶乘 n!的程序。

2.编写程序求斐波那契数列的第n 项和前n 项之和。

斐波那契数列是形如0, 1, 1, 2, 3, 5, 8, 13, ...其通项为:F 0 = 0;F 1 = 1;F n = F n -1+F n -2。

3.编程求 ...)12()!(2)!2(...5423132arcsin 221252++++⋅⋅⋅⋅+⋅+≈+n n x n x x x x n n ,其中1<x 。

提示:结束条件可用 ε<u ,其中u 为通项。

4.求解猴子吃桃问题。

猴子在第一天摘下若干个桃子,当即就吃了一半,又感觉不过瘾,于是就多吃了一个。

以后每天如此,到第10天时,就只剩下了一个桃子。

请编程计算第一天猴子摘的桃子个数。

5.用弦截法求一元方程0)(=x f 在区间[]10,x x 之间的一个根。

提示:考虑当区间[]10,x x 足够小,在此区间中方程0)(=x f 仅有一个单根的情况,如图2.14所示。

图2.14 弦截法求方程的解此时如)(0x f 和)(1x f 异号,则可用两点间直线公式求出x 2:)()()(0101002x f x f x f x x x x ---= 然后用x 2代入原式求出f (x 2),判断f (x 2)与f (x 1)和f (x 0)中的哪一个同号,就用x 2和f (x 2)代替之,即如果f (x 2)和f (x 0)同号,就用x 2和f (x 2)代替x 0和f (x 0),反之用x 2和f (x 2)代替x 1和f (x 1),然后再继续上述过程直至|x 2-x 0|或|x 2-x 1|小于给定的误差控制值。

西安交通大学《程序设计基础

西安交通大学《程序设计基础

西安交通大学18年9月课程考试《程序设计基础(高起专)》作业考核试题1、B2、A3、B4、B5、B一、单选题共30题,60分1、要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。

Afopen("A.\user\abc.txt","r")Bfopen("A.\\user\\abc.txt","r+")Cfopen("A.\user\abc.txt","rb")Dfopen("A.\\user\\abc.txt","w")正确答案是:B2、语句while(!E);中的表达式!E等价于()。

AE==0BE!=1CE!=0DE==1正确答案是:A3、若执行fopen函数时发生错误,则函数的返回值是()。

A地址值B0C1DEOF正确答案是:B4、以下说法错误的是()AC语言函数分为由系统提供的标准库函数和由程序员自己定义的函数B在主函数main()中可以调用其他函数,其他函数之间不可以相互调用CC语言的程序是由一个函数或多个函数组成的D对于一个很大的任务,一般把它分解成若干源文件,分别编写和调试正确答案是:B5、已知int j,i=1;执行语句“j=i++;”后,变量i的值是( )A1B2C-1D-2正确答案是:B6、变量的指针,其含义是指该变量的()。

A值B地址C名D一个标志正确答案是:B7、关于建立函数的目的,以下正确的说法是()。

A提高程序的执行效率B提高程序的可读性C减少程序的篇幅D减少程序文件所占内存正确答案是:B8、以下对C语言函数的描述中,正确的是()。

AC程序必须由一个或一个以上的函数组成BC函数既可以嵌套定义又可以递归调用C函数必须有返回值,否则不能使用函数DC程序中有调用关系的所有函数必须放在同一个程序文件中正确答案是:A9、经过下列的语句int j,a[10],*p;定义后,下列语句中合法的是()。

西安交大C程序设计作业

西安交大C程序设计作业

西安交大C程序设计作业文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]西安交通大学实验报告课程__计算机程序设计__实验名称__指针与函数__第 1 页共 25 页系别____ _______ 实验日期 2014 年 4月 18日专业班级__ ____组别_____________ 实验报告日期 2014 年 4 月 19日姓名___ _______学号_ _报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的学会使用递归函数和函数重载,进一步熟练动态分配等指针使用方法。

二、实验内容(一)第一题:1、(必做题)使用递归算法编写如下程序:对于任意给定的实数 X 和整数k( k>0) ,计算 Xk 。

1.源程序代码:#include<iostream>using namespace std;double yunsuan(double x,int k);验结果:(1)输入X正实数:(2)输入X正整数:(3)输入x为负数:(4)输入k为负数:3.问题分析:该函数的循环方式是:x^k=x*x^(k-1).设f(x,k)=x^k,那么就有f(x,k)=f(x,k-1)*x.而其结束递归的条件是k=1,此时有f(x,1)=x,由此给出初值。

(二)第二题:使用递归算法编写求斐波那契数列的第 n 项的函数,并编出主函数进行验证。

1.源程序代码:#include<iostream>using namespace std;int fib(int n)验结果:(1)输入项数正确(0或正整数):(2)输入项数有误(负数):3.问题分析:该题的递归方式:第n项为之前两项之和,即:fib(n)=fib(n-1)+fib(n-2),由此递归至fib(1)和fib(2)时结束递归,而fib(1)和fib(2)已知。

程序设计基础试题(西安交大)

程序设计基础试题(西安交大)
a=7
五.编程题(40 %)
1)设有3x3矩阵
编写程序求解矩阵 ,即矩阵B为矩阵A及其转置阵AT之和。
2)编写程序求小于1000回文数。所谓回文数是指对一个数n,从左向右和从右向左读是相同的。
3)计算并输出一元二次方程的根,要求从键盘输入ax2+bx+c = 0的三个实数系数,计算该方程的实数根并输出。假定方程一定有两个实根(b2-4ac>=0)。要求必须用函数来计算方程的根。注:求平方根的函数是sqrt,包含在头文件math.h中。
西西西西安安安安交交交交通通通通大大大大学学学学考考考考试试试试题题专业班号专业班号专业班号期中期中期中期末期末期末语言规定函数返回值的类型是由语言规定函数返回值的类型是由语言规定函数返回值的类型是由returnreturnreturn语句中的表达式类型所决定语句中的表达式类型所决定语句中的表达式类型所决定调用该函数时的主调函数类型所决定调用该函数时的主调函数类型所决定调用该函数时的主调函数类型所决定调用函数时系统临时决定调用函数时系统临时决定调用函数时系统临时决定在定义该函数时所指定的函数类型所决定在定义该函数时所指定的函数类型所决定在定义该函数时所指定的函数类型所决定简单变量做实参时它与对应形参之间的数据传递方式是简单变量做实参时它与对应形参之间的数据传递方式是简单变量做实参时它与对应形参之间的数据传递方式是地址传递地址传递地址传递单向值传递单向值传递单向值传递由实参传给形参再由形参传回给实参由实参传给形参再由形参传回给实参由实参传给形参再由形参传回给实参由用户指定传递方式由用户指定传递方式由用户指定传递方式下述对下述对下述对cc语言字符数组的描述中错误的是语言字符数组的描述中错误的是语言字符数组的描述中错误的是字将数组可以存放字符串字将数组可以存放字符串字将数组可以存放字符串字符数组的字符串可以整体输入输出字符数组的字符串可以整体输入输出字符数组的字符串可以整体输入输出可以在赋值语句中通过赋值运算将可以在赋值语句中通过赋值运算将可以在赋值语句中通过赋值运算将对字符数组整体赋值对字符数组整体赋值对字符数组整体赋值不可以用关系运算符对字符数组中的字将串进行比较不可以用关系运算符对字符数组中的字将串进行比较不可以用关系运算符对字符数组中的字将串进行比较对两个数组对两个数组对两个数组aa做以下初始化做以下初始化做以下初始化

C++第3课

C++第3课

赋值语句 I/O 语句 复合语句和空语句
用花括号括起来的程序段落又称为分程序或者复合语句。 用花括号括起来的程序段落又称为分程序或者复合语句。 复合语句 复合语句的一般形式: 复合语句的 { <局部数据说明部分> <执行语句段落> } 复合语句可以嵌套 嵌套, 复合语句可以嵌套,即在复合语句中可以有其它复合语句 空语句: 语言中经常使用只有一个分号的语句, 空语句:在C语言中经常使用只有一个分号的语句,它程为空语句 语言中经常使用只有一个分号的语句 在语法上占据一个语句的位置,但不具备任何可执行的功能。 在语法上占据一个语句的位置,但不具备任何可执行的功能。
23
程序逻辑功能框图
设初值:e,u,n =1 设初值: , , 否 u > 10 -7 ? 是 计算: 计算: u = u / n; ; e=e+u; n = n + 1; ;
输出结果 e
24
例3-3 求E值
#include <iostream> using namespace std; int main() { double e = 1.0; double u = 1.0; int n = 1; while(u >= 1.0E-7) { u = u/n; e = e+u; n = n+1; } cout << "e = " << e << " ( n = " << n << " )" << endl; return 0; }
17
程序逻辑功能框图
否 转换子函数功能
继续 ? 是
输入成绩X 输入成绩 X / 10 = ? 10,9 , X=5 8 X=4 7 X=3

西安交通大学18年9月课程考试《程序设计基础》作业考核试题

西安交通大学18年9月课程考试《程序设计基础》作业考核试题

(单选题) 1: 下列四个选项中,均是C语言关键字的选项是()。

A: auto、enum、includeB: switch、typedef、continueC: signed、union、scanfD: if、struct、type正确答案:(单选题) 2: 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。

A: fclose()B: close()C: fread()D: fwrite正确答案:(单选题) 3: 以下叙述不正确的是()。

A: 一个C源程序可由一个或多个函数组成B: 一个C源程序必须包含一个main函数C: C程序的基本组成单位是函数D: 在C程序中,注释说明只能位于一条语句的后面正确答案:(单选题) 4: 设有以下说明语句typedef struct { int n;char ch[8];}PER;则下面叙述中正确的是( ) A: PER 是结构体变量名B: PER是结构体类型名C: typedef struct 是结构体类型D: struct 是结构体类型名正确答案:(单选题) 5: 设有以下说明语句struct ex{ int x ; float y; char z ;}example;则下面的叙述中不正确的是A: struct结构体类型的关键字B: example是结构体类型名C: x,y,z都是结构体成员名D: struct ex是结构体类型名正确答案:(单选题) 6: 结构体类型的定义允许嵌套是指()。

A: 成员是已经或正在定义的结构体型B: 成员可以重名C: 结构体型可以派生D: 定义多个结构体型正确答案:(单选题) 7: C语言中,定义结构体的保留字是()。

A: unionB: structC: enumD: typedef正确答案:(单选题) 8: 对于如下的表达式:int a[3][4],*p;p=*a;执行p++操作之后,*p表示取()的内容。

A: a[0][0]B: a[1][0]C: a[1][1]D: a[0][1]正确答案:(单选题) 9: 以下只有在使用时才为该类型变量分配内存的存储类说明是()。

西安交通大学C++复习课件

西安交通大学C++复习课件

2012.8
0
2.温度转换。输入华氏温度,用下列公式将其转 换为摄氏温度并输出。
5 C ( F 32) 9
样例输clude <iostream> using namespace std; int main() { double c,f; cin>>f; c=5.0/9*(f-32); cout<<c<<endl; return 0; }
23
13.求a+aa+aaa+aaaa+...+aa...a(第n项,n个a),其 中a是1~9的整数。例如,a=1,n=3时,式子为 1+11+111;当a=5,n=4时,式子为5+55+555+5555。 样例输入输出: 输入: 25 输出: 24690
2015-3-6
24
int main(){ int a,n,u=0,sum=0; int i; cin>>a>>n; for(i=1;i<=n;i++) { u=u*10+a; sum=sum+u; } cout<<sum<<endl; return 0; }
int main() { int a,b,c,x,z; cin>>a>>b>>c; x=a+b+c; y=x/3.0; z=(int)(y+0.5); cout<<x<<endl; cout<<y<<endl; cout<<z<<endl; return 0; }
2015-3-6

西安交通大学16年9月课程考试《程序设计基础》作业考核试题

西安交通大学16年9月课程考试《程序设计基础》作业考核试题

一、单选题(共30 道试题,共60 分。

)V 1. 要打开A盘上user子目录下名为的文本文件进行读、写操作,下面符合此要求的函数调用是()。

A.fopen("A.\user\","r")B.fopen("A.\\user\\","r+")C.fopen("A.\user\","rb")D.fopen("A.\\user\\","w")满分:2 分2. 若使用一维数组名作函数实参,则以下正确的说法是()。

A. 必须在主调函数中说明此数组的大小B. 实参数组类型与形参数组类型可以不匹配C. 在被调用函数中,不需要考虑形参数组的大小D. 实参数组名与形参数组名必须一致满分:2 分3. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。

A. 字符串读入后不会自动加入'\0'B. fp是file类型的指针C. fgets函数将从文件中最多读入n-1个字符D. fgets函数将从文件中最多读入n个字符满分:2 分4. 设C语言中,int类型数据占2个字节,则short类型数据占()。

A. 1个字节B. 2个字节C. 4个字节D. 8个字节满分:2 分5. 若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。

A. printf("%d",&p);B. printf("%d",*i);C. printf("%d",*p);D. printf("%d",p);满分:2 分6. 下列标识符中,不合法的C语言用户自定义标识符是()。

A. printfB. enumC. _D. sin满分:2 分7. 以下只有在使用时才为该类型变量分配内存的存储类说明是()。

西安交大C 程序设计 作业

西安交大C 程序设计 作业

西安交通大学实验报告课程__计算机程序设计__实验名称_____函数______第 1 页共 18 页系别____ _______ 实验日期 2014 年 3月 28日专业班级____组别_____________ 实验报告日期 2014 年 3 月 29日姓名___ _______学号_ _报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的掌握函数的概念,使用函数的优越性,定义函数的方法以及调用函数的方法。

二、实验内容(一)第一题:编写字符串反转函数mystrrev(),该函数的功能是将指定字符串中的字符顺序颠倒排列。

然后再编写主函数验证之。

1.源程序代码:#include<iostream>#include<cstring>using namespace std;void mystrrev(char string[]);验结果:由于函数中有“for(int i=0;i<m/2;i++)”的语句,为避免该循环条件不准确,对奇数和偶数个的字符均进行了检测,并有对含空格和符号的字符串的检测:(1)奇数:(2)偶数:(3)含空格字符串:3.问题分析:(1)起初没有用“.get”,不够全面;(2)如果一直执行到i=m的话,就等于反转两次又回到了原来的字符串顺序,因而要考虑只执行一半,而由于字符串长度有奇偶的问题,所以容易错误;(3)第一次编写时,没有写string[m]='\0';这使得输出结果混乱。

(二)第二题:编写一组求数组中最大元素和最小元素的函数。

其函数原型为:int imax(int array[],int count);int imin(int array[],int count);1.源程序代码:#include<iostream>using namespace std;int imax(int array[],int count);验结果:3.问题分析:(1)起初误将:cout<<"最大值为:"<<imax(num,n)<<endl;cout<<"最小值为:"<<imin(num,n)<<endl;写成imin、imax,不能执行。

C#程序设计课后习题答案--第三章

C#程序设计课后习题答案--第三章

实验报告1.创建窗体应用程序,程序运行时,在“年份”文本框输入一个正整数,单击“判断”按钮,就能在标签控件中显示判断结果;单击“退出”按钮则结束程序运行。

图 1.1 题目部分代码图 1.2 结果2.创建控制台应用程序,输入一个奇数后,输出图案,最顶部一行的星号个数为输入的数。

图 2.1 判断奇数代码图 2.2 输出星号倒三角形代码图 2.3 结果1图 2.4 结果23. 创建控制台应用程序,利用下边的多项式计算出π值,要求最后一项的值小于10−6.π4=1−13+15−17+⋯+14n −3−14n −1图 3.1 代码图 3.2 结果4. 创建控件台应用程序,利用下边的公式计算e 的近似值,要求最后一项的值小于10−6。

e =∑1n!kn=0图 4.1 代码图 4.2 结果5.已知两个三位数abc和cba之和为1333(既abc+cba=1333),编写控制台应用程序,求出三个数字a、b、c。

图 5.1 代码图 5.2 结果6.创建控制台应用程序,求解猴子吃桃问题,猴子第一天摘下桃子若干,当即吃了一个后又多吃了一个;第二天又将剩下的桃子吃掉一半后再多吃一个,;以后每天都吃掉前一天剩下的一半零一个。

到第10天想再吃时,只剩下一个桃子。

求猴子在第一天共摘下多少个桃子?图 6.1 代码图 6.2 结果7.马克思曾经做过这样一道数学趣味题:有30个人在一家小饭馆用餐,其中每个男人花了3先令,每个女人花了2先令,每个孩子花了1先令,总共花了50先令。

问男人、女人、孩子各有多少人?本题有多个解,编写控制条应用程序求出所有解。

图7.1 代码图7.2 代码8.体操比赛的评分规则是:由7位裁判为每个运动员打分,去掉一个最高分,去掉一个最低分,求出的平均分即为运动员的得分。

编写控制台应用程序,计算运动员得分。

图8.1 代码图8.2 结果9.所谓“水仙花数”指的就是这样的一个3位数,其各位数的立方和等于该数。

例如,153=13+53+33.编写控制台应用程序,计算输出所有的水仙花数。

交大程序设计C第三章自测题

交大程序设计C第三章自测题

题目1对表达式for( 表达式1; ; 表达式3)可以理解为()a. for(表达式1; 1; 表达式3) 正确b. for(表达式1; 表达式3; 表达式3)c. for(表达式1; 表达式1; 表达式3)d. for(表达式1; 0; 表达式3)正确答案是:for(表达式1; 1; 表达式3)题目2对于int a, 表达式1 <= a <= 5 的值是()a. 0b. 1 正确c. 不定d. 表达式语法有误正确答案是:1题目3选出正确的输入格式()。

int a; float b; char c;scanf("a = %d,b = %f,c = %c”,&a ,&b ,&c );a. 12.0nb. 1 2.0 nc. a = 1,b = 2.0,c = n 正确d. 1,2.0,n正确答案是:a = 1,b = 2.0,c = n题目4若变量x、y 已正确定义并赋值,以下符合C 语言语法规则的语句是()a. double(x)/10;b. ++x, y = x--; 正确c. x = x + 10 = x + y;d. x + 1 = y;正确答案是:++x, y = x--;题目5x, y, z 被定义为int 型变量,若从键盘为其输入数据,则正确的输入语句是()a. scanf(“%d%d%d”, x, y, z);b. scanf(“%d%d%d”, &x, &y, &z); 正确c. read(“%d%d%d”, &x, &y, &z);d. input x, y, z正确答案是:scanf(“%d%d%d”, &x, &y, &z);。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安交通大学实验报告课程_计算机程序设计_实验名称_控制结构_第 1 页共 15页系别_______________ 实验日期 2014年 3 月 10 日专业班级___ ____组别_____________ 实验报告日期 2014年 3 月 15 日姓名_ ___ __学号____ 报告退发 ( 订正、重做 ) 同组人_________________________________ 教师审批签字一、实验目的:掌握C++语言中的基本控制结构:顺序结构、条件结构、循环结构(do……while ;for ;while等)的使用,尤其是多重循环和条件结构的复合。

二、实验内容:1.第一题:编写程序求斐波那契数列的第n项和前n项和。

斐波那契数列是形如:0、1、1、2、3、5、8、13、……其通项为:F0=0; F1=1; Fn=Fn-1+Fn-2.(1)要点分析:步骤一:输入需要计算的项数n;步骤二:判断输入的项数是否合理,若否,返回第一步;步骤三:从第一项逐项加到第n项;步骤四:输出计算结果;步骤五:选择是否继续运算,若是,返回第一步;否则结束程序。

(2)源程序代码:#include<iostream>using namespace std;int main(){int an_1=0,ch,an=1,S=0,i=1,m=0;double n;//将n定义为双精度以便检验输入是否合理;do//开始循环体;{cout<<"请输入一个正整数n,将计算数列的前n项和:";cin>>n;while(n<=0||n!=(int)n)//对n输入有误的重新输入;{cout<<"您输入的不是正整数!请重新输入:";cin>>n;}while(i<n)//求前n项和,由1到n逐项相加;{S=S+an;m=an;//将an储存于m中;an=an+an_1;an_1=m;//将原来的an赋予an_1;i=i+1;}cout<<"前"<<n<<"项和为:"<<S<<";第"<<n<<"项为:F("<<n-1<<")="<<m<<endl;cout<<"如需继续计算请按1;如要结束请按2!";cin>>ch;}while(ch==1);//选择是否再进行新一轮运算;cout<<"运行结束!";return 0;}(3)实验结果:测试了输入合理和输入不合理以及多次输入的功能:(4)问题分析:不知道第n项是Fn还是Fn-1,最终按照Fn-1算了。

这样的话,输入的第n项应为Fn-1而不是Fn.2.第二题:用截弦法求一元方程f(x)=0在区间[x0,x1]之间的一个根。

(1)要点分析:步骤一:预先定义一个函数,其后按照该函数进行计算;步骤二:输入区间端点以及误差范围;步骤三:通过不断的趋近找到近似值,当满足误差范围时停止循环并输出结果。

(2)源程序代码:#include<iostream>#include<cmath>using namespace std;double F(double x)//预先定义一个函数;{double y;y= x*x-4*x+3;return y;}int main(){double x0,x1,x2,q,m,n;cout<<"请依次输入区间的左右端点、给定的误差范围:";cin>>x0>>x1>>q;m=x0;//将输入的初始区间储存在m,n中;n=x1;x2=x0-(((x0-x1)*F(x0))/(F(x0)-F(x1)));//进行第一次计算得到x2的初始值;do//不断缩小区间直至满足误差范围;{if(F(x2)*F(x0)>0){x0=x2;}else{x1=x2;}x2=x0-(((x0-x1)*F(x0))/(F(x0)-F(x1)));}while(fabs(x2-x0)>=q&&fabs(x1-x2)>=q);cout<<"方程x*x-4*x+3=0 在区间["<<m<<","<<n<<"]上的一个根为:"<<x2<<endl;return 0;}(3)实验结果:考虑了不同误差范围对结果的影响,以及输入范围过大而导致的无法执行的情况:1)误差范围为0.1:2)误差范围为0.000001:3)误差范围为0.00001,但是从1到5,而对于方程x^2-4x+3=0来说,闭区间[1,5]内有两解,并且1就是其一个解。

此时无法求解:4)误差范围为0.00001,但区间改为[1.1,5],此时只有一解便可执行求解。

3.第三题:编写一个程序,寻找用户输入的几个整数中的最小值。

假定用户输入的第一个数值指后面要输入的数值个数。

(1)要点分析:步骤一:输入所要输入的整数的个数;步骤二:输入要输入的某个整数;步骤三:判断输入的是否为整数,若不是,提示重新输入,返回第二步;步骤四:对输入的第一个整数,将其储存下来作为已输入的最小整数,对后来的输入的整数,判断其是否小于原来储存的最小数,若是,用该数替换原最小数;步骤五:判断需要输入的整数是否已经输入完毕,若否,返回第二步;若是,执行下一步;步骤六:输出最小数。

(2)源程序代码:#include<iostream>using namespace std;int main(){int n;double a,b;int i=1;cout<<"请输入您接下来要输入的整数个数:";cin>>n;while(i<=n)//循环输入n个整数;{cout<<"请输入您要输入的第"<<i<<"个整数:";cin>>a;while(a!=(int)a)//判断是否为整数;{cout<<"您输入的不是整数,请重新输入该数字!";cin>>a;}if(i==1)//对第一次输入的整数,默认将其储存下来作为最小数;{b=a;}if(a<b)//比较输入值与前面i-1个数中的最小值,将小者储存于b;{b=a;}i=i+1;}cout<<"您输入的整数中最小的是:"<<b<<endl;return 0;}(3)实验结果:(4)问题所在:关于i=1时的a.b比较的问题:程序中通过将前面输入的数字的最小值储存下来,然后再下一轮将其与输入的数字比较再保留较小者来实现筛选最小数,而第一次输入的时候没有已储存的较小数,因而将第一个数要默认储存下来,因而对第一个数的处理与以后略有不同,故设计了if(i==1) b=a; 的语句。

4.第四题:有一分数序列:,,,,,,……(即后一项的分母为前一项的分子,后一项的分子为前一项的分子与分母之和),求其前n项和。

(1)要点分析:步骤一:预设数列的第一项的分母与分子,并设和S=0,i=1;步骤二:输入需要计算的项数n;步骤三:求S+第i项即前i项和;步骤四:由第i项得到第i+1项;步骤五:i=i+1;步骤六:判断是否已经计算完前n项,若是,输出前n项和;否则返回第三步。

(2)源程序代码:#include<iostream>using namespace std;int main(){int n,a=2,b=1,i=1,m;double S=0;int co;do{cout<<"请输入一个正整数n的值,系统将计算该分数列的前n项和:";cin>>n;do{S=S+(a/(b*1.0));m=a;//将前一项的分子储存于m;a=a+b;//得到后一项的分子;b=m;//将前一项的分子赋给后一项的分母;i=i+1;}while(i<=n);cout<<"该分数列的前"<<n<<"项和为:S("<<n<<")="<<S<<endl;cout<<"请问是否需要再算其他n项和?如需则按,否则按!";cin>>co;}while(co==1);//选择继续计算时执行循环体;return 0;}(3)实验结果:(4)问题分析:关于数的类型的选择的问题。

起初选择了将所有数都定义为double,但这样占内存太多,于是将大多数直接改为int,结果后来的运算中总是会警告,给b乘以1.0才算了事。

5.第五题:将所有水仙花数求和,再计算平均数,输出和数与平均数(必做题)(1)要点分析:步骤一:定义初始S=100,sum=0,i=0;步骤二:分离出S的各位数字;步骤三:判断S是不是水仙花数,若是,i=i+1,sum=sum+S;步骤四:S=S+1;步骤五:判断S是否仍未三位数,若是,返回第二步;若否,求平均数ave=sum/i,输出平均数以及这些数的和。

(2)源程序代码:#include<iostream>using namespace std;int main(){double ave;int i=0,a,b,c,S=100,s,sum=0;do{a=S/100;//分离百位数;b=S/10%10;//分离十位数;c=S%10;//分离个位数;s=a*a*a+b*b*b+c*c*c;if(S==s)//统计其中的水仙花数;{i=i+1;//统计水仙花数的个数;sum=sum+S;//求和;ave=sum/(i*1.0);//求平均数;}S=S+1;}while(S<=999);//在三位数范围内循环判断;cout<<"共有"<<i<<"个水仙花数,它们的和为:"<<sum<<endl;cout<<"它们的平均数为:"<<ave<<endl;return 0;}(3)实验结果:(4)问题分析:需要分离各位数字;还有数据类型的转化:ave=sum/(i*1.0)。

相关文档
最新文档