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

下载本文档

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

文档简介

2026年集美大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、把int类型变量low中的低字节及变量high中的高字节放入变量s中的表达式是_______。2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、C语言的源程序必须通过【】和【】后,才能被计算机执行。4、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式.pow(y,fabs(x))的值为_______5、在C语言的赋值表达式中,赋值号左边必须是_______6、以下程序的运行结果是_______。#include<stdio.h>intmain(){chars[]="ab\'cdefg\",*p=s+1;printf("%c”,*(p++));printf("%s",p+2);return(0);}7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。a[0]=1;a[1]=2;swap(a,2);8、设有如下结构体说明:structST{inta;floatb;structST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。_______9、已有定义inta;floatb,x;charcl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。10、下面程序段的运行结果是_______。charch[]="600";inta,s=0;for(a=0;ch[a]>='0'&&ch[a]<='9';a++)s=10*s+ch[a]-'o';printf("%d",s);二、选择题11、若有代数式3acbc,则不正确的C语言表达式是(A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*312、以下正确的叙述是()。A.在C程序中,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符13、已知ch是字符型变量,下面正确的赋值语句是()A.ch='123';B.ch='\xff';C.ch='\08';D.ch=\";14、设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=1015、以下对一维整型数组a的正确说明是()。A.inta(10);B.intn=0,a[n];C.intn;scanf("%d",&n);inta[n];D.#defineSIZE10;inta[SIZE];16、一个C语言程序由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成17、下面有关for循环的正确描述是()。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式19、若有定义:inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;则下面程序段的输出结果是()。for(k=0;k<4;k++)q[k]=&a[k*3];printf("%d\n",q[3][0]);A.8B.16C.20D.输出项不合法,结果不确定20、若有以下说明和语句:char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C");char**q;q=language+2;则语句printf("%o\n",*q);()。A.输出的是language[2]元素的地址B.输出的是字符串PASCALC.输出的是language[2]元素的值,它是字符串PASCAL的首地址D.格式说明不正确,无法得到确定的输出21、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A',B’,C.;则符合程序段运行结果的选项是()。voidmove(chargetone,charputone){printf("%c——>%c\n",getone,putone);voidhanoi(intn,charone,chartwo,charthree){if(n==1)move(one,three);else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}A)A-->CB)A-->CC)A-->CD)A-->CA-->BA-->BA-->BA-->BC-->BC-->AC-->BC-->BB-->AA-->BA-->CA-->CC-->BB-->CB-->AA—->BA-->CA-->CB-->CB-->CA-->BA-->BA-->CA-->C22、下面程序的运行结果是()。#include<stdio.h>intmain(){charstr[]="SSSWLIA",c;intk;for(k=2;(c=str[k])!=\o';k++){switch(C.{case'I':++k;break;case'L':continue;default:putchar(C.;continue;putchar('*’);}return0;}A.SSW*B.SW*C.SW*AD.SW23、下面程序的功能是将已按升序排好序的两个字符串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++;24、以下程序的输出是()。#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.值不确定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、以下程序的运行结果是_______。#include<stdio.h>intmain(){intm=177;printf("%o\n",m);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、若运行时输入“5999<回车>”,则以下程序的运行结果(保留小数点后一位)是_______。#include<stdio.h>intmain(){intx;floaty;scanf("%d”,&x);if(x>=08&8x<=2999)y=18+0.12*x;if(x>=3000&&x<=5999)y=36+0.6*x;if(x>=60008.&x<=10000)y=54+0.3*x;printf("%6.1f",y);return0;}29、若有以下程序段,且grade的值为C,则输出结果是_______。switch(grade){case'A':printf("85~100\n");case'B':printf("70~84n");case'C':printf("60~69\n");case'D':printf("(60\n");default:printf("error!\n");}30、下面程序的功能是用do-while语句求1~1000之间满足“用3除余2,用5除余3,用7除余2”的数,且一行只打印5个数。请填空。#include<stdio.h>intmain(){inti=1,j=0;do{if(_______){printf("%4d",i);j=j+1;if(_______)printf(\n");}i=i+1;}while(i<1000);return0;}31、以下程序的运行结果是_______。#include<stdio.h>#include<math.h>intfun(intn){inti,m=0;longs=1;for(i=1;i<=n;i++)s=s*n;s=s%1000;do{m=m+s%10;s=s/10;}while(s);returnm;intmain(){intd;d=fun(5);printf("\nsum=%d\n",d);return(0);}32、当运行以下程序时,从键盘输入: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;}33、请根据运行结果,完成main函数中的填空。#include<stdio.h>intarr_add(intarr[],intn){inti,sum=0;for(i=0;i<n;i++)sum=sum+arr[i];return(sum);intmain(){staticinta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p,totall,total2;_______;pt=arr_add;p=a[o];total1=arr_add(p,12);total2=(*pt)(_______)printf("total1=%d\ntotal2=%d\n",totall,total2);return(0);}运行结果:totall=144total2=144四、编程题34、编写程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串,请用指针完成。35、编写程序实现功能:输入一个复数,输出其共扼复数。例如,输入2+3i<回车>时,输出2-3i;输入2-3i<回车>时,输出2+3i。

参考答案一、填空题1、s=high&0xff00|low&0x00ff或s=high&.0177400|low&0377或s=high&65280|low&2552、【1】.c【2】.obj【3】.exe3、【1】编译【2】连接4、8.0000005、变量6、'bdefg'7、【1】a[0]=2a[1]=1【2】因实参是地址,已对指定地址中的内容进行了交换。8、structST9、【1】scanf("%d%f%f%c%c”,&a,&.b,8.c1,8.c2);【2】3囗6.5囗12.6aA<回车>(注:答案中的囗代表空格)10、600二、选择题11、C12

温馨提示

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

评论

0/150

提交评论