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

下载本文档

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

文档简介

2022年西南民族大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:inta=1,b=2;if(a&b)printf("***\n");elseprintf("$$$\n");以上程序段的输出结果是_______。2、C语言的源程序必须通过【】和【】后,才能被计算机执行。3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是4、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。(1)x=(a=4,6*2)(2)x=a=4,6*25、在C语言中,用“\”开头的字符序列称为转义字符。转义字符“\n”的功能是_______;转义字符“\r”的功能是_______。6、当运行以下程序时,从键盘输入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))}7、执行下面程序段后,k的值是_______。k=1;n=263;do{k*=n%10;n/=10;}while(n);8、设有如下结构体说明:structST{inta;floatb;structST*c;doublex[3];}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。_______9、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。structs{chardata;_______}node;10、在C语言中,二维数组元素在内存中的存放顺序是_______。二、选择题11、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()A.7B.8C.6D.212、下面正确的字符常量是()A."c"B."\\"C.'w'D."13、已有定义intx;floaty;且执行scanf("%3d%f”,&x,&y);语句,若从第一列开始输入数据12345口678<回车>,则y的值为()。(注:口表示空格)A.无定值B.45.000000C.678.000000D.123.00000014、有定义语句inta,b;,若要通过语句scanf("%d,%d”,&a,&B.;使变量a得到数值6,变量b得到数值5,下面输入形式中错误的是()。(注:口代表空格)A.6,5<回车>B.6,囗囗5<回车>C.65<回车>D.6,<回车>5<回车>15、若有说明:inta[3][4];,则对a数组元素的非法引用是()。A.a[o][2*1]B.a[1][3]C.a[4-2][o]D.a[o][4]16、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误17、设有程序段:intk=10;while(k=0)k=k-1;则下面描述中正确的是()。A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次18、若用数组名作为函数调用的实参,则传递给形参的是()A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数19、若有以下说明和语句: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.格式说明不正确,无法得到确定的输出20、设有以下定义:char*cc[2]={"1234","5678");则正确的叙述是()。A.cc数组的两个元素中各自存放了字符串”1234”和"5678”的首地址B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址C.cc是指针变量,它指向含有两个数组元素的字符型一维数组D.cc数组元素的值分别是1234和567821、以下是有关汉诺塔问题的程序段,若在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(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'o';printf("%d\n",s);return0;}A.1B.1256C.12ab56D.1523、下面程序的运行结果是()。#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.SW24、以下程序的输出是()。#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、有一堆零件(100~200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件的总数,请选择填空()。#include<stdio.h>intmain(){inti;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if([])printf("%d",i);return0;}A)i%9=5B)i%9!=5C)(i-5)%9!=0D)i%9==5三、读程序填空26、已有定义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);27、以下printf语句中*号的作用是_______,输出结果是_______。#include<stdio.h>intmain(){inti=1;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);return0;}28、以下程序的运行结果是_______。#include<stdio.h>intmain(){intx,y=-2,z=0;if((z=y)<0)x=4;elseif(y==0)x=5;elsex=6;printf("\t%d\t%d\n",x,z);if(z=(y==0))x=5;x=4;printf("\t%d\t%d\n",x,z);if(x=z=y)x=4;printf("\t%d\t%d\n",x,z);return0;}29、若x、y、z均已正确定义且x=1、y=2、z=3,则执行以下if语句后,x、y、z中的值分别是_______、_______、_______。if(x>z)y=x;x=z;z=y;30、下面程序的运行结果是_______。#include<stdio.h>intmain(){inti,j;for(i=0;i<=3;i++){for(j=0;j<=5;j++)if(i==0||j==0||i==3||j==5)printf("*");elseprintf("");printf(\n");return0;}31、下面函数pi的功能是:根据以下公式,返回满足精度(0.0005)要求的x的值。请填空。π#include<conio.h>#include<math.h>#include<stdio.h>doublepi(doubleeps){doubles=0.0,t=1.0;intn;for(_______;t>eps;n++){s+=t;t=n*t/(2*n+1);}return(_______);}intmain(){doublex=0.0005;printf("\neps=%lf,π=%If",x,pi(x));return(0);}32、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。#include<stdio.h>intmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;for(k=s=i=0;i<10;i++){if(a[i]%2!=0)_______;s+=_______;k++;}if(k!=0){ave=s/k;printf("%d,%f\n",k,ave);}return0;}33、以下程序将数组a中的数据按逆序存放。请填空。#include<stdio.h>#defineM8intmain(){inta[M],i,j,t;for(i=0;i<M;i++)scanf("%d",a+i);i=0;j=M-1;while(i<j){t=*(a+i);_______;*(_______)=t;i++;j--;}for(i=0;i<M;i++)printf("%3d",*(a+i));return(0);}四、编程题34、函数fun的功能是:判断输入的3个整型值能否组成三角形,组成的是等边三角形,还是等腰三角形。请在函数中填写正确的内容。#include<stdio.h>voidfun(inta,intb,intc);intmain(){inta,b,c;printf("\ninputa,b,c:\n");scanf("%d%d%d",&a,&b,&c);fun(a,b,c);return(0);}voidfun(inta,intb,intc){if(a+b>c&&b+c>a8.&a+c>b)(请在此处填写正确的内容)Elseprintf("不能组成三角形");}35、编写程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔地输出该串,请用指针完成。

参考答案一、填空题1、$$$2、【1】编译【2】连接3、【1】.c【2】.obj【3】.ex

温馨提示

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

评论

0/150

提交评论