带答案C语言2-10章作业
第10章C语言程序设计习题答案

C 语言程序设计( Visual C++6.0 环境)》习题答案习题十、思考题1.简述公有类型成员与私有类型成员的区别。
公有(public) 类型成员不但可以被类的成员函数访问,而且可以被外界访问,所以说公有类型定义了类的外部接口。
私有(private) 类型成员只能被类的成员函数访问,外界不能直接访问它。
类的数据成员一般都应该声明为私有成员。
2.简述构造函数与析构函数的作用。
构造函数的作用就是在对象在被创建时利用特定的值构造对象,将对象初始化。
析构函数的作用与构造函数正好相反,它是用来在对象被删除前进行一些清理工作。
析构函数调用之后,对象被撤消了,相应的内存空间也将被释放。
3.简述什么是友元函数。
友元函数是在类定义中由关键字friend 修饰的非成员函数。
友元函数可以是一个普通函数,也可以其它类中的一个成员函数,它不是本类的成员函数,但它可以访问本类的私有成员和保护成员。
4.简述公有继承、私有继承和保护继承三种继承方式的区别。
⑴、当类的继承方式为公有(public 继承)时,基类的公有(public )成员和保护( protected )成员仍然成为派生类的公有成员和保护成员,而基类的私有成员不能被派生类访问。
⑵、当类的继承方式为保护( protected )继承时,基类的公有(public )成员和保护( protected )成员将成为派生类的保护成员,而基类的私有成员不能被派生类访问。
⑶、当类的继承方式为私有(private )继承时,基类的公有(public )成员和保护(protected )成员将成为派生类的私有成员,而基类的私有成员不能被派生类访问。
5.定义一个圆柱体类,其属性为圆柱体的底面半径和高,能计算出圆柱体的体积。
#include<iostream.h>class cylinder{public:cylinder(float r,float h){radius=r;height=h;}float Volume();private:float radius;float height;};float cylinder::Volume(){return 3.14*radius*radius*height;}void main(){float r,h;cout<<" 请输入圆柱体的底面半径和高:"; cin>>r>>h;cylinder x(r,h);cout<<x.Volume()<<endl;}6.从第 5 题中定义的圆柱体类中派生出圆锥类,覆盖计算体积的成员函数。
C语言程序设计课后各章节习题答案

main()
{
float x,y,d;
printf("Input x,y:");
scanf("%f,%f",&x,&y);
d=sqrt((x-2)*(x-2)+(y-2)*(y-2));
if(d>1)printf(ntf("inside");
}
12有一函数
x-1 -5<x<0
y= x x=0
x+1 0<x<8
编写一程序,要求输入x的值,输出y的值。分别用不嵌套的if语句,嵌套的if语句,switch语句编写。
答使用不嵌套的if语句程序如下:
main()
{
int x,y;
printf("Input x:");
scanf("%d",&x);
答main()
{
int x,a,b,c;
printf("Input number:");
scanf("%d",&x);
a=x/100;/*变量a中记录x的百倍数字*/
b=x/10%10;/*变量b中记录x的十位数字*/
c=x%10;/*变量c中记录x的个位数字*/
if(a*a*a+b*b*b+c*c*c==x)
if(m==2)
d=28+f;
else
d=31-(m==4)+(m==6)+(m==9)+(m==11);
printf("%d-%d is %d days.\n",y,m,d);
c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
《C语言程序设计》教材习题答案第10章

一、选择题1. 设已定义“int a,* p”,下列赋值表达式中正确的是:C)p=&a2. 设已定义“int x,*p=&x;”,则下列表达式中错误的是:B)&*x3. 若已定义“int a=1 ,*b=&a;”,则“printf(“%d \n”,*b);”的输出结果为:A)a的值。
4. 设已定义“int x,*p,*pl=&x,*p2=&x;”,则下列表达式中错误的是:C)p=p1+p2.5. 设有函数定义“void p(int *x){printf(“%d\n”,*x);}”和变量定义“int a=3;”,则正确的函数调用是:C)p(&a)6. 函数“int fun(char * x){char * y=x; while(*y)y++;return(y-x); }”的功能是A)求字符串的长度。
7. 运行一下程序,输出结果为:B)5 6int fun (int a,int *b){a++;(*b)++;return a+*b;}void main(){int x=1,y=2;Printf(“%d”,fun(x,&y));Printf(“%d”,fun(x,&y));}8. 运行以下程序,输出结果为:C)58#include<stdio.h>Int * fun(int a ,int *b){a++;(*b)++;*b=a+*b;return b;}Void main(){Int x=1,y=2,*z;Z=fun(x,&y);Printf(“%d”,*z);Z=fun(x,&y);Printf(“%d”,*z);}9. 若已定义“int a[]={1,2 ,3,4},*p=a;”,则下面表达式中值不等于2的是C)*(++a)10. 若已定义“int a[]={1,2 ,3,4},*p=a+1;”,则p[2]的值为C)411. 设已定义“int x[4][10],*p=x[0];”,则下列表达式中的值为整形的是B)*(p+1)12. 设已定义“char s[]=”ABCD”;”,”printf(“%s”,s+1)”的值为C)BCD13. 设已定义“char str[]=”abcd”,*ptr=str;”,则*(prt+4)的值为B)014. 下面对字符串变量的初始化或赋值操作中,错误的是C)char a[10];a=”OK”;15. 设已定义“char *ps[2]={“abc”,”1234”};”,则以下叙述中错误的是A)ps为指针变量,它指向一个长度为2的字符串数组16. 设已定义“struct {int a,b;} s,*ps=&s;”,则错误的结构体成员引用是C)*ps.a17. 设已有以下定义,则表达式的值为2的是A)k=++p->datastruct st {int data;st *link;} a[3]={1,a+1,3,a+2,5,0},*p=a;二、编程题1. 输入3个字符串,输出其中最大的字符串(用字符指针)#include <stdio.h>#include <stdlib.h>#define str_count 3#define str_length 100int main(int argc, char *argv[]){char a[str_count][str_length],*p;printf("请输入3个字符串:");int i;for(i=0;i<str_count;i++){scanf("%s",a[i]);}p=a[0];for(i=1;i<str_count;i++){if(strcmp(p,a[i])<0){p=a[i];}}printf("最大的字符串为:%s",p);system("PAUSE");return 0;}2. 定义一个函数,函数的功能是求已知半径的圆的周长和面积。
国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
c语言课后参考答案

