一维数组练习题
一维数组练习.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)编写一个程序,创建一个8个元素的int数组,并且把元素分别设置为2的前8次幂,然后打印出他们的值。
使用for循环来设置值;为了变化,使用do while 循环来显示这些值。
2)#include <stdio.h>#define SIZE 8int main( void ){int s[SIZE]={1};int i;for (i = 1; i < SIZE; i++){s[SIZE] = 2 * s[SIZE-1];}i = 0;do{printf("%d ", s[i++]);} while (i < SIZE);printf("\n");return 0;}2)将下列数组中的值逆序存放。
s[8]={3, 6, 11, 8, 4, -3, 0, 2}.#include<stdio.h>#define N 8int main(){int s[8]={3,6,11,8,4,-3,0,2};int i=0, j=N-1, swap;while(i<j);{swap=a[i];a[i]=a[j];a[j]=swap;i++;j--;}for(i=0;i<N;i++){printf(“%d ”,a[i])}printf(“\n”);return 0;}三、进阶能力落实:四、1)编写一个程序,创建两个8元素的double数组,使用一个循环来让用户键入第一个数组的8个元素的值,程序把第二个数组的元素设置为第一个数组元素的累积和,例如,第二个数组的第4个元素应该等于第1个数组的前4个元素的和,第二个数组的第5个元素应该等于第一个数组的前5个元素的和,最后,使用一个循环来显示两个数组中的内容,第一个数组在一行中显示,而第二个数组中的每个元素在第一个数组的对应元素之下进行显示。
#include <stdio.h>#define SIZE 8int main(void){double arr[SIZE];double arr_cumul[SIZE];int i;printf("Enter %d numbers:\n", SIZE);for (i = 0; i < SIZE; i++){printf("value #%d: ", i + 1);scanf("%lf", &arr[i]);/* or scanf("%lf", arr + i); */}arr_cumul[0] = arr[0]; /* set first element */for (i = 1; i < SIZE; i++)arr_cumul[i] = arr_cumul[i-1] + arr[i];for (i = 0; i < SIZE; i++)printf("%8g ", arr[i]);printf("\n");for (i = 0; i < SIZE; i++)printf("%8g ", arr_cumul[i]);printf("\n");return 0;}2)编写程序实现功能:输入两个字符串,求出这两个字符串的长度,比较两个字符串的大小,将第二个字符串接到第一个字符串后面,然后再将第一个字符串拷贝到第二个字符串中。
一维数组习题

一维数组【例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个数的和,输出这个和。
一维数组习题

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]); }
一维数组的例题

printf("the location =%d\n",i); } else {
printf("not found!\n"); } } 题 8 删除指定数据 /* arrayDelet1.c 在一个数组中找到指定数据,然后将后面的数前移
*/ #include <stdio.h> main() {
double x[]={10,20,50,9,8,100,2,18},tmp=0; double y[]={10,20,50,9,8,100,2,18}; int i=0,n=0,j=0; n=sizeof(x)/sizeof(double); printf("before sort:\n"); for (i=0;i<n;i++) printf("%6.1lf ",x[i]); //将小的数不断往前滚,则小的到前面去了,大的到了后面 for (i=0;i<=n-2;i++) //0-n-2 轮 {
//每轮将 0 到 for (j=0;j<n-i-1;j++) {
if (x[j]<x[j+1])//如果小的在左边则换到右边 {
tmp=x[j]; x[j]=x[j+1]; x[j+1]=tmp; } } } printf("\nafter sort big-->small:\n"); for (i=0;i<n;i++) printf("%6.1lf ",x[i]); //将大的数不断往后滚,则大的到后面去了,小的到了前面 //注意:对 y 排序 for (i=0;i<=n-2;i++) //滚的轮数 0-n-2 { for (j=0;j<n-i-1;j++) //从 0 到已经排好序的前一个 { if (y[j]>y[j+1]) //找一个极端的样例 i=0 时想想 { tmp=y[j];y[j]=y[j+1];y[j+1]=tmp; } } } printf("\nafter sort small-->big:\n"); for (i=0;i<n;i++) printf("%6.1lf ",y[i]); } 题 5 冒泡法 /* 将小的数不断往前滚,则小的到前面去了,大的到了后面,低到高 将大的数不断往前滚,则大的到前面去了,小的到了后面,高到低 所以后滚既可实现高到低,也可实现低到高 */ #include <stdio.h> main() {
一维数组习题

一维数组习题一、选择题1、对定义“int a[2];”的正确描述是()。
A、定义一维数组a,包含a[1]和a[2]两个元素B、定义一维数组a,包含a[0]和a[1]两个元素C、定义一维数组a,包含a[0]、a[1]和a[2]三个元素D、定义一维数组a,包含a(0)、a(1)和a(2)三个元素2、以下数组的定义中,合法的是()。
A、int x(3);B、int x[3]C、int x[2+1];D、int n=3,[n];3、以下数组的初始化中,正确的是()。
—A、char s[]={‘a’,’b’};B、char s[2]={‘a’,’b’,’c’};C、char s(2)={‘a’,’b’};D、char s={‘a’,’b’,’c’};4、以下初始化中,能够将各初始值正确赋给a数组元素的是()。
A、int a[3]={1,2};B、int a[3]={,2,};C、int a[3]={1,5,4,12};D、int a(3)={1,5};5、以下对一维数组的定义中,正确的是()。
A、#define MAX 5B、int MAX=5;int a[MAX]; int a[MAX];C、int MAX;D、#define MAX 5;scanf(“%d”,&MAX); int a[MAX];。
int a[MAX];6、若有初始化“float a[]={1,2,3,4,5};”,则以下叙述中错误的是()。
A、因所提供的初值都是整数,与数组类型不一致,所以出现错误B、a数组在内在中占据20个字节C、a数组中的最后一个元素是a[4]D、元素a[2]的值是7、若有初始化“int a[5]={1,2,3,4,5};”,则值为4的表达式是()。
A、a[4]B、a[a[2]+1]C、a[a[2]]D、a[3]+18、若有初始化语句“int a[]={1,2,3,4,5,6,7,8,9,10};”,则对a数组元素的错误引用是()。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
维数组练习题1 、以下对一维数组 a 进行正确初始化的是 ____________
A) int a[10]=(0,0,0,0,0);
C) int a[ ]={0}; B) int a[10]={ };
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
C) 0,3 }
B) 3 0
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 C) 21 和 30 B) 20 和 31 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 C) p=j ,并输出低于平均分的学生
B) a[p]=a[i]
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 C) a 和 sum/i B) x[n] 和 sum/n 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;
printf("s=%d\n",s);
}
A) s=12345
C) s=54321 j=j*10; }
B) s=1 2 3 4 5 D) s=5 4 3 2 1
16 、以下程序输出的结果是_________ #include <stdio.h>
B) 1 2 3 4 5 6 D) 1 5 3 4 2 6 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
C) 1 5 4 3 2 6。