ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:71.41KB ,
资源ID:28965724      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28965724.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言题库第5章 数组.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言题库第5章 数组.docx

1、C语言题库第5章 数组第五章 数组一、单项选择1.若要定义一个具有5个元素的整型数组,以下错误的定义语句是( C)2.下列选项中,能正确定义数组的语句是( D)3.下面是有关C语言字符数组的描述,其中错误的是( D)4.有以下程序,程序运行时若输入:how are you? I am fine则输出结果是( C)#includeint main() char a30,b30;scanf(%s,a);gets(b);printf(%sn %sn,a,b);return 0; 5.以下选项中正确的语句组是( D)6.若有定义语句:int m=5,4,3,2,1,i=4;则下面对m数组元素的引用中错

2、误的是( A )7.以下数组定义中错误的是( A)8.下列选项中,能够满足若字符串s1等于字符串s2,则执行ST要求的是 ( A )9.有以下程序,程序运行后的输出结果是( C)#include #include int main()char x=STRING;x0=0;x1=0;x2=0;printf(%d %dn,sizeof(x),strlen(x);return 0;10.有以下程序,程序运行后的输出结果是( B )#include #include int main()char a20=”ABCD0EFG0”,b=”IJK”;strcat(a,b); printf(“%sn”,a);

3、return 0;二、程序设计1/* 编写程序,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下面的矩阵: 100 200 300 400 500 600 700 800 900程序输出: 100 400 700 200 500 800 300 600 900注意:部分源程序存在文件prog.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/#include void fun(int array33)/* Begin */* End */NONO( )/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。*/

4、inti,j;FILE *wf ,*in;int array33=100,200,300, 400,500,600, 700,800,900;in=fopen(a11.in,r);for(i=0;i3;i+) for(j=0;j3;j+) fscanf(in,%d,&arrayij); wf = fopen(a11.out, w) ;fun(array);for(i=0;i3;i+) for(j=0;j3;j+) fprintf(wf,%7dn,arrayij); fclose(wf) ;int main()inti,j;int array33=100,200,300, 400,500,600

5、, 700,800,900;for (i=0;i3;i+) for (j=0;j3;j+)printf(%7d,arrayij);printf(n); fun(array);printf(Converted array:n);for(i=0;i3;i+) for(j=0;j3;j+)printf(%7d,arrayij);printf(n); NONO( );return 0;【参考代码】inti,j;int b33;for (i=0;i3;i+)for (j=0;j3;j+)bji=arrayij;=2./*请编写函数fun,其功能是:将所有大于1小于等于整数m的非素数存入xx所指数组中,非

6、素数的个数通过k传回。例如,输入17,则应输出4 6 8 9 10 12 14 15 16。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/ #include#include#include#includeint fun(int m, int xx)/*Begin*/*End*/ int main() FILE *wf,*in;int m, n, zz100;printf(nPlease enter an integer number between 10 and 100: );scanf(%d,&n); m=f

7、un(n,zz);printf(nnThere are %d non-prime numbers less than %d: ,m,n);for(n=0;nm;n+)printf(n %4d,zzn);/*/wf=fopen(1.out,w);in=fopen(1.in,r);fscanf(in,%d,&n); m=fun(n,zz);for(n=0;nm;n+)fprintf(wf,%dn,zzn);fclose(wf);fclose(in);/*/return 0;【参考代码】inti,j,n=0; for(i=4;i=m;i+) for(j=2;ji;j+) if(i%j=0) brea

8、k; if(ji)xxn+=i; return n; =3./*编写函数int fun(intlim, intaaMAX),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求出的素数的个数。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include#include#include#define MAX 100int fun(intlim, intaaMAX)/*Begin*/*End*/ int main() FILE *wf,*in;intlimit,i,sum;intaaMA

9、X;printf(输入一个整数);scanf(%d,&limit);sum=fun(limit,aa); for(i=0;isum;i+) if(i%10=0&i!=0) /*每行输出10个数*/printf(n );printf(%5d ,aai); /*/in=fopen(2.in,r);fscanf(in,%d,&limit);wf=fopen(2.out,w);sum=fun(limit,aa); for(i=0;isum;i+) fprintf(wf,%dn,aai); fclose(wf);fclose(in);/*/return 0;【参考代码】inti,j,k=0; for(i

10、=2;i=lim;i+) for(j=2;j=i) aak+=i; return k; =4./*请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0到p(p=n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为3。移动后,一维数组中的内容应为5,6,7,8,9,10,11,12,13,14,15,1,2,3,4。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号注释语句中填入所编写的若干语句。试题程序: */#includ

11、e #define N 80void fun(int w, int p, int n)/*Begin*/ /*End*/int main() FILE *wf,*in;int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;inti, p, n=15;printf(The original data:n);for(i=0;in;i+) printf(%3d,ai);printf(nnEnter p: ); scanf(%d,&p);fun(a,p,n);printf(nThe data after moving:n);for(i=0;in;i+) printf(%

