c语言程序设计教程答案_周鸣争
C语言程序设计教程书后作业参考答案2013

重要提醒:请同学们认真复习,为后续课程打好基础,祝取得好成绩!五种题型:填空、选择、阅读程序写结果,程序填空,编程题每章基本概念要熟练掌握(教材中填空和选择有可能认真做一遍)常用算法一定要掌握:顺序结构:定义,赋值(输入),处理,输出分支结构:能够读懂各种结构程序循环结构:读程序,填空最大公约数,最小公倍数,求和,阶乘,水仙花数,回文数,完数,同构数,素数判断,哥德巴赫猜想,孪生素数等。
数组:一维数组排序,查找(顺序,折半),找最大小值,求平均值等二维数组;输入和输出二维数组,杨辉三角形函数:能将上述循环、数组部分用函数实现,并正确调用指针:掌握相关概念,能够阅读程序写结果预处理:基本概念,阅读程序自定义数据类型、文件中的基本概念(填空,选择)附书后作业的选择和填空题的全部答案及部分编程题的参考答案练习题1参考答案一、选择题二、填空题1.程序设计语言主要分为以下三类:机器语言、汇编语言和高级语言。
2.在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。
3.C程序开发过程的一般步骤为:源程序的编辑、编译、连接和运行。
4. C程序源文件的扩展名为.c ,编译成功后产生的文件扩展名为.obj ,连接成功后产生文件扩展名为.exe 。
三、应用题略练习题2参考答案一、选择题二、填空题1.通常一个字节包含8 个二进制位。
在一个字节中能存放的最大(十进制)整数是255(无符号),127(带符号),最小(十进制)整数是-128 ,它的二进制数的形式是10000000 。
2.在C语言中,十进制数30的八进制数表示形式是 036 ,十六进制数表示形式是 0x1e ,在内存中它的二进制数表示形式是 0000000000011110 。
3.条件“20<x<30或x<-100”的C语言表达式是 x>20&&x<30||x<-100 。
4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为 6 ,b 值为 4 ,c值为 2 。
C语言程序设计基础教程课后习题答案(清华大学出版社于延编)自己做欢迎校正

四、编程题 1.从键盘上输入 5 个整数, 输出最大值(要求至少用 两种方法编程)。 ① #include<stdio.h> #include<stdlib.h> int max(int *a){ int b,i; b=a[0]; for(i=1;i<5;i++) if(b<a[i]) b=a[i]; return b; } int main(){ int i,a[5]; for(i=0;i<5;i++) scanf("%d",&a[i]); printf("最大值为:%d\n",max(a)); system("pause"); }
flag=1; n+=i; //将约数累加到 n 中 } } return n; //是这个数本身时返回值为 n } int main() { int m; scanf("%d",&m); printf("真约数之和=%d\n",f(m)); system("pause");}
4.设计算法求出 10000 以内所有孪生素数对。
if(i==j) printf("%5d",i);
C语言程序设计基础教程习题答案

C语言程序设计基础教程习题答案习题答案第1章1.1 填空题1.1.1 应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main 。
1.1.2 一个函数由__函数头__和__函数体__两部分组成。
1.1.3 在C语言中,输入操作是由库函数__scanf 完成的,输出操作是由库函数_printf_完成的。
1.1.4 通过文字编辑建立的源程序文件的扩展名__是_.c;编译后生成目标程序文件,扩展名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。
1.1.5 C语言程序的基本单位或者模块是__函__数。
1.1.6 C语言程序的语句结束符是____;。
1.1.7 编写一个C程序,上机运行要经过的步骤:______________________________。
1.1.8 在一个C语言源程序中,注释部分两侧的分界符分别__为_/*和__*/__。
1.1.9 C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线。
且第一个字符必须为字母或下划线。
1.1.10 C语言中的标识符可分为关键字、预定义标识符和用户标识符 3类。
1.2 选择题1.2.1 一个C程序的执行是从( A )。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束 1.2.2 以下叙述不正确的是(C)。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C) 在C程序中,注释说明只能位于一条语句的后面D) C程序的基本组成单位是函数1.2.3 C语言规定:在一个源程序中,main函数的位置( C )。
A)必须在程序的开头 B)必须在系统调用的库函数的后面C)可以在程序的任意位置 D)必须在程序的最后1.2.4 C编译程序是 (A)。
《C语言程序设计》清华大学出版社课后答案

