欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    西安石油大学C语言选择题(共六卷)及答案.docx

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

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

    西安石油大学C语言选择题(共六卷)及答案.docx

    C语言选择题(一)(总分100分,考试时长90分钟)一、理论基础(每小题1分,共10分)1、运行下面程序时,若从键盘输入5后回车,则程序的输出结果是OA、7B、6C、5D、42、在位运算中,操作数每左移一位,其结果相当于A、操作数乘以2B、操作数除以2C、操作数除以4D、操作数乘以43、现代计算机中采用二进制数制是因为二进制数的优点是OA、代码表示简短,易读B、物理上容易实现且简单可靠;运算规则简单;适合逻辑运算C、容易阅读,不易出错D、只有0,1两个符号,容易书写4、根据数制的基本概念,下列各进制的整数中,值最大的一个是oA、十六进制数10B、十进制数10C、八进制数10D、二进制数105、流程图中,输入/输出框用()图形表示?A、圆角矩形B、平行四边形C、矩形D、菱形6、以下数据中,不正确的数值或字符常量是oA、8.9el.2B、10C、OxffOOD、82.57、一个int类型变量和一个byte类型的常量做加法,结果是类型。A、intB、 byteC、 charD、无法计算8、能将高级语言编写的源程序转换为目标程序的是()。A、链接程序B、解释程序C、编译程序D、编辑程序9、下列选项中非法的字符常量是oA.,t,B、'039'C、,D.,n,10、设有以下程序段intx=0,s=0;while(!x!=0)s+=+x;printfs);则A、运行程序段后输出OB、运行程序段后输出1C、程序段中的控制表达式是非法的D、程序段执行无限次11、若有定义inta;floatb;doublec;程序运行时输入:345V回车>能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是OA、scanf("%d%f%lf”,&a,&b,&c);B、scanf("%d%lf%lf”,&a,&b,&c);C、scanf("%d%f%f”,&a,&b,&c);D、scanf%lf%lf%l,&a,&b,&c);12、下面关于形参与实参的说法,正确的是oA、形参与实参的个数、类型、顺序都应一一对应B、形参与实参的个数可以不必相同,少一个多一个程序一样执行C、形参与实参的类型可以不同,不影响运算结果D、形参与实参的类型个数相同,而顺序不同,计算机可以自动进行匹配,所以形参的顺序无所谓,只要各种形参类型的数量与实参相同即可13、设a=8、6=10C=7、d=8、m=2>n=6,执行(In=aVb):(n=c>d)后n的值为oA、1B、6C、3D、414、设intk=32767;执行k=k+l;后k值为。A、 32768B、 -32768C、OD、-115、己有定义intk=2;int*pl,*p2;且Pl,p2均指向变量k,下面不能正确执行的赋值语句是A、 k=*pl+*p2;B、 p2=k;C、 pl=p2;D、 k=*pl*(*p2);16、若有以下数组说明,则元素数值是一inta12=l,4,7,10,2,5,8,11,3,6,9,12;A、10B、9C、6D、517、下列标识符中不合法的是oA、 s_nameB、_eC、foxD、3DS18、表达式k=l*3?2:0的值是。A、3B、2C、1D、019、若有代数式Jyx+logl0y,则正确的C语言表达式是一A、sqrt(fabs(pow(y,x)+log10(y)B、sqrt(abs(pow(y,x)+IoglO(Y)C、sqrt(fabs(pow(x,y)+log10(y)D、sqrt(abs(pow(x,y)+log10(y)20、设Ch是char型变量,其值为c,且有下面的表达式ch=(ch>三,a,&&ch<='z')?(ch+32):ch上面表达式的值是OA、CB、cC、ZD、z二、控制结构(每小题1分,共10分)1、下列程序的输出结果是O#include<stdio.h>main()inta=0,b=l,c=2;if(+a>OI÷+b>0)+c;printf(zz%d,%d,a,b,c);)A、0,1,2B、1,2,3C、1,1,3D>1,2,22、执行以下程序段后,w的值为_ointw=,a,x=14,y=15;w=(xIIy)(w<,a);A、-1B、 NULLC、1D、03、c语言中逻辑表达式的值为。A、0或1B、非零值或零值C、true或falseD、'true'或'false'4、选择出合法的if语句(设intX,a,b,c;)A、if(a=b)x+÷B、if(a=<b)x+;C、if(a<>b)x+;D、if(a=>b)x+;5、有以下程序main()(inti=l,j=l,k=2;if(j÷+Ilk+)Mi+)printf("%d,%d,%dn”,i,j,k);执行后输出结果是OA、 1,1,2B、 2,2,1C、 2,2,2D、 2,2,36、执行下面语句后的输出为inti=-1;if(i<=O)Printf("*n");elsePrintf("%n");A、 *B、 %C、 %CD、有语法错,不能执行7、设a、b、c、d、m、n均为int型变量,且a=5、b=6、C=7、d=8、m=2>n=3则逻辑表达式(In=a>b)M(n=c>d)运算后,n的值为。A、0B、1C、2D、38、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:if(a<b)if(c=d)y=0;elsey=l;该语句所表示的含义是。A、 y=0,ay=l,abB、 y=0,ay=l,a2b且CWdC、 y=0,ay=l,aVB且CWDD、 y=0,ay=l,cd9、设a、b、e、d、m、n均为int型变量,且a=5、b=6、C=7、d=8、m=2>n=2,则逻辑表达式(In=a>b)M(n=c>d)运算后,n的值是。A、OB、1C、2D、310、设变量a、b、e、d和y都己正确定义并赋值。若有以下if语句:if(aVb)if(c=d)y=0;elsey=l;该语句所表示的含义是。A、y=0,aB、 y=0,ay=l,aby*1,a2b且CwdC、 y=0,aD、 y=0,ay=l,aVB且CwDy="l,cd三、循环结构(每小题1分,共10分)1、以下有关switch语句的正确说法是_0A、break语句是语句中必须的一部分B、在SWitCh语句中可以根据需要使用或不使用break语句C、break语句在SWitCh语句中不可以使用I)、在switch语句中的每一个case都要用break语句2、下述关于break语句的描述中,()是不正确的。A、break语句可用于循环体内,它将退出该重循环B、break语句可用于switch语句中,它将退出switch语句C、break语句可用于对体内,它将退出if语句D、break语句在一个循环体内可以出现多次3、程序设计语言中一OA、while循环语句的执行效率比CIo-WhiIe循环语句的执行效率高13、while循环语句的循环体执行次数比循环条件的判断次数多1,而do-while语句的循环体执行次数比循环条件的判断次数少1C、while语句的循环体执行次数比循环条件的判断次数少1,而ClO-WhiIe语句的循环体执行次数比循环条件的判断次数多1D>while语句的循环体执行次数比循环条件的判断次数少1,而ClO-WhiIe语句的循环体执行次数等于循环条件的判断次数4、若变量已正确定义,要求程序段完成求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=ljp=l;while(i<=5)p*=i;i+;D、i=l;p=l;dop*=i;i+;while(l<=5)5、以下循环体的执行次数是ttinclude<stdio.h>voidmain()(inti,j;for(i=0,j=l;i<=j+l;i+=2,j一)printf(zz%dn”,i);)A、3B、2C、1D、06、下列不是循环语句的是oA、WhiIe语句B、doWhile语句C>for语句D、ifelse语句7、定义如下变量:intn=10;则下列循环的输出结果是while(n>7)(n;printf("%dn”,n);A、1098B、987C、10987D、98、运行下面程序时,从键盘输入字母a,则输出结果是oftinclude<stdio.h>main()(charch;ch=getchar();switch(ch)(case*a':Printf("aaaan");case*b,:Printf("bbbbn");default:printf(,zccccnz,);)A、 AAAAB、 AAAABBBBC、 AAAABBBBCCCCD、 AAAACCCC9、设有以下代码其中,循环体a与循环体b相同,以下叙述正确的是A、循环体A与循环体B的执行次数相同B、循环体A比循环体B的执行次数多一次C、循环体A比循环体B的执行次数少一次D、循环体A与循环体B的执行次数不确定10下面对do-while结构的描述中,不正确的是。A、循环体至少执行一次B、属于“直到型”循环C、与WhiIe语句执行情况相同D、先执行循环体,再计算终止条件,若结果为true,重复执行循环体,直到布尔表达式的值为false0四、数组/指针数组(每小题1分,共10分)1、若有如下定义语句:inta10=1,2,3,4,5,6,7,8,9,10;则对数组正确的引用是oA、a10B、aa35C、aa9D、aa4+42、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。defineN10voidarrin(intxN)(inti=0;while(i<N)scanf("%c,);)在下划线处应填入的是OA、x+iB、&xi+lC、 &xi+D、 &x+i3、数组a10的下标从()开始。A、1B、0C、10D、不确定4、不能把字符串hello!赋给数组b的语句是oA、charb10=,H,e,o,!,;B、charb10fe','l','l','o','!';C、charb10;StrCPy(b,"Hello!”);D、charb10=,'Hello!5、设有以下定义:inta33=1,2,3,4,5,6,7,8,9;int(*ptr)3=a;则下列能正确表示数组元素al2的表达式是oA、*(*ptr+l)2)B、a23C、 (*ptr+l)+2D、*(*(a+l)+2)6、下面程序的输出结果是ftinclude<stdio.h>main()(inta=l,2,3,4,5,6,7,8,9,0,*p;P=a;printf%dn,z,*p+9);A、0B、1C、10D、97、下列定义数组的语句中正确的是()。A、#definesize10charstrlsize,str2size+2;B、charstr;C、intnum,10,;D、intn=5;intann+2;8、如有说明:Charsl5,s27;要给数组si和s2整体赋值,下列语句中正确的是.A、sl=getchar();s2=getchar();B、SCanf("%s%s”,si,s2);C、scanf(/,%c%c,>si,s2);D、 gets(si,s2);9、若有定义语句:intm=5,4,3,2,l,i=4;则下面对ITl数组元素的引用中错误的是。A、m-i8、 m2*2C、mm0D、mmi10、以下叙述中正确的是oA、每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元B、一条语句只能定义一个数组C、数组说明符的一对方括号中只能使用整型常量,而不能使用表达式D、在引用数组元素时,下标表达式可以使用浮点数五、字符串/字符串指针(每小题1分,共10分)1、下列关于boolean类型的叙述中,正确的是。A、可以将boolean类型的数值转换为int类型的数值13、可以将boolean类型的数值转换为字符串C、可以将boolean类型的数值转换为Char类型的数值I)、不能将boolean类型的数值转换为其他基本数据类型2、下面关于编译预处理命令,正确的是0A、 #definecharCHARB、 #DefineE0.0000034C、 #defineFALSEOD、 defineDIM263、以下选项中,合法的c语言常量是。A、2XYB、HELLO,C、0.0D、1.04、下列字符串中,正确的C标识符是cA、foo-1B、2bC>newD>2565、判断两个字符串是否相等,正确的表达方式是oA、 while(sl=s2)B、 while(sl=s2)C、while(strcmp(sl,s2)=0)D、while(strcmp(sl,s2)=0)6、下列数据中属于字符串常量的是oA、“a”B、ABCC、 'abc0'D、7、下列对字符串的定义中,错误的是oA、 charstr7="FORTRAN"B、 charstr="FORTRAN”;C、 char*str="FORTRAN”;D、charstr=,F,0,R,T,R,A,N,0;8、下列选项中c语言中不合法的字符串常量的是oA、B、'y'C、nnD、zzABCDx6d9、以下选项中关于C语言常量的叙述错误的是oA、所谓常量,是指在程序运行过程中,其值不能被改变的量B、常量分为整型常量、实型常量、字符常量和字符串常量C、常量可分为数值型常量和非数值常量D、经常被使用的变量可以定义成常量10、有以下程序:main()(charStr="xyz",*ps=str;while(*ps)ps+;for(ps-;ps-str>=o;ps-)puts(ps);执行后的输出结果是OA、yzxyzB、zyzC、zyzxyzD、xyxyz六、函数/函数指针(每小题1分,共10分)1、有以下程序:defineP3voidF(intx)return(P*x*x);)main()printf(z,%dnz,F(3+5);)程序运行后的输出结果是OA、192B、29C、25D、编译出错2、以下与库函数StrCmP(Char*s,char*t)的功能相等的程序段是>Strcmpl(char*s,char*t)for(;*s+=*t+;)If(*s=三,0,)return0;return(*s-*t);B、strcmp2(char*s,char*t)for(;*s+=*t+;)If(!*s)return0;return(*s-*t);)C、strcmp3(char*s,char*t)for(;*t=*s;)if(!*t)return0;t+;s+;return(*s-*t);)D、strcmp4(char*s,char*t)for(;*s=*t;s+,t+)If(!*s)return0;return(*t-*s);3、以下叙述中正确的是oA、书写源程序时,必须注意缩进格式,否则程序会有编译错误B、程序的主函数名除main外,也可以使用main或_mainC、程序可以包含多个主函数,但总是从第一个主函数处开始执行D、在C程序中,模块化主要是通过函数来实现的4、若有定义,int*f();则下列描述中正确的是A、一个用于指向整型数据的指针变量B、一个用于指向一维数组的指针C、一个用于指向函数的指针变量D、一个返回值为指针型的函数名5、每个C程序中都必须有且仅有一个oA、类B、预处理命令C、主函数D、语句6、结构化程序设计方法的三种基本控制结构中不包括(.)。A、循环结构B、递归结构C、顺序结构D、选择结构7、下面关于函数依赖的叙述中,不正确的是OA、若XfY,YfZ,则XfYZB、若XfY,Y'包含Y,则XfY'C、若XfY,Y->Z,则XfZD、若XYfZ,则XfZ,YfZ8、设函数中有整型变量a,为保证其在未赋初值的情况下初值为0,应选择的存储类别是oA、B、C、D、staticregisterautoauto或register9、C语言中函数返回值的类型决定于A、return语句中的表达式类型B、调用函数的主调函数类型C、调用、函数时临时类型D、定义函数时所指定的函数类型10、对于以下递归函数f,调用f(3)的返回值是ointf(intn)(if(n)returnf(nl)+n;elsereturnn;)A、10B、6C、3D、0七、指针(每小题1分,共10分)1、下面程序输出的结果是.#include<stdio.h>voidmain()inti,j,x=0;staticinta6=l,2,3,4,5,6;for(i=0,j=l;i<5;+i,j+)x+=ai*aj;printf("%dn”,x);)A、数组a中首尾的对应元素的乘积B、数组a中首尾的对应元素的乘积之和C、数组a中相邻各元素的乘积D、数组a中相邻各元素的乘积之和2、下面不正确的字符串常量是OA、'abc,B、C、D、3、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是A、利用返回值数据传递方式B、利用形参与实参传递数据的方式C、利用全局变量传递数据的方式D、以上都不对4、若使用一位数组名作为函数实参,则以下正确的说法是OA、必须在主调函数中说明此数组的大小B、实参数组类型与形参数组类型可以不匹配C、在被调函数中,不需要考虑形参数组的大小D、实参数组名与形参数组名必须一致5、下面程序的输出结果是omain()(inta10=0,1,2,3,4,5,6,7,8,9,*p=a+4;printf("%dn",p3);)A、6B、7C、3D、56、以下程序运行后,如果从键盘上输入abcdefV回车>,则输出结果为4include<stdio.h>ttinclude<string,h>func(charstr)intnum=O;while(*(str+num)!=,O,)num+;return(num);main()(charstr10,*p=str;gets(p);Printf("%dn”,func(p);A、8B、7C、6D、57、对长度为8的数组进行快速排序,最多需要的比较次数为oA、8B、28C、56D、648、要定义整型数组X,使之包括初值为O的三个元素,下列语句中错误的是Anintx3=0,0,0;B、intx=0;C、staticintx3=0;D、intx=9、关于数组的定义与初始化,下列哪一项是错误的()Anintarr5=1,2,3,4,5;B、intarr=1,2,3,4,5;C、intarr5=1,2,3;D、intarr5=1,2,3,4,5,6;10、若要定义a为3X4的二维数组,正确的定义语句是A、 floata(3,4);B、 floata34;C、 floata(3)(4);D、 floata3,4;八、结构体(每小题1分,共10分)1、程序中有下面的说明和定义structabcintX;chary;)structabcsi,s2;则会发生的情况是OA、编译出错B、程序将顺利编译、连接、执行C、能顺利通过编译、连接、但不能执行D、能顺利通过编译、但连接出错2、定义共用体的关键字是oA、 unionB、 enumC、 structD>typedef3、以下关于c语言数据类型使用的叙述中错误的是oA、若只处理“真”和“假”两种逻辑值,应使用逻辑类型B、若要保存带有多位小数的数据,可使用双精度类型C、整数类型表示的自然数是准确无误差的D、若要处理“人员信息”等含有不同类型的相关数据,应自定义结构体类型4、以下关于逻辑运算符两侧运算对象的叙述中正确的是oA、可以是任意合法的表达式B、只能是整数0或非0整数C、可以是结构体类型的数据D、只能是整数0或15、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是structstuinti;intname;St,*p;P=&st;A、st.iB、*p.iC、(*p).iD、p->i6、以下叙述中正确的是OA、使用typedef定义新类型名后,新类型名与原类型名实际上是等价的B、结构体类型中的各个成分均不能是数组或指针C、结构体类型的变量,不能在声明结构体类型组成时一起定义D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义7、下列程序的输出结果是oinclude<stdio.h>structabc(inta,b,c,s;);main()structabcs2=1,2,3,4,5,6;intt;t=s0.a+sl.b;printf("%dn”,t);A、B、C、D、88、有以下结构体说明和变量的定义,且指针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;9、有以下程序include<stdlib.h>structnodeintnum;structnode*next;);main()(structnode*p,*q,*r;intsum=0;p=(structnode*)malloc(sizeof(structnode);q=(structnode*)malloc(sizeof(structnode);r=(structnode*)malloc(sizeof(structnode);p->num=l;q->num=2;r->num=3;p->next=q;q->next=r;r->next=null;sum+=q->next->num;sum+=p->num;Printf("%dn”,sum);)执行后的输出结果是OA、3B、4C、5D、610、有以程序#include<stdio.h>include<string.h>typedefstruct(charname9;charsex;floatscore2;Stu;voidf(stua)(stub="zhao”,'m,85.0,90.0;inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i<2;i+)a.scorei=b.scorei;main()(stuc="qian”,'p,95.0,92.0;f(c);printf(,%s,%c,%2.Of,%2.0fn,z,c.name,c.sex,c.score0,c.score1);)程序的运行结果是。A、Qian,f,95,92B、Qian,m,85,90C、Zhao,f,95,92D、Zhao,m,85,90九、程序题(每小题1分,共10分)1、请读程序:main()(char*p;chars80;scanfs);P=s0;printfp);)请判断上面程序选出正确答案是OA、"错误:p=s0;正确:p=*s;"B、错误:p=s0;正确:p=s;C、"错误:p=s0;正确:p=sD、错误:P=S0;正确:P=&s;"2、执行下列程序时输入12345678,程序的运行结果是ftinclude<stdio.h>main()i11tX,y;SCanf("%2d%2d");printf('/%dnzz,x+y);A、17B、46C、15D、93、下面程序的运行结果是omain()(staticinta33=3,2,1,4,5,6,-2,9,1;inti,j,sum=0;for(i=0;i<3;i+)for(j=0;j<3;j+÷)(if(i=j)sum=sum+aijj;)printf(''sum=%d,',sum);)A、 sum=10B、 sum=9C、9D、104、以下程序的输出结果是omain()(inti,x33=1,2,3,4,5,6,7,8,9,;for(i=0;i<3;i+÷)Printf("%d,",xi2-i);)A、1,5,9,B、1,4,7,C、3,5,7,D、3,6,9,5、若下列语句组,则输出结果是Ointx=-l;if(x+<0)printf("%c,x);printf("%d”,x+);A、-1B、1C、 -1-1D、-116、下面的程序运行后输出为()omain()(inta=-32769;Ptintf("%8un”,a);A、32769B、%8UC、32767D、 -327677、有以下程序main()(inta32=0,(*ptr)2,i,j;for(i=O;i<2;i+÷)(ptr=a+i;scanf(,/%dz,*ptr);)for(i=0;i<3;i+)(for(j=0;j<2;j+)printf(z,%2dzz,aij);printf(n);若运行时输入:123V回车>,则输出结果是A、产生错误信息E、 102000F、 123000G、 1020308、有以下程序include<stdio.h>main()inta=0,b=0,c=0;c=(a-=a-5);(a=b,b+=4);printf(zz%d,%d,%dn”,a,b,c);程序运行后输出的结果是OA、0,4,5B、4,4,5C、4,4,4D、0,0,09、有以下程序main()(chara=,a;b;c,,CrWFjg'F2;inti,j;i=sizeof(a);j=strlen(a);printf(,%d,%dn”,i,j);)程序运行后的输出结果是OA、9,9B、8,9C、1,8D、9,810、有以下程序ttinclude<stdio.h>main()(intx,y,z;x=y=l;z=x+,y+,+y;printf(,%d,%d,%dn,x,y,z);)程序运行后的输出结果是OA、2,3,1B、2,3,2C、2,3,3D、2,2,1参考答案一、理论基础1、B2、A【解析】左移运算符“VV”是双目运算符。其功能把“VV”左边的运算数的各二进位全部左移若干位,由“VV”右边的数指定移动的位数,高位丢弃,低位补0。左移1位,相当于该数乘以2。3、B【解析】二进制数只用“0”和“1”来存储,因此物理上容易实现且简单可靠,运算规则简单,适合逻辑运算。但不容易阅读,易出错。4、A【解析】分别将四个数转换为十进制为16,10,8,2o5、B6、A7、A【解析】int类型常量和byte类型常量做加法,首先byte类型常量自动转换为int类型,因此最后的结果应该是int类型的数值。8、C9、B10、B【解析】考查WhiIe语句的使用。解题要点本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符的优先级大于不等于运算符“!二”的优先级。考点链接for语句和doWhile语句的使用。11>A12、A【解析】形参、实参个数类型、数量、顺序应相同,因为类型转换都是有条件的,如果浮点型变量向指针型变量转换就是不可的。13、B14、B15、B16、C17、D18>B19、A20、B二、控制结构【解析】本题考查if语句。先判断if语句的条件是否成立,因为+a=lO,所以条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算对象的真假,即不进行+b操作,就可以直接得出整个表达式的值为逻辑1,执行下面的+c。2、C【解析】字符变量W的初值为字符'A',其ASCIl码值为65,字符'a'的ASCil码值为97,所以关系表达式wV'a'的值为1;变量x=14,变量y=15,x"y为或,x、y均为真,所以Xiy的结果1。因而逻辑表达式(x:y)皿(wV'a')的值为Io3、A4、A【解析】A虽然是赋值语句,但是在逻辑运算中自动将赋值语句的结果当作逻辑值,方法是,如果赋值语句的结果是非零值则当作逻辑真,否则当作逻辑假。C语言中关系运算符有V(小于)、(大于)、=(大于等于)、V=(小于等于)、=(等于)、!=(不等于)等六种,可见其他的条件表达式中的关系符写错To5、C【解析】首先计算if语句后面的表达式值,先计算运算符&&前面括号里的运算。在运算中先计算j+,值为1(j的值为2),为真,后面的k+将不再计算,k的值依旧为2。计算幽后面的表达式i+,值为Mi的值变为2)。整个表达式的值为真,所以执行后面的输出语句,最后输出的i、j和k的值为2、2和2。6、A7、D8、C9、C10、C三、循环结构1、B2、C3、D4、B【解析】选项B中for循环了5次,而每次循环的时候,都将p的值重新赋值为1后,再乘以当前数字i,最后的结果为5,显然不是5!的值,同样的分析可知选项A、选项C和选项D计算的都是5!。所以,4个选项中选项B符合题4X)O5、D6、D【解析】本题很简单,选项D是条件语句,不是循环语句。7、B8、C【解析】本题考查SWitCh语句。因为Ch=A,所以第一个SWitCh语句,执行ease'A'后面的语句,输出AAAA,没有遇到break语句,所以接着再执行case,B,和default,分别输出BBBB和CCCC09、A【解析】WhiIe循环语句一般形为:While(表达式)循环体,执行过程为:首先判断表达式,成立(非0)则执行循环体,不成立(O)则退出循环。Dowhile循环语句一般形式为:d。循环体(while表达式),执行过程为:首先执行循环体,之后判断表达式,成立(非0)则再一次执行循环体,不成立(0)则退出循环。假设表达式1与表达式2成立次数为nl与n20若nl>n2,则循环体A执行次数为n2+l,B执行次数n2+l;若nlVn2,则循环体A执行次数为nl,B执行次数nl,A选项正确。10、C【解析】WhiIe循环属于“当型”循环,可能一次也不执行,是先判断终止条件,为true则执行循环体,否则退出循环。四、数组/指针数组1、D2、C3、B4、B【解析】在C语言中,大写字母和小写字母被认为是两个不同的字符,因此,“hello!”和“Hello!”是两个不同的字符串。5、D【解析】指针变量Ptr是指向长度为3的整型一维数组,当ptr指向二维数组a时,Ptr每移动一个单位将指向数组的下一行,*(*(a+l)+2)表示数组元素al2,*(*(ptr+l)+2)也可以。6、C【解析】此题考查了指针引用一维数组元素的方法。*p+9因为运算符“*”的优先级高于“+”,所以输出结果为P指向的元素L然后加9,值为10。7、A8、C9、C10、A【解析】数组的元素是同一类型,占用连续空间,所以选择A。五、字符串/字符串指针2、D【解析】无参宏定义的一般格式:#define标识符语言符号字符串,其中:“define”为宏定义命令;“标识符为所定义的宏名,通常用大写字母表示,以便于与变量区别;“语言符号字符串”可以是常数、表达式、格式串(格式串是用双引号括起来的字符串)等,选项ABC错误,选项D正确;本题答案为D03、D【解析】C语言常量包含整型常量,实型常量,字符常量,字符串常量。其中字符常量是用单引号括起来的单个字符,选项B只有半边单引号;字符串常量使用双引号括起来的多个字符,选项只有双引号的半边。整型常量包含:十进制,八进制和十六进制。选项A中X和Y不是有效字符。本题答案为D选项。4、D【解析】此题考查的是C语

    注意事项

    本文(西安石油大学C语言选择题(共六卷)及答案.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开