12、3d,ai);printf(nn);/*/in=fopen(in49.dat,r);wf=fopen(out49.dat,w);fscanf(in,%d %d,&n,&p);for(i=0;in;i+)fscanf(in,%d,&ai);for(i=0;in;i+) printf(%3d,ai);fun(a,p,n);for(i=0;in;i+) fprintf(wf,%3d,ai);fclose(wf);fclose(in);/*/return 0;*【参考代码】int i,j=0,bN; for(i=p+1;in;i+)bj+=wi; for(i=0);i=p;i+) bj+=wi; fo

13、r(i=0;in;i+) wi=bi;=5./*请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。例如,若输入字符串-1234,则函数把它转换为整数值-1234。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include #include long fun(char p) /*Begin*/ /* End */int main() FILE *wf,*in;char s6;long n;printf(Enter a string:n);gets(

14、s); n=fun(s);printf(%ldn,n);/*/in=fopen(in13.dat,r);wf=fopen(out13.dat,w);fscanf(in,%s,s);fprintf (wf,%ld,fun(s);fclose(wf);/*/return 0;【参考代码】 long n=0,i=0; int flag=1; if(pi=-) /*负数时置flag为-1*/ i+;flag= -1; else if(pi=+) /*正数时置flag为1*/ i+; while(pi!=0) n=n*10+pi-0;/*将字符串转成相应的整数*/ i+; return n*flag;

15、=6./*请编写一个函数fun,它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为50,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include#include#define M 100int fun(int m, int a) /*Begin*/ /* End */int main() FILE *wf,*in;intaaM,n,k,i; n=fun(50,

16、aa);for(k=0;kn;k+) if(k+1)%20=0) /*每行输出20个数*/ printf(%4d,aak);printf(n); elseprintf(%4d,aak);printf(n);/*/in=fopen(in4.dat,r);wf=fopen(out4.dat,w);fscanf(in,%d,&k); n=fun(k,aa);for(i=0;in;i+)fprintf(wf,%dn,aai);fclose(wf);/*/return 0;【参考代码】inti,j=0; for(i=1;i=m;i+) if(i%7=0|i%11=0) aj+=i; return j;

17、/*返回这些数的个数*/ =7./*请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include#include#define M 4#define N 5int fun( int a MN) /*Begin*/ /* End */void main() FILE *wf,*in;inta

18、aMN=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,10;inti, j, y;printf (The original data is :n );for(i=0; iM;i+) for (j=0; jN;j+) printf(%6d ,aaij);printf(n ); y=fun(aa);printf(nThe sun: %dn ,y);printf(n );/*/in=fopen(in10.dat,r);wf=fopen(out10.dat,w);for(i=0;iM;i+)for(j=0;jN;j+)fscanf(in,%d,&aaij); y=fun(

19、aa);fprintf (wf,%d,y);fclose(wf);/*/【参考代码】inti,j,sum=0; for(i=0;iM;i+) for(j=0;jN;j+) if(i=0|i=M-1|j=0|j=N-1) sum=sum+aij; return sum; =8./*下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a 数组中的值为: 0 1 2 7 9 1 9 7 4 5 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回主程序后s的值应为3.375000。注意:请勿改

20、动main函数和其他函数中的任何内容,仅在函数fun的花括号注释语句中填入所编写的若干语句。试题程序: */#include#include#define N 5double fun (int wN)/*Begin*/*End*/ int main() FILE *wf,*in;int aNN=0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1;inti, j;double s;printf(*The array*n );for (i=0; iN; i+) for (j=0;jN;j+) printf(%4d ,aij);printf(n );

21、s=fun(a);printf(*THE RESULT*n );printf(The sum is : %lfn ,s);/*/in=fopen(in45.dat,r);for(i=0;iN;i+) for(j=0;jN;j+) fscanf(in,%d,&aij);wf=fopen(out45.dat,w); s=fun(a);fprintf (wf,%lf,s);fclose(wf);fclose(in);/*/return 0;*【参考答案】int i,j,k0;double av0.0;for(i0;iN;i)for(j0;jN;j)if(i0|iN1|j0|jN1) avavwij;

22、 k;return av/k;=三、程序改错1./*N个有序整数数列已放在一维数组中,给定下列程序中,函数fun 的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: */#include #define N 10/*ERROR*/void fun(int a,int m) int low=0,high=N-1,mid; while(lo

23、w=high) mid=(low+high)/2;if(m=amid)low=mid+1;else return(mid); return(-1);int main() int i,aN=-3,4,7,9,13,24,67,89,100,180,k,m; printf(a数组中的数据如下:);for(i=0;i=0) printf(m=%d,index=%dn,m,k);else printf(Not be found!n);return 0;【参考答案】int fun(int a,int m)mamid2./*下列给定程序中,函数fun的功能是:输出M行、M列整数方阵,然后求两条对角线上的各元素之和,返回此和数。请改正程序中的错误

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1