欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    山东中医药大学2023年C语言考试试卷(含六卷)含答案解析.docx

    • 资源ID:7122448       资源大小:155.03KB        全文页数:68页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    山东中医药大学2023年C语言考试试卷(含六卷)含答案解析.docx

    2023年C语言考试试卷(一)(总分100分,考试时长60分钟)一、单项选择题(每小题2分,共100分)1、以下关于IOng、int和short类型数据占用内存大小的叙述中正确的是A、均占4个字节B、根据数据的大小来决定所占内存的字节数C、由用户自己定义D、由C语言编译系统决定【答案】D2、下列C语言标识符中,合法的是oA、ifB、returnC、23aD、a23【答案】D3、以下叙述中正确的是。A、在C语言中,逻辑真值和假值分别对应1和0B、关系运算符两边的运算对象可以是语言中任意合法的表达式C、对于浮点变量X和y,表达式:x=y是非法的,会出编译错误D、分支结构是根据算术表达式的结果来判断流程走向的【答案】B【解析】A选项中,在C语言中,逻辑真值对应非0;C选项中,表达式:x=y是合法的;D选项中,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值。因此B选项正确。4、下面程序段的输出结果是.x=3;doy=一;if(ly)printf(n*r,);continue;printf(rr,);)while(x=2);A、#B、#*C、死循环D、输出错误信息【答案】C5、下列哪个数组定义是正确的oA、inta5)5;B、 INTa10;C、 intan;D、 inta3+2;【答案】D6、以下不能作为合法常量的是oA、OllB、IelC、8.OEO.5D、115【答案】C7、二维数组a有m行n列,则在aij之前的元素个数为。A、 j*n+iB、 i*n+jC、 i*n+j-lD、 i*n+j+l【答案】B8、有如下程序段int*p,a=l,b=2;P=&b;a=*p+a;执行该程序段后,a的值为A、2B、3C、4D、编译出错【答案】B9、下列选项中C语言中不合法的字符串常量的是oA.n12,B、'y'C.wnnhD、,'ABCDx6d【答案】B【解析】字符串常量是由双引号括起来的一串字符,其中的双引号不可缺少。由此可知,选项A)、C)、D)都是合法的字符串常量,而选B)是一个字符常量。10、有如下程序段int*p,a=5,b-l;p-&a;a=*p+b;执行该程序段后,a的值为A、5B、6C、7D、编译出错【答案】B11、以下叙述中不正确的是oA、在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值B、在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容C、在C中,外部变量的隐含类别是自动存储类别D、在C中,函数形参可以说明为register变量【答案】C12、下列不正确的转义字符是OA、B、',C、'tD、'088'【答案】D【解析】''是反斜线转义字符是水平跳格转义字符;''版是换行转义字符;C语言中没有规定'088'为转义字符。13、下面关于数组的初始化正确的是oA、chara=,a,b,c,B、chara2=ta,b,c,C、chara23三,a,b,e,d,e,f,D、chara=war,nbn,mcm【答案】D【解析】”"是字符串符号,而不是字符符号。14、若有说明:int武3=1,2,3,4,5,6,7;则数组。的第一维的大小为:()A、2B、3C、4D、无确定值【答案】B15、下列程序的输出结果是omain()(charcl=97,c2=98;printf(n%d%cr,cl,c2);A、9798B、97bC、a98D、ab【答案】B16、下面不属于条件语句关键字的是oA、elseB、switchC、whiIeD、if【答案】C【解析】条件语句主要由if-else结构和switch多分支语句,while属于循环语句的关键字。17、以下函数调用语句中实参的个数是()。func(el,e2),(e3,e4,e5);A、2B、3C、5D、语法错误【答案】A18、以下程序的输出结果是omain()(union(chari2;intk;)r;r.i0=2;r.il=0;printf(w%dnw,r.k);)A、2B、1C、0D、不确定【答案】A19、对于代码charcl8;scanf(m%sm,cl);printf(,n%sr,cl);在程序运行时,输入了"thisprettyboy”,则对应的运行输出显示结果是A、 thispreB、 thisC、 thisprettyboyD、数组越界,不能显示【答案】B20、有以下程序structstu(charname10;intnum;voidf(char*name,intnum)structstus2=wsundanw,20044,npenghuan,20045;num=s0.num;strcpy(name,s0.name);main()(structstus2=,yangsanr,20041,lisiguor,20042,*p;P=&sl;f(p->name,p->num);printf(,%s%dnn,p->name,p->num);)程序运行后的输出结果是OA、 SunDan20042B、 SunDan20044C、 1.iSiGuo20042D、 YangSan20041【答案】A21、设有定义:intn=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是A、 p=l;B、 *q=2;C、 q=p;D、 *p=5;【答案】D22、设inta=10,b=ll,c=12;表达式(a+b)<c&&b=C的值是A、2B、0C、-2D、1【答案】B【解析】解析:本题考查的是运算符的优先级,应该先计算a+b的值为21,然后与C比较大小的值为0,根据“&&”的运算规则,整个表达式的值为0。23、在C语言中,关于变量的作用域,下列描述中错误的是cA、局部变量只在整个函数的运行周期中有效B、全局变量的作用域为整个程序的运行周期C、当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量D、全局变量会覆盖掉所有与它重名的局部变量【答案】D【解析】当全局变量与局部变量重名时,全局变量会被屏蔽掉24、若变量已正确定义,要求程序段完成求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)【答案】B【解析】选项B中for循环了5次,而每次循环的时候,都将P的值重新赋值为1后,再乘以当前数字i,最后的结果为5,显然不是5!的值,同样的分析可知选项A、选项C和选项D计算的都是5!。所以,4个选项中选项B符合题意。25、下列变量定义中,错误的是0A、 intx=3;B、 floatf;d;C、Strings=,Hello!n;D、booleanb=true;【答案】B【解析】A选项定义了一个整型;C选项定义了一个字符串;D选项定义了一个布尔型变量:B选项中的f;d不符合标识符规范,因而选B。26、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值:A、0B、1C、12D、6【答案】A27、以下对一维数组a的正确说明是0A、 intn;scanf(n%dM,&n);intan;B、 intn=10,an;C、inta(10);D、defineSIZEIOintaSIZE;【答案】D28、下面各选项中,属于非法的C整型常量的是OA、01B、 OxllC、081D、-32768【答案】C【解析】C语言的整型常量可以有三种表示形式:十进制形式:与日常所用的十进制数形式相同,不能以0开始。八进制形式:以数字0开头,由07组成。十六进制形式:以数字0x(或0X)开头,由09及AF(或af)组成。根据以上知识考查所给出的4个选项:选项A是一个八进制数;选项B是一个十六进制数;选项D是一个十进制数;选项C以0开始没有跟字母x(X),但后面的数字8并不是八进制中使用的数字,故它不是C语言的整型常量。29、以下叙述中不正确的是oA、空字符串(即两个双引号连写)只占一个存储单元B、字符型常量可以放在字符型变量中C、字符型常量可以放在字符串变量中D、字符型常量可以与整数混合运算,而字符串常量不可以【答案】C30、下列说法中错误的是oA、静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值B、若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽C、静态全局变量可以被其他的编辑单位所引用D、所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失【答案】C【解析】静态全局变量只限于本文件所使用。静态全局变量只限于本文件所使用,不能被其他的文件所引用。31、请阅读程序:#include<math.h>include<stdio.h>main()(floata,b,c;scanf(,%f%f,&a,&b);c=ab;while(l)if(fabs(c)>1.6)a=b;b=c;c=ab;elsebreak;)printf(,%fn,',b);若运行时从键盘上输入3.62.4V回车>,则输出结果是oA、1.500000B、1.600000C、2.000000D、2.400000【答案】D【解析】本题考查用break语句终止循环。程序中定义了两个实型变量a、b,并给SCanf()函数赋值,键盘输入3.62.4V回车>后,a=3.6,b=2.4,c=ab=3.6/2.4=1.5,因为c=1.5<1.6,退出循环,输出b的原值。表面上看,while(l)条件恒为真,将会产生死循环,但利用break语句可以终止循环。32、下列4种不同数制表示的数中,数值最小的一个是oA、八进制数52B、十进制数44C、十六进制数2BD、二进制数IOlOOl【答案】D【解析】:解答这类问题,一般都是将这些非十进制数转换成十进制数,才能进行统一地对比。非十进制转换成十进制的方法是按权展开。33、下列关于模板形参的描述中,错误的是OA、模板形参表必须在关键字template之后B、模板形参表必须用括瓠()括起来C、可以用ClaSS修饰模板形参D、可以用typename修饰模板形参【答案】B【解析】主要考查函数模板的定义,声明一个函数模板的格式为templateVV模板形参表声明V函数声明,其中V模板形参具有typenameV参数名、ClaSSV参数名、V类型修饰V参数名三种形式,形参用”括起来。34、设有以下语句typedefstructsintg;charh;t;则下面叙述中正确的是OA、可用S定义结构体变量B、可以用T定义结构体变量C、S是StrUCt类型的变量D、T是structS类型的变量【答案】A35、下面程序的输出结果是Ofl(intx)(inty;y=x+x;return(y);)f2(inta,intb)(intz;z=f1(a*b);return(z);main()inta=2,b=5,c;c=f2(a,b);printf(,%dn,c);A、20B、7C、4D、10【答案】A36、程序段如下:则以下说法中不正确的是:。#include<stdio.h>main()(intk=2,;while(k<7)(if(k%2)(k=k+3;printf(,k=%dn,',k);continue;)k=k+l;printf(k=%dn,k);A、k=k+3;执行一次B、k=k+l;执行2次C、执行后k值为7D、循环体只执行一次【答案】D37、函数调用StrCat(StrCPy(StrI,str2),str3)的功能是。A、将字符串Strl复制到字符串str2中后再连接到字符串str3之后B、将字符串Strl连接到字符串str2之后再复制到字符串str3之后C、将字符串str2复制到字符串Strl之后再将字符串str3连接到字符串Strl之后D、将字符串str2连接到字符串Strl之后再将字符串Strl复制到字符串str3中【答案】C38、若下列语句组,则输出结果是Ointx=0;if(x+<0)printf(H%dM,-x);printf(,%d,x+);A、-1B、1C、 -1-1D、-10【答案】B39、若有说明语句chara=nitismine,;char*p=,itismine;则以下不正确的叙述是OA、a+1表示的是字符t的地址B、P指向另外的字符串时,字符串的长度不受限制C、P变量中存放的地址值可以改变D、a中只能存放10个字符【答案】D【解析】解析:本题考查字符串数组和指针的引用方式。在C语言中,系统在每个字符串或数组的最后自动加入一个字符0',作为字符的结束标志,在本题中,chara="Itismine";所表示的。字符串实际含有11个字符。40、当定义一个结构体变量时,系统为它分配的内存空间是oA、结构中一个成员所需的内存容量B、结构中第一个成员所需的内存容量C、结构体中占内存容量最大者所需的容量D、结构中各成员所需内存容量之和【答案】D41、a,b均为整数,且b!=0,则表达式ab*b+a%b的值是0A、aB、bC、a被b除的整数部分D、a被b除的商的整数部分【答案】A42、下列程序段的输出是ointc=l,3,5);int*k=c+l;pri11tf(w%dn,*+k);A、3B、4C、5D、6【答案】C43、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:if(aVb)if(c=d)y=0;elsey=l;该语句所表示的含义是。A、 y=0,ay=l,abB、 y=0,ay=l,ab且CWdC、 y=0,ay=l,aVB且CWDD、 y=0,ay=l,cd【答案】C44、下列不是循环语句的是OA、While语句B、doWhiIe语句C、for语句D、ifelse语句【答案】D【解析】本题很简单,选项D是条件语句,不是循环语句。45、没有如下定义:int(*ptr)();则以下叙述中正确的是。A、Ptr是指向一维组数的指针变量B、Ptr是指向int型数据的指针变量C、Ptr是指向函数的指针,该函数返回一个int型数据D、Ptr是一个函数名,该函数的返回值是指int型数据的指针【答案】C46、整型变量X=1.y=3,经下列计算后,x的值不等于6的是。A、X=(x=l+2,x*2)B、x=y>2?6:5P60条件运算符C、x=9-(-y)P29D、x=y*42【答案】C【解析】B选项y>2?6:5如果y>2,则表达式的值是6,并将值赋给变量x,x=6;否则表达式的值是5,并将值赋给变量X,x=5oC选项x=9-(-y)=7,y为先自减1再参与运算,y一为先运算再自减1,例如x=9-(y-)=6(运算时y=3,运算结束y=2)47、设有以下语句,对a数组元素的引用中(其中OVEVlO)不正确的是inta10=0,1,2,3,4,5,6,7,8,9,*p=a;A、apaB、*(&C、pD、*(*(a+)【答案】D【解析】本题考核数组与指针。A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&ai是取数组a中第i个元素的地址,而对于*(&ai),由指针运算符*的运算规则可知,语句*(&ai)就是返回地址&ai空间中存放的值,也即aioC)选项,由于指针P已指向数组a,所以pi就等于ai小这是常用的一种数组元素引用方式。D)选项是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式*(*(a+i)是错误的,正确的引用应该为:*(*(p+i)o48、若要用下面的程序片段使指针变量P指向一个存储整型变量的动态存储单元int*pp=malIoc(sizeof(int);则应填入。A、intB、 int*C、 (*int)D、 (int*)【答案】D【解析】不论P是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型*)。49、下面描述正确的是OA、两个字符串包含的字符个数相同时,才能比较字符串B、字符个数多的字符串比字符个数少的字符串大C、字符串WSTOPrt与"STOP"相等D、字符串"That"小于字符串"The”【答案】D50、c源程序中调用了库函数putchar(),在程序的一开始没有使用文件包含命令,则:A、程序可正常运行B、程序在编译时提示出错C、程序在连接是提示出错D、以上说法都不对【答案】C2023年C语言考试试卷(二)(总分100分,考试时长60分仲)一、单项选择题(每小题2分,共100分)1、如果用Printf()来输出双精度型数据、则正确的格式控制符是.A、-10.2fB、%lfC、%eD、%g【答案】B2、设X为int型变量,则执行语句X=IO和x+=-=-后,x的值为:A、B、C、D、10204030【答案】B3、假定所有变量均已正确定义,下列程序段运行后X的值是O。kl=l;k2=2;k3=3;x=15;if(!kl)X一;elseif(k2)x=4;elsex=3;A、14B、4C、15D、3【答案】B4、以下程序的输出结果是Oftinclude<stdio.h>main()(inti;for(i=l;i<5;i+)(if(i%2)printf(,+,);elsecontinue;printf(,-,)printf(''$n',);)A、 +-+-+-$B、 -+-+-+$C、 +-+-$D、+$【答案】C5、在下面关于指针的说法中,错误的一条是oA、变量的指针就是变量的地址B、可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量C、一个指针变量只能指向同一个类型的变量D、指针变量中只能存放地址(指针)【答案】B6、语句组intX;printf(w%dw,(x=4*5,x*5),x+25);A、125B、100C、45D、20【答案】C7、下面说法正确的是oA、char*x,y,*str同时定义了三个变量,符合语法规范B、数组说明符的一对方括号中只能使用常量数值C、单精度浮点值也可以作为数组下标D、若有定义floatarc2则printf(n%2.lfn,array0.5)是合法的语句【答案】A【解析】定义数组时,一对方括号内为整型数据类型,可以是变量也可以是常量,选项B错误;访问数组时,数组下标为整型数据,选项C,D错误。在选项A中,定义了3个变量,类型为char的变量x,类型为char的变量y类型为char的变量str本题答案为A选项。8、有定义语句:intX,y;若要通过SCanf("%d,%d",&x,&y);语句使变量X得到数值11,变量y得到数值12,下面四组输入形式中,错误的是oA、1112V回车B、11,12V回车C、11,12V回车D、11,V回车12V回车【答案】A9、以下语句中,不能实现回车换行的是()。A、printf(,n,');B、putchar(,nr,);C、fprintf(stdout,m11h);D、fwrite(,'nr,1,1,stdout);【答案】B10、一个C语言程序在一台32位机器上运行。程序中定义了三个变量x,y,z,其中X和Z是int型,v为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x,y,z的值分别是oA、 X=OOOOOO7FH,y=FFF9H,z=00000076HB、 x=0000007FH,y=FFF9H,Z=FFFFOo76HC、 x=0000007FH,y=FFF7H,Z=FFFFOo76HD、x=0000007HI,y=FFF71I,z=000000761I【答案】D【解析】考察符号位的扩展。结合题干及选项可知,int为32位,ShOrt为16位;又C语言的数据在内存中为补码形式,故x、y的机器数写为OoOOOo7F、FFF7H;执行z=x+y时,由于X是int型,y为ShOrt型,故需将y的类型强制转换为int,在机器中通过符号位扩展实现,由于y的符号位为1,故在y的前面添加16个1,即可将y强制转换为int型,其十六进制形式为FFFFFFF7H;然后执行加法,即OOoOOo7FH+FFFFFFF7H=00000076H,其中最高位的进位1自然丢弃。11、以下正确的说法是OA、定义函数时,形参的类型说明可以放在函数体内B、return后边的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类型不一致,以实参类型为准【答案】C【解析】选项A)中定义函数时,形参的类型说明应该放在形参表列内说明。老版本C语言中,对形参类型的声明是放在函数定义的第2行,也就是不在第1行的括号内指定形参的类型,而在括号外单独指定。选项B)中return后面的值可以是一个表达式。选项D)中实参与形参的类型应相同或赋值兼容。如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换,以形参类型为准。12、数据和程序以进制代码形式存放在存储器中。A、二B、八C、十D、十六【答案】A【解析】数据和程序以二进制代码形式存放在存储器中,存放的位置由地址确定。13、inta10=l,2,3,4,5,6,7,8jint*p;P=&a5;p-3的值是O。A、2B、3C、4D、不一定【答案】B14、若有一些定义和语句#include<stdio.h>inta=4,b=3,*p,*q,*w;P=&a;q=&b;w=q;q=null;则以下选项中错误的语句是OA、 *q=0;B、 w=p;C、 *p=a;D、 *p=*w;【答案】A15、有以下程序main()intm=3,n=4,x;x=-m+;x=x+8+n;Printf("%dn",x);程序运行后的输出结果是OA、3B、5C、-1D、-2【答案】C16、有以下程序:include<stdio.h>main()(inti=5;doif(i%3=l)if(i%5=2)printf(,'*%d,i);break;i÷+;)while(i!=0);printf(,'nw);)程序的运行结果是OA、*7B、*3*5C、*5D、*2*6【答案】A【解析】本题考查的是break语句。doWhiIe循环是“先执行,后判断”,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量i为5,然后进入doWhiIe循环体,首先判断(i%3=l),因为5%3=2,所以if条件不满足,跳过下面的if语句,执行i+,i变为6。第1遍循环结束,判断(i!=0)为真,继续循环。现在i%3=6%3=0,所以if语句还是不被执行,继续i+,i变为7,仍然满足(i!二0),继续循环。第3遍循环i%3=7%3=1,满足条件(i%3=l),继续判断条件i%5=2成立,即输出*7,然后执行break语句跳出循环。17、下列关于字符串的说法中错误的是0A、在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'0'作为字符串结束标志B、'0'作为标志占用存储空间,计入串的实际长度C、在表示字符串常量的时候不需要人为在其末尾加入'0'D、在C语言中,字符串常量隐含处理成以'0'结尾【答案】B【解析】'0'作为标志占用存储空间,但是不计入串的实际长度。当给一个字符型指针赋值时,赋给这个指针的是这个字符串的地址。18、以下程序的输出结果是main()(inta=4,b=5,c=0,d;d=!aM!b!c;Printf("%dn",d);)A、1B、OC、非O的数D、-1【答案】A19、合法的数组定义是oA、inta="string";B、inta5=0,1,2,3,4,5;C、chara="string”;D、chara=0,1,2,3,4,5;【答案】D20、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量bo则不能把结点b连接到结点a之后的语句是structnodechardata;structnode*next;a,b,*p-&a,*q=&b;A、 next=q;B、 next二&b;C、p>next=&b;D、(*p).next=q;【答案】B【解析】要把结点b连接到结点a之后,必须把b的地址给a的next指针,选项A中,指针变量q保存的就是变量b的地址,选项B中的P是指针变量,应该是P->next二&b;在选项D中,用*运算符取出结构体变量,并且保存的就是b的地址,所以正确。21、有一个数值152,它与十六进制数6a相等,那么该数值是oA、二进制数B、八进制C、十进制数D、四进制数【答案】B22、在下面的条件语句中(其中si个s2表示c语言语句),只有()在功能上与其他三个语句不等价。A、if(八)SlelseS2B、 if(a=0)S2elseSlC、 if(a!=0)SlelseS2D、 if(a=0)SlelseS2【答案】D23、下列叙述中错误的是oA、在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B、在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容C、在C语言中,外部变量的隐含类型是自动存储类别D、在C语言中,函数形参的存储类型是自动Gut类型的变量【答案】C【解析】外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。24、有下列程序:main()inti,j;for(i=l;i<4;i÷+)for(j=i;j<4;j+)printf(n%d*%d=%dw,i,j,i*j);Printf("n");程序运行后的输出结果是A、B、C、D、1*1=11*2=21*3=32*1=22*2=43*1=31*1=11*2=21*3=32*2=42*3=63*3=91*1=11*2=22*2=41*3=32*3=63*3=91*1=12*1=22*2=43*1=33*2=63*3=9【答案】B【解析】外层for循环的自变量i从1开始,每次循环后增1,直到i等于3结束。对于外层循环自变量i的每一个值,内层循环的自变量.i每次从i开始,每次循环后增1,直到j等于3结束。所以在每次外循环开始后,内层循环在一行先打印门'两个乘数的积,然后回车换行,下次循环从下一行开始打印输出结果。25、有以下程序:main()(chara7=,a00a00r,:inti,ji=sizeof(八);j=strlen(八):printf(,%d%dnr,i,j);)程序运行后的输出结果是OA、22B、76C、72D、62【答案】C【解析】C语言中以'0'作为字符串的结束符,且StrIen()函数计算的是0'字符前的所有字符的个数。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。26、设C语言中,int类型数据占2个字节,则short类型数据占()。节节节节字字字字个个个个A、1B、2C、4D、8【答案】B27、以下关于数组的描述正确的是OA、数组的大小是固定的,但可以有不同的类型的数组元素。B、数组的大小是可变的,但所有数组元素的类型必须相同。C、数组的大小是固定的,但所有数组元素的类型必须相同。D、数组的大小是可变的,但可以有不同的类型的数组元素。【答案】C28、以下常量中,能够代表逻辑“真”值的常量是OA、0'B、0C、'0'D、NU1.1.【答案】C29、以下正确的字符串常量是OA、""B、 'abc,C、 OlympicGames【答案】D30、已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是OA、一个整型变量,代表要读入的数据项总数B、一个文件指针,指向要读的文件C、一个指针,是指向的输入数据放在内存中的起始位置D、一个存储区,存放要读的数据项【答案】C【解析】数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)ofread函数参数说明:"buffer”是一个指引,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个SiZe字节的数据项;“fp”是指文件型指针。31、若有函数InaX(a,b),为了让函数指针变量P指向函数max,当调用该函数时,正确的赋值方法是OA、(*p)max(a,b)B、 *pmax(a,b)C、 p=max(a,b)D、 *p=max(a,【答案】C【解析】考查指向函数的指针变量的使用。解题要点在本题中,将函数的入口地址赋给指针后就可以用该指针调用函数了O考点链接函数的指针形参。32、以下选项中正确的整型常量是oA、12.B、-20C、1,000D、456【答案】B33、若有inta10=0,1,2,3,4,5,6,7,8,9,*P=a;则输出结果不为5的语句为oA、printf*(a+5);B、printf(,%dr,p5);C、 printf(w%dw,*(p+5);D、printf(,%dr,*p5);【答案】D34、若有下列说明和语句,则对结构体变量St中成员i的引用方式不正确的是structstu(inti;intname;st,*p;p=&st;A、siB、*iC、(*.iD、p->i【答案】B【解析】本题主要考查结构指针:P=&St,访问结构体的成员,可以通过结构变量访问,即St.i,也可以用等价的指针形式即(*p).i和p->i°35、有以下程序inta=2;intf(intn)(staticinta=3;intt=0;if(n%2)(staticinta=4;t+=a+;else(staticinta=5;t+=a+;)returnt+a+;main()(ints=a,i;for(i=0;i<3;i+)s+=f(i);printf(,%dnn,s);)程序运行后的输出结果是OA、26B、28C、29D、24【答案】C36、循环语句"for(i=l;iVO;i+)i+;"的循环次数是A、无限循环B、2次C、1次D、0次【答案】D37、有如下函数调用语句func(reel,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是OA、3B、4C、5D、2【答案】A38、以下程序的输出结果是o#include<stdio.h>#include<math.h>main()(inta=l,b=4,c=2;floatx=10.5,y=4.0,z;z=(a+b)/c+sqrt(double)y)*1.2/c+x;printf(,%fnr,z);A、14.000000B、15.400000C、13.700000D、 14.900000【答案】C39、下列哪个语句是声明一个含有10个String对象的数组()A、charstr;B、charstr;C、 Stringstr=newString10;D、 Stringstr10;【答案】C40、设有如下定义:structsk(inta;floatb;)data,*p;若有p=&data;则对data中成员a的引用正确的是。A、(*p).data,aB、(*p).aC、p->data.aD、p.data,a【答案】B【解析】P是指向结构体的指针,用指针引用结构体成员有两种格式:p->成员、(*p).成员41、表示一条指令的存储单元的符号地址称oA、标号B、变量C、偏移量D、类型【答案】A【解析】标号表示一条指令的存储单元的符号地址。42、下列程序中C的二进制值是ochara=2,b=4,c;c=a-b>>2;A、00000011B、 000

    注意事项

    本文(山东中医药大学2023年C语言考试试卷(含六卷)含答案解析.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开