习题 9一.选择题1. A2. A3. A4. A5.B6.C二编程题9.2 编写一函数,判断N×N矩阵是否为上三角阵。
上三角阵是指不含主对角线,下半三角都是0的矩阵。
#include <stdio.h>int fun(int x[][3],int n){int flag=1,i,j;for(i=1;i<n;i++)for(j=0;j<i;j++)if(x[i][j]!=0){flag=0;break;}return flag;}void main(){int a[3][3]={{1,4,5},{0,2,6},{0,0,3}};int result=fun(a,3);if(result==1)printf("此矩阵是上三角矩阵!\n");elseprintf("此矩阵不是上三角矩阵!\n");}9.3 有一个字符串,包含n个字符,将字符串从第i 个字符到第j个字符间的字符逆置。
程序代码:#include <stdio.h>#include <string.h>void invertsub(char *str,int i,int j){char *p,*q,c;int n=0;p=q=str;if(str==NULL)printf("str is NULL!\n");else if(i<=0||j>strlen(str))printf("i and j value error!\n");else {while(*p!='\0'&&n!=i-1){ p++;n++; }q=p;while(*q!='\0'&&n!=j-1){q++;n++;}while(p<q){c=*p;*p++=*q;*q--=c;}}}void main(){char str[]="abcdefg";printf("%s\n",str);invertsub(str,2,5);printf("%s\n",str);}9.4 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数.程序源代码:main(){int number[20],n,m,i;printf("the total numbers is:");scanf("%d",&n);printf("back m:");scanf("%d",&m);for(i=0;i<n-1;i++)scanf("%d,",&number[i]);scanf("%d",&number[n-1]);move(number,n,m);for(i=0;i<n-1;i++)printf("%d,",number[i]);printf("%d",number[n-1]);}move(array,n,m)int n,m,array[20];{int *p,array_end;array_end=*(array+n-1);for(p=array+n-1;p>array;p--)*p=*(p-1);*array=array_end;m--;if(m>0) move(array,n,m);}9.5 输入n个整数,将最小数与第一个数对换,把最大数与最后一个数对换程序源代码:main(){int number[10];input(number);max_min(number);output(number);}input(number)int number[10];{int i;for(i=0;i<9;i++)scanf("%d,",&number[i]);scanf("%d",&number[9]);}max_min(array)int array[10];{int *max,*min,k,l;int *p,*arr_end;arr_end=array+10;max=min=array;for(p=array+1;p<arr_end;p++)if(*p>*max) max=p;else if(*p<*min) min=p;k=*max;l=*min;*p=array[0];array[0]=l;l=*p;*p=array[9];array[9]=k;k=*p;return;}output(array)int array[10];{ int *p;for(p=array;p<array+9;p++)printf("%d,",*p);printf("%d\n",array[9]);}9.6 输入n个字符串,按由小到大顺序输出。
C语言程序设计实用教程参考答案

