电子科技大学《C语言》自测题答案_第1页
电子科技大学《C语言》自测题答案_第2页
电子科技大学《C语言》自测题答案_第3页
电子科技大学《C语言》自测题答案_第4页
电子科技大学《C语言》自测题答案_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

电子科技大学《C语言》自测题答案电子科技大学《C语言》自测题答案电子科技大学《C语言》自测题答案V:1.0精细整理,仅供参考电子科技大学《C语言》自测题答案日期:20xx年X月自测题1答案一、填空题(每空1分,共29分)1、若有以下的定义:inta[6];则数组a元素的下标的上限为5,下限为0。2、局部的变量是在函数内部定义的,它们只在本函数有效。3、组成C程序的若干函数中,只能且必须有一个主函数。4、C语言中的变量名可以由字母,数字和下划线三种字符组成,且首字符不能是。5、枚举类型enumcolor(bla,blu,gre=3,cya,red)中的枚举项的值bla=__0__、blu=__1__、cya=__4__、red=__5___.6、c语言中变量的存储属性有自动、____静态____、__外部______和寄存器四种。7、算术运算符,关系运算符,赋值运算符的优先级从低到高依次是赋值运算符,关系运算符,算术运算符。8、标准文件是系统自动打开和关闭的,但是一般用户文件,必须在程序中用函数_fopen()_打开文件,文件操作结束后,用__fclose()_关闭文件。9、函数参数有形式参数和实际参数两种形式。10、程序的三种基本结构是顺序结构,选择结构,循环结构。11、x、y、z均为int型变量,请写出描述“x或y中有一个小于z”的表达式__x<z||y<z_。12、下面程序的运行结果是:c1=c,c2=abc#include<>main(){chars[10]={“abc”};printf(“c1=%c,c2=%s\n”,s[2],s);}13、如果a=5,b=2,c=3,d=4,则表达式a<ba:c<dc:d的值是3。14、设a=6,b=2,表达式a*=a+b运算后a的值为48。15、设x=.,a=9,y=,表达式x+a%2*(int)(x+y)%2/4的值。二、选择题(每小题2分,共26分)一个C程序的执行是从A本程序的main函数开始,到main函数结束。本程序的第一个函数开始,到本程序最后一个函数结束。本程序的main函数开始,到本程序文件的最后一个函数结束。本程序的第一个函数开始,到本程序main函数结束。下面的四个选项中,均不是合法的用户标识符的选项是BA)BB)b-aC)floatD)_123 M_0goto2abtempDoint_AINT6、请问:下面这个程序段的输出是什么Dinta=7,b=8,c=9;if(a<b){a=b;b=c;c=a;}printf("a=%db=%dc=%d\n",a,b,c);

