搜档网
当前位置:搜档网 › C语言程序设计答案(黄保和编)第10章

C语言程序设计答案(黄保和编)第10章

C语言程序设计答案(黄保和编)第10章
C语言程序设计答案(黄保和编)第10章

C语言程序设计答案(黄保和编)第10章

厦门大学本科生公共课《C程序设计基础》教材习题答案第10章指针

一、选择题

1. 设已定义“int a, * p”,下列赋值表达式中正确的是:C)p=&a

2. 设已定义“int x,*p=&x;”,则下列表达式中错误的是:B)&*x

3. 若已定义“int a=1 ,*b=&a;”,则“printf;”的输出结果为: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

6. 函数“int fun{char * y=x; while(*y)y++;return(y-x); }”的功能是A)求字符串的长度。

7. 运行一下程序,输出结果为:B)5 6

int fun (int a,int *b) {

a++;++; return a+*b; }

void main {int x=1,y=2;

Printf(“%d”,fun(x,&y)); Printf(“%d”,fun(x,&y)); }

8. 运行以下程序,输出结果为:C)58

#include 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)4

11. 设已定义“int x[4][10],*p=x[0];”,则下列表达式中的值为整形的是B)* 12. 设已定义“char s=”ABCD”;”,”printf(“%s”,s+1)”的值为C)BCD

第1页/共7页

厦门大学本科生公共课《C程序设计基础》教材习题答案第10章指针

13. 设已定义“char str=”abcd”,*ptr=str;”,则*的值为B)0

14. 下面对字符串变量的初始化或赋值操作中,错误的是C)char a[10];a=”OK”; 15. 设已定义“char *ps[2]={“abc”,”1234”};”,则以下叙述中错误的是A)ps为指针变

量,它指向一个长度为2的字符串数组

16. 设已定义“struct {int a,b;} s,*ps=&s;”,则错

误的结构体成员引用是C)* 17. 设已有以下定义,则表达

式的值为2的是A)k=++p->data

struct st { int data; st *link;

} a[3]={1,a+1,3,a+2,5,0},*p=a; 二、编程题

1. 输入3个字符串,输出其中最大的字符串

#include #include #define str_count 3 #define str_length 100