二级C语言程序设计教程课后习题答案(高教版)第一章【1-1】.exe【1-2】.c .obj.exe 【1-3】顺序,分枝(选择),循环第二章【2-1】B 【2-2】D【2-3】B【2-4】A【2-5】C【2-6】A【2-7】B【2-8】B 【2-9】A【2-10】C【2-11】B【2-12】B【2-13】A【2-14】11,12【2-15】4.2,4.2【2-16】{,},定义说明,执行语句【2-17】关键字,用户标识符【2-18】int,float,double【2-19】float a=b=1; 【2-20】存贮单元【2-21】3.5【2-22】a*b/c,a/c*b,b/c*a【2-23】把10赋予变量s【2-24】bit,0/1【2-25】8,127,01111111,-128,10000000(补码)【2-26】32767,-32768,1111111111111111,1000000000000000【2-27】8,10,16 【2-28-1】(错误)#include stdio.h;main() / * main function * /float r,s; /*/*r is radius*/,/* s is area of circular */*/r=5.0;s=3.14159*r*r;printf("%f\n",s)【2-28-2】(正确)#include stdio.h;main() /* main function */{float r,s; /* r is radius, s is area of circular */r=5.0;s=3.14159*r*r;printf("%f\n",s);}【2-29-1】(错误)#include “stdio.h”main /* main function */{ float a,b,c,v; /* a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0v=a*b*c;printf("%f\n",v)}【2-29-2】(正确)#include <stdio.h>main() /* main function */{ float a,b,c,v; /* a,b,c are sides, v is volume of cube */ a=2.0; b=3.0; c=4.0;v=a*b*c;printf("%f\n",v);}第三章【3-1】C 【3-2】C 【3-3】D 【3-4】C 【3-5】D 【3-6】B 【3-7】C【3-8】D 【3-9】A【3-10】B 【3-11】C 【3-12】D 【3-13】D【3-14】C 【3-15】C 【3-16】C 【3-17】C 【3-18】A【3-19】C 【3-20】B 【3-21】(1)-200 2500(2)i=-200, j=2500(3)i=-200//(换行)j=2500 【3-22】12,0,0【3-23】一条语句,;【3-24】;【3-25】100 25.81 1.89234,100//25.81//1.89234,100//25.81 1.89234【3-26】x=127,x= 127,x= 177,x= 7f,x= 127【3-27】x=127,x=127 ,x=$127 ,x=$000127,x=%06d【3-28】a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500【3-29-1】(错误)#include “stdio.h”main{ double a,b,c,s,v;printf(input a,b,c:\n);scanf("%d %d %d",a,b,c);s=a*b;v=a*b*c;printf("%d %d %d",a,b,c);printf("s=%f\n",s,"v=%d\n",v);}【3-29-2】(正确)#include “stdio.h”main(){ float a,b,c,s,v;printf("input a,b,c:");scanf("%f %f %f:",&a,&b,&c);s=a*b;v=a*b*c;printf("a=%f,b=%f,c=%f\n",a,b,c); printf("s=%f,v=%f\n",s,v);}【3-30】#include “stdio.h”main(){ int h,m;h=560/60;m=560%60;printf("%dh:%dm",h,m);}【3-31】#include “stdio.h”main(){ int m,n;printf("input m & n:");scanf("%d%d",&m,&n);printf("\n%d,%d\n",m/n,m%n); }【3-32】#include “stdio.h”main(){ double x,y,z,s;printf("input x,y,z: ");scanf("%lf%lf%lf",&x,&y,&z); s=(x+y+z)/3.0;printf("\nA verage=%6.1lf\n",s); }【3-33】#include “stdio.h”main(){ int a,b,c,t;printf("Input a,b,c: ");scanf("%d%d%d",&a,&b,&c); t=c;c=b;b=a;a=t;printf("\na,b,c=%d,%d,%d\n",a,b,c);}第四章【4-1】A【4-2】A【4-3】A【4-4】D【4-5】C【4-6】A【4-7】B【4-8】A 【4-9】D【4-10】A【4-11】非零,零【4-12】<,>,<=,>= ==,!=【4-13】!,&&,|| 【4-14】!,关系运算符,&&,|| 【4-15】!【4-16】(A)a==b||a<c(B)fabs(x)>4【4-17】1【4-18】x<=0,1【4-19】3,2,2 【4-20】*#【4-21】#include “stdio.h”main(){ int a,m;printf("input a: ");scanf("%d",&a);switch(a/10){ case 0:case 1:case 2: m=1 ;break;case 3: m=2 ;break;case 4: m=3 ;break;case 5: m=4 ;break;default: m=5;}printf("a,m=%d, %d",a,m );}【4-22】#include “stdio.h”main(){ int age,y0,m0,d0,y1,m1,d1;printf("\ninput a stedent\' birthday (yy-mm-dd): "); scanf("%d-%d-%d",&y0,&m0,&d0);printf("\ninput today\' date (yy-mm-dd): "); scanf("%d-%d-%d",&y1,&m1,&d1);if ((m1>m0)||(m1==m0)&&(d1>=d0)) age=y1-y0; else age=y1-y0-1;printf("\nThe student\' age is %d",age);}【4-23】#include “stdio.h”main(){ int m;printf("\ninput a integer: ");scanf("%d",&m);if (m%2==0) printf("\n%d is event.",m); else printf("\n%d is ord.",m);}【4-24】#include “stdio.h”main(){ int a,b,c,max;printf("\ninput a,b,c: ");scanf("%d%d%d",&a,&b,&c);max=a;if (b>max) max=b;if (c>max) max=c;printf("max is %d",max);}【4-25-1】#include “stdio.h”main(){ int x,y;printf("\ninput x: ");scanf("%d",&x);if((x>-5)&&(x<0)) y=x;if (x==0) y=x-1;if ((x>0)&&(x<10)) y=x+1;printf("\nx is %d , y is %d",x,y);}【4-25-2】#include “stdio.h”main(){ int x,y;printf("\ninput x: ");scanf("%d",&x);if((x>-5)&&(x<10)){ if (x<0) y=x;if (x==0) y=x-1;if (x>0) y=x+1;printf("\nx is %d , y is %d",x,y);}else printf("input x is error ! %c",'\007'); }【4-25-3】#include “stdio.h”main(){ int x,y;printf("\ninput x: ");scanf("%d",&x);if ((x>-5)&&(x<0)) y=x;else if (x==0) y=x-1;else if ((x>0)&&(x<10)) y=x+1;printf("\nx is %d , y is %d",x,y); }【4-25-4】#include “stdio.h”main(){ int x,y;printf("\ninput x: ");scanf("%d",&x);switch(x){ case -4:case -3:case -2:case -1: y=x;break;case 0 : y=x-1;break;case 1 :case 2 :case 3 :case 4 :case 5 :case 6 :case 7 :case 8 :case 9 : y=x+1;break;default : printf("Input x error ! %c",7);}printf("\nx is %d , y is %d",x,y);}第五章【5-1】D【5-2】C【5-3】B【5-4】C【5-5】C【5-6】B【5-7】D【5-8】A 【5-9】D【5-10】D【5-11】5,4,6【5-12】死循环【5-13】-1【5-14】11 【5-15】d=1,k++,k<n【5-16】x>=0,x<amin【5-17】#include “stdio.h”main(){ int i,s=1,k=-1;for (i=1;i<=50;i++){ s=s+k*(2*i+1);k=-k;}printf("s=%d",s);}【5-18-1】#include “stdio.h”main(){ int i=1;double e=1.0,s=1.0;for(i=1;i<=50;i++){s=s*i;e=e+1/s;}printf("e=%lf",e);}【5-18-2】#include “stdio.h”main(){ int i=1;float e=1.0,s=1.0;while (1/s>=1e-04) /* 8 times */ {s=s*i;i++;e=e+1/s;}printf("e=%10.6f",e);}【5-19】#include “stdio.h”main(){ int y,k=0;for(y=1000;y<=2000;y++){ if (y%4==0&&y%100!=0||y%400==0) {printf("%10d",y);k++;} if (k%3==0) printf("\n");}}【5-20】#include “stdio.h”#include <stdio.h>main(){int i,j,n;printf("Input n (1--10):");do scanf("%d",&n);while (n<1||n>10);for (i=1;i<=n;i++){for (j=1;j<=40-i;j++)printf(" ");for (j=1;j<=2*i-1;j++)printf("*");printf("\n");}for (i=n+1;i<=2*n-1;i++){ for (j=1;j<=40-2*n+i;j++)printf(" ");for (j=1;j<=4*n-1-2*i;j++)printf("*");printf("\n");}}第六章【6-1】B【6-2】D【6-3】A【6-4】A【6-5】B【6-6】D【6-7】D【6-8】B 【6-9】A【6-10】A【6-11】C【6-12】26【6-13】1【6-14】ctype.h【6-15】1 【6-16】10A20B30C40D【6-17】7.29 101.298AB【6-18】A7.29B101.298【6-19】A B C【6-20】#include <stdio.h>main(){ int k=0; char ch;while((ch=getchar())!=10) { k++;printf("%4c%4d",ch,ch);if(k%3==0) printf("\n"); }}【6-21】#include <stdio.h>main(){ long k=0; char ch;while((ch=getchar())!=EOF) { if (ch>='0'&&ch<='9'){ ch=ch-'0';k=k*10+ch;}}printf("%ld",k);}#include <stdio.h>main(){ int flag,k=0; char ch;while((ch=getchar())!=EOF){ if (ch==10) { k++; flag=0; }else flag=1;}if (flag==1) k++;printf("\n The line number is %d\n",k);}【6-23】#include <stdio.h>main(){ int k=0; char ch;while((ch=getchar())!=10)if (ch>='a'&&ch<='z') k++;printf("\n The lower letter number is %d\n",k); }【6-24】#include <stdio.h>{ int i,j,n;printf("Input line number : ");scanf("%d",&n);for(i=1;i<=n;i++){ for (j=1;j<=40-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("%c",64+i);printf("\n");}}第七章【7-1】C【7-2】C【7-3】B【7-4】C【7-5】A【7-6】D【7-7】A【7-8】12 【7-9】9.000000【7-10】4【7-11】n=1,s【7-12】<=y,z*x【7-13】1,s*i,0,f(k)【7-14-1】(错误)#include “stdio.h”main(){int m;printf("Input a number: ");scanf("%d",&m);m=fun(m);if (m==1)printf("\nThis number is a primer !\n"); elseprintf("\nThis number is not a primer !\n"); }fun(int n){ int k,yes;for (k=2;k<=n/2;k++)if (n%k==0) yes=0;else yes=1;return yes;}【7-14-2】(正确)#include “stdio.h”main(){int m;printf("Input a number: ");scanf("%d",&m);m=fun(m);if (m==1)printf("\nThis number is a primer !\n"); elseprintf("\nThis number is not a primer !\n"); getch();}fun(int n){ int k,yes=1;for (k=2;k<=n/2;k++)if (n%k==0) yes=0;return yes;}【7-15】#include “stdio.h”main(){int a,b;printf("Input a & b:");scanf("%d%d",&a,&b);printf("\n%d%%%d=%d",a,b,mymod(a,b)); getch();}mymod(int a, int b){int z;z=a%b;return z;}【7-16】#include “stdio.h”float fun(int n) {return (1.0/n);}main(){int i,n,k=1;float s=0.0;printf("Input n:"); scanf("%d",&n);for(i=1;i<=n;i++) {s+=k*fun(i);k=-k;}printf("\ns=%8.6f",s); }【7-17】#include “stdio.h”float f(int m){ float t=1.0;int i;for (i=2;i<=m;i++)t-=1.0/(i*i);return t;}main(){int n;printf("Input n:"); scanf("%d",&n);printf("\nt=%8.6f",f(n)); }【7-18】#include <math.h>float f(float x){ float z;z=x*x-5*x+4;return z;}main(){float x,y1,y2,y3;printf("Input x: ");scanf("%f",&x);y1=f(2);y2=f(x+15);y3=f(sin(x));printf("y1=%10.4f\n",y1);printf("y2=%10.4f\n",y2);printf("y3=%10.4f\n",y3);printf("\n**** END ****");}第八章【8-1】A【8-2】B【8-3】B【8-4】C【8-5】B【8-6】B【8-7】C【8-8】D 【8-9】B【8-10】C【8-11】C【8-12】C【8-13】110【8-14】7 1【8-15】char *p=ch;,p=&ch;,scanf(“%c”,p);,p=’a’;,printf(“%c”,p); 【8-16】s=p+3;,s-=2,50,*(s+1),2,10 20 30 40 50【8-17-1】#include “stdio.h”fun(x,y)int *x,*y;{int z1,z2;z1=*x+*y;z2=*x-*y;*x=z1; *y=z2;}main(){int *a,*b,A,B;a=&A,b=&B;printf("input two numbers: "); scanf("%d%d",a,b);printf("a,b=%d,%d\n",*a,*b); printf("before call function:\n"); printf("a=%d b=%d\n",*a,*b); fun(a,b);printf("after call function:\n"); printf("a=%d b=%d\n",*a,*b); }【8-17-2】#include “stdio.h”fun(x,y)float *x,*y;{float z1,z2;z1=*x+*y;z2=*x-*y;*x=z1; *y=z2;}main(){float *a,*b,A,B;a=&A;b=&B;printf("input two real numbers: "); scanf("%f%f",a,b);printf("a,b=%f, %f\n",*a,*b); printf("before call function:\n"); printf("a=%f b=%f\n",*a,*b); fun(a,b);printf("after call function:\n"); printf("a=%f b=%f\n",*a,*b); }【8-18】#include “stdio.h”fun(int *a,int *b,int *c){ int max,min;max=*a;min=*a;if (*b>*a) max=*b;if (*b<*a) min=*b;if (*c>max) max=*c;if (*c<min) min=*c;*a=max;*c=min;}main(){int a,b,c;printf("Input a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("before call function:\n");printf("a=%d b=%d c=%d\n",a,b,c);fun(&a,&b,&c);printf("after call function:\n");printf("max=%d min=%d\n",a,c);}第9章【9-1】D【9-2】A【9-3】A【9-4】A【9-5】C【9-6】A【9-7】B【9-8】D 【9-9】C【9-10】C【9-11】C【9-12】D【9-13】D【9-14】A,C(?)【9-15】A【9-16】A【9-17】C【9-18】C【9-19】9,0【9-20】6【9-21】12 【9-22】3【9-23】2721【9-24】-850,2,0【9-25】k=p,(k)【9-26】c=getchar(),c-65【9-27】#include “stdio.h”#include <ctype.h>main(){ char *s,a[100];int i,k=0,num[10]={0};s=a;printf("Input an number string: "); scanf("%s",s);while(*s!='\0'){ if (isdigit(*s)&&(*s>'0'))num[*s-49]++;if (*s==48) num[9]++;s++;}for (i=0;i<9;i++)printf("%2d-->%3d\n",i+1,num[i]); printf(" 0-->%3d\n",num[9]);printf("***** TOTAL *****\n"); for (i=0;i<=9;i++) k+=num[i]; printf(" %d ",k);}【9-28】#include “stdio.h”move(int a[10],int n){int i;for (i=n;i<10;i++)a[i-1]=a[i];a[9]=0;}main(){int x[10],i,n;printf("input 10 number:");for(i=0;i<10;i++)scanf("%d",&x[i]);printf("\ninput the N:");scanf("%d",&n);move(x,n);printf("\nAfter move tne member list is :\n");for (i=0;i<10;i++)printf("%d ",x[i]);}【9-29】#include “stdio.h”main(){int a[100]={0},b[100]={0},i,j;printf("\nInput the number list (end with 32767) :\n ");for(i=0;i<100;i++){scanf("%d",&a[i]);if ( a[i]==32767) break;}i--;odd(a,b,i);printf("\narray B :\n");for (i=0;i<100;i++)if (b[i]!=0) printf("%d ",b[i]);else break;getch();}odd(int a[100],int b[100],int n) { int i,j=0;for(i=0;i<=n;i++)if(a[i]%2!=0) b[j++]=a[i];}【9-30】#include <string.h>sort(char s[],int n){int i,j,p,t;for(j=0;j<(n-1);j++){p=j;for(i=j+1;i<n;i++)if(s[p]<s[i]) p=i;if(p!=j) { t=s[j]; s[j]=s[p]; s[p]=t; }}}main(){char *s;int n;printf("\nInput s:");scanf("%s",s);n=strlen(s);sort(s,n);printf("\nthe sorted string is %s \n",s);}【9-31】#include “stdio.h”main(){int a[100],n,*p,i=1;a[0]=-32768; p=a+1;printf("\nInput an number list (end with 32767) :\n"); do{scanf("%d",&a[i]);if (a[i]>=a[i-1]) i++;}while(a[i-1]!=32767);printf("\nInput inserted number: "); scanf("%d",&n);p=a;insert(p,n);p=a+1;printf("\nOutput array a:\n");doif (*p!=32767) printf("%d ",*p++); while (*p!=32767);getch();}insert( int *q, int n){ int *k;k=q;while (*q!=32767) q++;*(q+1)=*q;while(q>k){ if (n>*(q-1)) { *q=n; break; }else {q--; *(q+1)=*q; }}}【9-32】#include “stdio.h”main(){int n,a[16]={0},*p;printf("\nInput an number:"); scanf("%d",&n);p=a;change(a,n,p);printf("n=%d\n",n);while(p<=a+15)printf("%d",*p++);}change(x,n,p)int x[16],n,*p;{p=x+15; *p=0;if(n==0) return(0);while(n!=0){*p=n%2;p--;n/=2;}}【9-33】#include <stdio.h>main(){int a[15],*p,i;p=a;frandm(a);printf("\nThe array a is: "); for(i=0;i<15;i++)printf("%d ",*p++);}frandm( a[]);{int k=0,i,x,*q;for (i=0;i<15;i++) a[i]=20; while(k<15){x=rand()%20;for (i=0;i<15;i++)if (a[i]==x ) continue;else a[k++]=x;}}【9-34】#include “stdio.h”#define N 20main(){int a[N][N],x[N]={0},y[N]={0},i,j,m,sum=0; printf("\n Input N (<20) :");scanf("%d",&m);printf("\n Input array a[%d][%d]:\n",m,m); for(i=0;i<m;i++)for(j=0;j<m;j++){ scanf("%d",&a[i][j]);x[i]+=a[i][j]; y[j]+=a[i][j];if (i==j ) sum+=a[i][i];}printf("\n After compute : \n");for (i=0;i<m;i++){ for (j=0;j<m;j++)printf("%5d",a[i][j]);printf("%5d\n",x[i]);}for (i=0;i<m;i++)printf("%5d",y[i]);printf("\n\nSum=%d\n",sum);}【9-35】#include “stdio.h”#define N 20main(){int a[N][N],b[N][N],c[N][N],m,n,i,j; printf("\n Input m,n (<20) :");scanf("%d%d",&m,&n);printf("\n Input array A[%d][%d]:\n",m,n); for(i=0;i<m;i++)for(j=0;j<n;j++){ scanf("%d",&a[i][j]);}printf("\n Input array B[%d][%d]:\n",m,n); for(i=0;i<m;i++)for(j=0;j<n;j++){ scanf("%d",&b[i][j]); c[i][j]=a[i][j]+b[i][j];}printf("\n After compute array C: \n");for (i=0;i<m;i++){ for (j=0;j<n;j++)printf("%5d",c[i][j]);printf("\n");}}【9-36】#include “stdio.h”main(){int i,j,k;printf("\n ** A MULTIPLICA TION TABLE **\n"); printf(" ");for(i=1;i<10;i++) printf("(%3d)",i);printf("\n --------------------------------------------\n");for(i=1;i<10;i++){ for(j=0;j<10;j++)if(j==0) printf("( %d)",i);else printf("%5d",i*j);printf("\n");}printf("\n --------------------------------------------\n"); }【9-37】#include "stdio.h"#include "stdlib.h"main(){static int m[5][5]={0},i,j;int k=0;printf("\nBefore :\n");for (i=0;i<5;i++)for(j=0;j<5;j++){ m[i][j]=rand()%100;printf("%4d",m[i][j]);if ((++k)%5==0) printf("\n"); }printf("\nAfter:\n");for (i=0;i<5;i++)for(j=0;j<i;j++){ k=m[i][j]; m[i][j]=m[j][i]; m[j][i]=k; }k=0;for (i=0;i<5;i++)for(j=0;j<5;j++){ printf("%4d",m[i][j]);if ((++k)%5==0) printf("\n"); } printf("\n Program end ! \n");}【9-38】#include “stdio.h”#include "stdio.h"main(){ int m[5][5]={0},i,j;int k=0;printf("\nBefore :\n");for (i=0;i<5;i++)for(j=0;j<5;j++){ m[i][j]=rand()%100;printf("%4d",m[i][j]);if ((++k)%5==0) printf("\n"); } printf("\nAfter:\n");for (i=0;i<5;i++)for(j=0;j<i;j++){ k=m[i][j]; m[i][j]=m[j][i]; m[j][i]=k; }printf("%4d",m[i][j]);if ((++k)%5==0) printf("\n"); }k=0;for (i=0;i<5;i++)for(j=0;j<5;j++){ printf("%4d",m[i][j]);if ((++k)%5==0) printf("\n"); }printf("\n Program end ! \n");}第十章【10-1】B【10-2】B【10-3】C【10-4】B【10-5】A【10-6】A【10-7】C 【10-8】A【10-9】C【10-10】? 【10-11】GFEDCB【10-12】XYZA 【10-13】SO【10-14】qwertyabcd【10-15】Itiss【10-16】strlen(str),j--【10-17】7【10-18】gotogood*【10-10】#includ e “stdio.h”#include <string.h>main(){ char str1[]="string",str2[8],*str3,*str4="string";strcpy(str1,"HELLO1");strcpy(str2,"HELLO2");strcpy(str3,"HELLO3");strcpy(str4,"HELLO4");printf("%s\n%s\n%s\n%s\n",str1,str2,str3,str4);}*【10-13】#include “stdio.h”main(){char *p[]={"BOOL","OPK","H","SP"};int i;for(i=3;i>=0;i--,i--) printf("%c",*p[i]);printf("\n");}【10-19】#include <stdio.h>#include <string.h>mygets(s)char *s;{ char ch;ch=getchar();while (ch!=10){*s=ch; s++;ch=getchar();} *s='\0';}myputs(s)char *s;{ int i,n;n=strlen(s);for(i=0;i<n;i++)putchar(*s++);}main(){char *str,s[80];str=s;printf("Input a string:"); mygets(str);printf("\nOutput the string:\n"); myputs(str);printf("\n");}【10-20】#include “stdio.h”#include <string.h>main(){ char *str ;str=(char*)malloc(1);printf("Input a string:\n" );gets(str);if (fun(str)) printf("\nThis is back-round-text\n"); else printf("\nThis is not back-round-text\n"); getch();}fun(char *s){int n,i,j, flag=1;n=strlen(s);for (i=0,j=n-1;i<j;i++,j--)if(*(s+i)!=*(s+j)) flag=0;return(flag);}【10-21】#include <string.h>#include <stdio.h>char deltet(s,n)char *s; int n;{ char ch;if (n>strlen(s)) {printf("\nCANNOT DELETE IT !!! %c",007);return('\0'); }else{ ch=*(s+n);do{ *(s+n)=*(s+n+1); n++; }while(*(s+n-1)!='\0');return(ch);}}main(){char str[80],*p,ch;int n;printf("\nInput a string:\n");p=str+1;gets(p);printf("\nDelete the n'th character: ");scanf("%d",&n);ch=deltet(str,n);printf("\nAfter delete the string :(ch=%c)\n",ch);for(n=1;n<strlen(str);n++)putchar(*p++);}第十一章【11-1】D【11-2】B【11-3】D【11-4】C【11-5】IJKLEFGHABCD【11-6】7 【11-7】8【11-8】*(s+j),i+1,i【11-9】17【11-10】(*fun)(),(*fun)(a+i*h),mypoly【11-11】#include <string.h>#include “stdio.h”main(int argc, char *argv[]){char *str, *p;int i,k;str=(char*)malloc(50);printf("\nInput a text line ( > 10 letters):\n");scanf("%s",str);p=argv[1];k=strlen(str);if(argc==2){if (*p=='+')for(i=0;i<(*(p+1)-'0');i++) printf("%c",*(str+i));else if (*p=='-')for(i=k-*(p+1)+'0';i<=k;i++)printf("%c",*(str+i)); } else for(i=k-10;i<k;i++) printf("%c",*(str+i)); getch();}【11-12】#include “stdio.h”int i;ten_to_two(int a[ ],int n){ if (n==0) a[i]=0;else if (n==1) a[i]=1;else { a[i++]=n%2;n=n/2;ten_to_two(a,n); }}main(){int a[16]={0};int n,k;i=0 ;error:printf("\nInput an number: ");scanf("%d",&n);if (n<0) { printf("Input error ! %c" ,7); goto error; } ten_to_two(a,n);if(i!=0) a[i]=1;printf("\nThe converted number is :\n");for (k=i;k>=0;k--)printf("%d",a[k]);}【11-13】#include “stdio.h”sumf(int m){ if (m==1) return(1);else return(m+sumf(m-1));}main(){ int n;printf("Input n: ");scanf("%d",&n);if (n>0) printf("%d",sumf(n));else printf("Input error ! %c",7);}【11-14】long fib(int n){if (n==0||n==1) return(1);else return(fib(n-2)+fib(n-1));}main(){ int n;printf("\nInput n(<25):");scanf("%d",&n);if (n>=0)printf("%ld",fib(n));else printf("\nInput error ! %c",7);}第十二章【12-1】B【12-2】B【12-3】A【12-4】C【12-5】D【12-6】B【12-7】A 【12-8】A【12-9】2,5,1,2,3,-2【12-10】2468第十三章【13-1】B【13-2】C【13-3】B【13-4】C【13-5】D【13-6】A【13-7】D 【13-8】ar=9 ar=9 ar=11【13-9】int*,*s,*b【13-10】#include “stdio.h”#define MY ALPHA(C) (isalpha(C))main(){ char ch;printf("Input a character: ");scanf("%c",&ch);if (MY ALPHA(ch)) printf("\nThis is a letter !"); else printf("\nThis is not a letter ! ");}【13-11】#include “stdio.h”#define SWAP(t,x,y) {(t)=(x);(x)=(y);(y)=(t);} main(){int x,y,t;printf("\nInput x & y :");scanf("%d%d",&x,&y);SW AP(t,x,y)printf("\nx=%d y=%d",x,y);}【13-12】#include “stdio.h”main(){int w,*px,*py,*pz;px=(int *)malloc(sizeof(int));py=(int *)malloc(sizeof(int));pz=(int *)malloc(sizeof(int));printf("\nInput three number :");scanf("%d%d%d",px,py,pz);if(*px>*py) {w=*px;*px=*py;*py=w;}if(*px>*pz) {w=*px;*px=*pz;*pz=w;}if(*py>*pz) {w=*py;*py=*pz;*pz=w;}printf("\nAfter exchange : ");printf("%d %d %d",*px,*py,*pz);}第十四章【14-1】D【14-2】D【14-3】D【14-4】A【14-5】C【14-6】C【14-7】C 【14-8】B 【14-9】struct link *next; 【14-10】p->next,p->data<m【14-11】(struct list *),struct list, (struct list *),struct list,return(h)*【14-6】struct st{int x;int *y;} *p;int dt[4]={10,20,30,40};struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]}; main(){p=aa;printf(" %d\n",++p->x);printf(" %d\n",(++p)->x);printf(" %d\n",++(*p->y));}【14-12】struct stud{char num[5],name[10];int s[4];float ave;};typedef struct stud STU;STU readrec(a)STU a[31];{ int i;for(i=0;i<4;i++) a[0].s[i]=0;printf("\n Input 30 student's data:\n ");printf("--- num name s1 s2 s3 s4 ---\n");for (i=1;i<5 ;i++){printf("%d: ",i);scanf("%s%s%d%d%d%d",a[i].num,a[i].name,&a[i].s[0],&a[i].s[1], &a[i].s[2],&a[i].s[3]);a[i].ave=(a[i].s[0]+a[i].s[1]+a[i].s[2]+a[i].s[3])/4.0;a[0].s[0]+=a[i].s[0];a[0].s[1]+=a[i].s[1];a[0].s[2]+=a[i].s[2];a[0].s[3]+=a[i].s[3];printf("\n");}a[0].s[0]/=4;a[0].s[1]/=4;a[0].s[2]/=4;a[0].s[3]/=4;}STU writerec(a)STU a[31];{int i;printf("\n Output 30 student's data: \n");printf("----- num name s1 s2 s3 s4 ave -----\n");for(i=1;i<5 ;i++){printf("\n%5s %10s %4d %4d %4d %4d %6.2f",a[i].num,a[i].name, a[i].s[0],a[i].s[1], a[i].s[2],a[i].s[3],a[i].ave);}printf("\n\n A VE: %d %d %d %d ",a[0].s[0],a[0].s[1],a[0].s[2],a[0].s[3]);。
C语言各章节练习题(含答案)

