1_c题库最新导出20170705

更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
C语言中下列叙述正确的是______。A:不能使用do-while语句构成循环B:do-while语句构成的循环,必须用break语句才能退出C:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D:do-while语句构成的循环,当while语句中的表达式值为零时结束循环评析:知识点:知识点/选择题/C5循环结构程序设计/循环基本概念T96、以下选项中属于C语言的数据类型是______。A:复数型B:逻辑型C:双精度型D:集合型评析:知识点:知识点/选择题/C2基本数据类型及表达式/基本数据类型T97、下列描述中不正确的是______。A:字符型数组中可以存放字符串B:可以对字符型数组进行整体输入、输出C:可以对整型数组进行整体输入、输出D:不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值评析:知识点:知识点/选择题/C7数组/数组基本概念98、以下程序的输出结果是______。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}A:10192B:9876C:10990D:101091评析: 知识点:知识点/选择题/C5循环结构程序设计/FOR循环结构T99、以下程序的输出结果是______。main(){chara[10]={1','2','3','4','5','6','7','8','9',0},*p;inti;i=5;p=a+i;printf("%s\n",p-1);}A:5B:56789C:5'D:"56789"评析:知识点:知识点/选择题/C8指针/指针与字符数组T100、能正确表示a和b同时为正或同时为负的表达式是______。A:(a>=0||b>=0)&&(a=0)&&(a
以下程序的输出结果是______。#include#includemain(){charb1[8]="goddwer",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf("%d\n",strlen(b2));}A:8B:3C:1D:7评析:知识点:知识点/选择题/C8指针/【499、若有以下定义:structlink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如图所示的链表结构:a bdatanext datanext┌─────┐ ┌─────┐│ | │ │ | ││5|------→│9| ││ | │ │ | │└─────┘ └─────┘cdatanext┌─────┐│ | ││7| ││ | │└─────┘↑q指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是______。A:a.next=c;c.next=b;B:p.next=q;q.next=p.next;C:p->next=&c;q->next=p->next;D:(*p).next=q;(*q).next=&b;评析:知识点:知识点/选择题/C9结构体与共用体/链表T500、设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是______。 A:PER是结构体变量名B:PER是结构体类型名C:typedefstruct是结构体类型D:struct是结构体类型名评析:知识点:知识点/选择题/C9结构体与共用体/typedef的应用T501、已有定义:intx=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是______。A:6B:0C:2D:1评析:知识点:知识点/选择题/C4选择结构程序设计/表达式运算T502、有以下程序main(){charp[]={a','b','c'},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序运行后的输出结果是______。A:44B:33C:34D:43评析:知识点:知识点/选择题/C7数组/字符数组内存分配及串长度T503、有以下程序#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序运行后的输出结果是______。A:64,28B:4,4C:4,3
给定程序modi.c中,函数fun的功能是:求出以下分数序列的前n项之和。和值通过函数值返回main函数。23581321─,─,─,─,─,─,……1235813例如,若n=5,则应输出:8.391667。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题着重考察考生对C语言中一些简单算法的掌握情况。本题中的第一个错误:fun函数返回的应为float或double型,所以程序中语句"fun(intn)"应改为"doublefun(intn)"或相同作用的语句。本题中的第二个错误:C语言中关键词应为小写,所以程序中语句"s=s+(Double)a/b;"应改为"s=s+(double)a/b;"或相同作用的语句。本评析仅作参考。知识点:知识点/C程序修改18、 给定程序modi.c中fun函数的功能是:计算1+2+3+……+n的和值。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题着重考察考生对C语言中递归算法的掌握情况。本题中的第一个错误:由主函数中可得,fun函数应返回一个float或double型的值,所以程序中语句"fun(intn)"应改为"floatfun(intn)"或相同作用的语句。本题中的第二个错误:由题意可知,求1到n的和,当n为1时,和为1,不断递归,以此求出当n为n时的和值,所以程序中语句"if(n==0)"应改为"if(n==1)"。本评析仅作参考。知识点:知识点/C程序修改19、 给定程序modi.c中,函数fun的功能是:把n个数,按由大到小排序。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题着重考察考生对C语言中一些简单算法的掌握情况。本题中的第一个错误:变量a是指向一维数组的,应定义成一维数组或指针变量,所以程序中语句"voidfun(inta,intn)"应改为"voidfun(int*a,intn)"或相同作用的语句。本题中的第二个错误:由题意可知,应将数组中的数由大到小排列,变量k记录大数的下标,当a[i]>a[k]时将下标i赋给k,所以程序中语句"if(a[i]a[k])k=i;"或相同作用的语句。本评析仅作参考。知识点:知识点/C程序修改20、 给定程序modi.c中,函数fun的功能是:求两数平方根之和,作为函数值返回。例如,输入12和20,输出结果是:y=7.936238。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题的考核点是C语言中函数的入口参数的用法。本题中的第一个错误:函数的参数表是由逗号分隔的变量表,变量表由变量类型和变量名组成,与普通的变量说明不同,函数参数必须同时具有变量类型和变量名,程序中"doublefun(double*a,*b)"语句第二个函数参数没有变量类型,是错误的,应该改为"doublefun(double*a,double*b)"或相同作用的语句。本题中的第二个错误:a、b为指针地址,应引用它们的值*a、*b,所以程序中语句"c=sqr(  )+sqr(  );"应改为"c=sqrt(*a)+sqrt(*b);"或相同作用的语句。本评析仅作参考。知识点:知识点/C程序修改21、 给定程序modi.c中,函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中。例如,输入的数为:551234,输出结果应当是:a=55.0,b=34.0,c=12.0。请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题着重考察考生对C语言中一些简单算法的掌握情况。本题中的第一个错误:由程序可知,变量k应为一个简单变量,它是用来交换两个数的值,所以程序中语句"float*k;"应改为"floatk;"本题中的第二个错误:程序中应使得*p中的数最大,*s中的数最小,当*s中的数大于*p的值时,应交换二者的值,所以程序中语句"if(*s*p)"或相同作用的语句。本评析仅作参考。知识点:知识点/C程序修改22、 给定程序modi.c中函数fun的功能是:输入两个双精度数,函数返回它们的平方根的和。例如输入:22.993612和84.57629812,输出为:y=13.991709。请改正fun函数中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题的考核点是函数的入口参数和指针的使用。C语言中,函数的参数表是由逗号分隔的变量表,变量表由变量类型和变量名组成,因此函数参数必须同时具有变量类型和变量名。原程序"doublefun(double*a,*b)"语句第二个函数参数没有说明变量类型,是错误的,应改为"doublefun(double*a,double*b)"。C语言中,求平方根的函数为:"doublesqrt(doublex)"。题目程序里a和b都是一个double类型的指针变量,它们实际上代表的只是一个地址,这个地址指向一个double类型数据,而"doublesqrt(doublex)"函数的参数为一个double类型数据,所以原程序"c=sqrt(  )+sqrt(  );"语句是错误的,应在a和b前加*,改为"c=sqrt(*a)+sqrt(*b);"或相同作用的语句。本评析仅作参考。知识点:知识点/C程序修改23、 给定程序modi.c中函数fun的功能是:实现两个整数的交换。例如给a和b分别输入:60和65,则输出为:a=65b=60。请改正fun函数中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:本题的考核点是函数的入口参数和基本算法。函数的参数表是由逗号分隔的变量表,变量表由变量类型和变量名组成,与普通的变量说明不同,函数参数必须同时具有变量类型和变量名,程序"voidfun(inta,b)"语句中第二个函数参数没有变量类型,是错误的;另外,从主函数里的"fun(&a,&b);"语句可以看出,fun函数的两个参数应为整型指针。综上所述,应该把"voidfun(inta,b)"语句改为"voidfun(int*a,int*b)"或相同作用的语句。所以fun函数里的"t=b;b=a;a=t;"语句也是错误的,应该改为"t=*b;*b=*a;*a=t;"或相同作用的语句。本评析仅作参考。知识点:知识点/C程序修改24、 文件modi.c中程序的功能是:读入一个整数m,计算如下公式的值。t=1-1/2-1/3-……-1/m例如,若输入5,则应输出-0.283333。请改正程序中的错误,使它能计算出正确的结果。注意:不得增行或删行,也不得更改程序的结构!评析:本题的考核点是C语言中循环语句的使用。对于复杂的计算公式,我们应先找出其中的规律,将其简化,然后用循环、条件判断等将其归纳为一种算法,进而编出程序解决问题。t=1-1/2-1/3-...-1/m,可以简化为:mt=1-∑1/ii=2所以在for循环中,如果t的初始值为1.0,则上式即可表示为:t=t-1.0/i(i从2循环到m)。所以应该把原 程序中的"t=1.0-1.0/t;"改为"t=t-1.0/i;"或相同作用的语句。另外,原程序中main函数中的"scanf("%d"&m)"语句也是错误的,应该改为"scanf("%d",&m);"。本评析仅作参考。知识点:知识点/C程序修改25、 给定程序modi.c中函数fun的功能是:根据整型形参m,计算如下公式的值。1 1 1 1y=1+──+──+──+……+──2*23*34*4 m*m例如,若m=5,则应输出:1.463611。请改正fun函数中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!评析:首先,我们必须先读懂题中程序的大致意思,这是发现并改正程序中错误的重要前提。程序中的重要思想如下:1、函数fun()的功能是根据一个整型形参计算题目中的数学公式;2、由于公式中运用了除法,所以公式的最终值必须使用double型,以保持最终值的精确性。题中的第一个错误出现在函数fun()中的语句"for(i=2;i