C语言程序设计习题解答

合集下载

C语言程序设计教程课后习题答案

C语言程序设计教程课后习题答案

C语言程序设计教程课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2C语言程序的基本结构是怎样的?举一个例子说明。

答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。

3C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。

4★指出合法与不合法的标识符命名。

答AB12--√ leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--×XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。

答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序)Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。

6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。

①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main(){ int a,b,c,t;printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。

C语言程序设计课后各章节习题答案

C语言程序设计课后各章节习题答案
答include"math.h"
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语言程序设计(科学出版社)课后习题解答

第3章习题解答第1章1.C 言语程序主要由预处理命令、函数、注释等组成。

.2.填空(1)分号(2)main(3)stdio.h3.源程序:include<stdio.h>main( ){printf(“XXXXXXXXXXXXXXXXXXXXXXXXX\n〞); printf(“Hello World!\n〞);printf(“XXXXXXXXXXXXXXXXXXXXXXXXX〞);}4.源程序:include <stdio.h>main( ){int a, b, c; /X 定义变量X/scanf(“%d〞, &a); /X 输入第—个整数X/scanf(“%d〞, &b); /X 输入第二个整数X/c=a-b; /X 计算差X/printf(“%d-%d=%d〞,a,b,c); /X 输出结果X/}5.(1)<stdio.h>(2)x=10;(3)printf(“s=%d\n〞,s);第2章1.(1) c(2) a(3) b g(4) a d e(5) d2. a. 5 b. 295 c. 4 d. 29 e. 93. a.x=4,y=6b. x=4,y=3f.x=3,y=64. 165.include<stdio.h>main(){int a,b,c;scanf("%d%d",&a,&b);c=aXb;printf("%dX%d=%d",a,b,c);}第3章1.(1) b(2) b(3) d(4) a(5) b2.(1)&a,&b(2)l,s3. printf(“x=%.2f,y=%.2f\n〞,x,y);4.include<stdio.h>main(){int num1,num2,num3,sum;float average;scanf("%d%d%d",&num1,&num2,&num3);sum=num1+num2+num3;average=sum/3.0;printf("sum=%d,average=%.2f\n",sum,average);}5.include<stdio.h>main(){int hour,minute,second,total; /X 定义变量代表时、分、秒和总秒数X/ scanf("%d",&total);hour=total/3600;minute=total%3600/60;second=total%3600%60;printf("%dhours:%dminutes:%dseconds\n",hour,minute,second);}第4章1.(1) a(2) b(3) b(4) b(5) b2. 03.(1) 6(2) 4(3) 1(4) 14.include <stdio.h>main( ){int x,y;scanf("%d",&x);if (x>-5 &x<0)y=5Xx;if (x == 0)y=-1;if (x>0 &x<10)y=2Xx+1;printf("x=%d,y=%d\n",x,y);}5.include <stdio.h>main( ){int score,rank; /X score 表示成绩,rank 表示级别X/ printf("Please input score:");scanf("%d",&score);rank=score/10;switch(rank){case 10:case 9: printf("成绩等级为:A\n"); break;case 8: printf("成绩等级为:B\n"); break;case 7: printf("成绩等级为:C\n"); break;case 6: printf("成绩等级为:D\n"); break;default:printf("成绩等级为:E\n"); break; }}6.include<stdio.h>void main(){int n;printf("Please input the digit:");scanf("%d",&n);switch(n){case 1:printf("Jan \n");break;case 2:printf("Feb \n");break;case 3:printf("Mar \n");break;case 4:printf("Apr \n");break;case 5:printf("May \n");break;case 6:printf("Jun \n");break;case 7:printf("Jul \n");break;case 8:printf("Agu \n");break;case 9:printf("Sep \n");break;case 10:printf("Oct \n");break;case 11:printf("Nov \n");break;case 12:printf("Dec \n");break;}}第5章1.(1) b(2) a(3) b(4) d(5) d2. 7,13. y=-14. m=65. 10,146. 37. 58. ABABCDCD9.include <stdio.h>main ( )int i;long int sum=0;for (i=2;i<=200;i+=2)sum+=i;printf("2+4+6+...+200=%ld",sum); }10.include <stdio.h>main(){long int n;int sum = 0;printf("Please input the nber:"); scanf("%ld",&n);while(n != 0){sum += n % 10;n /= 10;}printf("%d\n", sum);}第6章1.(1) d(2) b(3) d(4) c(5) a2. 113. 34. 56895. 12,66. (1) i--(2) n7. (1) char k; (2) i<j8.include <stdio.h>main( ){float a10];int i;float sum=0,average;for (i=0;i<10;i++)printf("a%d]=",i);scanf("%f",&ai]);sum+=ai];}average=sum/10;printf("average is %.2f\n",average);}9.include <stdio.h>define N 10main( ){int aN],i,target,found;for (i=0;i<N;i++)scanf("%d",&ai]);printf("Please input a number:");scanf("%d",&target);i=0;while(i<N &target != ai])i++;found = i<Ni:-1;printf("%d\n",found);}10.include <stdio.h>define N 80main( ){char strN];int len=0,i=0;printf("Please input a string:");gets(str);while (stri++!= 0) len++;printf("the length of string is %d.\n",len); }第7章1. 212. 1363. 164. (1) func (2) m++5. 96. 1,6,3,2,37. 2,5,1,2,3,-28.include <stdio.h>int fun(int a,int b,int c);main( ){int a,b,c,max;printf("Please input three numbers:"); scanf("%d%d%d",&a,&b,&c);max=fun(a,b,c);printf("Max is %d.\n",max);}int fun(int a,int b,int c){int max;max= a>b(a>ca:c):(b>cb:c);return max;}9.include <stdio.h>long int sum(int n);main( ){int n;printf("n=");scanf("%d",&n);printf("Sum=%ld.\n",sum(n));}long int sum(int n){if (n = = 1 ) return 1;else return sum(n-1)+n;}10.include <stdio.h>void fun(n);main( ){int n;printf("n=");scanf("%d",&n);fun(n);}void fun(n)if (n = = 0) return;else{fun(n/2);printf("%-2d",n%2);}}第8章1.(1) b(2) d(3) b(4) c(5) c2. 83. 1234567894. 2 3 4 5 65. 3456. 1 2 3 4 5 67. bi8. bcdefgha9. p=sum10.include <stdio.h>include <string.h>main(){char str80];char Xp1, Xp2;gets(str);p1=str;p2=str+strlen(str)-1;while (p1<p2 &Xp1++ == Xp2-- ) ; puts( p1<p2 "不是回文" : "是回文" ); }第9章1.a. define F(x) (x)X(x)X(x)b. define F(x) (x)%4c. define F(x,y) (x)X(y)<1001:02.b. 4c. define DOUBLE(x) 2X(x)3. d4. -205. N is undefined6. 7.57. y=68.include <stdio.h>define SW AP(a,b) {int temp;temp=a;a=b;b=temp;}main(){int x,y;printf("x=");scanf("%d",&x);printf("y=");scanf("%d",&y);SWAP(x,y)printf("x=%d,y=%d.\n",x,y);}第10章1.struct student{int sno;char sname10];char sex;}stu1,stu2;2. 123. 合法的有a,b,dc.改成s.u.rectangle.length=25;e.改成s.u.circle.radius=5;f.改成s.u.circle.radius=5;4. a,b,c,d (说明:变量b 有确定的值之后,b++是合法的。

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

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

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>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<b)max=b;if (max<c)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.h>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 <stdio.h>#include <math.h>int 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语言习题(详细解答)