C语言程序设计实用教程参考答案第2章课后习题参考答案一、(略)二、单选题1、C2、D3、C4、A5、C6、D7、C8、B9、D 10、A三、填空题1、 12、 8803、 100000104、000011115、111100006、 3 .500000 0四、写程序运行结果1、 2,12、 03、 164、35、 1五、编程题解:设鸡有X只,兔有Y只,根据题意可得方程如下:x+y=a2x+4y=b解方程组可得到:x=(4*a-b)/2y=(b-2a)/s编程如下:#include#includemain( ){int x,y,a,b;scanf(“%d,%d”,&a,&b);x=(4*a-b)/2;y=(b-2*a)/2;printf(“There are %d chicken.\n”,x);printf(“There are %d rabbit.\n”,y);}2、(题意看书上:求三角形面积)#include#includemain( ){int a,b,c;float s ,area;printf(“Please input 3 numbers for triangle:\n”); scanf(“%d,%d,%d”,&a,&b,&c);s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%f”,area);}第3章课后习题参考答案单选题B 2、BC 3、A 4、D 5、B 6、C7、C 8、C 9、A 10、A 11、C 12、C 13、B 14、C 15、B 16、B1、 a=20,b=40,c=202、 233、684、a=%d ,b=%d5、 1 65 1.5 6.56、a=3.140000,3.1400000e+00,3.140e+00,3.140e+00b=-3.141,-3.1415e+00,-3.1415e+007、x=4 y=11 8 k=4 9 x=4.900000 y=4 10 **********填空题1、 (1) d,e (2) (a>b) (3) (d>c) 输出显示:max=72、(1)k=1;break;(2)k=2;break;(3)k=3;break;(4)k=4;break;(5)k=5;bre ak;3 4、(i%3==0)&&(i%5==0)&&(i%7==0) 5、i=0,j=0,n; scanf(“%d”,&n);四、编程题1.要求从大到小打印三个整数,a,b,c.main(){int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b)< p="">{ t=a; a=b; b=t;}if(a<c)< p="">if(b<c)< p="">{ t=b; b=c; c=t;}printf("big to small:%d %d %d\n",a,b,c);}2.编程求一元二次方程的根#includemain(){float a,b,c,disc,x1,x2,realpart,imagpart;printf("input canshu a,b,c");scanf("%f,%f,%f",&a,&b,&c);printf("The equation ");if(fabs(a)<=1e-6)printf("is not a 2 ci fangcheng.");elsedisc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("has two equal roots:%f\n", -b/2*a); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a);printf("has distinct real roots:%f and %f\n",x1,x2); }else{realpart=-b/2*a;imagpart=sqrt(-disc)/(2*a);printf("has complex roots:\n");printf("%f+%fi\n",realpart,imagpart);printf("%f-%fi\n",realpart,imagpart);}}3.main(){float a,r,rate,bonus;printf("input a(jiangjin):");scanf("%f",&a);if(a<500)rate=0;else if(a>=500&&a<1000)rate=(a-500+1)*0.05;rate=(a-1000+1)*0.08+500*0.05;else if(a>=2000&&a<3000)rate=(a-2000+1)*0.1+1000*0.08+500*0.05;elserate=(a-3000+1)*0.15+1000*0.1+1000*0.08+500*0.05; bonus=a-rate;printf("rate=%f,bonus=%f\n",rate,bonus);}3’main(){float a,r,rate,bonus,t;printf("input a(jiangjin):");scanf("%f",&a);t=a/500;if(t>6) t=6;switch((int)(t)){case 0: rate=0; break;case 1: rate=(a-500+1)*0.05; break;case 2:case 5: rate=(a-2000+1)*0.1+1000*0.08+500*0.05; break;case 6: rate=(a-3000+1)*0.15+1000*0.1+1000*0.08+500*0.05; break; } bonus=a-rate;printf("rate=%f,bonus=%f\n",rate,bonus);}4.编程,将2000到3000年之间的闰年输出main(){int y;for(y=2000;y<=3000;y++){if(y%4==0&&y%100!=0||y%400==0)printf("%d ",y);}}5.从键盘输入若干字符,统计其中字母符号(区分大小写),数字符号和其他字符的个数。
C语言程序设计基础教程课后习题答案(清华大学出版社于延编)自己做的欢迎校正

