第六章数组练习题
更新时间:2024-01-23 13:51: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的尾部。
正在阅读:
第六章数组练习题01-23
2013人教版语文七年级下册期末试题05-30
工会经费11-19
家长通知书02-23
2022年高考数学一轮复习第1章集合与常用逻辑用语1.1集合的概念与04-11
多肉植物分类鉴赏总结05-29
材料科学基础经典习题及答案11-03
绿色有机无公害蔬菜标准化生产示范区建设项目可行性研究报告06-15
智取鸡蛋作文500字07-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 练习题
- 数组
- 大班主题活动(我要上小学) - 图文
- 《聚焦货币》说课稿
- 人人有长处,合作力量大说课稿
- 青岛地区红色景点及其介绍 - 图文
- 人事流程手册
- 尔雅中国古代文明礼仪答案
- 2018年上海市崇明中考语文一模试卷及解析
- 高等教育学复习题及答案
- 路基工程考试试卷答案
- 概论 如何看待既要绿水青山,又要金山银山
- 北师大版二年级数学下册第二单元教案
- 工会经费自检自查报告
- 四年级英语单词表上册 人教版1-3单元
- 2014年一级建造师《市政公用工程管理与实务》精选试题
- 郑州宇通客车“节约办公,文明宇通”主题活动策划方案
- 素女经 - 九殃之子
- 人民陪审员表态发言新
- 修订版中国特色社会主义理论与实践研究课后题答案
- 事业单位考试公共基础知识 - 选词填空技巧
- 掘进工作面设计说明书