写出下列程序运行结果
c语言课后答案

《C程序设计》课外作业及参考答案说明:(1)章节顺序按照PowerPoint电子教案;(2)教材上的作业注明了章节和题号;(3)所用教材是《C程序设计(第二版)》谭浩强清华大学出版社;第一章C语言概述1.1 简答题:写出C语言的主要特点(教材习题1.1)。
1.2填空题:1.C语言与操作系统并称“栾生兄弟”。
2.C语言俗称为形式。
3.C源程序文件经过处理后产生目标文件,目标文件经处理后生成可执行文件。
1.3 单项选择题1. 以下说法中正确的是。
(A)C语言程序总是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main函数中定义(C)C语言程序总是main函数开始(D)C语言程序中的main函数必须放在程序的开始部分2. 以下正确的C标识符是。
(A)_125 (B)C# (C)C++ (D)A$1.4 多项选择题1. 以下关于C语言的说法中,错误的是。
(A)俗称为“低级语言的高级形式”,因此功能简单(B)不是结构化程序设计语言(C)可能直接访问内存(D)语法限制不严2. 以下标识符属于C语言关键字的有。
(A)integer (B)else (C)include (D)while第二章C语言基本数据类型、变量、常量与表达式2.1简答题1.求下面算术表达式的值。
(教材习题3.9)a)x+a%3*(int)(x+y)%2/4设x=2.5, a=7, y=4.7b)(float)(a+b)/2+(int)x%(int)y设a=2, b=3, x=3.5, y=2.52.写出下面程序的运行结果。
(教材习题3.10)main(){ int i, j, m, n;i=8; j=10; m=++i; n=j++;printf("%d,%d,%d,%d", i, j, m, n);}3.写出下面表达式运算后a的值,设原来a=12。
设a和n已定义为整型变量。
(教材习题3.12)a)a+=a b) a-=2 c) a*=2+3b)d) a/=a+a e) a%=(n%=2), n的值等于5 f) a+=a-=a*=a4.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?2.2 填空题1. 写出下面各逻辑表达式的值。
大学C C++语言程序设计课后习题答案1-8(电子工业出版社 阳小华 马淑萍

习题答案习题 1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。
算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。
通俗地讲,就是计算机解题的步骤。
算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。
2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。
一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。
首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。
一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
“面向对象”是一种以事物为中心的编程思想。
面向对象的方法主要是将事物对象化,对象包括属性与行为。
面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。
编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。
(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。
(3)数据类型丰富。
C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。
c语言习题

二.填空题 1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 _1B__,其数值范围为 0~127 ;一个int数据在内存中所占字节数为 2B ,其数值范围为-32768~32767 ;一个long数据在内存中所占字节 数为 4B ,其数值范围为 -2147483648~2147483647 ;一个float 数据在内存中所占字节数为 4B ,其数值范围为 -3.4*1038~-3.4*10-38, 3.4*10-38~3.4*1038 。 2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且 第一个字符必须为 字母 。 3.字符常量使用一对 单引号 界定单个字符,而字符串常量 使用一对 双引号 来界定若干个字符的序列。
3.函数体一般包括( 变量定义序列 ) 和( 执行语句序列
二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结 束。 【 √ 】 2.main函数必须写在一个C程序的最前面。 【 × 】 3.一个C程序可以包含若干的函数。【 √ 】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运 行不起任何作用。但是可以增加程序的可读性。【 √ 】 5.C程序的注释只能是一行。【 × 】 6.C程序的注释不能是中文文字信息。【 × 】 8.可以使用Turbo C来编译和连接一个C程序。【 √ 】 9.可以使用Turbo C来运行一个C程序。【√ 】 10.可以使用Turbo C来实时调试(即动态调试)一个C程序。【 √ 】 三.简答题 1. 写出一个C程序的基本结构。 预处理命令序列 void main() { 变量定义序列 执行语句序列 } 2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。 1)编辑源程序,以扩展名.c存盘。
c语言程序的运行结果

参考答案: 2 1
例5:写出下列程序的运行结果: #include <stdio.h> main() {int k=4,m=1,p; p=func(k,m); printf(“%d, ”p); p=func(k,m); printf(“%d\n”p); }
参考答案: 8, 17
func (int a,int b) {static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }
输入 4↙
例9:写出下列程序的运行结果: #include <stdio.h> #define SUB(X,Y) (X)*Y main() {int a=3,b=4; printf(“%d\n”,SUB(a++,b++)); }
参考答案: 12
例10:写出下列程序的运行结果: #include <stdio.h> #include <string.h> void fun(char *w,int m) {char s,*p1,*p2; p1=w;p2=w+m-1; while(p1<p2) {s=*p1++;*p1=*p2--;*p2=s;} } main() {char a[]=“ABCDEFG”; fun(a,strlen(a例4:写出下列程序的运行结果: #include <stdio.h> main() {int x=1,y=0,=0,b=0; switch(x) {case 1: switch(y) {case 0: a++;break case 1: b++;break; } case 2: a++;b++;break; printf(“%d %d\n”,a,b); }
写出下列程序的运行结果

写出下列程序的运行结果(1)#include<iostream.h>struct ab{char a[5];float b;};void main(){ab x={"Li",89.6};cout<<x.a<<'\t'<<x.b<<endl;}(2) #include<iostream.h>struct ab{char a ;float b;};void f(ab &y){ y.a='W';y.b=90.5;}void main(){ab x={'L',89.5};f(x);cout<<x.a<<'\t'<<x.b<<endl;}(3)#include<iostream.h>#include<string.h>class A {char *a;public:A(char *s) {a=new char[strlen(s)+1];strcpy(a,s);cout<<a<<endl; }~A() { delete []a;cout<<"Destructor!"<<endl; } };void main(){ A x("Li Ming");A y( "Zhang");}(4) #include<iostream.h>int n=0;class A {int a;public:A(int aa=0) {a=aa; n++;}~A() {n--;cout<<n<<endl;}void show() {cout<<n<<endl;} };void main(){ A a; a.show();{ A x[2];x[1].show();}a.show();}(5) #include <iostream.h>class A{ int a,b;public:A( ){a=b=0;cout<<a<<' '<<b<<endl;}A(int aa,int bb){a=aa;b=bb; cout<<a<<' '<<b<<endl;} };void main(){ A x,y(10,5);}(6 )#include<iostream.h>class BB{ int a,b;public:BB(int i=0,int j=1) { a=i; b=j;}BB operator +(BB c){ BB d;d.a=a + c.a*10; d.b=b+c.b*10;return d;}BB operator -(BB c){ BB d;d.a=a * c.a; d.b=b*c.b;return d;}void show(){cout<<'('<<a<<','<<b<<')'<<endl;}};void main(){ BB x(2,6) , y(5, 5),z;z=x+y; z.show();z=x-y; z.show();}(7) #include<iostream.h>class EX{ intx,y;public:EX(int i=0,int j=1) { x=i; y=j;}EX operator * (EX z){ EX d;d.x=x *z.x; d.y=y*z.y;return d;}EX operator /(EX c){ EX d;d.x=x-c.x; d.y=y-c.y;return d;}void show(){cout<<'('<<a<<','<<b<<')'<<endl;}};void main(){ EX a(30,10) , b(2,5),c;c=a*b;c.show();c=a/b;c.show();}(8)#include <iostream.h>class Point{int x,y;public:Point(){x=1;y=1;}~Point(){cout<<"Point "<<x<<','<<y<<" is deleted."<<endl; } };void main(){Point a;}(9)#include <iostream.h>#include <conio.h>int count=0;class Point{ int x,y;public:Point(){ x=1; y=1;count++;}~Point(){count--;}};void display(){cout <<"There are "<<count<<"points. "<<endl; }void main(){ Point a;display();{ Point b[5]; display();}display();}(10)#include <iostream.h>class EX1{ int a,b;public:EX1 ( ){a=b=1; cout<<a<<' '<<b<<endl;}EX1 (int aa,int bb=100){a=aa;b=bb; cout<<a<<' '<<b<<endl;} };void main(){EX1 x,y(10,2);EX1z(200); }(11) #include <iostream.h>#include <conio.h>class Csample{ int i;public:Csample(){ cout <<"constructor 1 " <<endl; i=0; }Csample(int val){ cout <<"Constructor 2 "<<endl;i=val;}void Display(){cout<<"i="<<i<<endl;}~Csample(){cout<<"Destructor"<<endl; }};void main(){Csample a,b(10);a.Display();b.Display();}(12) #include<iostream.h>class Csample{private:int i;static int k;public:Csample( );void Display( );};int Csample::k=0;Csample::Csample( ){i=0;k++;}void Csample::Display( ){cout<<"i="<<i<<",k="<<k<<endl;}void main( ){Csample a,b;a.Display( );b.Display( );}(13) #include<iostream.h>#include<string.h>struct A{char c [20] ; float f; };void f(A &t){strcpy( t.c, ”MALIANG”);t.f=70.5;}void main(){ A z={“LIMING”,77.5};f(z);cout<<z.c<<'\t'<<z.f<<endl;}(14)。
C语言习题知识5

void main()
{
int x;
scanf("%d",&x);
if(x--<5) printf("%d\n",x);
else printf("%d\n",x++);
} 程序运行后,如果从键盘上输入 5,则输出结果是( )
A) 3
B) 4
C) 5
D) 6
(12)若执行以下程序时从键盘上输入 9,则输出结果是( )
scanf("%f,%f",&a,&b);
if (a>b)
{
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f",a,b);
}
运行后输入-3.5,4.8,正确的输出结果是( )
A) -4.80 , -3.50
B) -3.50 , 4.80
C) 4.8, -3.5
D) 4.80, -3.50
A) 11
B) 10
C) 9
D) 8
#include <stdio.h>
void main()
{
int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
} (13)若 a、b、c1、c2、x、y、均是整型变量,正确的 switch 语句是( )
printf("%5.2f\n",z);
}
(14)如果 int x=10,执行下面程序后,变量 x 的结果为 13 。
C语言指针练习题解析

