C语言习题参考答案1-5

合集下载

C语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]之欧阳与创编

C语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]之欧阳与创编

第1章习题参考答案1.单项选择题(1)A (2)C (3)D (4)C (5)B2.填空题(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)(x<0&&y<0)||(x<0&&z<0)||(y<0||z<0)(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 BCDBC 11-15 BCBBB 16 A2.填空题(1)用;表示结束(2){ }(3)y=x<0?1:x==0?0:-1(4)y%4==0&&y%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,-24.程序填空(1)x:y, u:z(2)m=n , m!=0 ,m=m/10(3)t<eps , t*n/(2*n+1) , printf(“%lf\n”,2*s)(4)m%5==0 ,printf(“%d\n”,k)(5)cx=getchar() , cx!=front , cx(6)double s=0 , 1.0/k , %lf(7)s>=0 , s<gmin ,欧阳与创编5.编程题(1).#include <stdio.h>int main(){double x,y;scanf("%lf",&x);if(x<1)y=x;else if(x>=1.0&&x<10)y=2*x-11;elsey=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(x>y)min=y;elsemin=x;if(min>z)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==0&&y%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;}}if(flag==1&&m>2)s=s+1;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(p>10&&p<=20) r=10*0.1+(p-10)*0.075; else if(p>20&&p<=40) r=10*0.1+10*0.075+(p-20)*0.05;else if(p>40&&p<=60)r=10*0.1+10*0.075+20*0.0 5+(p-40)*0.03;else if(p>60&&p<=100)r=10*0.1+10*0.075+20*0.0 5+20*0.03+(p-60)*0.015; else if(p>100)r=10*0.1+10*0.075+20*0.0 5+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>='a'&&c<='z')c=c-32;putchar(c);}return 0;}(6).#include<stdio.h>int main(){int m,k=2;printf("输入一个正整数:\n");scanf("%d",&m);while(k<m)if(m%k==0){printf("%4d",k);m=m/k;}elsek++;printf("%4d\n",m);return 0;}(7).#include<stdio.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).#include<stdio.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).#include<stdio.h>#include<math.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*f1<0) {b=x;f2=f;}else{a=x;f1=f;}}while(fabs(f)>=1e-6);printf("%6.2f\n",x);return 0;}(10).#include<stdio.h>#include<math.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).#include<stdio.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 BDAB2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern(5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3(4)i=5i=2i=2i=4i=2(5)求水仙花数(6)-5*5*5(7)30(8)0 101 112 124.程序填空(1)float fun(float , float) , x+y,x-y , z+y,z-y(2)x , x*x+1(3)s=0 , a=a+b5.编程题(1).#include<stdio.h>unsigned int fun(unsignedint);欧阳与创编int main(){unsigned int s;scanf("%u",&s);printf("%u\n",fun(s));return 0;}unsigned int fun(unsigned int s){unsigned int p=0;while(s!=0){p=p+s%10;s=s/10;}return p;}(2).#include<stdio.h>#include<stdlib.h>#include<math.h>voidf1(float,float,float,float); voidf2(float,float,float,float); voidf3(float,float,float,float);int main(){float a,b,c,d;scanf("%f %f %f",&a,&b,& c);if(a==0) {printf("不是一元二次方程\n");exit(0);}d=b*b-4*a*c;if(d>0)f1(a,b,c,d);else if(d==0)f2(a,b,c,d);elsef3(a,b,c,d);return 0;}void f1(float a,float b,float c,float d){float x1,x2;{x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("%.2f ,%.2f\n",x1,x2); }}void f2(float a,float b,float c,float d){float x1,x2;{x1=-b/(2*a);x2=-b/(2*a);printf("%.2f ,%.2f\n",x1,x2); }}void f3(float a,float b,float欧阳与创编c,float d){float x1,x2;{x1=-b/(2*a);x2=sqrt(-d)/(2*a);printf("%.2f+i*%.2f\n",x1,x 2);printf("%.2f-i*%.2f\n",x1,x2);}}(3).#include<stdio.h>double p(int,double);int main(){int n;double x;do{scanf("%d",&n);}while(n<0);scanf("%lf",&x);printf("%lf\n",p(n,x)); return 0;}double p(int n,double x) {double pn;if(n==0)pn=1;else if(n==1)pn=x;else pn=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n;return pn;}(4).#include<stdio.h>#define RATE 0.053double fun(float);void display(float,int);int main(){float dep;int season;scanf("%f %d",&dep,&seas on);display(dep,season);return 0;}double fun(float d){return d*RATE;}void display(float d,int s) {int i;printf("季度利余额\n"); printf("-------------------------------\n");for(i=1;i<=s;i++){printf("%-4d %-.2f %-.2f\n",i,fun(d),fun(d)*i+d);printf("----------------------欧阳与创编---------\n");}}(5).#include<stdio.h> double fun(void);int main(){printf("%lf\n",fun()); return 0;}double fun(void){double s=0;int n=1;while((double)(2*n-1)/((2*n)*(2*n))>1e-4) {s=s+(double)(2*n-1)/((2*n)*(2*n)); n++;}return s;}(6).#include<stdio.h>int fun(int);int main(){int w;scanf("%d",&w);printf("%d\n",fun(w)); return 0;}int fun(int w){int n=1,p=1,m;m=w;while(m>10){m=m/10;p=p*10;n++;}return w%p;}欧阳与创编第5章习题参考答案1、选择题:1-5 C (B C) BBA 6-8 DDB2、填空题(1)0,9(2)float realArray[100],char strArray[16],int intArray[1000](3)运算符 sizeof(4) 6字节3、阅读程序,写出下面程序的运行结果(1) aabbcc dd(2) abcd(3)ahAMa(4)0010(5) 1 3 4 5(6)This is the title.Name 1 is RosalindaName 2 is ZekeThe biggest name alpabetically is ZekeBoth names are Rosalinda Zeke(7)0 0 0 0 0 0 0 00 1 2 3 4 5 6 70 2 5 6 8 10 748 140 3 6 9 12 15 18 210 4 8 12 16 20 24 280 5 10 15 20 177 30 350 6 12 18 24 30 36 420 7 14 21 28 35 42 494、程序填空(1) a[i][j] != a[j][i] , 1(2) 0, a[i] < a[mini] , maxi = i , a[maxi] = a[mini](3) int a[], int b[], b[i] = a[i], -999, arraycopy(a,b), b[i++] (4) a<sizeof(ch), if5、编程题(1)#include<stdio.h>int main ( ){1 int a[3][4] = {0, 2,9,7,5,13,6,8,27,11,1,3};int i,j,temp;for(i=0,j=0;j<4;j++){temp = a[2-i][j];a[2-i][j] = a[i][j];a[i][j] = temp;}for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",a[i][j]);printf("\n");}return 0;}(2)#include<stdio.h>int main ( ){static int a[6][6];int i,j,t=1;for(i=0;i<6;i++){t = i+1;for(j=0;j<i+1;j++)a[i][j] = t--;}for(i=0;i<6;i++){for(j=0;j<6;j++)printf("%3d",a[i][j]);printf("\n");}return 0;}(3)#include <stdio.h>#define M 3#define N 4#define R 5int main( ){static int a[M][N],b[N][R],c[M][R]; int i,j,k;2 printf("Matrix a:\n");for( i = 0; i < M; i++ )for( j = 0; j < N; j++ )scanf( "%d",&a[i][j] );printf("Matrix b:\n");for( i = 0; i < N; i++ )for( j = 0; j < R; j++ )scanf( "%d",&b[i][j] );for( i = 0; i < M; i ++ )for( j = 0; j < N; j++ )for( k = 0; k < R; k++)c[i][k] += a[i][j]*b[j][k];for( i = 0; i < M; i++ ){for( j = 0; j < R; j++ )printf( "%3d",c[i][j] );printf("\n");}return 0;}(4)#include <stdio.h>#define M 5int main( ){static int a[M];int i,max = -1,min = 100,maxi,mini,temp; for( i = 0; i < M; i++ )scanf( "%d",&a[i] ); //0~99间的值for( i = 0; i < M; i++ ){if( max < a[i] ){max = a[i];maxi = i;}if( min > a[i] ){min = a[i];mini = i;}}temp = a[maxi];a[maxi] = a[mini];a[mini] = temp;for( i = 0; i < M; i++ )printf( "%3d",a[i] );return 0;}3(5)#include <stdio.h>#define M 3#define N 4int main( ){static int a[M][N];int max = -1,sumcol=0,sumrow=0;int i,j,maxi,col;for( i = 0; i < M; i++ ){sumrow = 0;for( j = 0; j < N; j++ ){scanf( "%d",&a[i][j] );sumrow += a[i][j];}if ( max < sumrow ){max = sumrow;maxi = i;}}printf("which col sum will be caculated?(>0)");scanf("%d",&col);for( i = 0; i < M; i ++ )sumcol += a[i][col-1];printf("The %dth row's sum is max, max=%d\n",maxi+1,max); printf("The %dth column's sum=%d\n",col,sumcol);return 0;}(6)#include <stdio.h>#define M 81int main( ){static char str[M];int i,count = 0;char ch;gets(str);fflush(stdin); //清空输入缓冲区,以便读入字符数据printf("Which character will be found?");ch = getchar();for( i = 0; i < strlen(str); i++ )if( ch == str[i] )count++;printf( "The number of character '%c' is %d\n",ch,count );4 return 0;}(7)#include <stdio.h>#include <stdlib.h>#define N 10 //同学人数#define M 5 //课程数void enter_scores(void);void sort_scores(int score[][M], int average[N][3]);void disp_scores(int score[][M]);void histogram(int n, int score[][M]);void printchar(int n);static int score[N][M];static int aver[N][3]; //第1列为均值,第2列原始顺序,第3列为均值逆序int main(){int course;enter_scores();printf("\n===========Oringenal Score Start=========\n"); disp_scores(score);printf("\n===========Oringenal Score End===========\n");printf("\n===========Sorted Score Start============\n");sort_scores(score,aver);printf("\n===========Sorted Score End==============\n");printf("\nWhich class will be statisticed?\n");scanf("%d",&course);histogram(course, score);system("Pause");return 0;}/* 输入成绩 */void enter_scores(){int i, j;for(i=0; i<N; i++) {for(j=0; j<M; j++){scanf("%d",&score[i][j]);aver[i][0] += score[i][j];}}for( i = 0; i < N; i++ )for ( j = 1; j < 3; j++ )5 aver[i][j] = i;}/* 成绩排序. */void sort_scores(int score[][M], int average[N][3]){int i,j,t;int temp,tempindex;for( i = 0; i < N - 1; i++ )for( j = 0; j < N - 1 - i; j++ )if ( average[j][0] < average[j+1][0] ){temp = average[j][0];average[j][0] = average[j+1][0];average[j+1][0] = temp;tempindex = average[j][2];average[j][2] = average[j+1][2];average[j+1][2] = tempindex;}printf("\n Score1 Score2 Score3 Score4 Score5\n"); for( i = 0; i < N; i++ ){t = average[i][2];for( j = 0;j < M; j++ ){printf("%8d", score[t][j]);}printf("\n");}}/* 输出成绩 */void disp_scores(int score[][M]){int i, j;printf("\n Score1 Score2 Score3 Score4 Score5\n"); for( i = 0; i < N; i++ ){for( j = 0;j < M; j++ )printf("%8d", score[i][j]);printf("\n");}}void printchar(int n){6 int i;for (i = 0; i < n; ++i) putchar('*');}void histogram(int course, int score[][M]){int i,temp;int segs[5] = {0};int sc[N];for( i = 0; i < N; i++ )sc[i] = score[i][course];for (i = 0; i < N; i++)/* 统计各分段人数 */{temp = (int)sc[i]/10;segs[ temp<6?0:temp-5]++; /* 成绩/10,将成绩分段 */}printf("\nSegment Number\n");for (i = 0; i < 5; i++) /* 输出直方图,每段的人数 */{printf("<%3d: %5d| ", (i+1)*10+50, segs[i]);printchar(segs[i]);putchar('\n');}putchar('\n');}(8)#include <stdio.h>#define M 81int main( ){static char str[M];int i,count = 0;char ch = 0;gets(str);for( i = 0; i < strlen(str); i++ )if( ch < str[i] )ch = str[i];for( i = 0; i < strlen(str); i++ )if( ch == str[i] )count++;printf( " max = '%c' ,count = %d\n",ch,count );return 0;}7第6章习题参考答案1、选择题:1-5 BBDDA 6-10 CCABD 11-15 CBCDA 16A2、填空题(1)常量,变量(2)指针(3)2(4)12,12(5)a[0],a[3]3、阅读程序,写出下面程序的运行结果(1)5(2)6(3) abcdefglkjih(4) 976531(5)5,9(6)2,4,5,7,6,0,11,9,7,3,(7)string_a=I am a teacher.string_b=You are a student.string_a=I am a teacher.string_b=I am a teacher.4、程序填空(1) *p != '\0', *p-'0', j—(2) i <strlen(str), j=i, k+1(3)a+i, (char)(n%10) + '0'(4)*pk = i, a,n,i+1,pk(5) s1++, *s2, s1=p5、编程题(1)#include <stdio.h>int main(){int a=3,b=7,c=2;int *ptra = &a,*ptrb = &b,*ptrc = &c;int temp;printf("a=%d,b=%d,c=%d\n",a,b,c);printf("*ptra=%d,*ptrb=%d,*ptrc=%d\n",*ptra,*ptrb,*ptrc); if ( *ptra > *ptrb ){temp = *ptra;*ptra = *ptrb;1 *ptrb = temp;}if ( *ptra > *ptrc ){temp = *ptra;*ptra = *ptrc;*ptrc = temp;}if ( *ptrb > *ptrc ){temp = *ptrb;*ptrb = *ptrc;*ptrc = temp;}printf("a=%d,b=%d,c=%d\n",a,b,c);printf("*ptra=%d,*ptrb=%d,*ptrc=%d\n",*ptra,*ptrb,*ptrc); return 0;}(2)#include <stdio.h>#include <stdlib.h>void inputdata(int a[],int n);void process(int a[],int n);void outputdata(int a[],int n);int main(){int a[10],n=10;inputdata(a,n);outputdata(a,n);process(a,n);outputdata(a,n);system("Pause");return 0;}void inputdata(int a[],int n) //0~99之间的数{int i;for( i = 0; i < n; i++ )scanf("%d",a+i);}void outputdata(int *ptr,int n){int i;2 printf("\n==========OutPut Data Start=============\n");for( i = 0; i < n; i++ )printf("%4d",*ptr++);printf("\n==========OutPut Data End================\n");}void process(int *ptr,int n){int i,maxi,mini;int max=-1,min=101;for( i = 0; i < n; i++ ){if ( max < *(ptr+i) ){max = *(ptr+i);maxi= i;}if ( min > *(ptr+i) ){min = ptr[i];mini= i;}}if ( mini != 0){i = ptr[0];ptr[0] = ptr[mini];ptr[mini] = i;}if (maxi != n-1){i = ptr[n-1];ptr[n-1] = ptr[maxi];ptr[maxi] = i;}if (maxi == 0 && mini == n-1){i = ptr[maxi];ptr[maxi] = ptr[mini];ptr[mini] = i;}}(3)#include<stdio.h>3int strLength (char *);int main(){static char str[81];gets(str);printf("string "%s" length:%3d\n",str,strLength(str)) ; system("Pause");return 0;}int strLength (char *s){char *p=s;while (*p) p++ ;return (p-s) ;}(4)#include <stdio.h>#define M 3#define N 4void Transpose (int (*a)[N],int (*T)[M]);int main( ){static int a[M][N],T[N][M];int i,j;for( i = 0; i < M; i++ )for( j = 0; j < N; j++ )scanf( "%d",&a[i][j] );printf("\n======Oringinal Matrix Start=========\n");for( i = 0; i < M; i ++ ){for( j = 0; j < N; j++ )printf( "%4d",a[i][j] );printf("\n");}printf("\n======Oringinal Matrix End===========\n");Transpose(a, T);printf("\n======Transpose Matrix Start=========\n");for( i = 0; i < N; i ++ ){for( j = 0; j < M; j++ )printf( "%4d",T[i][j] );printf("\n");}4 printf("\n======Transpose Matrix End===========\n"); return 0;}void Transpose (int (*a)[N],int (*T)[M]){int i,j;for( i = 0; i < N; i++ )for( j =0; j < M; j++ )T[i][j] = a[j][i];}(5)#include <stdio.h>int main(){static char source[81],target[81];int result;gets(source);gets(target);result = Strcmp(source,target);if (result){if( result < 0 )printf("%s < %s\n",source,target);elseprintf("%s > %s\n",source,target);}elseprintf("%s = %s\n",source,target); return 0;}int Strcmp(char *s,char *t){while (*s && *t && (*s == *t)) {s++;t++;}return *s - *t;}(6)#include <stdio.h>5#define M 5#define N 3int sum (int *a)int main()。

C语言1-5章复习题及参考答案

C语言1-5章复习题及参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

c语言习题1-5章

c语言习题1-5章

C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。

A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。

A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。

A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。

A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。

A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。

int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。

A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。

A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。

A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。

A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。

C语言程序设计答案

C语言程序设计答案

C++语言程序设计答案:一、单项选择题(20分)1.~5.CBACD 6.~10.BDADB11.~15.CABCC 16.~20.CACCB二、是非判断题(15分)√√√×√√√√×××√三、多项选择题(5分)1.ABC2.CEGIJ3.ADFHI4.ABDEH5.BEGHI四、程序运行结果题(20分)1. t*M2. 83. 3635.44. 6 8 105. z+y,z-y^x+y,x-y五、程序填空题(20分)1. ①double ②pi+1.0/(i*i)2. ①y<3 ②z==23. ①age(n-1)+24. ①year%4==0&&yeaar%100!=0 ②yes=05. ①z>y ②z>x ③y>x一、单选题(每小题2分,共12分)1.设x和y均为b。

1量,则x&&y为真的条件是( )。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假2.设x和y均为bool量,则x||y为假的条件是( )。

A.它们均为真B.其中一个为真C.它们均为假D。

其中一个为假3.声明或定义一个内联函数时,必须在函数开始使用保留宇( )。

A.static B.constC.inline D。

extern4.在下面的函数声明中,存在着语法错误的是( )。

A.BC(int a, int);B.BC(int,int);C.DC(int,int=5);D.BC(int x;inl y);5.假定AB为一个类,则执行“ABa(4),b[5],*p[2]:”语句时,自动调用该类构造函数的次数为( )。

A.6 B.7C.9 D.116.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete[]px;”语句时,自动调用该类析构函数的次数为( )。

A.1 B.nC n—l D.n+l二、填空题(每小题2分,共24分)7.已知’A’一’Z’的ASCII码为65—90,当执行"charch=14*5+2;cout<<ch<<endl;”语句序列后,得到的输出结果为——。

C语言课后习题参考答案(前5章)

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语言程序设计(填空题)

C 语言程序设计习题-填空题
x=7; x+=x-=x+x; 习题 33-参考答案 -14 习题 34(填空题)[知识点:表达式] 若 a 和 b 均为 int 型变量,则以下语句的功能是______。 a+=b;b=a-b;a-=b; 习题 34-参考答案 交换 a、b 变量的值 习题 35(填空题)[知识点:顺序结构] 有一输入函数 scanf("%d",k);则不能使 float 类型变量 k 得到正确数值的原因是______。 习题 35-参考答案 格式字符不正确, 缺少&符号 习题 36(填空题)[知识点:顺序结构] 若有以下定义和语句,为使变量 c1 得到字符'A',变量 c2 得到字符'B',正确的格式输入形式是______。 char c1,c2; scanf("%4c%4c",&c1,&c2); 习题 36-参考答案 A□□□B□□□ 习题 37(填空题)[知识点:顺序结构] 执行以下程序时,若从第一列开始输入数据,为使变量 a=3,b=7,x=8.5, y=71.82, c1='A',c2='a',正确的数据输入形式是 ______。 int a,b;float x,y;char c1,c2; scanf("a=%d b=%d",&a,&b); scanf("x=%f y=%f",&x,&y; scanf("c1=%c c2=%c",&c1,&c2); 习题 37-参考答案 a=3□b=7x=8.5□y=71.82c1=A□c2=a<CR> 习题 38(选择题)[知识点:表达式] 若 int a=3,b=2,c=1,f;表达式 f=a>b>c 的值是______。 习题 38-参考答案 0 习题 39(填空题)[知识点:顺序结构] 以下程序的运行结果是______。 #include <stdio.h> main() {int x=1,y,z; x*=3+2; printf("%d\t",x); x*=y=z=5; printf("%d\t",x); x=y==z; printf("%d\n",x); } 习题 39-参考答案 5□□□□□□□25□□□□□□1(制表符为 7 个) 习题 40(填空题)[知识点:表达式] 设 y 为 int 型变量,请写出描述“y 是奇数”的表达式______。 习题 40-参考答案 y%2==1、y%2!=0、y%2、(y-1)%2==0、!(y%2==0) 4 / 25

数据结构C语言版习题参考答案

数据结构C语言版习题参考答案

附录习题参考答案习题1参考答案1.1.选择题(1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). A. (9). B. (10.)A.1.2.填空题(1). 数据关系(2). 逻辑结构物理结构(3). 线性数据结构树型结构图结构(4). 顺序存储链式存储索引存储散列表(Hash)存储(5). 变量的取值范围操作的类别(6). 数据元素间的逻辑关系数据元素存储方式或者数据元素的物理关系(7). 关系网状结构树结构(8). 空间复杂度和时间复杂度(9). 空间时间(10). Ο(n)1.3 名词解释如下:数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。

数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。

数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。

数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。

数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。

数据类型:是指变量的取值范围和所能够进行的操作的总和。

算法:是对特定问题求解步骤的一种描述,是指令的有限序列。

1.4 语句的时间复杂度为:(1) Ο(n2)(2) Ο(n2)(3) Ο(n2)(4) Ο(n-1)(5) Ο(n3)1.5 参考程序:main(){int X,Y,Z;scanf(“%d, %d, %d”,&X,&Y,Z);if (X>=Y)if(X>=Z)if (Y>=Z){ printf(“%d, %d, %d”,X,Y,Z);}else{ printf(“%d, %d, %d”,X,Z,Y);}else{ printf(“%d, %d, %d”,Z,X,Y);}elseif(Z>=X)if (Y>=Z){ printf(“%d, %d, %d”,Y,Z,X);}else{ printf(“%d, %d, %d”,Z,Y,X);}else{ printf(“%d, %d, %d”,Y,X,Z);}}1.6 参考程序:main(){int i,n;float x,a[],p;printf(“\nn=”);scanf(“%f”,&n);printf(“\nx=”);scanf(“%f”,&x);for(i=0;i<=n;i++)scanf(“%f ”,&a[i]);p=a[0];for(i=1;i<=n;i++){ p=p+a[i]*x;x=x*x;}printf(“%f”,p)’}习题2参考答案2.1选择题(1). C. (2). B. (3). B. (4). B. 5. D. 6. B. 7. B. 8. A. 9. A. 10. D.2.2.填空题(1). 有限序列(2). 顺序存储和链式存储(3). O(n) O(n)(4). n-i+1 n-i(5). 链式(6). 数据指针(7). 前驱后继(8). Ο(1) Ο(n)(9). s->next=p->next; p->next=s ;(10). s->next2.3. 解题思路:将顺序表A中的元素输入数组a,若数组a中元素个数为n,将下标为0,1,2,…,(n-1)/2的元素依次与下标为n,n-1,…, (n-1)/2的元素交换,输出数组a的元素。

算法与数据结构C语言习题参考答案1-5章

算法与数据结构C语言习题参考答案1-5章

绪论1.将下列复杂度由小到大重新排序:A.2n B.n! C.n5D.10 000 E.n*log2 (n)【答】10 000< n*log2(n)< n5< 2n < n!2.将下列复杂度由小到大重新排序:A.n*log2(n) B.n + n2 + n3C.24D.n0.5【答】24< n0.5< n*log2 (n) < n + n2 + n33.用大“O”表示法描述下列复杂度:A.5n5/2 + n2/5 B.6*log2(n) + 9nC.3n4+ n* log2(n) D.5n2 + n3/2【答】A:O (n5/2) B:O (n) C:O (n4) D:O (n2)4.按照增长率从低到高的顺序排列以下表达式:4n2 , log3n, 3n , 20n , 2000 , log2n , n2/3。

又n!应排在第几位?【答】按照增长率从低到高依次为:2000, log3n, log2n , n2/3 , 20n , 4n2 , 3n。

n!的增长率比它们中的每一个都要大,应排在最后一位。

5. 计算下列程序片断的时间代价:int i=1;while(i<=n){printf(“i=%d\n”,i);i=i+1;}【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环到n,共执行n次。

所以该程序段总的时间代价为:T(n) = 1 + n + 2n = 3n+ 1 = O(n)6. 计算下列程序片断的时间代价:int i=1;while(i<=n){int j=1;while(j<=n){int k=1;while(k<=n){printf(“i=%d,j=%d,k=%d\n”,I,j,k);k=k+1;}j=j+1;}i=i+1;}【答】循环控制变量i从1增加到n,最外层循环体执行n次,循环控制变量j从1增加到n,中间层循环体执行n次,循环控制变量k从1增加到n,最内层循环体执行n次,所以该程序段总的时间代价为:T(n) = 1 + n + n{1 + n + n[1 + n + 2n +1] +1 +1}+ 1= 3n3 + 3n2 +4n +2= O(n3)2. 线性表1.试写一个插入算法int insertPost_seq(palist, p, x ),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。

c语言习题1-5章

c语言习题1-5章

C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。

A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。

A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。

A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。

A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。

A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。

int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。

A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。

A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。

A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。

A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。

程序设计基础——基于C语言(第2版) 课后习题参考答案.

程序设计基础——基于C语言(第2版)  课后习题参考答案.

习题1参考答案1.1解释以下术语(1)计算机软件:计算机软件是一系列按照特定结构组织的程序、数据(Data)和文档(Document)的集合。

(2)计算机程序:用计算机语言所编写的一系列指令的集合。

(3)数据:数据是程序加工和处理的对象。

(4)算法:算法是一组有穷的规则,它们规定了为解决某一特定问题而采取的一系列运算步骤。

(5)数据结构:数据结构是存在一种或多种特定关系的数据元素的集合,其外在表现为数据的组织形式。

(6)数据类型:数据类型是一个值的集合和定义在这个值集上的操作的总称。

(7)程序设计:程序设计是给出解决特定问题程序的方法和过程,是软件构造活动中的重要组成部分。

1.2 简答题(1)简述内存的组织结构形式?计算机系统把内存看作是由若干个连续的存储单元(Storage Location)组成的,每个存储单元的大小为一个字节(Byte)。

为了能唯一标志每个存储单元,在计算机系统中给每个存储单元指定一个唯一的编号,该编号被称为存储单元的地址(Address),计算机在读写内存时就是按照存储单元的地址进行的。

(2)为什么计算机系统是一个通用的计算系统?在计算机硬件相对固定不变的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。

(3)简述结构化程序设计的基本思想?在程序设计过程中,如果仅仅使用顺序、选择和循环这三种基本控制结构,并且使每个代码块只有一个入口和一个出口,则这样的程序设计方法被称为结构化程序设计(Structured Programming)。

(4)简述计算机语言的发展史?程序设计语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。

(5)简述利用计算机进行问题求解的过程?1、理解问题特征2、设想解决方案3、优化解决方案4、描述解决方案5、执行并分析解决方案(6)简述各个程序质量要素的含义?1、正确性(Correctness):正确性是指一个计算机程序的正确程度,即程序在预定的运行环境下能正确完成预期功能的程度。

C语言习题册答案集

C语言习题册答案集

第1章绪论一、选择题1~5 CABCD 6~10 BDCBC 11~15 AADCC二、程序填空题1、一个C语言程序是由函数组成的。

2、C源程序的后缀名为3、在C程序中,main()函数最多有 1 个。

4、一个C语言程序总是从主函数/main( ) 开始执行。

5、在C语言里输入是由scanf 函数实现,输出是由printf 函数实现。

6、C语言中,当复合语句多于一条时,要求有一对{ } 括号。

7、一个C源程序必须经过_ 编译__和_链接__生成exe文件才能运行8、在一个C程序中注释部分两侧的分界符分别为_/*_____和_*/___9、编写计算机所程序所使用的语言称为__程序设计语言______。

10、程序设计语言的发展经历了三个阶段__机器语言__、_汇编语言_和__高级语言__第2章基本数据类型及顺序结构程序设计一、选择题01~05 ACDDA 06~10 ACAAC 11~15 BDBBC16~20 DABAA 21~25 DBDAA 26~30 ADDCB31~35 BDCAB二、程序填空题1、__基本数据类型、_构造类型___ 和___其它类型_______。

2、 4 、 4 、8 、 1 。

3、double4、x<-5||x>5或abs(x)>55、y%2==1 或y%2!=06、x%3==0&&x%7==0或x%21==0 ,7、10 ,10 。

8、printf(“****a=%d, b=%d****”,a,b) 。

9、a:b ; c:t1 ;10、x%10 , x/10%10 ;三、程序阅读题1、G 。

2、2, 1 。

3、0 。

4、16 。

5、2,50 。

6、b 。

7、3 。

8、10,20,0 。

9、2, 。

10、67, e 。

第3章分支结构一、选择题01-05:DCBCD 06-10:CBBBC 11-15:CBBDB16-20:ACDAA 21-25:CADBC 26-30:CBBAD二、程序阅读题(共10题)1、20,0 。

c语言课后习题

c语言课后习题
13. a+=a;24, a-=2;10, a*=2+3;60, a%=(n%=2);0, a/=a+a;0, a+=a-=a*=a;0
14. 8
15. 2
习 题 3 (参考答案)
1.编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。
参考代码(尽量运用本章所学知识)
40.下列变量定义中合法的是( )。
A.float _a = 1?.1e?1; B.double b = 1 + 5e2.5;
C.long do = 0xfdaL; D.float 2_and = 1 ? e ? 3;
44.以下选项中不属于字符常量的是( )。
B D B B A C B A D D
二、填空题
1. 255
2. a/(b*c)
3. 20
4. 1.0
5. x==0或(x==0)?1:0
6. x<-5 || x>5
7. 97或字符 ‘a’
8. 0
9. 2.5
10. 3.5
11. 3
12. 9, 11, 9, 10
5.源程序执行过程中,有哪些步骤?
C语言源程序的执行要经过:编辑、编译、链接、运行等步骤。
6.简述MATLAB的主要应用领域有哪些?
MATLAB软件是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司开发的商业数学软件,主要包括MATLAB和Simulink两大部分。它和Mathematica、Maple并称为三大数学软件。MATLAB软件可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域,代表了当今国际科学计算软件的先进水平。

C语言课后习题答案

C语言课后习题答案

第一章习题答案一、选择题1~5:BDCDA 6~10:DABBB 11~12:CC二、填空题1、main()2、函数首部,函数体3、函数4、编辑、编译、连接、运行5、.cpp、.obj、 .exe6、; 或分号三、编程题#include <stdio.h> /* 包含标准库的信息 */void main() /* 定义名为main 的函数,它不接受参数值 */{ /* main函数的语句都被括在花括号中 */printf("hello, world\n");/* main 函数调用库函数printf 以显示字符序列,其中\n代表换行符 */}第二章习题答案一、选择题1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD二、填空题1、整型,实型,字符型,枚举类型2、13、94、123535145、2,16、2,27、10 20 08、a=149、2,3,110、double第三章习题答案一、选择题1~5:CBBBC 6~10:DDDBB二、填空题1、控制语句,表达式语句,复合语句2、;3、{}4、15、a6、c:dec=120,oct=170,hex=78,ASCII=x7、32767,327678、10,A,109、3 310、(1) 123.456001(2) □□□□□□□ 123.456(3) 123.4560(4) 8765.456700(5) □□□□□□ 8765.457(6) 8765.4567(7) 8765.4567三、编程题1、参考答案:#include <stdio.h>void main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c );printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x, y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5. 2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n); printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}2、参考答案:#include <stdio.h>void main(){float a, b, c, t;printf("please input a,b,c:\n"); scanf ("%f, %f, %f", &a, &b, &c);t=(a+b+c)/3;printf ("averageof %6.2f、%6.2f and %6.2f is %6.2f\n",a,b,c,t);}3、参考答案:#include <stdio.h>main(){int R, d;float s;printf("请输入圆的半径");scanf("%d",&R);d=2*R;c=2*3.14159*R;printf("d=%d,c=%f\n",d,c);}4、参考答案:#include <stdio.h>void main(){int h, f, x, y; /* x为鸡的数量,y为兔的数量 */printf("请输入鸡兔的总头数h,总脚数f:");scanf("%d%d", &h, &f);x=(4*h-f)/2;y=(f-2*h)/2;printf("笼中有鸡%d 只,有兔%d只。

C语言期末考试题及答案5

C语言期末考试题及答案5

13.若有定义语句:int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是()。

A)p=a B)q[i]=a[i]C)p=a[i]D)p=&a[2][1]14.有以下程序struct S{int a,b;}data[2]={10,100,20,200};main(){struct S p=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是()。

A)10B)11C)20D)2115.下列叙述中,正确的是()。

