您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C语言程序设计教程第五章练习题题目
单选题1、关于数组的定义与初始化,下列哪一项是错误的()A.intarr[5]={1,2,3,4,5};B.intarr[]={1,2,3,4,5};C.intarr[5]={1,2,3};D.intarr[5]={1,2,3,4,5,6};2、在定义数组intarr[10]后,下列选项中对arr的引用正确的是()A.arr[10]B.arr[6.3]C.arr(6)D.arr[0]3、在C语言中,引用数组元素时,其数组下标的数据类型允许是()A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式4、若intarr[5]={1,2,3};则arr[2]的值为()A.1B.2C.3D.null5、在执行intarr[][3]={1,2,3,4,5,6}:语句后,arr[1][0]的值为()A.4B.1C.2D.56、关于二维数组,下列选项能正确定义并赋初值的是()A.intn=5,b[n][n];B.inta[1][2]={{1},{3}};C.intc[2][]={{1,2},{3,4}};D.inta[3][2]={{1,2},{3,4}};7、阅读下列程序段:chars[18]=abook!;printf(%.4s\n,s);其输出结果为()A.abook!B.abookC.aboD.a8、阅读下列程序:inta[4][4]={{1,3,5,},{2,4,6},{3,5,7}};printf(%d%d%d%d\n,a[0][0],a[1][1],a[2][2],a[3][3]);正确的输出结果为()A.0650B.1470C.5430D.输出值不定9、阅读下面程序:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};for(i=0;i4;i++)printf(%3d,x[i][3-i]);下列选项中哪一项是正确的输出结果()A.15913B.161116C.471013D.48121610、下列描述中不正确的是()。A.字符型数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对整型数组进行整体输入、输出D.不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值11、以下定义语句中,错误的是()。A.inta[]={1,2};B.char*a[3];C.chars[10]=test;D.intn=5,a[n];12、下列选项中,合法的数组定义是()。A.inta[]=string;B.inta[5]={0,1,2,3,4,5};C.chars=string;D.chara[]={0,1,2,3,4,5};13、int类型变量在内存中占用四个字节,其有定义:intx[10]={0,2,4};那么数组x在内存中所占字节数是()。A.3B.10C.12D.4014、C语言中数组下标的下限是()。A.1B.0C.视具体情况D.无固定下限15、以下程序的输出结果是()。voidmain(){inti,a[10];for(i=9;i=0;i--)a[i]=10-i;printf(%d%d%d,a[2],a[5],a[8]);}A.258B.741C.852D.36916、若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;那么数值为4的表达式是()。A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]17、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为()。A.该数组的长度B.该数组的元素个数C.该数组中各元素的值D.该数组的首地址18、当调用函数时,实参是一个数组名,则向函数传送的是()。A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值19、以下程序的输出结果是()。voidmain(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(%d%d%d%d\n,a[0][3],a[1][2],a[2][1],a[3][0];}A.0650B.1470C.5430D.输出值不定多选题1、关于数组类型的定义,下列描述中正确的是()A.数组的大小一旦定义就是固定的B.一个数组中的各元素类型可以不一样C.数组的下标类型为整型D.数组元素的下标从1开始2、下面对数组描述正确的是()A.数组的长度是不可变的B.数组不能先声明长度再不赋值C.数组只能存储相同数据类型的元素D.数组没有初始值判断题1、在C语言中,只有一维数组和二维数组()。2、数组的索引是从1开始的()。3、数组属于构造类型的数据()。4、数组名的命名较为特别,它不符合标识符的命名规范()。5、数组在初始化时不可以只赋值一部分,必须全部赋值初始化()。6、对于一维数组,例如intarr[3];则arr[2]表示数组的第2个元素()。7、数组的下标范围是0-[数组长度-1]()。8、二维数组进行定义与初始化时,行下标与列下标均不能省略()。9、在程序设计中,一组具有相同数据类型的变量集合称为数组()。10、数组元素的下标用于表示元素在数组中的位置序号,该下标是从1开始的()。11、数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等()。12、一维数组指的是只有一个下标的数组,用来表示一组具有相同类型的数据()。13、数组初始化的常见方式有三种:直接对数组中的所有元素赋值、只对数组中的一部分元素赋值、对数组全部元素赋值但不指定长度()。14、数组中的元素可以通过数组名和下标来引用()。15、数组的下标都有一个范围,即“0~数组长度”()。16、初始化二维数组时,如果对全部数组元素置初值,则二维数组的第一个下标可省略,但第二个下标不能省略()。填空题1、C语言中数组名代表数组的()地址。2、数组是一组具有()类型的数据的集合。3、对于二维数组intarr[3][4],其中3为()下标,4为()下标。4、若定义二维数组intarr[5][6];则数组的列下标的取值范围为()。5、二维数组是通过数组名和()来引用其元素的。6、C语言中数组必须先()再使用。7、二维数组的定义格式为()。8、一维数组指的是只有一个()的数组,用来表示一组具有相同类型的数据。9、数组的下标是用()括起来的,而不是圆括号。10、假设定义一个3行4列的二维数组,那么共包含()个元素。11、二维数组同一维数组一样,也是通过()和下标的方式来引用数组元素。12、假设定义数组inta[3][4],数组a可用的行下标范围是(),列下标范围是()。简答题1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。voidmain(){inti;chararr[5]={'h','e','l','l','o'};for(i=0;i5;i++)printf(%c,arr[i]);}2、请阅读下面的程序,在空白处填写正确的代码,只打印出数组偶数位上的元素。intmain(){inti;intarr[8]={1,0,1,0,1,0,1,0};for(i=0;i8;i++){;printf(%d\n,arr[i]);}return0;}3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。voidmain(){floatarr[6]={1.1,2.2,3.3,4.4,5.5,6.6};inti,t;t=arr[0];for(i=0;i5;i++)arr[i]=arr[i+1];arr[5]=t;for(i=0;i6;i++)printf(%-6.2f,arr[i]);}4、请阅读下面的程序,在空白处填写正确的代码,输出数组中最大元素的下标。intmain(){inti,p;intarr[]={1,-3,0,-9,8,5,20,3};for(i=0,p=0;i8;i++){if();}printf(p=%d\n,p);return0;}5、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:删除字符串s中的所有数字字符。voiddele(char*s){intn=0,i;for(i=0;s[i];i++)if(_______)s[n++]=s[i];s[n]=_______}6、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:在一个初始化数组中查找与x相同的元素,如果找到就将该元素置为-x。voidmain(){inta[]={8,4,2,7,3,9},i,x;scanf(%d,&x);for(i=0;_______;i++)if(a[i]==x)_______for(i=0;i6;i++)printf(%d,a[i]);}7、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:计算str所指字符串的长度,并作为函数值返回。intmystrlen(char*str){inti;for(i=0;_______!='\0';i++);return_______;}8、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:在5个数中,找出最大的元素及位置。#definesize5voidmain(){inta[size]={4,6,3,9,23};intmax,p,i;_______p=0;for(i=1;isize;i++)if(a[i]max){max=a[i];_______}}9、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:对N个数用直接插入排序法进行由小到大排序。#defineN10//待排序元素的个数voidinsertsort(intR[N+1])//直接插入排序{inti,j;for(i=2;i=N;i++){R[0]=R[i];//设置监视哨j=i-1;while(_______){R[j+1]=R[j];_______}R[j+1]=R[0];}}10、定义一个大小为10的char类型数组,从键盘输入其元素,然后将其倒序输出。11、定义一个大小为10的int类型数组,从键盘输入其元素,然后将其从小到大排序后输出。12、定义一个大小为10的int类型数组,从键盘输入其元素,然后输出其中最大值。13、定义一个二维数组intarr[3][4]={12,2,45,36,2,10,86,0,54,666,58,400};将数组中的元素按每一行每一列输出;14、有一个二维整型数组,每一行都有一个最大值,编程求出每一行的最大值;15、请简要说明如何定义一个一维数组并为之赋值。16请简要说明一维数组与二维数组的区别。17简要描述数组有哪些特点。18请简述什么是数组。19请简述什么是多维数组的维数。
本文标题:C语言程序设计教程第五章练习题题目
链接地址:https://www.777doc.com/doc-2909003 .html