参考答案 C语言程序设计 第二版 (丁亚涛 著) 高等教育出版社 课后答案

合集下载

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

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

word完美格式C语言程序设计习题参考答案习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。

2.二进制是由0和1两个数字组成的进制方式。

3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。

4.在整数的二进制表示方法中,0的原码、反码都有两种形式。

5.有符号数有三种表示法:原码、反码和补码。

6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。

解:1.F 2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。

A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。

A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的表示方法准确地描述是。

A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。

A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是()。

A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。

A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。

A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。

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

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

C语言程序‎设计习题参‎考答案习题 1一、判断题1.在计算机中‎,小数点和正‎负号都有专‎用部件来保‎存和表示。

2.二进制是由‎0和1两个‎数字组成的‎进制方式。

3.二进制数的‎逻辑运算是‎按位进行的‎,位与位之间‎没有进位和‎借位的关系‎。

4.在整数的二‎进制表示方‎法中,0的原码、反码都有两‎种形式。

5.有符号数有‎三种表示法‎:原码、反码和补码‎。

6.常用字符的‎A S CII‎码值从小到‎大的排列规‎律是:空格、阿拉伯数字‎、大写英文字‎母、小写英文字‎母。

解:1.F2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中‎,最适合进行‎数值加减运‎算的数值编‎码是。

A. 原码B. 反码C. 补码D. 移码2.已知英文小‎写字母m的‎A SCII‎码为十进制‎数109,则英文小写‎字母y的A‎S CII码‎为十进制数‎。

A. 112B. 120C. 121D. 1223.关于ASC‎II码,在计算机中‎的表示方法‎准确地描述‎是。

A. 使用8位二‎进制数,最右边一位‎为1B. 使用8位二‎进制数,最左边一位‎为1C. 使用8位二‎进制数,最右边一位‎为0D. 使用8位二‎进制数,最左边一位‎为04.设在机器字‎长4位,X=0111B‎,Y=1011B‎,则下列逻辑‎运算中,正确的是_‎_____‎_____‎。

A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中‎正确的是()。

A.高级语言就‎是机器语言‎B.汇编语言程‎序、高级语言程‎序都是计算‎机程序,但只有机器‎语言程序才‎是计算机可‎以直接识别‎并执行的程‎序C.C语言因为‎具有汇编语‎言的一些特‎性,所以是汇编‎语言的一种‎D.C源程序经‎过编译、连接,若正确,执行后就能‎得到正确的‎运行结果6.用C语言编‎写的源程序‎经过编译后‎,若没有产生‎编译错误,则系统将()。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题答案篇一: c 语言程序设计教程_李含光_ 郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+(m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/(a+b))第 3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m !=0 ,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,printf(“ %nd” ,k)(5)cx=getchar() , cx!=front , cx (6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; else y=3*x-11;printf(%lf\n,y); return 0; } ( 2 ).#include stdio.h int main() { double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz) min=z; printf(min=%lf\n,min); return 0; } ( 3 ).#include stdio.h int main() { int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d); flag=(y%4==0y%100!=0||y%400==0); w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7; for(i=1;i=m;i++){ switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case 6:s=151+d;break; case 7:s=181+d;break; case 8:s=212+d;break; case 9:s=243+d;break; case 10:s=273+d;break; case 11:s=304+d;break; case 12:s=334+d;break; } }s=(w+s)%7; if(s==0) printf( 星期日\n); else printf( 星期%d\n,s); return 0; } (4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100) r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100) r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } ( 5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } ( 6 ).#includestdio.h int main() { int m,k=2; printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++; printf(%4d\n,m); return 0; }( 7 ).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) { p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } ( 8 ).#includestdio.h int main(){int i,j,k; for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++) printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() { float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b- 4)*b+3)*b)-6; do { x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h #includemath.h int main() { int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t; while(fabs(t)=eps) { t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; } printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() { unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf (%u\n,t); return 0; } 第 4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量( 4 )auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 12 4.程序填空(1)float fun(float , float),x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun (unsigned int); p=p+s%10; int main() s=s/10; { } unsigned ints; return p; scanf(%u,s); } printf(%u\n,fun(s));( 2 ).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsigned int s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《 c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.1 什么是计算机程序 11.2什么是计算机语言 11.3c 语言的发展及其特点 31.4最简单的 c 语言程序 51.4.1最简单的 c 语言程序举例 61.4.2c 语言程序的结构101.5运行 c 程序的步骤与方法121.6程序设计的任务14 1-5 #include stdio.hint main (){ printf ( **************************\n\n); printf( verygood!\n\n);printf ( return 0;\n);}1-6#include stdio.hint main(){int a,b,c,max; printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c); max=a;if (maxb) max=b;if (maxc) 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最基本的语句——赋值语句59 3.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.hint 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.hint 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 年期,到期后将本息再存p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后3 年期将本息再存int main(){double 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程序设计语言 (第二版) 课后答案第一章

