四川大学C语言上机考试题_第1页
四川大学C语言上机考试题_第2页
四川大学C语言上机考试题_第3页
四川大学C语言上机考试题_第4页
四川大学C语言上机考试题_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.有以下程序#includevoidmain()inta=5,b=4,c=3,d=2;if(abc)printf(%dn,d);elseif(c-1=d)=1)printf(%dn,d+1);elseprintf(%dn,d+2);执行后输出的结果是_D_。D.3x的值为:A.2B.编译时有错,无结果C.42.设x为int型变量,则执行以下语句后intx=10;x*=x/=-x;printf(%dn,-x);-D-A.10B.1C.-10D.03.下面程序的输出是_C_。main()intx,i;for(i=1;iy);printf(%dn,x);A.2B.1C.3D.程序运行有错误有以下程

2、序#includevoidmain()intm=3,n=4,x;x=-m+;x=x+8/+n;printf(%dn,x);程序运行后的输出结果是_C。A.3B.5C.-2D.-17.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是switch(a+b);case1:y=a+b;break;case0:y=a-b;break;switch(a*a+b*b)case3:case1:y=a+b;break;case3:y=b-a;break;switchacasec1:y=a-b;break;casec2:x=a*b;break;default:x=a+b;switch(a-b)d

3、efault:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;AA.B.C.D.8.有以下程序#includevoidmain()inty=10;while(y-);printf(y=%dn,y);D.y=1程序执行后的输出结果是-A-y=-1B.while构成无限循环C.y=09.有以下程序#includevoidmain()intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf(%dn,x);执行后输出结果是_-410.有如下程序#includevoidmain()

4、intx=23;doprintf(%d,x-);while(!x);则输出结果为(23)11.以下程序运行后的输出结果是123。#includevoidmain()inti,m=0,n=0,k=0;for(i=9;i=11;i+)switch(i/10)case0:m+;n+;break;case10:n+;break;default:k+;n+;printf(%d%d%dn,m,n,k);12.以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数请填空。#includevoidmain()inti,j;for(i=0;i10;i+)j=i*10+6;if(_j%3!

5、=0_)continue;printf(%d,j);把C语言的源程序变为目标程序要经过(C)A.编辑连接编译运行C语言中用于结构化程序设计的三种基本结构是C。for、while、do-whileif、switch、break顺序结构、选择结构、循环结构D.if、for、continue以下叙述中正确的是_B。花括号和只能作为函数体的定界符C程序中注释部分可以出现在程序中任意合适的地方C构成C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语句之间的分隔符,不是语句的一部分本题的考查点是C程序设计的初步知识。选项A,C程序中表示注释部分,注释只是给人看的,对编译和运行不起作用,可以加

6、在程序中任何位置,所以选项A是对的;选项B,函数体是函数的主体,从左花括号开始,到与之匹配的右花括号结束。花括号还可以作为复合语句的定界符。选项C,一个C程序中必须有且只能有一个由i命名的主函数,其他函数由用户自行命名。选项D,C语句是组成C程序的基本单位,具有独立的程序功能。所有的C语句都以分号结尾。故本题答案为A。4.有以下程序段intk=0;while(k=1)k+;while循环执行的次数是_D。A执行1次B有语法错,不能执行一次也不执行无限次乍一看,还以为程序要表达的意思是当k等于1的时候做k+,但是C语言里关系表达式的等于应该是=。一个等于号表示赋值,即这里面重复的把1赋给k,自然

7、表达式k=1的值总为1,while后面的表达式恒为真,当然会进入死循环。本题答案为A。5.设有说明语句:chara=72;则变量a_C_。说明不合法包含3个字符C包含1个字符D.包含2个字符本题考查点是转义字符的应用。转义字符常量xx可以把、后面的数字转换为对应的ASCII字符八72表示的是ASCII码等于72的那个字符,即为H,所以在字符变量中存储的只是H这一个字符。故本题答案为A。6.下面程序#includevoidmain()intx=10,y=3;printf(%dn,y=x/y);TOC o 1-5 h z的输出是_C。不确定的值130本题的考查点是除法运算。x/y的结果约为3.33

8、333,但x和Y定义为int,由于打印要求为整型,所以自动转换为整型(相当于截取整数位),打印结果为3。故本题答案为C。设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是B。5.5000006.00000066.500000本题的考查点是各类数值型数据的混合运算。各类数值型数据在进行混合运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则为:字符数据必定先转换为整数,short型转为int型,float型数据在运算时一律先转换成双精度型,以提高运算精度。故本题答案为D。有如下程序#includevoidmain()intx=1,a=0,b

9、=0;switch(x)case0:b+;case1:a+;case2:a+;b+;printf(a=%d,b=%dn,a,b);该程序的输出结果是_D。a=2,b=2a=1,b=1a=1,b=0a=2,b=1在这个switch语句中,因为x的值为1,所以执行case1:后面的a+,这样a=1。但又由于其下没有break语句,所以其后面的语句(a+;b+)也将被执行,这样一来,a=2,b=1。本题答案为A。设有定义:inta;floatb;执行scanf(%2d%f,&a,&b);语句时,若从键盘输入876543.0,a和b的值分别是D876和543.00000076和543.00000087

