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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

1以下为一维整型数组a的正确说明是.docx

1、1以下为一维整型数组a的正确说明是 一、选择题1以下为一维整型数组a的正确说明是( )。Aint a(10); Bint n=10,an;Cint n; D#define SIZE 10; scanf(%d,&n); int aSIZE; int an;【答案】D【说明】D选项符合语法格式,数组定义的长度不能为变量。2以下对二维数组a的正确说明是( )。Aint a3; Bfloat a(3,4); Cdouble a14; Dfloat a(3)(4);【答案】C【说明】C选项符合语法格。3若二维数组a有m列,则计算任一元素aij在数组中位置的公式为( )(假设a00位于数组的第一个位置上)

2、。Ai*m+j Bj*m+i Ci*m+j-1 Di*m+j+1【答案】D【说明】D是公式。4若二维数组a有m列,则在aij前的元素个数为( )。Aj*m+i Bi*m+j Ci*m+j-1 Di*m+j+1【答案】B【说明】根据上题可知。5若有以下程序段:int a=4,0,2,3,1,i,j,t;for(i=1; i=0&taj) aj+1=aj; j-; Aj+1=t;则该程序段的功能是( )。A对数组a进行插入排序(升序) B对数组a进行插入排序(降序)C对数组a进行选择排序(升序) D对数组a进行选择排序(降序)【答案】B【说明】插入法排序的基本思路是将一个数插入到前面已排好序的有序

3、表中,从而得到一个新的、个数增1的有序排列。6有两个字符数组a、b,则以下正确的输入语句是( )。Agets(a,b); Bscanf(%s%s,a,b);Cscanf(%s%s,&a,&b); Dgets(a),gets(b);【答案】B【说明】B选项中数组名a、b前不能加地址运算符。gets函数的参数要求是一个字符数组名或一个字符型指针变量。7下面程序段的运行结果是( )。char a7=abcdef;char b4=ABC;strcpy(a,b);printf(%c,a5); A空格 B0 Ce Df【答案】D【说明】strcpy函数在复制中只将b数组的字符串ABC覆盖a数组中前4个字符