Chapter 1Exercise 1-1Run the “hello world” program on your system. Experiment with leaving out parts of the program, to see what error message you get.#include <stdio.h>int main(){printf("hello, ");printf("world");printf("\n");return 0;}Exercise 1-2Experiment to find out what happens when printf’s argument string contains \c, where c is some character not list above.Exercise 1-3Modify the temperature conversion program to print a heading above the table.#include<stdio.h>int main(){float fahr, celsius;float lower, upper, step;lower = 0;upper = 300;step = 20;fahr = lower;printf("Fahrenheit temperatures and their centigrade or Celsius equivalents\n");while (fahr <= upper){celsius = (5.0/9.0) * (fahr-32.0);printf("%3.0f %6.1f\n", fahr, celsius);fahr = fahr + step;}return 0;}Exercise 1-4Write a program to print the corresponding Celsius to Fahrenheit table.#include<stdio.h>int main(){float fahr, celsius;float lower, upper, step;lower = 0;upper = 300;step = 20;celsius = lower;while (celsius<= upper){fahr = 9.0*celsius/5.0+32;printf("%3.0f %6.1f\n", celsius,fahr);celsius = celsius + step;}return 0;}Exercise 1-5Modify the temperature conversion program to print the table in reverse order, that is, from 300 degrees to 0.#include<stdio.h>int main(){float fahr, celsius;float lower, upper, step;lower = 0;upper = 300;step = 20;fahr = upper;printf("Fahrenheit temperatures and their centigrade or Celsius equivalents\n");while (fahr >= lower){celsius = (5.0/9.0) * (fahr-32.0);printf("%3.0f %6.1f\n", fahr, celsius);fahr = fahr - step;}return 0;}Exercise 1-6Verify that the expression getchar()!=EOF is 0 or 1.#include <stdio.h>main(){int c;c =(getchar() != EOF);printf("%d",c);return 0;}Exercise 1-7Write a program to print the value of EOF .#include <stdio.h>int main(){printf("%d",EOF);return 0;}Exercise 1-8Write a program to count blanks, tabs, and newlines. #include<stdio.h>int main(void){int blanks, tabs, newlines;int c;int done = 0;int lastchar = 0;blanks = 0;tabs = 0;newlines = 0;printf("输入0查看结果\n");while(done == 0){c = getchar();if(c == ' ')++blanks;if(c == '\t')++tabs;if(c == '\n')++newlines;if(c == '0'){if(lastchar != '\n'){++newlines;}done = 1;}lastchar = c;}printf("空格的个数为: %d\n制表符的个数为: %d\n换行符的个数为: %d\n", blanks, tabs, newlines);return 0;}Exercise 1-9Write a program to copy its input to its output, replacing each string of one or more blanks by a single blank.#include <stdio.h>int main(void){int c;int inspace;inspace = 0;while((c = getchar()) != EOF){if(c == ' '){if(inspace == 0){inspace = 1;putchar(c);}}if(c != ' '){inspace = 0;putchar(c);}}return 0;}Exercise 1-10Write a program to copy its input to its output, replacing each tab by \t , each backspace by \b , and each backslash by \\ . This makes tabs and backspaces visible in an unambiguous way.#include<stdio.h>int main(){int c;while((c=getchar())!=EOF){if (c=='\t')printf("\t");if (c=='\b')printf("\b");if (c=='\\')printf("\\\\");if (c!='\t')if (c!='\b')if (c!='\\')putchar(c);}return 0;}Exercise 1-11How would you test the word count program? What kinds of input are most likely to uncover bugs if there are any?Exercise 1-12Write a program that prints its input one word per line.#include <stdio.h>int main(void){int c;int asd;asd = 0;while((c = getchar()) != EOF){if(c == ' ' || c == '\t' || c == '\n'){if(asd == 0){asd = 1;putchar('\n');}}else{asd = 0;putchar(c);}}return 0;}Exercise 1-13Write a program to print a histogram of the lengths of words in its input. It is easy to draw the histogram with the bars horizontal; a vertical orientation is more challenging. #include <stdio.h>#define MAXWORDLEN 10int main(void){int c;int inspace = 0;long lengtharr[MAXWORDLEN + 1];int wordlen = 0;int firstletter = 1;long thisval = 0;long maxval = 0;int thisidx = 0;int done = 0;for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++){lengtharr[thisidx] = 0;}while(done == 0){c = getchar();if(c == ' ' || c == '\t' || c == '\n' || c == EOF){if(inspace == 0){firstletter = 0;inspace = 1;if(wordlen <= MAXWORDLEN){if(wordlen > 0){thisval = ++lengtharr[wordlen - 1];if(thisval > maxval){maxval = thisval;}}}else{thisval = ++lengtharr[MAXWORDLEN];if(thisval > maxval){maxval = thisval;}}}if(c == EOF){done = 1;}}else{if(inspace == 1 || firstletter == 1){wordlen = 0;firstletter = 0;inspace = 0;}++wordlen;}}for(thisval = maxval; thisval > 0; thisval--){printf("%4d | ", thisval);for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++) {if(lengtharr[thisidx] >= thisval){printf("* ");}else{printf(" ");}}printf("\n");}printf(" +");for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++){printf("---");}printf("\n ");for(thisidx = 0; thisidx < MAXWORDLEN; thisidx++){printf("%2d ", thisidx + 1);}printf(">%d\n", MAXWORDLEN);return 0;}Exercise 1-14Write a program to print a histogram of the frequencies of different characters in its input.#include <stdio.h>#define NUM_CHARS 256int main(void){int c;long freqarr[NUM_CHARS + 1];long thisval = 0;long maxval = 0;int thisidx = 0;for(thisidx = 0; thisidx <= NUM_CHARS; thisidx++){freqarr[thisidx] = 0;}while((c = getchar()) != EOF){if(c < NUM_CHARS){thisval = ++freqarr[c];if(thisval > maxval){maxval = thisval;}}else{thisval = ++freqarr[NUM_CHARS];if(thisval > maxval){maxval = thisval;}}}for(thisval = maxval; thisval > 0; thisval--){printf("%4d |", thisval);for(thisidx = 0; thisidx <= NUM_CHARS; thisidx++) {if(freqarr[thisidx] >= thisval){printf("*");}else if(freqarr[thisidx] > 0){printf(" ");}}printf("\n");}printf(" +");for(thisidx = 0; thisidx <= NUM_CHARS; thisidx++) {if(freqarr[thisidx] > 0){printf("-");}}printf("\n ");for(thisidx = 0; thisidx < NUM_CHARS; thisidx++) {if(freqarr[thisidx] > 0){printf("%d", thisidx / 100);}}printf("\n ");for(thisidx = 0; thisidx < NUM_CHARS; thisidx++){if(freqarr[thisidx] > 0){printf("%d", (thisidx - (100 * (thisidx / 100))) / 10 );}}printf("\n ");for(thisidx = 0; thisidx < NUM_CHARS; thisidx++){if(freqarr[thisidx] > 0){printf("%d", thisidx - (10 * (thisidx / 10)));}}if(freqarr[NUM_CHARS] > 0){printf(">%d\n", NUM_CHARS);}printf("\n");return 0;}Exercise 1-15Rewrite the temperature conversion program of Section 1.2 to use a function for conversion.#include <stdio.h>float FtoC(float f){float c;c = (5.0 / 9.0) * (f - 32.0);return c;}int main(void){float fahr, celsius;int lower, upper, step;lower = 0;upper = 300;step = 20;printf("F C\n\n");fahr = lower;while(fahr <= upper){celsius = FtoC(fahr);printf("%3.0f %6.1f\n", fahr, celsius);fahr = fahr + step;}return 0;}Exercise 1-16Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text.#include <stdio.h>#define MAXLINE 1000int getline(char line[ ], int maxline);void copy(char to[ ], char from[ ]);int main(void){int len;int max;char line[MAXLINE];char longest[MAXLINE];max = 0;while((len = getline(line, MAXLINE)) > 0){printf("%d: %s", len, line);if(len > max){max = len;copy(longest, line);}}if(max > 0){printf("Longest is %d characters:\n%s", max, longest);}printf("\n");return 0;}int getline(char s[], int lim){int c, i, j;for(i = 0, j = 0; (c = getchar())!=EOF && c != '\n'; ++i){if(i < lim - 1){s[j++] = c;}}if(c == '\n'){if(i <= lim - 1){s[j++] = c;}++i;}s[j] = '\0';return i;}void copy(char to[], char from[]){int i;i = 0;while((to[i] = from[i]) != '\0'){++i;}}Exercise 1-17Write a program to print all input lines that are longer than 80 characters. #include <stdio.h>#define MINLENGTH 81int readbuff(char *buffer) {size_t i=0;int c;while (i < MINLENGTH) {c = getchar();if (c == EOF) return -1;if (c == '\n') return 0;buffer[i++] = c;}return 1;}int copyline(char *buffer) {size_t i;int c;int status = 1;for(i=0; i<MINLENGTH; i++)putchar(buffer[i]);while(status == 1) {c = getchar();if (c == EOF)status = -1;else if (c == '\n')status = 0;elseputchar(c);}putchar('\n');return status;}int main(void) {char buffer[MINLENGTH];int status = 0;while (status != -1) {status = readbuff(buffer);if (status == 1)status = copyline(buffer);}return 0;}Exercise 1-18Write a program to remove all trailing blanks and tabs from each line of input, and to delete entirely blank lines.#include <stdio.h>#include <stdlib.h>#define MAXQUEUE 1001int advance(int pointer){if (pointer < MAXQUEUE - 1)return pointer + 1;elsereturn 0;}int main(void){char blank[MAXQUEUE];int head, tail;int nonspace;int retval;int c;retval = nonspace = head = tail = 0;while ((c = getchar()) != EOF) {if (c == '\n') {head = tail = 0;if (nonspace)putchar('\n');nonspace = 0;}else if (c == ' ' || c == '\t') {if (advance(head) == tail) {putchar(blank[tail]);tail = advance(tail);nonspace = 1;retval = EXIT_FAILURE;}blank[head] = c;head = advance(head);}else {while (head != tail) {putchar(blank[tail]);tail = advance(tail);}putchar(c);nonspace = 1;}}return retval;}Exercise 1-19Write a function reverse(s) that reverses the character string s . Use it to write a program that reverses its input a line at a time.#include <stdio.h>#define MAX_LINE 1024void discardnewline(char s[]){int i;for(i = 0; s[i] != '\0'; i++){if(s[i] == '\n')s[i] = '\0';}}int reverse(char s[]){char ch;int i, j;for(j = 0; s[j] != '\0'; j++){}--j;for(i = 0; i < j; i++){ch = s[i];s[i] = s[j];s[j] = ch;--j;}return 0;}int getline(char s[], int lim){int c, i;for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i) {s[i] = c;}if(c == '\n'){s[i++] = c;}s[i] = '\0';return i;}int main(void){char line[MAX_LINE];while(getline(line, sizeof line) > 0){discardnewline(line);reverse(line);printf("%s\n", line);}return 0;}Exercise 1-20Write a program detab that replaces tabs in the input with the proper number of blanks to space to the next tab stop. Assume a fixed set of tab stops, say every n columns. Should n be a variable or a symbolic parameter?#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_BUFFER 1024#define SPACE ' '#define TAB '\t'int CalculateNumberOfSpaces(int Offset, int TabSize){return TabSize - (Offset % TabSize);}int getline(char s[], int lim){int c, i;for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)s[i] = c;if(c == '\n'){s[i] = c;++i;}s[i] = '\0';return i;}int main(void){char Buffer[MAX_BUFFER];int TabSize = 5;int i, j, k, l;while(getline(Buffer, MAX_BUFFER) > 0){for(i = 0, l = 0; Buffer[i] != '\0'; i++){if(Buffer[i] == TAB){j = CalculateNumberOfSpaces(l, TabSize);for(k = 0; k < j; k++){putchar(SPACE);l++;}}else{putchar(Buffer[i]);l++;}}}return 0;}Exercise 1-21Write a program entab that replaces strings of blanks with the minimum number of tabsand blanks to achieve the same spacing. Use the same stops as for detab . When either a tab or a single blank would suffice to reach a tab stop, which should be given preference?#include <stdio.h>#define MAXLINE 1000#define TAB2SPACE 4char line[MAXLINE];int getline(void);intmain(){int i,t;int spacecount,len;while (( len = getline()) > 0 ){spacecount = 0;for( i=0; i < len; i++){if(line[i] == ' ')spacecount++;if(line[i] != ' ')spacecount = 0;if(spacecount == TAB2SPACE){i -= 3;len -= 3;line[i] = '\t';for(t=i+1;t<len;t++)line[t]=line[t+3];spacecount = 0;line[len] = '\0';}}printf("%s", line);}return 0;}int getline(void){int c, i;extern char line[];for ( i=0;i<MAXLINE-1 && ( c=getchar()) != EOF && c != '\n'; ++i)line[i] = c;if(c == '\n'){line[i] = c;++i;}line[i] = '\0';return i;}Exercise 1-22Write a program to "fold" long input lines into two or more shorter lines after the last non-blank character that occurs before the n -th column of input. Make sure your program does something intelligent with very long lines, and if there are no blanks or tabs before the specified column.#include <stdio.h>#define MAXLINE 1000char line[MAXLINE];int getline(void);intmain(){int t,len;int location,spaceholder;const int FOLDLENGTH=70;while (( len = getline()) > 0 ){if( len < FOLDLENGTH ){}else{t = 0;location = 0;while(t<len){if(line[t] == ' ')spaceholder = t;if(location==FOLDLENGTH){line[spaceholder] = '\n';location = 0;}location++;t++;}}printf ( "%s", line);}return 0;}int getline(void){int c, i;extern char line[];for ( i=0;i<MAXLINE-1 && ( c=getchar()) != EOF && c != '\n'; ++i)line[i] = c;if(c == '\n'){line[i] = c;++i;}line[i] = '\0';return i;}Exercise 1-23Write a program to remove all comments from a C program. Don't forget to handle quoted strings and character constants properly. C comments do not nest.#include <stdio.h>#define MAXLINE 1000char line[MAXLINE];int getline(void);intmain(){int in_comment,len;int in_quote;int t;in_comment = in_quote = t = 0;while ((len = getline()) > 0 ){t=0;while(t < len){if( line[t] == '"')in_quote = 1;if( ! in_quote ){if( line[t] == '/' && line[t+1] == '*'){t=t+2;in_comment = 1;}if( line[t] == '*' && line[t+1] == '/'){t=t+2;in_comment = 0;}if(in_comment == 1){t++;}else{printf ("%c", line[t]);t++;}}else{printf ("%c", line[t]);t++;}}}return 0;}int getline(void){int c, i;extern char line[];for ( i=0;i<MAXLINE-1 && ( c=getchar()) != EOF && c != '\n'; ++i)line[i] = c;if(c == '\n'){line[i] = c;++i;}line[i] = '\0';return i;}Exercise 1-24Write a program to check a C program for rudimentary syntax errors like unbalanced parentheses, brackets and braces. Don't forget about quotes, both single and double, escape sequences, and comments. (This program is hard if you do it in full generality.) #include <stdio.h>#define MAXLINE 1000char line[MAXLINE];int getline(void);intmain(){int len=0;int t=0;int brace=0, bracket=0, parenthesis=0;int s_quote=1, d_quote=1;while ((len = getline()) > 0 ){t=0;while(t < len){if( line[t] == '['){brace++;}if( line[t] == ']'){brace--;}if( line[t] == '('){parenthesis++;}if( line[t] == ')'){parenthesis--;}if( line[t] == '\''){s_quote *= -1;}if( line[t] == '"'){d_quote *= -1;}t++;}}if(d_quote !=1)printf ("Mismatching double quote mark\n");if(s_quote !=1)printf ("Mismatching single quote mark\n");if(parenthesis != 0)printf ("Mismatching parenthesis\n");if(brace != 0)printf ("Mismatching brace mark\n");if(bracket != 0)printf ("Mismatching bracket mark\n");if( bracket==0 && brace==0 && parenthesis==0 && s_quote == 1 && d_quote == 1)printf ("Syntax appears to be correct.\n");return 0;}int getline(void){int c, i;extern char line[];for ( i=0;i<MAXLINE-1 && ( c=getchar()) != EOF && c != '\n'; ++i) line[i] = c;if(c == '\n'){line[i] = c;++i;}line[i] = '\0';return i;}。

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

