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

下载本文档

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

文档简介

2026年三峡大学科技学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。union{intn;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。3、C语言源程序的基本单位是________4、若有定义语句:intm=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______5、在C语言的赋值表达式中,赋值号左边必须是_______6、设x为无符号整数。表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x中从第p位开始的n位求反(1变0,0变1),其他位不变。请按表达式的求值顺序写出分解步骤,并解释含义。__________________________________7、函数swap(intx,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。a[o]=1;a[1]=2;swap(a[o],a[1]);8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。9、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。10、下面程序段的运行结果是_______。char*s1="AbcdEf",*s2="aB";intt;s1++;t=(strcmp(s1,s2)>0);printf("%d\n",t);二、选择题11、若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为()。A.4B.16C.32D.5212、若有代数式3acbc,则不正确的C语言表达式是(A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*313、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束14、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误15、若有说明:inta[10];,则对a数组元素的正确引用是()。A.a[10]B.a[3.5]C.a(5)D.a[10-10]16、设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是()。A.x=10B.x=10C.x=10D.x=10y=15y=10y=10y=5z=10z=10z=15z=1017、若有以下定义和语句,则对a数组元素的正确引用为()。inta[2][3],(*p)[3];p=a;A.(p+1)[0]B.*(*(p+2)+1)C.*(p[1]+1)D.p[1]+218、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()A.externB.registerC.autoD.static19、以下for循环的执行次数是()。for(x=0,y=0;(y=123)&&(x<4);x++);A.是无限循环B.循环次数不定C.执行4次D.执行3次20、语句while(!E);中的表达式!E等价于()。A.E==0B.E!=1C.E!=0D.E==121、以下程序()。#include<stdio.h>intmain(){inta=5,b=0,c=0;if(a=b+C.printf("***\n");elseprintf("$$$\n");return0;}A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$22、下面程序的运行结果是()。#include<stdio.h>#include<string.h>intmain(){chara[80]="AB',b[80]="LMNP";inti=0;strcat(a,B.;while(a[i++]!=‘\o’)b[i]=a[i];puts(B.;return0;}A.LBB.ABLMNPC.ABD.LBLMNP23、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。()#include<stdio.h>intmain(){chars[80],c1,c2='';inti=0,num=0;gets(s);while(s[i]!='\o'){c1=s[i];if(i==0)c2='';elsec2=s[i-1];if(【】)num++;i++;printf("Thereare%dwords.\n",num);return0;}A.c1==′′&&c2==''B.cl!=''&&c2==''C.c1==''&&c2!=''D.cl!=''&&c2!=''24、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。#include<stdio.h>#include<math.h>floatf(float,float);intmain(){floatx,y,z,sum;scanf("%f%1%f",8.x,&y,8.z);sum=f(【】)+f(z+y,z-y);printf("sum=%fNn",sum);return(0);}floatf(floata,floatB.{floatvalue;value=a/b;return(value);}A)x-y,x+yB)x+y,x-yC)z+y,z-yD)z-y,z+y25、下面程序的运行结果是()。#include<stdio.h>intmain(){intnum=0;while(num<=2){num++;printf("%d\n",num);return0;}A)1B)1,2C)1,2,3D)1,2,3,4三、读程序填空26、以下程序的输出结果为_______.#include<stdio.h>intmain(){printf("*%f,%4.3f*\n",3.14,3.1415);return0;}27、以下程序的输出结果是_______。#include<stdio.h>intmain(){inta=252;printf("a=%oa=%#o\n",a,a);printf("a=%xa=%#x\n",a,a);return0;}28、函数yanghui能够按以下形式构成一个杨辉三角形。请填空。11121132114321#include<stdio.h>#defineN1voidyanghui(inta[][N]){inti,j;for(i=0;i<N;i++){a[i][1]=1;a[i][i]=1;}for(_______;i<N;i++)for(j=2;_______;j++)a[i][j]=_______+a[i-1][j];}29、以下程序的功能是根据输入的y(Y)与n(N),在屏幕上分别显示出ThisisYES.与ThisisNO.。请填空。#include<stdio.h>voidYesNo(charch){switch(ch){case'y':case'Y':printf("\nThisisYES.\n");_______;case'n':case'N':printf("\nThisisNO.\n");}intmain(){charch;printf("\nEnterachar'y','Y"or'n','N':");ch=[2];printf("ch:%c",ch);YesNo(ch);return(0);}30、下面程序段的运行结果是_______。for(a=1,i=-1;-1<=i<1;i++){a++;printf("%2d",a);}printf("%2d",i);31、下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。请填空。#include<stdio.h>intmain(){inta[3]={5,9,19};intb[5]={12,24,26,37,48};intc[10],i=0,j=0,k=0;while(i<3&&.j<5)if(_______){c[k]=b[];k++;j++;}else{c[k]=a[i];k++;i++;}while(_______){c[k]=a[i];i++;k++;}while(_______){c[k]=b[];k+十;j++;}for(i=0;i<k;i++)printf("%3d",c[i]);return0}32、以下程序的功能是:某邮局对邮寄包裹有如下规定,若包裹的长、宽、高任一尺寸超过1m或重量超过30kg,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据表4-5按不同重量weigh计算的邮资。请填空。重量与邮资重量/kg邮资/元weigh<0.8010<0.7520<0.70#include<stdio.h>intmain(){floatlen,weigh,hei,wid,mon,r;scanf("%f%f%f%f",&len,&wid,&hei,&weigh);if(len>1||wid>1||hei>1||weigh>30)___________;elseif(weigh<10)r=0.8;elseif(weigh<=20)r=0.75;elseif(weigh<=30)___________;if(r==-1)printf("error\n");else{___________;printf("%f",mon);}return0;}33、下面程序的功能是将两个字符串s1和s2连接起来。请填空。#include<string.h>#include<stdio.h>voidconj(char*p,char*P2);intmain(){charsl[80],s2[80];gets(s1);gets(s2);conj(s1,s2);puts(s1);return(0);}voidconj(char*pl,char*p2){char*p=pl;while(*p1)_______;while(*p2){*p1=_______;pl++;p2++;}*p1='\0';}四、编程题34、请定义枚举类型money,用枚举元素代表人民币的面值。包括1、2、5分;1、2、5角;1、2、5、10、50、100元。35、设有一个unsignedlong型整数,现要分别将其前2个字节和后2个字节作为2个unsignedint型整数输出(设一个int型数据占2个字节),试编一函数partition实现上述要求。要求在主函数中输入该long型整数,在函数partition中输出结果。

参考答案一、填空题1、【1】%If【2】num.x2、【1】scanf【2】printf3、函数4、-165、变量6、【1】~0得到一个全1的数【2】(~0<<n)得到一个左端几个1,右端全0的数【3】~(~0<<n)得到一个左端为0,右端几个1的数【4】~(~0<<n)<<(p+1-n)将几个1移到以p为起点的位置【5】x^(~(~0<<n)<<(p+1-n))对x中的指定位数用异或求反7、a[0]=1a[1]=2【2】单向值传递,不能返回交换后的值。8、【1】0【2】69、doublea[M][M]={0};10、1二、选择题11、C12、C13、A14、C15、D16、A17、C18、D19、C20、A21、D22、D23、B24

温馨提示

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

评论

0/150

提交评论