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

下载本文档

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

文档简介

2022年浙江师范大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。charcl,c2;scanf("%4c%4c",&cl,8&c2);2、C语言的源程序必须通过【】和【】后,才能被计算机执行。3、在C语言源程序中,一个变量代表【】。4、若有定义语句:inte=1,f=4,g=2;floatm=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是_______。5、若a是int型变量,则执行表达式a=25/3%3后a的值为_______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、若有定义floata[3][5];则a数组所含数组元素个数是_______,a数组所占的字节数是_______。9、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。10、以下程序段通过指针变量q,但不移动q,将如图所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。请填空。(假设程序段中的所有变量均已正确说明。)for(k=0;k<10;k++)printf("%d,",_______);printf("\n");二、选择题11、下面4个选项中,是合法转义字符的选项是()。A.’\"B.'\'C.'\018'D.'\\o''\\''\017''\f''\10l''\n''\"'xab''xlf'12、下面4个选项中,是合法整型常量的选项是()。A.160B.-0xcdfC.-01D.-0x48a-0xffff01a9860122e50110xe06680x13、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误14、以下叙述不正确的是()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面15、若有定义floatx[4]={1.3,2.4,5.6},y=6;,则错误的语句是()。A.y=x[3];B.y=x+1;C.y=x[2]+1;D.x[0]=y;16、以下C程序的运行结果是。(注:口表示空格)#include<stdio.h>intmain(){inty=2456;printf("y=%3o\n",y);printf("y=%8o\n",y);printf("y=%#8o\n",y);return0;}A.y=口口口2456B.y=囗口□4630y=口口口口口口口口2456y=口口口口口口口04630y=########2456y=########4630C.y=2456D.y=4630y=口口口口2456y=口口口口4630y=口口口02456y=口口口0463017、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",JAVA","C"};则以下不正确的叙述是()A.language+2表示字符串”PASCAL”的首地址B.*language[2]的值是字母PC.language是一个字符型指针数组,它包含5个元素,每个元素都是一个指向字符串变量的指针D.language是一个字符型指针数组,它包含5个元素,其初值分别是:"FORTRAN","BASIC","PASCAL","JAVA","C"18、若用数组名作为函数调用的实参,则传递给形参的是()A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数19、语句while(!E);中的表达式!E等价于()。A.E==0B.E!=1C.E!=0D.E==120、若i为整型变量,则以下循环执行次数是()。for(i=2;i==0;)printf("%d",i--);A.无限次B.0次C.1次D.2次21、以下程序的输出是()。#include<stdio.h>intmain(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);return0;3B.2C.1D.022、下面程序的运行结果是()。#include<stdio.h>intmain(){chara[]="morming",t;inti,j=0;for(i=1;i<7;i++)if(a[j]<a[])j=i;t=a[j];a[j]=a[7];a[7]=a[j];puts(a);return0;}A)mogninrB)moC)morningD)mornin23、定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(k=0;k<3;k++)printf("%d",a[k][2-k]);A)357B)369C)159D)14724、以下程序的正确运行结果是()。#include<stdio.h>#defineMAX10voidsub2(),sub1(),sub3(int*A.;inta[MAX],i;intmain(){printf("\n");subl();sub3(a);sub2();sub3(a);return(O);voidsub2(){inta[MAX],i,max;max=5;for(i=0;i<max;i++)a[i]=i;}voidsubl(){for(i=0;i<MAX;i++)a[i]=i+i;voidsub3(inta[]){inti;for(i=0;i<MAX;i++)printf("%d",a[i]);printf("\n");}A)02468101214161801234B)01234024681012141618C)012345678901234D)02468101214161802468101214161825、若运行以下程序时,从键盘输入3.62.4<回车>,则下面程序的运行结果是()#include<stdio.h>#include<math.h>intmain(){floatx,y,z;scanf("%f%f",&x,&y);z=x/y;while(1)if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;printf("%f\n",y);return0;}A)1.500000B)1.600000C)2.000000D)2.400000三、读程序填空26、以下程序的输出结果为_______.#include<stdio.h>intmain(){printf("*%f,%4.3f*\n",3.14,3.1415);return0;}27、以下程序的输出结果是_______。#include<stdio.h>intmain(){inta=325;doublex=3.1415926;printf("a=%+06dx=%+e\n",a,x);return0;}28、以下程序的运行结果是_______。#include<stdio.h>intmax(intx,inty);intmain(){inta=1,b=2,c;c=max(a,b);printf("maxis%d\n",c);return(0);}intmax(intx,inty){intz;z=(x>y)?x:y;return(z);}29、以下函数fun的功能是:将输入的大写字母,先转换为与其对应的小写字母,然后再转换成该小写字母后的第3个字母,返回后输出。例如,若输入的字母为E,输出的字母则为h;若输入的字母为Y,输出的字母则为b。请填空。#include<stdio.h>#include<string.h>charfun(charc){!c=_______:if(c>=1a1&&c<='w')c=c+3;elseif(c>='x'/&&c<='z')_______:returnc;}intmain(){charc;c=getchar();c=fun(e);putchar(c);return(0);}30、若从键盘输入6514<回车>,则下面程序的运行结果是_______。#include<stdio.h>intmain(){intm,n;printf("Enterm,n:");scanf("%d%d”,&m,&n);while(m!=n){while(m>n)m一=n;while(n>m)n-=m;printf("m=%d\n",m);return0;}31、下面程序的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符,则输出该字符在数组中第一次出现的位置(下标值);否则输出一1。请填空。#include<stdio.h>#include<string.h>intmain(){charc='a',t[50];intn,k,j;gets(t);n=_______;for(k=0;k<n;k++)if(_______){j=k;break;}elsej=-1;printf("%d",j);return0;}32、以下程序的功能是判断输入的某个年份是否是闰年。请填空。#include<stdio.h>intmain(){inty,f;scanf("%d",&y);if(y%400==0)f=1;elseif(_______)f=1;else_______;if(f)printf("%dis",y);elseprintf("%disnot",y);printf("aleapyear\n");return0; }33、下面程序的运行结果是_______。#include<stdio.h>#defineSIZE12voidsub(char*a,inttl,intt2);intmain(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+32;sub(s,7,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");return(0);}voidsub(char*a,inttl,intt2){charch;while(t1<t2){ch=*(a+tl);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}四、编程题34、试编程序,找出1~99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,5和25都是同构数。35、通过指针数组p和一维数组a构成一个3×2的二维数组,并为a数组赋初值2、4、6、8…。要求先按行的顺序输出此二维数组,然后再按列的顺序输出它。试编程。

参考答案一、填空题1、A囗囗囗B囗囗囗<回车>2、【1】编译【2】连接3、内存中的一个存储单元4、13.7000005、26、【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】单向值传递,不能返回交换后

温馨提示

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

评论

0/150

提交评论