A)C 语言中的文件是流式文件,因此只能顺序存取文件中的数据B)调用fopen 函数时若用"r"或"r+"模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在C)当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据D)无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖二、输出结果(本题共30分)1.以下程序运行后的输出结果是()。

void main(){int a,b,c;a=25;b=025;c=0x25;printf("%d %d %d\n",a,b,c);}2.以下程序运行后的输出结果是()。

void main(){int m=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}3.如果输入3,9,5,则以下程序输出的结果为()。

void main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);if(a<b ){t=a;a=b;b=t;}if(a<c )t=a;else if(b>c )t=b;else得分t=c;printf("t=%d\n",t);}4.以下程序运行后的输出结果是()。

C语言习题(前五章)参考答案

C语言习题(前五章)参考答案

C 语言习题参考答案第一部分 C 语言基础一、判断题1.对 2.错 3.对 4.对 5.错 6.错第二部分 数据类型、运算符及表达式一、选择题 1.AD 2.B 3.(1)CD (2)BD (3)C (4) B 5.B6.D /*赋值时,若有溢出,则只截取低位*/ 7.(1)AB (2)BD (3)ABCD 8.C 9.D10.C /*A,B 赋值运算符左值只能是变量,不能是表达式或常量,D 是逗号语句*/12.B /*赋值运算符优先级比逗号表达式高*/ 13.A14.D /*八进制数中,合格字符只能是0~7*/ 15.A /*二进制补码*/16.A /*八进制数中,合格字符只能是0~7*/ 17.D 19.B 20.D21.B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/ 22.ABD 23.D 24.C 25.ABD 二、填空题1. 1 , -128~127 ; 2 , -32768~32767 ; 4 ,-2147483648~2147483647 ; 4 ,383810~10 。

