2022年南京航空航天大学金城学院公共课《C语言》科目期末试卷B(有答案)_第1页
2022年南京航空航天大学金城学院公共课《C语言》科目期末试卷B(有答案)_第2页
2022年南京航空航天大学金城学院公共课《C语言》科目期末试卷B(有答案)_第3页
2022年南京航空航天大学金城学院公共课《C语言》科目期末试卷B(有答案)_第4页
2022年南京航空航天大学金城学院公共课《C语言》科目期末试卷B(有答案)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

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、结构化程序由________、________、________3种基本结构组成。4、C语言所提供的基本数据类型包括:单精度型、双精度型、_______、_______和_______。5、若有定义语句:ints=6;则表达式s%2+(s+1)%2的值为_______6、请读程序段:inta=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。7、函数swap(intx,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。a[o]=1;a[1]=2;swap(a[o],a[1]);8、下面程序段的运行结果是_______。inti=5;charc[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);9、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。10、当运行以下程序时,从键盘输入book<回车>book囗<回车>(囗表示空格),则下面程序段的运行结果是_______。charal[80],a2[80],*sl=al,*s2=a2;gets(s1);gets(s2);if(!strcmp(sl,s2))printf("x");elseprintf("#");printf("%d",strlen(strcat(sl,s2))}二、选择题11、下面4个选项中,是合法转义字符的选项是()。A.’\"B.'\'C.'\018'D.'\\o''\\''\017''\f''\10l''\n''\"'xab''xlf'12、下面4个选项中,是正确的八进制数或十六进制数的选项是()。 13、以下叙述不正确的是()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面14、一个C语言程序由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成15、以下能对二维数组a进行正确初始化的语句是()。A.inta[2][]={{1,0,1},{5,2,3}};B.inta[][3]={{1,2,3},{4,5,6}};C.inta[2][4]={1,2,3},{4,5},{6}};D.inta[][3]={{1,0,1,0},{},{1,1}};16、设有说明:doubley=0.5,z=1.5;intx=10;则能够正确使用C语言库函数的赋值语句是()。A.z=exp(y)+fabs(x);B.y=log10(y)+pow(y);C.z=sqrt(y-z);D.x=(int)(atan2((double)x,y)+exp(y-0.2));17、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",JAVA","C");则language[2]的值是()。A.一个字符B.一个地址C.一个字符串D.一个不定值18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式19、下列程序段不是死循环的是()。inti=100;while(1){i=i%100+1;if(i>100)break;B.for(;;);C.intk=0;do{++k;}while(k>=0);D.ints=36;while(s);--s;20、若i为整型变量,则以下循环执行次数是()。for(i=2;i==0;)printf("%d",i--);A.无限次B.0次C.1次D.2次21、以下程序的输出是()。#include<stdio.h>intmain(){inta=100,x=10,y=20,okl=5,ok2=0;if(x<y)if(y!=10)if(!ok1)a=1;elseif(ok2)a=10;a=-1;printf("%d\n",A.;return0;}A.1B.0C.-1D.值不确定22、下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。请选择填空。#include<stdio.h>#include<string.h>intmain(){chara[]="acegikm",b[]="bdfhjlnpq";charc[80],*p;inti=0,j=0,k=0;while(a[i]!=\o'&&b[j]!='\o'){if(a[i]<b[j]){c[k]=a[i];i++}else{【】}k++;}c[k]='\o';if(a[i]=='\0')p=b+j;elsep=a+i;strcat(c,p);puts(C.;return0;}A.c[k]=a[i];i++;B.c[k]=a[j];i++;C.c[k]=a[i];j++;D.c[k]=a[j];j++;23、当运行以下程序时,从键盘输入:ab<回车>C<回车>def<回车>则下面程序的运行结果是()。#include<stdio.h>#defineN6intmain(){charc[N];inti=0;for(;i<N;c[i]=getchar(),i++);for(i=0;i<N;i++)putchar(c[i]);return0;}A.abcdefB.aC.bD.abbcccddef24、以下程序的运行结果是()。#include<stdio.h>intf(intx,inty){return(y-x)*x;}intmain(){inta=3,b=4,c=5,d;d=f(f(a,C.,f(a,B.+f(c,B.);printf("%d\n",D.;return(0);}A.-48B.58C.-58D.4725、假设等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。()#include<stdio.h>intmain(){inta=1,g=2,n=0,sum=0;do{【1】;++n;a*=g;}while(sum<100);n-=1;printf("%d\n",n);return0;}A.sum++B.sum+=aC.sum=a+aD.a+=sum三、读程序填空26、以下程序的运行结果是_______。#include<stdio.h>intmain(){intm=177;printf("%o\n",m);return0;}27、以下printf语句中的负号的作用是_______,该程序的输出结果是_______。#include<stdio.h>intmain(){intx=12;doublea=3.1415926;printf("%6d##\n",x);printf("%一6d##\n",x);printf("%14.101f##\n",a);printf("%-14.101f##\n",a);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、函数del的作用是删除已按升序排列的数组a中的指定元素x。已有调用语句n=del(a,n,x);其中实参n为删除前数组元素的个数,赋值号左边的n为删除后数组元素的个数。请填空。intdel(inta[],intn,intx){intp,i;p=0;while(x>=a[p]&&p<n)_______;for(i=p-1;i<n;i++)_______;n=n一1;returnn;}30、下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数;若未找到,打印notexist。请填空。#include<stdio.h>intmain(){inti,a;for(i=1;i<=10;i++){scanf("%d",&a);if(a%7==0)_______;}if(_______)printf("%d\n",a);elseprintf("notexist\n");return0;}31、当运行以下程序时,从键盘输入:BOOK<回车>CUT<回车>GAME<回车>PAGE<回车>则下面程序的运行结果是_______。#include<stdio.h>#include<string.h>intmain(){inti;charstr[10],temp[10]="Control";for(i=0;i<4;i++){gets(str);if(strcmp(temp,str)<0)strcpy(temp,str);}puts(temp);return0;}32、以下程序的运行结果是_______。#include<stdio.h>intmain(){intx=1,y,z;x*=3+2;printf("%d\t",x);x*=y=z=5;printf("%d\t',x);x=y==z;printf("%d\n",x);return0;}33、若从键盘输入:2<回车>,则下面程序的运行结果是_______。#include<stdio.h>intmain(){char*b[]={"English","Physics","Maths","Pascal","Chemistry","End","Error"};intnum;printf("Enteraintegerthatshouldbebetween0to9\n");scanf("%d”,&.num);if(num>=0&&num<=9)if(num>=1&&num<=5)printf("Thechosenclassis:%s.\n",b[num-1]);elseprintf("Noclassischosen.%s!!\n",b[5]);elseprintf("Yourinputis:%s!!\n",b[6]);return(0);}四、编程题34、设有一个数列,包含10个数,已按升序排好。现要求编写程序,把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指针方法。试编程。(例如:原数列为2、4、6、8、10、12、14、16、18、20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2、4、6、16、14、12、10、8、18、20。)35、以下程序的功能是应用弦截法求方程x3-5x2+16x-80=0的根,其中f函数可根据指定的x的值求出方程的值;函数xpoint可根据x1和x2求出f(x1)和f(x2)的连线与x轴的交点;函数root用来求区间(x1,x2)的实根。请编写root函数。#include<stdio.h>#include<math.h>floatroot(floatxl,float×2){}floatf(floatx)/*略*/{}floatxpoint(floatx1,floatx2)/*路*/{}intmain(){floatxl,x2,fl,f2,x;do{printf(“inputxl,x2:\n");scanf("%f%,8&x1,8.x2);printf("xl=%5.2f,x2=%5.2f\n",xl,x2);f1=f(x1);f2=f(×2);}while(fl*f2>=0);x=root(x1,x2);printf("Arootofequationis%8.4f",x);return(0);}

参考答案一、填空题1、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车>(注:答案中的囗代表空格)2、主函数(或main函数)3、【1】顺序结构【2】选择结构【3】循环结构4、【1】整型【2】字符型【3】枚举型5、16、-1,1777777、a[0]=1a[1]=2【2】单向值传递,不能返回交换后的值。8、aabcd9、doublea[M][M]={0};10、#9二、选择题11、A12、C13、D14、B15、B16、D17、B18、B19、C20、B21、C22、D23、D24、A25、B三、读程序填空26、26127、【1】输出数据左对齐【2】囗囗囗012##12口囗囗囗##囗囗3.141592600##3.141592600囗囗##(注:答案中的囗代表空格)28、first:14,4,12second:26,4,12third:26,3,629、【1】p=p+1【2】a[i]=a[i+1]30、【1】break【2】i<=1031、PAGE32、5.25133、Thechosenclassis:Physi

温馨提示

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

评论

0/150

提交评论