C语言习题(详细解答)

程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。

A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。

所以选项A)、B)、C)说法都不完整。

2.以下关于简单程序设计的步骤和顺序的说法中正确的是。

A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。

②算法设计:给出解决问题的步骤,即算法。

③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。

④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。

⑤程序调试:对编写好的程序进行调试,修改程序中的错误。

⑥程序文档编写与程序维护。

综上所述,B)选项是符合上述描述的,其他选项不恰当。

3,叙述中正确的是________。

A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。

故本题答案为C)。

4.以下叙述中正确的是。

A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。

C程序可以分模块写在不同的文件中,编译时再将其组合在一起,选项D)错误。

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案默认分类2007-09-10 12:38:44 阅读6618 评论13 字号:大中小订阅【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

错误:main函数可以放在程序的任何位置。

并不限定在程序的开头。

1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

错误:不可以交叉出现,数据说明部分在执行语句部分的前面。

1.9 编辑与编译不是一回事。

错误:不是一回事。

编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。

1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。

正确1.11 注释内容太多会影响程序的执行效率。

错误:不会影响程序的执行效率。

因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。

1.12 所有的数学公式可以直接出现在源程序中。

错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。

三、编程题1.13 在屏幕上输出自己名字的拼音。

提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。

1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。

提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15 输入两个整数,输出其中最大者。

提示:模仿例1.31.16 输入三个整数,输出其中最小者。

提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2.2 C语言中的标识符的定义规则?2.3 变量为什么要“先定义,后使用”?2.4 字符常量'a'与字符串常量"a"有何区别?2.5 大小写字母转换的规则是什么?2.6 变量的具有哪三种属性?二、单项选择题2.7C语言中,int型数据在内存中的存储形式是(D)。

