《西安外国语大学C语言专升本相关题目(共六卷)及答案.docx》由会员分享,可在线阅读,更多相关《西安外国语大学C语言专升本相关题目(共六卷)及答案.docx(69页珍藏版)》请在课桌文档上搜索。
1、C语言专升本相关题目(一)一、单项选择题(每小题2分,共40分)1、以下关于C语言标识符的描述中,正确的是OA、标识符可以由汉字组成B、标识符只能以字母开头C、关键字可以作为用户标识符D、Area与area是不同的标识符2、当变量C的值不为2、4、6时,值也为真的表达式是OA、(c=2)Il(c=4)Il(c=6)B、(c=2Mc=2&c=6)&!(c%2)I)、(c=2&c=6)&(c%2!=1)3、下列程序的输出结果是cmain()(inta=0,i;for(i=l;i1C、6I)、84、结构化程序设计思想的核心是要求程序只由顺序、循环和三种结构组成。A、分支B、单入C、单出D、有规则GO
2、To5、在C语言中,函数返回值的类型最终取决于()0A、函数定义时在函数首部所说明的函数类型B、etum语句中表达式值的类型C、调用函数时主调函数所传递的实参类型D、函数定义时形参的类型6、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是OA、 +x,y=x一B、 x+l=yC、 x=x+10=x+yD、double(x)/107、若二维数组a有m歹U,则计算任一元素aij在数组中位珞的公式为(假设a00位于数组的第一个位谿上)。A、 i*m+jB、 j*miC、 i*m+j-lD、 i*m+j+l8、在C语言中,以下一组运算符中,优先级最高的运算符是OA、=B、=C、%D、&9、下
3、列字符串中不能作为C标识符使用的是oA、 WHILEB、 userC、 _lvarD、 9stars10、若有下面的程序片段:int12=0,*p3,*pp,i;for(i=0;i3;i)pi=fcai*4;PP=P则对数组元素的错误引用是OA、ppO1B、a10C、p3lE、 *(*(p+2)+2)11、有以下程序#includevoidfun(inta,intn)inti,t;for(i=0;in2;i+)t=ai;ai=an-l-i;an-l-i=t;)main()intk10=l,2,3,4,5,6,7,8,9,10,i;fun(k,5);for(i=2;i8;i+)printf(%d
4、,ki);printf(n);程序的运行结果是。A、345678B、876543C、1098765D、32167812、判断实数x属于闭区间a,b的表达式为设a为整型变量,不能正确表达数学关系10a10&a10a15C、!(a=15)D、!(a=15)13、以下叙述中正确的是oA、书写源程序时,必须注意缩进格式,否则程序会有编译错误B、程序的主函数名除main外,也可以使用main或_IlIainC、程序可以包含多个主函数,但总是从第一个主函数处开始执行D、在C程序中,模块化主要是通过函数来实现的14、c语言中的基本数据类型包括A、整型、实型、字符型B、整型、字符型、数组C、整型、实型、逻辑型
5、D、整型、实型、结构体15下面程序段的运行结果是.intn=0;while(n+=2);printf(%c,n);A、2B、3C、4D、有语法错16、有以下程序:main()intk=4,n=O;for(;n,则程序的输出结果是includevoidmain()inta,b,s;scanf(zz%d,%d,&a,&b);s=a;if(snBp-n+C(*.n+D、+p-n二、填空题(每小题2分,共20分)1、已知t=5,则表达式L=t+=3的值是。2、以下程序的输出结果是omain()(intx;printfC%dz,(x=2*4,x+5);)3、字符串函数用于把一个字符串写入指定的磁盘文件中
6、。4、已知“floata=3.5;intb=12;,则算术表达式a+b/5的值是o5、main()(inta,b;for(a=l,b=l;a=20)break;if(b%3=l)(b+=3;continue;b-=5;)程序的输出结果a的值为o6、一个C程序总是从函数开始执行的。7、使文件指针重新定位到文件读写的首地址的函数是o8、在c语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控制符为。9、下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请分析程序填空。ftincludemain()intn,count,max,t;count=max=0;sc
7、anf(%d,&n);do(t=1.;if(t=0)+count;elseif(maxn得到p指向的结构体变量中成员n的值使之加1。因为P指向数组a起始地址,p-n的值为5,再执行自加1运行,结果为6。二、填空题1、02、133、fputsttfputs()4、5.5#5.5000005、86、main#i#main()#main()7、 rewind8、%s9、【1】n%102max=t10、1三、编程题1、ftincludettincludevoidfun(int*s,intn)inti;intmax=s0;inta=0;for(i=0;imax)(max=si;a=i;)sa=s0;s0
8、=max;intj;intmin=sn-l;intb=n-l;for(j=0;jn;j+)(if(sjmin)(min=sj;b=j;sb=sn-l;sn-l=min;voidprintf_s(int*s,intn)(inti;for(i=0;in;i+)printf(z,%d,si);printf(n);intmain()ints20;inti,n;Printf(设置数组长度(V20):);scanf(,&n);Printf(输入%d个元素:n”,n);for(i=0;in;i+)scanf(*%dz,&si);fun(s,n);printfs(s,n);returnO;2、ftinclud
9、eintmain()(inti,n=0;chars80;gets(s);for(i=0jsi!三,0,;i+)if(si=0,si=9,)n+;)printf(,n);3、ftincludeintmain()structddinty,m,d;)date;inti,j,k;scanf(%d%d%d”,&date.y,&date.m,&date.d);k=date.d;if(date.ml)k+=31;if(date,m2)k+=28;if(date,m3)k+=31if(date.m4)k+=30if(date,m5)k+=31if(date,m6)k+=30if(date,m7)k+=31if
10、(date.m8)k+=31if(date,m9)k+=30if(date,m10)k+=31;if(date,mll)k+=3O;if(date.y%4=O&date.y%100!=0date,y%400=0)k+;Printf(%d,k);C语言专升本相关题目(二)一、单项选择题(每小题2分,共40分)1、在16位编译器环境下,double类型占多少字节?A、2B、4C、1D、82、已知字母a的ascii代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是OA、kk=A,&kkB、!(kk=,A,IKK=a&(kk+32)=65&kk=903、若a的值为3
11、时,下列程序段被执行后,c的值是ointc=l;if(a0)if(a3)c=2;elsec=3;elsec=4;A、1B、2C、3D44、下列关于doWhile语句的叙述中正确的是OA、do-while语句所构成的循环不能用其他语句构成的循环来代替B、dowhile语句所构成的循环只能用break语句跳出C、do-while语句所构成的循环只有在while后面的表达式非零时才结束D、do-while语句所构成的循环只有在while后面的表达式为零时才结束5、下列一维数组定义正确的是oA、 x=5;intnumx;B、 constihtx=5;floatnumx;C、 constfloatx=5
12、;intnumx;Dconstintx;x=5;intnumx;6、下列四个选项中,均是C语言关键字的选项是()。A、 autoenumincludeB、 switchtypedefcontinueCsignedunionscanfD、ifstructtype7、若有说明inta4=0,0;则下面不正确的叙述是OA、数组a的每个元素都可得到初值0B、二维数组a的第一维大小为1C、因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1D、有元素/00和a01可得到初值0,其余元素均得不到初值08、若有定义inta=10,20,30,*p=a;,当执行p+;后,下列说法错误的是OA
13、、p向高地址移了一个字节B、p向高地址移了一个存储单元C、P向高地址移了四个字节D、P与a+1等价9、在C语言中,以作为字符串结束标志A、n,B、,C、0,D、0,10若有说明语句chara=itismine”;char*p=,zitismine”;则以下不正确的叙述是OA、a+1表示的是字符t的地址B、P指向另外的字符串时,字符串的长度不受限制C、P变量中存放的地址值可以改变D、a中只能存放10个字符11、设有宏定义:#defineIsDIV(k,n)(k%n=l)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)MISDlV(IT,7)为真时所要表达的是。A、判断m是否能被
14、5或者7整除B、判断m是否能被5和7整除C、判断m被5或者7整除是否余1D、判断m被5和7整除是否都余112、若有说明语句:Charc=72;则变量C。A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法,C的值不确定13、已有定义:inti,a10,*p;则合法的赋值语句是。A、 p=100;B、 p=a5C、p=a2+2D、p=a+2;14、程序中有下面的说明和定义structabc(intx;chary;)structabcsi,s2;则会发生的情况是。A、编译出错B、程序将顺利编译、连接、执行C、能顺利通过编译、连接、但不能执行D、能顺利通过编译、但连接出错15、分析以下程序
15、,下列说法正确的是一main()(intx=5,a=0,b=3;if(x=a+b)printf(z,*n);elsePrintf(#n);)A、有语法错,不能通过编译B、通过编译,但不能连接C、输出*D、输出#16、以下程序的输出结果是Omain()(intx=l,y=0,a=0,b=0;switch(x)(case1:switch(y)(case0:a+;break;case1:b+;break;case2:a+;b+;break;)printf(,z%d,%dn”,a,b);)A、2,1B、2,2C、1,1D、2117、有以下程序tjedefstruct(charname9;charsex
16、;floatscore;stu;stuf(stua)stub=zhao”,m,85.0,90.0;inti;strcpy(a.name,b.name);a.sex=b.sex:;for(i=0;i2;i+)a.scorei=b.scorei;returna:)main()stuc=(qian,f,95.0,92.0);stud=f(c);d. score 0,Printf(%s,%cf%2.Of,%2.Of,d.name,d.sex,d.score1);)程序的运行结果是。A、 Qian,f,95,92B、 Qian,m,85,90C、 Zhao,m,85,90D、 Zhao,f,95,921
17、8、有下列程序:intfun!(doublea)(returna*=a;)intfun2(doublex,doubley)(doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main()(doublew;w=fun2(l.1,2.0),)程序执行后变量W中的值是OE、 5.21B、5C、5.0D、0.019、下列程序的运行结果是Omain()(inta6,i;for(i=2;i3)%5;printf(,%2d,z,ai);A、2323F、 1212G、 3232H、 222220、有以下程序:structstu(charnum10;floa
18、tscore3;);main()(structstus3=z,20021,z,90,95,85,20022,95,80,75,z,20023,z,100,95,90,*p=s;inti;floatsum=0;for(i=0;iscorei;printf(,%6.2fn”,sum);)程序运行后的输出结果是。A、260B、270C、280D、285二、填空题(每小题2分,共20分)1、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输此请写出完整的的输出语句O2、设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为o3、表达式(int)(d
19、ouble)(5/2)+2.5)的值是。4、算术表达式a=b+3中,a、b称为变量,3称为量,=、+称为运算符。5、c语言三个循环语句分别WhiIe语句语句和语句。6、有以下程序main()intn=0,m=l,x=2;if(!n)-=l;if(m)-=2;if(x)-=3;printf(zz%dnz,x);)执行后输出结果是。7、C标准库函数中,字符串的处理函数包含在头文件中,数学函数包含在math,h头文件中。8、字符串函数用于从指定的磁盘文件中读出一个字符串。9、以下程序输出X,y,z三个数中的最小值,请填空使程序完整omain()(intx=4,y=5,z=8;intu,v;u=Xy?
20、;V=uz?;printf(%d,v);)10、以下程序运行的结果为。includeintd=1;fun(intp)(intd=5;d+=p+;Printf(%d,”,d);)voidmain()inta=3;fun(a);d+=a+;Printf(%dn”,d);三、编程题(每小题分,共40分)1、编写程序:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60
21、万到100万之间时,高于60万元的部分,可提成1.5%;高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数?(本题10分)2、编写程序,从输入的一行字符串中抽取一部分(从第n个字符开始,抽取m个字符)构成一个新的字符串,并输出。其中n0且n3)%5的分析。20、B【解析】给结构体数组赋韧值时,由于数组中的每个元素都是一个结构体,因此要将其成员的值依次放在一对花括号中,以便区分各元素。s0=z,2002,90,95,85,sl20022,95,80,75,s2:20023”,100,95,90二、填空题1、,printf(*a=%d,b=%d*,a,b);,
22、2、33、44、常5、dorhiIe语句,for语句6、-4,7、string,h8、fgets#fgets()9、,x:y*,u:z,10、8,4三、编程题1、ttincludeintmain()(doublei;doublebonus1,bonus2,bonus4,bonus6,bonus10,bonus;Printf(“你的净利润是:r);scanf(%lf,&i);bonus1=100000*0.1;bonus2=bonusl+100000*0.075;bonus4=bonus2+200000*0.05;bonus6=bonus4+200000*0.03;bonus10=bonus6+
23、400000*0.015;if(i=100000)bonus=i*O.1;elseif(i=200000)bonus=bonus1+(i-100000)*0.075;elseif(i=400000)bonus=bonus2+(i-200000)*0.05;elseif(i=600000)bonus=bonus4+(i400000)*0.03;elseif(i1000000)bonus=bonusl0+(i-1000000)*0.Ol;)Printf(提成为:bonus=%lf,bonus);Printf(n);)【解析】请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2、include
24、#includeintmain()intn,m,i;unsignedlong1;chars80;gets(s);scanf(%d%d”,&n,&m);I=Strlen(s);if(n+m-ll)m=l+l-n;)if(n0&n=l)for(i=n-l;in+m-l;i+)printf(z,%cz,si);)elsePrintf(起始位置%d越界”,n);returnO;3、ttincludestructstudentintnum;charname20;charsex;intage;)stu20,*p;intmain()intn;SCanf(,&n);P=stu;for(inti=0;iname
25、,p-sex,fep-age);printf(z,%d%s%c%dn”,p-num,p-name,p-sex,p-age);)return;C语言专升本相关题目(三)一、单项选择题(每小题2分,共40分)1、字符比较大小实际是比较它们的ascii码值,下列正确的比较是一A、“A”比“B”大B、“H”比“h”小C、“F”比“D”小D、“9”比“D”大2、若有定义语句:intx=10;,则表达式-=x+x的值为A、-20B、-10C、0D、103、下列叙述中正确的是oA、程序执行的效率与数据的存储结构密切相关B、程序执行的效率只取决于程序的控制结构C、程序执行的效率只取决于所处理的数据量D、以上三
26、种说法都不对4、下面程序段中,循环体的执行次数是.inta=10,b=0;do(b+=2;a-=2+b;)while(a=0);A、4B、5C、3D、25、假定a为一个整型数组名,则元素a4的字节地址为A、a+4B、a+8C、a+16Da+326、若有代数式(3ae)(),则下面不正确的C语言表达式是Aabc*e*3I、 3*a*ebcJ、 3*a*eb*cK、 a*ecb*37、以下对一维数组a的正确说明是oA、intn;SCanf&n);intan;B、intn=10,an;C、inta(10);L、 defineSIZEIOintaSIZE;8、表达式5!=3的值是oA、TB、非零值C、
27、0D、19、设char*s=ta017bc”;则指针变量S指向的字符串所占的字节数是OA、9B、5C、6D、710、如果用数组元素作为函数调用时的实参,则该实参向函数的形参传送的是A、数组元素的地址B、数组的首地址C、数组元素的值D、数组名11、有以下程序ftincludeintfun(inta,intb)if(b=0)returna;elsereturn(fun(-a,-b);)main()printf(,/%d11z,fun(4,2);)程序的运行结果是OA、1B、2C、3D、412、在C语言中,以下说法不正确的是oA、在C程序中,整数和实数都能被准确无误地表示出来B、在C程序中,任何一个
28、变量名都代表存储器中的一个位置C、静态变量的生存期与整个程序的运行期相同D、C语言中,任何变量都必须先声明才能进行引用13、两次运行下面的程序,如果从键盘上分别输入3和2,则输出结果是4includemain()intx;scanf(%d,&x);if(x+2)printf(%d,x);elsePrintf(%dn”,x-);)A、4和3B、4和2C、4和1D、3和214、设有如下定义:structsk(inta;floatb;)data,*p;若有p=fedata;,则对data中的a域的正确引用是A、(*p).data,aB、(*p).aC、p-data.aD、p.data,a15、有以下
29、程序:main()inty=l,x=2,z=3;printf(z,%d,%dn”,(+x,y+),z+2);)执行后的输出结果是OA、3,5B、2,5C、3,3D、1,516、若变量己正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是oA、for(i=l,p=l;i=5;i+)p*=i;B、for(i=l;i=5;i+)p=l;p*=i;C、i=l;p=l;while(i=5)p*=i;i+;D、i=l;p=l;dop*=i;i+;while(l=5)17、设有如下枚举类型定义:enumlanguage(basic=3,assembly,ada=100,cobol,fortran);枚举量fortra