一、知识点1.掌握指针、地址、指针类型、空指针(NULL)等概念;2.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;3.掌握指针与数组、函数、字符串等的联系;4.掌握动态空间操作(new,delete);5.掌握引用参数的使用。
二、例题分析与解答例题1:若有以下定义,则说法错误的是( )。
int a=100,*p=&a ;A.声明变量p,其中*表示p是一个指针变量B.变量p经初始化,获得变量a的地址C.变量p只可以指向一个整形变量D.变量p的值为100答案:D分析:有指针变量定义可知A、C说法是正确的,故不能选。
在语句中&p=a,表示指针变量取得变量a地址,B说法也正确,也不能选择。
D中不能说变量p的值为100,应该*p的值为100,所以选择D。
例题2:若有以下定义,则赋值正确的是( )。
int a ,b , *p;float c, *q;A.p=&c B.q=p C.p=NULL D.q=new int答案:C分析:指针变量使用规定,不同类型的指针变量不能赋值,也不能取得普通变量地址,故A、B不正确,不能选择。
因为q是float类型指针变量,不能申请int 类型地址,D不正确,也不能选择。
因为任何类型的指针变量都能取得NULL指针,所以C正确。
例题3:如果x是整型变量,则合法的形式是( )。
A.&(x+5) B.*x C.&*x D.*&x答案:D分析:因为C++语言表达式没有地址,A不正确。
C++语言普通变量不能用*运算,因此B和C也不正确。
&x 表示变量x的地址,*&x是x 地址的值,所以D正确。
例题4:若要建立如下关系,错误的语句组是( )。
span style='mso-ignore:vglayout; ;z-index:1;left:0px;margin-left:144px;margin-top:1px;width:256px;height:38px'A. B. C. D.int *p=&x, x; int x, p=&x; int *p, x=10; int *p, x;*p=10; *p=10; *p=&x; p=&x ; x=10;答案:A分析:在变量类型说明语句中 *表示变量是指针变量,在其他语句中,*称为指针运算,用于访问指针所指向的对象的值,&称为取地址运算,用来得到一个对象的地址。
C++语言基础教程习题参考解答

