吉大c语言编程作业答案,吉林大学C语言习题

- - 1 -《C 语言程序设计》习 题李玲 张海蓉 黄玉兰 孙大洋 赵晓京 温泉 厉茜吉林大学通信工程学院- - 2 -第 6 章练习 6-1 答案一、选择题1.已知函数 abc 的定义为:void abc(){……}则函数定义中 void 的含义是( A )。A.执行函数 abc 后,函数没有返回值 B.执行函数 abc 后,函数不再返回C.执行函数 abc 后,可以返回任意类型 D.以上三个答案全是错误的2.已知:int p();,p 是( C )。A.int 型变量B.函数 p 的调用C.一个函数声明,该函数的返回值是 int 型的值D.强制类型转换表达式中的变量3.以下正确的函数形式是( D )。A.double fun(int x, int y) B.fun(int x, y){ z=x+y; return z; } { int z; return z; }C.fun(x, y) D.double fun(int x, int y){ int x, y; double z; z=x+y; return z; } { double z; z=x+y; return z; }4.以下说法正确的是( C )。A.定义函数时,形参的类型说明可以放在函数体内B.return 后边的值不能为表达式C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准D.如果形参与实参的类型不一致,以实参类型为准5.C 语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。A.float 型 B. int 型 C.long 型 D.double 型6.下面函数调用语句含有实参的个数为( B )。func((exp1, exp2), (exp3, exp4, exp5));A.1 B. 2 C.4 D.57.以下程序的功能是计算函数 F(x, y, z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。#include #include float f(float, float);main(){float x, y, z, sum;scanf(“%f%f%f“, sum=f( ①B )+f( ②C ); ( 注:或者选择 sum=f( ①C )+f( ②B ))printf(“sum=%f\n“, sum);- - 3 -}float f(float a, float b){float value;value=a/b;return(value);}① A.x-y, x+y B. x+y, x-y C.z+y, z-y D.z-y, z+y② A.x-y, x+y B. x+y, x-y C.z+y, z-y D.z-y, z+y二、填空题8.以下程序的功能是根据输入的“y“(“Y“)与“n“(“N“),在屏幕上分别显示出“This is YES.“与“This is NO.“。请填空,①是( break; )、②是( getchar() 或 getch() 或 getche() )。#include void YesNo(char ch){switch (ch){ case 'y':case'Y': printf(“\nThis is YES.\n“); ① ;case 'n':case 'N': printf(“\nThis is NO.\n“);}}main(){char ch;printf(“\nEnter a char 'y', 'Y' or 'n', 'N':“);ch= ② ;printf(“ch:%c“, ch);YesNo(ch);}9.下面函数 pi 的功能是:根据以下公式,返回满足精度 (0.0005)要求的 的值,请填空,①是( t=n=1, s=0 )、 ②是( s*2 )。/2=1+1/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+….#include #include #include double pi(double eps){double s, t; int n;for ( ① ; t>eps; n++)- - 4 -{ s+=t;t=n*t/(2*n+1);}return( ② );}main(){double x;printf(“\nPlease enter a precision:“);scanf(“%1f“, printf(“\neps=%1f, =%1f“, x, pi(x));}三、读程序,写结果10.下列程序的运行结果是( 5 )。#include fun(int p){ int a=10;p=a;++p;}main(){ int a=5;fun(a);printf(“%d\n“, a);}11.下列程序的运行结果是( 8 )。#include int abc(int u, int v);main(){ int a=24, b=16, c;c=abc(a, b);printf(“%d\n“, c);}int abc(int u, int v){ int w;while (v){ w=u%v;u=v;v=w;}return u;- - 5 -}12.下列程序的运行结果是:( before swap a=5,b=10 in swap x=10,y=5after swap a=5,b=10 )。#include main(){ int a, b;a=5; b=10;printf(“before swap a=%d,b=%d\n“, a, b);swap(a, b);printf(“after swap a=%d,b=%d\n“,a, b);}swap(int x, int y){ int temp;temp=x; x=y; y=temp;printf(“in swap x=%d,y=%d\n“, x, y);}13.以下程序的运行结果是:( i=5 i=2 i=2 i=0 i=2 )。int i=0;main(){ int i=5;reset(i/2); printf(“i=%d\n“, i);reset(i=i/2); printf(“i=%d\n“, i);reset(i/2); printf(“i=%d\n“, i);workover(i); printf(“i=%d\n“, i);}workover(int i){ i=(i%i)*((i*i)/(2*i)+4);printf(“i=%d\n“, i);return(i);}reset(int i){ i=imain(){int k=4, m=1, p;p=fun(k, m); printf(“%d“, p); /* ① */p=fun(k, m); printf(“%d“, p); /* ② */}fun(int a, int b){static int m=0, i=2;i+=m+1;m=i+a+b;return(m);}8.下面程序的运行结果是( 8 4 )。#include int d=1;fun(int p){int d=5;d+=p++;printf(“%d“, d);}main(){int a=3;fun(a);d+=a++;printf(“%d“, d);}- - 8 -- - 9 -第 7 章练习 7-1 答案选择题1.已知:int *p, a;,则语句“p=”中的运算符“,则正确的赋值语句是( C )。A.a=(a[1]+a[2])/2; B. a*=*a+1; C.a=(x=1, x++, x+2); D.a=“good“;3.已知:int a, *p= ,则下列函数调用中错误的是 ( D )。A.scanf(“%d“, B. scanf(“%d“, p); C.printf(“%d“, a); D.scanf(“%d“, *p);4.已知:char *p, *q;,选择正确的语句( C )。A.p*=3; B. p/=q; C.p+=3; D.p+=q;5.已知:int x;,则下面的说明指针变量 pb 的语句( C )是正确的。A.int pb= B. int *pb=x; C.int *pb= D.*pb=*x;练习 7-2 答案一、选择题1.设有说明 int (*ptr)[M];,其中的标识符 ptr 是( C )。A.M 个指向整型变量的指针B.指向 M 个整型变量的函数指针C.一个指向具有 M 列的二维数组的一行的指针D.具有 M 个指针元素的一维数组的指针2.已知:double *p[6]; ,它的含义是( C )。A.p 是指向 double 型变量的指针 B.p 是 double 型数组C.p 是指针数组 D.p 是数组指针3.已知:char s[10], *p=s,则在下列语句中,错误的语句是( B )。A.p=s+5; B. s=p+s; C.s[2]=p[4]; D.*p=s[0];4.已知:char s[100]; int i;,则在下列引用数组元素的语句中,错误的表示形式是( D )。A.s[i+10] B.*(s+i) C.*(i+s) D.*((s++)+i)5.已知:char b[5], *p=b;,则正确的赋值语句是( C )。A.b=“abcd“; B. *b=“abcd“; C.p=“abcd“; D.*p=“abcd“;6.下列对字符串的定义中,错误的是( A )。A.char str[7]=“FORTRAN“; B.char str[]=“FORTRAN“;C.char *str=“FORTRAN“; D.char str[]={'F', 'O', 'R', 'T', 'R','A','N',0};7.已知:char s[20]=“programming“, *ps=s;,则不能引用字母 o 的表达式是( A )。A.ps+2 B. s[2] C.ps[2] D.ps+=2,*ps8.已知:char **s;,正确的语句是 ( B )。A.s=“computer“; B.*s=“computer“; C.**s=“computer“; D.*s='A';9.已知:char c[8]=“beijing“, *s=c; int i;,则下面的输出语句中,错误的是( B )。A.printf(“%s\n“, s); B.printf(“%s\n“, *s);- - 10 -C.for (i=0; imain()

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值