网络教室c语言参考答案(21至4-9)
国家开放大学《C语言程序设计》形考任务1-4参考答案
形考任务 1 一、选择题(共 40 分,每小题 2 分) 1.在每个 C 语言程序中都必须包含有这样一个函数,该函数的函数名为( )。
A. main B. MAIN C. name D. function 2.C 语言源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 3.由 C 语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 4.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为 ( )。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 5.每个 C 语言程序文件的编译错误被分为( )。 A. 1 类 B. 2 类 C. 3 类
for(int j=i; j<n; j++) S;
a. n2 b. (n+1)/2 c. n(n-1)/2 d. n(n+1)/2 6.在下面的 do 循环语句中,其循环体被执行的次数为( )。 int i=0; do i++; while(i*i<10); a. 4 b. 3 c. 5 d. 2 7.在下面的一维数组定义中,有语法错误的选项是( )。 a. int a[]={1,2,3}; b. int a[10]={0}; c. int a[]; d. int a[5]; 8.在下面的二维数组定义中,语法正确的选项是( )。 a. int a[5][]; b. int a[][5]; c. int a[][3]={{1,3,5},{2}}; d. int a[](10); 9.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素 a[1][1]的 值为( )。 a. 2 b. 4 c. 6 d. 8 10.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素 a[2][1]的 值为( )。 a. 0 b. 4
C语言教材课后习题答案
2.简述程序设计语言发展的过程
程序设计语言经过最初的机器代码到今天接近自然语言的表达, 经过了四代的演变。 一 般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代, 面对象的编程语言为第四代。
3.简述高级程序设计语言中面向过程与面向对象的概念。
“面向过程”是一种以过程为中心的编程思想。首先分析出解决问题所需要的步骤,然 后用函数把这些步骤一步一步地实现, 使用的时候依次调用函数即可。 一般的面向过程是从 上往下步步求精,所以面向过程最重要的是模块化的思想方法。 “面向对象”是一种以事物为中心的编程思想。面向对象的方法主要是将事物对象化, 对象包括属性与行为。 面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体 执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设 计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。编程关注的是如 何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。
不能使变量 k 得到正确数值的原因是: scanf("%d", &k);中的格式控制类型与变量 k 的定义类型不匹配,应将%d 改为%f.
习题 4 答案
选择题 1. B 2. A 3. B 4. B 阅读程序,写结果 7. 12 8.13 9. *0**2* 10. if(s>=90) m=4; else if(s>=80) m=3; else if(s>=70) m=2; else if(s>=60) m=1; else m=0; 11.输入 4 个整数 a,b,c,d,编写程序,将它们按从大到小顺序输出。 #include<stdio.h> main() { int a,b,c,d,t; scanf("%d%d%d%d",&a,&b,&c,&d); if(a<b) {t=a;a=b;b=t;} if(a<c) {t=a;a=c;c=t;} if(a<d) {t=a;a=d;d=t;} if(b<c) {t=b;b=c;c=t;} if(b<d) {t=b;b=d;d=t;} if(c<d) {t=c;c=d;d=t;} printf("%4d%4d%4d%4d",a,b,c,d); } 12.据所输入的 3 条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、 直角三角形还是一般三角形? 源程序: 5. C 6. B
c语言网络教室第四章答案
if((12+b+31+k)%7==5) printf("%d/3/13\n",a);
if((12+b+31+k+31)%7==5) printf("%d/4/13\n",a);
if((12+b+31+k+31+30)%7==5) printf("%d/5/13\n",a);
case'/':if(min!=0) printf("%d/%d=%d\n",max,min,max/min);
else printf("Error!\n");}break;}
}
}
ch=getchar();
else{if(ch==',')
{if(n>n0) max=n;else max=n0;
if(i<i0) min=i;else min=i0;
i0=min;n0=max;
i=0;n=0;}
else {switch(ch)
else printf("Error\n");
}
4-8. 求最大数和最小数的算数运算结果
成绩: 10 / 折扣: 0.8
输入若干个整数,及其要进行的算术运算(+|-|*|/)符号,输出最大整数与最小整数进行给定的算术运算的结果。输入的整数范围是(0~65535),输入等号作为输入的结束,输出格式见例题。
输入:整数序列及其运算序号
《C语言程序设计教程》(第三版)课后习题参考答案
C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A6、A7、B8、C二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C5、A6、D7、B8、D9、B 10、C 11、A 12、D 13、C 14、B 15、C 16、A17、B 18、C 19、C 20、D 21、A 22、D 23、D 24、D、A25、D 26、A二、填空题1、补码2、10^-138~10^138、15~163、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B 10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B9、D二、填空题1、1 、02、k!=03、if(x>4||x<-4)printf(“%d”,x);else printf(“error!”);4、if(((x>=1&&x<=10)||(x>=200&&x<=210))&&(x%2!=0))Printf(“%d”,x);5、16、17、10!Right!8、a=09、2,110、0<a<b习题六一、单项选择题1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、204、115、3.66、*#*#*#$7、8 5 28、d=1.0 、k++、k<=n9、!(x<0)、x<amin习题七一、单项选择题1、B2、D3、C4、C5、A6、A7、D8、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i<263、break、i==84、a[i]>b[i]、i<3、j<55、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B2、C3、C4、A5、A6、A7、C8、D9、D 10、B 11、A 12、C 13、A 14、C 15、B二、填空题1、return 1、return n+sum(n-1)2、return 1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C6、C7、C8、C9、B 10、C 11、A 12、C 13、B 14、A 15、D 16、B17、C 18、A 19、B 20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max<*q、min>*q习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D 10、11、C 12、D 13、D 14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adabc defghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B6、D7、B8、A9、A 10、B 11、B 12、B 13、C 14、C 15、D 16、A17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\\zk04\\data\\txfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值。
c语言参考答案(全)
习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
顺序结构,选择结构,循环结构2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
4. 略5. 略1-3 编程题1.main(){ float a=3, b=4, c=5, s, area;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));p rintf(“area=%f ” , area );}2.main(){ printf(“******************************”);printf(“* hello world *”);printf(“******************************”);}习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~14 BCA A2-2 思考题1.2.000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 559.70习题33-1单选题1-5BBDAB 6-10DDBDC 11-15AADCA 16-20CBACC 21-25ABDBB 3-2填空题1. 32.02613.0x104.05. 2, 1 互换a,b的值6. 6.67.–038.79. 5.0,4,c=3<Enter>10.i=10,j=20<Enter>11.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.86400e+02(7) 3.14160e+00(8) 3.1416(9) 8765(10) 3.1416,8765.4312.a=2 b=5x=8.8 y=76.34c1=65 c2=97 3-3 编程题1.main(){ int x, y ;scanf(“%d%d” , &x, &y);printf(“x y\n”);printf(“%4d%4d\n”, x, y );printf(“%4o%4o\n”, x, y );printf(“%4x%4x\n”, x, y );}2.main(){ float a, b, h, s;scanf(“%f%f%f”, &a, &b, &h );s=(a+b)*h/2 ;printf(“%8.1f\n”, s);}3.main(){ char c;scanf(“%c”, &c );printf(“%c, %c, %c\n”, c-1, c, c+1 ); }4.main(){ int a, a1, a2, a3;scanf(“%d”, &a );a1=a%10 ; a=a/10;a2=a%10; a=a/10;a3=a%10;printf(“%d%d%d\n”, a1, a2, a3);}5.main(){ double a, b, c, ave;scanf(“%lf%lf%lf”, &a, &b, &c );ave=(a+b+c)/3 ;printf(“%8.2f\n”, ave);}6.main(){ int a, b, c, t;scanf(“%d%d%d”, &a, &b, &c );t=a; a=c; c=b ; b=t ;printf(“a=%d, b=%d, c=%d\n”, a, b, c );}习题44-1单选题1~5 BADAC 6~10 DDACD 11~15 BBBAB4-2填空题1.12.if(x>0) y=1else if (x==0) y=0else y=-13.(1) a>0 || b>0 (2) x>0 && x<=10(3) a==1.5 && b==1.5 && c==1.5 (4)p<a || p<b || p<c4.(1)0 (2)1 (3)1 (4)0 (5)05. max=(max=a>b?a:b)>c?max:c6.-47.18.5,0,39.85 belongs to B10. (1) (a==0) (2) (b==0) (3) (disc<0)4-3 编程题1.#include “math.h”main(){ float a,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if (a+b>c && a+c>b && b+c>a){ s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“%f”,area);}}2.main(){ int x,y;scanf(“%d,%d”,&x,&y);if (x*x+y*y>1000)printf(“%d\n”,(x*x+y*y)/100); elseprintf(“%d\n”,x+y);}3.main(){ int x,scanf(“%d”,&x);if(x%3==0 && x%5==0 && x%7==0) printf(“yes\n”);elseprintf(“no\n”);}4.#include “math.h”main(){ float x,y;scanf(“%f”,&x);if(x<-2) y=x*x-sin(x);else if (x<=2) y=pow(2,x)+1;else y=sqrt(x*x+x+1);printf(“%f\n”,y);}5. main( )long a,b,c,d,e,x;scanf("%ld",&x);a=x/10000;/*分解出万位*/b=x%10000/1000;/*分解出千位*/c=x%1000/100;/*分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);else if (d!=0) printf("there are 2, %ld %ld\n",e,d);else if (e!=0) printf(" there are 1,%ld\n",e);}6.1.程序分析:main( ){long ge,shi,qian,wan,x;scanf("%ld",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf("this number is a huiwen\n");elseprintf("this number is not a huiwen\n");}7. main(){float p,w,s,d,f;scanf(“%f,%,%f”,p,s,w);if (s>3000) d=0.15else if( s>=2000) d=0.1;else if(s>=1000) d=0.08;else if(s>=500) d=0.05;else if(s>=250) d=0.02;else d=0f=p*w*s*(1-d);printf(“%f”,f);}习题55-1单选题1~5 CDACB 6~10 DCAAB 11~16 DBDBCB5-2填空题1.2 02.k=5,s=43.3334.How Are You5.2#18#6.(1) i<10 (2) j%3!=07.(1) flag*(float)k/(k+1) (2) flag=-flag8.(1) s=0,t=1; (2) t=t*x/i*pow(-1,i+1); (3) printf(“%f”,s); 9.(1) max=x (2) x!=-1 (3) scanf("%d", &x)10. (1) n=1 (2) s5-3 编程题1. (1) main(){ int i; lont s=0;for(i=1;i<=100;i++)s+=i*i;printf(“%ld”,s);}(2)main(){ int i; lont p=1,s=0;for( i=1;i<=10;i++){p=p*i;s+=p;}printf(“%ld”,s);}(3) main(){ int i=1; lont p=1;float s=0;do{s+=1.0/p;p*=++i;}while(1.0/p>1e-6)printf(“%f”,s);}(4)main(){ int i=1, flag=1,pi=0;do{s+=flag*1.0/(2*i-1);i++;}while(1.0/(2*i-1)>1e-6);pri ntf(”%f”,s);}2.main(){int m,n,t,a,b;scanf(“%d,%d” ,&m,&n) ;if (m<n){ t=m ;m=n ;n=t ;}a=m;b=n;t=m%n ;while(t){ m=n ; n=t ;t=m%n;}printf(”%d,%d”,n,a*b/n);}3. main(){int x,y,s=1;scanf(”%d,%d”,&x,&y) ;for( ;y>0 ;y--)s*=x ;printf(”%d,%d,%d\n ”,s%10,s/10%10,s/100%10); }4.main(){int i=1, k=2, sum=0;do{sum+=k;k=k*2;i++;}while(sum<=100);printf(”total=%f\n”, 0.4*sum/(i-1));}5. main(){ int x,y,z;for( x=1 ; x<20 ;x++)for( y=1 ;y<33 ;y++){ z=100-x-y ;if (z>=0 && (5*x+3*y+z/3)-100<1e-5)printf(”x=%d,y=%d,z=%d\n”,x,y,z) ;}}6. main(){int j,k ;for( j=1 ;j<=4 ;j++){for(k=1;k<=4-j;k++;)printf(” ”);for(k=1 ;k<=2*j-1 ;k++)printf(”*”) ;printf(”\n”) ;}for( j=3;j>=1;j--){ for(k=1;k<=4-j;k++;)printf(””);for(k=1;k<=2*j-1;k++)printf(”*”);printf(”\n”);}}7.分析:其实此问题的解法非常简单。
C语言课后习题参考答案(前5章)
《C语言程序设计基础》书后习题参考答案(无编程题答案,红色为书上错误)第二章习题一、选择题。
1、在C语言中,要求参加运算的数必须是整数的运算符是()A)% B)/ C)!D)*2、若已定义x和y为double类型,则表达式“x=1.0,y=x+3/2”的值是()A)1 B)2 C)2.0 D) 2.53、若变量已正确定义并赋值,符合C语言语法的表达式是()A)a=a+7; B) a=7+b+c,a++ C) int (12.3/4 ) D) a=a+7=c+b4、若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为()A)1.0 B)1 C) 2.0 D)25、若x和n均是int型变量,且x的初值为12,n的初值为5 ,则执行表达式x%=(n%=2) 后x 的值为()A) 0 B)1 C) 2 D)36、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()A)7 B)8 C)9 D)107、指出下列哪一个选项的程序是错误的()A)#include<stdio.h> B) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1; x=0,y=x+1;z=x+y; z=x+y;} }C) #include<stdio.h> D) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1, x=0,y=x+1;z=x+y; z=x+y,} }8、若a为整型变量,则以下语句( )a=-2L;printf(“%d\n”,a);A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为29、若变量a,i已经正确定义,且i已正确赋值,则合法的语句是()A)i=int(a) B) ++i; C)a=a++=5; D) a=int(i);10、若执行以下程序段后,c3的值为()int c1=1,c2=2,c3;c3=1.0/c2*c1;A)0 B)0.5 C)1 D)211、如下程序的运行结果是()#include<stdio.h>void main( ){ int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}A) 3 4 B) 4 2 C) 4 3 D) 3 312、以下程序的输入结果为()#include<stdio.h>void main( ){int i=4,a;a=i++;printf(“a=%d,i=%d’,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=513、以下程序的输出结果是()#include <stdio.h>void main( ){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):( b); //多了(}A) 5 B) 4 C) 6 D) 不确定14、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)415、已知int i;float f;,正确的语句是()A)(int f)%i; B)int(f)%i; C) int(f%i); D)(int)f%i;16、已知int j,i=1;执行语句j=-i++;后,j的值是()A)1 B)2 C)-1 D)-217、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是()A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=a*(a=3)18、C语言中运算对象必须是整型的运算符是( )A) %= B) / C) = D)<=19、有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是( )A)12353514 B)12353513 C)12343514 D)1234351320、下面程序的输出结果是()#include<stdio.h>main( ){int x=5,y=3;printf(“%d\n”,y=x/y); }A)0 B)1 C)3 D)不确定的值21、执行下列程序中的输出语句后,a的值是()#include<stdio.h>void main( ){int a;printf(“%d\n”,(a=3*5,a*4,a+5)); }A) 65 B)20 C)15 D)1022、执行下列程序时输入1234567,程序的运行结果为()#include<stdio.h>main( ){int x,y;scanf (“%2d%2ld”,&x,&y);printf(“%d\n”,x+y); }A)17 B)46 C)15 D)923 、已知char a;int b;float c;double d; 则表达式a*b+c-d结果类型为()A) double B)int C)float D) char二、填空题1、若i为int整型变量且赋值为6,则运算i++后的表达式的值是__6__,变量i的值是___7___。
C语言课后习题参考答案
C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。
它以其简洁、高效和可移植性而闻名。
C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。
问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。
它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。
它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。
例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。
它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。
它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。
c语言网络教室所有题加答案
1.Hello world.让我们用C语言向世界问好。
最早的程序基本是这个样子的:程序一:#include <stdio.h>void main(){printf("Hello world.\n"); }程序二:#include <stdio.h>int main(){printf("Hello world.\n"); return0;}#include<stdio.h>void main(){printf("Hello world.\n");}2.Welcome to Beijing.让我们来练习如何显示多行文字。
#include<stdio.h>void main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");}3.求A+B输入两个整数,求它们的和.#include<stdio.h>void main(){int a,b;int sum;scanf("%d\n%d",&a,&b);sum=a+b;printf("%d+%d=%d\n",a,b,sum);}4.求x 的3次方输入:一个整数。
输出:该整数的3 次方值。
#include<stdio.h>void main(){int x;int s;scanf("%d\n",&x);s=x*x*x;printf("%d\n",s);}5.学习打印你的第一个图形背景:我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。
程序如下:#include <stdio.h>void main(){printf("****\n");printf("****\n");printf("****\n");printf("****\n");}要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。
C语言全部章节习题集(参考答案)
选择结构答案
一、单项选择题
1.B 2.A 3.D 4.C 5.D 6.B 7.C
二、填空题
1. 5 5 4
5 5 4
3 3 4
2. 4 0
3. VeryGood
Good
VeryGood
A. 8 B. 4 C. 2 D. 出错
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( D )。
A. 4 B. 3 C. 2 D. 1
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
{ float a,b,temp;
printf("input a and b:");
scanf("%d,%d",&a ,&b);
temp = a; a = b; b = temp;
printf("a=%d , b=%d\n", a , b);
scanf(“%f”,&t);
if(t>=90) ch=’A’;
else if(t>=80) ch=’B’;
24、下列不正确的转义字符是( C )。
A. \\ B. \' C. 074 D. \0
二、填空题:
1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&&b!=0 。
C语言程序设计(第3版)-参考答案 (9)
参考答案第 9 章编译预处理一、选择题二、编程题略。
习题一、选择题(1)编译预处理的工作是在( A )完成的。
A)编译前B)编译时C)编译后D)执行时(2)以下选项汇总,( D )不属于编译预处理。
A)宏定义B)文件包含C)条件编译D)连接(3)以下选项中,( C )是C语句。
A)#include<stdio.h> B)#define PI 3.1415926C)j++; D)a=3(4)以下叙述中错误的是( D )。
A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号结束C)“#define MAX 3 ”是合法的预处理命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(5)以下关于宏的叙述中正确的是( C )。
A)宏名必须用大写字母表示 B)宏定义必须位于源程序中所有语句之前C)宏展开没有数据类型限制D)宏调用比函数调用耗费时间(6)在宏定义#define PI 3.1415926中,用宏名代替一个( D )。
A)单精度数B)双精度数C)常量D)字符串(7)设有宏定义#define A B abcd,则宏展开时( A )。
A)宏名A用B abcd替换B)宏名A B用abcd替换C)宏名A和宏名B都用abcd替换D)语法错误,无法替换(8)若程序中有宏定义行#define N 100,则以下叙述中正确的是( B )。
A)宏定义行中定义了标识符N的值为整数100B)对C源程序进行预处理时,用100替换标识符NC)对C源程序进行编译时,用100替换标识符ND)在运行时,用100替换标识符N(9)以下程序的运行结果是( B )。
#include <stdio.h>#define M 5#define N M+Mvoid main( ){ int k;k=N*N*5;printf("%d\n",k);}A)500 B)55C)125 D)程序有错无输出结果(10)以下程序的运行结果是( D )。
C语言入门经典(第4版)课后练习参考答案
目录目录 (1)第1章C语言编程 (4)练习1.1 (4)练习1.2 (5)练习1.3 (5)第2章编程初步 (6)习题2.1 (6)习题2.2 (7)习题2.3 (9)习题2.4 (10)第3章条件判断 (12)习题3.1 (12)习题3.2 (14)习题3.3 (19)习题3.4 (21)第4章循环 (24)习题4.1 (24)习题4.2 (26)习题4.4 (27)习题4.5 (29)第5章数组 (31)习题5.1 (31)习题5.2 (33)习题5.3 (35)习题5.4 (36)习题5.5 (39)第6章字符串和文本的应用 (41)习题6.1 (41)习题6.2 (50)习题6.3 (53)习题6.4 (53)第7章指针 (57)习题7.1 (57)习题7.2 (59)习题7.3 (61)习题7.4 (63)习题8.1 (65)习题8.2 (67)习题8.3 (69)习题8.4 (73)第9章函数再探 (79)习题9.1 (79)习题9.2 (80)习题9.3 (83)习题9.4 (85)第10章基本输入输出操作 (87)习题10.1 (87)习题10.2 (89)习题10.3 (91)习题10.4 (92)第11章结构化数据 (95)习题11.1 (95)习题11.2 (99)习题11.3 (103)习题11.5 (114)第12章处理文件 (119)习题12.1 (120)习题12.2 (121)习题12.3 (125)习题12.4 (127)第13章支持功能 (132)习题13.1 (133)习题13.2 (133)习题13.3 (135)《C语言入门经典(第4版)》课后练习参考答案第1章C语言编程练习1.1 编写一个程序,用两个printf()语句别离输出自己的名字和地址。
练习1.2将上一个练习修改成所有的输出只用一个printf()语句。
练习1.3编写一个程序,输出下列文本,格式如下所示:"It's freezing in here," he said coldly.第2章编程初步习题2.1 编写一个程序,提示用户用英寸输入一个距离,然后将该距离值输出为码、英尺和英寸的形式。
C语言课后习题答案(第1-8章)
C语言课后习题答案(第1-8章)1.有的编程题答案有多种,只给出一种参考答案。
2.结合课本学习编程思想与技巧。
第一章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中的醋倒入B2.输入一个数放在a中max = a以下步骤重复9次:输入一个数放在a中如果a>max,max=a打印max的值3.如果a<b< bdsfid="85" p=""></b<>temp=aa=bb=temp如果c>atemp = aa=cc=temp否则如果c>btemp=bb=cc=temp打印a,b,c的值4.i=1sum=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.如果m做以下循环,直到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 () { a data b x 2)(1+-=adata b x 2)(2--=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. B2. C3. A4. A5. D6. B7.A8.C9.D二、写出下列程序的运行结果1.aabb cc abcAN2.ab97983. 9,11,9,104.a=2,b=3,c=25.s1=2.500000s2=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.1415926main( ){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.D2.D3.D4.C5.D6.A7.B8.B9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D21.A二、填空题1.5858582.03.184.89215.20,06.67.1,3,28.Year%400==0year%100!=0count++三、编程题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(“这是个一位数”);elseprintf(“输入错误”);}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. B2. A3. C4. C5. D6. B7.C8.B9.C 10. B二、写出下列程序的运行结果1.S=3682.*************************3.S1=18S2=104.!margorP5.数字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++)scanf("%d",&a[i]);printf("\n");for (i=1;i<=9;i++)for (j=1;j<=10-i;j++)if (a[j]<a[j+1])< bdsfid="320" p=""></a[j+1])<> {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("the sorted number is:\n");for (i=1;i<11;i++)printf("%4d",a[i]);}2.#include "stdio.h"main(){int a[11],i,b;printf("imput 10 sorted number:\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("input an integer:\n");scanf("%d",&b);for (i=9;i>=0&&a[i]>b;i--)a[i+1]=a[i];a[i+1]=b;printf("sorted numbers:\n");for (i=0;i<11;i++)printf("%5d",a[i]);}3.#include "stdio.h"main(){int a[5],i,j,t;printf("input 5 integer:\n");for (i=0;i<5;i++) /*输入5个整数*/scanf("%d",&a[i]);for (i=0,j=4;i<="" bdsfid="348" p="">{t=a[i];a[i]=a[j];a[j]=t;}for (i=0;i<5;i++) /*逆序存放后重新输出*/printf("%5d",a[i]);}4.#include "stdio.h"main(){int i,j,a[10][10]={{1},{1,1}};for (i=2;i<10;i++) /*给二维数组每个元素赋值*/ {a[i][0]=1; for (j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for (i=0;i<10;i++) /*输出二维数组*/{for (j=0;j<=i;j++)printf("%-5d",a[i][j]);printf("\n");}}5.#include "stdio.h"main(){int a[3][4],i,j,max,row,col;printf("input 3*4 matrix:\n");for (i=0;i<3;i++) /*输入3*4矩阵*/for (j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0]; row=0; col=0;for (i=0;i<3;i++) /*寻找矩阵中的最大值及其行列号*/ for (j=0;j<4;j++)if (max<a[i][j])< bdsfid="376" p=""></a[i][j])<>{max=a[i][j]; row=i, col=j;}printf("\n数组中最大的数是%d,其行号是%d,列号是%d\n",max,row,col);}6.#define N 3#define M 4#include "stdio.h"main(){int a[N][M],i,j,k,max,row,col;printf("input %d*%d matrix: \n",N,M);for (i=0;i<="" bdsfid="387" p="">for (j=0;j<m;j++)< bdsfid="389" p=""></m;j++)<>scanf("%d",&a[i][j]);for (i=0;i<="" bdsfid="392" p="">{max=a[i][0]; row=i; col=0;for(j=1;j<a[i][j])<="" *求矩阵中每一行的最大值及其所行列号*="" bdsfid="395" if="" p="">{max=a[i][j]; col=j;}for (k=0;k<max)<="" *判断每一行的最大值在其所在列是否最大*="" bdsfid="398" if="" p="">break;if (k==N) /*得到鞍点*/{printf("the point is %d,row=%d,col=%d\n",max,row,col);break;}}if (i==N) /*没有鞍点*/printf("no point\n");}7.#include "stdio.h"{int num=0,word=0;/*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/char c;printf("please input a string :\n");while ((c=getchar())!='\n')if (c==' ')word=0;else if (word==0){word=1; num++;}printf("There are %d words in the line\n",num);}8.#include "stdio.h"main(){int i,j,uppn,lown,dign,span,othn;/*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}9.#include "stdio.h"{int i,j;char str1[20],str2[20];printf("input two strings:\n");gets(str1);gets(str2);j=strlen(str1); /*求字符串1的长度*/for (i=0;str2[i]!='\0';i++,j++) /*字符串合并*/ str1[j]=str2[i];str1[j]='\0'; /*加上字符串结束标志*/puts(str1);}10.#include "stdio.h"main(){int i,n;char str1[20],str2[20];printf("input two strings:(no more than 20 characters)\n"); gets(str1); gets(str2);n=strlen(str1)printf("%d\n",str1[i]-str2[i]);}第六章函数与编译预处理一、单项选择题1. C2. B3. B4. B5. A6. B7.A8.C9.D 10. A二、写出下列程序的运行结果1.92.4,B8,B3.-4.0000004.a=6,b=55.48三、编程题1.main(){ int prime(int n);int n;printf("input n(n>0):\n");scanf("%d",&n);if (prime(n))printf("%d is a sushu\n",n);else printf("%d is not a sushu\n",n); }int prime(int n){int flag=1,i;for (i=2;i<=n/2&&flag==1;i++)if (n%i==0) flag=0;return(flag);}2.#define N 3convert(int array[3][3]){ int i,j,t;for (i=0;i<n-1;i++)< bdsfid="507" p=""></n-1;i++)<> for (j=i+1;j<n;j++)< bdsfid="509" p=""></n;j++)<> {t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){int i,j;int a[N][N];printf("input a:\n");for (i=0;i<n;i++)< bdsfid="520" p=""></n;i++)<>for (j=0;j<n;j++)< bdsfid="522" p=""></n;j++)<> scanf("%d",&a[i][j]);printf("Array a:\n");for (i=0;i<n;i++)< bdsfid="526" p=""></n;i++)<> {for (j=0;j<n;j++)< bdsfid="528" p=""></n;j++)<> printf("%5d",a[i][j]);printf("\n");}convert(a);printf("a de zhuanzhi is:\n");for (i=0;i<n;i++)< bdsfid="535" p=""></n;i++)<>{for (j=0;j<n;j++)< bdsfid="537" p=""></n;j++)<>printf("%5d",a[i][j]);printf("\n");}}3. #include#includemain(){char str[100];printf("input a string:\n") ;gets(str);inverse(str);printf("the reversed string is:%s\n",str);}inverse(char str[]){char t;int i,j;for (i=0,j=strlen(str)-1;i<j;i++,j--)< bdsfid="558" p=""></j;i++,j--)<>{t=str[i];str[i]=str[j];str[j]=t;}4. #includeconcat(char str1[],char str2[]){ int i=0,j;while (str1[i]!='\0')i++;for (j=0;str2[j]!='\0';i++,j++)str1[i]=str2[j];str1[i]='\0';}main(){char str1[100],str2[100];gets(str1);gets(str2);concat(str1,str2);puts(str1);}5. main(){char str[80];printf("input a string (4 ge shu zi zi fu):\n"); scanf("%s",str); insert(str);printf("result is:\n%s\n",str);}insert(char str[]){int i;for (i=strlen(str);i>0;i--){str[2*i]=str[i];str[2*i-1]=' ';}6. #include "stdio.h"int i,ndight,nwhite,nletter,nother;count(char str[]){ndight=nwhite=nletter=nother=0;for (i=0;str[i]!='\0';i++)if (str[i]>='0'&&str[i]<='9')ndight++;else if ((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')) nletter++;else if (str[i]==' ')nwhite++;else nother++;}main(){char text[80];printf("input a string:\n");gets(text);count(text);printf("ndight=%d,nletter=%d,nwhite=%d,nother=%d\n",n dight,nletter,nwhite,nother); }7. #define N 10#includesort(char str[]){int i,j;char t;for (i=1;i<n;i++)< bdsfid="625" p=""></n;i++)<>for (j=0;j<n-i;j++)< bdsfid="627" p=""></n-i;j++)<> if (str[j]>str[j+1]){t=str[j];str[j]=str[j+1] ;str[j+1]=t;}}main(){char str[N];int i ;printf("Input 10 ge zi fu:\n");gets(str);printf("The sorted result:\n") ;for(i=0;i<n;i++)< bdsfid="639" p=""></n;i++)<> printf("%c",str[i]);}8.这题较复杂#include#include#define N 10void input_e(int num[],char name[N][8]){int i;for (i=0;i<n;i++)< bdsfid="651" p=""></n;i++)<> { printf("input gong hao:");scanf("%d",&num[i]);printf("input name:");getchar();gets(name[i]);}for (i=0;i<n;i++)< bdsfid="659" p=""></n;i++)<> printf("%5d%10s\n",num[i],name[i]);}void sort(int num[],char name[N][8]) /*选择法排序*/{int i,j,min,temp1;char temp2[8];for (i=0;i<n-1;i++)< bdsfid="666" p=""></n-1;i++)<> {min=i;for (j=i+1;j<n;j++)< bdsfid="669" p=""></n;j++)<>if (num[j]temp1=num[i];strcpy(temp2,name[i]);num[i]=num[min];strcpy(name[i],name[min]);num[min]=temp1;strcpy(name[min],temp2);}printf("the sorted result:\n");for (i=0;i<n;i++)< bdsfid="681" p=""></n;i++)<>printf("%5d%10s\n",num[i],name[i]);}void search(int n,int num[],char name[N][8]) /*折半查找法*/ { int top,bott,mid,find;bott=N-1;if ((nnum[N-1]))find=-1;while ((find==0)&&(top<=bott)){mid=(bott+top)/2;if (n==num[mid]){find=1; printf("%d name is:%s\n",n,name[mid]);}else if (n<num[mid])< bdsfid="695" p=""></num[mid])<> bott=mid-1;else top=mid+1;}if ((find==-1)||(find==0))printf("%d is not found.\n",n);}main(){int num[N],number,c,flag;char name[N][8];input_e(num,name);sort(num,name);for (flag=1;flag;){printf("please input chazhao de gonghao:"); /*输入查找的工号*/ scanf("%d",&number);search(number,num,name);printf("continue Y/N?"); /*是否继续查找*/getchar();c=getchar();if (c=='N'||c=='n')flag=0;}}9. #include "stdio.h"#define MAX 10main(){char str[MAX];char c;int i;i=0;printf("input number(16 jinzhi): "); /*输入一个十六进制的数*/while((c=getchar())!='\n'&&i<max)< bdsfid="727" p=""></max)<>{ str[i]=c;i++;printf("result is :%d\n",htod(str));}int htod(char s[]){int i,n;n=0;for(i=0;s[i]!='\0';i++){if (s[i]>='0'&&s[i]<='9')n=n*16+s[i]-'0';if (s[i]>='a'&&s[i]<='f')n=n*16+s[i]-'a'+10;if (s[i]>='A'&&s[i]<='F')n=n*16+s[i]-'A'+10;}return(n);}10. #define SW AP(a,b) t=a;a=b;b=t main(){int a,b,t;printf("input a,b:") ;scanf("%d,%d",&a,&b);SW AP(a,b);printf("result:a=%d,b=%d\n",a,b);}11. #define SURPLUS(a,b) ((a)%(b)) main(){int a,b;printf("input a,b:");scanf("%d,%d",&a,&b);printf("result is: %d\n",SURPLUS(a,b)); } 12. main(){int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%d\n",max(a,b,c));}int max(int x,int y,int z){int t;t=(x>y ? x : y);return(t>z?t:z);}#define MAX(x,y) ((x)>(y)?(x):(y)) main(){int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%d\n",MAX(MAX(a,b),c)); }13. #include "stdio.h"#define CHANGE 1#define MAX 80main(){char str[MAX];int i;printf("input a string:\n");gets(str);#if (CHANGE){ for (i=0;str[i]!='\0';i++)if (str[i]>='a'&&str[i]<'z'||str[i]>='A'&&str[i]<'Z')str[i]=str[i]+1;else if (str[i]=='z'||str[i]=='Z')str[i]=str[i]-25;}#endifprintf("%s\n",str);}第七章指针一、选择题1)A 2)D 3)D 4)C 5)B 6)B 7)B 8)C 9)B 10)C 11)A 12)A 13)A 14)C 15)B 16)A 17)C 18)B 19)D 20)B二、阅读下面程序,写出程序运行结果1)abcdeedcba 2)1113151719 3)(TurboC中是11,9 7,11 )(VisualC是9,9 7,11)4)3 6 5)6385三、编程题1、main( ){ int a[10],i,temp,*p=a;printf("Please input array a:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]);printf("array a:\n");for(i=0;i<10;i++)printf("%4d",a[i]);for(i=0;i<5;i++){ temp=p[i];p[i]=p[10-i-1];p[10-i-1]=temp;}printf("\n Now array a:\n");for(i=0;i<10;i++)printf("%4d",a[i]);}2、main( ){ int a[3][3],*p,i,j;printf("please input matrix:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++)scanf("%d",&a[i][j]);p=&a[0][0];move(p);printf("\n Now matrix:\n");for(i=0;i<3;i++){ for(j=0;j<3;j++)printf("%4d",a[i][j]);printf("\n");}}move(int *q){ int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){ t=*(q+3*i+j);*(q+3*i+j)=*(q+3*j+i); *(q+3*j+i)=t;}}3、#include#include。
(完整版)C语言课后题编程标准答案
C语言课后题编程答案所有章节的课后习题的选择题和填空题大家必须熟练掌握,编程题掌握到第九章即可。
希望大家通过课后的编程题熟悉典型的编程算法,掌握基本的编程思路,注意编程细节。
第3章3-17 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。
#include<stdio.h>main(){int h,m。
h=560/60。
m=560%60。
printf(“560分钟可转换成%d小时%d分钟”,h,m)。
}程序总结:(1)只要在程序中用到系统提供的库函数,必须把库函数所在的头文件用#include命令包含进来。
否则库函数的使用无效。
输入输出库函数的头文件是:stdio.h。
数学函数的头文件是:math.h。
字符处理函数的头文件是:ctype.h。
字符串处理函数的头文件是:string.h。
(2)注意C语言中的“/”和“%”两种运算符。
“/”的运算结果取决于两操作数的类型。
比如:1/2=0(与数学中不同,结果与操作数的类型一致,所以结果只取商值),1.0/2=0.5(除之前2要自动类型转换成 2.0,因为只有同类型的操作数才能进行除运算), 1/2.0=0.5, 1.0/2.0=0.5。
“%”的两个操作数都必须是整数。
(3)printf(“560分钟可转换成%d小时%d分钟”,h,m)。
printf第一个参数要尽量详细,这样可以提高输出结果的可读性,恰当好处的添加提示性信息,可以提高程序的质量。
(4)int h,m。
变量起名要有艺术性,尽量做到见名知意。
3-18 编写程序,输入两个整数,1500和350,求出它们的商和余数并进行输出。
#include<stdio.h>main(){int a,b,m,n。
printf(“请输入两个整数:\n”)。
scanf(“%d%d”,&a,&b)。
m=a/b。
n=a%b。
printf(“%d除以%d商%d余%d”,a,b,m,n)。
c语言试题及答案解析
c语言试题及答案解析1. 题目:请解释什么是C语言的预处理器,并简要描述它的工作原理。
答案解析:C语言的预处理器是一种对源代码进行预处理的程序。
它在编译阶段之前执行,用于对代码进行一些预处理指令的解析和替换。
预处理器会根据预处理指令进行文本的替换、条件编译、宏定义、头文件的包含等操作。
预处理器的工作原理如下:首先,预处理器会扫描源代码,根据预处理指令(以“#”开头的语句)进行相应的处理。
例如,它可以根据宏定义指令将特定的代码片段替换为指定的文本。
其次,预处理器会展开宏定义。
宏定义是使用“#define”关键字定义的一段代码片段,它可以代表一系列的代码或值。
预处理器会将源代码中的宏调用替换为宏定义的文本。
然后,预处理器会处理条件编译指令。
条件编译指令可以根据条件的真假决定是否编译某段代码。
预处理器根据条件的真假情况选择性地编译或排除代码。
最后,预处理器会处理头文件的包含指令。
头文件包含指令使用“#include”关键字,用于将一个源代码文件的内容包含到另一个文件中。
预处理器会根据包含指令将头文件的内容插入到源代码中。
2. 题目:请解释C语言中的存储类别关键字auto、register、static和extern的作用和使用方法。
答案解析:- auto关键字:auto是C语言中的默认存储类别关键字,用于定义自动变量。
自动变量是在函数内部定义的局部变量,默认情况下存储在栈中。
它的作用是在每次函数调用时分配内存,函数结束时自动释放内存。
- register关键字:register用于定义寄存器变量。
寄存器变量是使用寄存器来存储的变量,它的访问速度更快。
但是,由于寄存器的数量有限,编译器可能会忽略register关键字的请求,将变量存储在内存中。
- static关键字:static用于定义静态变量和函数。
静态变量具有静态存储期,即在程序运行期间始终存在,且只能在定义它的源文件中访问。
静态函数则只能在定义它的源文件中使用,不能被其他文件调用。
网课c语言试题及答案
网课c语言试题及答案1. 单选题:以下哪个关键字用于定义C语言中的结构体?A. structB. unionC. enumD. typedef答案:A2. 判断题:在C语言中,所有的变量都必须在函数的开始处声明。
答案:错误3. 填空题:在C语言中,使用________关键字可以定义一个指针变量。
答案:指针4. 简答题:请描述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被看作指向数组首元素的指针。
数组和指针紧密相关,可以通过指针访问数组元素。
5. 编程题:编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```6. 多选题:以下哪些是C语言中的合法数据类型?A. intB. floatC. boolD. double答案:A, B, D7. 计算题:给定一个整数数组{5, 10, 15, 20, 25},请计算数组中所有元素的总和。
答案:758. 改错题:以下C语言代码中存在一个错误,请找出并修正。
```cint main() {int a = 10;printf("%d", a++);return 0;}```答案:应将 `printf("%d", a++);` 更正为 `printf("%d", a);` 以避免在打印后立即递增变量。
9. 简答题:解释C语言中函数原型和函数定义的区别。
答案:函数原型是函数的声明,它告诉编译器函数的返回类型、名称和参数类型。
C语言-习题集参考答案全部
目录- 1 -目录第一章C语言基础知识参考答案 ................................................................................ - 2 - 第二章顺序结构参考答案.......................................................................................... - 5 - 第三章选择结构参考答案.............................................................................................. - 7 - 第四章循环结构参考答案............................................................................................ - 11 - 第五章函数参考答案................................................................................................ - 15 - 第六章指针参考答案.................................................................................................... - 18 - 第七章一维数组参考答案............................................................................................ - 21 - 第八章二维数组参考答案.......................................................................................... - 28 - 第九章字符串参考答案.......................................................................................... - 31 - 第十章对C语言的深入讨论参考答案 ....................................................................... - 33 - 第十一章结构体与共用体参考答案............................................................................ - 34 - 第十二章文件参考答案........................................................................................ - 35 -全国计算机等级考试二级教程C 语言习题集参考答案- 2 - 第一章C语言基础知识参考答案一,选择题1 C2 D3 A4 C5 A6 D7 C 分析:C答案以数字开头了8 D 分析:int 是关键字9 C 10 D 11 B12 D 分析:Visual C++6.0中int类型的变量占的字节数为4。
c语言全部章节习题答案
c语言全部章节习题答案C语言是一门广泛应用于计算机编程的高级编程语言。
它的简洁和强大使得它成为了许多程序员的首选语言。
然而,学习一门新的编程语言并不总是容易的,特别是对于初学者来说。
为了帮助那些正在学习C语言的人们,本文将提供C语言全部章节习题的答案,以期为读者提供一些指导和帮助。
在学习C语言时,习题是巩固所学知识的重要方式。
通过解决习题,学生可以加深对C语言的理解,并提高他们的编程技能。
然而,有时候习题的解答并不容易找到,特别是对于初学者来说。
因此,本文将提供C语言教材中的全部章节习题的答案,以供读者参考。
在第一章中,我们学习了C语言的基本概念和语法。
习题主要涉及变量的声明和赋值,以及简单的算术运算。
以下是第一章习题的答案:1. 声明一个整型变量x,并将其赋值为10。
答案:int x = 10;2. 声明一个字符型变量ch,并将其赋值为'A'。
答案:char ch = 'A';3. 声明两个整型变量a和b,并将其相加的结果赋值给变量c。
答案:int a = 5;int b = 3;int c = a + b;第二章主要介绍了C语言中的控制结构,如条件语句和循环语句。
以下是第二章习题的答案:1. 编写一个程序,判断一个整数是否为偶数。
如果是偶数,输出"Even",否则输出"Odd"。
答案:#include <stdio.h>int main() {int num;printf("Enter an integer: ");scanf("%d", &num);if(num % 2 == 0) {printf("Even");} else {printf("Odd");}return 0;}2. 编写一个程序,计算1到100之间所有偶数的和。
C语言试题答案仅供参考(一)
C语言试题答案仅供参考(一)
C语言试题答案仅供参考
C语言是一门非常重要的计算机语言,对于广大计算机从业者来说,掌握C语言是非常关键的。
很多人通过考试来检验自己对于C语言的掌握程度,所以在网上也可以看到各种各样的C语言试题以及相应的答案,但是需要注意的是,这些答案无非只是个参考。
首先,C语言试题的答案是不是绝对正确呢?其实不是。
因为C语言本身就是一门比较复杂的语言,在不同的环境下可能会有不同的应用和表现。
而且C语言的知识点非常多,在不同的试题中也可能会考察不同的知识点。
正因为这个原因,C语言试题的答案可能会存在多种不同的情况和结论,而不是单一的答案。
其次,C语言试题的答案可能会有误。
虽然试题设计者在出题前都会进行反复的验证,但是有些情况并不能涵盖到所有的可能性,有时候还会因为题目的描述不够精准而引起歧义。
除此之外,有些题目还涉及到计算机原理、操作系统等方面的知识点,这些知识点也是容易引起误解和错误的。
最后,文献资料参考值需要慎重。
很多学生在复习C语言时,会参考很多文献资料,比如书本、视频、网课等等,但是这些资料的准确性也未必是绝对的。
在选择资料的时候,还需要注意一些细节,比如出版时间、作者、出处等等。
一些过时的或者是非权威的资料,可能会给大家带来误导和困扰。
综上所述,C语言试题的答案仅供参考。
在做题的过程中,需要仔细阅读题目并分析其要求,理解其中的知识点和思路,并作出合理的答案
或者结论。
同时,在参考答案和资料的时候也需要保持警觉,判断其准确性和适用性,尽量选择权威的资料和标准的答案。
只有这样,才能够更好地掌握C语言,取得更好的考试成绩。
计算机二级C语言基础习题及答案
计算机二级C语言基础习题及答案2017计算机二级C语言基础习题及答案计算机等级考试越来越受到同学们的重视,下面是店铺为大家整理的2017计算机二级C语言基础习题及答案,欢迎学习!(1)OSI模型的物理层负责下列哪一种功能?A)格式化报文B)为数据选择通过网络的路由C)定义连接到介质的特征D)提供远程文件访问能力答案C(2)在不同网络结点的对等层之间的通信需要下列哪一项协议?A)模块接口B)对等层协议C)电信号D)传输介质答案B(3)____拓扑结构不是局域网所使用拓扑结构A)星型拓扑B)网状型拓扑C)总线型拓扑D)环型拓扑答案B(4)网络*作系统种类比较多,下面____不属于网络*作系统A)DOSB)WindowsNTC)NetWareD)Unix答案A(5)关于电子邮件下面的说法不正确的.是A)发送电子邮件时,通讯双方必须都在场B)电子邮件比人工邮件传送更方便、快捷C)电子邮件可以同时发送给多个用户D)在一个电子邮件种,可以发送文字、图像、语音等信息答案A(6)网络看起来是“连接”的,但从网络连接的原理看又可以是“非连接的”。
Internet中不是面向连接应用程序有____。
A)电子邮件E-mailB)文件传输FTPC)网络在线游览WWWD)远程登陆Telnet答案A(7)网络体系结构可以定义成:A)计算机网络的实现B)执行计算机数据处理的软件模块C)建立和使用通信硬件和软件的一套规则和规范D)由ISO(国际标准化组织)制定的一个标准答案C(8)决定局域网特性的主要技术要素是:网络拓扑、传输介质和A)数据库软件B)服务器软件C)体系结构D)介质访问控制方法答案D(9)快速以太网FastEthernet的传输速率为A)100MbpsB)10MbpsC)1GbpsD)10Gbps答案A(10)在双绞线组网的方式中,____是以太网的中心连接设备。
A)集线器B)收发器C)中继器D)网卡答案A。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2-1. 整型数的表示范围成绩: 10 / 折扣: 0.8编写一个循环程序,输入N 值,输出N 的阶乘。
关于循环程序怎么编写,可以参考教材第六章P123的内容。
注意整型数的表示范围,如果当输入的N 比较大时,例如N 等于20 时,输出怎么是负数了?自己想明白吧!测试输入期待的输出时间限制内存限制额外进程测试用例 1 以文本方式显示1.5↵以文本方式显示1.120↵1秒64M 0测试用例 4 以文本方式显示1.12↵以文本方式显示1.479001600↵1秒64M 0测试用例 2 以文本方式显示1.20↵以文本方式显示1.N is too big!↵1秒64M 01.#include <stdio.h>2.main()3.{4.int i,N,k;5. scanf("%d",&N);6.for(i=k=1;i<=N;i++)7. k*=i;8.if(k>0)9. printf("%d\n",k);10.else11. printf("N is too big!\n");12. system("pause");13.}2-2. 打印N形图形成绩: 10 / 折扣: 0.8编程,输入n值,输出下例(n=4)所示的图形:* * ** * * ** * *输入:图形的高n输出: 高为 n 的N 形图形测试输入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1. 4↵以文本方式显示1. * *↵2. ** *↵3. * **↵4. * *↵1秒 64M 01. #include <stdio.h>2. main()3. {4. int n,i,j;5. scanf("%d",&n);6. for (i=1;i<=n;i++)7. {for (j=1;j<=n;j++)8. printf("%s",j==1||j==n||j==i?"*":" "); 9. printf("\n"); 10. } 11. }2-3. 打印X形图形成绩: 10 / 折扣: 0.8输入 n 值,输出下例(n=3)所示的图形: * * * * * * * * *输入: 图形的高 n 输出: 高为 n 的X 形图形测试输入期待的输出时间限制 内存限制 额外进程测试用例 1以文本方式显示1. 4↵ 以文本方式显示1. * *↵1秒64M2. * *↵3. * *↵4. *↵5. * *↵6. * *↵7.* *↵1.#include <stdio.h>2.main()3.{4.int i,n,j;5. scanf("%d",&n);6.for(i=1;i<=2*n-1;i++)7. {8.for(j=1;j<=2*n-i||j<=i;j++)9. printf("%s",j==i||j==2*n-i?"*":" ");10. printf("\n");11. }12.}2-4. 判断输入的字符的类型成绩: 10 / 折扣: 0.8我们将字符分为五类:大写字母、小写字母、数字、控制字符、其他字符。
编写程序,从键盘输入一个字符,输出字符所属的类型:大写字母时输出capital letters,小写字母时输出small letters,数字是输出figures,控制字符时输出control characters,其他字符时输出others。
测试输入期待的输出时间限制内存限制额外进程测试用例 1 以文本方式显示1.A↵以文本方式显示1.capital letters↵1秒64M 01.#include<stdio.h>2.main()3.{4.char c;5.scanf("%c",&c);6.if('A'<=c&&c<='Z')7.printf("capital letters\n");8.else if('a'<=c&&c<='z')9.printf("small letters\n");10.else if('0'<=c&&c<='9')11.printf("figures\n");12.else if('NUL'<=c&&c<='US')13.printf("control characters\n");14.else printf("others\n");15.}2-5. 整数的反序数成绩: 10 / 折扣: 0.8输入四位正整数N,若它的K(1<K<20)倍恰好是其反序数(例如:1234的反序数是4321),输出所有满足条件的K和反序数,若不存在,则输出:No output↵输入:四位正整数N输出:K和反序数测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1.1089↵以文本方式显示1.9 9801↵1秒64M 01.#include <stdio.h>2.main()3.{4.int a,b,c,M,d,k;float N,p,u;5. a!=0; 保证四位数的作用6. scanf("%1d%1d%1d%1d",&a,&b,&c,&d);7. N=1000*a+100*b+10*c+d,8. M=1000*d+100*c+10*b+a,9. u=M/N,10. k=(int)u,11. p=(float)k;12.if (u==p&&1<k<20)13. printf("%d %d\n",k,M);14.else15. printf("No output\n");16.}3-1. 打印菱形图形成绩: 10 / 折扣: 0.8输入n ,输出如下例(n=3 )所示的边长为n 的菱形:*************输入:边长n输出:边长为n 的菱形测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1.5↵以文本方式显示1. *↵2. ***↵3. *****↵4. *******↵5.*********↵6. *******↵7. *****↵8. ***↵9. *↵1秒64M 01.#include<stdio.h>2.main()3.{ int i,j,n;4. scanf("%d",&n);5.for(i=1;i<=n;i++)6. { for(j=1;j<=n-i;j++)7. printf(" ");8.for(j=1;j<=2*i-1;j++)9. printf("*");10. printf("\n");11. }12.for( i=1;i<=n-1;i++ )13. { for( j=1;j<=i;j++ )14. printf(" ");15.for( j=1;j<=2*(n-i)-1;j++ )16. printf("*");17. printf("\n");18. }19.}3-2. 打印平行四边形成绩: 10 / 折扣: 0.8输入图形的高n 和首字符 c ,输出如下例(c='A' ,n=5 )所示的图形 . ABCDEBCDEFCDEFGDEFGHEFGHI输入:高n 和首字符 c输出:高为n 和首字符为 c 的平行四边形测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1.3,a↵以文本方式显示1.abc↵2. bcd↵3. cde↵1秒64M 01.#include<stdio.h>2.main()3.{ int i,j,n; char c;4. scanf("%d,%c",&n,&c);5.for( i=1;i<=n;i++ )6. { for( j=1;j<=i-1;j++ )7. printf(" ");8.for( j=1;j<=n;j++ )9.for( j=i;j<=n+i-1;j++ )10. printf("%c",c+j-1);11. printf("\n");12. }13.}3-3. 求和成绩: 10 / 折扣: 0.8输入整数m 和正整数n ,按下列公式计算s :s=m-(m+1)+m+2-(m+3)+ …… +(-1)n(m+n) 。
输入:m 和n输出:s测试输入期待的输出时间限制内存限制额外进程测试用例1以文本方式显示1.1 90↵以文本方式显示1.s=46↵1秒64M01.#include<stdio.h>2.main()3.{ int i,k,m,n;long s;4. scanf("%d %d",&m,&n);5. i=1;k=-1;6. s=m;7.while(i<=n)8. { s+=k*(m+i);9. i++;10. k=(-k);11. }12. printf("s=%ld\n",s);13.}3-4 字符加密输出成绩: 10 / 折扣: 0.8从键盘上输入一个字符,进行加密以后再输出在屏幕上。
加密规律是:输入小写英文字母时,输入a 输出Z 、输入b 输出Y 、输入c 输出X 、...、输入z 输出A 。
输入大写英文字母时,将该字母ASCII 码值再加上该值的1/2后输出所对应的字符,例如数字A 的ASCII 码值是65,加上其值的1/2后是98(小数四舍五入),则输出字符‘b’。
输入数字时,将该数字原ASCII 码值再加上该值十进制的十位上的数后输出,例如数字9的ASCII 码值是57,加上十位上的数5后是62,则输出字符‘>’。