《吉林大学C语言习题集.docx》由会员分享,可在线阅读,更多相关《吉林大学C语言习题集.docx(20页珍藏版)》请在优知文库上搜索。
1、?:语言程序设计?习题李玲张海蓉黄玉兰孙大洋赵晓京温泉厉茜吉林大学通信工程学院第6章练习6-1答案一、选择题1 .函数abc的定义为:voidabc()那么函数定义中void的含义是(八)。A.执行函数abc后,函数没有返回值B.执行函数abc后,函数不再返回C.执行函数abc后,可以返回任意类型D.以上三个答案全是错误的2 .:intp();,P是(C)OA.int型变量B.函数P的调用C.一个函数声明,该函数的返回值是血型的值D.强制类型转换表达式中的变量3.以下正确的函数形式是(D)。B. fun(int x, y) int z; return z; D. double fun(int
2、x, int y) double z; z=x+y; return z;)A. doublefun(intx,inty)z=x+y;returnz;)C.fun(x,y)intx,y;doublez;z=x+y;returnz;4.以下说法正确的选项是(C)。A.定义函数时,形参的类型说明可以放在函数体内B. retum后边的值不能为表达式C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准D.如果形参与实参的类型不一致,以实参类型为准5 .C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。A.float型B.int型C.long型D.double型6 .下面函数调用语
3、句含有实参的个数为(B)。func(expl,exp2),(exp3,exp4,exp5);A.1B.2C.4D.57 .以下程序的功能是计算函数F(x,y,z)=(x+y)(x-y)+(z+y)(z-y)的值,请选择填空。#include#includefloatf(float,float);main()floatx,y,z,sum;scanf(,%f%f%f,&x,&y,&z);sum=f(B)+f(C);(注:或者选择SUm=f(C)+f(B)printf(sum=%nu,sum);)floatf(floata,floatb)floatvalue;value=ab;return(valu
4、e); A.x-y,x+yB.x+y,x-yC.z+y,z-yD.z-y,z+y A.x-y,x+yB.x+y,x-yC.z+y,z-yD.z-y,z+y二、填空题8 .以下程序的功能是根据输入的”y”(”Y“)与”n”(N”),在屏幕上分别显示出ThiSisYESJ与“ThisisNO.%请填空,是(break;)、是(getchar()或getch()或getche()o#includevoidYesNo(charch)switch(ch)case,y,:case,Y,:printf(nThisisYES.n);case,n,:caseN,:printf(nThisisNO.n);)mai
5、n()charch;pntf(nEnterachary,Yor,n,(N,:);ch=;printf(ch%c,ch);YesNo(ch);)9 .下面函数Pi的功能是:根据以下公式,返回满足精度(0.0005)要求的乃的值,请填空,是(t=n=l,s=0是(s*2)。/2=1+1/3+(13)*(25)+(l3)*(25)*(37)+(l3)*(25)*(37)*(49)+.#include#include#includedoublepi(doubleeps)doubles,t;intn;for(;teps;n+)s=t;t=n*t(2*n+l);)retum();)main()double
6、x;printf(unPleaseenteraprecision:*);scanf(,%lf,&x);printf(neps=%1f,=%lf,x,pi(x);)三、读程序,写结果10 .以下程序的运行结果是(5)。#includefun(intp) inta=10;p=a;+p;)main() inta=5;fun(a);printf(%dn,a);)11 .以下程序的运行结果是(8)。#includeintabc(intu,intv);main() inta=24,b=16,c;c=abc(a,b);printf(%dn,c);)intabc(intu,intv) intw;while(v
7、)w=u%v;u=v;v=w;)returnu;)12 .以下程序的运行结果是:(beforeswapa=5,b=10inswapx=10,y=5afterswapa=5,b=10)o#includemain()inta,b;a=5;b=10;printf(beforeswapa=%d,b=%dn,a,b);swap(a,b);printf(afterswapa=%d,b=%dn,a,b);)swap(intx,inty)inttemp;temp=x;x=y;y=temp;printf(uinswapx=%d,y=%dn,x,y);)13 .以下程序的运行结果是:(i=5i=2i=2i=0i=
8、2)ointi=0;main()inti=5;reset(i2);printf(i=%dn,i);reset(i=i2);printf(ui=%dn,i);reset(i2);printf(i=%dn,i);workover(i);printf(i=%dn,i);)workover(inti)i=(i%i)*(i*i)(2*i)+4);printf(i=%dn,i);retum(i);)reset(inti)i=i=2?5:0;retum(i);)练习62答案一、找择题1.将一个函数说明为StatiC后,该函数将(八)。A.既能被同一源文件中的函数调用,也能被其他源文件中的函数调用B.只能被同
9、源文件中的函数调用,不能被其他源文件中的函数调用C.只能被其他源文件中的函数调用,不能被同一源文件中的函数调用D.既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用2.如果在一个函数中的复合语句中定义了一个变量,那么该变量(八)。A.只在该复合语句中有效B.在该函数中有效C.在本程序范围内均有效D.为非法变量3 .以下不正确的说法是(D)。A.在不同函数中可以使用一样名字的变量B.形式参数是局部变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量在本函数范围内有效4 .以下程序的正确运行结果是(D)。#defineMAX10intaMAXl,i;main
10、()(printf(,n);sub1();sub3();sub2();sub3();)sub2()(intaMAX,i,max;max=5;for(i=0;imax;i+)ai=i;)sub1()for(i=0;iMAX;i+)ai=i+i;)sub3()(inti;for(i=0;iMAX;i+)printf(%d,ai);printf(un,);)A.024681012141618B.0123401234024681012141618C.0123456789D.024681012141618012340246810121416185,但凡函数中未指定存储类别的局部变量,其隐含的存储类别为(
11、A)。A.自动(auto)B.静态(StatiC)C.外部(extern)D.存放器(register)6 .以下程序的正确运行结果是(D)。main()inta=2,i;for(i=0;i3;i+)printf(%4d,f(a);)f(inta)intb=0;staticintc=3;b+;c+;return(a+b+c);A.777B.71013C.7911D.789二、读程序,写结果7 .写出下面程序的运行结果,是(8)、是(17)。#includemain()intk=4,m=l,p;p=fun(k,m);printf(%d,p);/*/p=fun(k,m);printf(%d,p);
12、/*/)fun(inta,intb)staticintm=0,i=2;i+=m+l;m=i+a+b;return(m);)8 .下面程序的运行结果是(84)。#includeintd=l;fun(intp)intd=5;d+=p+;printf(%dn,d);)main()inta=3;fun(a);d+=a+;printf(%d,d);)第7章练习7-1答案选择题1 .:int*p,a;,那么语句“p=&a;中的运算符“&的含义是(D)。A,位与运算B.逻辑与运算C.取指针内容D.取变量地址2 .:inta,x;,那么正确的赋值语句是(C)。A.a=(al+a2)2;B.a*=*a+l;C.
13、a=(x=l,x+x+2);D.a=goodu;3 .:inta,*p=&a;,那么以下函数调用中错误的选项是(D)。A.scanf(%d,&a);B.scanf(%d,p);C.printf(%d,a);D.scanf(%d,*p);4 .:char*p,*q;,选择正确的语句(C)OA.p*=3;B.p=q;C.p+=3;D.p+=q;5 .:intx;,那么下面的说明指针变量Pb的语句(C)是正确的。A.intpb=&x;B.int*pb=x;C.int*pb=&x;D.*pb=*x;练习72答案一、选择题1 .设有说明int(*ptr)M;,其中的标识符Ptr是(C)。A.M个指向整型变量的指针B.指向M个整型变量的函数指针C.一个指向具有M列的二维数组的一行的指针D.具有M个指针元素的一维数组的指针2 .:double*pl6;,它的含义是(C)。A.P是相向double型变量的指针B.P是double型数组C.p是指针数组D.p是数组指针3 .:chars10,*p=s,那么在以下语句中,错误的语句是(B)。A.p=s+5;B.s=p+s;C.s2=p4;D.*p=s0;4 .:chars100;inti;,那么在以下引用数组元素的语句中,错误的表示形式是(D)。A.si+10