A.a=7b=8c=7B.a=7b=9c=7C.a=8b=9c=7D.a=8b=9c=8以下描述正确的是CA)goto语句只能用于退缩出多层循环。B)switch语句中不能出现continue语句。C)只能用continue语句中来终止本次循环。在循环语句中break语句不独立出现。以下对二维数组a的正确说明是Cinta[3][];B)floata(3,4);C)inta[3][4]D)floata(3,)(4);有下面的程序段chara[3],b[]=”student”;a=b;printf(“%s”,a);则D运行后将输出student;B)运行后将输出b;C)运行后将输出aD)编译出错若用数组名作为函数调用的实参,传给形参的是A数组的首地址B)数组的第一个元素值C)数组的全部元素值D)数组中元素的个数11、在说明语句:int*f();中,标识符f代表的是CA)一个返回值为指针型的函数名B)一个用于指向整型数据的指针变量C)一个用于指向函数的指针变量D)一个用于指向一维数组的行指针12.变量的指针,其含义是指该变量的___D_____A)一个标志B)值C)名D)地址13.已知intb;则对指针变量正确的说明和初始化是:__D__A)int*p=b;B)intp=b;C)intp=&b;D)int*p=&b;三、判断题(在你认为正确的表达式前打√,错误的打×,每小题1分,共15分)(×)1、switch语句中,所有case后的常量表达式可以相同(√)2、C语言不能嵌套定义函数,但可以嵌套调用。(√)3、使用宏定义时,宏名可以是大写或者小写,但是常用大写字母表示。(√4、C语言函数的缺省类型是void型(空类型)。(×)5、打印三行输出的C语言程序必须用三条printf语句。(×)6、如果a>b或c<d为真,那么表达式(a>b&&c<d)为真。(√)7、如果有:intdata[10];int*p;则语句p=data

和语句p=&data[0]等价。(√)8、联合类型是在同一个存储空间,可以为几个不同数据类型的成员所使用。(×)、一个数组能够存储许多不同类型的值。四、阅读下列程序,请将运行结果写在答题卡上(每题3分,共15分)。2.#include<>2.#include<>main(){chars[]="456789";s[4]='\0';printf("%s\n",s);}运行结果___4567_____1.#include<>#defineSQR(y)y*ymain(){inta,b=4;a=SQR(b+1);printf("a=%d\n",a);}运行结果___25_____3.3.#include<>main(){ char*s="ChinaBeijing2008OlympicGames"; char*p; p=s; while((*p)!=’‘)p++; p=’\0’;printf(“%s\n”,s);printf("%s\n",++p);}运行结果ChinaBeijing2008OlympicGamesChina44.#include<>main(){inti=1;while(i<=10){if(!(i%2))printf("%d,",i);i++;}}运行结果____1,3,5,7,9____5.5.#include<>main(){intx=1,y=1,m=1,n=1;swtich(m){ case0:x=x+2; case1:{ swtich(n){case1:x=x+2;case2:y=y*2;break;case3:x++;}}case2:x++;y++;case3:x*=2;y*=2;break;default:x++;y++;}printf(“x=%d,y=%d”,x,y);}运行结果___x=8,y=6_____五、编写下列程序,(共15分)1.试编写一个程序计算a!+b!+c!,并要求有输出结果.解:#include<>fact(int);voidmain(){inta,b,c;printf(”Enterthreenumbers:”);scanf(“%d,%d,%d”,&a,&b,&c);printf(%d!+%d!+%d!=%d+%d+%d\n”,a,b,c,fact(a),fact(b),fact(c));return;}fact(intn){intresult;if(n==1)return(1);result=fact(n-1)*n;/*递归调用*/return(result);}2.编写一个程序,将一组数据{6,5,8,1,0,4,7,3,2,9}按从小到大的顺序排列,程序显示排序前和排序后的结果。解:#include<>#defineN10main(){inta[N]={6,5,8,1,0,4,7,3,2,9}inti,j,t;printf(“Thearraybeforesorted:”);for(i=0;i<9;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}}for(i=0;i<N;i++)printf(“%4d”,a[i]);return0;}自测题2答案填空题设inta=5,b=6,写出表达式a=a+b的值_11__。若有代数式x2÷(3x+5),则正确的C语言表达式为:_____x*x/(3*x+5)________。开发一个c语言的源程序要经过的四个阶段_编辑C语言源程序文件,编译源程序,程序连接,程序运行____。inti=5,j,k;j=i++;k=i;则k的值为__6____。已知:ints[][3]={1,2,3,4,5,6};此时数组元素s[1][1]的值为____5______。字符串“hello”占用内存____6______字节。程序段floata=;printf("a=%",a);执行时输出的结果是____a=__________,(用大写字母U表示空格)。执行下面程序段时输出的结果是___7___。#include<>main(){inti=5;switch(i){case5:9.以下程序的输出结果是___9.以下程序的输出结果是___3_____。#include<>main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}printf("i=%d",i);}语言中有5种基本数据类型。它们是字符型,整型,__浮点型_____,____长浮点型(双精度型)__和_无值型_____,其关键字分别是:char,int,__fload___,__double___和__void___。二、单项选择题1.在程序中可以用来作为变量名的合法的标识符是:___c_____AstaticB23_b1Cstu_1tD#332.下列运算符运算级别最高的是:______A&&B+=C>=D!3.3.已知:charstr1,str2[10];选择正确的输入语句__A____Ascanf("%c%s",&str1,str2);Bscanf("%s%s",&str1,str2);Cscanf("%c%c",&str1,str2);Dscanf("%s%c",&str1,str2);4.4.选择正确的运行结果:__D___#include""main(){inta=1,b=10;do{a++;b-=a;b--;}while(b>0);printf("a=%d,b=%d",a,b);}Aa=2,b=-1Ba=2,b=-2Ca=4,b=-1Da=4,b=-25.5.以下正确的描述是:___B______Acontinue语句的作用是终止整个循环的执行。Bcontinue语句的作用是结束本次循环的执行。Ccontinue语句和break语句都可以在switch语句中使用。

Dbreak语句的作用是结束本次循环的执行。三、程序改错1.1.#include<>main(){inta,b,c;a=7;b=8;add();改为c=add(a,b)printf(“Theresultis%d”,c);}intadd(intx,inty){intz;z=x+y;renturnz;}22.统计字符串中小写字符的个数。#include""main(){charstr[20];inti,n=0;gets();for(i=0;str[i]!="/0";i++)改为\0if(str[i]>='a'&&str[i]<='z')n++;printf("%d\n",n);}33.include<>#include<>fun(int*s,k){inti;for(i=0;i<k;i++)s[i]+=5;returns[k-1]}main(){inta[5]={1,2,3,4},x;x=fun(a,5);printf("%d",x);}4.include<>{main()inta,b,c,sum;a=1;b=2;scanf(“%d”,&c);sum=a+b+cprintf(“sum=”,sum)}改为:#include<>main(){inta,b,c,sum;a=1;b=2;scanf(“%d”,&c);sum=a+b+c;printf(“sum=%d”,sum);}四、阅读下列程序,写运行结果1.#include<>1.#include<>main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}运行结果____6____2.#include<>main(){chars[]="123456";s[4]='\0';printf("%s\n",s);}运行结果__1234______3.#include<>3.#include<>main(){inti=1;while(i<=10){if(!(i%3))printf("%d,",i);i++;}}运行结果___3,6,9_____4.#include<>main(){inta[3][3]={{3,2,2},{4,5,6},{-2,9,2}};inti,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==2-j)s=s+a[i][j];printf("s=%d",s);}运行结果___5_____5.5.#include<>main(){intx=20,y=15;if(x>y)swap(&x,&y);printf("%d",x);}swap(int*p1,int*p2){int*temp;temp=p1;p1=p2;p2=temp;}运行结果____15____五、编写下列程序1.应用动态存储单元编写一个程序,计算两个浮点数之和。申请用于存储3个浮点数的动态存储空间。得到所要求的存储空间后,向里面存储两个数据与他们的和,接着输出这些数据。然后将所申请的存储空间退回系统。#include<>#include<>main(){float*prt;prt=malloc(3*sizeof(float));if(!prt)printf(“outofmemory”);else{printf(“\nEntertwonumbers:”);scanf(“%d%d”,prt,prt+1);*(prt+2)=*prt+*(prt+1)printf(“Thesumis%d\n”,*(prt+2));free(prt);}return0;}2.求下面一元二次方程的根。ax2+bx+c=0解:#include<>#include<>floatX1,X2,p,q,d;/*全局变量*/floatgreater_than_zero(float,float);floatequal_to_zero(float,float);floatequal_to_zero(float,float);floatsmaller_than_zero(float,float);main(){floata,b,c;printf(“Entera,b,c:”);scanf(“%f%f%f”,&a,&b,&c);d=b*b-4*a*c;if(d>0){greater_than_zero(a,b);printf(X1=%\t,X2=%\n,X1,X2);}elseif(d==0){equal_to_zero(a,b);printf(“X1=X2=%\n”,X1);}else{smeller_than_zero(a,b);printf(“X1=%+%\n”,p,q);printf(“X2=%%\n”,p,q);}return0;}floatgreater_than_zero(floatx,floaty){X1=(-y+sqrt(d))/(2*x);X2=(-y-sqrt(d))/(2*x);Return;floatequal_to_zero(floatx,floaty){X1=(-y)/(2*x)return;}floatsmaller_than_zero(floatx,floaty){p=-y/(2*x);q=sqrt(-d)/(2*x);return:}自测题3答案一、填空题1、x、y、z均为int型变量,请写出描述“x或y中有一个小于z”的表达式__x<z||y<z_。2、下面程序的运行结果是:c1=c,c2=abc#include<>main(){chars[10]={“abc”};printf(“c1=%c,c2=%s\n”,s[2],s);}3、如果a=5,b=2,c=3,d=4,则表达式a<ba:c<dc:d的值是3。4、设a=6,b=2,表达式a*=a+b运算后a的值为48。5、设x=.,a=9,y=,表达式x+a%2*(int)(x+y)%2/4的值。6、凡是函数中未指定存储类别的局部变量,隐含的存储类别为auto。7、在c语言中,一个函数一般由两个部分组成,它们是首部、函数体。8、执行下列程序段后,*(p+1)的值是b,*(p+2)的值是\0.charc[3]=”ab”,*p;p=c;9、在c语言中,调用函数时,如果形参是简单变量,对应的实参可以是变量、数组元素和常量,当形参和实参都是变量时,数据的传递是单向值传递。10、说明预处理命令#definexyt(x,y)(intt;t=x;x=y;y=t)的功能是用宏名定义xyt(x,y)定义了将x、y两个参数交换。二、选择题以下选项中不合法的用户标识符是:BB.fileC.a$D.Dim2、TURBOC中int类型变量所占字节数是:BA.1B.2C.3D.43、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是:DA.read(a,b,d)Bscanf(“%d%d%d”,a,b,c)C.scanf(“%D%D%D”,&a,&b,&c)D.scanf(“%d%d%d”,&a,&b,&c)以下程序段的输出是:Bprintf(“|%|\n”,;A.||B.||C.||D.||5、在C语言中,要求运算数是整型的运算符是AA)/B)++C)!=D)*6、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a,b,c的值分别为1,3,2,从键盘上输入数据的正确形式应当是DA)132〈回车〉D)a=1,b=3,c=2〈回车〉C)a=1b=3c=a<回车>B)1,3,2〈回车〉当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是Bif(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A)1B)2C)3D)6三、判断题(√)1、C语言中,变量名用大小写是等价的。(×)2、强制类型转换,如(double)x,只改变原变量的类型,而不改变其值。(×)3、存储字符串所需的内存空间等于字符串的长度。(√)4、C语言中,注释可以出现在源程序的任何位置。(×)5、整型、字符型、指针型是C语言中最简单的数据类型。(√)6、全局变量在整个源程序文件中都有效。(×)7、switch选择结构中必须有default子句。(√)8、如果x>y或者a<b为真,那么表达式(x>y||a<b)为真。(×)9、一个函数floatdiv(floatx,floaty),其函数原型说明为floatdiv(floatx,floaty).(√)10、结构成员名可以与程序中的变量同名,也可以与结构类型名相同四、阅读下面程序,请写出运行结果(每题3分,共15分)以下程序的输出结果是#include<>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==

温馨提示

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

评论

0/150

提交评论