C语言程序设计基础教程课后习题答案(清华大学出版社于延编)自己做的欢迎校正第一章计算机程序设计导论一、简答题1.请简述计算机程序设计语言的发展历程。
答:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C 语言是一种面向对象的编程语言,也属于高级语言。
2.什么是算法,请举例设计一个算法。
答:算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。
或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
求两个数的最大公约数设两个变量M和N1.如果M<n,则交换m和n< p="">2.M被N除,得到余数R3.判断R=0,正确则N为最大公约数否则进行下一步4.将N赋值给M,将R赋值给N,重复第一步3.请叙述算法都有哪些特性。
答:①有穷性②群定性③有效性④有零个或多个输入⑤有一个或多个输入4.请叙述什么是结构化程序设计以及结构答:①只要有几种简单类型的借口,就可以构成任意复杂的程序。
这样可以使程序设计规范化,便于用工程的方法来机型软件生产,由顺序结构,选择结构,循环结构这三种基本结构组成的程序就是结构化程序。
二、算法设计题1.设计算法求1+2+3+…+100的和。
#include#includemain(){int I,S = 0;for(I = 1;I<=100;I++) //求1-100的和S=S+I;printf("%d\n",S);system("pause");}2.已知两个自然数M和N,请设计算法输出它们的最小公倍数。
#include#include#includeint fmax(int m,int n) //求最大公约数{int r;r=m%n;while (r!=0){m=n;n=r;r=m%n;}return n;}int fmin(int m,int n) //最小公倍数=两个数的积除两个数的最大公约数{ return m*n/fmax(m,n);}main(){ int a,b;scanf("%d%d",&a,&b);printf("fmin is:%d\n",fmin(a,b));system("pause");}3.已知一个自然数N,请设计算法输出它所有真约数的和。
《C语言程序设计(第五版)》习题答案
各章习题参考答案第1章习题参考答案1. 简述C程序的结构特点。
答:(1) 一个C语言源程序由一个或多个源文件组成。
每个源文件由一个或多个函数构成,其中有且仅有一个主函数(main函数)。
(2) 一个函数由函数首部(即函数的第一行)和函数体(即函数首部下面的大括号内的部分)组成。
函数首部包括函数类型、函数名和放在圆括号内的若干个参数。
函数体由声明部分和执行部分组成。
(3) C程序书写格式自由,一行内可以写多条语句,一个语句也可以分写在多行中,每个语句必须以分号结尾。
(4)程序的注释内容放在“/*”和“*/之”间,在‘/’和‘*’之间不允许有空格;注释部分允许出现在程序中的任何位置处。
2. 分析例1.3程序的结构。
答:下面是例1.3的程序,它的结构是:有且只有一个主函数main以及若干个其它函数,还有一个被主函数调用的sumab函数。
函数有首部,包括类型和名称,首部下的大括号中有变量定义、输入、计算和输出等语句。
#include <stdio.h>int sumab (int x, int y); /*函数声明*/int main () /*主函数*/{ int a,b,sum; /*定义变量*/printf("请输入变量a与b的值:"); /*提示信息*/scanf ("%d %d", &a, &b); /*输入变量a和b的值*/sum=sumab(a,b); /*调用sumab函数*/printf("a与b的和等于%d", sum);/*输出sum的值*/return 0;}int sumab (int x, int y) /*定义sumab函数,并定义形参x、y */{ int z;z=x+y;return z;}3. 分别编写完成如下任务的程序,然后上机编译、连接并运行。
(1) 输出两行字符,第1行是“The computer is our good friends!”,第2行是“We learnC language.”。
C语言程序设计答案第1章
一、思考题1.汇编语言与高级语言有何区别汇编语言是用助记符来代表机器语言的代码,用汇编程序将汇编语言翻译成机器语言,汇编语言指令与机器指令是一一对应的。
高级语言不依赖计算机具体型号,具有良好的移植性和可读性,一条高级语言语句通常对应多条机器指令。
2.所有的C编译器都是相同的吗不相同。
编译程序是将高级语言编写的程序翻译成机器语言程序,由于不同机器的机器指令不同,因此编译程序也不同。
3.什么是源程序文件用任何一种高级语言编写的程序称为源程序。
4.通常程序的错误有哪些它们之间有什么区别语法错误、逻辑错误和运行异常。
语法错误是指源程序中存在违反语法规则的地方,编译器可以发现这类错误。
逻辑错误是指程序没有完成预期功能,编译器发现不了这类错误,导致程序运行后不能得到正确结果,一般需要进行调试才能修正逻辑错误。
运行异常是指程序运行环境的非正常情况考虑不足而导致程序的运行异常终止。
5.C和C++的特点有哪些1)C++是C语言的超集,C++由两个部分组成:一个是过程性语言部分,这部分与C语言无本质区别,一般遵守ANSI C标准;二是类和对象部分,这是C语言所没有的,它是面向对象程序设计的主体。
2)C++充分保持了与C语言的兼容性,绝大多数C语言程序不可以不经修改直接在C++环境中运行。
3)C++仍然支持面向过程的程序设计,是一种理想的结构化程序设计语言,又几乎全部包含了面向对象程序设计的特征。
4)C++继承了C语言的高效率、灵活性等优点,C++使程序“结构清晰、易于扩展、易于维护而不失效率”。
5)C++是一种标准化的、与硬件基本无关的、广泛使用的程序设计语言,具有很好的通用性和可移植性。
C++程序通常无需修改,或稍作修改,即可在其他计算机系统上运行。
6)具有丰富的数据类型和运算符,并提供了功能强大的库函数。
6.程序设计有哪些主要步骤分析问题、系统设计、用某种程序设计语言编程、测试与调试、整理并写出所有的文档资料、运行与维护。
中国大学mooc《C语言程序设计(郑州轻工业大学) 》满分章节测试答案
titleC语言程序设计(郑州轻工业大学) 中国大学mooc答案100分最新版content点击这里,复制通过码第一章绪论第一章单元测验1、通常把高级语言源程序翻译成目标程序的程序称为( )。
答案: 编译程序2、关于C语言,下面叙述不正确的是()。
答案: 不用编译可以直接运行。
3、程序的开发步骤中不包括()。
答案: 编译链接4、 zzuliOJ的1000:从今天开始入坑C语言通过码答案: ikJ3Wx00syCxTCfJJpvCjVRSePQ5、 zzuliOJ的1001:整数a+b 通过码答案: jkJ2W0pnsnCxTCfJJpvCjVRSePU6、 zzuliOJ1002: 简单多项式求值通过码答案: g0QlCkxntSyxTCfJJpvCjVRSePY第二章简单C程序设计第二单元测验1、关于定点数和浮点数的说法,下列说法错误的是()。
答案: 浮点数表示的数即是数值的精确值2、以下哪种运算能从变量x中取得十进制最低位的数字()。
答案: x % 103、以下哪个数字的值最大()。
答案: 1e24、设有变量定义: float x=2.5; double y=6.0; 则表达式 (int)x / y的值为( )。
(如果结果是浮点类型,用小数点后一位数字表示)答案: 3.05、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
答案: 正确6、变量被定义后没有赋值,其值不可以使用,是内存中残留的垃圾值。
答案: 正确7、变量是在程序执行期间其值可以改变的量,必须先定义后使用。
答案: 正确8、当赋值语句右边表达式类型与左边变量类型不一致时,以右边表达式的值作为赋值表达式的值。
答案: 错误9、 zzuliOJ1003:两个整数的四则运算通过码答案: ikcgXkln5yyxTCfJJpvCjVRSePc10、 zzuliOJ1004:三位数的数位分离通过码答案: iUUkWxg2s3CxTCfJJpvCjVRSePA11、 zzuliOJ1005:整数幂通过码答案: gx5zX082t3SxTCfJJpvCjVRSePE12、 zzuliOJ1006:求等差数列的和通过码答案: 2B8gCk5k5SKxTCfJJpvCjVRSePI13、 zzuliOJ1007:鸡兔同笼通过码答案: iUNzXx015nCxTCfJJpvCjVRSePM14、 zzuliOJ1008:美元和人民币通过码答案: ihJzCkoyvXGxTCfJJpvCjVRSePw15、 zzuliOJ1009:求平均分通过码答案: 2BFyWhs2vHexTCfJJpvCjVRSeP016、 zzuliOJ1010:求圆的周长和面积通过码答案: jBRzD043syWxTCfJJpvCjVRSefQ17、 zzuliOJ1011:圆柱体表面积通过码答案: ixcjXxxnsHaxTCfJJpvCjVRSefU18、 zzuliOJ1012:求绝对值通过码答案: iRV2UR8x5iSxTCfJJpvCjVRSefY19、 zzuliOJ1013:求两点间距离通过码答案: 2hEgXEczsCyxTCfJJpvCjVRSefc20、 zzuliOJ1014:求三角形的面积通过码答案: 2BF1Xkg74iexTCfJJpvCjVRSefA21、 zzuliOJ1015:计算时间间隔通过码答案: 2RMnWUk6sXSxTCfJJpvCjVRSefE22、 zzuliOJ1015:银行利率通过码答案: 3xZxWBswvCSxTCfJJpvCjVRSefI第二章简单C程序设计小练习-不计分1、以下哪种运算能从变量x中取得十进制最低位的数字()。
C语言程序设计上机实验指导与习题参考答案(第四版)
C语言程序设计上机实验指导与习题参考答案(第四版)C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。
(3)通过运行简单的 C 程序,初步了解 C程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。
includequotstdio.hquotmain printfquotThefirstCProgramnquot 具体操作步骤(1)在编辑窗口中输入程序。
(2)保存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
,则该题完成。
4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。
(2)保存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中介绍的方法进入在线评判系统。
(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。
(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章 C语言概述 一、简答题 1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。 2.顺序结构,分支结构,循环结构 3.所谓算法就是为解决一个问题而采取的方法和步骤。 算法的特性:有穷性、确定性、输入、输出、可行性。 表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。 二、算法 1. 瓶子A里盛有醋 瓶子B里盛有酱油 有一个空瓶C 将A中的醋倒入C 将B中的酱油倒入A 将C中的醋倒入B 2. 输入一个数放在a中 max = a 以下步骤重复9次: 输入一个数放在a中 如果a>max,max=a 打印max的值 3. 如果 atemp=a a=b b=temp 如果 c>a temp = a a=c c=temp 否则 如果 c>b temp=b b=c c=temp 打印a,b,c的值 4. i=1 sum=0 以下程序循环100遍: sum=sum+i i=i+1 打印sum的值 5. 如果(n除以3的余数为0 并且 n除以5的余数为0) n能够同时被3和5整除 否则 n不能够同时被3和5整除 6. i=101 以下语句循环50遍: j=2 flag=1 当j<(i除以2的整数部分)时循环以下语句: 如果i除以j的余数为零 flag=0 退出该循环 如果flag==1 打印i的值 i=i+2 7. 如果mtemp=m m=n n=temp i=n 做以下循环,直到m,n能够被i整除: 如果m能够被i整除并且n能够被i整除 i即是m和n的最大公约数 跳出循环 否则 i=i-1 打印i的值 8. data=b*b—4*a*c 如果data>0 否则 如果data=0 x1=x2=—b/2 否则 无实数解 三、编程题 1. main() { printf(“##############################\n”); printf(“ How do you do? \n”); printf(“##############################\n”); } 2. main() { int a,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(“sum=%d”,a+b+c); } 第二章 数据类型与表达式 一、单项选择题 1. B 2. C 3. A 4. A 5. D 6. B 7.A 8.C 9.D 二、写出下列程序的运行结果 1. aabb cc abc AN 2. ab 9798 3. 9,11,9,10 4. a=2,b=3,c=2 5. s1=2.500000 s2=3 三、编程题 main() { char c1='c',c2='h',c3='i',c4='n',c5='a'; c1=c1+4; c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 第三章 顺序程序设计 选择题 1)B 2)D 3)D 4)A 5)A 6)B 7)B 8)A 9)D 10)C 11)D 12)A 填空题 1)b 2)261 3)25 21 37 4)abc 5)5.0,4,c=3 6)3 编程题 #define PI 3.1415926 main( ) { float h, r, l, sv, sz ; printf(“请输入圆的半径r,圆柱高h:\n”) ; scanf(“%f,%f”,&r, &h) ; l=2* PI *r ; s= PI *r*r ; sv=3.0/4.0* PI *r*r*r ; sz= PI *r*r*h ; printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2f\n”, l, s) ; printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2f\n”, sv, sz) ; } 2、 main( ) { float c, f ; printf(“请输入一个华氏温度:\n”) ; scanf(“%f”, &f) ; c=5.0/9.0*(f-32) ; printf(“摄氏温度为:%6.2f\n”, c) ; } 第四章 循环程序设计 一、选择题 1.D 2.D 3.D 4.C 5.D 6.A 7.B 8.B 9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D 21.A 二、填空题 1.585858 2.0 3.18 4.8921 5.20,0 6.6 7.1,3,2 8.Year%400==0 year%100!=0 count++ 三、编程题 1. main() { long a; scanf(“%ld”,&a); if (a>=10000&&a<=99999) printf(“这是个五位数”); else if (a>=1000&&a<=9999) printf(“这是个四位数”); else if (a>=100&&a<=999) printf(“这是个三位数”); else if (a>=10&&a<=99) printf(“这是个二位数”); else if (a>=0&&a<=9) printf(“这是个一位数”); else printf(“输入错误”); } 3. main() { int a; int g,s,b;//个位、十位、百位 printf("水仙花数有:\n"); for(a=100;i<=999;a++) {g=a%10; s=a/10%10; b=a/100; if (a==g*g*g+s*s*s+b*b*b) printf("%d ",a); } printf("\n"); } 4、 main() {int i,n; printf("input n:"); scanf("%d",&n); printf("\n%d=",n); for(i=2;i<=n;i++) {while(i!=n) if(n%i==0) {printf("%d*",i);n/=i;} else break; } printf("%d\n",n); } 5、 #include “stdio.h” main() { char c; int w,x,y,z; w=x=y=z=0; while((c=getchar())!=’\n’) { if((c>’a’&&c<’z’)||(c>’A’&&c<’Z’)) w++; else if (c==’ ’) x++; else if (c>’0’&&c<’9’) y++; else z++; } printf(“英文字母个数:%d\n”,w); printf(“空格个数:%d\n”,x); printf(“数字个数:%d\n”,y); printf(“其他字母个数:%d\n”,z); } 6、main() { float h=100,t=100; int j; for(j=1;j<10;j++) { t=t/2; h=h+t*2; } printf(“共经过:%f 米\n”,h); printf(“第十次反弹 %f 米\n”,t/2); } 第五章 数 组 一、单项选择题 1. B 2. A 3. C 4. C 5. D 6. B 7.C 8.B 9.C 10. B 二、写出下列程序的运行结果 1.S=368 2. ***** ***** ***** ***** ***** 3.S1=18 S2=10 4.!margorP 5. 数字0的出现次数是:3 数字1的出现次数是:2 数字2的出现次数是:2 数字3的出现次数是:2 数字4的出现次数是:0 数字5的出现次数是:1 数字6的出现次数是:1 数字7的出现次数是:1 数字8的出现次数是:1 数字9的出现次数是:1 三、编程题 1.#include "stdio.h" main() {int a[11]; int i,j,t; printf("input 10 number:\n"); for (i=1;i<11;i++)