当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

广州开放大学:《C语言程序设计》编程题及参考代码_一维数组

资源类别:文库,文档格式:DOCX,文档页数:36,文件大小:119.17KB,团购合买
点击下载完整版文档(DOCX)

11.6--01整数序列中与指定数字相同的数的个数 描述 输出一个整数序列中与指定数字相同的数的个数。 输入 输入包含三行: 第一行为N,表示整数序列的长度N using namespace std; int main() { int n: cin >n; int a[100]; int count =0; for(inti=0;i>ali]; int m; cin >>m: for(inti=0;i<n;i++) if(ali]==m) count++; } cout <<count <endl:

1 1.6----01 整数序列中与指定数字相同的数的个数 描述 输出一个整数序列中与指定数字相同的数的个数。 输入 输入包含三行: 第一行为 N,表示整数序列的长度(N using namespace std; int main() { int n; cin >> n; int a[100]; int count = 0; for(int i = 0 ; i >a[i]; } int m; cin >>m; for(int i = 0 ;i < n ; i ++) { if( a[i]== m) { count ++; } } cout <<count << endl;

} 2 1.6--03计算图书的总价格 描述 下面是一个图书的单价表: 计算概论28.9元/本 数据结构与算法32.7元/本 数字逻辑45.6元/本 C+程序设计教程78元/本 人工智能35元/本 计算机体系结构86.2元/本 编译原理27.8元/本 操作系统43元/本 计算机网络56元/本 JAVA程序设计65元/本 给定每种图书购买的数量,编程计算应付的总费用。 输入 输入一行,包含10个整数(大于等于0,小于等于100),分别表示购买的《计算概论》、 《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体 系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA程序设计》的数量(以 本为单位)。每两个整数用一个空格分开。 输出 输出一行,包含一个浮点数「,表示应付的总费用。精确到小数点后一位。 样例输入 15810511234 样例输出 2140.2 #include using namespace std; int main() double al={28.9,32.7,45.6,78,35,86.2,27.8,43,56,65}; int b[10]; double money; money =0; for(inti=0:i<10:i++)

} 2 1.6---03 计算图书的总价格 描述 下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6 元/本 C++程序设计教程 78 元/本 人工智能 35 元/本 计算机体系结构 86.2 元/本 编译原理 27.8 元/本 操作系统 43 元/本 计算机网络 56 元/本 JAVA 程序设计 65 元/本 给定每种图书购买的数量,编程计算应付的总费用。 输入 输入一行,包含 10 个整数(大于等于 0,小于等于 100),分别表示购买的《计算概论》、 《数据结构与算法》、《数字逻辑》、《C++程序设计教程》、《人工智能》、《计算机体 系结构》、《编译原理》、《操作系统》、《计算机网络》、《JAVA 程序设计》的数量(以 本为单位)。每两个整数用一个空格分开。 输出 输出一行,包含一个浮点数 f,表示应付的总费用。精确到小数点后一位。 样例输入 1 5 8 10 5 1 1 2 3 4 样例输出 2140.2 #include using namespace std; int main() { double a[]= {28.9,32.7,45.6,78,35,86.2,27.8,43,56,65}; int b[10]; double money; money = 0; for(int i = 0 ; i < 10 ; i ++) {

cin>>b[i]; for(inti=0;i using namespace std; int main() { int n; cin >n; inta[100]; for(inti=0;i>ali]; } for(int i=0;i<=n/2-1;i++) int temp=afi]; afi]=a[n-1-i];

