2022年重庆第二师范学院公共课《C语言》科目期末试卷A(有答案)_第1页
2022年重庆第二师范学院公共课《C语言》科目期末试卷A(有答案)_第2页
2022年重庆第二师范学院公共课《C语言》科目期末试卷A(有答案)_第3页
2022年重庆第二师范学院公共课《C语言》科目期末试卷A(有答案)_第4页
2022年重庆第二师范学院公共课《C语言》科目期末试卷A(有答案)_第5页
已阅读5页,还剩14页未读, 继续免费阅读

付费下载

下载本文档

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

文档简介

2022年重庆第二师范学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、测试char型变量a第6位是否为1的表达式是_______(设最右位是第1位)。2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。3、结构化程序由________、________、________3种基本结构组成。4、若有定义语句:intm=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______5、若有定义语句:ints=6;则表达式s%2+(s+1)%2的值为_______6、以下程序段通过指针变量q,给如图所示连续动态存储单元赋值(在此过程中不能移动q)。请填空。(假设程序段中的所有变量均已正确说明。)_______scanf("%d",q+k);7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是_______,改正后为_______。voidadd(floata,floatb){floatc;c=a+b;returnc;}8、执行以下程序时,若从第一列开始输入数据,为使变量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;}9、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。structs{chardata;_______}node;10、下面程序段的运行结果是_______。inti=5;charc[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);二、选择题11、下面4个选项中,是合法整型常量的选项是()。A.160B.-0xcdfC.-01D.-0x48a-0xffff01a9860122e50110xe06680x12、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。A.intB.floatC.doubleD.不确定13、已有如下定义和输入语句,若要求al,a2,c1,c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:口表示空格)inta1,a2;charc1,c2;scanf("%d%c%d%c”,&a1,&c1,&a2,&c2);A.10A□20B<回车>B.10□A□20□B<回车>C.10A□20B<回车>D.10A20□B<回车>14、设有以下程序:#include<stdio.h>intmain(){charcl,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);。putchar(c2);printf("%c%c\n",c5,c6);return0;}若运行时从键盘输入数据:abc<回车>defg<回车>,则输出结果是()。A.abcdB.abdeC.abefD.abfg15、以下不正确的定义语句是()。A.doublex[5]={2.0,4.0,6.0,8.0,10.0};B.inty[5]={0,1,3,5,7,9};C.charcl[]={'1','2','3','4','5'};D.charc2[]={'\x10','\xa','\x8'};16、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误17、以下不是无限循环的语句为()。A.for(y=0,x=1;x>++y;x=i++)i=x;B.for(;;x++=i):C.while(1){x++;}D.for(i=10;;i-一)sum+=i;18、以下程序有语法性错误,有关错误原因的正确说法是()。#include<stdio.h>intmain(){intG=5,k;voidprt_char();-----k=prt_char(G);---}A.语句voidprt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线19、下面程序段的运行结果是()。char*format="%s,a=%d,b=%d\n";inta=1,b=10;a+=b;printf(format,"a+=b",a,B.;A.for,"a+=b",abB..format,"a+=b"C.a+=b,a=11,b=10D.以上结果都不对20、main函数的正确说明形式是()。A.intmain(intargc,char*argv)B.intmain(intabc,char*xabv)C.intmain(intargc,charargv)D.intmain(intc,charv[])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(){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、当运行以下程序时,从键盘输入:aabb<回车>ccdd<回车>则下面程序的运行结果是()。#include<stdio.h>intmain(){charal[5],a2[5],a3[5],a4[5];scanf("%s%s",al,a2);gets(a3);gets(a4);puts(a1);puts(a2);puts(a3);puts(a4);return0;}A)aaB)aaC)aaD)aabbbbbbbbccccccddddccddddee24、以下程序的输出是()。#include<stdio.h>intmain(){inta=5,b=8,c=3,max;max=a;if(c>B.if(c>A.max=c;elseif(b>A.max=b;printf("max=%d\n",max);return0;}A.max=8B.max=5C.max=3D.无输出结果25、下面程序的运行结果是()。#include<stdio.h>intmain(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*10;break;default:k=k/3;}k++;}while(c<'G');printf("k=%d\n",k);return0;}A.k()=3B.k=4C.k=2D.k=0三、读程序填空26、已知字母A的ASCII码值为65。以下程序的输出结果是_______。#include<stdio.h>intmain(){chara,b;a='A'+'4'-'3';b='A'+'6'-2';printf("a=%d,b=%c\n",a,b);return0;}27、以下程序的运行结果是_______。#include<stdio.h>intmain(){intn=0;n+=(n=10);printf("%d\n",n);return0;}28、以下程序的功能是:输入一个小写字母,将字母循环后移5个位置后输出。例如’a’变成’f’,w’变成b’。请填空。#include<stdio.h>intmain(){charc;c=getchar();if(c>='a'8&&.c<='u')【l】:elseif(c>='v√8&8.c<='z)_______;putchar(c);return0;}29、以下程序的运行结果是_______。#include<stdio.h>intmain(){intal,a2,bl,b2;Inti=5,j=7,k=0;al=!k;a2=i!=j;printf("a1=%d\ta2=%d\n",al,a2);b1=k&&j;b2=k||j;printf("b1=%d\tb2=%d\n",bl,b2);returnO;}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、以下程序的运行结果是_______。#include<stdio.h>voidadd(intx,inty,intz);intmain(){intx=2,y=3,z=0;printf("(1)x=%dy=%dz=%d\n",x,y,z);add(x,y,z);printf("(3)x=%dy=%dz=%d\n",x,y,z);return(0);voidadd(intx,inty,intz)}{z=x+y;x=x*x;y=y*y;printf("(2)x=%dy=%dz=%d\n",x,y,z);}32、当从键盘输入18时,下面程序的运行结果是_______。#include<stdio.h>intmain(){intx,y,i,a[8],j,u;scanf("%d”,8.x);y=x;i=0;do{u=y/2;a[i]=y%2;i++;y=u;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d".a[j]):return0;}33、运行以下程序时,从键盘输入ASDFGHJ<回车>AFH<回车>则下面程序的运行结果是_______。#include<stdio.h>voidfun(char*s1,char*s2);intmain(){charal[80],a2[80];gets(al);gets(a2);fun(al,a2);puts(a1);return(0);}voidfun(char*s1,char*s2){intj;char*s=s1;for(;*s2!=\0';s2++){for(j=0,s1=s;*sl!='\0';s1++)if(*s1!=*s2){s[j]=*s1;j++;}s[j]='\o';}}四、编程题34、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。35、定义一个带参数的宏,用来判断一个字符是否为字母。编写主函数,从键盘输入一个字符,调用上述宏输出判断结果。

参考答案一、填空题1、a&040或a&0×20或a&322、【1】scanf【2】printf3、【1】顺序结构【2】选择结构【3】循环结构4、-165、16、for(k=0;k<10;k++)7、【1】voidadd(floata,floatb)【2】floatadd(floata,floatb)8、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车>(注:答案中的囗代表空格)9、structs*next;10

温馨提示

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

评论

0/150

提交评论