int main(int argc, char *argv) {

char a[str_count][str_length],*p; printf(\请

输入3个字符串:\ int i;

for(i=0;i #include #define pi

第2页/共7页

厦门大学本科生公共课《C程序设计基础》教材习题

答案第10章指针

int main(int argc, char *argv) {

double r;

printf(\请输入半径:\ scanf(\ double c,s;

void circle(double r, double *,double *); circle(r,&c,&s);

printf(\圆的周长和半径分别为:%lf,%lf\ system(\

return 0; }

void circle(double r,double *c,double *s) { *c=2*pi*r; *s=pi*r*r; }

3. 定义函数max,函数参数为3个字符串,函数返回值

最大的字符串。

#include #include #define str_length 100 #define str_count 3

int main(int argc, char *argv) {

char a[str_count][str_length]; printf(\请输入

三个字符串:\\n\ int i;

for(i=0;i #include

int main(int argc, char *argv) {

char *s=\ char *o;

char * str_copy_self(char *s); o=str_copy_self(s); printf(\

system(\ return 0; }

char * str_copy_self(char *s) { int str_length=strlen(s); char *o=(char *)malloc((str_length+1)*sizeof(char)); int i; for(i=0;i #include

int main(int argc, char *argv) {

double arr={1,2,3,4,5,6,7,8,9,10}; double

ave(double arr,int arr_len);

第4页/共7页

厦门大学本科生公共课《C程序设计基础》教材习题答案第10章指针

printf(\ system(\ return 0; }

double ave(double arr,int arr_len) { int i; double res=0; for(i=0;i

6. 定义一个函数,删除字符串中第k个字符开始的m 个字符,例如删除字符串

abcde第2个字符开始的3个字符,则删除后结果为ae;又如删除字符串abcde第4个字符开始的5个字符,则删除后结果为abc; #include #include

int main(int argc, char *argv) {

char str=\

void str_pruning(char * str,int begin_pos,int pruning_count); str_pruning(str,4,5); printf(\ system(\ return 0; }

void str_pruning(char * str,int begin_pos,int pruning_count) { int str_len=strlen(str); if(begin_pos>=str_len) { str[0]='\\0'; } else if((begin_pos-1+pruning_count)>=str_len)

{ str[begin_pos-1]='\\0'; }

第5页/共7页

厦门大学本科生公共课《C程序设计基础》教材习题

答案第10章指针

else { int i=0; while(1) {str[begin_pos+i-1]=str[begin_pos+pruning_count

+i-1];

if(str[begin_pos+pruning_count+i-1]=='\\0')

{ break; } i++; } } }

7. 在字符串中删除所有指定字符,使用子函数和字符

指针。 #include #include

int main(int argc, char *argv) {

char str=\

void char_punching(char * str, char l); char_punching(str,'e'); printf(\

system(\ return 0; }

void char_punching(char * str, char l) { int c=0; int str_len=strlen(str); int i; for(i=0;i

int main(int argc, char *argv) {

int a[3][3]={{1,2,333},{4,15,6},{7,8,9}}; int

x=3,y=3,i,j; int px=0,py=0; int *p,*p_max; p_max=a[0]; for(i=0;i

{ px=i; py=j; p_max=p; } p++; } } printf(\ system(\ return 0; }

第7页/共7页

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

第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 class cylinder { public: cylinder(float r,float h) { radius=r; height=h; } float Volume(); private: float radius; float height;

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言程序设计第11.12章测试答案

第一题、单项选择题(每题1分,5道题共5分) 1、设有定义“int a=3,b,*p=&a;”,则下列语句中,使b不为3的语句是: A、b=*&a; B、b=*p; C、b=a; D、b=*a; 2、在C语言中,关于文件存取方式,: A、只能顺序存取 B、只能随机存取(也称直接存取) C、可以顺序存取,也可以随机存取 D、只能从文件开头存取 3、fp 是文件指针,str 是一个字符串,n是一个整数,向文件中输出数据的正确格式是: A、fprintf("%s,%d\n",str,n,fp); B、fprintf(fp,"%s,%d\n",str,n); C、fprintf("fp %s,%d\n",str,n); D、fprintf("%s,%d fp\n",str,n); 4、若有int a=3,*pa; float f=4.5,*pf=&f;,则下列表述中,错误的是 ( )。 A、pa=&a B、pa=&f C、pf=&f D、*pf=a+f 5、若有int a[10],*p=a;,则( )。 A、p++可以使p指向下一个字节 B、p+=2 相当于p=sizeof(a)/10 C、p++可以使p指向下一个元素,即a[1]的首地址 D、p+=2可以使p指向下一个元素,即a[1]的首地址 第二题、多项选择题(每题2分,5道题共10分) 1、C语言中的文件分类是: A、文本文件和数据文件 B、文本文件和二进制文件 C、数据文件和二进制文件 D、顺序文件和随机文件 2、以读写方式打开一个二进制文件fil2,fopen函数的正确的调用方式是: A、FILE *FP; FP=fopen("fil2","r"); B、FILE *FP; FP=fopen("fil2","rb");

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

《C语言程序设计》第10章在线测试

A B C D 、下列描述中,合法的数组定义是: A B C D 程序的执行是从 A B C D 、下列语句中,正确的语句定义是 A B C D int a[3][4]; A B C D

2、若形参是简单变量形式,则对应的实参可以是: A、常量 B、数组名 C、简单变量 D、数组元素 3、下列描述中,合法的数组定义是( )。 A、char a[]={“String”}; B、char a[5]={0,1,2,3,4};这组题特BT,答案明明是D,却ABCD全要选才算正确,让我测了N回! C、char a[]=“String”; D、char a[]={0,1,2,3,4,5}; 4、下列描述中,不能正确给字符数组str定义和赋值的是( )。 A、char str[]={"abcdefghijklmn "}; B、char str[10];str={" abcdefghijklmn "}; C、char str[10]={"abcdefghijklmn"}; D、char str[10];strcpy(str,"abcdefghijklmn"); 5、如果想使下列数组a中5个元素的值全部为0,可以写成( )。 A、int a[5]={0:5}; B、int a[5]={0}; C、int a[5]={5:0}; D、int a[5]={0,0,0,0,0}; E、int a[5]=0; 第三题、判断题(每题1分,5道题共5分) 1、若有func((v1,v2),(v3,v4,v5),v6)调用,说明函数func有6个形参。 正确错误 2、在说明一个结构体变量时系统分配给它的存储空间是该结构体中所有成员所需存储空间的总和。

C语言程序设计课后答案罗朝盛

第1章习题参考答案 1. (略) 2 3填空题 (1)main (2)函数的首部、函数体 (3){、} (4)main、main (5)语句、分号(;) 4 5选择题 (1) #include <> main() { int a, b, s; float t; printf("Enter A,B=?\n"); scanf("%d%d", &a, &b); s=a+b; t=a*b; printf("s=%d, t=%f\n", s, t); } (2) #include <> main() { printf("=================\n"); printf(" Hello! \n"); printf(" How do you do \n"); printf("=================\n"); } (3) #include <> main() {

int r, h; float v; printf("Enter R, H=?\n"); scanf("%d%d", &r, &h); v=*r*r*h; printf("v=%f\n",v); } 第2章 习题参考答案 一.(略) 二.填空题 (1) ab e d c b b a 2+ + + (2) (3) 16 (4) 10 (5) 16、16、11 (6) 4、10、6 (7) 18、3、3 (8) sin(65*180)+2*( +exp(y))/(x-y) (9) 25、25 (10) 27 (11) 4 (12) 0 四、编程题 1. #include <> main() { int x, a, b, c; printf("Enter a intger number x=?\n"); scanf("%d",&x); a=x /100; b=x%100/10; c=x%10;

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

《C语言程序设计》课后习题答案(第四版)

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int 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 #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

第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 class cylinder { public: cylinder(float r,float h) { radius=r; height=h; } float Volume(); private: float radius; float height;

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

C语言程序设计第14章在线测试

A B C D 、以下程序:5) printf( A B C D 、y均为则语句 printf( A B C D 、在函数中定义变量时,若省略存储类型符,系统默认存储类别为 A B C D 、下列选项中关于。 A r egister B 量 C r egister D register

B、p+=2,*++p C、p+=2,*p++ D、p+=2,++*p 2、以下叙述中,错误的叙述是: A、函数的形参都属于全局变量 B、全局变量的作用域不比局部变量的作用域范围大 C、静态(static)类别变量的生存期贯穿整个程序的运行期间 D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值 3、下列选项中关于外部变量的作用域,正确的是( )。 A、外部变量的作用域是所在的源文件 B、外部变量的作用域是整个源程序 C、可以通过extern,将一些外部变量的作用域扩展到多个源文件 D、外部变量若定义为静态的,其他源文件不能使用该外部变量 4、下列选项中关于外部变量,正确的是( )。 A、main函数是主函数,不在main函数内部定义的变量都是外部变量 B、外部变量必须定义在源程序的开始处 C、外部变量必须定义在所有函数的外面 D、定义外部变量时,可以进行初始化 5、下列选项中关于变量的生存期,不正确的描述是( )。 A、auto型变量是静态存储的,其生存期等同于程序的运行期。 B、static变量是动态存储的,函数调用结束时,static变量所占用的内存单 元被释放 C、register变量都是动态存储的 D、外部变量都是静态存储的 第三题、判断题(每题1分,5道题共5分)

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

《C语言程序设计》第10章

《C语言程序设计》第10章在线测试 A B D C 函数体 A B C D int a[][3] A B C D int a[3][4]; A B C D int a[][3]的第1维的长度为 A B C D

D、printf("%s",c[3].name[2]); 2、下列描述中,合法的数组定义是: A、char a[5]={’A’,’B’,’C’,’D’,’E’}; B、char a[]={’A’,’B’,’C’,’D’,’E’}; C、char a[]="ABCDE"; D、char a[]={65,66,67,68,69,70}; 3、若形参是简单变量形式,则对应的实参可以是: A、常量 B、数组名 C、简单变量 D、数组元素 4、下列关于对二维数组a进行初始化的操作中,正确的写法是( )。 A、int a[][3]={3,2,1,1,2,3}; B、int a[][]={{3,2,1},{1,2,3}}; C、int a[][3]={{3,2,1},{1,2,3}}; D、int a[2][3]={{3,2,1},{1,2,3}}; 5、在定义int a[2][3];之后,对数组a的引用错误的是( )。 A、a(1,2) B、a[1,3] C、a[2][0] D、a[1>2][!1] 第三题、判断题(每题1分,5道题共5分) 1、在说明一个结构体变量时系统分配给它的存储空间是该结构体中所有成员所需存储空间的总和。 正确错误 2、数组必须先定义后使用。

正确错误、可以在定义数组时对数组元素赋予初值。 正确错误、可以在定义数组时只给一部分数组元素赋值。 正确错误、对数组元素赋予的初值可以依次放在一对圆括号内。 正确错误

C语言程序设计1-4、12章习题解答

第1章C语言程序设计概述 1.1一个C程序的执行是从 A 。 A.从main()函数开始,直到main()函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D.main()函数开始,直到最后一个函数结束 1.2在C程序中,main()的位置 C 。 A.必须作为第一个函数B.必须作为最后一个函数 C.可以任意D.必须放在它所调用的函数之后 1.3C语言源程序的基本单位是 B 。 A.过程 B.函数 C.子程序 D.标识符 1.4一个C源程序有且仅有一个一个函数和__零个或多个_____个其他函数。 1.5C语言源程序的语句分隔符是__分号___。 1.6C语言开发的四个步骤是_编辑源程序→对源程序进行编译→与库函数连接→运行 目标程序__ 。 1.7C语言有哪些主要特点? C主要特点有: 1.C语言简洁、紧凑,使用方便、灵活; 2.运算符丰富; 3.数据类型丰富; 4.C语言是结构化语言; 5.语法限制不太严格,程序设计自由度大; 6.可直接与机器硬件打交道,直接访问内存地址; 7.生成的目标代码质量高,程序执行效率高; 8.C语言适用范围广,可移植性好。 1.8简述C编译和运行的基本方法。 略。 1.9常用的集成开发工具有哪些?各有什么特点? 略。 1.10编写一个程序,在屏幕上输出以下内容: *************************** * You are welcome! * *************************** #include void main( ) /*主函数 */ { /*函数体开始*/ printf ("***************************\n"); /*输出语句*/ printf ("* You are welcome! *\n"); printf ("***************************\n"); } 1.11 编写一个C程序,输入a、b、c 3个值,输出其中最大者。

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

相关主题