cin >>b[i]; } for(int i = 0 ; i using namespace std; int main() { int n; cin >> n; int a[100]; for(int i = 0; i > a[i]; } for(int i = 0 ; i<= n/2-1; i ++) { int temp = a[i]; a[i] = a[n-1-i];

afn-1-i]=temp; for(inti=0;i using namespace std; int main() { int n; int a 100; int i; cin >n; intnl=0,n2=0,n3=0.n4=0: for(i=0:i<n;i++)

a[n-1-i] = temp; } for(int i = 0 ; i using namespace std; int main() { int n; int a[100]; int i; cin >> n; int n1 = 0 ,n2 =0,n3 = 0,n4 = 0; for(i = 0 ; i < n ; i ++)

cin>>ai]; } for(i=0;i=0&&a[=19&&aij=36&&ai1=61) n4++: } cout 0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经 过排序后正好是从1到(m1)。例如,1423存在“有趣的跳跃”,因为差的绝对值分别为 3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。你需要写一个程序判定 给定序列是否存在“有趣的跳跃”。 输入 一行,第一个数是n(0<n<3000),为序列长度,接下来有n个整数,依次为序列中 各元素,各元素的绝对值均不超过1,000,000,000。 输出 一行,若该序列存在“有趣的跳跃”,输出"Joly",否则输出"Not jolly

{ cin >> a[i]; } for(i = 0 ; i = 0 && a[i] = 19 && a[i] = 36 && a[i] = 61) { n4 ++; } } cout 0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经 过排序后正好是从 1 到(n-1)。例如,1 4 2 3 存在“有趣的跳跃”,因为差的绝对值分别为 3,2,1。当然,任何只包含单个元素的序列一定存在“有趣的跳跃”。你需要写一个程序判定 给定序列是否存在“有趣的跳跃”。 输入 一行,第一个数是 n(0 < n < 3000),为序列长度,接下来有 n 个整数,依次为序列中 各元素,各元素的绝对值均不超过 1,000,000,000。 输出 一行,若该序列存在“有趣的跳跃”,输出"Jolly",否则输出"Not jolly

样例输入 41423 样例输出 Jolly 思路: 1)输入的n个整数存储到数组a中 2)将数组a中的相邻元素的差的绝对值存入数组b中(注意:此时b数组元素个数比a数 组元素个数少l,遍历b数组时,要注意下标的终止值):b=abs(ai+1]-a[i),abs 表示求绝对值的函数 3)用sort函数对b数组排序:sort(b,b+n-):表示对b数组从小到大来排序。从下标为0 的位置开始,不包括b+n-1 4)遍历b数组,如果当前的元素b[)不等于i+1,则表示不存在跳跃1到n1的跳跃,用 X=0表示不存在跳跃,X=1表示存在跳跃,根据x的值来进行处理 #include using namespace std; int main() int a[3000]; intb[3000] int n; cin>>n; int i; intx=1; if(n!=1) { for(i=0:i>ali]; } for(i=0;i<n-1;i++) b[i]=(abs)(a[i+1]-a[i]); sort(b,b+n-1);

样例输入 4 1 4 2 3 样例输出 Jolly 思路: 1) 输入的 n 个整数存储到数组 a 中 2 )将数组 a 中的相邻元素的差的绝对值存入数组 b 中(注意:此时 b 数组元素个数比 a 数 组元素个数少 1,遍历 b 数组时,要注意下标的终止值): b[i] = abs(a[i+1] - a[i]) ,abs 表示求绝对值的函数 3) 用 sort 函数对 b 数组排序: sort(b,b+n-1):表示对 b 数组从小到大来排序。从下标为 0 的位置开始,不包括 b+n-1 4) 遍历 b 数组,如果当前的元素 b[i] 不等于 i+1,则表示不存在跳跃 1 到 n-1 的跳跃,用 x = 0 表示不存在跳跃,x = 1 表示存在跳跃,根据 x 的值来进行处理 #include using namespace std; int main() { int a[3000]; int b[3000]; int n; cin >> n; int i; int x = 1; if( n != 1) { for(i = 0 ; i >a[i]; } for(i = 0; i < n -1 ; i ++) { b[i] = (abs)(a[i+1]-a[i]); } sort(b,b+n-1);

for(i=0;i<n-1;i++) if(b[i]!=i+1) X=0: break; } if(x==1) cout <<"Jolly"<<endl: } else cout <<"Not jolly"<<endl if(n==1) cout <<"Jolly"<<endl: 61.5-08石头剪刀布 描述 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一 样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如: “石头-布-石头-剪刀-石头-布-石头-剪刀..”,就是以“石头-布-石头-剪刀”为周期不断循环 的。请问,小A和小B比了N轮之后,谁赢的轮数多? 输入 输入包含三行。 第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出 拳的周期长度。0<N,NA,NB<1O0。 第二行包含NA个整数,表示小A出拳的规律