4、,后面的字符不变,因此a5元素中的字符还是f。其他选项均不对。8判断字符串s1是否大于字符串s2,应当使用( )。Aif(s1s2) Bif(strcmp(s1,s2)Cif(strcmp(s2,s1)0) Dif(strcmp(s1,s2)0)【答案】D。【说明】两个字符串的大小比较应使用strcmp函数,且比较是自左至右逐个字符比较的,因此只有选项D正确。其他选项均不对。9下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空( )。#include main() char s80,c1,c2= ; int i=0,num=0; gets(s); whil

5、e(si!=0) c1=si; if(i=0)c2= ; else c2=si-1; if( )num+ ;i+; printf(There are %d wordsn,num);Ac1= &c2= Bc1!= & c2= Cc1= & c2!= Dc1!= &c2!= 【答案】B【说明】统计单词个数的基本思路是:如果前一个是空格,后一个符号为非空格字符时,说明出现了一个新单词,因此B是正确的。其他选项均不对。10下面程序的运行结果是( )。#include main() char str=SSSWLIA,c; int k; for(k=2;(c=strk)!= 0;k+) switch(C.

6、 case I:+k;break; case L:continue; default:putchar(c);continue; putchar(*); ASSW* BSW* CSW*A DSW【答案】B【说明】注意continue与break两语句直到的作用,for循环在第四次时被强行退出,只有答案B正确。其他选项均不对。11下面程序段执行后,s的值是( )。static char ch=600;int a,s=0;for(a=0;cha=0 & cha=9;a+) s=10*s+cha-0;A600 B6 C0 D出错 【答案】A。【说明】注意“cha-0”将数字符号转换成了数字,因此只有A

7、对。其他选项均不对。12有如下程序,其运行结果是( )。 main() int n3, i,j,k; for(i=0;i3;i+) ni=0; k=2; for(i=0;ik;i+) for(j=0;jk;j+) nj=ni+1; printf(%dn,nk);A2 B1 C0 D3【答案】C【说明】因为在程序中j的值始终是小于k的,所以nk没有改变,还是0,答案为C。其他选项均不对。二、填空题1若有定义:double x35;则x数组中行下标的下限为 ,列下标的上限为 。【答案】2 4【说明】数组元素的下标是从0开始的。2数组在内存中占一片连续的存储区,由 代表它的首地址。【答案】数组名【说

8、明】数组名代表的是该数组在内存中的起始地址。3若有以下程序段:char str=xyn012n;printf(%d,strlen(str);执行后的输出结果是 。【答案】6【说明】注意转义字符。4下面程序以每行4个数据的形式输出a数组,请填空。#define N 20main() int aN,i; for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN;i+) if( )printf(n); printf(%3d,ai); printf(n);【答案】i%4=0【说明】由题意可知,每输出4个数,程序自动换行。5下面程序可求出矩阵a的主对角线上的元素之和,请填空。ma

9、in() int a33=1,3,5,7,9,11,13,15,17,sum=0,i,j; for(i=0;i3;i+) for(j=0;j=1); for(j=i-1;j=0;j-) printf(%d,aj);【答案】10010【说明】注意运算符“/”的两个运算数如果是整数,那么商取整数;运算符“%”是取余。7下面程序用插入法对数组a进行降序排序,请填空。main() int a5=4,7,2,5,1,i,j,m; for(i=1;i=0&maj) ; j-; =m; for(i=0;i5;i+) printf(%d,ai); printf(n);【答案】i-1 aj+1=aj aj+1【

10、说明】插入法排序的基本思路是将一个数插入到前面已排好序的有序表中,从而得到一个新的、个数增1的有序排列。8下面程序的功能是在3个字符串中找出最小的,请填空。#include #include main() char s20,str320; int i; for(i=0;i3;i+)gets(stri); strcpy(s, ); if(strcmp(str1,s)0)strcpy(s,str1); if(strcmp(str2,s)0)strcpy(s,str2); printf(%sn, );【答案】str0 s【说明】变量s用来存放最小的字符串,开始时假设第一个字符串最小。9下面程序的运行

11、结果是 (注意continue与break的作用)。#include main() char s=ABCCDA; int k;char c; for(k=1;(c=sk)!=0;k+) switch(c) case A:putchar(%);continue; case B:+k;break; default:putchar(*); case C:putchar(&);continue; putchar(#); 【答案】#&*&%【说明】(1)要注意continue与break语句的作用;(2)C语言中的多分支switch语句,“case常量表达式”只起语句标号的作用,不作判断,当找到入口标号

12、后,就一直往下执行,除非遇上break语句。10下面函数的功能是将一个字符串str的内容颠倒过来。#include main() char str80,i,j, gets(str); for(i=0, j=strlen(str) ; ij; i+, j-) k=strj;strj=stri;stri=k; puts(str);【答案】k -1【说明】变量k要先说明,j在循环开始时要指向最后一个字符,因此是字符串的长度减1。11统计数字出现的次数,请填空。#include main() int i,ch, ; for(i=0;i=0&ch=9) ; for (i=0;i10;i+) printf

13、(数字%d的出现次数是:%dn,i, ndigiti);【答案】ndigit10 ndigitch-0+【说明】(1)数组ndigit要先说明;(2)ndigitch-0+中的“ch-0”是为了将被记数的数字与记数元素的下标对应起来。三、编程题1将字符数组str2中的全部字符复制到字符数组strl中。不采用strcpy函数,复制时,0也要复制进去,0后面的字符不复制进去。【分析】该题只能将字符数组str2中的全部字符一个一个赋值到字符数组strl中。【源程序】void main() int i; char str180,str280; gets(str2); for(i=0;str2i!=0;

14、i+) str1i=str2i; str1i=0;2将输入的n个整数从小到大排序输出,再求出此n个整数中所有奇数以及所有素数的个数。【分析】该题采用了选择法排序;所谓奇数是指不能被2整除的数;所谓素数m,是指m除1以外,不能被任何数整除,数学证明也可表述为不能被2sqrt(m)中的任一个数整除。【源程序】(含运行结果)#include main() int a20,n,i,j,sum,t,prime; sum=prime=0; printf(n=); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); for(i=0;in-1;i+) for(j=i+1;j

15、aj) t=ai;ai=aj;aj=t; for(i=0;in;i+) if(ai%2=0) continue; sum+=ai; for(j=2;jsqrt(ai) prime+; for (i=0;in;i+) printf(%6d,ai); printf(nsum=%-6d prime=%-6dn,sum,prime);运行结果如下:n=1011 2 3 8 21 9 5 4 5 232 3 4 5 5 8 9 11 21 23sum=77 prime=53统计从键盘输入的20个字符中数字、字母、空格及换行符的个数。【分析】数字字符,大、小写字母字符在ASCII码表中的排列是按顺序连续递

16、增的,因此判断它们是什么字符只要控制好两端作比较即可。【源程序】(含运行结果)main() char c20; int i,s,ch,b,n; s=ch=b=n=0; for(i=0;i=0&ci=a&ci=A&ci=Z) ch+; if(ci= ) b+; if(ci=n) n+; printf(s=%d,ch=%d,b=%d,n=%dn,s,ch,b,n); 运行结果如下:at3b vcwefgiloww23s=3,ch=14,b=1,n=24编写一个程序,判断一个字符串是否为回文(回文是指正读与倒读都相同的字符串)。【分析】先找到字符串的前后两个字符(如果该字符串前后有空格字符,要注意将

17、其排除),作前后对称比较,如有不等,即不是回文,否则即为回文。【源程序】(含运行结果)#include #include main() char s81; int i,j,n; gets(s); n=strlen(s); i=0; j=n-1; while(si= ) i+; while(sj= ) j-; while(ij&si=sj) i+;j-; if(ij) printf(Non); else printf(Yesn);运行结果如下:abcdefedcbaYes5设有10个学生的成绩分别为89,90,84,78,84,67,88,92,79,73,存放在数组stu中,输出它们的平均成绩

18、aver(保留两位小数)和低于平均成绩的人数。输出样式(各占一行,无多余字符):aver=80.34 n=7【分析】此题先求出平均成绩,注意题中s的说明,如果将s说明为整型,该如何得到平均成绩?要注意输出格式与题意相符,这往往容易使读者忽略,造成考试丢分。【源程序】(含运行结果)main() int i,n=0,stu10=89,90,84,78,84,67,88,92,79,73; float s=0,aver; for(i=0;i10;i+) s=s+stui; aver=s/10; for(i=0;istui) n+;printf(aver=%5.2fnn=%dn,aver,n);运行结

19、果如下:aver=82.40n=46设有字符串:char src=Sh?e*-$i#$sAg!ir?1,s/hei%s(f)romEn23g%&land; 设计程序,统计字母或符号连续的次数n。【说明】字母或符号连续如23,32,ab,hi,?等,在ASCII表上连续。【分析】该题中所指连续是指在ASCII表上相邻。【源程序】(含运行结果)main() char str=Sh?e*-$i#$sAg!ir?1,s/hei%s(f)romEn23g%&land; int len,i,n=0; len=strlen(str); for(i=0;ilen;i+) if(stri=(stri+1+1)|

20、(stri=(stri+1-1) n+; printf(n=%dn ,n);运行结果如下:n=47找出一个二维数组中的鞍点,即该位置上的元素在该行上值最大,在该列上值最少,也可能没有鞍点。【分析】先找出一行上的最大值元素,再看此元素在该列上是否值最小。【源程序】(含运行结果)main() int i,j,k,row,col,flag1,flag2,a1010,max,maxj; printf(row=); scanf(%d,&row); printf(col=); scanf(%d,&col); for(i=0;irow;i+) for(j=0;jcol;j+) scanf(%d,&aij);

21、 flag2=0; for(i=0;irow;i+) max=ai0; for(j=0;jmax)max=aij;maxj=j; for(k=0,flag1=1;kakmaxj) flag1=0; if(flag1)printf(row=%dncol=%dnnumber=%dn,i,maxj,max); flag2=1; if(!flag2) printf(HAVE NOTn);运行结果如下:row=4col=311 12 3 4 5 6 7 8 9 12 13 10HAVE NOT8任意输入10个整数,统计其正数、零及负数的个数,井计算正数及负数各自之和,然后把统计与计算结果打印输出。【分析

22、】该题比较简单,题中用到了两个for循环,也可合并为一个for循环。【源程序】(含运行结果)main() int a10,plus,minus,zero,sump,summ,i; plus=minus=zero=sump=summ=0; for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i0)sump+=ai;plus+; else if(ai0)summ+=ai;minus+; else zero+; printf(sump=%d summ=%dn,sump,summ); printf(plus=%d minus=%d zero=%dn,plus,minus,ze

23、ro);运行结果如下:2 -3 4 -8 6 7 -12 -4 22 13sump=54 summ=-27plus=6 minus=4 zero=09编写一个程序,对标准输入文件(终端键盘)中所包含的每个字母(不分大小写)出现的次数进行统计。函数中设计一个一维数组(长度为27),前26个下标变量顺序存放AZ(ax)的出现次数,最后一个下标变量存放非字母的字符个数。【分析】该题中因为不区分大小写字母,题中用“ch-=32;”将小写字母转换为大写字母;c0中统计字母A的个数,c1中统计计字母B的个数,依此类推。【源程序】(含运行结果)#includemain() int c27,ch,i=0; f

24、or(i=0;i=a&ch=A&ch=Z) cch-65+; else c26+; for(i=0;i27;) printf(%3d,ci); i+; if(i%9=0) printf(n); 运行结果如下:abceAEFGHIJK112893IWE35I TOW902 1 1 0 3 1 1 1 31 1 0 0 0 1 0 0 00 1 0 0 2 0 0 0 1210求45矩阵中最大和最小元素,并输出其所在的行号和列号。【分析】该题可以先假设第一个元素既是最大元素也是最小元素,然后依次与其后元素比较,如果比最大元素大,记下其值与位置;如果比最小元素小,记下其值与位置。【源程序】(含运行结果)#includestdio.h main() int a45; int i,j,max,min,h1,l1,h2,l2; printf(Input 20 Number:n); for(i=0;i4;i+) for(j=0;j5;j+) scanf

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

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