C语言程序设计课后习题答案
解:
#include <stdio.h>
voidmain()
{
char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
printf(“密码是%c%c%c%c%c\n”,c1,c2,用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入?
(1)变量c1、c2应定义为字符型或整形?或二者皆可?
(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:
charc1,c2;与intc1,c2;是否无条件地等价?
解:
#include<stdio.h>
解:
#include<stdio.h>
voidmain()
{
float score;
char grade;
printf(“请输入学生成绩:”);
scanf(“%f”,&score);
while(score>100||score<0)
{ printf(“\n输入有误,请重新输入:”);
scanf(“%f”,&score);
thousand=num/1000%10;
hundred=num/100%10;
ten=num%100/10;
indiv=num%10;
switch(place)
{ case 5: printf(“%d,%d,%d,%d,%d”,ten_thousand,thousand,hundred,ten,indiv);

C程序设计基础第二版(高等教育出版社)习题答案

C程序设计基础第二版(高等教育出版社)习题答案

C程序设计基础第二版(高等教育出版社)习题答案习题一参考答案第1章C++语言概述一、选择题:1.D2.A3.D4.A5.A6.D7.C8.B9.B二、改后如下:#include//预处理指令,原程序缺少“#”号intmain()//定义主函数,原程序缺少返回值类型“int”(也可为“void”){cout<运行后输出:HelloWorld!三、简答题1、解答:在较大或较复杂的C++程序中,加上相关的注释信息,解释相应的程序,可提高程序的可读性。

2、C++语言有两种注释:(1)C++型注释。

从“//”开始,该行中所有字符都被作为注释处理。

(2)C型注释。

“/某”表示注释的开始,“某/”表示注释的结束,在“/某”、“某/”之间的字符均被视作注释。

3、C型注释主要用于大块注释,而且C++型注释可以嵌在C型注释中。

四、程序设计题1、编写一个程序,在屏幕上输出“IcanueC++”。

解:#includeintmain(){cout<运行后输出:IcanueC++2、参照例题,设计一个C++程序,输入两门课程的成绩,求总成绩。

解:#includemain(){int1,2,um;cout<cin>>1>>2;um=1+2;cout<}3、参照例题,设计一个C++程序,输入a、b两个整数,输出其中的最小数。

解:#includevoidmain(void){intmin(int某,inty);inta,b,m;cout<>a>>b;m=min(a,b);cout<intmin(int某,inty){intz;if(某z=y;returnz;}习题二参考答案第2章数据类型和表达式一、选择题1.C2.B3.B4.B5.A6B7.D8.C9.D11.D12..A13.D14.A15.B16.B17.B18.C19.A二、填空题1、基本类型导出类型用户定义类型2、63、iotream#include<iotream>4、一个int型数据占用的字节数5、210.C6、77、1008、?:9、falefaletrue10、(50<某)&&(某<=100)或!((50>某)||(某>100))11、(m)某100+((m/10))某10+m/10012、非零13、114、字母数字下划线15、4.5三、问答题1.C++语言中用数值“1”表示“真”,数值“0”表示“假”。

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案1. 基本概念和语法1.1 变量和数据类型题目:请将下列C语言的变量定义语句补充完整,并给出每个变量的数据类型和初始化值。

代码:```c#include <stdio.h>int main() {int a;float b;char c;double d;int x = 5;float y = 3.14;char z = 'A';printf("a的数据类型:%s,a的初始值:%d\n", typeof(a), a);printf("b的数据类型:%s,b的初始值:%f\n", typeof(b), b); printf("c的数据类型:%s,c的初始值:%c\n", typeof(c), c); printf("d的数据类型:%s,d的初始值:%lf\n", typeof(d), d); printf("x的数据类型:%s,x的初始值:%d\n", typeof(x), x); printf("y的数据类型:%s,y的初始值:%f\n", typeof(y), y); printf("z的数据类型:%s,z的初始值:%c\n", typeof(z), z); return 0;}```答案:a的数据类型:int,a的初始值:随机值b的数据类型:float,b的初始值:随机值c的数据类型:char,c的初始值:'\0'd的数据类型:double,d的初始值:随机值x的数据类型:int,x的初始值:5y的数据类型:float,y的初始值:3.140000z的数据类型:char,z的初始值:A1.2 运算符和表达式题目:请在下列C语言程序中补充运算符,使程序达到题目要求。

```c#include <stdio.h>int main() {int a = 5;int b = 3;int c;// 1. 将a和b的和赋值给c,并将c的值输出// 补充代码// 2. 将a和b的差赋值给c,并将c的值输出// 补充代码// 3. 将a和b的积赋值给c,并将c的值输出// 补充代码// 4. 将a除以b的商赋值给c,并将c的值输出// 补充代码// 5. 将a除以b的余数赋值给c,并将c的值输出// 补充代码return 0;}```要求:1. 补充代码,使程序能够正确输出运算结果;2. 使用合适的运算符。

c程序设计(第二版)课后习题答案

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.6】 /*给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90 分以上为'A',80~89 分为 'B',70~79 分为'C',60~69 分为'D',60 分以下为'E'。*/ #include<stdio.h> void main() { int score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

C语言程序设计(第2版)-- 课后题答案-推荐下载

C语言程序设计(第2版)-- 课后题答案-推荐下载
《C 语言程序设计能力教程(第二版)》课后作业及实训题
参考答案
第 1 章 进入 C 语言程序世界 二、 1. I love China!
printf("we are students.\n") 2. 6 项目实训题参考答案
1.编写一个 C 程序,输出以下信息: ******************** I am a student! ********************
ቤተ መጻሕፍቲ ባይዱ:
4
main() { float p,y,x,j,ys,g,fk; printf("apple,pear,banana,orange(weight)="); scanf("%f,%f,%f,%f",&p,&y,&x,&j); ys=2.5*p+1.8*y+2*x+1.6*j; printf("fu kuan="); scanf("%f",&g); fk=g-ys; printf("result:\n");
float rate=0.0225,capital,deposit; scanf("%d,%f",&n,&capital); deposit=capital*pow(1+rate,n); printf("deposit=%f\n",deposit); } 2.将一个三位数整数,正确分离出它的个位、十位和百位数字,并分别在屏幕上 输出。 main() { int n,a,b,c; scanf("%3d",&n); a=n/100; b=n%100/10; c=n%100%10/1;

c语言程序设计教程第二版课后习题答案.doc

c语言程序设计教程第二版课后习题答案.doc

c 语言程序设计教程第二版课后习题答案【篇一:c 语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2 .填空题(1)函数(2)主函数(main )(3)printf() ,scanf()第2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 ,4 ,2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0) (16)double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b)) (19)sqrt((x*x+y*y)/(a+b))第3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*l s f)(4)m%5==0 ,printf( “%n d”,k)(5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2). #includestdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3). #include stdio.h int main() {int y,m,d,flag,s=0,w,i; scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) { switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0) printf( 星期日\n); elseprintf( 星期%d\n,s); return 0; }(4).#include stdio.h int main() { float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01;printf(%f\n,r); return 0; } (5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) { printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; } printf(%u\n,t); return 0; }第4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2 (5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) ,x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p;scanf(%u,s); } printf(%u\n,fun(s)); (2).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsignedint p=0; void f2(float,float,float,float);【篇二:《c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.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 (maxb)max=b; if (maxc) 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 数据的输入输出65 3.4.1 输入输出举例653.4.2 有关数据输入输出的概念673.4.3 用printf 函数输出数据683.4.4 用scanf 函数输入数据753.4.5 字符数据的输入输出78 习题823-1 #include stdio.h#include math.hint 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.hint 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 年期。

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

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

C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************V ery good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“V ery good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。

解:#include<stdio.h>void main(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;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;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,“E”代替“A”。

因此,“China”应译为“Glmre”。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为‟C‟、‟h‟、‟i‟、‟n‟、‟a‟,经过运算,使c1、c2、c3、c4、c5分别变为‟G‟、‟l‟、‟m‟、‟r‟、‟e‟,并输出。

c 语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题答案C语言程序设计教程第二版课后习题答案在学习C语言程序设计的过程中,课后习题是巩固知识、提高编程能力的重要环节。

本文将为大家总结C语言程序设计教程第二版课后习题的答案,希望对大家的学习有所帮助。

第一章课后习题答案1.1 编写一个C程序,输出"Hello, World!"。

```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```1.2 编写一个C程序,计算并输出5的阶乘。

```c#include <stdio.h>int main() {int i, fact = 1;for (i = 1; i <= 5; i++) {fact *= i;}printf("5的阶乘为%d\n", fact);return 0;}```1.3 编写一个C程序,输入一个整数n,计算并输出1到n的和。

```c#include <stdio.h>int main() {int n, sum = 0, i;printf("请输入一个整数:");scanf("%d", &n);for (i = 1; i <= n; i++) {sum += i;}printf("1到%d的和为%d\n", n, sum);return 0;}```第二章课后习题答案2.1 编写一个C程序,输入一个整数n,计算并输出n的平方。

```c#include <stdio.h>int main() {int n;printf("请输入一个整数:");scanf("%d", &n);printf("%d的平方为%d\n", n, n * n);return 0;}```2.2 编写一个C程序,输入一个整数n,判断并输出n是奇数还是偶数。

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

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

C语言程序设计(第二版)习题参考答案1习题1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。

2.二进制是由0和1两个数字组成的进制方式。

3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。

4.在整数的二进制表示方法中,0的原码、反码都有两种形式。

5.有符号数有三种表示法:原码、反码和补码。

6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。

解:1.F2.T3.T4.T5.T6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是A.原码B.反码C.补码D.移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数A.112B.120C.121D.1223.关于ASCII码,在计算机中的表示方法准确地描述是A.使用8位二进制数,最右边一位为1B.使用8位二进制数,最左边一位为1C.使用8位二进制数,最右边一位为0D.使用8位二进制数,最左边一位为04.设在机器字长4位,某=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。

A.某∧Y=1000B.某∨Y=1111C.某⊕Y=0011D.¯=1000Y5.下列叙述中正确的是()。

A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。

A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。

A.main函数在C程序中必须有且只有一个B.C程序的执行从main函数开始,所以main函数必须放在程序最前面C.函数可以带参数,也可以不带参数。

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

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

WORD格式可编辑C语言程序设计习题参考答案习题 1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。

2.二进制是由0和1两个数字组成的进制方式。

3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。

4.在整数的二进制表示方法中,0的原码、反码都有两种形式。

5.有符号数有三种表示法:原码、反码和补码。

6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。

解:1.F 2.T 3.T 4.T 5.T 6.T二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。

A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。

A. 112B. 120C. 121D. 1223.关于ASCII码,在计算机中的表示方法准确地描述是。

A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为04.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。

A. X∧Y=1000B. X∨Y=1111C. X⊕Y=0011D. ¯Y=10005.下列叙述中正确的是()。

A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。

A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。

A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。

C语言程序设计第2版--课后的题目详解

C语言程序设计第2版--课后的题目详解

C语言程序设计第2版--课后的题目详解《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题1. 3,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。

#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

C语言程序设计(第二版)课后答案 丁亚涛

C语言程序设计(第二版)课后答案  丁亚涛

习题二一、选择题二、填空题1.182.int float double3.10 114.8 16 105.%三、阅读题1. 10,10,9,102. j=1, i=2k=3,i=3i=3,i=2k=1,i=1习题三一、选择题二、填空题1. 从键盘上读入一个字符在屏幕上输出一个字符 #include<stdio.h>2. 按十进制整数形式输出,有符号按16进制整数形式输出,没有符号按十进制小数形式输出,输出的数据长度为7位,有2位小数按字符形式输出一个字符3. 按十进制整数形式输入数据按十进制整数形式输入三位数据跳过3位十进制数据按字符形式输入一个字符4. 分程序;;5. 大写字母L6. -1三、阅读题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fy=123.4567,y= 123.46,y=123,456703. 2,14. 12345. 4,36. -6,-6习题四一、选择题二、填空题1. 非0 0 、2. k==03. n%7==0&&n%==0 else三、阅读题1. a=1,b=02. c=1习题五一、选择题二、填空题1. for语句 do-while 语句 while 语句2. a=14,y=263. k=14,n=-14. 395. s=196. 222227. 108. 79. 810. 5,5三、改错题1. for( i=0;i<5;i++);for控制部分用分号分隔2. int j=0;while(j<10){j++;i=j} 分号是多余的,否则会造成死循环3. int s=1,i=1;while(i<5){s*=i;i++;}两条语句需要加上花括号4. while(j<10);(分号不能少)5. continue改为break习题六一、选择题二、填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三、阅读题1. 6 5 43 2 12. aaabbbccc ddd3. 2,2,1习题七一、选择题二、填空题1. 整个函数体内局部2. 整型3. k<=breturn y;4. x[i]return(ave)fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三、阅读题1. 10,20,302. 643. 84. hlo5. sum=55习题八一、选择题二、填空题1. 指向取地址2. 2 +23. 284. 4 a[2][0]5. 6 a[3]6. *(p+5)7. ABCD A三、阅读题1. 102. 103. 04. 3,65. 1 2 3 46. 6385四、程序填空题1. a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++3. a[0] a[i],min min4. int *a,int*b b[j]=a[i] b[i++]5. *str+=3 *str>'Z'&&*str<'a'||*str>'z'6. else 0 t[2*j+1]习题九一、选择题二、填空题1. 结构体成员结构体指针指向2. 343. 224. ex5. (*int)6. {Jan=1,Feb,Mar,Apr,May,Jun,Aug,Sep,Oct,Nov,Dec}7. DDBBCC三、阅读题1. 92. 10,x3. 134. 36 40 415. 06. 38397. 48四、程序填空题1. struct studuent strcmp(stu[i].name,str)==0 break2. a.real+b.real a.virtual+b.virtuala.real*b.real-a.virtual*b.virtuala.real*b.virtual+a.virtual*b.real3. mai=i min=i stu[max].name,stu[max].scorestu[min].name,stu[min].score4. p count++ p->next5. *link struct node top p top。

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语⾔程序设计教程(第2版)课后题及模拟题参考答案c语⾔程序设计教程(第2版)课后题及模拟题参考答案习题1 (4)1-1 填空题 (4)1-2 思考题 (4)1-3 编程题 (5)习题2 (6)2-1 单选题 (6)2-2 思考题 (6)习题3 (7)3-1 选择题 (7)3-2 填空题 (7)3-3 编程题 (8)习题4 (11)4-1单选题 (11)4-2填空题 (11)4-3 编程题 (11)习题5 (16)5-1单选题 (16)5-2填空题 (16)5-3 编程题 (16)习题6 (22)6-1单选题 (22)6-2填空题 (22)习题7 (25)7-1单选题 (25)7-2填空题 (25)7-3 编程题 (25)习题8 (26)8-1单选题 (26)8-2填空题 (26)8-3 编程题 (26)习题9 (30)9-1单选题 (30)9-2填空题 (30)9-3 编程题 (30)习题10 (38)10-1单选题 (38)10-2填空题 (38)10-3 编程题 (38)习题11 (41)11-1单选题 (41)11-2填空题 (41)习题12 (42)12-1单选题 (42)12-2 填空题 (42)实验1 熟悉Visual C++6.0可视化集成开发环境 (43)实验2 顺序结构程序设计 (43)实验3 选择结构程序设计 (43)实验4 循环结构程序设计 (44)实验5 函数 (47)实验6 数组 (54)实验7 指针 (58)实验8 结构体和共⽤体 (61)实验9 ⽂件 (63)实验10 综合编程 (64)模拟试卷(⼀)参考答案 (65)模拟试卷(⼆)参考答案 (67)习题11-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数⾸部,函数体5. {, }6. /*, */7. 顺序结构,选择结构,循环结构8. .c, .obj, .exe1-2 思考题1. 结构化程序设计是指:为使程序具有⼀个合理的结构以保证程序正确性⽽规定的⼀套如何进⾏程序设计的原则。

C语言程序设计(第2版)-- 课后题答案.

C语言程序设计(第2版)-- 课后题答案.

《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。

#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。

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

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

C语言程序设计(第二版)习题参考答案为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。

以下是部分习题的解答示例:1. 基本概念与语法1.1 变量和数据类型C语言中的变量用于存储不同类型的数据。

常见的数据类型包括整型、浮点型、字符型等。

例如,声明一个整型变量x并赋值为10的方法如下:```cint x = 10;```1.2 操作符和表达式C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。

例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下:```cif (x > 0 && x < 100) {// 满足条件的代码```2. 流程控制2.1 分支结构流程控制中的分支结构用于根据条件来执行不同的代码块。

常见的分支结构有if语句和switch语句。

例如,使用if语句判断一个数的正负情况:```cif (x > 0) {printf("x是正数\n");} else if (x < 0) {printf("x是负数\n");} else {printf("x是零\n");}```2.2 循环结构循环结构用于多次执行相同的代码块。

常见的循环结构有for循环、while循环和do-while循环。

例如,使用for循环输出1到10的数字:for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```3. 函数和数组3.1 函数的定义和调用函数是一段完成特定功能的代码块,可以多次调用。

函数的定义包括函数名、参数列表和返回值类型。

例如,定义一个用于计算两个整数相加的函数:```cint add(int a, int b) {return a + b;}// 调用add函数int result = add(3, 5);printf("3 + 5 = %d\n", result);```3.2 数组的定义和使用数组是一种存储相同类型数据的集合。

C语言程序设计(第二版)答案

C语言程序设计(第二版)答案

参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。

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

三.阅读程序题
k 1. a=1,b=0 2. c=1
四.程序设计题
. 1.
#include <stdio.h>
main()
w{ int a,b;
char c;
wprintf("INPUT A+(-*/)B\n");
scanf("%d%c%d",&a,&c,&b);
wswitch(c)
{
case'+':printf("%d+%d=%d\n",a,b,a+b);break;
. printf("s=%d\n",s);
} 1.(另一做法)
w#include<stdio.h>
main()
w{
int i,s;
wfor(i=1,s=0;i<=100;i++)
if(i%2==0)s=s-i;
else s=s+i;
printf ("%d\n",s);
}
课 后 答 案 网
2. #include <stdio.h> main() { int i,j,s1=0,s2=0;
{ float a,v,s;
scanf("%f",&a);
v=a*a*a;s=6*a*a;
printf("v=%.2f,s=%.2f\n",v,s);
}
3.
#include <stdio.h> main() { int a,b,c,t; scanf("%d%d%d",&a,&b,&c);
m printf("a=%d,b=%d,c=%d\n",a,b,c);
t=c;c=b;b=a;a=t;
o printf("a=%d,b=%d,c=%d\n",a,b,c);
} 4.
c #include <stdio.h>
main()
. { char s1,s2;
s1=getchar(); s2=s1-32;
w printf("%c\n",s2);
}
课 后 答 案 网
a 习题四 (P70)
课 后 答 案 网
1.D 2.B 3.C 4.C 5.C 6.D 7.A 8.B
. 二.填空题
1. 20 0 19 2. 数组名
w 3. 越界
4. 6
a 5. j==k a[j][k]=1;
三.阅读程序题
a[j][k]=0;
1. 6 5 4
d 3 2 1
2. aaa
h bbb
ccc ddd
k 3. 2,2,1
1. 6 6 6.00 6.00
a 2. x=127,x= 127,x=177,x=7f Y=123.4567 , y= 123.46 , y=123.45670 3. 2,1
d 4. 1234
5. 4,3
h 6. -6,-6
四.程序设计题 1.
k #include "stdio.h"
#include "math.h"
printf("%d",s);
}
2.
#include <stdio.h>
课 后 答 案 网
main() { char a[80];
int i,j=5; /*假设删除位置为 5*/ gets(a); for(i=j-1;a[i]!='\0';i++)
a[i]=a[i+1]; a[i]='\0'; puts(a); } 3.
wfor(i=0;i<33;i++) printf("-");
printf("\n");
wfor(i=0;i<5;i++) printf("%6d",s2[i]); printf("\n"); } 5. #include<stdio.h>
main()
{ char s[3][80];
int a=0,b=0,c=0,d=0,e=0,i,j;
printf("n=%d\n",n); }
习题五 (P87) 一.单选题
1.B 2.D 3.C 4.C 5.B 6.C 7.D 8.C 9.A 10.D 11.B 12.B 13.B 14.D 15. C
二.填空题 1. for 语句 while 语句 2. a=14,y=26 3. k=14,n= -1
w printf ("%d\n",s);
}
a 4.
#include<stdio.h> main()
d {
int i,a,b,c;
h for(i=100;i<=999;i++) {a=(i%10);b=(i/10%10);c=(i/100); if(i==a*a*a+b*b*b+c*c*c) k printf ("%d\n",i);} }
. 5.
#include <stdio.h> main( )
w{
int i,j,k=0;
wfor (i=1;i<=4;i++)
{
wfor (j=1;j<=i;j++) {k++;printf("%d",k%10);} printf("\n"); } }
6.
#include <stdio.h>
main( )
{
int i,j,k=0;
for (i=-3;i<=3;i++)
{if(i<0)k=-i;else k=i; for(j=1;j<=k;j++) printf(" "); for(j=1;j<=7-2*k;j++)
m printf("*");
printf("\n");}
o }
习题六 (P111)
c 一.单选题
课 后ห้องสมุดไป่ตู้答 案 网
参考答案
习题二 (P33) 一.单选题 1.C 2.B 3.D 4.C 5.A 6.D 7.D 8.B 9.B 10.D 11.D 12.C 13.C . 15. A 14 题最后一句应为 printf("%f\n",d*y);结果为 2.2 二.填空题 1. 18 2. int float double 3. 10 11 4. 八 十六 十 5. % 三.阅读程序题 1.10,10,9,10
m else if(x>0) y=(x+1)/(x-2); else y=(x-1)/(x-2);
o printf("y=%f\n",y);
} 3.
c #include <stdio.h>
main()
. { int g; printf("请输入学生成绩:"); scanf("%d",&g); w printf("g=%d:",g); switch(g/10) a { case 10:printf("A\n");break; case 9:printf("B\n");break; d case 8:printf("C\n");break; case 7:printf("D\n");break; h case 6:printf("E\n");break; default:printf("F\n"); }
case'-':printf("%d-%d=%d\n",a,b,a-b);break;
case'*':printf("%d*%d=%d\n",a,b,a*b);break;
课 后 答 案 网
case'/':printf("%d/%d=%d\n",a,b,a/b);break; default:printf("INPUT ERROR!"); } } 2. #include <stdio.h> main() { float x,y; scanf("%f",&x); if(x==0||x==2)y=0;
应改为 while(j<10); 注 while(j<10)后分号不能少
a s*=i;i++;应改为{s*=i;i++;}
continue 应改为 break
d 四.程序设计题
1.
h #include <stdio.h>
main() { int i,j,s=0;
k for(i=1,j=1;i<=100;i++,j=j*(-1)) s=s+i*j;
for(i=0;i<3;i++) gets(s[i]);
for(i=0;i<3;i++)
for(j=0;s[i][j]!='\0';j++)
if(s[i][j]>='A'&&s[i][j]<='Z')a++; else if(s[i][j]>='a'&&s[i][j]<='z')b++; else if(s[i][j]>='0'&&s[i][j]<='9')c++;
相关文档
最新文档