




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计专升本测试卷(一)一、单项选择题(每小题2分,共100分)1、下列四个叙述中,错误的是。A、C语言中的关键字必须小写B、C语言中的标识符必须全部由字母组成C、C语言不提供输入输出语句D、C语言中的注释行可以出现在程序的任何位置【答案】B【解析】C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。2、设ch是char型变量,其值为a,且有下面的表达式ch=(ch>=,a&&ch<=z,)?(ch+32):cho上面表达式的值是 oA、AB、aC、ZD、z【答案】B3、switch语句中表达式(expression)的值不允许用的类型是。A、byteB、intbooleanchar【答案】c【解析】switch语句用于多重选择,其参数可以是字节型、整型或字符型;而布尔型只有两个值(True、False),一般用于if语句。4、下列c语言程序段中关于while循环体正确的说法是inti=l;while(5)i++;if(i>3)break;A、三次循环B、四次循环C、五次循环D、六次循环【答案】A5、若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是A、*p=&a;scanf("%If”,p);B>*p=&a;scanf('%f”,p);C、p=&a;scanf("%",*p);D、p=&a;scanf("%If”,p);【答案】D6、设有以下语句,则z的二进制值是charx=3,y=6,z;z=x*y<<2:00010100000110110001110000011000【答案】B【解析】左移运算符“VV”优先级高于二进制按位异或运算符“一”。y的二进制数为00000110,y〈V2的结果为00011000;x的二进制数为00000011,x"y的结果为OOOllOUo7、定义如下变量和数组:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);则下面语句的输出结果是.for(i=0;i<4;i++)printf(/z%3d*,x[i][3-i]);TOC\o"1-5"\h\zA. 1 5 9 13B> 1 6 11 16C> 4 7 10 13D、 4 8 12 16【答案】c8、判断闭区间*判断实数x属于闭区间[a,b]的表达式为A、x<=[a,b]B、a<=x<=bC、a<=x&&x<=bD、aWx&&x《b【答案】c9、以下不能将s所指字符串正确复制到t所指存储空间的是»A、while(*t=*s){t++;s++;)B、for(i=0;t[i]=s[i];i++);C^do{*t++=*s++;)while(*s);D、for(i=0,j=o;t[i++]=s[j++];);【答案】C10、设有定义:inta=l,b=2,c=3;,以下语句中执行效果与其它三个不同的是。A、if(a>b)c=a,a=b,b=c;B、if(a>b){c=a,a=b,b=c;}C、if(a>b)c=a;a=b;b=c;D、if(a>b){c=a;a=b;b=c;}【答案】C11、下列函数中,能够从键盘获得一个字符数据的函数是OA、puts()B、putchar()C、getchar()D、getsO【答案】C12、若ch为char型变量,k为int型变量(已知字符a的ascii十进制代码为97),则以下程序段的执行结果是och=a;k=12;printf(*%x,%o,”,ch,ch,k);printf(*k=%%d\n*,k);A、因变量类型与格式描述符的类型不匹配,输出无定值B、输出项与格式描述符个数不符,输出为零值或不定值C、61,141,k=%dD、61,141,k=%12【答案】C13、在宏定义#definePI3.14159中,用宏名代替一个A、常量B、单精度数C、双精度数D、字符串【答案】D14、若有以下说明和定义fun(int*c)main()(int(*a)()=fun,(*b)(),w[10],c;)在必要的赋值之后,对fun()函数的正确调用语句是A、a=a(w)B、(*a)(&c)C、b=*b(w);D^fun(b);【答案】B15、若有以下程序片段:charstr[]="ab\n\012\\\^;printfstrlen(str));上面程序片段的输出结果是OA、3B、4C、6D、12【答案】c16、以下不构成无限循环的语句或语句组是。n=0;do++n;while(n<=0);n=0;while(l)n++;n=10;while(n);D、for(n=0,i=l;;i++)n+=i;【答案】A【解析】while(l),条件永远为真,是无限循环;while(n);循环体为空语句,是无限循环;for循环中两个分号之间为循环执行条件,如果省略,则为条件永远成立,为无限循环;所以答案选择A。17、设voidfl(int*m,long&n);inta;longb;则以下调用合法的是.fl(a,b);fl(&a,b);fl(a,&b);fl(&a,&b);【答案】B【解析】如果调用合法,则只有B满足两个参数为指针和引用的条件。18、下面程序的输出结果是。main()|intb[]={l,2,314,5,6,7,8,9,0},*q;q=b;printf("%d\n”,*(q+O));A、0B、1C、10D、9【答案】B19、下列字符数组长度为5的是oA、chara[]={,hJ,,a,,,b',,c',,d,};B、charb[]={'h','a','b','c','d','\0'};C、charc[10]={'h','a','b','c','d'};D、chard[6]={'h','a','b','c',''0'};【答案】A20、以下结构体类型说明和变量定义中正确的是.typedefstructintn;charc;REC;RECtl,t2;struetREC;intn;charc;;RECtl,t2;typedefstructREC;intn=0;charc=,A*;tl,t2;RECtl,t2;structintn;charc;REC;【答案】A【解析】struct结构体名后不能加号,所以选项B、C错误,选项I)中应为structtl,t2;选项A为正确的定义形式。21、运行以下程序后,如果从键盘上输入chinaA、2,0B、5,0C、5,5D、2,5【答案】C【解析】输入%”时,运行default和case'0'的代码;输入“h”时,运行case'h'、default和case'0'的代码;输入"i"时,运行default和case'O'的代码;输入"n"时,运行default和case'O'的代码;输入"a"时,运行case'a'、case'h'、default和case'O'的代码。22、有以下程序:main(){intk=-3:if(k<=0)printf(**♦**\n*)elseprintf("&&&&\n");}程序的输出结果是oA、输出附##B、输出&&&&C、输出####&&&&D、有语法错不能通过编译【答案】D23、结构化程序设计的三种基本逻辑结构是.A、选择结构,循环结构和嵌套结构B、顺序结构,选择结构和循环结构C、选择结构,循环结构和模块结构D、循环结构,递归结构和循环结构【答案】B24、设i和x都是int类型,则for循环语句。for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);A、最多执行10次B、最多执行9次C、是无限循环D、循环体一次也不执行【答案】A25、字符串"xyz”在内存占用的字节数是。A、3B、4C、6D、8【答案】B【解析】字符串中的每个字符占1个字节,但C程序在存储字符串时,要在最后一个有效字符后面接上1个字符串结束的标记符'\0'。这样,存储字符串常量”XyZ”需要4个字节。所以解答是B。26、在以下语句中存在语法错误的是.A、charss[6][20];ss[l]=*right?*;B>charss[][20]={"right?”};C、char*ss[6];ss[l]="right?”;D、char*ss□={"right?”};【答案】A27、inta[10];合法的数组元素的最小下标值为一A、10B、9C、1D、0【答案】D28、根据c语言的语法规则,下列个是不合法标识符。A^doB、NameC、R5D、_exam【答案】A29、下列数据中属于"字符串常量”的是.A、ABCB、"ABC"C、’ABC'D、’A'【答案】B30、文件中定义的全局变量的作用域为。A、本程序全部范围B、本文件全部范围C、函数内全部范围D、从定义该变量的位置开始到本文件结束【答案】D31、对于一个正常运行的c程序,以下叙述中正确的是.A、程序的执行总是从main函数开始,在main函数结束B、程序的执行总是从程序的第一个函数开始,在main函数结束C、程序的执行总是从main函数开始,在程序的最后一个函数中结束D、程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束【答案】A32、下关于运算符优先顺序的描述中正确的是.A、>"&&"> >">="B、T>"/">">=">"&&"C、"!">"/">"&&">">="D、"/">"!">"&&">">="【答案】B33、指针变量p进行自加运算(即执行p++;)后,地址偏移值为4,则其数据类型为—A、intfloatdoublechar【答案】A34、有以下程序structs(intx,y;}data[2]={10,100,20,200};main()structs*p=data;printf("%d\n",++(p->x));}程序运行后的输出结果是“A、10B、11C、20D、21【答案】Binta;intb=65536;a=b;35、执行下面程序段后,输出结果是printf("%d\rT,a)inta;intb=65536;a=b;A、65536B、0C、-1D、1【答案】A36、以下循环体的执行次数是#include<stdio.h>voidmain()(inti,j;for(i=0,j=l;i<=j+l;i+=2,j—)printf(,z%d\n',i);}A、3B、2C、1D、0【答案】D37、若有说明:inti,j=7,*p=&i;则与i=j;等价的语句是—i=*p;*p=*&j;i=&j;i=**p;【答案】B38、要输出下面的图形,请完善程序。#include<stdio.h>main(){inti,j,k;for(i=l;i<=5;i++)(for(j=l;j<=20-3*i;j++)printfC");for(k=l;;k++)printf("%3d”,k);for(_ ;k>0;k++)printf("%3d”,k);printf('\n");A、k<=ik=iB、k<ik=i-lC、k<ik=iD、k<=ik=i-l【答案】D39、若有说明语句"inta[5],*p=a;",则对数组元素的正确引用是一a[p]p[a]C^*(p+2)D、p+2【答案】C40、设有如下枚举类型定义:enumlanguage{basic=3,assembly,ada=100,cobol,fortran);枚举量fortran的值为。A、4B、7C、102D、103【答案】C41、以下关于c/c语言指针变量的叙述中,正确的是oA、指针变量可以是全局变量也可以是局部变量B、必须为指针变量与指针所指向的变量分配相同大小的存储空间C、对指针变量进行算术运算是没有意义的D、指针变量必须由动态产生的数据对象来赋值【答案】A【解析】存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。选项A显然是正确的。对于选项B,指针变量和指针所指向的变量存放的内容是不一样的,只要分配够用就行了,不需要分配一样大小的存储空间。对于选项C,指针变量加1便指向下一个存储单元,是有意义的。另外指针变量可以静态地定义。42>有以下程序#defineP3voidF(intx){return(P*x*x);}main()(printf("%d\n”,F(3+5));}程序运行后的输出结果是.A、192B、29C、25D、编译出错【答案】D43、若inti=10;执行下列程序后,变量i的正确结果是switch(i)case0:i+=l;i+=l;i+=l;default:i+=l;)A、10B、11C、12D、13【答案】D44、以下叙述中正确的是。A、N-S流程图只能描述简单的顺序结构的程序B、程序的算法只能使用流程图来描述C、结构化程序的三种基本结构是循环结构、选择结构、顺序结构D、计算机可以直接处理C语言程序,不必进行任何转换【答案】C【解析】N-S流程图是可以描述循环结构、选择结构、顺序结构等多种结构的程序,所以A选项错误。程序的算法可以用流程图、伪代码、N-S结构图等方法表示所以B选项错误。计算机只能处理二进制表示的目标程序不能直接执行由C语言编写的源程序所以D选项错误。45、如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};则数组a的大小是.A、10B、11C、8D、不定【答案】A46、下列关于实型变量书写正确的是oA、E3B、2e0.3C、1.2e3D、1.2E0.3【答案】C47、若有以下定义,则对a数组元素的正确引用是ointa[5],*p=a;A、*&a[5]B^*a+l*(p+5)*(a+2)【答案】I)【解析】本题考查通过指针引用数组元素。选项A)、B),没有这种引用形式;选项C),*(p+5)是引用数组的第6个元素,而数组一共有5个元素,出现越界:选项D),*(a+2)引用数组的第3个元素。48、数据的存储结构是指oA、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示【答案】I)【解析】数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构,所以选项D正确。49、下列变量定义中,错误的是»intx=3;floatf;d;Strings="Hello!”;booleanb=true;【答案】B【解析】A选项定义了一个整型;C选项定义了一个字符串;D选项定义了一个布尔型变量:B选项中的f;d不符合标识符规范,因而选B。50、函数调用语句:fseek(fp,-201,2);的含义是.A、将文件位置指针移到距离文件头20个字节处B、将文件位置指针从当前位置向后移动20个字节C、将文件位置指针从文件末尾处退后20个字节D、将文件位置指针移到离当前位置20个字节处【答案】CC语言程序设计专升本测试卷(二)一、单项选择题(每小题2分,共100分)1、若X是整型变量,pb是类型为整型的指针变量,则正确的赋值表达式是一pb=&x;pb=x;*pb=&x;*pb=*x【答案】A2、以下不能正确赋值的是.charsl[10]B、chars2口={'t','e','s','t'}chars3[20]="test";chars4[4]={'t','e','s','t'}【答案】A3、选择出合法的if语句(设intx,a,b,c;)0TOC\o"1-5"\h\zA、if(a=b) x++;B、if(a=<b) x++;C>if(a<>b) x++;D、if(a=>b) x++;【答案】A【解析】A虽然是赋值语句,但是在逻辑运算中自动将赋值语句的结果当作逻辑值,方法是,如果赋值语句的结果是非零值则当作逻辑真,否则当作逻辑假。C语言中关系运算符有V(小于)、>(大于)、>=(大于等于)、〈二(小于等于)、=(等于)、!■(不等于)等六种,可见其他的条件表达式中的关系符写错To4、有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case0:prinft(z<%d/z,i);case2:prinft('%d”,i);default:prinft(z<%d/z,i);))程序运行后的输出结果是。022111021021000122D、012【答案】C【解析】本题考核的知识点是for循环和switch语句的混合应用.程序中for循环了三次,第一次i=0,执行switch语句中case。:分支,直到遇到default语句,退出switch,这里共执行三个输出语句分别输出0,0,0,第二次循环i=l,switch语句中没有匹配的分支,故只执行default语句输出1,退出switch语句;第三此循环i=2,从switch语句中的case2:开始执行,共执行了两个输出语句输出2、20最后输出的结果为000122.所以,4个选项中选项C符合题意。5、下列表达式中,类型可以作为int型的是o“abe"+"efg”〃abc"+"efg"C、‘a'+'b'D、3+"4"【答案】c【解析】选项A的运算结果为字符串类型;选项B语法错误;选项D的运算结果也是字符串;只有选项C可以看做是两个字符的ASCII值相加,结果为int型。6、有定义:char**pl,*p2;则下列表达式中正确合理的是。pl/=5pl*=p2pl=&p2pl+=5【答案】c7、下面程序段的运行结果是ochar*format="%s,a=%d,b=%d\n”;inta=l1,b=10;a+=b;printf(format,"a+=b",a,b);for,"a+二b",abformat,“a+二b〃a+=b,a=21,b=10D、以上结果都不对【答案】C【解析】字符串常量是由双引号括起来的一串字符,每一个字符串常量都分别占用内存中一串连续的存储空间,这些连续的存储空间实际上就是字符型一维数组。8、下列关于sizeof说法错误的是.A、sizeof运算符可以获取某个类型所占字节数B、sizeof运算符可以获取某个变量所占的字节数C、sizeof运算符获取某个变量的字节数与该变量的类型有关D、sizeof运算符获取某个变量的字节数与该变量的类型无关【答案】D9、有以下程序voidfun(chars[][10],intn){chart;inti,j;for(i=0;i<N-l;I++)for(j=i+l,j<N;J++)}/*比较字符串的首字符大小,并交换字符串的首字符*/if(s[i][0])>s[j][0]){t=s[i][0];s[i][O]=s[j][0];s[j][O]=t;)main()(charss[5][10]={abccM,"bbcc","xy","aaaacc","aabcc”};fun(ss,5);printf(w%s.%s”,ss[0],ss[4]);}程序运行结果是OA、xy,aaaaccaaaacc,xyXCC,aabccace,xabcc【答案】D10、以下能正确计算1X2X3X?X10的程序段是。A^do{i=l;s=l;s=s*i;i++;}while(i<=10);B、do{i=l;s=0;s=s*i;i++;}while(i<=10);i=l;s=l;do{s=s*i;i++;}while(i<=10);i=l;s=0;do{s=s*i;i++;}while(i<=10);【答案】cIk以下程序中函数scmp的功能是返回形参指针si和s2所指字符串中较小字符串的首地址#include<stdio.h>^include<string.h>char*scmp(char*sl,char*s2)(if(strcmp(sl,s2)<0)return(si);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[l]));/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);)若运行时依次输入:abed、abba和abc三个字符串,则输出结果为abedabbaC、abcD、abca【答案】B12、计算机中的数有浮点和定点两种表示,浮点表示的数,通常由两部分组成,即»A、指数和基数B、尾数和小数C、阶码和尾数D、整数和小数【答案】C【解析】在计算机中,带小数点的数通常有两种表示方法,即定点数和浮点数。所谓浮点数,是指小数点位置可以浮动的数。一个二进制的浮点数可以用阶码和尾数来表示。13、关于宏定义命令,叙述正确的是»A、在程序编译前进行宏替换B、在程序编译时进行宏替换C、在程序编译后进行宏替换D、在程序运行时进行宏替换【答案】A【解析】宏定义命令的一般格式是:define宏名一串符号,在程序清单中可以出现已经定义过的“宏名”,称为“宏调用”;当对源程序清单进行编译之前,将把所有的“宏名”替换成对应的“一串符号”,称为“岩替换”。14、有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++){b[i]=a[i][i]-a[i][N-l-i];voidmain() {intx[N][N]=l,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,y[N],i;fun(x,y);for(i=0;iVN;i++)printf("%d,",y[i]);printf(〃\n");程序运行后的输出结果是—A、-12,-3,0,0,B、-3,-1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,【答案】B【解析】fun函数的功能是求出二维数组a中第i行第i个元素与第N1-i元素的差,赋给b[i]。在主函数中,把实参二维数组x和一维数组y传递给形参a和b,最后输出一维数组y中元素的值。15、下列程序执行后的输出结果是main()(intx=,f';printf(*%c\n",'a'+(x」a*+1));A、GB、HC、ID、J【答案】D16、下列叙述中正确的是oA、break语句只能用于switch语句B、在switch语句中必须使用defaultC、break语句必须与switch语句中的case配对使用D、在switch语句中,不一定使用break语句【答案】I)【解析】break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。default语句的功能是如果所有case后面的语句都不执行的时候,就转去执行default后的语句,它可以省略不写。前面我们说过,break语何可以出现在循环语句中,所以选项C)也是错误的。17、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是main()int*p,*q,a,b;p=&a;printf("inputa:〃);scanf("%d",*p);}A^*p表示的是指针变量p的地址B、*p表示的是变量a的值,而不是变量a的地址C、*p表示的是指针变量p的值D、*p只能用来说明p是一个指针变量【答案】B【解析】考查格式输入语句scanf的使用。本题经过定义语句和赋值后,p表示的是变量a的地址,*p表示的是变量a的值。18、下列程序的输出结果为.mainO|intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+l/2;printf("%f\n”,x);}A、27.000000B、27.500000C、28.000000D、28.500000【答案】A19、对二维数组的正确定义是.A,inta[][]={1,2,3,4,5,6};B、inta[2][]={1,2,3,4,5,6};C,inta[][3]={1,2,3,4,5,6};D、inta[2,3]={1,2,3,4,5,6};【答案】C20、相同结构体类型的变量之间,可以.A、相加B、赋值C、比较大小D、地址相同【答案】B21、在c语言程序中,注释部分从哪开始,到哪结束?()A、从"("开始到")"结束B、从REM开始无结束标志C、无起始标志D、从"/*"开始,"*/"结束【答案】I)【解析】c语言中的多行注释从从“/*”开始,“*/”结束22、以下合法的赋值语句是A、X=Y=100B、D—;X+Y;C=INT(A+B)【答案】B23、对于if(表达式)语句,以下说法正确的是一A、“表达式”的值只能是整数值B、在“表达式”中不能调用返回整数的函数C、在“表达式”中不能含有函数调用D、“表达式”可以是算术表达式【答案】I)【解析】C语言规定,if(表达式)语句中的“表达式可以是关系表达式、逻辑表达式,甚至是数值表达式,允许函数调用,但调用函数的返回值必须符合要求,因此选项ABC错误,选项D正确;本题答案为D24、以下()循环并非重复5次?A、inti;for(i=l;i<6;i++){}B、inti;for(i=0;i<5;i++){}C、inti;for(i=0;i<=5;i++){}D、inti;for(i=l;i<=5;i++){}【答案】C25、下列函数的功能是ointfunl(char*x)(char*y=x;while(*y++);return(y-x-1);}A、求字符串的长度B、比较两个字符串的大小C、将字符串X复制到字符串丫D、将字符串X连接到字符串丫后面【答案】A26、表达式k=l*3?2:0的值是。A、3B、2C、1D、0【答案】B27、以下程序段给数组所有元素输入数据:mainO(inta[10],i=0;while(i<10)scanf;}应在下划线处填入的是。A、a+(i++)B、&a[i+l]C、a+iD、&a[++i]【答案】A28、以下表达式中,其值不等于数值3的是.A、0+'3'B、‘D'-'A'C、’3'-'0'D、'd'-a'【答案】A【解析】字符3的ASC码值是51,所以选项A的值是■字符DA的ASC码值是68、65,选项B结果为3;字符3、的AC码值是51、48,选项C结果为3;字符d'的ASC码值为:100、97,选项D结果为3,本题答案为A。29、下面各语句行中,能正确进行字符串赋值操作的语句是A、charST[5]={*ABCDE*};B、charS[5]={'A','B','C,'D','E'};char*S;S="ABCDE”;char*S;scanf( ,S);【答案】c30、c语言可执行程序从什么地方开始执行?()A、程序中第一条可执行语句B、程序中第一个函数C、程序中的main。函数D、包含文件中的第一个函数【答案】C31、设有如下函数定义:intf(chars[])(inti=0;while(s[i++]!='\0');return(i-l);)则输出结果为.如果在主程序中用下面的语句调用上述函数则输出结果为.A,3B、6C、8D、9【答案】C32、若有条件表达式(exp)a++:b-,则以下表达式中能完全等价于表达式(exp)的是A、(exp==O)B、(exp!=O)C、(exp==l)D、(exp!=l)【答案】B【解析】条件运算符要求有3个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式17表达式2:表达式3其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。并且注意++、--的用法。printf(*%d(++p)->x);printf(*%d",++(*p->y));102020506021516021607031【答案】c【解析】初始化后,aa[0].x赋值为50,aa[0].y指向dt[0];aa[l].x赋值为60,aa[l].y指向dt[l];aa[2].x赋值为70,aa[2].y指向dt[2];aa[3].x赋值为80,aa[3].y指向dt[3]。++p->x是将aa[0].x自增1,返回51;(++p)->x返回aa[l].x的值,即60;++(*p->y)将aa[l].y指向的dt[l]的值自增1,返回21。35、下列程序的输出结果是.main()(inta=l,b=2;printf("%d,%d\nzz,-a,++b);A、1,2B、1,3C、0,2D、0,3【答案】I)【解析】本题主要考查自加(++)、自减(~)运算符的使用。“++i,■”在使用i之前,先使i的值加1或者减1,然后再使用i此时的值参与运算;“i++,i-”是在使用i参与表达式运算之后,再使i的值加1或者减10本题中一a和++b是先执行a减1和b加1操作,再输出表达式的值。while(--y);printf("%d\n”,y―);)A、-1B、1C、8D、0【答案】Ainta[10]={6,7,2,9,1,10,5,8,4,3,},*P»*s;for(p=a,s=a;p-a<10;p++)if()s=p;printf("themax:%d”,*s):)则在if语句中的判断表达式应该是oA、p>sB、*p>*sC、a[p]>a[s]D、p-a>p-s【答案】B40、设有以下说明语句:structstu{inta;floatb;)suttype;则下面叙述不正确的是.A、struct是结构体类型的关键字B、structstu是用户定义的结构体类型C、suttype是用户定义的结构体类型名D、a和b都是结构体成员【答案】B【解析】stu是结构体类型,suttype是该类型的变量名41、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为.A、a<>0B、!aC、a=0D、a【答案】D42、在c语言中(以16位pc机为例),五种基本数据类型存储空间长度的排列顺序是.A、char<int<longint<=float<doubleB、char=int<longint<=float<doubleC、char<int<longint=float=doubleD、char=int=longint<=float<double【答案】A43、有以下程序:main(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf('%d”,d+++1);elseprintf("%d”,++d+l);printf("%d\n",d);)程序运行后的输出结果是OA、2B、3C、43D、44【答案】A【解析】本题考查嵌套if语句中else的配对。本题中else和第二个if即if(b>c)配对。由于a>b不成立,因此整个程序只输出printf("%d\n".d),即输出2.44>设有声明语句:inta=l,b=0;则执行以下语句后输出()switch(a)case1:switch(b)case0:printf("”**0**〃");break;printf("”**1**"");break;printf("〃**2**"");break;**0****0****2****o****i****2**D、有语法错误【答案】B45、函数调用:strcat(strcpy(strl,str2),str3)的功能是 。A、将串strl复制到串str2中后再连接到串str3之后B、将串strl连接到串str2之后再复制到串str3之后C、将串str2连接到串strl之后再将串strl复制到串str3中D、将串str2复制到串strl中后再将串str3连接到串strl之后【答案】D46、以下定义语句中正确的是.A、inta=b=O;B>charA=65+l,b=,b*;C、floata=l,*b=&a,*c=&b;D、doublea=0.0,b=l.1;【答案】B47、设charstr[100];inti=5;则引用数组元素的错误形式的是str[I+10]♦(srr+(str+I-1)D、*(&(str++)+【答案】D48、下列正确的标识符是—A、_doB、6aC、%yD、a+b【答案】A49、宏定义用于将一个标识符定义为一个A、常量B、字符串C、整数D、长整数【答案】B【解析】宏定义用于将一个标识符定义为一个字符串50、对于用"r”方式打开文件下列说法正确的是.A、用"r”方式打开的文件只输入不能输出B、用"r”方式打开的文件只能输出,不能输入C、用"r”方式可以打开任何文件D、以上均不对【答案】AC语言程序设计专升本测试卷(三)一、单项选择题(每小题2分,共100分)1、已知大写字母a的ascii码是65,小写字母a的ascii码是97,以下不能将变量c中的大写字母转换为对应小写字母的语句是。A、c=(c'A')%26+'a'c=c+32C、c=c-A'+'a,D、c=('A'+c)%26」a'【答案】I)【解析】由97-65=32可知大写字母对应的小写字母之间相差32,所以将大写字母加上32就得到小写字母,所以选项B和C是正确的。选项A中(c」A')%26可以求出变量c中的字母与字母A相差几位,那么小写字母a的ASCII码向后移动相差的位数就是对应的小写字母,所以选项A也是正确的。2、与十进制数245等值的二进制数是A、11111110B、11101111C、11111011D、11101110【答案】A【解析】十进制向二进制的转换采用“除二取余”法,本题计算过程如下。3、与"y=(x>0?l:xV0?T:0)”;的功能相同的if语句是A、if(x>0)y=l;B、if(x)elseif(x>0)y=l;elsey=0;elseif(x%0)y=T;elsey=0;y=-ly=0;if(x)if(x>=0)if(x>0)y=l;if(xi>=0)y=l;elseif(x==0)y=0;elsey=-l;elsey="l;【答案】B4、下面程序的运行结果是.^include<stdio.h>mainO{inta=l,b=10;do(b-=a;a++;}while(b--<0);printf(*a=%d,b=%d\n*>a,b);)a=3,b=lla=2,b=8a=l,b=-la=4,b=9【答案】B【解析】本题考查两个知识点:自加自减运算符和do-while循环语句。do-while循环条件是b—V0,所以循环体语句只执行一次。5、以下程序运行后的输出结果是ttinclude<stdio.h>voidfun(inta,intb){intt;t=a;a=b;b^t;)main(){intc[10]=l,2,3,4,5,6,7,8,9,0,i;for(i=0;i<10;i+=2)fun(c[i],c[i+l]);for(i=0;i<10;i++)prinff(*%d, c[i]);printf(〃\n");A、1,2,3,4,5,6,7,8,9,0TOC\o"1-5"\h\zB、2, 1, 4, 3, 6, 5, 8, 7, 0, 9C、0, 9, 8, 7, 6, 5, 4, 3, 2, 1D、0, 1, 2, 3, 4, 5, 6, 7, 8, 9【答案】A【解析】fu■函数无值返回.main函数调用时数组元素作实参,形参的改变不会影响实参。因此,循环调用结束后,C数组没有任何改变。6、设a为int型变量,执行下列赋值语句后,a的取值分别为()a=125.534;a=20.0/3;a=20%3;a=(int)125%521%4;a=5<<2;A、125,6.666666,2,1,1B、125,6,2,1,1C、125.534,6.666666,2,1,20D、125,6,2,1,20【答案】D7、下面说明不正确的是chara[10]=*china*;chara[10],*p=a;p="china”char*a;a="china”;chara[10],*P;P=a="china”【答案】D【解析】C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数组之中;②用字符指针指向字符串,然后通过字符指针来防问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针°本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值.8、若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式为()。A、p+1B、a+1C、a++D、++p【答案】C9、以下选项中关于c语言常量的叙述错误的是.A、所谓常量,是指在程序运行过程中,其值不能被改变的量B、常量分为整型常量、实型常量、字符常量和字符串常量C、常量可分为数值型常量和非数值常量D、经常被使用的变量可以定义成常量【答案】D10、以下不正确的定义语句是—unsignedinta=-100u;longb=OL;shortc2=0123;intd=0x0;【答案】A11、c语言程序的基本单位是.A、程序行B、语句C、函数D、字符【答案】C12、c语言的编译系统对宏定义的处理是oA、在程序连接时进行的B、在程序运行时进行的C、在对源程序中的其它语句进行编译前进行的D、和C程序中的其它语句同时进行编译的【答案】C【解析】所谓“编译预处理”就是在C编译程序对C源程序进行编译前,由编译预处理程序对这些编译预处理命令进行处理的过程。宏定义属于预处理命令,在对源程序中的其它语句进行编译前进行的。本题答案为C选项。13、设有如下函数定义:intfun(intk)if(k<l)return0;elseif(k-l)return1;elsereturnfun(k-l)+1:若执行调用语句:"n=fun(3);”,则函数fun总共被诃用的次数是A、2B、3C、4D、5【答案】B14、设有以下程序段:inta[5]=0,*p,*q;p=a;q=a;则下列选项中,合法的运算是A、p+qB、p-qC、p*qD、p%q【答案】B【解析】本题考核指针的运算。C语言中,指向同一字符串的指针之间能且只能进行减运算,减运算后返回的是一整型数,表示指针之间的地址偏移量。15、有以下程序voidsum(int*a)(a[0]=a[l];}main(){intaa[10]-{l,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i一一)sum(&aa[i]);printfCz%d\nzz,aa[0]);}执行后的输出结果是OA、4B、3C、2D、1【答案】A16、若a和b均是整型变量并已正确赋值,正确的switch语句是—A、15B、50C、55D、5【答案】C【解析】仔细观察case后的语句,每个都没有用break关键字;在switch语句中,是通过break关键字来退出switch语句的。而在题目中,case8:k++;后没有break,则继续执行k+=2;这时还没有break语句,继续执行,这时的k的值是33;一直执行完k+=3;这时k的值是36;default语句是当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句。在题目中,因为在执行完case10:k+=3;后还没有break,所以要执行k=k/j得k的值是2。break语句是用来退出循环,并从紧跟该循环语句的第17、若有说明:intn=2,*p=&n,*q=p,则以下非法的赋值语句是:()A、p=q*p二*qC>n=*qD、p=n【答案】D18、有如下程序main()(inta[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j]];printf(线d\n”,s);)该程序的输出结果是OA、18B、19C、36D、26【答案】D19、设floatf[10];则f数组中下标最大的元素的正确表示为f[10]f[0]f[9]f(9)【答案】C20、下面哪个不是关键字?A、intstructdefinecontinue【答案】C21、关于二进制的说法中,正确的是oA、所有的信息只能用二进制代码来表示B、计算机一般都使用二进制代码,用它的某种信息编码方式来表示信息C、ASCII是计算机用来表示文字符号的唯一一种二进制代码D、汉字在计算机内使用汉字国标码来表示,不使用二进制编码【答案】B【解析】计算机不只是能用二进制,还有八进制、十进制、十六进制。22、以下符合c语言语法的实型常量是。A、1.2E0.5B、3.14.159EC,.5E-3D、E15【答案】C23、若函数调用时参数为基本数据类型的变量(俗称简单变量),以下叙述正确的是A、实参与其对应的形参共占存储单元B、只有当实参与对应的形参同名时才共占存储单元C、实参与其对应的形参分别占用不同的存储单元D、实参将数据传递给形参后,立即释放原先占用的存储单元【答案】C24、已知:inta,b;下列switch语句中,()是正确的。A、switch(a)casea:a++;break;caseb:b++;break:B>switch(a+b)case1:a+b;break;case1:a-bC、switch(a*a)case1,2:++a;case3,4:++b:D>switch(a/10+b)case5:a/5:break:default:a+b;【答案】D25、若有以下定义和语句,则输出结果是.int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf*p,**pp);10,2010,1020,1020,20【答案】D26、c语言源程序名的后缀是oA、cB、cpC、objD、exe【答案】A27、以下二维数组c的定义形式是A、intc[3]B、floatc[3,4]C、doublec[3][4]D、floatc3)4)【答案】c28、若变量已正确定义,表达式(户3,j++)的值是A、3B、4C、5D、6【答案】A29、以下选项中关于c语言常量的叙述错误的是oA、经常被使用的变量可以定义成常量B、常量分为整型常量、实型常量、字符常量和字符串常量C、所谓常量,是指在程序运行过程中,其值不能被改变的量D、常量可分为数值型常量和非数值型常量【答案】A30、下列叙述中正确的是oA、每个C语言程序文件中都必须要有一个main。函数B、在C语言程序中main。函数的位置是固定的C、C语言程序中所有函数之间都可以相互调用,与函数所在位置无关D、在C语言程序的函数中不能定义另一个函数【答案】A【解析】mam函数是C语言程序的主函数,可以出现在程序中的任何位置。函数是C语言程序的基本模块,函数内部可以再定义其他函数。但函数间可相互调用,被调用的既可以是C语言提供的库函数,也可以是用户自定义的函数。31、以下关于字符串的叙述中正确的是。A、空串比空格打头的字符串小B、两个字符串中的字符个数相同时才能进行字符串大小的比较C、可以用关系运算符对字符串的大小进行比较D、C语言中有字符串类型的常量和变量【答案】A【解析】字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,B选项不正确;字符串比较大小除了使用库函数strc3()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小。因为字符串在表达式中相当于constchar*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。C选项不正确。C语言中只有字符串常量而没有字符串变量,D选项描述不正确;空串的长度为0,而以空格打头的字符串的长度至少为■因此A选项是正确。32、在下列给出的表达式中,与while(e)中的(e)不等价的表达式是.A、(!E=0)B、(E>0||E<0)C、(E=0)D、(E!=0)【答案】B33、以下正确的说法是.A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共用一个存储单元C、只有当实参和与其对应的形参同名时才共用存储单元D、型参是虚拟的,函数在没有被调用时,不占用存储单元【答案】I)【解析】形参在个数和类型上要与实参匹配,形参在未被调用之前,不占用存储单元。34、有以下程序structstu{charname[10];intnum;floattotalscore;);voidf(structstu*p)(structstus[2]={{*sundan*,20044,550},{*penghua*,20045,537}},*q=s;++P;++q;*p=*q;)mainO(structstus[3]={{"yangsan”,20041,703},{"lisiguo”,20042,580}};f(s);printfC%s%d%3.Of\nz,,s[l].name,s[l].num,s[l].totalscore);}程序运行后的输出结果是OSunDan20044550Penghua20045537LiSiGuo20042580SunDan20041703【答案】B35、阅读下面的程序main()(inti,j;charch;scanf(*%d%c%f*»&i,&ch,&j);printfC%d%2c%7.2f”,i,ch,j);}如果从键盘上输入123al23x.12V回车〉则程序的运行结果是。A、123al23.00B、123a123.12C、123al23.12D、123a123.00【答案】D36、以下描述中正确的是.A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D,do-while循环中,根据情况可以省略while【答案】C37、有以下程序main()(char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++)(j=0;while(p[i][j]!='\0z)(if((p[i][j]-'O')%2)num=10*num+p[i][j]-'O'j+=2;)}printf("%d\n",num);}程序执行后的输出结果是 。A、35B、37C、39D、3975【答案】c38、有以下程序:main(){intaa[4][4]={{l,2,3,4},{5,6,7,8],{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是oA、11B、19C、13D、20【答案】B39、以下一维数组a的正确定义是—A、intn=10,a[n];intn;ttdefineSIZE10scanf&n);inta[SIZE];inta[n];inta(10);【答案】c40、设有以下语句typedefstructtt{charc;inta[4];}cin;则下面叙述中正确的是.A、可以用TT定义结构体变量B、TT是struct类型的变量C、可以用CIN定义结构体变量D、CIN是structTT类型的变量【答案】D41、下列不是合法的c语言语句是.A、a=5inti;i++;C、;D、;【答案】A【解析】选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。42、若已定义x和y为int类型,若x=l,y=x+3/2,则y的值是。A、1B、2C、2.0D、2.5【答案】B43、若a的值为3时,下列程序段被执行后,c的值是ointc=1;if(a>0)if(a>3)c=2;elsec=3;elsec=4;A、1B、2C、3D、4【答案】c【解析】此题主要考查if-else的使用,当if语句中的条件为真时执行后的语句,并跳过else执行下面的语句;当条件为假时执行else后的语句。44、要求通过while循环不断读人字符,当读入字母n时结束循环,若变量已正确定义,下列正确的程序段是oA、while((ch=getchar())!=,N*)printf(w%c”,ch);B>while(ch=getchar()!=,)printf(w%c”,ch);C>while(ch=getchar()=,N*)printf(w%c”,ch);D>while((chgetchar())==,N*)printf(w%c”,ch);【答案】A45、fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是.ttdefineN5voidfun(intx[N]){intm;for(m=N-t;m>=0;m-)scanf ;)%&X[++m]&x[m+l]C、x+(m++)D、x+m【答案】D46、与数学式子3乘以x的n次方/(2xT)对应的c语言表达式是—3*x*n/(2*x-l)3*x**n/(2*x-l)C、3*pow(x,n)*(1/(2*x-l))D、3*pow(n,x)/(2*x-l)【答案】c47、c语言中,数组名代表oA、数组全部元素的值B、数组首地址C、数组第一个元素的值D、数组元素的个数【答案】B48、在c语言中,字符型数据在内存中以()形式存放。A、补码ASCII码C、反码D、原码【答案】B49、以下正确的字符串常量是.A、"\\"B、'abc"OlympicGamesD、'A'【答案】A50、main(intargc,char*argv[]){while(-argc>0)printf(z/%sz,,argv[argc]);printf("\n");假定以上程序经编译和连接后生成可执行文件prog,exe,如果在此可执行文件所在目录的dos提示符下键入:progabcdefghijkl/,则输出结果为ABCDEFGIJHLABCDEFGHIJKLIJKLABCDEFGH【答案】CC语言程序设计专升本测试卷(四)一、单项选择题(每小题2分,共100分)1、在c语言中,要求运算数必须是整数的运算符是—A、<B、%C、/D、>【答案】B2、在c语言系统中,假设int类型数据占2个字节,则double、long、unsignedint、char类型数据所占字节数分别多少()。A、8,2,4,1B、2,8,4,1C、4,2,8,1D、8,4,2,1【答案】D3、下列if语句中,不正确的是oA、if(x>y);B、if(x==y)x+=y;C、if(x!=y)scanf&x)elsex=l;D、if(x【答案】C4、有以下程序:mainO{ints=0.n;for(n=0;n<3;n++)(switch(s)(case0;easel:s+=l;case2:s+=2;break;case3:s+=3;default:s+=4;)printf(“%d,"s);})程序运行后的输出结果是o1,2,4,1,3,6,C>3,10,14,D、3,6,10,【答案】c5、c语言源程序的基本单位是0A、过程B、函数C,子程序1)、标识符【答案】B6、若有定义inta-2;则执行完语句a/=a*a;后,a的值是。A、0.5B、0C、1/2I)、1/4【答案】B7、设有下面的程序段:chars[]="china";char*p=s;则下列叙述正确的是A、数组s中的内容和指针变量p中的内容相等B、s和p完全相同C、s数组长度和p所指向的字符串长度相等D,*p与s[0]相等【答案】D8、算法的每一步都是可执行的,都是可以实现的,指的是算法的()特点A、确定性B、有穷性C、可行性D、输出【答案】C9、设有字符串a="hehas钱!",则该字符串的长度为(兀A、9B、10C、11D、8【答案】B10、已知:intn=10;在下列定义引用的语句中,正确的是.int&x=n;intx=&n;int&x;int&x=&n;【答案】A【解析】引用是个别名,建立引用后,引用即作为目标的别名而使用,对引用的改动实际上就是对目标的改动。要求引用的声明语句要同时包括变量的数据类型、引用操作符“&”、引用名、赋值符号和目标名。引用在声明时必须进行初始化,一旦初始化,便不能作为其他变量的引用而使用。11、若有以下定义和语句:char*sl="12345。*s2="1234";printf("%d\n",strlen(strcpy(si,s2)));则输出结果是oA、4B、5C、9D、10【答案】A【解析】函数strcpy(sl,s2)的返回结果是指针si的新值"1234",因此求串长函数的结果为4。12>若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是»A、5.5B、5C、3D、4.0【答案】C13、以下叙述中正确的是.A、不能用字符串常量对字符数组名进行整体赋值操作B、字符串常量"Hell」会被隐含处理成一个无名字符型数组,它有5个元素C、charstr[7]="string!”;在语法上是合法的,运行也是安全的D、char*str;str="Hello”;与charstr口;str="Hello”;效果是一样的【答案】A【解析】字符数组在定义时可以用字符串赋初值,其后就不可以再用字符串常量进行赋值。答案选择A。14、以下程序有语法错误,有关错误原因的正确说法是mainO(intg=5,k;voidprt_char();k=prt_char(g);A、语句voidprt_char();有错,它是函数调用语句,不能用void说明B、变量名不能使用大写字母C、函数说明和函数调用语句之间有矛盾D、函数名不能使用下划线【答案】C【解析】在C语言中,对于返回值是其他类型的函数,若把函数定 调用之后,应该在调用之前对函数进行说明,或称为函数原型说明。函数说明句中的类型必须与函数返回类型一致,函数说明可以是一条独立的语句,也可以与普通变量一起出现在同一个语句中。对于函数值为整型的函数的说明,prtchar中定义时是void类型,那天返回值与k=prtchar();矛盾。所以本题的错误之处在于“函数说明和函数调用语句之间有矛盾。”15、有以下程序^include<stdio.h>main()(inta=2,b=3,c=4;a*=16+(b++)-(++c);printf(*%d\n”,a);}程序运行后的输出结果是。A、28B、30C、15D>14【答案】A16、以下选项中哪些描述是不正确的?A、循环语句必须要有终止条件否则不能编译B、break关键字用于跳出当前循环C、continue用于终止本次循环,执行下一次循环D、switch条件语句中可以使用break【答案】A17、下面描述正确的是.A、两个字符串包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串"STOP"与"STOP■”相等D、字符串"That"小于字符串"The”【答案】D18>下面程序段的运行结果是.intn=0;while(n++<=2);printfn);A、2B、3C、4D、有语法错【答案】C19、下面程序段的功能是。……inta[]={4,0,2,3,1),i,j,t;for(i=0;<5;i++){t-a[i];j=i;j—;)while(j>=O&&t>a[j])(a[j+l]=a[j]:J—;a[j+l]=t;}A、对数组a进行插入排序(升序)B、对数组a进行插入排序(降序)C、对数组a进行选择排序(升序)D、对数组a进行选择排序(降序)【答案】H【解析】本题考查数组的使用,注意插入排序方法。20、c语言结构体类型变量在程序执行期间,=A、所有成员一直驻留在内存中B、没有成员驻留在内存中C、部分成员驻留在内存中D、只有一个成员驻留在内存中【答案】A21、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是一A、-3B、9C、-12D、6【答案】C22、将十进制数0.625转换成二进制数是。A、0.IllB、0.101C、0.5D、0.A【答案】B23、下面不正确的描述为oA、调用函数时,实参可以是表达式B、调用函数时,实参与形参可以共用内存单元C、调用函数时,将为形参分配内存单元D、调用函数时,实参与形参的类型必须一致【答案】B【解析】函数调用时用实参替换形参,如果实参为表达式,将为表达式的值创建一个临时对象,然后将该实参替换形参。替换的实质是变量间的拷贝当然这种拷贝需要为形参分配内存。需要注意的是:形参在编译时不分配内存,在运行时才分配内存。24、下面的程序mainO(inta=2;do(printf("%d\n”,a-=2);)while(!(一a));A、输出的是0B、输出的是0和-3C、输出的是3和0D、是死循环【答案】A25、设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是*p=*q;p=q;*p=&nl;p=*q;【答案】A26、下列定义不正确的是oA、#definePI3.141592#defineS345C、intmax(x,y);intx,y;{}D、staticcharc;【答案】c27、以下叙述中错误的是.A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B、数组名代表的是数组所占存储区的首地址,其值不可改变C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D、可以通过赋初值的方式确定数组元素的个数【答案】C28、关于c语言中数的表示,以下叙述中正确的是.A、只有整型数在允许范围内能精确无误地表示,实型数会有误差B、只要在允许范围内整型数和实型数都能精确地表示C、只有实型数在允许范围内能精确无误地表示,整形数会有误差D、只有用八进制表示的数才不会有误差【答案】A29、设有两个字符串p和q,其中q是p的子串,把q在p中首次出现的位置作为子串q在p中位置的算法称为(43)„A、求子串B、匹配C、连接D、求串长【答案】B【解析】本题考查对字符串进行处理的算法。求子串是在一个主字符串中按一定的规则取出任意个连续的字符得到一个新■匹配是指求一个字符串是另一个字符串的子串,并返回子串首次出现的位连接是指把一个字符串的内容连接到另一个足够大的字符串的末尾。求串长就是统计字符串中有效字符的个数。30、设n=886,m=345,k='m+n,表达式l+&k的值是A、1232B、数据类型不匹配C、1+M+ND、346【答案】A【解析】[知识点]数据类型和主要文件类型也是一个宏替换命令,用来替换恢复所代表的内容。所以表达式:1+&K也就变成了1+M+N,所以最后的结果应该是:1232。经过“&”运算后,&K的值是1231,所以表达式的结果是1232。31、c语言中不可以嵌套的是—A、函数调用B、函数定义C、循环语句D、选择语句【答案】B32、在标准ascii编码表中,数字码、小写英文字母和大写英文字母的前后次序是—A、数字、小写英文字母、大写英文亨母B、小写英文字母、大写英文字母、数字C、数字、大写英文字母、小写英文字母D、大写英文字母、小写英文字母、数字【答案】C【解析】在标准ASCH码表中,数字码、小写英文字母和大写英文字母的前后次序是:数字、大写英文字母、小写英文字母。33、下列函数中,用于向控制台输出信息的是?A、scanf()B、printfOC、sum()D、max()【答案】B34、有以程序#include<stdio.h>#include<string.h>typedefstruct(charname[9];charsex;floatscore[2];}stu;voidf(stua){stub={*zhao*,9m,,85.0,90.0};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}main(){stuc={"qian",'p',95.0,92.0};f(c);printf(*%s,%c,%2.Of,%2.0f\n”,,c.sex,c.score[0],c.score[1]);}程序的运行结果是OA、Qian,f,95,92B、Qian,m,85,90C、Zhao,f,95,92D、Zhao,m,85,90【答案】A35、有以下程序:main(){intx=0,y=5,z=3;while(z―>0&&++x<5)y=y-l;printf("%d,%d,%d\n”,x,y,z);程序执行后的输出结果是。3,2,03o2.14,3,-15,2.-5【答案】B36、若有程序段:x=99;while(x-2)x—;则循环结束时,x二oA、99B、2C、1D、0【答案】B37、设有定义:intx=0,*p;,立刻执行以下语句,正确的语句是p=x;*p=x;p二NULL;*p=NULL;【答案】c38、下列程序的输出结果是。#include<stdio.h>main()(union(intk;chari[2];)*s,a;s=&a;s->i[0]=0x39;s->i[l]=0x38;printf("%x\n”,s->k);38393938380039390038【答案】A39>设inta[10],*p=a;数组元素a[4]的正确引用是。A^*(p+4)B、p+4C^*p+4D、a+4【答案】A40、程序中有下面的说明和定义structabc(intx;chary;)structabcsi,s2;则会发生的情况是oA、编译出错B、程序将顺利编译、连接、执行C、能顺利通过编译、连接、但不能执行D、能顺利通过编译、但连接出错【答案】A41,已知大写字母a的ascii码是65,小写字母a的acsii码是97。下列能将变量c中的大写字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届辽宁省部分重点中学协作体高三模拟考试语文试题(原卷版+解析版)
- 农业生产责任及利润共享协议
- 高端餐饮场所服务合作协议
- 浙江国企招聘2025台州市国有资本运营集团有限公司招聘5人笔试参考题库附带答案详解
- 2025湖南高速养护工程有限公司招聘劳务派遣员工55人(长期)笔试参考题库附带答案详解
- 2025中国石油锦西石化公司春季高校毕业生招聘10人笔试参考题库附带答案详解
- 委托建设桥梁协议书范本
- 学习合同协议书
- 2024年油气储层保护剂项目资金需求报告代可行性研究报告
- 纺织法律法规理解试题及答案
- 第十四讲 建设巩固国防和强大人民军队PPT习概论2023优化版教学课件
- 第七讲 社会主义现代化建设的教育科技人才战略PPT习概论2023优化版教学课件
- 上海市中小学校长职级评定方案(常用版)
- 糖尿病胰岛素治疗专题患教用
- (通桥【2018】8370)《铁路桥梁快速更换型伸缩缝安装图》
- 钢结构柱垂直度检查记录样表参考
- 2023年犯罪学00235自考复习资料
- 般现在时和现在进行时练习题附答案
- 05G359-3 悬挂运输设备轨道(适用于一般混凝土梁)
- 2018年高考英语试题及答案(湖北卷)
- 小学体育教案-足球射门教案 全国通用
评论
0/150
提交评论