您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计学习指导与练习提高-高级版
第2章程序的灵魂—算法1第7章数组一、选择题1.以下对一维整型数组a的说明正确的是______。A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10scanf(%d,&n);inta[SIZE];inta[n];2.有定义inta[10];则对a数组元素的正确引用是______。A.a[10]B.a[3.5]C.a(5)D.a[10-10]3.以下对一维数组a进行正确初始化的语句是______。A.inta[10]=(0,0,0,0,0);B.inta[10]={};C.inta[]={0};D.inta[2]={10,9,8};4.对以下说明语句的正确理解是______。inta[10]={6,7,8,9,10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值的个数不相同,所以此语句不正确5.若有以下说明,则数值为4的表达式是______。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c]6.定义如下数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是______。for(i=0;i3;i++)printf(%2d,x[i][2-i]);A.159B.147C.357D.3697.执行下面的程序段后,变量k中的值为______。intk=3,s[2];s[0]=k;k=s[1]*10;A.不定值B.33C.30D.108.合法的数组说明语句是______。A.inta[]=string;B.chara[]=string;C.chara=string;D.chara[5]={'0','1','2','3','4','5'};9.下述对C语言字符数组的描述中错误的是______。A.字符数组可以存放字符串B.字符数组中的字符串可以整体输入、输出C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值第2章程序的灵魂—算法2D.不可以用关系运算符对字符数组中的字符串进行比较10.下列说法中错误的是______。A.构成数组的所有元素的数据类型必须相同B.一维数组元素的下标从1开始C.引用数组元素时下标可以越界,但下标越界的元素的值不确定D.数组元素的下标可以是整型表达式11.不能把字符串Hello!赋给数组b的语句是______。A.charb[10]={'H','e','l','l','o','!','\0'};B.charb[10];b=Hello!;C.charb[10];strcpy(b,Hello!);D.charb[10]=Hello!;12.设有数组定义:chararray[]=China;则数组array所占的空间为______。A.4个字节B.5个字节C.6个字节D.7个字节13.给出以下定义:charx[]=abcdefg;chary[]={'a','b','c','d','e','f','g'};则正确的叙述为______。A.数组X和数组Y等价B.数组x和数组Y的长度相同C.数组X的长度大于数组Y的长度D.数组X的长度小于数组Y的长度14.语句“printf(%d\n,strlen(ats\no12\1\\));”的输出结果是______。A.11B.10C.9D.815.函数调用“strcat(strcpy(str1,str2),str3)”的功能是______。A.将字符串str1复制到字符串str2中后再连接到字符串str3之后B.将字符串str1连接到字符串str2之后再复制到字符串str3之后C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中16.以下数组定义中不正确的是______。A.inta[2][3];B.intb[][3]={0,1,2,3};C.intc[100][100]={0};D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};17.以下程序的输出结果是______。main(){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.输出值不定18.执行以下程序:main(){charstr[13];scanf(%s,str);printf(%s\n,str);}若输入数据为:abcd1234efgh回车,则程序的输出结果是______。A.abcdB.abcd1234efghC.abcd1234D.abcd1234efgh19.有以下程序#includestdio.h#defineN6main(){charc[N];inti=0;for(;iN;i++)c[i]=getchar();第2章程序的灵魂—算法3for(i=0;iN;i++)putchar(c[i]);}输入如下3行,每行输入都是在第一列上开始,CR代表一个回车符:1CR2CR345CR程序的输出结果是______。A.12345B.1C.1D.122233434520.已知有数组定义如下:chara[10],b[10];能表示a和b数组中存放的字符串相等的表达式为______。A.a[10]==b[10]B.a==bC.strcmp(a,b)==0D.strcmp(a,b)!=0重点、难点例题选解1.以下程序的输出结果是______。main(){charst[20]=Hello\0Bye\t\\;printf(%d,%d\n,strlen(st),sizeof(st));}A.5,5B.5,20C.11,20D.14,20[解析]本题考查对于字符串结束符的理解,字符串是以字符'\0'为结束标志的,所以在以上程序中给字符数组赋值时,只有前5个保存在数组中,数组的有效长度为5个字符。定义时数组st的大小为20,所以st所占空间大小为20(sizeof为单目运算符,用来求数据所占字节数)。2.以下叙述正确的是______。A.一个数组能够存储许多不同类型的值。B.数组的下标不可以是float数据类型。C.引用数组的某个特定的存储单元(即元素)需要指明数组名和该元素的值。D.初始化列表中的初始化值个数多于数组元素的个数是错误的。[解析]C语言的数组具有“有限、有序、同类”的特点,即“定义数组时,数组的个数必须是确定的,每个数组元素的下标值是从0开始依次递增1的,且存储单元也是连续的,每个数组元素的数据类型是相同的。”当下标为float型时,系统自动取整后再处理。指明数组名和该元素的下标值即可引用数组的某个特定的存储单元(即元素)。初始化列表中的初始化值个数可以少于或等于数组元素的个数,当少于时,只给前面元素赋相应值,余下的元素值则均为0。提高题一、选择题1.有定义“inta[3]={1,2,3};”,执行“printf(%d\n,a[-2]);”时,输出结果为______。A.-2B.报错C.不定值D.0第2章程序的灵魂—算法42.以下不能对二维数组a进行正确初始化的语句是______。A.inta[2][3]={1};B.inta[][3]={{1},{2}};C.inta[2][3]={{1},{2},{3}};D.inta[][3]={1,2,3,4,5,6};3.下列语句中,正确的是______。A.chara[3][]={'abc','1'};B.chara[][3]={'123','1'};C.chara[3][]={a,1};D.chara[][3]={a,1};4.若二维数组a有m列,则在存储其中的某一元素a[i][j]之前有______个数组元素。A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+15.以下程序段的运行结果是______。charc[5]={'a','b','\0','c','\0'};printf(%s,c);A.abB.'a''b'C.ab\0c\0D.ab\0c第8章函数一、选择题1.C语言可执行程序的开始执行点是。A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数2.对C语言函数体的描述中,下面是正确的。BA.可以定义和调用其它函数;B.可以调用但不能定义其它函数;C.不可调用但可以定义其它函数;D.不可调用及定义其它函数。3.以下叙述中正确的是。A.C程序须由一个以上的函数组成B.C函数既可嵌套定义又可递归调用C.函数须有返回值,否则不能调用D.有调用关系的函数须在一个文件中4.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则。A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用5.函数返回值的类型应由决定。A.return中的表达式类型B.调用该函数的主调函数类型C.定义函数所指定的类型D.实参类型6.以下叙述中不正确的是。A.一个函数中可以有多个return语句B.函数通过return语句传回函数值C.主函数可以有形参D.调用函数须独立语句完成7.C语言中实参和形参之间的数据传递实质上是传递。A.地址B.值C.互传D.用户指定8.在下面有关函数间传递数据的四种方式中,不能把被调用函数的数据带回到主调函数中的是。A.地址传递B.值传递C.返回值传递D.全局外部变量9.以下叙述中不正确的是。第2章程序的灵魂—算法5A.形参的值不能传给实参B.最好使用全局变量C.形参只局限于所在函数D.函数名的存储类别是外部存储类别10.数组名作为参数传递给函数,作为实在参数的数组名被处理为。A.该数组的长度;B.该数组的元素个数;C.该数组中各元素的值;D.该数组的首址。11.下面函数的类型是。ff(floatx){printf(“%d\n”,x*x);}A.与形参x的类型相同B.void类型C.int类型D.无法确定12.、退出循环而不终止函数的执行的有效方法是。A.breakB.continueC.returnD.exit13.对变量作用域的正确描述是。A.仅限于本程序B.只和变量的类型有关C.和程序运行的过程有关D.取决于变量定义的位置和存储类型14.函数调用:strcat(strcpy(str1,str2),str3)的功能是。A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3中15.若对一个函数执行在先,说明在后,C语言将视其返回值为。A.非法B.无返回值C.浮点值D.整型值16.C语言中函数的隐含存储类别是。A.autoB.staticC.externD.无存储类别.以下叙述中不正确的是。A.实形参只须赋值相容B.形参只能是auto,register类型C.外部变量的隐含类别是外部存储类别D.函数中赋初值的变量每调用一次赋一次初值18.以下叙述中不正确的是。DA.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效19.在整个源文件中都有效的变量在定义.A.第一个函数中B.第一个函数前C.主函数中D.函数中静态变量20.对于extern变量和static型变量的初始化。A.在编译时进行;B.在程序开始运行时进行;C.在程序运行过程中使用到它们时进行;D.
本文标题:C语言程序设计学习指导与练习提高-高级版
链接地址:https://www.777doc.com/doc-3262412 .html