您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 电子科技大学《C语言》自测题答案
自测题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”的表达式__xz||yz_。12、下面程序的运行结果是:c1=c,c2=abc#includestdio.hmain(){chars[10]={“abc”};printf(“c1=%c,c2=%s\n”,s[2],s);}13、如果a=5,b=2,c=3,d=4,则表达式ab?a:cd?c:d的值是3。14、设a=6,b=2,表达式a*=a+b运算后a的值为48。15、设x=3.8.,a=9,y=5.3,表达式x+a%2*(int)(x+y)%2/4的值3.8。二、选择题(每小题2分,共26分)1、一个C程序的执行是从AA)本程序的main函数开始,到main函数结束。B)本程序的第一个函数开始,到本程序最后一个函数结束。C)本程序的main函数开始,到本程序文件的最后一个函数结束。D)本程序的第一个函数开始,到本程序main函数结束。2、下面的四个选项中,均不是合法的用户标识符的选项是BA)BB)b-aC)floatD)_123M_0goto2abtempDoint_AINT6、请问:下面这个程序段的输出是什么?Dinta=7,b=8,c=9;if(ab){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=87、以下描述正确的是CA)goto语句只能用于退缩出多层循环。B)switch语句中不能出现continue语句。C)只能用continue语句中来终止本次循环。D)在循环语句中break语句不独立出现。8、以下对二维数组a的正确说明是CA)inta[3][];B)floata(3,4);C)inta[3][4]D)floata(3,)(4);9、有下面的程序段chara[3],b[]=”student”;a=b;printf(“%s”,a);则DA)运行后将输出student;B)运行后将输出b;C)运行后将输出aD)编译出错10、若用数组名作为函数调用的实参,传给形参的是AA)数组的首地址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、如果ab或cd为真,那么表达式(ab&&cd)为真。(√)7、如果有:intdata[10];int*p;则语句p=data和语句p=&data[0]等价。(√)8、联合类型是在同一个存储空间,可以为几个不同数据类型的成员所使用。(×)、一个数组能够存储许多不同类型的值。四、阅读下列程序,请将运行结果写在答题卡上(每题3分,共15分)。1.#includestdio.h#defineSQR(y)y*ymain(){inta,b=4;a=SQR(b+1);printf(a=%d\n,a);}运行结果___25_____2.#includestdio.hmain(){chars[]=456789;s[4]='\0';printf(%s\n,s);}运行结果___4567_____3.#includestdio.hmain(){char*s=ChinaBeijing2008OlympicGames;char*p;p=s;while((*p)!=’‘)p++;p=’\0’;printf(“%s\n”,s);printf(%s\n,++p);}运行结果ChinaBeijing2008OlympicGamesChina5.#includestdio.hmain(){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_____4.#includestdio.hmain(){inti=1;while(i=10){if(!(i%2))printf(%d,,i);i++;}}运行结果____1,3,5,7,9____五、编写下列程序,(共15分)1.试编写一个程序计算a!+b!+c!,并要求有输出结果.解:#includestdio.hfact(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}按从小到大的顺序排列,程序显示排序前和排序后的结果。解:#includestdio.h#defineN10main(){inta[N]={6,5,8,1,0,4,7,3,2,9}inti,j,t;printf(“Thearraybeforesorted:”);for(i=0;i9;i++){for(j=i+1;j10;j++){if(a[i]a[j]){t=a[i];a[i]=a[j];a[j]=t;}}}for(i=0;iN;i++)printf(“%4d”,a[i]);return0;}自测题2答案一、填空题1.设inta=5,b=6,写出表达式a=a+b的值_11__。2.若有代数式x2÷(3x+5),则正确的C语言表达式为:_____x*x/(3*x+5)________。3.开发一个c语言的源程序要经过的四个阶段_编辑C语言源程序文件,编译源程序,程序连接,程序运行____。4.inti=5,j,k;j=i++;k=i;则k的值为__6____。5.已知:ints[][3]={1,2,3,4,5,6};此时数组元素s[1][1]的值为____5______。6.字符串“hello”占用内存____6______字节。7.程序段floata=65.123;printf(a=%-10.2f,a);执行时输出的结果是____a=65.12UUUUU__________,(用大写字母U表示空格)。8.执行下面程序段时输出的结果是___7___。#includestdio.hmain(){inti=5;switch(i){case5:case6:i+=2;case7:break;case8:i+=2;}printf(i=%d,i);}10.c语言中有5种基本数据类型。它们是字符型,整型,__浮点型_____,____长浮点型(双精度型)__和_无值型_____,其关键字分别是:char,int,__fload___,__double___和__void___。二、单项选择题1.在程序中可以用来作为变量名的合法的标识符是:___c_____AstaticB23_b1Cstu_1tD#332.下列运算符运算级别最高的是:______A&&B+=C=D!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.选择正确的运行结果:__D___#includestdio.hmain(){inta=1,b=10;do{a++;b-=a;b--;}while(b0);printf(a=%d,b=%d,a,b);}Aa=2,b=-1Ba=2,b=-2Ca=4,b=-1Da=4,b=-29.以下程序的输出结果是___3_____。#includestdio.hmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(%d\n,*(p+2));}三、程序改错1.#includestdio.hmain(){inta,b,c;a=7;b=8;add();改为c=add(a,b)printf(“Theresultis%d”,c);}intadd(intx,inty){intz;z=x+y;renturnz;}2.统计字符串中小写字符的个数。#includestdio.hmain(){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);5.以下正确的描述是:___B______Acontinue语句的作用是终止整个循环的执行。Bcontinue语句的作用是结束本次循环的执行。Ccontinue语句和break语句都可以在switch语句中使用。Dbreak语句的作用是结束本次循环的执行。4.includestdio.h{main()inta,b,c,sum;a=1;b=2;scanf(“%d”,&c);sum=a+b+cprintf(“sum=”,sum)3.includestdio.h#includestdio.hfun(int*s,k){inti;for(i=0;ik;i++)s[i]+=5;returns[k-1]}main(){inta[5]={1,2,3,4},x;x=fun(a,5);printf(%d,x);}}改为:#includestdio.hmain(){inta,b,c,sum;a=1;b=2;scanf(“%d”,&c);sum=a+
本文标题:电子科技大学《C语言》自测题答案
链接地址:https://www.777doc.com/doc-7028741 .html