C语言程序设计习题及答案

C语言程序设计习题及答案

C语言程序设计习题及答案算法与程序设计1.将三个数排序需要比较______次A、2B、3C、4D、不确定2.算法的表示方法有________A、自然语言,传统流程图,N-S流程图,伪代码,计算机语言B、高级语言,汇编语言,机器语言C、C语言,QBASIC语言,InterDevD、图形图像法,描述法,编程法E、计算机语言3.算法的表示方法有_______4.算法有哪些特性?5.什么叫算法?为什么要提倡结构化算法?习题答案:1.B 2.A 3 自然语言,传统流程语言,N-S流程图,伪代码,计算机语言 4.略 5.略C语言概述1.C语言程序的基本单位是(A )。

A、函数B、过程C、子程序D、子例程2.下列各选项中,合法的c语言关键字是( D )。

A、integexB、sinC、stringD、void3.下列选项中,是C语言提供的合法的关键字的是( C )A、swicthB、cherC、defaultD、Case4.下列叙述不正确的是( B )A、在c程序中,%是只能用于整数运算的运算符B、在C程序中,无论是整数还是实数,都能正确无误地表示C、若a是实型变量,c程序中a=20是正确的,因此实型变量允许被整型数赋值D、在C程序中,语句之间必须要用分号“;”分隔5.在C程序中,可以作为用户标识符的一组标识符是( B )。

A、void define WORDB、as_b3 _224 ElseC、switch _wel easeD、4b DO SIG6.下列不合法的十六进制数是( A)A、oxffB、0XcdeC、OxllD、Ox237.在c语言中,下列合法的字符常量是( B )A、'\039'B、'\x76'C、'ab'D、'\o'8 以下选项中合法的用户标识符是( D )A、intB、a#C、5memD、_2439.(A )是构成c语言程序的基本单位A、函数B、变量C、子程序D、语句10.一个C语言程序总是从( B )开始执行A、主过程B、主函数C、子程序D、主程序11.以下叙述不正确的是( D )A、一个c源程序可由一个或多个函数组成B、一个C源程序必须包含一个main()函数C、c程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面12.在C语言中,数字029是一个(D)A八进制数B十六进制数C十进制数 . D非法数13.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( C )。

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

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

C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。

A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。

A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。

A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。

A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。

A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。

A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。

int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。

A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。

A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。

y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。

A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。

printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》习题解答沈国荣隋雪莉闵芳目录第1章 C语言程序设计概述1第2章数据类型及其运算2第3章语句与输入输出3第4章选择结构程序设计4第5章循环结构程序设计7第6章数组9第7章函数12第8章编译预处理14第9章指针15第10章结构体与共用体18第11章位运算21第12章文件操作22第1章 C语言程序设计概述一、选择题1 2 3 4 5 6 7 8 9 10ACBBDCBDAC二、填空题1. 函数、main()函数2. /*、*/3. .C、.OBJ、.EXE4. 顺序结构、选择结构、循环结构三、编程题1.【参考代码】#include<stdio.h>int main( ){牰湩晴?(学校名称)\n ) ;27/ 1牰湩晴?(姓名)\n ) ;return 0 ;}2.【参考代码】#include<stdio.h>int main( ){牰湩晴?(学校名称)\n(姓名)\n ) ; return 0 ;}第2章数据类型及其运算一、选择题12345678910B B A CDC 、C CD A B20 19 12 16 13 15 18 14 11 17ADDCDCDC注:第5题B选项为:'\'' '\017' '\t'二、填空题1. 字母、数字、下划线2. 1、4、4、84. 3.55. 06. 97. 68. -609. y%2==110. 1、0、1三、程序阅读题1. b2. 03. 04. 10,25. 9,10,9,106. 3,1,0,07. 3,20,30,127/ 2第3章语句与输入输出一、选择题1 2 3 4 5 6 7 8 9 10ACBBBDCBCC二、填空题1. 123.472. D3. 回车4. 10,2三、程序阅读题1. 2612. 204. y=4630y=46305. *3.140000,3.142*6. c:dec=120,oct=170,hex=78,ASCII=x7. x=1 y=2 *sum*=310 squared is : 1008. 2 48 20.2 20.29. x+y+z=4810. 55, ,A四、编程题1.【参考代码】#include<stdio.h>int main( ){char ch;牰湩晴尨请输入一个字符:\n);scanf(%c,&ch);printf(%c的ASCII码为:%d\n, ch,ch); return 0 ;}2.【参考代码】#include<stdio.h>#define PI 3.1416int main( ){double r, h;double cl,cs,cv;牰湩晴尨请输入圆的半径:);27/ 3scanf(%lf, &r);牰湩晴尨请输入圆柱高:);scanf(%lf, &h);cl=2*PI*r;cs=PI*r*r;cv=PI*r*r*h;牰湩晴尨圆的周长为:%.4lf\n, cl); 牰湩晴尨圆的面积为:%.4lf\n, cs); 牰湩晴尨圆柱的体积为:%.4lf\n, cv); return 0 ;}3.【参考代码】#include<stdio.h>int main( ){int splitInt,one,ten,hundred;牰湩晴尨输入要处理的整数:);scanf(%d,&splitInt);hundred = splitInt/100;ten = splitInt_x0010_0/10;one = splitInt_x0010_;牰湩晴尨个位:%d,十位:%d,百位:%d\n,one,ten,hundred); return 0 ;}第4章选择结构程序设计一、选择题1 2 3 4 5 6DCBBCC二、程序阅读题10 1.2,2,2 2.6 3.97,b 4.c=-1 5.8888 6.20,0 7.2,1 8.1,1 9.2,22,127/ 4-2,210. a=1,b=3三、程序完善题1. a>b、c>x四、编程题1.【参考代码】#include<stdio.h>int main( ){int a, b, c,d,min;牰湩晴尨输入4个整数:);scanf(%d%d%d%d,&a,&b,&c,&d);if(a < b) min = a;else min = b;if(c < min) min=c;if(d<min) min=d;printf(%d\n,min);return 0 ;}2.【参考代码】#include<stdio.h>int main( ){int num,a,b,c,d;牰湩晴尨请输入一个四位整数:);scanf(%d,&num);a=num/1000;b=num_x0010_00/100;c=num_x0010_0/10;d=num_x0010_;牰湩晴尨各位数字之和为:%d\n,a+b+c+d); return 0 ;}3.【参考代码】#include<stdio.h>int main( ){int x;牰湩晴尨请输入x:);scanf(%d,&x);printf(y的值为:);if(x<0)printf(%d\n,x);else if(x<50)27/ 5printf(%d\n,3*x-2);else if(x<100)printf(%d\n,4*x+1);elseprintf(%d\n,5*x);return 0 ;}4.【参考代码】#include<stdio.h>int main( ){int dj;float zl,je,yfk;牰湩晴尨请输入等级(1~4): );scanf(%d,&dj);if (dj>4||dj<1){牰湩晴尨无此等级的苹果!\n);return 0;}牰湩晴尨请输入重量(公斤): );scanf(%f,&zl);printf(\);switch (dj){case 1 : je=5.5*zl; break;case 2 : je=4.3*zl; break;case 3 : je=3.0*zl; break;case 4 : je=2.5*zl; break;}牰湩晴尨您选择苹果级别: %d 级\n,dj);牰湩晴尨您购买苹果重量: %.2f公斤\n,zl); 牰湩晴尨您应付金额为: %.2f元\n,je); printf(\);牰湩晴尨顾客所付金额: );scanf(%f,&yfk);if (yfk<je){printf(Data Error!\n);return 0;}牰湩晴尨应找您: %.2f元\n,yfk-je);return 0 ;}27/ 6第5章循环结构程序设计一、选择题1 2 3 4 5 6 7 8(1) 8(2) 9 10 11BBCBCCBBBDBA二、程序阅读题1. 1,2,02 . m=4,n=23. A2C4E64. 1325. 46. k=0,m=57. x=88. 1.69. 998988三、程序完善题1. ( ch > 'Z' && ch <= 'Z' + 4 ) ||(ch > 'z' )ch - 262. k k/10 continue3. i + t * 10s = s + t4. fabs( t ) >= 1e-6 f = -f5. i<10 j%3 !=0四、编程题1.【参考代码】#include<stdio.h>int main( ){int n , i , j , k ;printf( Output:\n ) ;for(n = 100 ; n<1000 ; n++ ){i = n % 10 ;/* 个位*/j = ( n / 10 ) % 10 ;/*十位*/k = n / 100 ;/* 百位*/if ( n == i * i * i + j * j * j + k * k * k )printf( %d\n , n ) ;}return 0 ;}2. 【参考代码】#include<stdio.h>int main ( )27/ 7{int i , m , n , t , p , k ;printf( Please input: ) ;scanf ( %d,%d , &m , &n ) ;if( m < n ){t = n ;n = m ;m = t ;}p = m * n ;while ( n != 0 )/*余数不为0,继续相除,直到余数为0 */ {i = m % n ;m = n ;n = i ;}k = p / m ;printf( %d,%d\n , m , k );return 0 ;}3. 【参考代码】#include<stdio.h>int main( ){int i , n , t , sum ;t = 1 ;sum = 0 ;printf( Please input: n = ) ;scanf( %d , &n ) ;for( i = 1 ; i <= n ; i++ ){t = t * i ;sum = sum + t ;}printf( !+2!+…+%d!= %d\n , n , sum ) ; return 0 ;}4. 【参考代码】#include<stdio.h>int main( ){int i , m ;double sum = 0 , k = 1 ;27/ 8printf( Please input : m= ) ;scanf( %d , &m ) ;for( i = 1 ; i <= m ; i++ ){sum = sum + k / i ;k = -k ;}printf( sum=%4.2f\n , sum ) ;return 0 ;}数组章第6一、选择题1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16BDDDBDCDCBDCCDD二、程序阅读题1 82430,24125t*M6mo7 fwo三、程序完善题1 k = i j = ia[k] = max a[j] = max2 sum += score[i] score[i]<avg3s[i] = s[i] + a[i][j]printf( \) ;4j = strlen( str ) –1str[j] = k5( c = getchar( ) ) != '#' num[c-'A'] += 1四、编程题1. 【参考代码】#include<stdio.h>#define N 5int main( ){int a[N] , i , j , r , temp ;printf( Please input %d numbers\n , N ) ; for( i = 0 ; i < N ; i++ )scanf( %d , &a[i] ) ;for( i = 0 ; i < N - 1 ; i++ ){27/ 9r = i ;for( j = i + 1 ; j < N ; j++ )if( a[j] < a[r] )r = j ;if( r != i ){temp = a[r] ;a[r] = a[i] ;a[i] = temp ;}}printf( The array after sort:\n ) ;for( i = 0 ; i < N ; i++ )printf( ] , a[i] ) ;printf( \) ;return 0 ;}2. 【参考代码】#include<stdio.h>int main( ){int a[10] = { 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 } ;int x , j , k = 0 ;printf( Please input :x= ) ;scanf( %d , &x) ;if( x > a[7] )a[8] = x ;else{for( j = 0 ; j < 8 ; j++ )if( x < a[j] )break ;for(k = 8 ; k > j ; k-- )a[k] = a[k - 1] ;a[j] = x ;}for( j = 0 ; j < 9 ; j++ )printf( ] , a[j] ) ;printf( \) ;return 0 ;}3. 【参考代码】#include<stdio.h>int main( )27/ 10{int a[5][5] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24} ; int i , j ,sum = 0 ;for ( i = 0 ; i < 5 ; i++ ){for ( j = 0 ; j < 5 ; j++)printf( M , a[i][j] ) ;printf( \) ;}for( i =0 ;i < 5 ; i++ )sum += a[i][i] ;printf( sum=M\n , sum ) ;return 0 ;}4. 【参考代码】#include<stdio.h>int main( ){char s1[100] , s2[30] ;int i , j ;printf( Please input s1: ) ;gets( s1 ) ;printf( Please input s2: ) ;gets( s2 ) ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;for( j = 0 ; s2[j] != '\0' ; j++ , i++ ) s1[i] = s2[j] ;s1[i] = '\0' ;printf( Output\ns1: ) ;puts( s1 ) ;return 0 ;}5. 【参考代码】#include<stdio.h>int main( ){char s1[100] ;int i ;printf( Please input s1: ) ;gets( s1 ) ;for( i = 0 ; s1[i] != '\0' ; i++ ) ; printf( The length of s1 is %d\n ,i ) ; return 0 ;}27/ 11第7章函数一、选择题二、程序阅读题1max is 22 a=1,b=23 1 114 a=11,b=12,c=25 667 8 978 1780 1 2 0 1 2三、程序完善题1 float area ( float r ) return s2z = fun( x , y ) z = z * x3count =fun( score ) count++四、编程题1. 【参考代码】#include<stdio.h>int main( ){void f(int n) ;int n ;printf( Please input: n= ) ;scanf( %d , &n ) ;if( n <= 0)printf( Wrong number!\n ) ;elsef( n ) ;return 0 ;}void f(int n){if( n % 2 == 1 )printf( %d is a odd number.\n , n ) ; elseprintf( %d is a even number.\n , n ) ; }2. 【参考代码】#include < stdio.h >#include < math.h >27/ 12int main( ){void f( int m ) ;int m ;printf( Please input: m= ) ;scanf( %d , &m ) ;f( m ) ;return 0 ;}void f( int m ){int i , k ;k = sqrt( m );for(i = 2 ; i <= k ; i++ )if( m % i == 0 )break;if (i >= k + 1 )printf( %d is a Prime Number.\n , m ) ;elseprintf( %d is not a Prime Number.\n , m ) ; }3. 【参考代码】#include<stdio.h>int gys( int m , int n ){int r ;r = m % n ;while( r != 0 ){m = n ;n = r ;r = m % n ;}return n ;}int gbs( int m , int n , int r ){return m * n / r ;}int main( ){int m , n , t ;printf( Please input(m,n):) ;scanf( %d%d , &m , &n ) ;27/ 13if( m < n ){t = m ;m = n ;n = t ;}t = gys( m , n ) ;printf( gys=%d\n , t ) ;t = gbs( m , n , t ) ;printf( gbs=%d\n , t ) ;return 0 ;}4. 【参考代码】#include<stdio.h>int main( ){void mystrcat( char s1[100] , char s2[30] ) ; char s1[100] , s2[30] ;printf( Please input s1: ) ;gets( s1 ) ;printf( Please input s2: ) ;gets( s2 ) ;mystrcat( s1 , s2 ) ;printf( Output\ns1: ) ;puts( s1 ) ;return 0 ;}void mystrcat( char s1[100] , char s2[30] ){int i , j ;for( i = 0 ; s1[i] != '\0' ; i++ ) ;for( j = 0 ; s2[j] != '\0' ; j++ , i++ )s1[i] = s2[j] ;s1[i] = '\0' ;}编译预处理章第8一、选择题1 2 3 4 5 6AABADD二、程序阅读题16,1827/ 1421535第9章指针一、选择题二、填空题1. 地址,NULL(或0)2 . char a, *p; ,scanf(%c, &a); ,p=&a;3. *m4. for( k=0; k<10; k++ )5. *(p+i) ,p[i] ,*(x+i)6. str[i]或*( str + i ) ,i三、程序阅读题1. gae2. bcdABCD3. 7, 8, 84. 8 45. 3 14 26. efgh7. w,one8. 7四、程序完善题1. a[i] 或*( a + i )2. *p!='\0' *p-'0'3. p1 p2-x4. max(int a , int b );p = max四、编程题1.【参考代码】#include<stdio.h>void sort( int *a , int *b , int *c );int main(){int m , n , t ;printf( Please input(m n t): ) ;scanf( %d%d%d , &m , &n , &t ) ;sort( &m , &n , &t ) ;27/ 15printf( The result is :%d\t%d\t%d\n , m , n , t ) ; return 0 ;}void sort( int *a , int *b , int *c ){int temp ;if( *a > *b ) { temp = *a ; *a = *b ; *b = temp ; } if( *a > *c ) { temp = *a ; *a = *c ; *c = temp ; } if( *b > *c ) { temp = *b ; *b = *c ; *c = temp ; } }2.【参考代码】程序1:#include <stdio.h>int strcompare( char *str1 , char *str2 );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ;scanf( %s , s2 ) ;m = strcompare ( s1 , s2 ) ;printf( The result of strcompare is: %d\n , m ) ; return 0 ;}int strcompare( char *str1 , char *str2 ){while( ( *( str1 + i ) == *( str2 + i ) ) &&( *( str1 + i ) != '\0' ) ) i++ ;return( *( str1 + i ) - *( str2 + i ) ) ;}程序2:#include <stdio.h>int strcompare( char *str1 , char *str2 );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ;27/ 16scanf( %s , s2 ) ;p1 = s1 ;p2 = s2 ;m = strcompare ( p1 , p2 ) ;printf( The result of strcompare is: %d\n , m ) ;return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( *( str1 + i ) == *( str2 + i ) ) &&( *( str1 + i ) != '\0' ) ) i++ ;return( *( str1 + i ) - *( str2 + i ) ) ;}程序3:#include <stdio.h>int strcompare( char str1[] , char str2[] );int main( ){int m ;char s1[20] , s2[20] , *p1 , *p2 ;printf( Please input(string1): ) ;scanf( %s , s1 ) ;printf( Please input(string2): ) ;scanf( %s , s2 ) ;p1 = s1 ;m = strcompare ( p1 , p2 ) ;printf( The result of strcompare is: %d\n , m ) ; return 0 ;}int strcompare( char *str1 , char *str2 ){int i = 0 ;while( ( str1[i] == str2[i] ) &&( str1[i] != '\0' ) ) i++ ;return( str1[i]- str2[i] ) ;}27/ 17第10章结构体与共用体一、选择题1 2 3 4 5 6 7 8 9 10 11DCCDCBBDACD二、填空题1. 162 . p->next=head->next head->next=p3. p->next三、程序阅读题1. 51,60,212. 163. 1001,ChangRong,1098.0四、程序完善题1. sizeof( struct ps ) 或sizeof( bt )2. p=p->next3. person[i].sex五、编程题1.【参考代码】#define N 3#include <stdio.h>struct student{char num[6] ;char name[8] ;int score[2] ;float ave ;} ;void input( struct student stu[N] ) ;void average( struct student stu[N] ) ;int max( struct student stu[N] ) ;int main( ){int i , j ;struct student stu[N] ;input( stu ) ;average( stu ) ;printf( No\tName\tScore1\tScore2\tAverage\n ) ; for( i = 0 ; i < N ; i++ ){printf( %s\t%s\t , stu[i].num , stu[i].name ) ; for( j = 0 ; j < 2 ; j++ )printf( %d\t , stu[i].score[j] ) ;27/ 18printf( %8.2f\n , stu[i].ave ) ;}i = max( stu ) ;printf( \The max is:\n ) ;printf( No\tName\tScore1\tScore2\tAverage\n ) ; printf( %s\t%s\t , stu[i].num , stu[i].name ) ;for( j = 0 ; j < 2 ; j++ )printf( %d\t , stu[i].score[j] ) ;printf( %5.2f\n , stu[i].ave ) ;return 0;}void input( struct student stu[N]){int i , j ;for(i=0;i<N;i++){printf(\Please input No%d student:\n,i+1);printf(No:);scanf(%s,stu[i].num);printf(Name:);scanf(%s,stu[i].name);for(j=0;j<2;j++){printf(score %d:,j+1);scanf(%d,&stu[i].score[j]);}}}void average( struct student stu[N]){int i , j , sum ;for(i=0;i<N;i++){for(j=0 , stu[i].ave = 0 ;j<2;j++)stu[i].ave += stu[i].score[j]; stu[i].ave = stu[i].ave / 2 ;}}int max( struct student stu[N]){int i , max , index;max = stu[0].ave ;index = 0 ;for( i = 1 ; i < N ; i++ )27/ 19{if( max < stu[i].ave ){max = stu[i].ave ;index = i ;}}return index;}2.【参考代码】#include<stdio.h>#include<stdlib.h>struct node{short int data ;struct node *next ;} ;typedef struct node NODE ;struct node *CreatLink( ) ;void PrintLink( NODE *head ) ;int max( NODE *head );int main( ){NODE *head ;int max_value ;head = CreatLink( ) ;PrintLink( head ) ;max_value = max( head ) ;printf( The max is:%d\n , max_value ) ; return 0 ;}struct node *CreatLink( ){NODE *head , *p , *q ;short int num ;head = ( NODE * )malloc( sizeof( NODE ) ) ; head->next = NULL ;p = head ;printf( Please input( end of -1)!:\n ) ;scanf( %d , &num ) ;while( num != -1 ){q = ( NODE *)malloc( sizeof( NODE ) ) ; 27/ 20q->data = num ;p->next = q ;p = q ;scanf( %d , &num ) ;}p->next = NULL ;return head ;}void PrintLink( NODE *head ){NODE *p;p = head->next ;printf( The data is:\n ) ; while( p != NULL ) {printf( M , p->data ) ;p = p->next ;}printf( \) ;}int max( NODE *head ) {NODE *p;short int max = -32768; p = head->next ;while( p != NULL ) {if( max < p->data )max = p->data ;p = p->next ;}return max ;}第11章位运算一、选择题1 2 3 4DBCA二、填空题1. 0000 11112 . x | ff0027/ 213. 4 3三、程序阅读题1. 02. 11 223. 0四、编程题1.【参考代码】#include<stdio.h>int main(){short int data , low ,high ;printf( Please input( short int): ) ;scanf( %d , &data ) ;low = data & 0x00ff ; /* 0x00ff表示低字节全1 */high = data & 0xff00 ; /* 0xff00表示高字节全1 */printf( data:0x%x,the value of low byte is:0x%x\n , data , high ) ;printf( data:0x%x,the value of high byte is:0x%x\n , data , low ) ;return 0 ;}2.【参考代码】#include <stdio.h>int main( ){short int data , result ;printf( Please intput(short int): ) ;scanf( %d , &data ) ;result = data ^ 0x000f ; /* 0x000f表示低4位全1,高12位全0 */printf( The data is 0x%x \nThe result is :0x%x\n , data,result ) ;return 0 ;}第12章文件操作一、选择题12C二、填空题1. 二进制ASCII(文本)2 . FILE *fp# include <stdio.h>27/ 223. n –1 buf的首地址4. 15. 用以获得文件读写位置标记指针的位置,函数返回值为当前文件读写位置标记指针相对于文件开头的字节数6. 使文件读写位置标记指针重新返回文件的开头三、程序阅读题1. 1 22. end3. 34. hello,四、程序完善题1. ! feof (fp) fgetc (fp)2. fopen (“num.dat”,”r”) fp,”%d”,&temp z++ ( ch=getchar() )ch , fp3.五、编程题【参考代码】1.#include<stdio.h>#include<stdlib.h>#include<string.h>int main( ){FILE *fp ;char str[100] , [10] ;int i = 0 ;if( ( fp = fopen( %upper.txt , w+ ) ) == NULL ){printf( Cannot open file!\n ) ;exit( 0 ) ;}printf( Please input(string):\n ) ;gets( str ) ;while( str[i] != '!' ){if( str[i] >= 'a' && str[i] <= 'z' )str[i] = str[i] - 32 ;fputc( str[i] , fp ) ;i++ ;}rewind( fp ) ;fgets( str , strlen( str ) + 1 , fp ) ;printf( \The result is :\n ) ;printf( %s\n , str ) ;fclose( fp ) ;return 0 ;27/ 23}2.【参考代码】#include<stdio.h>#include<stdlib.h>#define N 5struct student{char num[10] ;char name[8] ;int score[3] ;float ave ;} stu[N] ;int main( ){int i , j , sum ;FILE *fp ;for( i = 0 ; i < N ; i++ ){printf( \Please input student information: \n , i + 1 ) ;printf( No: ) ;scanf( %s , stu[i].num ) ;printf( Name: ) ;scanf( %s , stu[i].name ) ;sum = 0 ;for( j = 0 ; j < 3 ; j++ ){printf( Score%d: , j + 1 ) ;scanf( %d , &stu[i].score[j] ) ;sum += stu[i].score[j] ;}stu[i].ave = sum / 3.0 ;}if( ( fp = fopen( stud.dat , w ) ) == NULL ){printf( cannot open stud for write!\n ) ;exit( 0 ) ;}for( i = 0 ; i < N ; i++ ){fwrite( &stu[i] , sizeof( struct student ) , 1 , fp ) ;}fclose( fp ) ;if( ( fp = fopen( stud.dat ,) ) == NULL ){27/ 24printf( cannot open stud for read!\n ) ;exit( 0 ) ;}printf( \No\tName\tScore1\tScore2\tAverage\n ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof( struct student ) , 1 , fp ) ;printf( \%s\t%s\t%d\t%d\t%5.2f\n , stu[i].num , stu[i].name , stu[i].score[0] , stu[i].score[1] , stu[i].score[2] ,stu[i].ave ) ;}fclose( fp ) ;return 0 ;}3.【参考代码】#include<stdio.h>#include<stdlib.h>#define N 5struct student{char num[10] ;char name[8] ;int score[3] ;float ave ;} stu[N] ;int main( ){int i , j , min , index ;FILE *fp ;struct student temp ;/*从stud.dat文件中读入数据,存放在stu数组中*/if( ( fp = fopen( stud.dat ,) ) == NULL ){printf( cannot open stud for read!\n ) ;exit( 0 ) ;}printf( \The data is : ) ;printf( \No\tName\tScore1\tScore2\tAverage\n ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof(struct student ) , 1 , fp ) ;printf( \%s\t%s\t%d\t%d\t%5.2f\n , stu[i].num , stu[i].name , stu[i].score[0] , stu[i].score[1] , stu[i].score[2] ,stu[i].ave ) ;}27/ 25fclose( fp ) ;/*对stu数组中数组元素按其平均值数据域排序*/for( i = 0 ; i < N -1 ; i++ ){min = stu[i].ave ;index = i ;for( j = i + 1 ; j < N ; j++ ){if( min > stu[j].ave )index = j ;}if( index != i ){temp = stu[i] ;stu[i] = stu[index] ;stu[index] = temp ;}}/*将排序之后的stu数组存放在stu_sort文件中*/if( ( fp = fopen( stu_sort.dat , w ) ) == NULL ){printf( cannot open stud for write!\n ) ;exit( 0 ) ;}for( i = 0 ; i < N ; i++ ){fwrite( &stu[i] , sizeof(struct student) , 1 , fp ) ;}fclose( fp ) ;/*将stu_sort文件中的数据,读出存放在stu数组中*/if( ( fp = fopen( stu_sort.dat ,) ) == NULL ){printf( cannot open stud for read!\n ) ;exit( 0 ) ;}printf( \The result is:) ;/*将stu数组中的数据输出*/printf( \No\tName\tScore1\tScore2\tAverage\n ) ;for( i = 0 ; i < N ; i++ ){fread( &stu[i] , sizeof(struct student) , 1 , fp ) ;printf( \%s\t%s\t%d\t%d\t%5.2f\n , stu[i].num , stu[i].name , stu[i].score[0] , stu[i].score[1] ,stu[i].score[2] , stu[i].ave ) ;27/ 26}fclose( fp ) ;return 0 ;}27/ 27。

相关文档
最新文档