北京联合大学计算机语言C预测卷(八套试卷)及答案_第1页
北京联合大学计算机语言C预测卷(八套试卷)及答案_第2页
北京联合大学计算机语言C预测卷(八套试卷)及答案_第3页
北京联合大学计算机语言C预测卷(八套试卷)及答案_第4页
北京联合大学计算机语言C预测卷(八套试卷)及答案_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机语言C预测卷(一)(总分I。。分,考试时长60分件)一、单项选择题(每小题2分,共100分)k流程图里面的开始和结束用()表示。A、矩形B、圆C、椭圆D、菱形2、以下四个程序中,完全正确的是oA、#include<stdio.h>main();/♦programming*/printf(,rprogramming!\nn);B、#include<stdio.h>main()/♦/programming/*/printf('rprogramming!\n");C、#include<stdio.h>mainO/♦/♦programming*/*/printf("programming!\nw);D、include<stdio.h>main()/♦programming*/printf(nprogramming!\nw);3、关于结构化程序设计原则和方法的描述错误的是oA、选用的结构只准许有一个入口和一个出口B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C、不允许使用GOTO语句D、语言中若没有控制结构,应该采用前后一致的方法来模拟4、下列for循环的次数为。for(inti=0,x=0;!x&&iV=5;i++)A、5B、6C、1D、无限5、已知:intn=10;那么下列语句中错误的是。int*p=newlongEn];intp[n];int*p=newlong(n);D、intp[10];6、对于数学式x/2a,下面正确的c语言表达式是oA、sqr(x)/2asqr(x)/2*aC>sqrt(x)/(2*a)D、sqrt(x)/2*a7、对两个数组a和b进行下列初始化:charm[]=H1234567°;char= ,'3','4','5','6','7'};则下列叙述正确的是0A、数组in与数组n完全相同B、数组m与数组n长度相同C、数组m比数组n长1D、数组m与数组n中都存放字符串8、下列字符序列中,不可用作c语言标识符的是oA、b70B、#absymbolD、a_l9、下列选项中,表示字符串末尾的结束标志是oA、XB、Mc、NULL10、假定w、x、y、z、m均为int型变量,有如下程序段:w=l;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;则该程序段执行后,m的值是.A、4B、3C、2D、111、putchar()函数可以向终端输出一个()。A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值12、以下不能用于实型数据的运算符是。A、%B、/C、*D、+13、下列选项中,能正确定义数组的语句是A、intnum[O..2008];B、intnum[];intN=2008;intnum[N];#defineN2008;intnum[N];14、以下叙述不正确的是oA、分号是C语言的必要组成部分B、C程序的注释可以写在句的后面C、函数是C程序的基本单位D、主函数的名字不一定用main表示15、有以下程序:voidfun(charc){if(c>'x')fun(cT);printf(映c",c);)main()fun(*z');)程序运行后的输出结果是。AxxyzwxyzC、xzyD、zvx16、有以下程序段:intx=3;do(printf("%3d”,x-=2);}while(!(-x));程序段的输出结果是OA、1B、30C、1-2D、死循环17、若有函数char*func(char*p)…returnp;则该函数的返回值是A、无确切的值B、形参p中存放的地址C、一个临时存储单元的地址D、形参p自身的地址18、以下程序的输出结果是main()(intx=ll,y=ll;printf(w%d%d\\n",x-,—y);)A、11,1110,1010,1111,1019、以下叙述中正确的是oA、一条语句只能定义一个数组B、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式D,在引用数组元素时,下标表达式可以使用浮点数20、有以下程序^include<stdio.h>structtt{intx;structtt*y;}*P:structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main()(inti;p=a;for(i=l;i<=2,i++)(printf("%d,",p->x);p=p->y;))程序的运行结果是.A、20,30«B,30,17C、15,30,D,20,1521、c语言的程序一行写不下时,可以。A、用逗号换行B.用分号换行C、在任意一空格处换行D.用回车符换行22、下列程序的输出结果,是»main()inta=O,b=O,c=O;if(++a>0||++b>O)++c;printf(ff\na=%d,b=%d,c=%dn,a,b,c);)a=O,b=O,c=Oa=l,b=l,c=la=l,b=O,c=la=0,b=l,c=l23、有以下函数:intfun(char*x,char*y)(intn=0;whi1e((*x==*y)&&*x!=J\0')(x++;y++;n++;}returnn;}函数的功能是.A、将y所指字符串赋给x所指存储空间B,查找x和y所指字符串中是否有‘'0'C,统计x和y所指字符串中最前面连续相同的字符个数D、统计x和y所指字符串中相同的字符个数24、有以下程序:mainO(inti,j;for(j=10;j<ll;j++)(for(i=9;i<j;i++)if(!(j%i))break;if(i==j-l)printfC%d",j);)}输出结果是oA、11B、10C、9101125、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是O(*p)max(a,b);*pmax(a,b);C、(*p)(a,b);D、*p(a,b);26、以下所列的c语言常量中,错误的是。A、OxFFB、2L1.2e0.5'\72’27、若有说明inta[3][4];则a数组元素的非法引用是。A、123B、2.5C、-12156328、c语言中的标识符第一个字符。A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母,数字和下划线中任一种字符29、以下选项中关于c语言常量的叙述错误的是oA、所谓常量,是指在程序运行过程中,其值不能被改变的量B、常量分为整型常量、实型常量、字符常量和字符串常量C、常量可分为数值型常量和非数值常量D、经常被使用的变量可以定义成常量30、有一个名为init.h的文件,内容如下:#defineHDY(A,B)A/B#definePRINT(Y)printf(”y=%d\n",Y)有以下程序^include°init.h"main()inta=l,b=2,c=3,d=4,k;K=HDY(a+c,b+d);PRINT(k);}下面针对该程序的叙述正确的是.A、编译出错B、运行出错C、运行结果为y=0D、运行结果为y=631,凡是函数中未指定存储类别的局部变量,其隐含的存储类别为―A、静态(static)B,自动(auto)C,外部(extern)D、寄存器(register)32、在浮点数编码表示中,(1)在机器数中不出现,是隐含的。A,阶码B,符号C、尾数D、基数33、若有inta[10]={0,l,2,3,4,5,6,7,8,9),*p=a;则输出结果不为5的语句为»A、printf("%d",*(a+5));B,printf("%d",p[5]);C、printf("%d",*(p+5));D,printf("%d",*p[5]);34、下面哪个不是关键字?intstructdefinecontinue35、有以下程序main()(inta[][3]={{1.2,3),{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[l][i]-l;elsepa[l][i]=l;printf(M%d\nN,a[0][l]+a[l][l]+a[l][2]);)执行后输出结果是oA、7B、6C、8D、无确定值36、下面程序段。x=3;do(y=x——;if(!y)(printf("*");continue;)printf("#");}while(l<=x<=2);A、将输出##B、将输出###*C、是死循环D、含有不合法的控制表达式37、下列定义数组的语句中不正确的是cstaticinta[2][3]={1,2,3,4,5,6};staticinta[2][3]={{1},{4,5}};C、staticinta[][3]={{1},{4}};D、staticinta[][]={{1,2,3},{4,5,6}}:38、有以下程序#include<stdio.h>intfun(){staticintx=l;x+=l;returnx;main(){inti;s=l;for(i=l;i<=5;i++)s+=fun();printf(H%d\nn,s);程序运行后的输出结果是OA、11B、21C、6D、12039、以下能正确定义二维数组的是oA、inta[][3];B、inta[][3]={2*3};C、inta[][3]={};D、inta[2][3>{{1},⑵,{3,4}};40、设有如下定义:structsk(inta;floatb;}data,*p;若要使P指向data中的a域,正确的赋值语句是oA、p=(structsk*)&data.a;B、p=(structsk*)data,a;C、p=&data.a;D、*p=data.a;41、若采用双符号位判断溢出,当结果的符号位为11时,表示(13)oA、结果为正溢出B、结果正,无溢出C、结果负溢出D、结果为负,无溢出42、若x为int型变量,则执行以下语句后,x的值为。x=6;x+=x-=x*x;A、36B、-60C、60D、-2443、以下叙述中正确的是oA、逻辑"或''(即运算符II)的运算级别比算术运算要高B、C语言的关系表达式:0VxV10完全等价于:(0Vx)&&(xV10)C、逻辑“非“(即运算符!)的运算级别是最低的D、由&&构成的逻辑表达式与由II构成的逻辑表达式都有“短路”现象44、有以下程序#include<stdio.h>main()(inti,n;for(i=0;i<8;i++)(n=rand()%5;switch(n)(case1:case3:printf(w%d\nn,n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);printf("%d\n",n);}}以下关于程序执行情况的叙述,正确的是。A、for循环语句固定执行8次B,当产生的随机数n为4时结束循环操作C、当产生的随机数n为1和2时不做任何操作D,当产生的随机数n为0时结束程序运行45、以下对c语言函数的有关描述中,正确的是.A、在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B,C函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、函数必须有返回值,返回值类型不定46、以下程序的输出结果是fun(intx,inty)return(x+y):main()(inta=l,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%dn,sum);}A、9B,8C、7D、647、下列字符数组初始化语句中,不正确的是 .charc[]='goodmorning';chare[20]="goodmorning":charc[]=('a',"b','c','d');charc[]={wffgoodmorning");48、下列不属于简单数据类型的是 。A、整数类型B,类C,浮点数类型D、布尔类型49、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是。#include<stdio.h>main(){charsi[]=wchinesen,s2[]="japnese";inti;for(i=0;sl[i]!=,\0,&&s2[i]!=*\0*;i++)if(si[i]=s2[i]&&i<7)A^putchar(s2;putchar(puts(si,printf(M%c%d\nw,s2,printf(M%cH,si);printf(H%d\nw,50、以下叙述中错误的是oA、C语言编写的函数源程序,其文件名后缀可以是CB、C语言编写的函数都可以作为一个独立的源程序文件C、C语言编写的每个函数都可以进行独立的编译并执行D、一个C语言程序只能有一个主函数参考答案一、单项选择题1、C2、B【解析】选项A中的main。后而不能直接用分号。选项C中的注释符使且不正确,编译器会把从第一个"/*到第一个*/”之间的当作注释,最后一个“*/”会被作为程序代码去编译。选项D中的include前要加上#表示是预定义语句。3、C4、B5、B6、D7、C8、B9、C【解析】字符串末尾结束标志为'\0'10、D11、D12、A13、D14、D【解析】C语言的程序是由主函数main。开始运行,由主函数来调用其他函数,所以D是错误的。15、A16、C17、B18、D19、B【解析】A选项中,一条语句只能定义一个数组是不准确的,可以通过一条语旬定义多个数组;C选项中,数组说明符的一对方括号中可以是整型常量,可以是整型常量表达式;D选项中,在引用数组元素时,下标表达式必须是整型的。因此B选项正确。20、D21、C22、C【解析】“II”是或运算,它有个“短路”的特点需特别注意,当“II”运算符左边的表达式的值为真时,则程序就不再对“II”右边的表达式的值进行运算,而是使得整个表达式的值直接为真。23、C【解析】本题中由循环条件可知遇到''0'或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和y所指字符串中最前面连续相同的字符个数。24、B25、C26、C【解析】2e0.5,e后面是整型常量。27、B【解析】A)选项必须输入6个字母或数字(数字也能输入,不符合),C)选项可以输入6个任意字符,也不符合题议,D)选项可以选择输入6个数据或空格,不符合题意。28、C29、D30、D31、B32、D【解析】浮点数编码表示中,符号、阶码和尾数均有体现,只有基数是固定的,无需出现。33、D34、C35、A36、C37、D38、B39、B40、A41、D【解析】本题考查定点数加、减法溢出问题。定点数加、减时,若采用双符号位法,即采用两个符号位,如果两个符号位相同,则没有溢出;若不同,则表示出现溢出,而第一符号位才是真正的符号。即两个符号位的高位为1表示负溢出,而高位为0、低位为1则表示正溢出。题目中给出的结果的符号位为11,根据上面的分析,第一个符号位才是真正的符号,那么此数是负数,但两个符号位相同,表示没有溢出。42、B43、D【解析】B选项中,(x>0)&&(xV10)的值是1或0,条件是x>0并且xV10但是0Vx<10这种写法的结果任何时候都是1;C选项中,逻辑“非”(即运算符!)的运算级别是最高的;A选项中,算术运算符优先级较高,关系和逻辑运算符优先级较低。因此D选项正确。44、D【解析】阅读本程序可知,当产生随机数为4时,会继续执行循环;当产生随机数为1和2时,会顺势执行case1或case2下面的语句,进而输出结果;当产生随机数为0时,正常结束程序的运行。for循环语句随着产生的随机数的不同,执行的次数也不相同。45、A【解析】C语言中的函数可以进行递归调用,但不能在函数中定义函数,即函数不能嵌套定义。函数可以没有返回值,若有返回值,则返回值类型必须确定。46、B【解析】逗号表达式a++,b++,a+b先计算a++,a=2;再计算b++,b=3;表达式的值就是a+b的值,为5。表达式C++的值是c递增前的值,为3。所以fun((a++,b++,a+b),c++)等价于fun(5,3),返回值为5+3=8。47、A48、B49、C【解析】putchar(s)的功能是把字符s输出到标准输出设备;puts(sl)是把si指向的字符串输出到标准输出设备。50、C计算机语言C预测卷(二)(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、运算符的优先级最高。A.[]B,+=C、?:D、++2、表示关系1V=xV=100的c语言表达式为oA、x>=l&x<=100B、x>=landx<=100C、l<=x<=100D、x>=l&&x<=1003、有以下定义语句:doublea.b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是OA、a二a+b=b++B、w%((int)a+b)C、(c+w)%(int)aD、w=a==b4、以下叙述中正确的是oA、循环发生嵌套时,最多只能两层B、三种循环for,while,do-while可以互相嵌套C、循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误D、for语句的圆括号中的表达式不能都省略掉5、下列程序的输出结果是ochar*pl=wabcdH,*p2="abcd",str[50]=HxyzH;strcpy(str+2,strcat(pl+2,p2+l));printf(n%sw,str);xyabcABabcABzABabczxycdBCD6、设a=2,b=3,c=4,d=5,下列表达式的值是。a>bandc<=dor2*a>cTrueFalse-1D、17、以下程序的输出结果是ocharch[5]={),EJ\0, \(T};printf(w%s",ch);A、aB、bC、abD、abc8、关于二进制的说法中,正确的是A,所有的信息只能用二进制代码来表示B、计算机一般都使用二进制代码,用它的某种信息编码方式来表示信息C,ASCII是计算机用来表示文字符号的唯一一种二进制代码D、汉字在计算机内使用汉字国标码来表示,不使用二进制编码9、设宏定义#definePI3.1415926,用宏名PI替换的是。A、算术表达式B、字符串C,单精度实型数D、双精度实型数10,整型变量x=l,y=3,经下列计算后,x的值不等于6的是.x=(x=l+2,x*2)B、x=y>2?6:5C,x=9-(•-y)-(y-)D,x=y*4/2Ik下列程序的运行结果是o#include<stdio.h>voidsub(int*s,int*y)(staticintm=4:*y=s[m];m-;)voidmain()inta[]={l,2,3,4,5},k,x;printf("\n");for(k=0;kV=4;k++)(sub(a,&x);printf(w%d,w,x);)A、5,4,3,2,1,B、1,2,3,4,5,C、0,0,0,0,0,D、4,4,4,4,4,12、下列不是合法的c语言语句是。A、a=5inti;i++;C、;D、;13、以下能将字符串,youareluck!正确读入的语句组是ochars[80];scanf("%sw,s);char*s: scanf(M%sH,s);chars[80];gets(s);char*s;gets(3);14、假定int类型变量占用4个字节,若有定义:intx[10]={0,2,4}则数组x在内存中所占字节数是0A、4B、12C、20D、4015、以下程序输出的结果是.#include<stdio.h>voidmain()(inta[]={5,4,3,2,1},i,j;longs=0;for(i=0;i<5;i++)s=s*10+a[i];printf(hs=%ld\nw,s);A、s=12345B>s=54321C、s=54321D、以上都不对16、设有以下程序段:intk=0;while(k=l)k—;则以下叙述中正确的是OA、while循环执行一次B、该循环是无限循环C、循环体语句一次也不执行D、该循环有语法错误17、若各选项中所有变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是OTOC\o"1-5"\h\zA、main() { x=fun(2,10); }floatfun(intA,intb){ }B、floatfun(intA,intb){ }main(){ x=fun(i,j); }C、floatfun(intint);main(){ x=fun(2,10); }floatfun(intA,intb){ }D、mainO(floatfun(inti,intj); x=fun(i,j); }floatfun(intA,intb){……}18、有下列程序:main(){inty=10;do{y一;}while(-y);printf("%d\n",―y);)当执行程序时,输出的结果是OA、-1B、1C.4D、019、以下关于数组的描述正确的是oA、数组的大小是固定的,但可以有不同的类型的数组元素。B、数组的大小是可变的,但所有数组元素的类型必须相同。C、数组的大小是固定的,但所有数组元素的类型必须相同。D、数组的大小是可变的,但可以有不同的类型的数组元素。20、若有下面的说明和定义:structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];)ua;}myaa;则sizeof(structtest)的值是。A、12B、16C、14D、921、若希望当a的值为奇数时,表达式的值为真;a的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是oA%2==1!(A%2==0)C、A%2D、!(A%2)22、若有以下说明:inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a\d,g;则数值为4的表达式是oa[g-c]a[4]a[,d,-,c,]D、a[*d*-c]23、有以下程序intadd(inta,intb)(return(a+b);)mainO(intk,(*f)(),a=5,b=10;f=add;则以下函数调用语句错误的是OA、k=(*f)(a,b);k=add(a,;k=*f(a,b);D>k=f(a,b);24、有以下程序main()(intc=5,x;scanf("%dn,&x);switch(x+1)(case6:c++;case8:++c;break;default:c+=3;)printf(w%dw,c);)程序运行时,从键盘输入:5V回车,,程序执行后的输出结果是A、6B、7C、8D、语法错25、有以下程序raain()(chars[]={"aeiou"},*ps;ps=s;printfC%c\n",*ps+4);}程序运行后输出的结果是.aeuD,元素s[4]的地址26、有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*P+9*(P+8)*P+=9P+827,关于数组和指针,以下说法错误的是。A,数组名本身就是一个指针,指向数组内存的起始位置B、既可以读入数据到数组中,也可以读入数据到未赋初值的指针中C,可以让一个指针指向一个同类型的数组D、指针可以指向同类型的数组中的任意一个元素28、已知inta,b;用语句scanf("%d%d",&a,&b);输入a,b的值时,不能作为输入数据分隔符的是。A,,B、.空格C、回车D、Tab键29、以下选项中,合法的c语言常量是。2XYHELLO'"\O.\O1.030、语句fread(buffer,size,count,fp);其中buffer代表的是A,一个整型变量,代表要读入的数据项总数一个指向所读文件的文件指针C、存放读入数据项的存储区长度D、存放读入数据的地址31、下列程序的输出结果是。intfl(intx,inty)(returnx>y?x:y;}intf2(intx,inty)(returnx>y?y:x;}mainO{inta=4,b=3,c=5,d=2,e,f,g;e=f2(fl(a,b),fl(c,d));f=fl(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}A、4,3,7B、3,4,7C,5,2,7D、2,5,732、下列叙述中不正确的是。A、变量名的第一个字符必须是字母B、变量名的长度不超过255个字符C、变量名可以包含小数点或者内嵌的类型声明字符D、变量名不能使用关键字33、以下对一维数组c进行正确的定义初始化的语句是 。int c [10] =0;int c [10] ={0}*10;int c [1] ={0,0,0,0,0,0,0);int c [10] ={0};34、设有以下语句:typedefstructtt{charc;inta[4];}cin;则下面叙述中正确的是A、可以用TT定义结构体变量B、TT是struct类型的变量C、可以用CIN定义结构体变量D、CIN是structTT类型的变量35、下面程序段的输出为#include"stdio.h"main()(printf(n%d\nh,12<<2);)A、0B、47C、48D、2436、运行下面程序时,若从键盘输入数据为“123”,则输出结果是.^include"stdio.hnvoidmain()(intnum,i,j,k,place;scanf("%dH,&num);if(num>99)place=3;elseif(num>9)place=2;elseplace=l;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(place)case3:printf(ff%d%d%d\nw,k,j,i);break;case2:printf(w%d%d\n",k,j);break;case1:printf(w%d\nw,k);))A、123B、1,2,3C、321D、3,2,137、以下叙述中正确的是oA、复合语句在语法上包含多条语句,其中不能定义局部变量B、花括号对只能用来表示函数的开头和结尾,不能用于其他目的C、空语句就是指程序中的空行D、当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键)前,可以任意修改38、以下程序的输出结果是omain(){inta=3;printf(w%d\nM,(a+=a-+a*a)))A、-6B、1C、2D、-1239、若希望下列的程序运行后输出25,程序空白处的正确选项是omainO(inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];print(w%dw,j-40);A、i=l;i<4;++iB、i=l;i<3;++iC,i=4;i>2;i—D、i=2;i<4;++i40、当定义一个结构体变量时,系统分配给它的内存是。A、各成员所需内存量的总和B,结构中第一个成员所需内存量C、结构中最后一个成员所需内存量1).成员中占内存量最大者所需的容量41、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是。A、一3B、9C、-12D、642、设有定义intx;floaty;则10+x+y值的数据类型是。A、intB、doubleC、floatD、不确定43、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是.A、k%2k%2==l(k%2)!=0D、!k%2=l44、有以下程序main()(inti=0,s=0;do{if(i%2)(i++;continue;i++:s+=i;)while(i<7);printf("%d\n",s);}执行后输出的结果是.A、16B、12C、28D、2145、c语言的基本单位是«A、函数B、过程C、子程序D、子函数46、已知year为整型变量,不能使表达式(year%4==0&&year%100!=o)Iyear%400==0的值为“真”的数据是o199019921996200047,若有定义"intb[8],*p=b;",则p+6表示( )。A、数组元素b[6]的值B、数组元素b[6]的地址C、数组元素bE73的地址D、数组元素hEo]的值加上648、下面叙述正确的是oA、只要是简单算法,它的操作步骤都不会超过20步B、任何算法需要包含三种基本结构中的两种以上C、复杂算法是不能用三种基本结构来表达的D、C语言程序的语句经过编译和链接转换成二进制机器指令后才能执行49、下面描述正确的是oA、两个字符串包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串"STOP"与"STOP・"相等D、字符串"That"小于字符串The"50、以下叙述中正确的是.A、在C语言中,预处理命令行都以#开头B、预处理命令行必须位于C源程序的起始位置C、#include<stdio.h>必须放在C程序的开头D、C语言的预处理不能实现宏定义和条件编译的功能参考答案一、单项选择题EA2、D3、C【解析】选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a=b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。4、B【解析】A选项中,循环发生嵌套时,没有规定层数;C选项中,循环嵌套时,书写代码时没有要求必须缩进;D选项中,for语句的圆括号中的表达式都可以省略掉。因此B选项正确。5、D6、B【解析】根据运算符的优先级顺序,先计算算术运算符,结果是2>3And4<=5Or4>4;再计算关系运算符,结果为FalseAndTrueOrFalse;And优先级高于Or优先级,先计算And,再计算Or,最后结果是False。故B选项正确。7、C【解析】字符串总是以''0'作为串的结束符。有了''0'标志后,就不必再用字符数组的长度来判断字符串的长度了。8、B【解析】计算机不只是能用二进制,还有八进制、十进制、十六进制。9、B10、C11、A【解析】本题考查的是静态变量以及函数的实参与形参之间的地址值传递。sub()函数数中定义的变量m是一个静态变量,系统可为其分配固定的存储空间,重复使用时,变量的值保留;所以当mam()函数中的for循环中语句sub(a,&x);执行时,sub函数中m的值依次是4,3,2,1,0;因为变量x进行的是地址值传递,所以最后依次输出的是数组a的元素a[4]、a[3]、a[2],a[l]>a[0]o12、A【解析】选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。13、C14、D15、C16,B【解析】请仔细阅读交规难度:简单17、A18,A19、C20、A21、D22、D23、C24、B25、B【解析】评析:此题中先定义一个指针变量PS,并将S的首地址赋给此指针变量,*PS+4相当于先从指针变量ps指向的地址中取出相应数据“a”后,对此数据加4,a的ASCII码为32,32+4=36,对应于字符e,所以答案选B。26、B27、B【解析】C语言中,数组名本身就是一个指针,指向数组内存的起始位置,选项A正确;可以将一个指针指向一个同类型的数组,选项C正确;指针指向一个数组后,可以通过移动指针,指向该数组中的任意一个元素,选项D正确;已经定义的数组被分配了内存空间,所以可以读入数据到数组中,未赋初值的指针没有分配内存空间,所以不可以读入数据,选项B错误,本题答案为B28、A【解析】C语言规定在使用scanf输入时可以用作数据分隔符的有空格,回车和Tab键。用户如果要从键盘输入空格字符,则需要使用其他的输入方式。29、D【解析】C语言常量包含整型常量,实型常量,字符常量,字符串常量。其中字符常量是用单引号括起来的单个字符,选项B只有半边单引号;字符串常量使用双引号括起来的多个字符,选项只有双引号的半边。整型常量包含:十进制,八进制和十六进制。选项A中X和Y不是有效字符。本题答案为D选项。30、D【解析】语句freadbuffer,size,count,fp,其中buffer代表的是存放读入数据的地址。本题答案为D选项。31、A【解析】根据函数intfl(intx,inty){returnx>yx:y;}和intf2(intx,inty){returnx)>y:x;}的定义可知,如果x>y成立,则函数fl返回x的值,函数f2返回y的值。所以fl(a,b)=4,fl(c,d)=5,f2(a,b)=3,f2(c,d)=2,故e=f2(4,5),f=f1(3,2)=3,g=4+3+5+2-4-3=7.32、C33、D34、C【解析】将题目中的定义语句去掉前面的typedef和后面的CIN(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,TT是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,structTT一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedef,就是一条结构体定义同时声明个结构体变量CIN的语句,因为CIN的前面部分是structTT的完整写法,可以看作是structTT。C语言允许用typedef说明一种新类型名,其语法格式为:typedef类型名标识符;以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给structTT的定义一个新的名称C1N。所以,此时的CIN是一个结构体类型,它相当于structTT,即可以和char一样单独用来声明该结构体变量,而TT只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。35、C【解析】考查位运算的运算原理。[解题要点]<<为左移运算符,运算符的左边是移位对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补0;左端(高位)移出的部分舍弃。36、C37、D【解析】复合语句可以包含多条语句在其中可以定义局部变量所以A错误。花括号对不仅用来表示函数的开头和结尾也可以用于表示复合语句所以B错误。语言中的语句必须以分号";“结束所以空语句表示为";不是空行所以C错误。38、D【解析】赋值运算符的结合方向是自右至左,所以表达式a+=a=a*a先运算最右边的a*a得9,再运算a二a-9,即a=3-9,所以此时a的值由3变成了-6,最后运算a=a+(-6)=-12o39、D【解析】要想使程序输出25,则>40=25,>65,而j初值是50,所以填入for循环的语句,使引用的数组元素累加65-50=15即可,D选项中,i下标从0开始,i=2指向第3个数50+a[2]=50+10=60,继续循环60+a[3]=65+5=65,此时i=4跳出,循环结束。40、A41、C42、C【解析】由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为int-floatfdouble。43、D44、A45、A46、A47、B48、D49、D50、A【解析】预处理命令是以“#”号开头的命令,它们不是C语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在始位置书写,所以B),C错误。C语言的预处理能够实现宏定义和条件编译等功能,所以D)错误。计算机语言C预测卷(三)(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、c语言中,凡未指定存储类别的局部变量的隐含存储类别是A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)2、下列语句中,正确的是oA、char*s;s="Olympic";B、chars[7];s=MOlympicM;C、char*s;s={"Olympicn};D、chars[7];s={MOlympicM};3、下列表达式为关系表达式的为。(其中a为一整型变量)3+4*5a==10a>0a:-aD、a—14、以下程序段.x=-l;do(x=x*x;)while(lx);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误5、c语言中,下列不合法的字符串常量是oA、”'121”!y='C、"\n\n"D、”ABCD\x6d”6、以下选项中合法的用户标识符是。No-1xabc、sf_02_int>2xy、countpc、_4866pc、vf_2++Cxhj6_dxname7、定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9);则下面语句for(i=0;i<3;i++)printf(M%dw,x[i][2-i]);的输出结果是A、159B、147C、357D、3698、在下列字符中,其ascii码值最小的一个是A、空格字符B、0C、AD、a9、下列字符串是标识符的是:。A、_HJ9_studentlongLINE110、在定义inta[5][4];之后,对a的引用正确的是。A、a[2][4]a[l,3]a[4][3]a[5][0]11、c语言源程序的基本单位是oA、过程B、函数C、子程序D、标识符12、以下运算符中优先级最低的是。A、&&B、&C、IID、I13、顺序执行下列程序语句后,则b的值是stringa=,rhello,r;stringb=a.substring(0,2);HellohelloC、HeD、null14、已有定义:chara□="xyz:b□={'x','y','z'};以下叙述中正确的是,A、数组a和b的长度相同B、a数组长度小于b数组长度C、a数组长度大于b数组长度D、上述说法都不对15、以下程序的输出结果是。main()(charch[3][4]={w123n/456\H78"),*p[3];inti;for(i==-0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf(w%sn,p[i]);}A、123456780B、123456780C、12345678D、14716>while(fabs(t)<le-5)if(!s/10)break;循环结束的条件是。A、t>=le-5&&t<-le-5&&s>-10&&s<10B、fabs(t) s/10C、fabs(t)<le-5D、s/10==017、若有说明:int*p,m=5,n;以下正确的程序段是。p=&n;scanf("%d",&p);p=&n;scanf(H%dw,*p)C、scanf(,r%dN,&p;*p=6);D、p=&n;*p=m;18、下面程序的输出结果是。main()externinta;a-=l;f();printf(,r%d\nH,a);)inta=4;voidf()(printf(,f%d&n,a*a);a+=a;)A、96B、9&6C、9&9D、6&619、算法指的是。A、解决问题的方法、步骤和思路的一种描述B、计算机程序C、排序方法D、数据处理20、在下列程序段中,枚举变量cl,c2的值依次是enumcolor(red,yellow,blue=4,green,white)cl,c2;cl=yellow;c2=white;printf(H%d,%d\n"tcl,c2);A、1,6B、2,5C、1,4D、2,621、有定义语句:intx,y;若要通过scanf("%d,%d",&x,&y);语句使变量x11,变量y得到数值12,下面四组输入形式中,错误的是oA、1112/B、11,12/C、11,12ZD、1E/12Z22、表达式”0?(0?3:2):(10?I:。)11的值为。A、3B、2C、1D、023、下列程序的运行结果是。voidfun(int*a,int*b){int*k;k=a;a=b;b=k;)main()(inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf(h%d%dw,a,b);)A、63B、36C、编译出错D、0024、以下关于continue语句的描述中正确的是。A、continue语句只能用于循环中B、continue语句只能用于switch语句中C、continue语句可用于循环和switch语句中D、以上说法都不正确25、执行下列语句后的结果为«intx=3,y;int*px=&x;y=*px++;A、x=3,y=4B,x=3,y=3C、x=4,y=4D,x=3,y不知26、以下不正确的定义语句是oA、doublex[5]={2.0,4.0,6.0,8.0,10.0};B,inty[5]={0,l,3,5,7,9};C、charcl[]={'r,,2'.'3','4,,'5'};D、charc2[]={'\x10','\xa','\x8');27、下列各定义数组的语句中不正确的是.A、inta[l][3];B,intx[2][2]={1,2,3,4};C、intx[2][]={1,2,4,6};D,intm[][3]={1,2,3,4,5);28、下列c语言用户标识符中合法的是.A、_xunioncaseD、~e229、下列变量定义中,错误的是ointx=3;floatf;d;Strings=wHello!M;booleanb=true;30、有以下程序:#includeVstdio.h>#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=l;i<argc;i+=2)len+=strlen(argv[i]);prinff(N%d\nff,len);此程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行:exabedefgh3k44则执行后的输出结果时。A、14B、12C、8D、631、设intf(int);和intg(int);是函数f和g的原形,以下将f作为语句调用的是A、g(f(3))B、f(g(3));C、g(f(3)+2);D、p=f(g(3)+1);32、若变量均已正确定义并赋值,以下合法的c语言赋值语句是一x=y==5;B、X=n%2.5:x+n=i;x=5=4+l:33、下列字符串中不能作为c标识符使用的是oWHILEuser_lvar9stars34、c语言中的基本数据类型包括A、整型、实型、字符型B、整型、字符型、数组C、整型、实型、逻辑型D、整型、实型、结构体35、请读程序:main()(staticinta[]={l,2,3,4,5,6} int*p;inti;p=a;*(p+3)+=2;printf(""nl=猊,n2Gd\n:N\*p,*(p+3));其输出是Onl=l;n2=5nl=2,n2=6"nl=ln2=7"nl=l,n2=636、已知:inta,b;下列switch语句中,()是正确的。switch(a)casea:a++;break;caseb:b++;break;switch(a+b)case1:a+b;break;case1:a-bswitch(a*a)case1,2:++a;case3,4:++b:switch(a/10+b)case5:a/5:break:default:a+b;37、已有定义int(*p)0;指针p可以。A、代表函数的返回值B、指向函数的入口地址C、表示函数的类型D、表示函数返回值的类型38、下列程序段的执行结果是输出ox=3;do(printf(n%2d,\x-);}while(!x);A、321B、3C、21D.21039、以下关于排序算法的叙述中,正确的是oA、冒泡排序法中,元素的交换次数与元素的比较次数一定相同B、冒泡排序法中,元素的交换次数不少于元素的比较次数C、简单选择排序中,关键字相同的记录在排序前后的相对位置一定不变I)、简单选择排序中,关键字相同的记录在排序前后的相对位置可能交换40、下面关于主程序的说法,错误的是oA、a.next二q;B、p.next=&b;C、p->next=&b;D、(*p).next=q;41、表示一条指令的存储单元的符号地址称。A、标号B、变量C、偏移量D、类型42、如下程序段运行输出的结果为inta=5,b=6,c;c=++a+b—;printf(H%d,%d,%d%\n'r,a,btc);5,6,116,5,116,5,126,6,1243、下列说法中不正确的是oA、switch语句功能可以由if-else语句实现若用于比较的数据类型为double,则不能用switch语句来实现C、if-else语句的执行效率总是比switch语句高D、case子句可以有多个语句,并且不需要用大括号””括起来44、下面的程序main()(intx=3;do(printf("%d\nw,x-=2);)while(!(—x));A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环45、下列能正确定义字符串的语句是oA、charstr□='\64’;charstr=wkx43rt;charstr=";D、charstr[]=',\OH;46、有以下程序:#include<stdio.h>main()(chara=rh1;a=(a>=,a'&&a<='z')?(a-'a,+,a,):a;printf(M%c\nH,a);)程序运行后的输出结果是°A、AB、aC、HD、h47、若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是int[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]-&t[k][0];A、t[2]Eo]B、t[2][2]C、tell[2]D、t[2][l]48、下列关于表达式的描述中,错误的是,A、常量和变量都是表达式B、运算符类型对应表达式的类型C、每一个表达式都有自己的值D、表达式必须以分号结尾49、字符串指针变量中存入的是oA、字符串B、字符串的首地址C、第一个字符D、字符串变量50、下列叙述中正确的是oA,每个C程序文件中都必须有一个main。函数B、在C程序的函数中不能定义另一个函数C、C程序可以由一个或多个函数组成D、在C程序中main。函数的位置是固定的参考答案一、单项选择题1、A【解析】本题考查数据存储类型的基本知识点。凡未指定存储类别的局部变量的隐含存储类型都默认为自动类型。2、A3、B4、C5、B6、C【解析】请仔细阅读交规难度:简单7、C8、A【解析】ASCH码值(用十进制表示)分别为:空格对应32,0对应48,A对应65,a对应97o9、A10、C11、B12、C13、C【解析】substring。方法是用来提取子字符串的,此题是提取字符串a的第0个到第2个字符组成新的字符串:Heo14、C15、B16、A17、D【解析】是求址运算符,“*”是指针变量说明符。选项A),B)应改为scanf(M%dw,p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,这样做很危险,建议不使用。18、B19、A20、A21、A22、C23、B【解析】在C语言中,调用函数时是将实参复制一份给形参,所以无论怎么改变形参的值,都不会影响到实参,即传值调用。即使形参是指针变量,也没有改变C语言传值调用这个事实,实参指针也还是复制了一份给形参指针,无论怎么改变形参指针的内容(注意:不是形参指针所指向的内容),也不会影响实参指针的内容。但它们两个现在的值一样,即指向的是同一个内存地址,所以改变形参指针所指向的内容,也就改变了实参指针所指向的内容,C语言就是这样实现传址调用的。本题中fun()函数的形参就是两个指针,但函数中没有任何语句改变这两个指针所指向的内容,只是交换了两个参数的内容,所以该函数不会对传递给它的实参以及实参所指向的内容造成任何影响,故a,b初始化时为3,6,输出结果亦为3和6。应该选择B。24、A25、B26、B27、C【解析】请仔细阅读交规难度:简单28、A29、B【解析】A选项定义了一个整型;C选项定义了一个字符串;D选项定义了一个布尔型变量:B选项中的f;d不符合标识符规范,因而选B。30、D【解析】main函数可以有两个参数,第一个参数为一个整型变量,表示命令行参数的个数,本题为5;第二个参数为一个字符型指针数组,其中第一个数组元素指向程序名,第二个数组元素指向命令行中的第一个参数,以后依此类推。由程序中的for循环可以看出,程序是求第一(argv[l])、第三(argv[3])个参数的长度之和,即4+2=6。31,D【解析】p=f(g(3)+l):函数f被作为一个语句调用。32、A33、D【解析】此题考查的是C语言中标识符的定义。标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线;标识符中大小写字母是不同的;用户定义标识符时,不允许采用系统的关键宇。34、A35、D36、D37、B38、B39、D【解析】本题考查算法方面的基础知识。冒泡排序法的基本思路是:将相邻位置的关键字进行比较,若为逆序则交换之。重复该过程,直到序列已排好序。显然,在这个过程中,元素间的比较次数应大于等于交换次数.简单选择排序的思路是:第一趟在n个记录中选取最小记录,将其与序列的第一个元素交换,第二趟在n-1个记录中选取最小记录,将其与序列的第二个元素交换,第i趟在n-i+1个记录中选取最小的记录,将其与序列的第i个元素交换,直到序列的第n个元素为止。在这个过程中,关键字相同的两个记录在排序前后的相对位置可能发生变化。例如,序列为(30,30,12)时,选择排序法需要将第一个元素30与最后一个元素12进行交换,这样就使得两个30的相对位置改变了。40、B【解析】要把结点b连接到结点a之后,必须把b的地址给a的next指针,选项A)中,指针变量q保存的就是变量b的地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址,所以正确。41、A【解析】标号表示一条指令的存储单元的符号地址。42、C43、C【解析】并不是所有的if-else语句的执行效率都高于switch语句,在一些特定的情况下,switch语句可以比较简炼,同时容易阅读,因此,选项C的描述是错误的。44、B45、D【解析】字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。46、D【解析】多元运算符问号前面表达式为真,所以(a「A'+'a')赋值给a,括号里的运算是把大写字母变成小写字母,所以答案应为选项D。47、C48、D【解析】语句必须以分号结尾,表达式不是必须以分号结尾,表达可以嵌套。49、B50、A计算机语言C预测卷(四)(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、有以下程序段main(){inta=5,*b,**c:c=&b;b-&a;)程序在执行了c=&b;b=&a;语句后,表达式:**c的值是.A,变量a的地址B、变量b中的值C、变量a中的值D、变量b的地址2、判断式5>4>3的结果为A、1B、0C、trueD,false3、if语句的基本形式是:if(表达式)语句,以下关于“表达式"值的叙述中正确的是A、必须是逻辑值B,必须是整数值C、必须是正数D、可以是任意合法的数值4、与下面程序段等价的是for(n=100;n<=200;n++)if(n%3==0)continue;printf("%4d",n);A、for(n=100;(n%3)&&n<=200;n++)printf("%4dw,n);B、for(n=100;(n%3)||n<=200;n++)printf(ff%4dw,n);C、for(n=100;n<=200;n++)if(n%3!=0)printf(w%4dw,n);D、for(n=100;n<=200;n++){if(n%3)printf(H%4dM,n);Elsecontinue;Break;}5、设有以下函数:#include<stdio.h>intf(inta)(intb=0,c;c=3;b++;C++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是.voidmainO(inti;for(i=0;i<3;i++)printf(M%d\nM,f(i));)A、567B、579C、345D、3336、设有定义inti;doublej=5;则10+i+j值的数据类型是。A,intdoublefloatD、不确定7、以下叙述中正确的是口A、语句inta[8]={0};是合法的B、语句inta={0};是不合法的,遗漏了数组的大小C、语句chara[2]={"A","B"};是合法的,定义了一个包含两个字符的数组D、语句char[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符8,下述c语言转义符中()是非法的。A、、b''\037'''Oxf''\"9,以下不能将s所指字符串正确复制到t所指存储空间的是.do*t++=*s++;while(*s);for(i=0;t[i]=s[i];i++);C、while(*t=*s)t++;s++;D,for(i=0,j=0;t[i++]=s[j++];);10、以下选项中,与n=i++完全等价的表达式是.n=i,i=i+ln+=i+li=i+l,n=in=++i11、下列有关格式输入函数scanf的叙述中正确的是.A、输入项可以是C语言中规定的任何变量,并且在任何变量前必须加地址符号B、可以只有格式控制项,没有地址列表项C,在输入数据时,必须规定精度。如scanf("%4.2f",&d);D,当输入数据时,必须指明变量地址12、若变量均已正确定义并赋值,以下合法的c语言赋值语句是.A,x=n/2.5;B、x—5;x+n=I;5=x=4+l;13、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是.A.利用返回值数据传递方式B、利用形参与实参传递数据的方式C、利用全局变量传递数据的方式D、以上都不对14、若有如下定义,则是对数组元素的正确的引用inta[10],*p;p=a:*&a[10]a[ll]C、*(p+ll)D、*p15、有以下的代码inta[4]={1,2,3,4};int*p=a;p++;++p;printf(M%dw,*p);的输出结果是OA、1B、2C、3D、416、运行下面程序时,从键盘输入字母h,则输出结果是#include<stdio.h>main()(charch;ch=getchar();switch(ch){case'h,:printf(whello!\nw);case'g':printf(wgoodmorning!\nff);default:printf(wbye_bye!\n");})Hello!Hello!GoodMoring!Hello!Goodmorning!Bye_Bye!Hello!Bye_Bye!17、有以下程序:main()chara[7]=wa0\0a0\0":inti,ji=sizeof(a);j=strlen(a):printf(w%d%d\nw,i,j);程序运行后的输出结果是。A、22B、76C、72D、6218、有以下程序main()(intp[7]={U,13,14,15,16r17,18},i=O,k=O;while(i<7&&p[i]%2)(k=k+p[i];i++;}printf(H%d\nH,k);)执行后输出的结果是OA、58B、56C、45D、2419、若要定义一个具有5个元素的整型数组,以下错误的定义语句是oA、inta[5]={0};B、intb[]=(0,0,0,0,0}Cxintc[2+3];D、inti=5,d[i];20、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是。structnode(chardata;structnode*next;)a,b,*p=&a,*q=&b;TOC\o"1-5"\h\z3 4 7 53 5 7 41 2 3 41 2 3 521、以下叙述中正确的是oA、在C程序中的八进制和十六进制,可以是浮点数B、整型变量可以分为int型、short型、long型和unsigned型四种C、八进制数的开头要使用英文字母否则不能与十进制区分开D、英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符22、若x、y、z、in均为int型变量,则执行下面语句后m的值是。m=l;x=2;y=3;TOC\o"1-5"\h\zm=(m<x) ? m : x;m=(m<y) ? m : y;m=(m<y) ? m : z;A、1B、2C、3D、423、若有定义语句:chars[10]=w1234567\0\0";则strlen(s)的值是—A、7B、8C、9D、1024、有以下程序ttinclude<stdio.h>main()(intx=8;for(;x>0;x—)(if(x%3)printf(w%d,w,x一);continue;)printf("%d,",-x);))程序的运行结果是oTOC\o"1-5"\h\z7, 4, 28, 7, 5, 29, 7, 6, 48, 5, 4, 225、下面各语句行中,能正确进行给字符串赋值操作的语句行是.charst[4][5]={"ABCDE");chars[5]={'A,,,B','C',,D','E');char*s="ABCDE";char*s;scanf("%s",*s);26、以下程序段中与语句k=a>b?(b>c?l:0):0;功能等价的是.A,if((a>b)&&(b>c))k=l;elsek=0;B、if((a>b)11(b>c))k=l;elsek=0;C、if(a<=b)k=0;elseif(b<=c)k=l;D,if(a>b)k=l;elseif(b>c)k=l;elsek=0;27、下列程序段的功能是.计算数组x中相邻两个元素的和,依次存放到!组中,然后输出a数组。程序段中待填空的(1)和(2)的正确选项是.inti;inta[9],x[10];for(i=0;i<10;i++){scanf&x[i]);)for((1);i<10;i++)/*此处待填空(1)*/a[i-l]=x[i]+(2)/*此处待填空(2)*/for(i=0;i<9;i++)(printf("%d",a[i]);}printf("\n");A、(1)i=1(2)x[i+l]B、(1)i=0(2)x[i-l]C、(1)i=1(2)D,(1)i=0⑵x[i+l]28、判断实数x属于闭区间[a,b]的表达式为设a为整型变量,不能正确表达数学关系10<a<15的c语言表达是。A、a>10&&a<15B、a>10||a<15C,!(a<=10||a>=15)D.!(a<=10)&&!(a>=15)29、在宏定义#definePI3.14159中,用宏名代替一个。A、常量B、单精度数C.双精度数D,字符串30、c程序的基本结构单位是。A、文件B、语句工数C、函数D,表达式31、c语言规定,在一个源程序中,main函数的位置 。A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后32、若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是—。A,++i;B,nl=(n2/(n3=2));k=i=j;a=b+c=2;33、有以下程序^include<stdio.h>mainO(intn,*p=null;*p=&n;printf("inputn:tt);scanf("%d",&p);printf("outputn:w);printf(w%d\nH,p);)该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是intn,*p=NULL;*p=&n;C、scanf("%<!”,&p)D、printf('r%d\n'\p);34、下面赋值表达式不正确的是.structstudent(longnum;charname[20];}stl,st2={101,"tom'},*p=&stl;A、st1=st2B、p->name=C、p->num=st2.numD、*p=st235、下列程序的输出结果是ointb=2:intfunc(int*a)(b+二*a;returnb;)mainO(inta=l,t=2;t+=func(&a):printf("%d\nM,t);)A、4B、5C、6D、836、下面程序的运行结果是°main()(inti,j,a=0;for(i=0;i<2;i++)(for(j=0;j<4;j++)(if(j%2)break;a++;)a++;}printf("%d\nn,a);}A、4B、5C、6D、737、有如下说明:inta[10]=l,2,3,4,5,6,7f8,9,10,♦p=a;则数值为9的表达式是A、*p+9B、*(p+8)*p+=9D、p+838、有以下程序main()intm=0256,n=256;printf(w%o%o\nR,m,n);)程序运行后的输出结果是o02560400025625625640040040039、下面程序段的运行结果是ochar*format=M%s,a=%d,b=%d\nM;inta=ll,b=10;a+=b;printf(format,wa+=bM,a,b);for,na+=b",abformat,"a+=b"a+=b,a=21,b=10D、以上结果都不对40、程序中有下面的说明和定义structabc(intx;chary;}structabcsi,s2;则会发生的情况是.A.编译出错B、程序将顺利编译、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论