版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年西南交通大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。union{intn;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。4、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为_______。5、C语言中的标识符只能由3种字符组成,它们是_______、_______和_______6、请读程序段:inta=1,b=2;if(a&b)printf("***\n");elseprintf("$$$\n");以上程序段的输出结果是_______。7、下面程序段中循环体的执行次数是_______。a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有宏定义如下:#defineMIN(x,y)(x)>(y)?(x):(y)#defineT(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。inta=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a++,a*++b,a+b+c);9、设有以下宏定义:#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。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、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。A.intB.floatC.doubleD.不确定12、已知字母A的ASCII码为十进制数65,且定义c2为字符型变量,则执行语句c2='A'+'6'-'3';后,c2中的值为()。A.DB.68C.不确定的值D.C13、一个C语言程序由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成14、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束15、有字符数组a[80]和b[80],则正确的输出形式是()A.puts(a,B.;B.printf("%s,%s",a[],b[]);C.putchar(a,B.;D.puts(A.,puts(B.;16、设x、y均为float型变量,则以下不合法的赋值语句()。A.++x;B.yy=(x%2)/10;C.x*=y+8;D.x=y=0;17、若有以下说明和语句: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.格式说明不正确,无法得到确定的输出18、若用数组名作为函数调用的实参,则传递给形参的是()A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数19、执行语句for(i=1;i++<4;);后变量i的值是()。A.3B.4C.5D.不定20、与下面程序段等价的是()。for(n=100;n<=200;n++){if(n%3==0)continue;printf("%4d",n);}A.for(n=100;(n%3)&&n<=200;n++)printf("%4d",n);B.for(n=100;(n%3)||n<=200;n++)printf("%4d",n);C.for(n=100;n<=200;n++)if(n%3!=0)printf("%4d",n);D.for(n=100;n<=200;n++){if(n%3)printf("%4d",n);elsecontinue;break;}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、下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空()。charx[]="programming";chary[]="Fortran";inti=0;while(x[i]!='\o'&&.y[i]!='\o')if(x[i]==y[i])printf("%c",【】);elsei++;A.x[i++]B.y[++i]C.x[i]D.y[i]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>intfun(inta,intB.{if(a>B.return(a+B.;elsereturn(a-B.;intmain(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);return(0);}A.-16B.-17C.17D.1625、下面程序段的运行结果是()。for(y=1;y<10;)y=((x=3*y,x+1),x-1);printf("x=%d,y=%d",x,y);A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27三、读程序填空26、以下程序的输出结果为_______.#include<stdio.h>intmain(){printf("*%f,%4.3f*\n",3.14,3.1415);return0;}27、已有定义intd=-2;执行以下语句后的输出结果是_______。printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);28、下面函数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);}29、若输入一个整数10,则以下程序的运行结果是_______。#include<stdio.h>intsub(inta);intmain(){inta,e[10],c,i=0;printf(”输入一整数\n");scanf("%d",&.a);while(a!=0){c=sub(a);a=a/2;e[i]=c;i++;for(;i>0;i--)printf("%d",e[i-1]);return(0);}intsub(inta){intc;c=a%2;returnc;}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>intmain(){inta[5][5],i,j,n=l;for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=n++;printf("Theresultis:\n");for(i=0;i<5;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}return0;}32、将以下两条if语句合并成一条if语句为_______。语句1:if(a>b)scanf("%d",8&a);elsescanf("%d",&b);语句2:if(a<=b)m++;elsen++;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、试利用指向结构体的指针编制一个程序,实现输入3个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表。35、已知head指向一个带头结点的单向链表,链表中每个结点包含字符型数据域(data)和指针域(next)。请编写函数实现在值为a的结点前插入值为key的结点,若没有值为a的结点,则插在链表最后。
参考答案一、填空题1、【1】%If【2】num.x2、【1】.c【2】.obj【3】.exe3、【1】scanf【2】printf4、整型(或int型)5、【1】字母【2】数字【3】下划线6、$$$7、38、【1】3【2】289、240010、#9二、选择题11、C12、A13、B14、A15、D16、B17、C18、A19、C20、C21、C22、A23、D24、B25、C三、读程序填空26、*3.140000,3.142*27、*d(1)=-2*d(2)=囗-2*d(3)=-2囗**d(4)=fffe*d(5)=囗囗fffe*d(6)=fffe囗*(注:答案中的囗代表空格)28、计算整数num的各位数字之积。29、101030、【1】i%3==2&&i%5==3&&i%7==2【2】j%5==031、Theresultis:16711121316171819212223242532、if(a>b){scanf("%d",&a);n++;}else{scanf("%d",&b);m++;}33、abcdefglkjih四、编程题34、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度农业科技园区设施租赁协议4篇
- 启迪未来点亮梦想
- 2025版收入证明模板制作与市场推广合作合同3篇
- 2025年全球及中国气体激光清洗设备行业头部企业市场占有率及排名调研报告
- 2025年全球及中国住宅用灌溉喷水阀行业头部企业市场占有率及排名调研报告
- 2025-2030全球宠物肝脏功能补充剂行业调研及趋势分析报告
- 2025-2030全球印章套件行业调研及趋势分析报告
- 2025-2030全球光伏发电箱变行业调研及趋势分析报告
- 施工承包合同标准模板
- 2025版个人购房贷款还款顺序合同模板3篇
- 小学六年级数学上册《简便计算》练习题(310题-附答案)
- 2023-2024学年度人教版一年级语文上册寒假作业
- 培训如何上好一堂课
- 高教版2023年中职教科书《语文》(基础模块)下册教案全册
- 2024医疗销售年度计划
- 税务局个人所得税综合所得汇算清缴
- 人教版语文1-6年级古诗词
- 上学期高二期末语文试卷(含答案)
- 软件运维考核指标
- 空气动力学仿真技术:格子玻尔兹曼方法(LBM)简介
- 比较思想政治教育学
评论
0/150
提交评论