3. 单引号, 双引号 。

4. 优先级 , 结合性 。

6. 2.5 。

7. 3.5 。

11. 24 , 10 , 60 , 0 , 12 , 0 12. double 。

14. 9 。

16. 1.5 , 1 。

18. 2 , -2 。

/*余数符号仅由被除数的符号决定*/ 三、判断题1.错 /*如常量*/3.错 /*如float 只能准确表示7位有效数字,多余的位数是近似表示*/4.错5.对6.对 10.错 四、简答题4写出下列各数的二进制补码(写成16为二进制形式):32: 0000 0000 0010 0000 -1: 1111 1111 1111 1111 -32768:1000 0000 0000 0000 2002: 0000 0111 1101 0010 -128: 1111 1111 1000 0000 0: 0000 0000 0000 0000 五、程序阅读 1.aabb[4个空格]cc[6个空格]c A 6 2.9,11,9,10第三部分 顺序结构一、选择题 2.D3.B /*假设int 占2个字节*/4.D5.C 7.C 8.B 9.D 10.B11.C /*D ,scanf 函数的格式符中不能规定小数位数*/ 12.A /*格式控制符:%2d%2d%3d,输入时,前两个空格对应的数字赋给a ,紧挨着的两个空格的位置赋给b*/ 13.C 14.D 15.D 二、填空题 6. %8. -10 12 410.34[回车] 题目补充:scanf 函数的调用形式为:scanf(“%d%d%f ”,&i,&j,&x); 。

