还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
语言考试题C
一一、单项选择题每题分,共分
220、以下选项中属于语言的数据类型是1C复数型A.逻辑型B.集合型C.双精度型D.、一个程序的执行是从2C函数开始,直到函数结束A.main main第一个函数开始,直到最后一个函数结束B.第一个语句开始,直到最后一个语句结束C.函数开始,直到最后一个函数结束D.main、设有语句则执行语句;后,变量的值是3int a=3;a+=a-=a*a aA.3B.0C.-12D.
9、若有{匕小则执行语句结果是4char c
[5]=0%print%,c;A.cd\0eC.cd;最后一个元素的首地址为:标准库函数中,数学函数的原型在头文件中,自定义头文件
6.C D\MYC\MY.应如何包含到源程序文件中HP.o已知函数定义为
8.int x,y,z=4;x=y=++z;;则的值是x=yzx+2x++x设;;,则、值分别是:inta=0,b=0,c=0c=++a||b++a b c与等价的写法是;
9.if x=0if!x判断两个变量是否相等一般:float x,z iffabcx-zle-6已知赋值语句;可判断是类型的变
10.zhang.year=1985zhang量;定义文件指针的语句是C二.单项选择题(每题分,共分)110组成程序的基本单位是
1.C O函数A.标识符B.表达式C.语句D.设类型的数据长度为字节,则该类型数据的取值范围是
2.int2O至A.065536至B.065535至C.-3276732768至D.-3276832767在语言中,逻辑值真〃是用表示的
3.C预定为真值的宏A.xx非零数
8.正数C.非零整数D.语言对于嵌套语句规定总是与匹配
4.C ifelse与最外层的A.if与之前最近的
8.if与之前最近的不带的C.else if与最近的{}之前的D.if数组定义{}
9.char a
[10]=a,b,c包括了几个元素A.3B.9C.4D.10数组名作为实参传给被调用的函数时,形参获得的是10该数组第一个元素的值A.该数组所有元素的值B.该数组第一个元素的首地址C.该数组所有元素的首地址D.为表示关系正确的语言表达式为11X2y2z,CA.x=y=zB.x=y ANDy=zC.x=yy=zD.xyy=z根据定义二;从语法分析是不正确
8.int a[]{1,2,3},i,*p=a的A.a[p-a]B.*aC.pD.**a+i若有语句〃;要使变量分别得到和;正
9.scanf%d%d,a,b a,b1234确的输入形式为oA.1234B.12,34C.1234D.1234;;
10.union uex{int ifloat fchar;;则的值是c Jexsizeof exA.4B.5C.6D.7三.分析程序,写出运行结果每题分,共分420源程序如下,运行时假定键盘输入字符串为、、、
1.2004#includevoid mainvoid{int n=0;char c;字符型数字*/二while c=getchar!=\n/*{if c=0c9数字*〃结果为n=n*10+c-O;/*/}printfvalue=%d|n,n;}value=2004o源程序如下
2.#include;void mainvoid{int num
[9]={399,398,397,396,395,299,290,311,301;int score
[9]={81,85,59,77,90,66,89,93,73};int iMax,iPos,i;iPos=0;iMax=score[iPos];;for i=l i9i++;if scoreiMax{iPos=i;〃;;iMa x=score[iPox]Jprintfnum=%d,score=%d,\num[iPos]score[iPos]结果为num=311,score=93o源程序如下,运行时假定键盘输入数据为
3.12345678910#include void;mainvoid{int i,a
[10];int*p;p=a;;for i=0i10i++;scant%d,p++;;forp=a pSPAN p++〃,;}结果为if*p%2printf%3d*p13579源程序如下,两次运行,分别输入数据和
4.1321#include#include;void mainvoid{int n,s;scant%d”,n;s=panduan n;if s==l printfyes\n;;else printfzzno\n}int panduanint n{int kJ;k=intsqrtdoublen;;forj=2j=k,j++{ifn%j==O break}ifjk return;1else return;}结果为0yes,源程序如下,运行时假定键盘输入字符为:no5AxByCz#include#include;void mainvoid{char str
[80];int i;getsstr;;fori=0str!=\O i++;ifstr=astr=zv str-=32;else if str=Axstr=Zx str+=32;}结果为:putsstraXbYcZo四.下列程序中每个划线处有一个错误,改正划线中的错误,使其实现题目要求每体分,共分420求、、、、、、
1.s=l+2+3++100改正为include改正为void sumvoid;{int s,i;;;改正为for s=0,i=l i=100i++{s=s+i++〃,改正为Jprintf s=%fs源程序实现求
2.x#include改正为double powjfloat.intvoid mainvoid{int i,n;float x;〃scanf%f,%d,x,n;for i=l;i9;i++printf%d,%e\n,i,powi,x;}改正为odouble vv powjfloatx,intn{int i;改正为double p=0;o改正为for i=l;i i++op*=x;retump;}源程序实现排升序
3.#includevoid mainvoid{int i,j,iMin,a
[10]={4,3,5,l,10,12,2,6,7,9},iTemp;改正为for i=0;i9;i++{iMin=0;for j=i+l;j10;j++改正为ifa[iMin]iMin=j;二二改正为if iMini{iTemp=a;改正为a[iMin]=a;a[iMin]=iTemp;}}fori=0;i10;i++printf%4d”,a:}源程序为求平均值
4.ttinclude改正为void mainvoid{int i,sum;float avg;int sc
[10],*p=sc;改正为for i=0,i10;i++〃,{scanf%d p++;改正为sum+=*p;o改正为}avg=sum/10;printfzzavg=%f\avg;}源程序求〃〃前项之和
5.+xn/n!n+1ttinclude;void mainvoid{float exp,x,tint i,n;〃scanf%f,%d,x,n;;改正为t=0Oexp=
1.0;改正为fori=l;i=n;i++{iftle-6loop;二改正为t+x/i;o改正为exp*=t;o}printf\n%
15.6f\exp;}五.编程题每题分,共分630根据以下程序框架,编写子函数,实现交换两个整型变量和的值
1.x y#includevoid swapint*,int*;void mainvoid{int x,y;〃scanf%d,%d,x,y;swap x,y;〃,printf%d,%d x,y;}void swap{}设某班人数人,参加语言考试,用一维数组存放考试成绩,
2.36C score
[36]已给出一部分程序,完善以下程序,使其实现统计并输出不及格人数及百分比#includevoid mainvoid{int i;float scoer
[36],precent;D.cd e、已知5则下列表达式不是的是int a
[2]
[3]={l,234,5,6},*p
[3]=a;4A.**p+3B.*p+3C.**p+0+3D.a
[0]
[3]、以下有宏替换不正确的叙述.6宏替换不占用运行时间A.宏名无类型B.宏替换只是字符串替换宏名必须用大写字母表示C.D.
7、执行char str
[10]=,,Ch\nina,;strlenstr的值是A.5B.6C.7D.
9、下面程序的输出结果是8#define POWERxx*xmain{int i=4;printf%d\POWERi-2;}A.-9B.-7int count=0;for i=0;i36;i++{scanf%f”,score;}完善以下程序使其实现由键盘任意输入一串字符,统计其中大写字母个数
3.i、小写字母个数其他字符个数A iaiothero#include#includevoid mainvoid{char str
[80];int i,iA=0,ia=0,iother=0;}完善以下程序使其实现求方阵主和辅对角线元素之和及其转置矩阵,设方
4.阵用二维数组表示,转置矩阵用表示,和表示主和辅对角线元素之和a tsi s2#includevoid mainvoid{int a
[3]
[3]={1,3,5,7,9,11,13,15,11;int i,j,si,s2;intt
[3]
[3];〃printf%d,%d,\n,sl,s2;fori=0;i3;i++forj=0;j3;j++已知字符数组编写返回指针的子函数,实现在其中查找字符
5.str
[80],ch首次出现的位置^include#include#includechar*lstrcharchar*,char;void mainvoid{char c,*p,str
[80];gets str;〃scanf%c,c;p=lstrcharstr,c;ifp==NULL printfzzchar%c notfound\nc;else printfzzTheposition is%d〃,p-str;char zzlstrcharC.5D.-
6、在定义后,第个元素是9inta
[3]
[4]
[2];10A.a
[2][l]
[2]B.a[l]
[0][l]C.a
[2]
[0][l]D.a
[2]
[2][l]、下面程序的输出结果是10typedef struct⑵{long x;short y
[4];char z
[8];JMYTYPE;MYTYPE a;main{printf%d\n,sizeofa;}A.2B.8C.14D.24
二、填空题每空分,共分
111、字符串在内存中占用的字节数为
1、语言中的标识符只能由字母、下划线和组成2C、若有定义语句以下语句的执行结果是3int a=25,b=14,c=19;,ifa++=25b--=2c++printf***a=%d,b=%d,c=%d\n,a b,c;else/printf,###a=%d b=%d c=%d\n,a,bc;/,,、有如下定义口=明\匕%%”;则执行语句,的结43172\\\printf%d strlena;果为、若有定义5inta
[12]={l,2,3,4,5,6,7,8,9,10,ll,02},*p[4Li;则的值为,的值为fori=0;i4;i++p[i]=a[i*3];**p+l+2*p
[2]若数组的首地址为则⑴指向的地址为o2000,P、设6a=2b=3,x=z二35y则表达式的结果是
2.5,floata+b/2+intx%inty、设、都是型变量,初值都为则执行表达式7x yint L后,的值为-xy++y、语句循环的次数是8fori=l;i==10;i++continue;、以下程序输出9main{enum em{eml=3,em2=l em3};/;;;char*aa[]={,,AA,,,BB,CC,DD};printf%s%s%s\n aa[eml]aa[em2]aa[em3];}///
三、写程序结果每题分,共分535main{int x,y,z;x=l,y=2,z=3;x+=y+=z;printf,,l:%d\n,,,z+=xyx++:y++;x=0x02ff;y=0xff00;printf,,2:%d\n,1,xy»410x005f;x=y=z=-l;++x||++y++z;printf3:%d,%d,%d\n,,,x,y,z;}、2#define fxx*xmain{int a=6,b=2,c;c=fa+b/fb;〃printf%d\n,c;}、3funint k%;{printf”cT,kifk0;funk-l}main;;;{int w=5funw printf”\n}、4#include main{int x=l,y=O;switchx{case1:switchy{case0:printfzzfirst\n,z;break;〃〃case l:printf second\n;break;}case2:printf third\n;}}、5#includemain{int k=4;funck;funck;}funcint a{static intm=0;m+=a;printf%d,m;}、6struct st{int x;int*y;}*p;ints[]={3020};zstruct sta[]={l,s
[0],2,s[l]};main{p=a;printf,,%d,,,,p-x;printf,%d\n,l,++*++p-y;}、假定在当前盘目录下有个文本文件,其名称和内容如下:72文件名al.txt a
2.txt内容ABCDEF#abcdef##include stdio.hmain{FILE*fp;void fc;iffp=fopena;l.txtl,,r,,==NULL{pnntfHCan notopen file!\nM;exit⑴;}else{fcfp;fclosefp;}iffp=fopena;
2.txt,,,r,,==NULL{printfMCan notopen file!\nM;exit⑴;}else{fcfp;fclosefp;}}void fcfplFILE*fpl;{char c;whilec=fgetcfpl!=,#,putcharc;}
四、程序填空每空分,共分
214、下面程序求矩阵的主对角线元素之和,请填空1amain{int a
[3]
[3]={2,4,6,8,10,12,14,16,18;int sum=0,i,j;fori=0;i3;
①forj=0;@;j++;ifi==j sum=sum+
③printfsum=%d\n,sum;}、下列函数把字符数组中的全部字符复制到字符数组中,复制时2coy S2SI也要复制过去八后面的字符不用T口,coychar sichar s2[]{int i;fori=0;s2[i]!=
①;i++sl[i]=s2[i];
②;}、下面程序的功能是将字符串中的下标为奇数的元素由小到大排序,其他3a元素不变,请填空main{char a[]=,,students,,,t;int i,j;fori=l;i7;i+=2forj=i+2;j8;
①if
②{t=a[i];a[i]=a[j];a[j]=t;}语言考试题putsa;}c二一.填空题每题分,共分220语言基本数据类型有
1.C________________;构造类型有P.13o语言源程序注注释符号是
2.C,为表明层次结构,语言源程序通常采用格式编写CP.4源程序经编译产生的目标文件是
3.TEST.C;经连接处理后,产生的可执行文件是O的值为
4.strlen1234\Oxy的值为;sizeof float二维数组最后一行的首地址为:
5.
[50]。