C语言课后习题答案
C语言课后习题及答案
三、根据下列条件写一个 C/C++表达式。 1.a 和 b 中有一个大于 d:a>d||b>d 2.将 x、y 中较大的值送给 z:z=x>y?x : y 3.将直角坐标系中点(x,y)表示在第 3 象限内:x<0&&y<0 4.3 个数据 x、y、z 能组成三角形:x+y>z||y+z>z||x+z>y 5.将含有 3 位小数的实型变量 x 的值,四舍五入到百分位:(int)(x*100+0.5)/100. 6.d 是不大于 100 的偶数:d>0&&d<=100&&d%2==0 7.x、y 中至少有一个是 5 的倍数:x%5==0||y%5==0 8.对 n(>0)个人进行分班,每班 k(>0)个人,最后不足 k 人也编一个班,问要编几个班: n%k==0?n/k : n/k+1 四、编程题: 1 编程序求半径为 r、高为 h 的圆柱体的体积。 #include "iostream.h" void main() {float r,h,v; cin>>r>>h; v=3.1416*r*r*h; cout<<v; } 2.任意输入 3 个数据,输出它们的平均值和最小的一个数。 #include "iostream.h"
5.在 cout 命令中,使用 ( )格式控制符可以把一个数据以十六进制的形式输出。hex 6.在 C/C++中,头文件的扩展名一般为( ) 。.h 7.程序的错误一般分两种: ( )和( ) 。前者是编译器可以发现的,而后者编译器则无 法发现。语法错误和逻辑错误 8.在 Visual C++中调试程序时,可以使用快捷菜单中的 ( )命令来插入断点和清除断 点。Insert/Remove Breakpoint 9.C++源程序的扩展名为( ) 。.cpp 10. 在 Visual C++中, 浏览当前项目中的所有源程序文件应在工作区的 ( ) 选项卡。 Fileview 三、 简答题
C语言课后作业答案
}
else ch=ch;
printf("%c\n",ch);
}
3-5-2大写转化成小写或者小写变大写
#include <stdio.h>
void main()
{
char ch;
printf("请输入一个字符:");
scanf("%c",&ch);
ch=ch;
{
if(ch>='A'&&ch<='Z')ch=ch+32;
printf("a=%d,b=%d\n",a,b);
}
}
水仙花数1
#include <stdio.h>
void main()
{
int m,i,j,k,n=0;
for (m=100;m<=999;m++)
{
i=m/100;
j=m/10-i*10;
k=m%10;
if (m==i*i*i+j*j*j+k*k*k) n++,
switch(ch)
{
case '+':printf("%f+%f=%f\n",x,y,x+y);break;
case '-':printf("%f-%f=%f\n",x,y,x-y);break;
case '*':printf("%f*%f=%f\n",x,y,x*y);break;
case '/':printf("%f/%f=%f\n",x,y,x/y);break;
《C语言程序设计教程》(第三版)课后习题参考答案(精选5篇)[修改版]
第一篇:《C语言程序设计教程》(第三版)课后习题参考答案C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
C语言课后题答案【陈明晰 主编】
#include"stdio.h"
main()
{ float x,y;
scanf("%f",&x);
if(x<0.0) y=0.0;
else if((x<5.0)&&(x!=2.0))
y=1.0/(x+2.0);
else if(x<10.0) y=1.0/x;
else y=10.0;
printf("%f\n",y);
k=(a++<=0)&&(!(b--<=0));
printf("%d%d%d%\n",k,a,b);}
A.0 0 3B.0 1 2C.1 0 3D.1 1 2
8.为表示关系x≥y≥z,应使用C语言表达式( A )。
A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)
C.(x>=y>=z)D.(x>=y)&(y>=z)
8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0。
9.设整型变量x、y、z均为5,则:
①执行x-=y-z后,x的值为5。
②执行x%=y+z后,x的值为5。
10.数学式的C语言表达式为a/b*c)。
三、简答题
1.字符常量与字符串常量有什么区别?
2.对于Turbo C系统来说,char型变量与int型变量在内存中存储数据的区别是什么?
A.fB.e(E)C.g(G)D.x
10.若float num=123.456,以%+10.4d的格式输出,结果正确的是(B)
C语言课后习题的答案
(2)
#include "math.h"
int isPrime(int n)
{
int i,rtn=1;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
rtn=0;
break;
}
}
return rtn;
}
int main(int argc, char* argv[])
n++;
else if((c>='A' && c<='Z') || (c>='a' && c<='z'))
m++;
else
other++;
c=getchar();
}
printf("字母的个数:%d\n数字的个数:%d\n其他字符的个数:%d",m,n,other);
{
int max,min,n,i;
scanf("%d",&n);
max=min=n;
for(i=1;i<=9;i++)
{
scanf("%d",&n);
if(n>max)max=n;
if(n<min)min=n;
}
printf("最大数为:%d\n最小数为:%d\n",max,min);
x=1;
y=n/2+1;
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语言1_7章课后作业答案
C语言1-7章课后作业答案第一章 C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】请从以下的4个选项中选择一个正确答案。
(1)A (2)C (3)B (4)D(5)A (6)C【习题1-3】填空。
(1)英文字母、下划线、数字(2)函数(3) 函数头、函数体(4)独立(5);、#、/*…*/、{、}、 main、main【习题1-4】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。
101 int 3ip x_1 x+1 count 1234Xy x%y if while a.bc x&y _ _1_112 Abc name x break for x=y合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for合法的用户标识符有:x_1、count、Xy、Abc、name、x【习题1-5】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-6】上机运行本章的3个例题。
略【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第二章基本数据类型和运算符【习题2.1】上机编辑并调试本章所有例题。
C语言课后习题参考答案
C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。
它以其简洁、高效和可移植性而闻名。
C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。
问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。
它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。
它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。
例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。
它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。
它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。
C语言课后习题参考答案(前5章)
《C语言程序设计基础》书后习题参考答案(无编程题答案,红色为书上错误)第二章习题一、选择题。
1、在C语言中,要求参加运算的数必须是整数的运算符是()A)% B)/ C)!D)*2、若已定义x和y为double类型,则表达式“x=1.0,y=x+3/2”的值是()A)1 B)2 C)2.0 D) 2.53、若变量已正确定义并赋值,符合C语言语法的表达式是()A)a=a+7; B) a=7+b+c,a++ C) int (12.3/4 ) D) a=a+7=c+b4、若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为()A)1.0 B)1 C) 2.0 D)25、若x和n均是int型变量,且x的初值为12,n的初值为5 ,则执行表达式x%=(n%=2) 后x 的值为()A) 0 B)1 C) 2 D)36、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()A)7 B)8 C)9 D)107、指出下列哪一个选项的程序是错误的()A)#include<stdio.h> B) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1; x=0,y=x+1;z=x+y; z=x+y;} }C) #include<stdio.h> D) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1, x=0,y=x+1;z=x+y; z=x+y,} }8、若a为整型变量,则以下语句( )a=-2L;printf(“%d\n”,a);A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为29、若变量a,i已经正确定义,且i已正确赋值,则合法的语句是()A)i=int(a) B) ++i; C)a=a++=5; D) a=int(i);10、若执行以下程序段后,c3的值为()int c1=1,c2=2,c3;c3=1.0/c2*c1;A)0 B)0.5 C)1 D)211、如下程序的运行结果是()#include<stdio.h>void 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 312、以下程序的输入结果为()#include<stdio.h>void main( ){int i=4,a;a=i++;printf(“a=%d,i=%d’,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=513、以下程序的输出结果是()#include <stdio.h>void main( ){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):( b); //多了(}A) 5 B) 4 C) 6 D) 不确定14、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)415、已知int i;float f;,正确的语句是()A)(int f)%i; B)int(f)%i; C) int(f%i); D)(int)f%i;16、已知int j,i=1;执行语句j=-i++;后,j的值是()A)1 B)2 C)-1 D)-217、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是()A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=a*(a=3)18、C语言中运算对象必须是整型的运算符是( )A) %= B) / C) = D)<=19、有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是( )A)12353514 B)12353513 C)12343514 D)1234351320、下面程序的输出结果是()#include<stdio.h>main( ){int x=5,y=3;printf(“%d\n”,y=x/y); }A)0 B)1 C)3 D)不确定的值21、执行下列程序中的输出语句后,a的值是()#include<stdio.h>void main( ){int a;printf(“%d\n”,(a=3*5,a*4,a+5)); }A) 65 B)20 C)15 D)1022、执行下列程序时输入1234567,程序的运行结果为()#include<stdio.h>main( ){int x,y;scanf (“%2d%2ld”,&x,&y);printf(“%d\n”,x+y); }A)17 B)46 C)15 D)923 、已知char a;int b;float c;double d; 则表达式a*b+c-d结果类型为()A) double B)int C)float D) char二、填空题1、若i为int整型变量且赋值为6,则运算i++后的表达式的值是__6__,变量i的值是___7___。
C语言课后习题答案
1.1选择题:⑴一个C程序的执行是(A)。
A)从main()函数开始,直到main()函数结束B)从第一个函数开始,直到最后一个函数结束C)从第一个语句开始,直到最后一个语句结束D)从main()函数开始,直到最后一个函数结束⑵计算机能直接执行的语言是(B)。
A)汇编语言B)机器语言C)高级语言D)A和B⑶一个C程序是由(C)。
A)一个主程序和若干子程序组成B)若干过程组成C)一个或多个函数组成D)若干子程序组成⑷下列说法正确的是(B )。
A)C程序书写格式限制严格,一行内必须写一个语句B)C程序书写比较自由,一个语句可以分行写在多行上C)C程序书写格式限制严格,要求一行内必须写一个语句,并要求行号D)C程序中一个语句不可以分写在多行上1.2填空题:⑴构成C语言程序的基本单位是函数。
⑵C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是,obj,经过连接后,生成文件的后缀是.exe。
⑶在TURBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。
⑷一个C语言程序必须有而且只能有一个主函数,它的函数名为main。
⑸一个函数有两部分组成,第一部分称为函数首部;第二部分称为函数体。
⑹函数体由符号{开始,用符号}结束。
函数体的前面是声明部分,其后是执行部分。
1.3上机编辑、调试、运行下列程序,发现错误,并改正之。
/*求1 + 2 + 3 + ……+ 10的和*/#include <stdio.h>main(){int sum,n;sum = 0;n = 1;while(n < 10){sum = sum + n;n = n + 1;}printf("sum = %d \n",sum);}2.1选择题⑴ 在以下标识符中,( B )是合法的用户标识符。
A ) a#bB ) getchC ) voidD ) ab*⑵ 不合法的八进制数是( B )。
c语言课后习题
14. 8
15. 2
习 题 3 (参考答案)
1.编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。
参考代码(尽量运用本章所学知识)
40.下列变量定义中合法的是( )。
A.float _a = 1?.1e?1; B.double b = 1 + 5e2.5;
C.long do = 0xfdaL; D.float 2_and = 1 ? e ? 3;
44.以下选项中不属于字符常量的是( )。
B D B B A C B A D D
二、填空题
1. 255
2. a/(b*c)
3. 20
4. 1.0
5. x==0或(x==0)?1:0
6. x<-5 || x>5
7. 97或字符 ‘a’
8. 0
9. 2.5
10. 3.5
11. 3
12. 9, 11, 9, 10
5.源程序执行过程中,有哪些步骤?
C语言源程序的执行要经过:编辑、编译、链接、运行等步骤。
6.简述MATLAB的主要应用领域有哪些?
MATLAB软件是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司开发的商业数学软件,主要包括MATLAB和Simulink两大部分。它和Mathematica、Maple并称为三大数学软件。MATLAB软件可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域,代表了当今国际科学计算软件的先进水平。
C语言课后习题答案
void main()
{
int i,j;
for(i=1;i<25;i++)
{
j=25-i;
if(2*i+4*j==80)
break;
}
printf("笼中有鸡%d只,有兔%d只",i,j);
}
10.输出1~999中能被3整除,且至少有一位数字是5的所有整数。
#include<stdio.h>
#include<stdio.h>
void main()
{
int i=0,sum=0;
float h=100;
while(i<10)
{
sum+=h;
h=h/2;
sum+=h;
i++;
}
printf("共经过%d米\n",sum);
printf("第十次反弹高度为:%f",h);
}
9.鸡与兔同笼,其中共有25个头,有80只脚,问笼中鸡和兔各多少只?
void main(void)
{
int i;
for(i=1;i<1000;i++)
{
if(i%3==0)
{
if(i%10==5||i%100==5||1%1000==5)
{
printf("%d\n",i);
}
}
}
}
11. 1.求2~1000中的守形数(若某数的平方,其低位与该数本身相同,则称该数为守形数。例如25,25的平方=625,625的低位25与原数相同,则25称为守形数。
C语言课后习题答案(最终)
C语言课后习题答案(最终)第0章习题1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数:(1)128 (2)511 (3)1024 (4)65535 (5)1048575 答:(1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400(4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF2. 将下列二进制数转化为十进制数和十六进制数:(1)1100110101B (2)101101.1011B 答:(1)821、335 (2)45.6875、2D.B3. 写出下列数的原码、反码、补码:15、-20、-27/32 答:(1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.00101004. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少?答:5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。
答:结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么?答:0~65535、-128~127、-32768~32767C语言程序属于应用程序,程序代码本身存放在应用程序区,程序运行时处理的数据存计算机的内存空间主要分为3个区:系统程序区、应用程序区和数据区,其中数据区放在应用程序数据区。
C语言课后答案
第一章习题一.问答题1.C语言有哪些特点?答案:C语言具有如下特点:●C语言简洁、紧凑。
●C语言是一种结构化的程序设计语言。
●C语言具有丰富的数据类型。
●C语言提供了丰富的运算符。
●C语言可以直接对硬件进行操作。
●C语言的移植性好2.C程序的结构是由哪几个部分组成?答案:C程序是由若干个函数组成的。
一个函数一般由函数头和函数体组成。
函数头一般包括函数类型、函数名、参数类型以及参数说明;函数体由花括号括起来,函数体一般包括声明部分和执行部分。
一个C程序中有且仅有一个main函数。
3.C程序的基本单位是什么?答案:函数是组成C语言结构化程序的基本单位。
4.C语言中常用的表示算法的工具有哪些?答案:常用的表示算法的工具有传统流程图、N-S图、自然语言、伪代码等。
其中,流程图是一种流传很广的描述算法的方法。
N-S图是一种无流线的流程图。
自然语言是人们日常生活使用的语言。
伪码(Preudocode)是指介于自然语言和计算机语言之间的一种代码,它不能在计算机上运行,二.分析程序结构,写出程序运行的结果。
1.#include<stdio.h>main(){ printf("I love China!\n");printf("we are students.\n");}答案:I love China!we are students.2.#include<stdio.h>main(){ int a;a=5;printf("%d\n",a+1);}答案:6三.编程题1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * * 答案:main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.编写一个实现加法运算的程序。
C语言课后习题答案
第一章习题答案一、选择题1~5:BDCDA 6~10:DABBB 11~12:CC二、填空题1、main()2、函数首部,函数体3、函数4、编辑、编译、连接、运行5、.cpp、.obj、 .exe6、; 或分号三、编程题#include <stdio.h> /* 包含标准库的信息 */void main() /* 定义名为main 的函数,它不接受参数值 */{ /* main函数的语句都被括在花括号中 */printf("hello, world\n");/* main 函数调用库函数printf 以显示字符序列,其中\n代表换行符 */}第二章习题答案一、选择题1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD二、填空题1、整型,实型,字符型,枚举类型2、13、94、123535145、2,16、2,27、10 20 08、a=149、2,3,110、double第三章习题答案一、选择题1~5:CBBBC 6~10:DDDBB二、填空题1、控制语句,表达式语句,复合语句2、;3、{}4、15、a6、c:dec=120,oct=170,hex=78,ASCII=x7、32767,327678、10,A,109、3 310、(1) 123.456001(2) □□□□□□□ 123.456(3) 123.4560(4) 8765.456700(5) □□□□□□ 8765.457(6) 8765.4567(7) 8765.4567三、编程题1、参考答案:#include <stdio.h>void main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c );printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x, y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5. 2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n); printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}2、参考答案:#include <stdio.h>void main(){float a, b, c, t;printf("please input a,b,c:\n"); scanf ("%f, %f, %f", &a, &b, &c);t=(a+b+c)/3;printf ("averageof %6.2f、%6.2f and %6.2f is %6.2f\n",a,b,c,t);}3、参考答案:#include <stdio.h>main(){int R, d;float s;printf("请输入圆的半径");scanf("%d",&R);d=2*R;c=2*3.14159*R;printf("d=%d,c=%f\n",d,c);}4、参考答案:#include <stdio.h>void main(){int h, f, x, y; /* x为鸡的数量,y为兔的数量 */printf("请输入鸡兔的总头数h,总脚数f:");scanf("%d%d", &h, &f);x=(4*h-f)/2;y=(f-2*h)/2;printf("笼中有鸡%d 只,有兔%d只。
c语言课后习题答案
int main()
{
long i,sum;
printf("请输入利润I:");
scanf("%ld",&i);
if(i<100000)
sum=i*0.1;
else if(i<200000)
sum=10000+(i-100000)*0.075;
else if(i<400000)
#include <stdio.h>
int main()
{
int i,j;
/*枚举法(穷举法)*/
for(i=0;i<=30;i++)
{
j=30-i;
if(2*i+4*i==90)
printf("鸡:%d\n兔:%d\n",i,j);
}
return 0;
}
习题5.4
编写一个程序,求
s=1+(1+2)+(1+2+3)+ …… +(1+2+3+4+ …… +n)
{
int a,b,c,d;
int t; /*临时变量*/
printf(“请输入a,b,c,d:”);
scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);
if(a>b) {t=a;a=b;b=t;} /*数据交换方法*/
if(a>c) {t=a;a=c;c=t;}
if(a>d) {t=a;a=d;d=t;}
if(b>c) {t=b;b=c;c=t;}
(完整版)C语言课后题编程标准答案
C语言课后题编程答案所有章节的课后习题的选择题和填空题大家必须熟练掌握,编程题掌握到第九章即可。
希望大家通过课后的编程题熟悉典型的编程算法,掌握基本的编程思路,注意编程细节。
第3章3-17 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。
#include<stdio.h>main(){int h,m。
h=560/60。
m=560%60。
printf(“560分钟可转换成%d小时%d分钟”,h,m)。
}程序总结:(1)只要在程序中用到系统提供的库函数,必须把库函数所在的头文件用#include命令包含进来。
否则库函数的使用无效。
输入输出库函数的头文件是:stdio.h。
数学函数的头文件是:math.h。
字符处理函数的头文件是:ctype.h。
字符串处理函数的头文件是:string.h。
(2)注意C语言中的“/”和“%”两种运算符。
“/”的运算结果取决于两操作数的类型。
比如:1/2=0(与数学中不同,结果与操作数的类型一致,所以结果只取商值),1.0/2=0.5(除之前2要自动类型转换成 2.0,因为只有同类型的操作数才能进行除运算), 1/2.0=0.5, 1.0/2.0=0.5。
“%”的两个操作数都必须是整数。
(3)printf(“560分钟可转换成%d小时%d分钟”,h,m)。
printf第一个参数要尽量详细,这样可以提高输出结果的可读性,恰当好处的添加提示性信息,可以提高程序的质量。
(4)int h,m。
变量起名要有艺术性,尽量做到见名知意。
3-18 编写程序,输入两个整数,1500和350,求出它们的商和余数并进行输出。
#include<stdio.h>main(){int a,b,m,n。
printf(“请输入两个整数:\n”)。
scanf(“%d%d”,&a,&b)。
m=a/b。
n=a%b。
printf(“%d除以%d商%d余%d”,a,b,m,n)。
C语言-课后题答案
第三章
3.用下面的scanf函数输入数据,使a=3, b=7, x=8.5, y=71.82, c1='A', c2='a'。问在键盘上如何输入?
解:
#include<stdio.h>
void main()
{
int a, b; float x, y; char c1, c2;
{
char c1,c2;
c1=getchar();
c2=getchar();
printf("c1=%d c2=%d\n",c1,c2);
printf("c1=%c c2=%c\n",c1,c2);
}
第四章
3. 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("最大数为: %d",max);
}
第二章
1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。
解:
#include<stdio.h>
#include<math.h>
void main()
{
double P, r=0.1, n=10;
C语言程序设计课后习题1-8参考答案
C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。
存储器是计算机中具有记忆能力的部件,用来存放程序和数据。
输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。
4、什么叫软件说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。
在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
部分C语言习题答案
部分习题答案第1章C程序知识初步答案略第2章基本数据类型及其操作1.判断题√××√××××√√2.填空题(1)int a;float b;char c;(2)3(3)double(4)a=1,b=2,c=3(5)0 整型(6)2(7)若有定义:int x=3,y=2;float a=2.5,b=3.5; 则表达式(x+y)%2+(int)a/(int)b的值为 1 。
(8)f3.选择题ACDDB DBACD4.改错题(1)#include <stdoi.h> 改成#include <stdio.h>int celsius;fahr; 改成float celsius,fahr;printf(“fahr=d,celsius=%d\n”,fahr,celsius);改成printf(“fahr=%f,celsius=%f\n”,fahr,celsius);(2)printf("%d\n",m/n+a); 改成printf("%f\n",m/n+a);printf("%f\n",m%a+b); 改成printf("%f\n",m%(int)a+b);(3)下面程序中有两处错误,请查找并改正。
#include<stdio.h>void main (){ int m,n;float a,b;scanf("%d,%f",&m,&a);scanf("%d,%f",&b,&n); 改成scanf("%f,%d",&b,&n);printf("%f\n",m/n+a);printf("%f\n",m%n+b)改成printf("%f\n",m%n+b);}5.阅读程序(1)2(2)** ** ** **(3)程序的功能:从键盘任意输入两个整数,输出它们的和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章后练习10. ch4_lx10.c#include <stdio.h>void main(){int m=1,n=1,s=0,k=1;while(n<=10){while(m<=n){printf("%d",m);m++;}printf("\n");n++;m=1;}}Ch4_lx12.c 输入一行字符串,统计有多少字母.#include <stdio.h>void main(){int m=0;char ch;while( (ch=getchar() )!='\n')if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))m++;printf("%d\n",m);}}Ch4_lx13.c 猜字游戏#include<stdio.h>#include<stdlib.h>#include<math.h>#include<time.h>void main( ){ int magic ;int guess;srand( (unsigned) time(NULL) );magic=rand();printf("Enter your guess:");scanf("%d",&guess);while( guess!=magic){if(guess>magic)printf(" ** Too high\n**");elseprintf(" ** Too Low\n**");printf("Enter your guess:");scanf("%d",&guess);if(guess ==magic){ printf("**Right**\n");break;}}}11. 输入一自然数,输出它的因子。
解1.#include<stdio.h>int main(){ int w,i=2;printf("请输入一个整数w: \n");scanf("%d",&w);printf("%d的因子是:",w); while(w){ while(w){if(w%i==0){ printf(" %d ",i);w=w/i;}elsebreak;}i++;}return 0;}Ch5_lx14.c 求1*3*5*7…*n#include<stdio.h>int main(){int i,x,s=1;printf("请输入一个奇数:\n");scanf("%d",&x);for(i=1;i<=x;i+=2)s=s*i;printf("1*3*...*%d=%d\n",x,s);return 0;}设计一个猜字游戏.程序给出一个数,游戏者猜对了,屏幕显示“**Right**”;当猜的数错了,显示”**Wrong**”,并告之猜的数太小并显示” ** Too Low**”,否则就显示”**Too High**”.例:猜字游戏(一)main( ){ int magic =123;int guess;printf(“Enter your guess:”;scanf(“%d”,&guess);if(guess ==magic)printf(“**Right**”);else{ printf(“ ** Wrong**”);if(guess>magic)printf(“ ** Too high\n**”);elseprintf(“ ** Too low **\n”);}}main( ) 猜字游戏(二){ int magic =123;int guess;printf("Enter your guess:");scanf("%d",&guess);while(guess!=magic){ if(guess ==magic)printf("**Right**\n");else{ printf(" ** Wrong**\n");if(guess>magic)printf(" ** Too high\n**");elseprintf(" ** Too Low\n**");}printf("Enter your guess:");scanf("%d",&guess); } }例:一球从100米高度自由落下,每次落地后都弹回原高度一半落下,求它在第10次落地时, 共经过多少米?第10次反弹多高?main(){ float sn=100,hn=sn/2;int n;for(n=2;n<=10;n++){ sn=sn+2*hn;hn=hn/2; }printf(“%f m.\n”,sn);printf(“%f m.\n”,hn); }例: 猴子吃桃子问题.猴子第一天摘下若干桃子,当即吃了一半,又多吃了一个. 第二天早上又将剩余的桃子吃掉一半,还是又多吃了一个.以后每天早上都吃了前天剩下的一半多一个. 到第十天早上想再吃时,只见剩下了一个桃子了.求第一天共摘了多少桃子?main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf(“total=%d\n”,x1);}12. #include <stdio.h>void main(){int m=0;char ch;while( (ch=getchar() )!='\n')if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))m++;printf("%d\n",m);}}第5章后练习把100~200之间的不能被3整除的数输出。
main( ){ int n;for(n=100; n<=200; n++){ if(n%3 ==0)continue; printf(“%5d” , n);}}例: 问程序输出的结果?main(){ int i=1,a=0;for(; i<=5; i++){do {i++;a++;} while(i<3);i++; }printf(“a=%d,i=%d\n”,a,i);}输出:a=3 ,i=8例: 找出所有的三位数,它和它的各位数字的立方和正好相等. 例如:153=13+53+33.设所求的三位数,其百位数字是i,十位数字是j,个位数字是k. 显然应满足如下表达式:i*i*i+j*j*j +k*k*k = 100*i+10*j+kmain( ){ int i,j,k;for(i=1; i<=9; i++)for(j=0; j<=9; j++)for(k=0; k<=9; k++)if(i*i*i+j*j*j +k*k*k = =100*i+10*j+k )printf(“%d%d%d\n”, i,j, k);}第6章后练习示例: 输入2个数,如果它们的值不相等,则交换并输出它们的值;否则,输出“equal”。
交换a和b值的方法:temp=a;a=b;b=temp;#include <stdio.h>void main( ){ int a, b, temp;printf("input a, b: ");scanf("%d%d", &a, &b);if(a != b){temp = a;a = b;b = temp;printf("a = %d, b = %d\n", a, b); }elseprintf("equal\n");}示例: 输入3个整数,输出其中的最大值#include <stdio.h>void main( ){int a, b, c, max;printf("input a, b, c: ");scanf("%d%d%d", &a, &b, &c);max = a;if(max < b) max = b;if(max < c) max = c;printf("max is %d\n", max);}例: 输入x,计算下列分段函数f(x).1/x x≠0f(x)=0 x=0#include <stdio.h>void main(){float x,y;printf("input x: \n");scanf("%f",&x);if ( x != 0 ) y = 1/x;else y = 0;printf("f(%f) = %.2f\n", x, y);}例: 输入x,计算下列分段函数f(x).x+1 x <1f(x)= x+2 1≤x<2x+3 x ≥2#include<stdio.h>void main( ){ double x,y;printf("请输入x:");scanf("%lf",&x);if(x<1)y=x+1;else if(x<2)y=x+2;elsey=x+3;printf("f(%.2f)=%.2f\n",x,y);}7. 将大写字符转换为小写.#include<stdio.h>void main(){ char ch;while((ch=getchar())!='\n'){ if(ch>='A'&&ch<='Z'){ch+=32;printf("%c",ch);}elseprintf("%c",ch); }printf("\n");}8. 统计字符#include <stdio.h>#include <math.h>int main(){ char ch;int x=0,y=0,z=0,a=0,b=0;printf("请输入:\n");while((ch=getchar())!='\n'){ if(ch>='a'&&ch<='z')x++;else if(ch>='A'&&ch<='Z')y++;else if(ch>='0'&&ch<='9')z++;else if(ch==' '||ch=='\n')a++;elseb++;}printf("小写字母%d个\n",x);printf("大写字母%d个\n",y);printf("数字字符%d个\n",z);printf("空格字符%d个\n",a);printf("其它字符%d个\n",b);return 0;}9.计算分段函数#include<stdio.h>void main(){ float x,y;printf("请输入x:\n");scanf("%f",&x);if(x<=1)y=x+5;else if( x>1&&x<=10 )y=2*x;elsey=(3/(x-10);printf("x=%f y=%f\n",x,y);}10.五分制与百分制的转换#include<stdio.h>void main(){ int x,i;printf("该程序功能为五分制与百分制的转换!\n");printf("1 进入, 2 退出!\n");scanf("%d",&i);while(i==1){ printf("请输入:\n");scanf("%d",&x);if(x>=90 && x<=100)x=5;else if(x>=80 && x<90)x=4;else if(x>=70&&x<80)x=3;else if(x>=60&&x<70)x=2;elsex=1;printf("五分制成绩为%d分\n",x);printf(“1 继续2 退出!\n");scanf("%d",&i);}}第7章后练习1.百分制转换成五分制.#include<stdio.h>int main(){int x;printf("请输入学生百分制成绩:\n输入负数结束程序:\n");scanf("%d",&x);while(x>0){ switch(x/10){case 10: case 9:printf("五分制为:\n5\n\n");break; case 8:printf("五分制为:\n4\n\n");break;case 7:printf("五分制为:\n3\n\n");break;case 6:printf("五分制为:\n2\n\n");break;default:printf("五分制为:\n1\n\n");break;}printf("请输入学生百分制成绩:\n输入负数结束程序:\n");scanf("%d",&x);}printf("谢谢使用,再见:\n");return 0;}2.计算sin(),cos(),tan().#include <stdio.h>#include<math.h>int main(){double x,s;int y;printf("Input a number:\n");scanf("%lf",&x);while(1){printf("您希望进行哪种运算?\n");printf("1.计算sin(x)\n");printf("2.计算cos(x)\n");printf("3.计算tan(x)\n");scanf("%d",&y);switch(y){ case 1: s=sin(x);printf("sin(%f)=%f\n",x,s);break;case 2: s=cos(x);printf("cos(%f)=%f\n",x,s);break;case 3: s=tan(x);printf("tan(%f)=%f\n",x,s);break;default:printf(“输入有误,请输入1 - 3之间的数字!\n");}If(y==1||y==2||y==3)break;}printf("谢谢使用:\n");return 0;}。