一维数组练习题3
一维数组练习.doc
基本练习:(釆用文件输入输岀)1.输入一串小写字母(以〃.〃为结束标志),统计出每个字母在该字符串中出现的次数(若某字母不出现,则不要输出),例:输入:aaaabbbccc.输出:a:4b:3c: 3规定:文件名:tongji. pas 输出文件:tongji. in输出文件tongji. out程序:var a:array/ z" ] of integer;n:char;beginassign (input, ' tongji,in' );reset (input);assign(output,' tongji. out' );rewrite(output);read (n);while n〈>'.' dobegininc (a[n]);read(n);end;for n:=,a" to,z‘ doif a[n]<>0 then writeln(n,J :,, a[n]);close (input);close (output);end.2.输入一个不大于32767 (integer)的正整数N,将它转换成一个二进制数,例如:输A: 100 输出:1100100规定:文件名:erjinzhi. pas 输出文件:erjinzhi. in输出文件erjinzhi. out程序:vara:array[L . 16] of integer;b, c, d, e: integer;beginassign (input,' erjinzhi. in');reset(input);assign(output,' erjinzhi. out');rewrite(output);readln(b);if b>=0 then write(b,)else write(b,'= -');b:=abs(b);d:=0;while b>0 dobegininc(d);a[d]:=b mod 2;b:=b div 2;end;for e:=d downto 1 do write(a[ej);writein;readln;close (input);close(output);end.提高练习:(釆用文件输入输岀)火3.输入一个由10个整数组成的序列,其中序列中任意连续三个整数都互不相同,求该序列中所有递增或递减子序列的个数,例如:输入:1 10 85932674输出:6对应的递增或递减子序列为:1 1010 8 55 99 3 22 6 77 4规定:文件名:geshu. pas 输出文件:geshu. in输出文件geshu. out【拓展】fuctionkeytype:Boolean;beginif keytype then ......【检测任意键回车出外)】程序:label 1, 3, 4;varc:array[1..10] of longint;y, b, i:longint;a, al:boolean;beginassign(input,' geshu. if);reset (input); assign(output,' geshu. out');rewrite(output); writ eC Please in put 10 numbers:,);for i:=l to 10 do read(c[i]);y: —0; b:=1; i: —0;3:if c[b]>c[b+l] thenbegina:=true;dec (b);l:inc (b);while b<ll dobeginif b=10 then begin inc(y) ; break; end;if c[b]>c[b+l] thenbeginal:=true;if al=a then goto 1endelsebegininc (y);goto 3;end;end;endelsebegina:二false;dec (b);4:inc (b);wh订e b<ll dobeginif b=10 then begin inc(y) ; break; end;if c[b]〈c[b+l] thenbeginal:=false;if al=a then goto 4;endelsebegininc(y);goto 3;end;end;end;writein('Then answer is y);close (input);close(output);end.*4.输入N个数,将这N个数按从小到大的顺序显示出來;规定:文件名:paixu. pas 输出文件:paixu. in输出文件paixu. outvara:array[1.. 100000000] of integer;b, c, d, i, z:longint;beginassign (input,' paixu.in,):reset(input);assign (output,,paixu. out");rewrite(output);readln(i); //读入输入个数for i:=l to i do read(a[i]); //循环读入,放入数组for c:=1 to i dobeginfor b: = (c+l) to i do beginif a[c]>a[b] thenbegina[c]:二a[c] xor a[b];a[b]:=a[c] xor a[b];a[c]:=a[c] xor a[b];end;end;end;for z:=l to i dowrite(a[z],'');close (input);close(output);end.猴子选大王;有"只猴子围成一圈,每只猴子各一个从1到N中的依次编号,打算从中选出一个大王;经过协商,决定出选大王的规则:从第一个开始循环报数,数到M的猴子出圈,最后剩下來的就是大王。
一维数组练习题
一维数组练习题题目一:数组元素反转描述:给定一个整数数组,将数组中的元素反转并输出。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中的元素,按照逆序输出。
解答:题目二:查找数组中的最大值和最小值描述:给定一个整数数组,找出数组中的最大值和最小值,并输出。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中的最大值和最小值。
解答:题目三:计算数组的和与平均值描述:给定一个整数数组,计算数组中所有元素的和及平均值,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出数组中所有元素的和及平均值,结果保留两位小数。
解答:题目四:数组去重描述:给定一个整数数组,去除数组中的重复元素,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出去除重复元素后的数组。
解答:题目五:数组元素排序描述:给定一个整数数组,对数组中的元素进行排序,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输出排序后的数组。
解答:题目六:数组元素查找描述:给定一个整数数组和一个目标值,判断目标值是否存在于数组中,并输出结果。
要求:1. 输入一个整数n,表示数组的长度(1 ≤ n ≤ 100);2. 输入n个整数构成的数组;3. 输入一个整数作为目标值;4. 若目标值存在于数组中,则输出"目标值存在于数组中",否则输出"目标值不存在于数组中"。
解答:以上为一维数组练习题的题目描述及解答,请根据题目所需完成相应的练习。
一维数组练习题
维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________A) int a[10]=(0,0,0,0,0);C) int a[ ]={0}; B) int a[10]={ };D) inta[10]={ 10*2};2 、以下一维数组 a 的正确定义是_________ 。
A) int a(10); B) int n=10,a[n];C) int n; D) #define SIZE 10 scanf("%d",&n); int a[SIZE];int a[n];3 、执行下面的程序段后 , 变量 k 中的值为 __________ 。
int k=3,s[2];s[0]=k;k=s[1]*10;A) 不定值B) 33C) 30 D) 104 、下列程序执行后的输出结果是main(){int a,b[5];a=0; b[0]=3;printf("%d,%d\n",b[0],b[1] );A) 3,0C) 0,3 }B) 3 0D) 3, 不定值5、已知数组a的赋值情况如下所示,则执行语句a[2]++; 后a[1]和a[2]的值分别是_______________ 。
a[0] a[1] a[2] a[3]a[4]10 | 20 | 30 | 40 | 50|A) 20 和 30 C) 21 和 30 B) 20 和 31 D) 21 和 316、以下程序输出 a 数组中的最小值及其下标,在划线处应填入的是 _____________ main( ){ int i,p=0,a[10];for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=1;i<10;i++)if(a[i]<a[p]) ____________ ;printf("%d,%d\n",a[p],p);A) i=p C) p=j ,并输出低于平均分的学生B) a[p]=a[i]D) p=i7 、以下程序的输出结果是 ________ 。
一维数组习题
10、用插入法对输入的10个整数按由小到大的顺序排列。
main() x[j]=t { int x[10],j,k,l,t,flag; flag=0 for(j=0;j<10;j++) {scanf("%d",&t); x[l+1]=x[l] if(j==0) ; else { for(flag=1,k=0;k<j&&flag;k++) if(x[k]>t) ; if(flag) x[j]=t; else { for(l=j-1;l>=k-1;l--) ; x[k-1]=t; } }} for(j=0;j<10;j++) { printf("%6d",x[j]); if((j+1)%5==0) printf("\n"); } }
j+1 j- ++j n++
12.将两个升序数列归并后仍为升序数列。 main() { int a[10]={1,2,5,8,9,10},an=5; a[j] int b[10]={1,3,4,8,12,18},bn=5; j++ int j,k,l,c[20],max=9999; b[k] a[an+1]=b[bn+1]=max; k++ j=k=l=0; while(a[j]!=max||b[k]!=max) if (a[j]<b[k]) { c[l]= ; l++; ; } else { c[l]= ; l++; ; } for(j=0;j<l;j++) printf("%4d",c[j]); }
c++基本语句和一维数组测试题
C++阶段测试(三种基本结构+一维数组)班级姓名一、单项选择题(共15题,每题有且仅有一个正确选项)⒈以下哪个是面向对象的高级语言( )。
A.汇编语言B. C++C.FortranD.Basic⒉1TB代表的字节数是( )。
A.2的10次方B.2的20次方C.2的30次方D.2的40次方⒊二进制数00100100和00010101的和是( )。
A.00101000B.001010100C.01000101D.001110014.下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )。
A.296B.133C.256D.1995.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。
#include <iostream> using namespace std; int main(){int n;float s; s = 1.0;for(n = 10; n > 1; n--) s = s + 1 / n;cout << s << endl; return 0;}程序运行后输出结果错误,导致错误结果的程序行是( )。
A.s = 1.0;B.for(n = 10; n > 1; n--)C.s = s + 1 / n;D.cout << s << endl;6设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。
A.x = (x * 100) + 0.5 / 100.0;B.x = (x * 100 + 0.5) / 100.0;C.x = (int)(x * 100 + 0.5)/100.0;D.x = (x / 100 + 0.5) * 100.0;7.有以下程序#include <iostream> using namespace std; int main(){int s, a, n;s = 0;a = 1;cin >> n; do{s += 1;a -= 2;}while(a != n); cout << s << endl; return 0;}若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
回顾一维数组习题.doc
一维数组【例1】输入50个数,要求程序按输入时的逆序把这50个数打印出来;也就是说,请你按输入相反顺序打印这50个数分析:我们可定义一个数组a用以存放输入的50个数,然后将数组a内容逆序输出,源程序如下program ex5_1;typearr=array[1..50]of integer; {说明一数组类型arr}vara:arr;i:integer;beginwriteln('Enter 50 integer:');for i:=1 to 50 do read(a[i]);{从键盘上输入50个整数}readln;for i:=50 downto 1 do {逆序输出这50个数}write(a[i]:10);end.【例2】输入十个正整数,把这十个数按由大到小的顺序排列(将数据按一定顺序排列称为排序,排序的算法有很多,其中选择排序中的“简单选择排序”是一种较简单的方法)分析:要把十个数按从大到小顺序排列,则排完后,第一个数最大,第二个数次大,……;因此,我们第一步可将第一个数与其后的各个数依次比较,若发现,比它大的,则与之交换,比较结束后,则第一个数已是最大的数。
同理,第二步,将第二个数与其后各个数再依次比较,又可得出次大的数。
如此方法进行比较,最后一次,将第九个数与第十个数比较,以决定次小的数。
于是十个数的顺序排列结束。
例如下面对5个进行排序,这个五个数分别为829105。
按选择排序方法,过程如下:初始数据:82910 5第一轮排序:82910 592810 510289 510289 5第二轮排序:10829 510928 510928 5第三轮排序:10982 510982 5第四轮排序:10985 2对于十个数,则排序要进行9次。
源程序如下:program ex5_2;vara:array[1..10]of integer;i,j,t:integer;beginwriteln('Input 10 integers:');for i:=1 to 10 do read(a[i]);{读入10个初始数据}readln;for i:=1 to 9 do{进行9次排序}beginfor j:=i+1 to 10 do{将第i个数与其后所有数比较}if a[i]<a[j] then {若有比a[i]大,则与之交换}begint:=a[i];a[i]:=a[j];a[j]:=t;end;write(a[i]:5);end;end.【例3】从键盘输入10个数,将这10个数逆序输入,并求这10个数的和,输出这个和。
noi寒假刷题之旅_1.6编程基础之一维数组(15题)
noi寒假刷题之旅_1.6编程基础之⼀维数组(15题)⼜回来了,先总结⼀下前两天⼲什么去了:装了⼀下官⽅版的kali2.0和⼀个完整版的kali2.0,然后更新了⼀下我的⽼版本的kali内核。
为什么呢?还不是为了安装W3af,太难了,装了3天都没装上,本来已经放弃了就打算直接⽤console界⾯,谁知道⼀start它⼜抱了⼀堆错,真的要吐⾎了。
W3AF果断放弃,岂可休。
但是装机的过程倒是越发熟练了,发现官⽅版的kali图形界⾯不是很兼容,⽼是有闪屏,⽽且收藏夹⾥的⽹站也是打不开的(虽然这些⽹站在⽕狐书签栏⾥都有),后来也摸了⼏个⽐较感兴趣的软件,新版的软件库更加丰富了,好多软件还是要FQ,好累。
⽽且发现有的还是不能直接⽤,要装好多的依赖。
⼀些⽼软件也不见了要⾃⼰安装,特别是OWASP,还好安装倒是挺简单的。
试了⼀下kali-undercover功能,感觉它不是很稳定,其中有⼀次undercover后菜单栏都没有了。
学了⼀下华为云的使⽤,考虑到我有⼀个弹性服务器ECS,打算配置⼀个Linux的⼩博客,装完了apache2,php,mysql,word press,谁知道⼀打开界⾯,提⽰word press不兼容php,吐⾎。
爬了两天回来写写代码散散⼼。
(15题)01:与指定数字相同的数的个数#include<iostream>using namespace std;int main(){int n;cin>>n;int num[102]={};for(int i=0;i<n;++i)cin>>num[i];int m,count=0;cin>>m;for(int i=0;i<n;++i){if(num[i]==m)++count;}cout<<count;return 0;}02:陶陶摘苹果#include<iostream>using namespace std;int main(){int num[102]={};for(int i=0;i<10;++i)cin>>num[i];int m,count=0;cin>>m;for(int i=0;i<10;++i){if(num[i]<=m+30)++count;}cout<<count;return 0;}03:计算书费#include<iostream>using namespace std;int main(){double temp,num[10]={28.9,32.7,45.6,78,35,86.2,27.8,43,56,65},sum=0;for(int i=0;i<10;++i){cin>>temp;sum+=temp*num[i];}printf("%.1f",sum);return 0;}04:数组逆序重放#include<iostream>using namespace std;int main(){int n,num[102]={};cin>>n;for(int i=0;i<n;++i){cin>>num[i];}cout<<num[n-1];for(int i=n-2;i>=0;--i){cout<<" "<<num[i];}return 0;}05:年龄与疾病#include<iostream>using namespace std;int main(){int n,temp;double num[4]={};cin>>n;for(int i=0;i<n;++i){cin>>temp;if(0<=temp&&temp<=18){num[0]++;}else if(temp<=35){num[1]++;}else if(temp<=60){num[2]++;}else{num[3]++;}}for(int i=0;i<4;++i){printf("%.2f%%\n",num[i]/n*100.0); }return 0;}06:校门外的树#include<iostream>using namespace std;int tree[10001];int main(){int L,M;cin>>L>>M;int a,b;for(int i=1;i<=M;++i){cin>>a>>b;// cout<<a<<","<<b<<endl;for(int j=a;j<=b;++j){tree[j]=1;// cout<<j<<endl;}}int count=0;for(int i=0;i<=L;++i){if(tree[i]==0){++count;// cout<<i<<endl;}}cout<<count;return 0;}07:有趣的跳跃#include<iostream>#include<cmath>#include <algorithm>using namespace std;int tree[10001];int main(){int n;int num[3001]={},temp[3001];cin>>n;cin>>temp[0];for(int i=1;i<n;++i){cin>>temp[i];num[i-1]=abs(temp[i]-temp[i-1]); }sort(num,num+n);int flag=1;for(int i=0;i<n-2;++i){if((num[i+1]-num[i])!=1){flag=0;break;}}if(flag){cout<<"Jolly";}else{cout<<"Not jolly";}return 0;}08:⽯头剪⼑布#include<iostream>#include<cmath>#include <algorithm>using namespace std;int tree[10001];bool Cmp(int a,int b){if(a==0&&b==2){return 1;}else if(a==2&&b==5){return 1;}else if(a==5&&b==0){return 1;}else{return 0;}}int main(){int n,na,nb;int ca=0,cb=0;int A[101]={},B[101]={};cin>>n>>na>>nb;for(int i=0;i<na;++i)cin>>A[i]; for(int i=0;i<nb;++i)cin>>B[i]; for(int i=0;i<n;++i){if(Cmp(A[i%na],B[i%nb])) ca++; if(Cmp(B[i%nb],A[i%na])) cb++; }if(ca>cb){cout<<"A";}else if(cb>ca){cout<<"B";}else{cout<<"draw";}return 0;}09:向量点积计算#include<iostream>#include<cmath>#include <algorithm>using namespace std;int main(){int n,sum=0;int a[1001]={},b[1001]={};cin>>n;for(int i=0;i<n;++i)cin>>a[i];for(int i=0;i<n;++i)cin>>b[i];for(int i=0;i<n;++i){sum+=a[i]*b[i];}cout<<sum;return 0;}10:⼤整数加法#include<iostream>#include<cmath>#include<algorithm>#include<string>using namespace std;int res[20000];int ada[20000],adb[20000];int to_Int(char a){return a-'0';}int main(){string a,b;int index=0;cin>>a>>b;if(a=="0"&&b=="0"){cout<<0;return 0;}int start=max(a.length(),b.length());for(int i=a.length()-1,j=0;i>=0;--i,++j)ada[j]=to_Int(a[i]); for(int i=b.length()-1,j=0;i>=0;--i,++j)adb[j]=to_Int(b[i]); for(int i=0;i<start;++i,++index){res[index]=res[index]+ada[i]+adb[i];if(res[index]>9){res[index]-=10;res[index+1]++;}}int i;for(i=index;res[i]==0;--i);for(;i>=0;--i)cout<<res[i];return 0;}11:⼤整数减法#include<iostream>#include<cmath>#include<algorithm>#include<string>using namespace std;int res[20000];int ada[20000],adb[20000];int to_Int(char a){return a-'0';}int main(){string a,b;int index=0;cin>>a>>b;int start=max(a.length(),b.length());for(int i=a.length()-1,j=0;i>=0;--i,++j)ada[j]=to_Int(a[i]); for(int i=b.length()-1,j=0;i>=0;--i,++j)adb[j]=to_Int(b[i]); for(int i=0;i<start;++i,++index){res[index]=ada[i]-adb[i];if(res[index]<0){int indexa=i;res[index]+=10;indexa++;ada[indexa]--;while(ada[indexa]<0){ada[indexa]+=10;indexa++;ada[indexa]--;}}// cout<<">>"<<res[index]<<endl;}int i,flag=1;for(i=index;res[i]==0;--i);for(;i>=0;--i){cout<<res[i];flag=0;}if(i<0&&flag)cout<<0;return 0;}12:计算2的N次⽅#include<iostream>#include<cmath>using namespace std;int main(){int n;cin>>n;printf("%.0lf",pow(2,n));return 0;}13:⼤整数的因⼦#include<algorithm>using namespace std;int main(){string c;int index=0,flag=0;cin>>c;for(int i=2;i<=9;++i){int index=0;for(int j=0;j<c.length();++j){index=(index*10+c[j]-'0')%i;}if(!index){flag=1;cout<<i<<" ";}}if(!flag){cout<<"none";}return 0;}14:求10000以内n的阶乘[这⾥是先把每⼀位算出来在计算进位] #include<iostream>#include<cmath>#include<algorithm>using namespace std;int ans[100000010];int main(){int n,j,add=0,index=1;cin>>n;ans[1]=1;for(int i=2;i<=n;++i){for(int j=1;j<=index;++j){ans[j]*=i;}for(int j=1;j<=index;++j){if(ans[j]>=10){ans[j+1]+=ans[j]/10;ans[j]%=10;}}while(ans[index+1]>0){index++;ans[index+1]=ans[index]/10;ans[index]%=10;}}for(int i=index;i>=1;--i) cout<<ans[i];return 0;}15:阶乘和#include<iostream>using namespace std;#define N 100000int a[N],n,tot=1,lena=1,ans[N];int main(){cin>>n;a[1]=1;ans[1]=1;for(int i=2;i<=n;i++){for(int j=1;j<=lena;j++)a[j]*=i;for(int j=1;j<=lena;j++){if(a[j]>9){a[j+1]+=a[j]/10;a[j]%=10;if(j==lena)lena++;}}tot=max(lena,tot);for(int j=1;j<=tot;j++)ans[j]+=a[j];for(int j=1;j<=tot;j++)if(ans[j]>9){if(tot==j)tot++;}}for(int i=tot;i>=1;i--)cout<<ans[i]; cout<<endl;} 。
信息竞赛-一维数组
那些数组
那些数组
1 一维数组的定义
例1:题库71-逆序输出 输入n个数,倒序输出这n个数
#include<bits/stdc++.h> using namespace std; int main() {
int n; cin>>n; for (int i=0; i<n; i++) cin>>a[i]; //输入数组 for (int i=n-1; i>0; i--) cout<<a[i]<<' '; //逆序输出,后有空格 cout<<a[0]; //最后一个数后没有空格 return 0; }
那些数组
Thanks
信息那些事儿
❤代维❤
例3:题库75-删除最大数
相较删除一个就要挪一排,开一个b数组会方便很多
int n,j=0; cin>>n; int a[n]={},b[n]; //b数组用来存储除最大数以外剩下的数 输入数组a并找到最大数-代码略 for(int i=0; i<n;i++) if(max==a[i]) a[i]=0; //最大数置0 for(int i=0; i<n;i++) if(a[i]!=0) b[ j++]=a[i]; //将a中不为0的数给b
int n,average=0,s=0,a[110];
}
//定义数组容量尽量比题目要求的大一些 return 0;
cin>>n;
}
for (int i=0; i<n; i++)
{
怎么删除最后一个大于平均值
一维数组试题
C语言考试试题[一维数组]姓名:学号:成绩:一、填空题:(每题1分,共10分)1、数组是构成的集合。
2、数组元素被顺序连续地存放在内存中,并通过进行访问。
3、数组元素的下标从开始。
长度为n的数组中,最后一个元素下标为。
4、一维数组是最简单的数组,其定义形式是:。
5、一个C字符串是以结束的字符序列。
6、专门用于字符串的输入和输出的函数是。
7、float fv[]={0,4,5,12,-7,56.8,0};数组fv的长度是_________。
8、存储字符串“\0”占用________字节的存储单元。
9.有定义int a[]={4,6,78,3456,98,2,89};该数组元素最大的下标为___________。
二、单项选择题,请将答案写在下列答题卡中(每题2分,共24分 )。
1、以下正确的概念是()A、数组名的规定与变量名不相同。
B、数组名后面的常量表达式用一对圆括号括起来。
C、数组下标的数据类型为整型常量或整型表达式。
D、在C语言中,一个数组的数组下标从1开始。
2、对数组初始化正确的方法是:A、int a(5)={1,2,3,4,5};B、int a[5]={1,2,3,4,5};C、int a[5]={1…5};D、int a[5]={0,1,2,3,4,5};3、若有以下的数组定义:char x[]=”12345”; char y[]={…1‟,‟2‟,‟3‟,‟4‟,‟5‟};则正确的描述是:()A、x数组和y数组长度相同B、x数组长度大于y数组长度C、x数组长度小于y数组长度D、两个数组中存放相同的内容4、以下程序运行时,从键盘输入:AhaMA Aha<回车>,则下面程序的运行结果是()#include <stdio.h>main(){char s[80],c=‟a‟;int m=0; scanf(“%s”,s);while(s[m]!=‟\0‟){ if(s[m]==c) s[m]=s[m]-32;else if(s[m]==c-32) s[m]=s[m]+32;m++;}puts(s);}A、ahAMaB、AhAMaC、AhAMa ahAD、ahAMa ahA5、给出以下定义:char x[]=”abcdefg”; char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟,‟g‟};则正确的叙述为:()A 数组A和数组属于空数组B 数组X和数组Y的长度相同C 数组X的长度大于数组Y的长度D数组X的长度小于数组Y的长度6、下面程序的运行结果是()main(){char a[]=”morning”,t;int m,n=0;for(m=1;m<7;m++)if(a[n]<a[m]) n=m;t=a[n];a[n]=a[7];a[7]=a[n];puts(a);}A、mogninrB、moC、morningD、mornin7、字符数组C在内存中所占字节数是:()char c[]={“language”};A、9B、10C、11D、128、下列程序的输出结果是()main(){int n[2],m,k;for(m=0;m<2;m++) n[m]=m;k=2;for(m=0;m<3;m++) printf(“%d\n”,n[k]);}A、不确定的值B、3C、2D、19、在C语言中引用数组元素时,其数组下标的数据类型允许是()A.整型常量 B.整型表达式C.整型常量或整型表达式 D.任何类型表达式10.定义一个具有8个元素的整型数组,应使用的语句是()A.int a[8]; B.int a[2,4]; C. int a[]; D.int *a[8];11.字符串“w\x53\\\np\103q”长度是()A.7 B.9 C.15 D.1612.已知int cn=20;下列关于数组的定义正确的是()A.int a[cn]; B.char cmt[35.0];C.char nm[8]=”2014高考”;D.int x[31];三、程序分析题,写出下面各程序的输出结果。
一维、二维数组及应用程序设计习题
一维、二维数组及应用程序设计习题1、 【字符统计问题】题目描述:试统计用户键盘输入的一串英文字符中每种英文字符个数。
题目要求:⑴相同英文字符的大小写形式视为同一种统计对象;⑵遇到任意非英文字符时统计终止;⑶输出数据时每行仅输出10个数据。
输入数据:abcdeABCDElKlhmn2输出数据:A(2) B(2) C(2) D(2) E(2) F(0) G(0) H(1) I(0) J(0)K(1) L(0) M(1) N(1) O(0) P(0) Q(0) R(0) S(0) T(0) U(0) V(0) W(0) X(0) Y(0) Z(0)2、 【约瑟夫(猴子选大王)问题】题目描述:有M(1000以内)个猴子围成一圈,每个有一个编号,编号从1到M 。
打算从中选出一个大王。
经过协商,决定选大王的规则如下:从第一个开始,每隔N(任意正整数)个,数到的猴子出圈,最后剩下来的就是大王。
题目要求:从键盘输入M 、N(均为正整数),试编程计算哪一个编号的猴子将成为大王。
输入数据:15 3 输出数据:5 200 55 93 3、 【行列互换问题】题目描述:试编程将一个二维数组行和列元素互换,存到另一个二维数组中。
例如:A =B = 4、 【矩阵初始化问题】题目描述:矩阵是线性代数中的重要概念及研究工具,在计算机算法设计中,我们常常选用二维数组之类的数据结构来描述矩阵。
下图是两个4×4的下三角方阵(即行列相等)初始化后的状态,请编程输出任意方阵(用户从键盘输入方阵的行列值)的这类初始化状态。
A 4×4 =B 4×4 =5、 【杨辉三角问题】题目描述:杨辉三角(出自其1261年所著的《详解九章算法》,也叫贾宪三角或帕斯卡三角),它可以简单解释为由两个未知数和的幂次方运算后按某个未知数的降幂排列(或另一未知数的升幂排列)后的系数表(二项式定理)。
比如(x+y)0=1,系数为(1);(x+y)1=x+y ,系数为(1、1);(x+y)2=x 2+2xy+y 2,系数为(1、2、1);(x+y)3=x 3+3x 2y+3xy 2+y 3,系数为(1、3、3、1)以及四次、五次、……等运算后所得的系数表,如下图(仅举5行):题目要求:⑴利用一维数组试求用户给定行数的杨辉三角形;⑵利用二维数组试求用户给定行数的杨辉三角形(请尽力严格按照上图要求的输出格式)。
一维数组例题答案
一维数组举例:1.王小二是个卖大饼的,他一刀可以把大饼切2块,两刀可以切出4块,三刀最多可以切7块,四刀可以切11块,问10刀最多可以切多少块?Private Sub Form_Click()Dim x(10) As Integerx(0) = 1For i = 1 To 10x(i) = i + x(i - 1)Print x(i),If i Mod 5 = 0 Then PrintNext iEnd Sub2.输入一串字符,统计各字母出现的次数Private Sub Form_Click()Dim i%, m%, s$, c$Dim a(25) As Integers = InputBox("请输入字符串")For i = 1 To Len(s)c = Mid(s, i, 1)m = Asc(UCase(c)) - 65a(m) = a(m) + 1Next iFor i = 0 To 25Print a(i)Next iEnd Sub3.随机产生10个小于100的自然数,找出其最大值、最小值和平均值。
Private Sub Form_Click()Dim i%, max%, min%, s!Dim a%(1 To 10) '等价于Dim a (1 To 10) as integer RandomizeFor i = 1 To 10a(i) = Int(Rnd * 99) + 1Print a(i)Next imax = a(1): min = a(1)For i = 1 To 10If a(i) > max Then max = a(i)If a(i) < min Then min = a(i)s = s + a(i)Next iPrint "最大值是"; maxPrint "最小值是"; minPrint "平均值是"; s / 10End Sub4.产生10个小于20的不等随机整数,利用冒泡排序法,将数据按从大到小的顺序排列。
一维数组练习题
一维数组练习题一维数组练习题1、以下对一维数组a进行正确初始化的是__________。
A) int a[10]=(0,0,0,0,0); B) int a[10]={ };C) int a[ ]={0}; D) int a[10]={ 10*2};2、以下一维数组a的正确定义是________ 。
A) int a(10); B) int n=10,a[n];C) int n; D) #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3、执行下面的程序段后,变量k中的值为__________。
int k=3,s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 104、下列程序执行后的输出结果是__________。
main(){int a,b[5];a=0; b[0]=3;printf("%d,%d\n",b[0],b[1]); }A) 3,0 B) 3 0C) 0,3 D) 3,不定值5、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值分别是________。
a[0] a[1] a[2] a[3] a[4]┌──┬──┬──┬──┬──┐│ 10 │ 20 │ 30 │ 40 │ 50 │└──┴──┴──┴──┴──┘A) 20和30 B) 20和31C) 21和30 D) 21和316、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。
main( ){ int i,p=0,a[10];for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=1;i<10;i++)if(a[i]<a[p])_______________;< p="">printf("%d,%d\n",a[p],p);}A) i=p B) a[p]=a[i]C) p=j D) p=i7、以下程序的输出结果是________。
一维数组习题
一维数组【例1】输入50个数,要求程序按输入时的逆序把这50个数打印出来;也就是说,请你按输入相反顺序打印这50个数分析:我们可定义一个数组a用以存放输入的50个数,然后将数组a内容逆序输出,源程序如下program ex5_1;typearr=array[1..50]of integer; {说明一数组类型arr}vara:arr;i:integer;beginwriteln('Enter 50 integer:');for i:=1 to 50 do read(a[i]);{从键盘上输入50个整数}readln;for i:=50 downto 1 do {逆序输出这50个数}write(a[i]:10);end.【例2】输入十个正整数,把这十个数按由大到小的顺序排列(将数据按一定顺序排列称为排序,排序的算法有很多,其中选择排序中的―简单选择排序‖是一种较简单的方法)分析:要把十个数按从大到小顺序排列,则排完后,第一个数最大,第二个数次大,……;因此,我们第一步可将第一个数与其后的各个数依次比较,若发现,比它大的,则与之交换,比较结束后,则第一个数已是最大的数。
同理,第二步,将第二个数与其后各个数再依次比较,又可得出次大的数。
如此方法进行比较,最后一次,将第九个数与第十个数比较,以决定次小的数。
于是十个数的顺序排列结束。
例如下面对5个进行排序,这个五个数分别为829105。
按选择排序方法,过程如下:初始数据:82910 5第一轮排序:82910 592810 510289 510289 5第二轮排序:10829 510928 510928 5第三轮排序:10982 510982 5第四轮排序:10985 2对于十个数,则排序要进行9次。
源程序如下:program ex5_2;vara:array[1..10]of integer;i,j,t:integer;beginwriteln('Input 10 integers:');for i:=1 to 10 do read(a[i]);{读入10个初始数据}readln;for i:=1 to 9 do{进行9次排序}beginfor j:=i+1 to 10 do{将第i个数与其后所有数比较}if a[i]<a[j] then {若有比a[i]大,则与之交换}begint:=a[i];a[i]:=a[j];a[j]:=t;end;write(a[i]:5);end;end.【例3】从键盘输入10个数,将这10个数逆序输入,并求这10个数的和,输出这个和。
2-一维数组练习
练习4
C
语 言
练习5
程 序 设 计
编写程序实现下述功能:有10位学生的成绩:17、 34、90、88、55、74、95、82、43、90、编写 程序找出其中的最高分,并将最高分与第一个成 绩交换位置。
C
语 言
练习6
程 序 设 计
编写程序实现下述功能:有一个已经排好序的数 组。要求输入一个数,在数组中查找是否有这个 数,如果有,将该数从数组中删除,要求删除后 的数组仍然保持有序;如果没有,则输出“数组
中没有这个数!”
C
语
言
程
序
设
计
综合实践九
一维数组综合练习
C
语
作业要求
言
程 序
请将本次课程作业写在作业本上,要求如下:
设 计
将练习4、练习5、练习6写在作业本上,并记录上机过 程中遇到的问题。
C
语
言 程 写出下面程Fra bibliotek运行结果序
设
计
练习1
C
语 言
练习2
程
序
设
计
C
语 言
练习3
程
序
设
计
C
语 言 程 4、读程序并填空 序 设 计
一维数组 答案(1)
第一题:#include<stdio.h>void main(){int a[10]={10,20,40,30,24,15,8,17,35,11},b[10],i,j;for(i=0;i<10;i++){printf("%d ",a[i]);j=9-i;b[j]=a[i];}for(j=0;j<10;j++){printf("%d ",b[j]);}printf("\n");}/*原数列是:10 20 40 30 24 15 8 17 35 11 逆序输出:11 35 17 8 15 24 30 40 20 10 Press any key to continue*/第二题:#include<stdio.h>#include<stdlib.h>void main(){int a[10],i,j,t;printf("产生的随机数列是:");for(i=0;i<10;i++){a[i]=rand()%90+10;printf("%d ",a[i]);}printf("\n按从大到小排序是:");for(i=0;i<9;i++)for(j=0;j<10-i-1;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%3d",a[i]);printf("\n");}/*产生的随机数列是:51 27 44 50 99 74 58 28 62 84 按从大到小排序是: 27 28 44 50 51 58 62 74 84 99 Press any key to continue*/第三题:#include<stdio.h>#define N 6void main(){int a[N];int i,j,t,x;printf("输入五个队员的年龄:");for(i=0;i<N-1;i++)scanf("%d",&a[i]);printf("\n输入新队员的年龄:");scanf("%d",&x);printf("\n新队员获得的队服号码:");for(i=0;i<N-1;i++)for(j=0;j<N-2-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<N-1;i++)if(x<a[i])break;printf("%d\n",i+1);}/*输入五个队员的年龄:22 24 35 22 25输入新队员的年龄:21新队员获得的队服号码:1Press any key to continue*/第四题:#include<stdio.h>void main(){int a[50],n,i,max,maxi;int sum=0,count=0;printf("输入学生人数:");scanf("%d",&n);printf("输入%d个学生成绩:\n",n);printf("序号:");for(i=1;i<=n;i++)printf(" %2d",i);printf("\n成绩: ");for(i=1;i<=n;i++){scanf("%d",&a[i]);sum+=a[i];//计算总分if(a[i]<60)//若成绩不大于60,则不及格count++;}printf("最高分和学生序号为:");max=a[1];maxi=1;for(i=1;i<=n;i++){if(a[i]>max){max=a[i];maxi=i;}}//寻找最大值及其下标sum=sum/n;//计算平均成绩printf("%d %d\n",max,maxi);printf("平均成绩为:");printf("%d\n",sum);printf("不及格的人数为:");printf("%d\n",count);}/*输入学生人数:19输入19个学生成绩:序号: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 成绩: 88 78 77 96 86 75 84 85 63 52 56 63 64 87 95 98 85 84 99最高分和学生序号为:99 19平均成绩为:79不及格的人数为:2Press any key to continue*/。
一维数组的例题
t[imax]=tmp; //过渡杯暂存的 0 号杯水-->imax 杯 } for (i=0;i<n;i++) printf("%d,",t[i]); printf("\n"); } 题 3 最大值到最前面 /* arraySorta.c 选择最大元挪到前面 */ #include <stdio.h> main() { int t[5]={10,20,9,34,2}; //直接给出每个元素 int fmax=0, imax=0; //某大及某大的位置 int k=0,i=0,n=5,tmp=0; //第 k 大 for (k=0;k<=n-2;k++) {
x[i]=x[i+1]; //i+1 移到 i } x[n-1]=0; //[n-1]空着了 printf("after delete:\n"); for(i=0;i<n;i++) {printf("%6.1lf",x[i]);} printf("\n"); } 题 9 修改指定数据 /* arrayUpdate1.c 在一个数组中找到指定数据,然后将其换成新数 */ #include <stdio.h> main() { double x[9]={10,20,50,9,8,100,2,18,0},x0=0,x1=0; int i=0,n=0,i0=0; n=sizeof(x)/sizeof(double); printf("old value,new value="); scanf("%lf,%lf",&x0,&x1); //先寻找待更新对象,就是查询源代码 for (i=0;i<n;i++) {
一维数组选择题练习题
第五章数组第一讲一维数组的定义和使用1.以下定义语句错误的是()A.int a[5]={1};B.int c[ ]={1,2,0,0,0};C.int b[3+3];D.int i=5,a[i];2.以下一维数组的定义方式,正确的是()A.int n=10;B.#define Max 10int a[n]; int a[Max];C.int a[8.5];D.int a[ ];3.以下选项中,不能正确赋值的是()A.char s1[10];s1=”Ctest”;B.char s2[ ]={‘C’,’t’,’e’,’s’,’t’};C.char s3[20]=”Ctest”;D.char s4[10]={“Ctest”};4.对赋值语句int b[10]={1,2,3,4,5};的正确理解是()A.将5个初值依次赋给b[1]至b[5]B.将5个初值依次赋给b[0]至b[4]C.5个初值依次赋给b[6]至b[10]D.因为数组长度与初值的个数不相同,所以此语句不正确5.在C语言中,数组的下标可以是()A.整型常量表达式B.整型表达式C.整型常量或整型表达式D.任何类型的表达式6.在C语言中,数组名表示()A.数组第1个元素的地址B.数组第2个元素的地址C.数组所有元素的地址D.数组最后一个元素的地址7.若有说明:int a[10];,则对a数组元素的正确引用是()A.a[10]B.a[3.5]C.a(5)D.a[10-10]8.以下能正确定义一维数组的选项是()A.int a[5]={0,1,2,3,4,5};B.int a={‘A’;’B’;’C’};C.int a[]={1,2,3,4,5};D.int a[5]=”01234”;9.执行下面的程序段后,变量k的值为()int k=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.1010.有如下程序:该程序的输出结果是()main(){ int a[6]={1,2,3,4,5,6},i,s=0;for(i=1;i<6;i++)s+=a[i];printf(“%d\n”,s); }A.18B.19C.20D.21二、填空题1.已知:int a[10]={1,2,3,4};若int型变量占4个字节,则数组a在内存中所占的字节数是()。
数组的应用课后练习
数组专题练习(8.20)一、选择题1、一维数组的大小为()A、上界+下界+1B、上界+下界-1C、上界-下界+1D、上界-下界-12、数组中的元素具有相同的()A、数据大小B、类型C、数值D、存放地址3、使用Dim A(100)As Integer语句声明了数组A,其下标的取值范围为()A、0~100B、1~100C、0~99D、1~994、对于Integer类型的数组,如果没有赋值,则所有元素的值为()A、空B、0C、1D、最大数5、有8个数据:46、78、12、55、17、9、33、80依次存放在数组d(1)到d(8)中,k=1 。
程序段如下所示:For i=2 To 8IF d(i)<d(k) ThenK=iEnd IfNext iText2.text=Str(k)程序运行时,单击命令按钮Command1,则文本框Text2显示的是()A、9B、6C、80D、86、有如下Vb程序段Dim a(0 To 10) As Integern=10For i=0 To n/2a(i)=2*i+1Next iFor i=n to 6 Step -1a(i)=a(n-i)Next iText1.text=Str(a(n-3))n的值为10,程序执行后,Text1中显示的内容是()A、3B、5C、7D、97、有以下Vb程序段A(1)=68:a(2)=88:a(3)=76:a(4)=60:a(5)=98:a(6)=100:a(7)=64:a(8)=85:a(9)=99:a(10)=59For i=1 To 9b(i)=Abs(a(i+1)-a(i))c(b(i)\10)= c(b(i)\10)+1Next iFor i=0 To 10If c(i)>0 Then Label1.Caption= Label1.Caption+” ”+Str(c(i))Next i数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是()A、2 3 2 1 1B、1 3 2 2 1C、2 3 2 2 1D、1 3 2 1 28、有如下程序段For k=1 To 10f= k Mod 2If f=0 Then a(k) =0 Else a(k)=1For j=1 To kIF f=0 Then a(k)=a(k)+1 Else a(k)=a(k)*jNext jNext k执行该程序段后,数组元素a(4)的值为()A、6B、4C、2D、19、有如下VB程序段:Dim a(0 To 9) As Integer, t As Longt=Val(Text1.text)Do While t<>0a(t Mod 10)=1t=t\10LoopFor i=0 To 9x=x+a(i)Next iText1中输入10242048则程序执行后x的值为()A、1B、2C、5D、1010、某程序段如下:For i=1 To 5b(a(i))= b(a(i))+1Next ipa=0For j=1 To 10For k=1 To b(j)pa=pa+1 : a(pa)=jNext kNext jA(1)到a(5)的初值依次是7、5、9、4、3,程序段运行后,数组a的值依次是()A、7,9,5,4,3 B、3,4,5,7,9C、4,5,7,8,3D、9,7,5,4,311、有如下Vb程序段(数组a各元素的初始值均为0)n=Len(Text1.text)c=1For i=1 To ns=Mid(Text1.text,i,1)If s>=”0” And s<=”9” Thena(c)=a(c)*10+Val(s)ElseIf a(c)>0 Then c=c+1End ifNext i在文本框中输入“No1:X:123:Y:680:End”,执行该程序段后,数组a(2)的值为()A、1B、2C、3D、123二、程序填空题12、编写程序,程序运行时产生n个范围在[10,99]内的随机整数,并在列表框List1显示。
6第六章 数组习题
第六章数组【例1】以下能正确定义一维数组的选项是________。
A)int num[] B)#define N 100 int num[N] C)int num[0..100] D)int N=100; int num[N]【例2】以下以为整形数组a的正确说明是_________。
A)int a(10); B)int n=0,a[n]C)int n; D)#define SIZE 10scanf(“%d”,&n); int a[SIZE];int a[n];【例3】一下能对一维数组a进行正确初始化的形式是_____________。
A)int a[10]=(0,0,0,0,0); B)int a[0]={ }C)int a[ ]={0}; D)int a[10]={10*1};【例4】有以下程序:main(){int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}执行后的输出结果是______。
A)4 5 6 B)2 5 8 C)3 6 9 D)7 8 9【例5】若有说明:int a[3][4];,则对a数组元素的正确引用是_______。
A)a[3][4] B)a[1][2] C)a[1+1][0] D)a(1)(2)【例6】下面程序_________(每行程序前的数字表示行号)。
1main()2{3 int a[3] ={3*0};4 int i;5 for(i=0;i<3;i++) scanf(“d”,&a[i]);6 for(i=1;i<3;i++) a[0]= a[0]+a[i];7 Printf("%d\n ",a[0]);A)第3行有错误 B)第7行有错误C)第5行有错误 D)没有错误【例7】若有说明:int a[ ][3]={1,2,3,4,5,6,7};则a数组第一维的大小是____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一维数组练习题
1、以下对一维数组a进行正确初始化的是__________。
A) int a[10]=(0,0,0,0,0); B) int a[10]={ };
C) int a[ ]={0}; D) int a[10]={ 10*2};
2、以下一维数组a的正确定义是________ 。
A) int a(10); B) int n=10,a[n];
C) int n; D) #define SIZE 10
scanf("%d",&n); int a[SIZE];
int a[n];
3、执行下面的程序段后,变量k中的值为__________。
int k=3,s[2];
s[0]=k; k=s[1]*10;
A) 不定值B) 33
C) 30 D) 10
4、下列程序执行后的输出结果是__________。
main()
{int a,b[5];
a=0; b[0]=3;
printf("%d,%d\n",b[0],b[1]); }
A) 3,0 B) 3 0
C) 0,3 D) 3,不定值
5、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值
分别是________。
a[0] a[1] a[2] a[3] a[4]
┌──┬──┬──┬──┬──┐
│ 10 │ 20 │ 30 │ 40 │ 50 │
└──┴──┴──┴──┴──┘
A) 20和30 B) 20和31
C) 21和30 D) 21和31
6、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。
main( )
{ int i,p=0,a[10];
for(i=0;i<10;i++) scanf("%d",&a[i]);
for(i=1;i<10;i++)
if(a[i]<a[p])_______________;
printf("%d,%d\n",a[p],p);
}
A) i=p B) a[p]=a[i]
C) p=j D) p=i
7、以下程序的输出结果是________。
main( )
{ int i,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2};
for(i=1;i<10;i++)
if(a[i]<a[p]) p=i;
printf("%d,%d\n",a[p],p);
}
A) -3,4 B) 0,1
C) 9,2 D) 2,9
8、有如下说明:
int a[10]={0,1,2,3,4,5,6,7,8,9};
则数值不为9的表达式是________。
A) a[10-1] B) a[8]
C) a[9]-0 D) a[9]-a[0]
9、有如下程序
main()
{ int n[5]={0,0,0},i,k=3;
for(i=0;i<k;i++) n[i]=i+1;
printf("%d\n",n[k]);
}
该程序的输出结果是________。
A) 不确定的值B) 4
C) 2 D) 0
10、以下程序的输出结果是________。
main()
{ int i,x[9]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2) printf("%d ",x[i]);
}
A) 5 2 B) 5 1
C) 5 3 D) 9 7
11、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,当输入负数时结束。
划线处应分
别填入_________。
main()
{ float x[1000],sum=0.0,ave,a; int n=0,i;
printf("Enter mark:\n"); scanf("%f",&a);
while(a>=0.0 && n<1000)
{ sum+=______; x[n]=a;
n++;
scanf("%f",&a);
}
ave=________;
printf("Output :\n");
printf("ave=%f\n",ave);
for(i=0;i<n;i++)
if(x[i]<ave) printf("%f\t",x[i]);
}
A) a和sum/n B) x[n]和sum/n
C) a和sum/i D) a和sum/1000
12、下面程序的输出结果是________。
main()
{ int a[]={1,8,2,8,3,8,4,8,5,8};
printf("%d,%d\n",a[4]+3,a[4+3]);
}
A) 6,6 B)8,8
C) 6,8 D)8,6
13、如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,
则数组a的大小是________。
A) 10 B) 11
C) 8 D) 不定
14、下面程序的输出是________。
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10};
printf("%d\n",a[a[1]*a[2]]);
}
A) 3 B) 4
C) 7 D) 2
15、以下程序输出的结果是________。
#include <stdio.h>
main( )
{ int a[ ]={1,2,3,4,5},i,j,s=0;
j=1;
for(i=4;i>=0;i--) { s=s+a[i]*j; j=j*10; }
printf("s=%d\n",s);
}
A) s=12345 B) s=1 2 3 4 5 C) s=54321 D) s=5 4 3 2 1
16、以下程序输出的结果是________。
#include <stdio.h>
main( )
{ int a[ ]={1,2,3,4,5},i,j,s=0;
for(i=0;i<5;i++) s=s*10+a[i];
printf("s=%d\n",s);
}
A) s=12345 B) s=1 2 3 4 5
C) s=54321 D) s=5 4 3 2 1
17、以下程序运行,如果从键盘上输入4<回车>,则输出结果是________ 。
#include <stdio.h>
main( )
{int a[20]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5,-1,-2,-3,-4,-5};
int i,m,n,f=0;
scanf("%d",&n);
for(i=0;i<20;i++)
if(a[i]==n) { f=1;m=i; }
if(f!=0) printf("%d,%d\n", n,m+1);
else printf(" %d not found !\n",n);
}
A) 4,4 B) 4,14
C) 4,5 D) 4,15
18、下面程序运行后,输出结果是________。
#include <stdio.h>
main( )
{ int a[10]={1,2,3,4,5,6},i,j;
for(i=0;i++<3;)
{ j=a[i];a[i]=a[5-i];a[5-i]=j;}
for(i=0;i<6;i++) printf("%d ",a[i]);
}
A) 6 5 4 3 2 1 B) 1 2 3 4 5 6
C) 1 5 4 3 2 6 D) 1 5 3 4 2 6
19.用一位数组实现以下功能:从键盘上输入十个数,存放在数组a中,在键盘上打印出这十个数,并求其和
20.将数组a的第一个数移动到最后一个位置,其他数依次前移一个位置。
如:
移动前为:12 13 15 21 22 10 45 55 6 2
移动后为:13 15 21 22 10 45 55 6 2 12
21.从键盘上输入十个数,然后从大到小的顺序输出。