版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年重庆移通学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x为无符号整数。表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x中从第p位开始的n位求反(1变0,0变1),其他位不变。请按表达式的求值顺序写出分解步骤,并解释含义。__________________________________2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。3、C语言源程序的基本单位是________4、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为_______。5、在C语言中,用“\”开头的字符序列称为转义字符。转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。6、以下程序的运行结果是_______。#include<stdio.h>intmain(){chars[]="ab\'cdefg\",*p=s+1;printf("%c”,*(p++));printf("%s",p+2);return(0);}7、下面程序段中循环体的执行次数是_______。a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。9、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。a+=_______;b=a-_______;a-=_______;10、若有定义:doublex[3][5];,则x数组中行下标的下限为_______,列下标的上限为_______。二、选择题11、设有说明语句:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()。A.float.B.charC.intD.double12、下面4个选项中,是不合法的转义字符的选项是()A.'\"'B.'\1011'C.'\0ll'D.'\abe'\\'\''\f''\0ll'\xf''\a''\]''xlf'13、以下不符合C语法的赋值语句是()。A.m=(2+1,m=1);B.m=n=0;C.m=1,n=2D.n++;14、已有定义intx;floaty;且执行scanf("%3d%f”,&x,&y);语句,若从第一列开始输入数据12345口678<回车>,则y的值为()。(注:口表示空格)A.无定值B.45.000000C.678.000000D.123.00000015、以下不能对二维数组a进行正确初始化的语句是()。A.inta[2][3]={0};B.inta[][3]={{1,2},{0}};C.inta[2][3]={{1,2},{3,4},{5,6}};D.inta[][3]={1,2,3,4,5,6);16、以下叙述不正确的是()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面17、设有程序段:t=0;while(printf("*")){t++;if(t<3)break;}下面描述正确的是()。A.其中循环控制表达式与0等价B.其中循环控制表达式与'0'等价C.其中循环控制表达式是不合法的D.以上说法都不对18、若用数组名作为函数调用的实参,则传递给形参的是()A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数19、下面程序段的运行结果是()。char*s="abcde";s+=2;printf("%d',s);A.cdeB.字符cC.字符c的地址D.无确定的输出结果20、若要对a进行++运算,则a应具有下面说明()A.inta[3][2];B.char*a[]={"12","ab"};C.char(*A.[3];D.intb[10],*a=b;21、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。intbinary(inta[10],intm){intlow=0,high=9,mid;while(low<=high){mid=(low+high)/2;if(m<a[mid])high=mid-1;elseif(m>a[mid])【】;elsereturn(miD.;return(一1);}A.high=mid-1B.low=mid+1C.high=mid+1D.low=mid-122、下面程序的运行结果是()。#include<stdio.h>intmain(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'o';printf("%d\n",s);return0;}A.1B.1256C.12ab56D.1523、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。()#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、若变量都已正确定义,则以下程序段的输出是()。a=10;b=50;c=30;if(a>B.a=b,b=c;c=a;printf("a=%db=%dc=%d\n".a,b,C.;A.a=10b=30c=10B.a=10b=50c=10C.a=50b=30c=10D.a=50b=30c=5025、下面程序的运行结果是()。#include<stdio.h>intmain(){inti;for(i=1;i<=5;i++)switch(i%5){case0:printf("*");break;case1:printf("#");break;default:printf("\n");case2:printf("&.");}return0;}A)#&8&&*B)#&C)#D)#&&&&*&*&*三、读程序填空26、以下printf语句中*号的作用是_______,输出结果是_______。#include<stdio.h>intmain(){inti=1;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);return0;}27、以下程序的运行结果是_______。#include<stdio.h>intmain(){intn=100;charc;floatf=10.0;doublex;x=f*=n/=(c=48);printf("%d%d%3.1f%3.1f\n",n,c,f,x);return0;}28、若运行以下程序时输入:-2<回车>,则程序的输出结果是_______。#include<stdio.h>intmain(){inta,b;scanf("%d",&a);b=(a>=0)?a:-a;printf("b=%d",b);return0;}29、以下程序的运行结果是_______。#include<stdio.h>intmain(){intx,y,z;x=3;y=3;z=x==y;printf("z=%d\n",z);return0;}30、下面程序的运行结果是_______。#include<stdio.h>intmain(){inti,t,sum=0;for(t=i=1;i<=10;){sum+=t;++i;if(i%3==0)t=-i;elset=i;}printf("sum=%d,sum);return0;}31、下面函数func的功能是_______。#include<conio.h>#include<stdio.h>#include<stdlib.h>longfunc(longnum){longk=1;num=labs(num);do{k*=num%10;num/=10;}while(num);return(k);}intmain(){longn;printf("\nPleaseenteranumber:");scanf("%ld",&.n);printf("\nTheproductofitsdigitsis%ld.",func(n));return(0);}32、下面程序段的功能是将字符数组a[6]={'a',b','c','d','e','f)变为a[6]={'f','a','b','c','d','e'}。请填空。chart,a[6]={'a','b','c','d','e','f');inti;_______;for(i=0;i<5;i++){_______;for(i=0;i<=5;i++)printf("%c",a[i]);33、下面程序的运行结果是_______。#include<stdio.h>#include<string.h>voidfun(char*p1,char*p2,intn){inti;for(i=0;i<n;i++)p2[i]=(pl[i]-'A'-3+26)%26+'A';p2[n]='\o';}intmain(){charsl[5],s2[5];strcpy(s1,"ABCD");fun(s1,s2,4);puts(s2);return0;}四、编程题34、编写程序实现功能:输入整数a和b,若a2+b2>100,则输出a2+b2百位以上数字,否则直接输出a2+b2的和35、编写程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串,请用指针完成。
参考答案一、填空题1、【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中的指定位数用异或求反2、【1】scanf【2】printf3、函数4、05、【1】换行6、'bdefg'7、38、【1】格式控制符与变量类型不匹配。scanf语句的正确形式应该是:scanf("%f",8.k);【2】未指明变量k的地址。9、【1】b【2】b【3】b10、【1】0【2】4二、选择题11、D12、B13、D14、B15、C16、D17、B18、A19、C20、D21、C22、A23、B24、B25、B三、读程序填空26、【1】可以使同一输出语句中的输出宽度得以改变。【2】##1##囗2##囗囗327、24820.020.028、b=229、z=130、sum=1931、计算整数num的各位数字之积。32、【1】t=a[5]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老护理员职业发展与继续教育
- ABP监测的护理创新思维
- 分子探针术语进展
- 冰冻灾害中远程创伤救治的实施路径
- 冠心病病例的预后评估互动教学
- 纸箱纸盒制作工安全检查评优考核试卷含答案
- 汽车租赁业务员诚信考核试卷含答案
- 密码技术应用员安全宣传水平考核试卷含答案
- 广告设计师操作知识强化考核试卷含答案
- 再生医学在牙周修复中的创新
- 2026年泰山护理职业学院单招综合素质笔试模拟试题含详细答案解析
- 人教版物理八年级下册第七章 《力》单元测试提升卷
- (新教材)2026年春期人教版一年级下册数学全册核心素养教案(反思有内容)
- 《做个“开心果”》-2025-2026学年统编版(新教材)小学道德与法治二年级下册
- 2025年乡镇邪教工作总结及2026年工作计划
- 福建省房屋建筑和市政基础设施工程概算编制规程(2026版)
- 吊顶内作业安全操作规程
- 非遗宋锦-交娱企业文化日活动执行方案
- 化妆品安全技术规范课件
- GB/T 18451.2-2025风能发电系统风力发电机组功率特性测试
- 寻找红色足迹 传承红色精神
评论
0/150
提交评论