C) include case scanf D) while go pow
3. 下列四组选项中,均是不合法的用户标识符的选项是 。
4. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 B 。
A) 1 B) 2 C) 3 D) 4
5. 以下程序的运行结果是 B 。
main()
{ int a,b,d=241;
2. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。
A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出
C) 右对齐输出该字符串,左补空格 D) 输出错误信息
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);
} A) 6,1 B) 2,1 C) 6,0 D) 2,0
四、逻辑运算与判断选取控制
选择 1. 逻辑运算符两侧运算对象的数据类型 D 。
A) 只能是0和1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据
2. 判断char型变量ch是否为大写字母的正确表达式是 C 。
11.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 。
A) float B) char C) int D) double
12.设以下变量均为int类型,则值不等于7的表达式是 。
明解C语言入门篇第十章答案

明解C语⾔⼊门篇第⼗章答案练习10-1#include <stdio.h>void adjust_point(int*n) {if (*n > 100)*n = 100;if (*n < 0)*n = 0;}int main() {int x;printf("请输⼊⼀个数:");scanf("%d", &x);adjust_point(&x);printf("修改后的值是%d",x);}练习10-2void decrement_date(int* y, int* m, int* d) {*d -= 1;if (*d == 0) {*m -= 1;if (*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 10 || *m == 8 ||* m == 0) {*d = 31;}if (*m == 2) {*d = 28;if (*y % 4 == 0) {*d = 29;}}else*d = 30;if (*m == 0) {*m = 12;*y -= 1;}}}void increment_date(int* y, int* m, int* d) {*d += 1;if ((*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 10 || *m == 8 || *m == 12) && (*d == 32)) {*d = 1;*m += 1;}if ((*m == 4 || *m == 6 || *m == 9 || *m == 11 ) && (*d == 31)) {*d = 1;*m += 1;}if (*m == 2) {if (*d == 29&& ((*y & 4) != 0)) {*d = 1;}if (*d == 30 && ((*y & 4) == 0)) {*d = 1;*m += 1;}}if (*m == 13) {*y += 1;*m = 1;}}练习10-3#include<stdio.h>void swap(int* px, int*py) {int temp = *px;*px = *py;*py = temp;}void sort3(int*n1, int*n2, int*n3) {if (*n1 > *n2) {swap(n1, n2);}if (*n1 > * n3) {swap(n1, n3);}if (*n2 > * n3) {swap(n2, n3);}}int main(void) {int n1, n2, n3;printf("n1=");scanf("%d", &n1);printf("n2=");scanf("%d", &n2);printf("n3=");scanf("%d", &n3);putchar('\n');sort3(&n1, &n2, &n3);printf("%d,%d,%d", n1, n2, n3); }练习10-4#include <stdio.h>#define number 5void set_idx(int*v, int n) {int i = 0;for (i = 0; i < n; i++) {*(v + i) = i;}}int main() {int i;set_idx(x, number);for (i = 0; i < number; i++) {printf("x[%d]=%d", i,x[i] );putchar('\n');}}练习10-5会报错数组中元素会溢出,因为直接从v【2】开始赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
带答案C语言2-10章作业C语言习题集专业班级学号姓名第2章运算符与表达式一、选择题1.若有定义:int a=2,b=3 ; float x=,y=; 则下面表达式的值为(C)。
(float)(a+b)/2+(int)x% (int)yA) B)35 C) D)2.若有定义:int x=3 ,y=2; float a= ,b=; 则下面表达式的值为( B )。
(x+y)%2+(int)a/(int)bA) B)1 C) D)23.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。
x%=(n%=2)A)0 B)1 C)2 D)34.设有 int x=11; 则表达式 (x++*1/3)的值是( A )。
A)3 B)4 C)11 D)125.下列程序的输出结果是( C )。
#include <>main( ){ double d=; int x,y;x=; y=(x+/;printf("%d\n", d*y);}A)3 B)3.2 C)0 D)6.下列程序执行后的输出结果是(小数点后只写一位)( A )。
#include <>main( ){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f\n", i,l,f,d);}A)6 6 B)6 6C)6 6 D)6 67.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。
A)1 B)2 C) D)8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。
A)i=int(a) B)++i; C)a=a++=5; D)a=int(i);9.若执行以下程序段后,c3的值为( A )。
int c1=1,c2=2,c3;c3=c2*c1;A)0 B)0.5 C)1 D)210.如下程序的运行结果是( D )。
#include <>main( ){ int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}A)3 4 B)4 2 C)4 3 D)3 311.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。
A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 && a<=0D)a>=10||a<=012.设x,y,t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( C )。
A)不定值B)4 C)3 D)113.以下程序的输出结果是( D )。
#include <>main( ){ int a=3;printf("%d\n",(a+=a-=a*a));}A)-6 B)12 C)0 D)-1214.设 a,b,c,d,m,n均为 int型变量,且 a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n 的值为( C )。
A)0 B)1 C)2 D)315.在C语言中,如果下面的变量都是int类型,则输出的结果是( A )。
sum=pad=5; pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)4二、填空题1.若a,b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后,a值为__6____,b值为__4____,c值为__2____。
2.若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a 后a的值为___-60___。
3.若a是int型变量,则执行表达式a=25/3%3后a的值为___2___。
4.若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为__10____,n的值为___6___。
5.表达式8/4*(int)(int)*+)值的数据类型为__int型___。
6.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为__26____。
7.若x和a均是int型变量,则执行表达式x=(a=4,6*2)后x的值为__12__,执行表达式(x=a=4,6*2)后x的值为__4___。
8.若有以下定义int m=5,y=2;,则执行表达式y+=y-=m*=y后y 的值是__-16____。
9.已知int y;float x=-3;,执行语句y=x%2;后,变量y的值为__语句本身是错误的_错误的赋值__。
10.若int w=1,x=2,y=3,z=4;则条件表达式w>xw:y<zy:z的结果为__3____。
< p="">11.以下程序的输出结果是__10 9____。
#include <>main( ){ int x=10,y=10;printf("%d %d\n",x--,--y);}12.表达式*(1/2)的值为。
第3章基本语句一、选择题1.下面程序的输出结果是( B )。
#include <>main( ){ int x=5,y=3;printf("%d\n",y=x/y);}A)0 B)1 C)3 D)不确定的值2.若变量已正确定义,下面程序段的输出结果是( A )。
x=; printf("%f\n",(int)(x*1000+05)/(float)1000);A) B)输出格式说明与输出项不匹配,输出无定值C) D)3.以下程序的输出结果是( D )。
#include <>main( ){ int a=4; float b=9;printf("a=%%d,b=%%f\n",a,b);}A)a=4,b= B)a=%4,b=%9.000000 C)a=%%d,b=%%f D)a=%d,b=%f4.下面语句:printf("|%8.5f|\n",; 的输出结果是( C )。
A)|| B)|| C)|| D)||5.( D )是不正确的C语言赋值语句。
A)x=1,y=2; B)x++; C)x=y=5; D)y=int(x);6.与数学公式|cos(x)|等价的C语言表达式是( D ),假定其中的x 的单位是度数且不考虑π值的精度。
A)sqrt(cos(x)) B)sqrt(abs(cos(x*180)))C)sqrt(abs(cos(x*(/180))) D)sqrt(fabs(cos(x*180)))7.下面的程序( D )。
#include <>main( ){ int x=3,y=0,z=0;if(x=y+z)printf("* * * *");else printf("# # # #");}A)有语法错误不能通过编译B)输出* * * *C)可以通过编译,但是不能通过连接,因而不能运行 D)输出# # # #8.执行下面程序中的输出语句后,a的值是(C )。
#include <>main( ){ int a;printf("%d\n",(a=3*5,a*4,a+5));}A)65 B)20 C)15 D)109.若执行下面的程序时,从键盘上输入3和4,则输出结果是(B )。
#include <>main( ){ int a,b,s;scanf("%d%d",&a,&b);s=aif(a< p="">s=s*s;printf("%d\n",s);}A)14 B)16 C)18 D)2010.以下程序不用第三个变量,实现将两个数进行对调的操作。
请填空( B )。
#include <>main( ){int a,b;scanf("%d%d",&a,&b);printf("a=%d b=%d",a,b);a=a+b;b=a-b;a=;printf("a=%d b=%d\n",a,b);}A)a+b B)a-b C)b*a D)a/b11.执行下列程序的结果是( B )。
#include <>main( ){ float x=3,y;y=++x * x++;printf("%f\n",y);}A) B)16.000000 C) D)程序有错误12. 执行下列程序时输入1234567,程序的运行结果为( B )。
#include <>main( ){ int x,y;scanf("%2d%2ld",&x,&y); printf("%d\n",x+y);}A)17 B)46 C)15 D)913.下述程序的输出结果是( A )。
#include <>main( ){ printf("%f",+1*7%2/4);}A) B)2.750000 C) D)14. 下属程序的输出结果是( D )。
#include <>main( ){ float a; a=1/0;printf("%g",a);}A)+00 B)0.0 C) D)015.设x,y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y和z的值是 ( A )。
A)x=10,y=15,z=10 B) x=10,y=10,z=10C) x=10,y=10,z=15 D) x=10,y=5,z=10二、填空题1.下面程序的输出是__-200,25i=-200,j=25____。
i=-200j=25#include <>main( ){ int i=-200,j=25;printf("%d,%d",i,j);printf("i=%d,j=%d\n",i,j);printf("i=%d\n j=%d\n",i,j);}2. 以下程序的输出结果是__156, 156, 234, 9c, 156____。
#include <>main( ){ int a=0234;printf("%3d,%6d,%6o,%6x,%6u\n",a,a,a,a,a);}3.以下程序的输出结果是, , 。