2022年中国矿业大学公共课《C语言》科目期末试卷B(有答案)_第1页
2022年中国矿业大学公共课《C语言》科目期末试卷B(有答案)_第2页
2022年中国矿业大学公共课《C语言》科目期末试卷B(有答案)_第3页
2022年中国矿业大学公共课《C语言》科目期末试卷B(有答案)_第4页
2022年中国矿业大学公共课《C语言》科目期末试卷B(有答案)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

2022年中国矿业大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。#include<stdio.h>intmain(){inta,b;floatx,y;charcl,c2;scanf("a=%db=%d",&.a,&.b);scanf("x=%fy=%",8.x,8.y);scanf("c1=%cc2=%c”,8.cl,8.c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,cl,c2);return0;}2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、若有定义语句:intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为_______。5、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。5x7+3x6-4x5+2x1+x3-6x2+x+106、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。7、函数swap(intx,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。a[o]=1;a[1]=2;swap(a[o],a[1]);8、设有宏定义如下:#defineMIN(x,y)(x)>(y)?(x):(y)#defineT(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。inta=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a++,a*++b,a+b+c);9、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。10、下面程序段的运行结果是_______。chara[]="12345",*p;ints=0;for(p=a;*p!=\0';p++)s=10*s+*p-'o';printf("%d\n",s);二、选择题11、下面不正确的字符串常量是()A.'abe'B."12'12"C."o"D.""12、下面4个选项中,是合法浮点数的选项是。()A.+1e+1B.-.60C.123eD.-e35e-9.412e-41.2e-4.8e-403e2-8e5+2e-15.e-013、一个C语言程序由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成14、C语言规定:在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后15、以下描述中错误的是()。A.字符数组中可以存放ASCII字符集中的任何字符B.字符数组的字符串可以整体输入、输出C.字符数组中只能存放键盘上可以找到的字符D.不可以用关系运算符对字符数组中的字符串进行比较16、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是()。A.inta=b=c=5;B.inta,b,c=5;C.a=5,b=5,c=5;D.a=b=c=5;17、若有定义:inta[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为()。A.*(a[i]+j)B.(a+i)C.*(a+j)D.a[i]+j18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式19、语句while(!E);中的表达式!E等价于()。A.E==0B.E!=1C.E!=0D.E==120、下面有关for循环的正确描述是()。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来21、当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是()。if(a<B.if(c<D.x=l;elseif(a<C.if(b<D.x=2;elsex=3;elsex=6;elsex=7;A.1B.2C.3D.622、下面程序段的运行结果是()。inta[6][6],i,j;for(i=1;i<6;i++)for(j=1:j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n")}A)11111B)00001C)10000D)100011111100010010000101011111001000010000100111110100000010010101111110000000011000123、下面程序段的运行结果是()。chara[7]="abcdef";charb[4]="ABC";strcpy(a,B.;printf("%c",a[5]);A.口B.\0C.eD.f(其中口表示1个空格)24、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A',B’,C.;则符合程序段运行结果的选项是()。voidmove(chargetone,charputone){printf("%c——>%c\n",getone,putone);voidhanoi(intn,charone,chartwo,charthree){if(n==1)move(one,three);else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}A)A-->CB)A-->CC)A-->CD)A-->CA-->BA-->BA-->BA-->BC-->BC-->AC-->BC-->BB-->AA-->BA-->CA-->CC-->BB-->CB-->AA—->BA-->CA-->CB-->CB-->CA-->BA-->BA-->CA-->C25、以下能正确计算1×2×3×…×10的程序段是()。doB)doC)i=1;s=1;D)i=1;s=0;{i=1;s=1;{i=1;s=0;{do;{do;s=s*i;s=s*i;s=s*i;s=s*i;i++;i++;i++;i++;}while(i<=10);}while(i<=10);}while(i<=10);}while(i<=10);三、读程序填空26、以下程序的运行结果是_______。#include<stdio.h>intmain(){intn=0;n+=(n=10);printf("%d\n",n);return0;}27、以下程序的运行结果是_______。#include<stdio.h>intmain(){intm=177;printf("%o\n",m);return0;}28、以下程序运行结果是_______。#include<stdio.h>intmain(){inta=1,b=2,c=3;++a;c+=++b;{intb=4,c;c=b*3;a+=c;printf("first:%d,%d,%d\n",a,b,c);a+=c;printf("second:%d,%d,%d\n",a,b,c);printf("third:%d,%d,%d\n",a,b,c);return(0);}29、以下程序的运行结果是_______,fun函数的作用是_______。#include<stdio.h>#include<math.h>intfun(inty,intx){intz;z=abs(x-y);return(z);}intmain(){inta=-1,b=-5,c;c=fun(a,b);printf("%d',c);return(0);}30、下面程序的运行结果是_______。#include<stdio.h>intmain(){inty=2,a=1;while(y--!=-1){do{a*=y;a++;}while(y-一);}printf("%d,%d",a,y);return0;}31、下面程序的功能是从键盘输入一个大写英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间。若指定的字母为Z,则打印YZA;若为A,则打印ZAB。请填空。#include<stdio.h>intmain(){chara[3],c;inti;c=getchar();a[1]=c;if(c==Z'){a[2]='A';_______;)elseif(c=='A'){a[0]='Z';_______;)else{a[0]=c-1;a[2]=c+1;}for(i=0;i<3;i++)putchar(a[i]):return0;}32、为了使以下程序的输出结果为t=4,输入值a和b应满足的条件是_______。#include<stdio.h>intmain(){ints,t,a,b;scanf("%d,%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf("s=%d,t=%d",s,t);return0;}33、下面程序的功能是将字符串中的数字字符删除后输出。请填空。#include<stdio.h>voiddelnum(char*s){inti,j;for(i=0,j=0;s[i]!=\0';i++)if(s[i]<o'_______s[i]>9'){s[j]=s[i];j++;}_______;}intmain(){charitem[80]="";printf("\ninputastring:");gets(item);delnum(item);printf("\n%s",_______);return(0);}四、编程题34、已有变量定义和函数调用语句inta,b;b=sum(a);函数sum()用以求k,和数作为函数值返回。若a的值为10,则经函数sum的计算后,b的值是55。请编写sum函数。intsum(intn){}35、请编写程序:主函数从命令行读入一个文件名,然后调用函数getline从文件中读入一个字符串放到字符数组str中(字符个数最多为100个);函数返回字符串的长度。在主函数中输出字符串及其长度。

参考答案一、填空题1、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车>(注:答案中的囗代表空格)2、【1】scanf【2】printf3、【1】.c【2】.obj【3】.exe4、15、X*(X*(X*(X*(X*(X*(5*X+3)一4)+2)+1)-6)+1)+106、【1】取地址【2】按位与7、a[0]=1a[1]=2【2】单向值传递,不能返回交换后的值。8、【1】3【2】289、【1】0【2】410、12345二、选择题11、A12、B13、B14

温馨提示

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

评论

0/150

提交评论