for(i = 0; i < n-1 ;i ++ ) { if(b[i] != i+1) { x = 0; break; } } if( x == 1) { cout <<"Jolly" << endl; } else { cout << "Not jolly" <<endl; } } if( n == 1) { cout <<"Jolly" << endl; } } 6 1.5-- 08 石头剪刀布 描述 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一 样,则不分胜负。 一天,小 A 和小 B 正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如: “石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环 的。请问,小 A 和小 B 比了 N 轮之后,谁赢的轮数多? 输入 输入包含三行。 第一行包含三个整数:N,NA,NB,分别表示比了 N 轮,小 A 出拳的周期长度,小 B 出 拳的周期长度。0 < N,NA,NB < 100。 第二行包含 NA 个整数,表示小 A 出拳的规律

第三行包含NB个整数,表示小B出拳的规律。 其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻两个整数之间用单个空格隔开。 输出 输出一行,如果小A赢的轮数多,输出A:如果小B赢的轮数多,输出B:如果两人 打平,输出draw。 样例输入 1034 025 0502 样例输出 1 提示 对于测试数据,猜拳过程为: A:0250250250 B:0502050205 A赢了4轮,B赢了2轮,双方打平4轮,所以A赢的轮数多 71.7--09向量点积 描述 在线性代数、计算几何中,向量点积是一种十分重要的运算。 给定两个n维向量a=(al,a2.,an)和b=(bl,b2,,bn),求点积ab=albl+a2b2+.+anbn。 输入 第一行是一个整数n。1 using namespace std: int main()

第三行包含 NB 个整数,表示小 B 出拳的规律。 其中,0 表示“石头”,2 表示“剪刀”,5 表示“布”。相邻两个整数之间用单个空格隔开。 输出 输出一行,如果小 A 赢的轮数多,输出 A;如果小 B 赢的轮数多,输出 B;如果两人 打平,输出 draw。 样例输入 10 3 4 0 2 5 0 5 0 2 样例输出 A 提示 对于测试数据,猜拳过程为: A:0 2 5 0 2 5 0 2 5 0 B:0 5 0 2 0 5 0 2 0 5 A 赢了 4 轮,B 赢了 2 轮,双方打平 4 轮,所以 A 赢的轮数多 7 1.7----09 向量点积 描述 在线性代数、计算几何中,向量点积是一种十分重要的运算。 给定两个 n 维向量 a=(a1,a2,...,an)和 b=(b1,b2,...,bn),求点积 a·b=a1b1+a2b2+...+anbn。 输入 第一行是一个整数 n。1 using namespace std; int main()

inta1000]: int b[1000]; int sum=0; int n; cin>>n; int i; for(i=0;i>ali]; } for(i=0:i>b[i]; } for(i=0;i<n;i++) { sum sum +afi]*b[i]; } cout <<sum 8 1.5--10求两个大的非负整数的和。 描述 求两个不超过200位的非负整数的和。 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。 输出 一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能 输出为0342。 样例输入 22222222222222222222 33333333333333333333 样例输出 55555555555555555555

{ int a[1000]; int b[1000]; int sum = 0; int n; cin >> n; int i; for(i = 0; i > a[i]; } for(i = 0; i > b[i]; } for(i = 0 ; i < n ; i++) { sum = sum + a[i]*b[i]; } cout <<sum ; } 8 1.5---10 求两个大的非负整数的和。 描述 求两个不超过 200 位的非负整数的和。 输入 有两行,每行是一个不超过 200 位的非负整数,可能有多余的前导 0。 输出 一行,即相加后的结果。结果里不能有多余的前导 0,即如果结果是 342,那么就不能 输出为 0342。 样例输入 22222222222222222222 33333333333333333333 样例输出 55555555555555555555

9 1.5--12求2的n次方(n100) 描述 任意给定一个正整数NN∥C+的万能头文件 using namespace std; int main() { inta601]={0: int n; int cnt =0: cin >>n; int i,i=0: for(i=0;i<n;i++) a的=i+l; } for(i=0;;i++) { if(cnt==n-1)

9 1.5---12 求 2 的 n 次方(n //C++的万能头文件 using namespace std; int main() { int a[601] = {0}; int n; int cnt = 0; cin >>n; int i, j = 0; for( i = 0; i < n ; i ++) { a[i] = i+1; } for(i = 0; ; i ++) { if(cnt == n-1)

点击下载完整版文档(DOCX)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共36页,可试读12页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有