第六章数组练习题
更新时间:2024-04-09 04:43:01 阅读量: 综合文库 文档下载
- 第六章数组课后答案推荐度:
- 相关推荐
第六章 数组练习题
一、选择题
1、 在C语言中,引用数组元素时,其数组下标的数据类型允许是( ) A. 整型常量 B. 整型表达式
C. 整型常量或整形表达式 D. 任何类型的表达式 2、 若有说明:int a[10];则对数组元素的正确引用是( ) A. a[10] B. a[3.5] C. a(5) D. a[10-10] 3、 以下对一维整型数组a的定义正确是() A. int a() B. int n,a[10]; C. int n; D. int n;
4、 以下能对一维数组a进行正确初始化的语句是( ) A. int a[10]=(0,0,0,0,0) B. int a[10]={}
C. int a[ ]={0}; D. int a[10]={10*1}; 5、 以下叙述中错误的是 ( C )
A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B. 数组名代表的是数组所占存储区的首地址,其值不可改变
C. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出
“下标越界”的出错信息
D. 以通过赋初值的方式确定数组元素的个数
6、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( D )。
A. 3 B. 6 C. 10 D. 20 7、有如下程序
main()
{ int n[5]={0,0,0},i,k=2; for(i=0;i 该程序的输出结果是( D )。 A. 不确定的值 B. 2 C. 1 D. 0 8、以下程序的输出结果是( B ) main() { int i, a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf(“%d%d%d”,a[3],a[6],a[9]); } A. 258 B. 761 C. 852 D. 369 9、以下对二维数组a的正确说明是( ) A. int a[3][ ]; B. float a(3,4) C. double a[1][4]; D. float a(3)(4) 10、以下不能对二维数组进行正确初始化的是( ) A. int a[2][3]={0}; B.int a[ ][3]={{1,2},{0}} C. int a[2][3]={{1,2},{3,4},{5,6}}; D. int a[ ][3]={1,2,3,4,5,6} 11、若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是(D) A. a[2][!1] B. a[2][3] C. a[0][3] D. a[1>2][ !1] 12、有以下程序 main() {int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t; for(i=0;i<3;i++) for(k=i+i;k<4;k++) if(a[i][i] 程序运行后的输出结果是(B) A.6,2,1,1, B. 6,4,3,2, C. 1,1,2,6, D. 2,3,4,6, 13、以下程序的输出结果是(B) main() { char cf[3][5]={\printf(\} A. \ B. \ C. \ D. \14、设有数组定义:char array[]=“china”,则数组array所占的空间为( ) A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 15、当执行下面的程序时,如果输入ABC,则输出结果是( ) #include {char ss[10]=“1,2,3,4,5”; gets (ss); stract(ss,”6789”); printf(“%s\\n”,ss);} 16、为了判断两个字符串str1和str2是否相等,应当使用( ) A. if(str1==str2) B. if(str1=str2) C. if(strcmp(str1,str2)) D. if(strcmp(str1,str2)==0) 17、以下程序运行后的输出结果是( ) main() {char str[][9]={“hello”, “student”, “computer” }; printf(“%s\\n”,str[1]);} A. h B. hello C. student D. computer 18、以下程序的输出结果是( ) void main() {char k, w[][10]={“ABCD”,“EFGH”,“IJKL”,“MNOP”}; for(k=1;k<3;k++) printf(“%s\\n”,w[k]); } A. ABCD B. ABCD C. EFG D. EFGH 19、以下程序的输出结果是( ) void main( ) {char arr[2][4]; strcpy(arr[0],“you”); strcpy(arr[1],“me”); arr[0][3]=?&?; printf(“%s\\n”,arr); } A.you&me B.you C.me D.err 20、以下对一维整型数组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]; 21、若有说明:int a[3][4]={0};则下面正确的叙述是 。 A. 只有元素a[0][0]可得到初值0 B. 此说明语句不正确 C. 数组a中各元素都可得到初值,但其值不一定为0 D. 数组a中每个元素均可得到初值0 22、若有说明:int a[][4]={0,0};则下面不正确的叙述是 。 A. 数组a的每个元素都可得到初值0 B. 二维数组a的第一维大小为1 C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的 行数为1 D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 23、下面是有关C语言字符数组的描述,其中错误的是(D) A.不可以用赋值语句给字符数组名赋字符串 B.可以用输入语句把字符串整体输入给字符数组 C.字符数组中的内容不一定是字符串 D.字符数组只能存放字符串 24、下面是对s的初始化,其中不正确的是 。 A. char s[5]={“abc”}; B. char s[5]={?a?,?b?,?c?}; C. char s[5]=” ”; D. char s[5]=”abcdef”; 25、有两个字符数组a,b,则以下正确的输入语句是 。 A. gets(a,b); B. scanf(“%s%s”,a,b); C. scanf(“%s%s”,&a,&b); D. gets(“a”),gets(“b”); 26、对两个数组a和b进行如下初始化: char a[] = “ABCDEF”; char b[] = {?A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是: A. a与b完全相同 B. a与b长度相同 C. a与b中都存放字符串 D. a数组比b数组长度长 27、当运行以下程序时输入三行,每行都是在第一列上开始, 键。 #include { char c[N]; int i = 0; for(i = 0; i < N; i++) c[i] = getchar(); for(i = 0; i < N; i++) putchar(c[i]); } a 则程序的输出结果是: A. abcdef B. a C. a D. a 28、以下程序段的输出结果是( ) pritnf(“%d\\n”, strlen(“ATS\\n012\\1\\\\”)); A. 11 B. 10 C. 9 D. 8 29、有以下程序 main() { char a[ ]={?a?,?b?,?c?,?d?,?e?,?f?,?g?,?h?,?\\0?}; int i,j; i=sizeof(a); j=strlen(a); printf(“%d,%d\\b”i,j); } 程序运行后的输出结果是( ) A. 9,9 B. 8,9 C. 1,8 D. 9,8 30、已有定义:char a[]=\,以下叙述中正确的是( ) A. 数组a和b的长度相同 B. a数组长度小于b数组长度 C. a数组长度大于b数组长度 D. 上述说法都不对 二、填空题 1、 下面程序的功能是把以下给定的字符读入数组str1中,并输出行列号之和是 2的数组元素。 void main() {char str[4][3]={?A?,?b?,?c?,?d?,?E?,?f?,?G?,?h?,?I?,?j?, ?K?,?i?}; int x,y,z; for(x=0;x<4;x++) for(y=0;_______ y++) {z=x+y; if(_________) printf(“%c\\n”,str[x][y]); } 2、 若有定义:double x[3][5];则x数组中行下标的下限为_________,列下标的 上限为_________. 3、 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2] 得到的初值是_________,a[2][1]得到的初值为_________。 4、 下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main() {int a[N],i; for(i=0;i {if (_____________) _____________ printf(\ } printf(\} 5、 下面程序可求出矩阵a的主对角线上的元素之和,请填空。 main() { int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(_____) sum=sum+_______; printf(\} 6、 以下程序的输出结果是 。 main() { int arr[10], i, k = 0; for(i = 0; i < 10; i++) arr[i] = i; for(i = 0; i < 4; i++) k += arr[i] + i; printf(“%d\\n”, k); } 7、 给出以下程序,其功能是将a矩阵和b矩阵合并成c矩阵,最后将c矩阵按 格式输出。请填空。 3 1 7 5 2 3 1 4 5 4 8 9 a = b= c = 1 2 4 3 5 1 3 6 6 3 7 9 #include { int a[3][4] = {{3, 1, 7, 5},{1, 2, 4, 3},{6, 3, 0, 2}}; int b[3][4] = {{2, 3, 1, 4},{5, 1, 3, 6},{1, 5, 2, 3}}; int i, j, c[3][4]; for(i = 0; i < 3; i++) for(j = 0; j < 4; j++) c[i][j] = ; for(i = 0; i < 3; i++) { for(j = 0; j < 4; j++) pritnf(“]”, c[i][j]); ; } } 8、 在C语言中,二维数组的元素在内存中的存放顺序是 。 9、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。 #include { char a[]=\ int i, j, k; k=strlen(a); for(i=0; i<=k-2; i+=2) for(j=i+2; j<=k; j+=2 ) if { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(\ } 10、函数调用:strcat(strcpy(str1,str2),str3)的功能是 三、程序阅读题 1、写出下面程序的运行结果。 main ( ) { int a[6][6],i,j ; for (i=1; i<6 ; i++) for (j=1 ; j<6 ; j++) a[i][j]=(i/j)*(j/i) ; for (i=1;i<6 ; i++) { for (j=1 ; j<6 ; j++) printf(“-”,a[i][j]) ; printf(“\\n”); } } 2、写出下面程序的运行结果。 main ( ) { int i=0; char a[ ]=”abm”, b[ ]=”aqid”, c[10]; while (a[i]!=?\\0? && b[i]!=?\\0?) { if (a[i]>=b[i]) c[i]=a[i]-32 ; else c[i]=b[i]-32 ; i++; } c[i]=?\\0?; puts(c); } 3、当运行下面程序时,从键盘上输入AabD↙,则写出下面程序的运行结果。 main ( ) { char s[80]; int i=0; gets(s); while (s[i]!=?\\0?) { if (s[i]<=?z? && s[i]>=?a?) s[i]=?z?+?a?-s[i] ; i++; } puts(s); } 4、写出下面程序的运行结果。 main ( ) { int i,c; char s[2][5]={“8980”,”9198”}; for (i=3; i>=0 ; i--) { c=s[0][i]+s[1][i]-2*?0?; s[0][j] = c % 10 + ?\\0? ; } for (i=0; i<=1; i++) puts(s[i]); } 5、当运行下面程序时,从键盘上输入7 4 8 9 1 5↙,则写出下面程序的运行结果。 main ( ) { int a[6],i,j,k,m; for (i=0 ; i<6 ; i++) scanf (“%d”,&a[i]); for (i=5 ; i>=0; i--) { k=a[5]; for (j=4; j>=0; j--) a[j+1]=a[j] ; a[0]=k; for (m=0 ; m<6 ; m++) printf(“%d ”,a[m]); printf(“\\n”); } } 6、以下程序运行后的输出结果是 _______ 。 main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}}; int i=0,j=0,s=0; while(i++<4) { if(i==2||i==4) continue; j=0; do{ s+= a[j]; j++; } while(j<4); } printf(\\\n\ } 7、有以下程序 ,程序运行后的输出结果是 main() { int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf(“%d,”,a[i][j]); } 8、有以下程序运行后的输出结果是 #include main() {int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=1;j++) t+=b[i][b[j][i]]; printf(\ } 9、下面程序运行后的输出结果是 main() { char s[]=\int v1=0,v2=0,v3=0,v4=0,k; for(k=0;s[k];k++) switch(s[k]) { default:v4++; case '1': v1++; case '3': v3++; case '2': v2++; } printf(\ 10、当运行以下程序时,输入abcd,程序的输出结果是: 。 main() {char str[40]; int i; scanf(“%s”,str ); i=strlen(str); while(i>0) { str[2*i]=str[i]; str[2*i-1]='*';i--;} printf(“%s\\n”,str); } 四、编程题 1、用选择法对10个整数排序。 2、有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。 3、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,中文字母,中文字符,数字,空格及其他字符的个数。(提示:中文字符是两个字节,且数值均大于128的字符)。 4、对三人的四门课程分别按人和科目求平均成绩,并输出包括平均成绩的二维成绩表。 5、提高题:将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。 6、提高题:打印出杨辉三角形(要求打印出10行,课本P141页7.6) 7、提高题:编写程序: (1)求一个字符串S1的长度; (2)将一个字符串S1的内容复制给另一个字符串S2; (3)将两个字符串S1和S2连接起来,结果保存在S1字符串中; (4)搜索一个字符在字符串中的位置(例如:?I?在”CHINA”中的位置为3)。如果没有搜索到,则位置为-1。 (5)比较两个字符串S1和S2,如果S1>S2,输出一个正数;如果S1=S2,输出0;如果S1 以上程序均使用gets或puts函数输入,输出字符串。不能使用string.h中的系统函数。 8、定义一个可以存放10个元素的int数组a,输入10个数,并逆序输出。 9、用数组来保存Fibonacci数列前20项数值,每5个数据为一行进行输出。 10、统计具有10个元素的自然数数组num中的奇数个数。 11、下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之 间以空格分开。 12、编程实现从键盘任意输入20个整数,统计非负数个数,并计算非负数之和。 13、编程将下列矩阵中的元素向右移动一列,最右一列移至第一列。 1 4 6 8 10 12 14、不用函数strcat(),编程实现字符串连接函数strcat()的功能,将字符串srcStr 连接到字符串dstStr的尾部。
正在阅读:
第六章数组练习题04-09
澳大利亚457雇主担保移民常见问题06-11
2015-2016学年广州版初中英语八年级英语下册期中期末复习资料(精品推荐)09-17
促消费惠民生守诚信倡低碳——2012年全国(上海)消费促进月启动04-23
宏观经济学复习资料 - (1)09-09
县市场监督管理局最新年终工作总结与2022工作计划精选范例04-23
关于讲卫生的好故事11-20
关于2021年工作谋划和工作总结08-08
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 练习题
- 数组
- 在县第十五届人大常委会三次会议上的讲话
- 2018-2024年中国大型购物中心行业市场需求预测研究报告(目录)
- 四年级英语单词表上册 人教版1-3单元
- 青岛地区红色景点及其介绍 - 图文
- 人事流程手册
- 掘进工作面设计说明书
- 乘数模型-加速数原理对于我国商业周期波动的相关分析
- 海南省自然灾害及其防治
- 药理学名词解释
- 北京文化名人故居的现状与开发调研 - 图文
- 郑州宇通客车“节约办公,文明宇通”主题活动策划方案
- 人人有长处,合作力量大说课稿
- 房西苑在淄博第五届房地产高层峰会上的报告-房地产项目融资
- 修订版中国特色社会主义理论与实践研究课后题答案
- 风险隐患排查工作总结
- 2010年深圳市高三年级第二次调研考试(数学文)word版
- 第五章 习题与思考题
- 事业单位考试公共基础知识 - 选词填空技巧
- 《公安机关刑事案卷立卷规范(2014版)》
- QP-014市场质量信息处理程序