10、和543.00000087和6.000000有以下程序#includevoidmain()ints=0,a=1,n;scanf(%d,&n);dos+=1;a=a-2;while(a!=n);printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是_B。-5-3-10本题的考查点是do-while语句此语句的一般形式为:do语句while(表达式)其特点为:先执行语句,后判断表达式。它是这样执行的:先执行一次指定的内嵌的语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行该语句,如此反复,直到表达式的值等于0为止,此时循环结束。当n=-1时,s+=1,s=1

11、;a=a-2=-1;a!=n不成立,结束循环,此时s值为1,不符合题意;当n=-3时,s+=1,s=1;a=a-2=-1;a!=n成立,继续循环,s=s+1=2,a=a-2=-3;a!=n不成立,此时s值为2,符合题意;故本题答案为B。11.以下选项中非法的表达式是_D。i=j=00=x100(char)(65+3)x+1=x+1计算或运算主要是通过表达式实现的。不同的表达式进行不同的运算,达到不同的目的。选项A中,0=x100在C语言中是一个合法的关系表达式,但它并不代表数学式Ov=xv1OO。在计算Ov=xv1OO时,根据从左到右的结合性,先计算Ov=x,其结果只能是0或1,然后再比较01

12、00或1=0)AND(ch=0)&(ch=ch=0)(ch=0)&(ch=9)下面程序#includevoidmain()intx=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=-1;printf(%dn,x);的输出是_A_。-10C.不确定的值D.1本题的考查点是判断语句的循环嵌套。第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如何变化,最后的x值依然为-1。故本题答案为A15.有以下程序#incl

13、udevoidmain()inti;for(i=0;i3;i+)switch(i)case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);执行后输出的结果是_B120011122012012020本题的考查点是switch语句。switch语句在执行时先计算表达式i的值,当表达式i的值与某一个case中的常量表达式的值相等时,就执行该case后面的语句系列,接着再执行后面各个case中的语句序列,一直到执行完default后面的语句序列,然后结束switch。如果所有case中的常量表达式的值都没有与表达式i的值相匹配,就只执行de

14、fault后面的语句序列。break语句与switch语句配合使用,可以强行控制程序流程退出switch。由于本题没有与break语句配合使用,因此在执行完case1以后,还要继续执行case2和defult。当i=0时,执行defult语句,输出0;当i=1时,执行case1语句,输出1,因为没有break控制程序流程退出,所以继续执行下面的语句,输出11,以此类推。故本题答案为A。16.以下4组用户定义标识符中,全部合法的一组是_C。_mainIftxtintenclude-maxREALk_2sinturbo3COM001A.TOC o 1-5 h zC语言规定标识符只能由字母、数字和下

15、划线三种符号组成,而且第一个字符必须是字母或下划线。中的-max不符合要求,-既不是字母、数字,也不是下划线;中的3COM第一个字符为数字,不合法;中的int和C语言的关键字重名,不合法。故本题答案为A已知inti=1;执行语句while(i+0|E0)(!E=0)(E!=0)有以下程序#includevoidmain()intx,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是-C-2,2,12,3,22,3,12,3,3赋值运算比逗号优先级别高21.在C语言中,合法的基本数据类型关键字是_CDoubleintegerlongC

16、har22.有如下程序#includevoidmain()floatx=2.0,y;if(x0.0)y=0.0;elseif(x10.0)y=1.0/x;elsey=1.0;printf(%fn,y);该程序输出结果是_A0.5000000.0000001.0000000.250000本题考查的是if语句的使用。x=2.0,符合第二个if语句的条件xvlO.O,所以执行y=1.0/x语句,即y=1.0/2.0=0.500000。本题答案为C。在C语言中,以下程序段中内循环体总的执行次数是for(i=5;i;i-)for(j=0;jv4;j+).内循环体.-D-3024TOC o 1-5 h z

17、2520与条件表达式(n)?(c+):(c-)中的表达式(n)等价的表达式是D。(n=1)(n!=1)(n=0)(n!=0)C中的条件运算,非零为真。25.有以下程序#includevoidmain()intk=4,n=0;for(;nk;)n+;if(n%3!=0)continue;k-;printf(%d,%dn,k,n);TOC o 1-5 h z程序运行后的输出结果是_A。3,32,21,14,4本题的考查点是循环和continue语句。continue语句是结束本次循环。n从0开始循环,判断n%3!=0是否成立,为真,跳出循环,继续判断,为假,执行k-,并结束循环,输出k、n的值。n

18、等于0、1、2时,都跳出循环继续判断,当n=3时,n%3!=0为假,执行k-,k的值变为3。故本题答案为C。26.以下程序的输出结果是_D_。#includevoidmain()inta=0,i;for(i=1;i5;i+)switch(i)case0:case3:a+=2;case1:case2:a+=3;default:a+=5;printf(%dn,a);A.13B.102031switch结构的执行过程为:进入switch结构后,对条件表达式进行计算,然后从上至下去找与条件表达式的值相匹配的case,以此作为入口,执行switch结构中后面的各语句。第一次for循环中,switch结构的条件表达式i的值是1,则从case1开始执行后面的语句,先执行a+=3,a的值变成3,接着执行a+=5,a的值变成了8。然后进入第二次循环,switch结构条件表达式i的值2,则从case2开始执行后面的语句,结束第二轮循环时a的值是16,在第三轮循环中,switch结构条件表达式的值是3,则从case3后面的语句开始执行,a+=2语句使a的值变成了18,然后执行a+=3,和a+=5,第三轮循环结束时,a的值是26。第四轮循环中,s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论