清华大学出版社出版普通高等院校计算机专业(本科)实用教程系列之一《C++语言基础教程》全部练习题参考解答第一章 C++语言概述1.2 填空题1.#2. ; { }3. 空格制表回车换行4. 系统用户5. 程序6. 函数头函数体7. main8. 函数原型9. 原型10. 复合语句11. .h .cpp12. 严重错误警告错误13. void14. void15. int 016. n17. 下一行18. 空白符1.3 写出下列程序运行结果,此题又作为上机实验题1. x+y=11,x*y=302. cube(3)=27cube(5)=125cube(8)=5123. averageValue:3averageValue:44. 请输入三个整数:10 5 9 (假定输入的三个整数为10,5,9)最大值: 10最小值: 5第二章数据类型和表达式2.2 填空题1. 4,1,1,4,82. short, int, long4. 46, 123, 985. 107, 10, 92, 42 1026. 157. 符号常量,整数,int8. 3.4E2, 5.27E69. int, int, double, double, float10. x, 1511. 6, 6012. 26, 2513. 4, 114. 256, 2215. x, x16. 0, 117. 2018. 519. 9, 21620. 0, 1921. (1+x)*sin(48*3.14159/180), a*pow(x,b)*exp(x+1)2.3 指出下列各表达式值的类型1. int2. double3. float4. long int5. int6. int7. int8. int9. double 10. double 11. double 12. int13. int 14. double 15. char 16. int17. bool 18. int 19. short 20. bool21. unsigned int 22. double 23. int 24. char25. int 26. double 27. double 28. double29. double 30. int 31. int 32. double33. double 34. double 35. bool 36. bool37. bool 38. bool 39. bool 40. bool2.4 已知a=20, x=4.7, r=’a’, 试求出下列每个表达式的值(各表达式互不影响)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
写出下列程序运行结果:
理解PRINT
A=5:B=3
PRINT A,B,A+B
END
X=9:Y=7
PRINT "X=";X,"Y=";Y
PRINT "X+Y=";X;"+";Y;"=";X+Y END
A=4:B=7
PRINT "C=";A+B*2-A/2
END
理解变量(包括字符串变量)
X=6:Y=0
PRINT X-2,
X=X+7
PRINT “Y=”;X+2
PRINT Y
END
M=12:N=6
X=M/N:Y=M+N
PRINT X,Y
X=X+N:Y=M+X
PRINT X,Y
END
A=7:B=4
A=A+B:B=A-B:A=A-B
PRINT “A=”;A,”B=”;B
END A$=”123”:B$=”321”
C$=A$+B$
PRINT A$;”+”;B$;”=”;C$
END
理解INPUT
INPUT X,Y
C=X*Y
PRINT “C=”;C
END
? 4, 8
INPUT “A,B=”;A,B
D=A+A+B+B
PRINT D
END
A,B=? 2,3
绘图语句
SCREEN 12
LINE (100,100)-(400,300),2,B LINE (100,100)-(400,300),2 END
SCREEN 12
LINE (100,100)-(400,100) LINE –(100,300)
LINE –(100,100)
END
SCREEN 12
CIRCLE (200,200),100
LINE (200,100)-(200,300) LINE (200,200),(300,200)
END
简单函数
A=12.34: B=-5.34: C=0
D=A*A: E=B*B
PRINT ABS(A),ABS(B),ABS(C)
PRINT FIX(A),FIX(B),FIX(C)
PRINT SQR(D),SQR(E)
END
A=3.14: B=A^2: C=-A
D=FIX(A):E=ABS(C):F=SQR(B)
PRINT ABS(D),E,F
END
子字符串函数
A$=”123456789”
L$=LEFT$(A$,4)+MID$(A$,3,3)+RIGHT$(A$,2) PRINT L$
END
A$=”I am a student.”
B$=”I like sing.”
C$=”I often use computer.”
D$=LEFT$(A$,2)+MID$(B$,3,5)+RIGHT$(C$,9) PRINT “D$=”;D$
END
读数置数语句
READ A,B,C
PRINT A,B+C
DATA 3,2,5
END
READ X,Y
PRINT “X=”;X,”Y=”;Y
READ X
PRINT X,Y DATA 3,2,5
END
M=0 : READ A : M=M+A READ B : M=M+B
PRINT M
DATA 21,34,26
END
理解循环语句
FOR I=1 TO 10 STEP 3
PRINT “I=”;I,”I^2=”;I*I NEXT I
END
M=0
FOR A=2 TO 10 STEP 3
M=M+A
NEXT A
PRINT “M=”;M, “P=”;M/3 END
双重循环
FOR A=1 TO 3
FOR B=4 TO 5
PRINT A,B
NEXT B
NEXT A
END
FOR X=6 TO 10 STEP 2
FOR Y=5 TO 3 STEP –2
PRINT X-Y
NEXT Y
NEXT X
掌握IF选择结构语句
INPUT X
IF X>=10 THEN Y=0.5*X ELSE Y=0.4*X PRINT “X=”;X, “Y=”;Y
END
第一次运行:
?12
第二次运行:
?8
A=5: B=6
INPUT C
IF C=A+B THEN
PRINT “RIGHT!”
ELSE
PRINT “WRONG!”
END IF
第一次运行:
?12
第二次运行:
?11
INPUT X
IF X<0 THEN X=-X
PRINT “X=”; X
END
? –12
READ X
FOR I=1 TO 5
READ H
IF H>X THEN X=H
NEXT I
PRINT “MAX=”; X
DATA 2,4,3,2,1,3
FOR I=1 TO 5
READ X, Y IF X>=70 AND Y>=70 THEN PRINT X,Y NEXT I
DATA 78,98,77,66,55,77,78,78,90,90 END
N=0
FOR I=1 TO 5
READ A,B
IF A>B THEN N=N+1
NEXT I
PRINT “N=”; N
DATA 78,98,77,66,55,77,78,78,95,90
子程序:
SUB FM
PRINT “WHO ARE YOU?”
END SUB
SUB ZCX1
PRINT “I am a good boy.”
END SUB
SUB ZCX2
PRINT “I am a good girl.”
END SUB
主程序:
CLS
CALL FM
CALL ZCX1
CALL ZCX2
END
此题的子程序与上一题一样:
主程序:
INPUT N
IF N=1 THEN CALL ZCX1
IF N=2 THEN CALL ZCX2
END
? 1
答案:
理解PRINT
5 3 8
X=9 Y=7
X+Y=9+7=16
C=16
理解变量(包括字符串变量)4 Y=15
2 18
8 20
A=4 B=7
123+321=123321
理解INPUT
C=32
10
绘图语句
简单函数12.34 5.34 0
12 -5 0 12.34 5.34
3 3.1
4 3.14
123434589
I like computer.
读数置数语句
3 7
X=3 Y=2
5 2
55
I=1 Y^2=1
I=4 Y^2=16
I=7 Y^2=49
I=10 Y^2=100
M=15 P=5
双重循环
1 4
1 5
2 4
2 5
3 4
3 5
1
3
3
5
5
7
掌握IF选择结构语句第一次运行:
X=12 Y=6
第二次运行:
X=8 Y=3.2
第一次运行:WRONG!
第二次运行:RIGHT!
X=12
MAX=4
78 98
78 78
90 90
N=2
WHO ARE YOU?
I am a good boy.
I am a good girl.
I am a good boy.。