程序设计基础教材1-5章答案

程序设计基础教材1-5章答案

《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个main函数。

c) 在C语言中,输出操作是有库函数printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个 C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S△= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A16、B 17 D解析:1. 答案:C。

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

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

《C语言程序设计教程》习题参考答案祝胜林主编华南理工大学出版社【习题1】 (1)【习题2】 (2)【习题3】 (3)【习题4】 (5)【习题5】 (8)【习题6】 (11)【习题7】 (14)【习题8】 (17)【习题9】 (17)【习题10】 (20)一、简答题(在课本中寻找答案,略)1.1C程序的基本结构包括哪些内容?1.2如何定义标识符?1.3输入格式、输出格式的组成包括哪些内容?1.4C语言函数分为哪两类?1.5计算表达式的值应该考虑哪些方面?1.6上机调试程序的步骤如何?二、判断并改错1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

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

并不限定在程序的开头。

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

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

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

错误:不是一回事。

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

1.10scanf("%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输入两个整数,输出其中最大者。

C语言1-5章复习题 参考答案

C语言1-5章复习题 参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。

A .-3 B.9 C.-12 D.62、若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为(B)。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是(C)。

A .6 B.3 C.死循环 D.0 。

4、下列关于表达式的描述中,错误的是(D)。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义x和y为double类型,则表达式x=1;y=(x+3)/2的值是(C)。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是(D)。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是(B)。

#include<stdio.h>void main(){printf("%d\n",NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

(B)A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设int b=2;表达式(b>>2)/(b>>1)的值是(A)。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是(C)。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

程序设计基础(C语言)第3版习题及答案

程序设计基础(C语言)第3版习题及答案

第1章C语言概述【习题1-1】简述C语言的特点。

答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。

【习题1-2】简述上机调试运行C程序的操作步骤。

答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。

【习题1-3】上机运行本章的3个例题。

答:略。

【习题1-4】请从以下的4个选项中选择一个正确答案。

(1)A (2)A (3)C (4)B【习题1-5】参照本章例题,编写一个C语言程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第2章基本数据类型和运算符【习题2-1】上机编辑并调试本章所有例题。

答:略。

【习题2-2】下面哪些是合法的常量?⑴20 0.5 012 13e5.1 E-5 8e4 5. 0x6a⑵'mn' "OK" "a" '\012' "a/b" '\\'答:⑴合法的常量有:20 0.5 012 8e4 5. 0x6a⑵合法的常量有: "OK" "a" '\012' "a/b" '\\'【习题2-3】下面的变量名中哪些是合法的?A&b abc123 abc% AbC a_b_cint _abc 123abc a\b?ca bc a*bc 'a'bc答:合法的变量名有:abc123 AbC a_b_c _abc【习题2-4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?⑴Int i,j;⑵float a,b;⑶int a,b;float a,b;⑷float a,int b;⑸char 'a';答:⑴错误,因为关键字Int 应该全为小写字母⑵正确⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型 ⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号 ⑸错,'a'表示字符常量,不能用作变量名 【习题2-5】把下列数学式子写成C 语言表达式。

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

《C语言》作业
第二章
2.4 用传统流程图表示求解以下问题的算法。

(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反)。

解:显然,如果只有两个瓶子,肯定不能完成此任务,必须有一个空瓶C作为过渡。

步骤如图2.4:
(2)依次将3个数输入,要求输出其中最大的数。

2.5 用N-S图表示2.4题中算法(2)。

第三章
3.5 字符常量和字符串常量有什么区别?
解:字符常量是一个字符,在程序中字符是用单引号括起来的。

字符串变量是有0个或若干个字符组合而成,在程序中字符串是用双引号括起来,在存储时系统自动在字符串最后面加一个结束符号’\0’。

3.9 求下面算术表达式的值。

(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
解:
(1)2.5
(2)3.5
3.10 写出程序运行的结果
#include<stdio.h>
void main()
{
int i,j,m,n;
i=8; j=10;
m=++i; n=j++;
printf(”%d,%d,%d,%d\n”,i,j,m,n);
}
解:运行结果为:
9,10,9,11
3.12 写出下面赋值表达式运算后a的值,设原来 a=12, n=5。

a 和n都定义为整型变量。

(1) a+=a (2)a-=2 (3)a * =2+3
(4)a%=(n%=2 ) (5)a/=a+a (6)a+=a-=a*=a
解:
(1)24 (2)10 (3)60
(4)0 (5)0 (6)0
第4章
4.6 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=‘A’,
c2=‘a’,问在键盘上如何输入?(空格用_表示)
#include<stdio.h>
void main()
{
int a,b;
float x,y;
char c1,c2;
scanf(“a=%d_b=%d”,&a,&b);
scanf(“%f_%e”,&x,&y);
scanf(“_%c_%c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2); }
解:可按如下方式在键盘上输入:
a=3_b=7
8.5_71.82
A_a
第五章
1.补充题,描述下列条件
1)a 小于 b 或小于c2, 但 a 和 b 都大于 c
2)a 和 b 中有一个大于c
3)a 是非正整数
4)a 是奇数
5)a 不能被b整除
解:(1)a<b||<c2&&a>c&&b>c
(2)(a>c&&b<=c)||(a<=c&&b>c)
(3)!(a%2==0||a%2==1)
(4)a%2==1
(5)a/b!=0
第5.3题
写出各逻辑表达式的值,设a=3,b=4,c=5。

(1)a+b>c&&b==c
(2)a||b+c&&b-c
(3)!(a>b)&&!c||1
(4)!(x=a)&&( y=b)&&0
(5)!(a+b)+c-1&&b+c/2
解:
(1)0
(2)1
(3)1
(4)0
(5)1。

相关文档
最新文档