搜档网
当前位置:搜档网 › C语言程序设计源代码

C语言程序设计源代码

C语言程序设计源代码
C语言程序设计源代码

C语言程序设计

讲稿中的源程序第一章

C1_301.C

main ( )

{ int n, p;

for (n=1; ;n++)

{ p=n*n+n+41;

printf("%d,p=%d",n,p);

if (s(p) == 0)

printf ( " ok\n");

else

{ printf (" error.\n");

break;

}

}

}

s(v)

int v;

{ int j;

if(v<2)

return(-1);

for(j=2;j

if(v%j==0)

return(-1);

return(0);

}

第二章

C201.C

main()

{ int i=32767;

printf("\ni=%d",i+1);

getch();

}

C202.C

main()

{ long int i;

i=1; printf("\n 1!=%d",i);

i=2*i; printf("\n 2!=%d",i);

i=3*i; printf("\n 3!=%d",i);

i=4*i; printf("\n 4!=%d",i);

i=5*i; printf("\n 5!=%d",i);

i=6*i; printf("\n 6!=%d",i);

i=7*i; printf("\n 7!=%d",i);

i=8*i; printf("\n 8!=%d",i);

i=9*i; printf("\n 9!=%d",i);

i=10*i; printf("\n10!=%d",i);

getch();

}

C203.C

main()

{ float a=1.2345678,b=1.12345670;

printf("\n\na==%12.10f",a);

printf("\nb==%12.10f",b);

getch();

}

C204.C

main()

{ char a,b,c,d,e,f;

a='\5';

b='\60';

c='\101';

d='\xe';

e='\x41';

printf("a=%c b=%c c=%c d=%c e=%c\n",a,b,c,d,e); getch();

}

C2_301.C

main()

{ int i=2,j=1,k;

k=i++ + ++j;

printf("\n\ni=%d j=%d k=%d\n",i,j,k);

getch();

printf("\n\101 1");

getch();

}

第三章

C3_401.C

#include "stdio.h"

main()

{ char a='A';

printf("%c\n",putchar(a));

getch();

}

C3_402.C

#include "stdio.h"

main()

{ char a[]="abcdef";

printf("%c\n",puts(a));

getch();

}

C3_403.C

main()

{ int i=12;

float x=1.3;

printf("\n%4d\n%-4d\n%10.5f\n%-10.5f", i,i,x,x);

getch();

}

C3_404.C

main()

{ int i=12;

float x=1.3;

printf("\n%4d\n%04d\n%10.5f\n%010.5f", i,i,x,x);

getch();

}

C3_405.C

main()

{ char s[]="ABC";

printf("\n%s\n%5.3s",s,s);

getch();

}

C3_406.C

main()

{ int i=123;

long j=123456789;

float x=1.1234567890;

double y=1.1234567890;

printf("\n%d\n%ld\n%12.10f\n%12.10lf", i,j,x,y);

getch();

}

C3_407.C

main()

{ int a=567;

char c=65;

char s[]="ABC";

float x=567.789;

printf("\n%d\n%x\n%o\n%u",a,a,a,a); printf("\n%c\n%s",c,s);

printf("\n%f\n%e\n%g",x,x,x);

getch();

}

C3_408.C

#include "stdio.h"

main()

{ char c;

int i;

for(i=1;(c=getchar())!='\n';i++)

printf("\nChar is %c.",c);

getch();

}

C3_409.C

main()

{ int a,b,c;

scanf("%d%d%d",&a,&b,&c);

printf("%d %d %d",a,b,c);

getch();

}

C3_410.C

main()

{ int i;

float a;

scanf("%5f%4d",&a,&i);

printf("a=%f i=%d\n",a,i);

getch();

}

C3_411.C

main()

{ int i,j;

printf("\n1: %d",

printf("\n2: %d",

scanf("%d%d",&i,&j)));

getch();

}

C3_412.C

#include "stdio.h"

main()

{ char c;

while((c=getch())!=13)

{ if(c>=65&&c<=90||c>=97&&c<=122)

{ c=c+5;

if(c>90&&c<97||c>122)

c=c-26;

putchar(c);

}

}

getch();

}

C3_601.C

#define printt(x,y,z) printf("x=%d, y=%d, z=%d\n",x,y,z) main( )

{ int x,y,z;

x=y=z=2; ++x||++y&&++z;

printt(x,y,z);

x=y=z=2; ++x&&++y||++z;

printt(x,y,z);

x=y=z=2; ++x&&++y&&++z;

printt(x,y,z);

x=y=z=-2;++x||++y&&++z;

printt(x,y,z);

x=y=z=-2;++x&&++y||++z;

printt(x,y,z);

x=y=z=-2;++x&&++y&&++z;

printt(x,y,z);

}

C3_602.C

#define PRINT(x) printf("%d\n", x)

#include

main ( )

{ int x=1, y=1, z=0;

x = x && y || z;

PRINT(x);

PRINT( x||!y++&&++z );

PRINT(y); PRINT(z);

x = y = 1;

z = x++ - 1;

PRINT(x); PRINT(z);

z += -x++ + ++y;

PRINT(x); PRINT(z); PRINT(y);

}

C3_603.C

#define PRINT(X) printf("%d\n", X)

#include

main ( )

{ int x=3, y=2, z=1;

x = y++ >= x && x - y == ++z;

PRINT(x); PRINT(y); PRINT(z);

y *= z = x+(z+2);

PRINT(x); PRINT(y); PRINT(z);

x = y = z = 1;

PRINT (--x && ++y || z++);

PRINT(x); PRINT(y); PRINT(z);

x=9; y=6; z=5;

x= (( x + y ) % z >= x % z + y % z ) ? 1: 0; PRINT(x);

}

第四章

C4_101.C

include

main( )

{ int a,b,max;

printf("Input a and b=");

scanf("%d%d",&a, &b);

if (a>b)

max=a;

else

max=b;

printf("The max of a and b : %d\n", max); }

C4_101B.C

#include

main( )

{ int a,b,max;

printf("Input a and b=");

scanf("%d%d",&a, &b);

max=a;

if ( max

max=b;

printf("The max of a and b : %d\n", max); }

C4_103.C

#include

main( )

{ int x, y;

printf ("Enter integer X and Y:");

scanf ("%d%d", &x, &y);

if ( x != y )

if ( x > y ) printf ("X>Y\n");

else printf ("X

else printf ("X=Y\n");

}

C4_105.C

#include

main ( )

{ char c;

printf ("Enter a character:");

c=getch( );

if (c<0x20)

printf("\nIs a control character.\n");

else if ( c>='0' && c<='9' )

printf("\nIs a digit character.\n"); else if ( c>='A' && c<='Z')

printf("\nIs a captal character.\n"); else if ( c>='a' && c<='z' )

printf("\nIs a lower character.\n"); else printf("\nIs a other character.\n"); }

C4_202.C

#include

main ( )

{ float data1, data2;char op;

printf("Enter your expression:");

scanf ("%f%c%f", &data1, &op, &data2);

switch (op)

{ case '+' :

printf("%.2f+%.2f=%.2f\n",

data1, data2, data1+data2);break;

case '-' :

printf ("%.2f-%.2f=%.2f\n",

data1, data2, data1-data2);break;

case '*' :

printf ("%.2f*%.2f=%.2f\n",

data1, data2, data1*data2);break;

case '/' :

if (data2==0)

printf ("Division by zero.\n");

else

printf ("%.2f/%.2f=%.2f\n",

data1, data2, data1/data2);

break;

default:

printf ("Unknown operater.\n"); }

}

第五章

C5_101.C

main()

{ int i,sum;

i=1;sum=0;

while(i<=100)

{ sum+=i;

i++;

}

printf("Sum=%d\n",sum);

printf("i=%d",i);

getch();

}

C5_102.C

#include "stdio.h"

main()

{ char ch;

while((ch=getche())!='a') ;

}

C5_201.C

main()

{ int i,sum;

i=1;sum=0;

while(i<=100)

{ sum+=i;

i++;

}

printf("Sum=%d\n",sum);

printf("i=%d",i);

getch();

}

C5_201B.C

main()

{ int i,sum;

i=1;sum=0;

while(i<=100)

printf("i=%d,sum=%d\n",i,sum+=i); i++;

printf("Sum=%d\n",sum);

printf("i=%d",i);

getch();

}

C5_201C.C

main()

{ int i,sum;

i=1;sum=0;

while(i<=100) sum+=i++;

printf("\ni=%d,Sum=%d",i,sum);

i=0;sum=0;

while(++i<=100) sum+=i;

printf("\ni=%d,Sum=%d",i,sum);

i=0;sum=0;

while(i++<100) sum+=i;

printf("\ni=%d,Sum=%d",i,sum);

i=0;sum=0;

while(i<100) sum+=++i;

printf("\ni=%d,Sum=%d",i,sum);

getch();

}

C5_202.C

#include "stdio.h"

main()

{ char ch;

while((ch=getche())!='a') ;

}

C5_203.C

#define EOF -1

#include

main()

{ int c,nl=0,nc=0;

while((c=getchar())!=EOF)

{ ++nc;

if(c=='\n')

++nl;

}

printf("chars=%d, lines=%d\n",nc,nl); }

C5_301.C

main( )

{ unsigned int number;

printf ("\nInput the number:");

scanf ("%d", &number);

do

{ printf("%d", number%10);

number/=10;

} while (number!=0);

getch();

}

C5_302.C

#include

main( )

{ int class1=0, class2=0, class3=0; char ch; do

{ putchar(ch=getch( ));

switch (ch)

{ case '0':case '1': case '2': case '3': case '4':case '5': case '6': case '7': case '8': case '9':

class1++; break;

case '+': case '-': case '*': case '/': case '%': case '=':

class2++; break;

default: class3++; break;

}

}while (ch!='\\');

printf("class1=%d,class2=%d,class3=%d\n", class1, class2, class3);

}

C5_3011.C

#include

main( )

{ unsigned int number;

printf ("\nInput the number:");

scanf ("%d", &number);

while (number>0)

{ printf("%d", number%10);

number/=10;

}

}

C5_401.C

#include

main ( )

{ long int n=1;

int i;

for ( i = 1; i <=10; i++ )

{ n = n * i;

printf ( "%2d!=%ld\n", i, n);

}

}

C5_402.C

#include

main( )

{ int n,i,un1,un2,un;

for ( ; ; )

{ printf ("Input n=?");

scanf ("%d",&n);

if ( n >= 3 )

break;

else

printf("\nInput n is error !\n"); }

un = un2 = 1;

for ( i=3; i<=n; i++)

{ un1 = un2;

un2 = un;

un = un1 + un2;

}

printf ("No. %d is %d\n", n, un);

getch();

}

C5_403.C

#include

main( )

{ int n,i,un1,un2,un;

for ( ; ; )

{ printf ("Input n=?");

scanf ("%d",&n);

if ( n >= 3 )

break;

else

printf("\nInput n is error !\n"); }

un = un2 = 1;

for ( i=3; i<=n; i++)

{ un1 = un2;

un2 = un;

un = un1 + un2;

}

printf ("No. %d is %d\n", n, un);

}

C5_501.C

#include

main ( )

{ int i, j;

for ( i=1; i<10; i++ )

printf ("%4d",i);

printf ("\n--------------------------------------\n");

for ( i=1; i<10; i++ )

for ( j=1; j<=i; j++ )

printf ( (j==i) ? "%4d\n" : "%4d" , i*j);

}

C5_502.C

#include

main( )

{ int i8,i5,i3,i2,i1,n8,n5,n3,n2,n1;

float max=0, term;

for(i8=0;i8<3;i8++)

for(i5=0;i5<=(20-8*i8)/5;i5++)

for(i3=0;i3<=(20-8*i8-5*i5)/3; i3++)

for(i2=0;i2<=(20-8*i8-5*i5-3*i3)/2;i2++)

{ i1=20-8*i8-5*i5-3*i3-2*i2;

term=2000.0*pow(1+0.0063*12,(double)i1)*pow(1+2*0.0066*12,(double)i2)*pow(1+3*0 .0069*12,(double)i3)*pow(1+5*0.0075*12,(double)i5) *

pow(1+8*0.0084*12,(double)i8);

if(term>max)

{ max=term;

n1=i1;

n2=i2;

n3=i3;

n5=i5;

n8=i8;

}

}

printf("type: %d,%d,%d,%d,%d\n",

n8, n5, n3, n2, n1);

printf("Total: %.2f\n", max);

getch();

}

C5_701.C

main( )

{ int j; long n;

printf("Please input number:");

scanf("%ld", &n);

for(j=999; j>=100; j--)

if(n%j==0)

{ printf("3 digits in %ld=%d\n", n, j );

break;

}

getch();

}

C5_801.C

#include "math.h"

main()

{ int m,i,k;

scanf("%d",&m);

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0) break;

if(i>=k+1)

printf("%d is a prime number.\n",m);

else

printf("%d is not a prime number.\n",m);

}

C5_802.C

main( )

{ int i, m;

scanf ("%d", &i);

for( m = 1; m * m < i; m + +) ;

if( i = = m * m)

printf("% d * % d = % d \n", i, i, m); }

C5_803.C

main( )

{ int i,j,k,m;

for(i=1;i<=9;i++) /* i:车号前二位的取值 */ for(j=0;j<=9;j++) /* j:车号后二位的取值 */ if(i!=j) /* 判断两位数字是否相异 */ { k=i*1000+i*100+j*10+j;

for(m=31;m*m

if(m * m = = k)

printf("Lorry_No. is %d.\n", k);

}

}

C5_806B.C

#include

main ( )

{ int h, k, j;

scanf ("%d", &h);

for(k=1; k<=h; k++) /*控制打印h行 */

{ for(j=1;j<=h+k-1;j++)/*控制行内字符 */

if (j<=h-k) printf (" ");

else printf ("*");

printf("\n") ;

}

}

C5_809.C

#define min(x,y) ( (x)<(y) ? (x) : (y) )

main ( )

{ int k, j, m;

printf("Enter M:");

scanf("%d", &m);

for(k=1; k<=m; k++)

{ for(j=1; j<=m; j++)

if( k<=(m+1)/2 )

if(j<=(m+1)/2)

printf(" %d", min(k, j));

else

printf(" %d",

min(k, m-j+1));

else

if(j<=(m+1)/2)

printf(" %d", min(m-k+1,j));

else printf("%d",min(m-k+1,m-j+1));

printf("\n");

}

}

C5_810.C

main ( )

{ int i,j,m,n,k=1; /*k是第一列元素的值 */

scanf ("%d", &m);

for(i=1; i<=m; i++)

{ n=k; /* n第i行中第1个元素的值 */

for(j=1; j<=m-i+1; j++)

{ printf (" %3d", n);

n = n+i+j; /* 计算同行下一个元素的值 */ }

printf("\n");

k=k+i; /* 计算下一行中第1个元素 */ }

}

C5_811.C

#define PAI 3.14159

#include

main( )

{ double x;

int y, i, yy;

for(i=1;i<80;i++) /* 打印图形的第一行 */

if(i==40) /* i控制打印的列位置 */

printf("*");

else printf("-");

printf("\n");

for(x=10.0; x<=360.0; x+=10.)

{ y=40+30*sin(x*PAI/180.0); /*计算对应的列 */ yy=40>y?40:y; /* 下一行要打印的字符总数 */ for(i=1;i<=yy;i++) /*控制输出图形中的一行 */ { if(i==y) printf("*");

else if (i==40) printf("|");

else printf(" ");

}

printf("\n");

}

}

第六章

C6_102.C

main()

{ int a[5],i;

printf("i=%d\n",i);

for(i=0;i<5;i++)

printf("a[%d]=%d\n",i,a[i]);

getch();

}

C6_103.C

main()

{ int i,j,temp,a[]={23,11,0,43,-3,7};

for(i=0;i<6;i++)

printf("%d:%d\n",i,a[i]);

for(i=0;i<5;i++)

for(j=i+1;j<6;j++)

if(a[i]>a[j])

{ temp=a[i];

a[i]=a[j];

a[j]=temp;

}

for(i=0;i<6;i++)

printf("a[%d]==%d\n",i,a[i]);

getch();

}

C6_104.C

#define N 6

main()

{ int i,j,temp,a[]={23,11,0,43,-3,7};

for(i=0;i

printf("%d:%d\n",i,a[i]);

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{ temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

for(i=0;i

printf("a[%d]==%d\n",i,a[i]);

getch();

}

C6_201.C

main()

{ int a[3][4]={{1,2,3},{4,5,6},{7,8,9}}; int i,j;

for(i=0;i<3;i++)

{ for(j=0;j<4;j++)

printf("%2d ",a[i][j]);

printf("\n");

}

getch();

}

C6_202.C

main()

{ int a[][4]={1,2,3,4,5,6,7,8};

int b[][4]={1,2,3,4,5,6,7,8,9};

int c[][2][2]={1,2,3,4,5,6,7,8};

int i,j,k;

printf("\na=\n");

for(i=0;i<2;i++)

{ for(j=0;j<4;j++)

printf("%2d ",a[i][j]);

printf("\n");

}

printf("\nb=\n");

for(i=0;i<3;i++)

{ for(j=0;j<4;j++)

printf("%2d ",b[i][j]);

printf("\n");

}

printf("\nc=\n");

for(i=0;i<2;i++)

for(j=0;j<2;j++)

{ for(k=0;k<2;k++)

printf("%2d ",c[i][j][k]);

printf("\n");

}

getch();

}

C6_203.C

main()

{ int a[][2][2]={1,2,3,4,5,6,7,8};

int i,j,k;

for(i=0;i<2;i++)

{ for(j=0;j<2;j++)

{ for(k=0;k<2;k++)

printf("a[%d][%d][%d]=%2d ",

i,j,k,a[i][j][k]);

printf("\n");

}

printf("\n");

}

getch();

}

C6_204.C

main()

{ int i,j,k,n,m,s,c[3][3];

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int b[4][3]={12,11,10,9,8,7,6,5,4,3,2,1}; /* scanf("%d%d",&n,&m); */

/* printf("Enter A\n"); */

/* for(i=0;i

/* { for(j=0;j

/* scanf("%d",&a[i][j]);*/

/* printf("\n"); */

/* } */

/* for(i=0;i

/* { for(j=0;j

/* scanf("%d",&b[i][j]);*/

/* printf("\n"); */

/* } */

n=3;m=4;

for(i=0;i

for(j=0,s=0;j

{ for(k=0;k

s+=a[i][k]*b[k][j];

c[i][j]=s;

}

printf("C=\n");

for(i=0;i

{ for(j=0;j

printf("%4d",c[i][j]);

printf("\n");

}

getch();

}

C6_301.C

#define N 100

main()

{ char str[N]={'B','e','i','j','i','n','g'}; int i;

printf("%s\n",str);

getch();

}

C6_302.C

#include "string.h"

main()

{ char temp[10],name[][10]= {"ZhangHong",

"WangMing",

"LiHua",

"ZhaoNing"};

int i,j;

for(i=0;i<3;i++)

for(j=i+1;j<4;j++)

if(strcmp(name[i],name[j])>0)

{ strcpy(temp,name[i]);

strcpy(name[i],name[j]);

strcpy(name[j],temp);

}

printf("Output:\n");

for(i=0;i<4;i++)

puts(name[i]);

getch();

}

C6_304.C

#include "stdio.h"

main()

{ char s[100],t[100];

int i,j;

printf("\nEnter the first string:"); for(i=0;(s[i++]=getchar())!='\n';); printf("\nEnter the second string:"); for(i=0;(t[i++]=getchar())!='\n';); for(i=0;s[i]!='\0';i++);

for(j=0;(s[i++]=t[j++])!='\0';);

printf("\nRESULT:");

puts(s);

getch();

}

C6_401.C

int base[9][3]={0, 0, 0,

0, 1, 2,

0, 2, 1,

0, 2,-1,

0, 1,-2,

0,-1,-2,

0,-2,-1,

0,-2, 1,

0,-1, 2 };

main()

{ int a[9][9],object[9][9];

int i,j,k,p,x,y,m,n,cont;

int min,rm1,rm2,rm0=1;

for(cont=1;cont>0;)

{ for(i=0;i<=8;i++)

for(j=0;j<=8;j++)

a[i][j]=0;

rm1=base[1][1];

rm2=base[1][2];

base[1][1]=base[rm0][1];

base[1][2]=base[rm0][2];

base[rm0][1]= rm1;

base[rm0][2]= rm2;

for(i=1;i<=8;i++)

{ for(j=1;j<=8;j++)

{ for(p=1;p<=8;p++)

{ x=i+base[p][1];

y=j+base[p][2];

if(x>=1&&x<=8&&y>=1&&y<=8)

a[x][y]++;

}

printf(" %d",a[i][j]);

}

printf("\n");

}

printf("Please Input start position:line,colume=?\n"); scanf("%d,%d",&i,&j);

for(k=1;k<=63;k++)

{ object[i][j]=k;

min=10;

for(p=1;p<=8;p++)

{ x=i+base[p][1];

y=j+base[p][2];

if(x>=1&&x<=8&&y>=1&&y<=8)

if(a[x][y]!=0)

{ a[x][y]--;

if(min>a[x][y])

{ min=a[x][y];

m=x;

n=y;

}

}

}

a[i][j]=0;

i=m;

j=n;

}

object[i][j] = 64 ;

for(i=1;i<=8;++i)

{ for(j=1;j<=8;j++)

if(j==8)

printf("%2d",object[i][j]);

else

printf("%2d ",

object[i][j]);

printf("\n");

if(i!=8)

printf(" \n");

}

rm0%=8;

rm0++;

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

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

习题二 一、选择题 二、填空题 1.18 2.int float double 3.10 11 4.8 16 10 5.% 三、阅读题 1. 10,10,9,10 2. j=1, i=2 k=3,i=3 i=3,i=2 k=1,i=1 习题三 一、选择题 二、填空题 1. 从键盘上读入一个字符在屏幕上输出一个字符 #include 2. 按十进制整数形式输出,有符号 按16进制整数形式输出,没有符号 按十进制小数形式输出,输出的数据长度为7位,有2位小数 按字符形式输出一个字符 3. 按十进制整数形式输入数据 按十进制整数形式输入三位数据 跳过3位十进制数据 按字符形式输入一个字符 4. 分程序;; 5. 大写字母L 6. -1 三、阅读题 1. 6 6 6.00 6.00

2. x=127,x= 127,x=177,x=7f y=123.4567,y= 123.46,y=123,45670 3. 2,1 4. 1234 5. 4,3 6. -6,-6 习题四一、选择题 二、填空题 1. 非0 0 、 2. k==0 3. n%7==0&&n%==0 else 三、阅读题 1. a=1,b=0 2. c=1 习题五一、选择题 二、填空题 1. for语句 do-while 语句 while 语句 2. a=14,y=26 3. k=14,n=-1 4. 39 5. s=19 6. 22222 7. 10 8. 7 9. 8 10. 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 19 2. 数组名 3. 越界 4. 6 5. j==k a[j][k]=1; a[j][k]=0; 三、阅读题 1. 6 5 4 3 2 1 2. aaa bbb ccc ddd 3. 2,2,1 习题七 一、选择题 二、填空题 1. 整个函数体内局部 2. 整型 3. k<=b return y;

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

C语言实用程序设计100例流程图

C语言实用程序100例 第一篇基础与提高 实例1利用库函数编写基本显示程序 实例2变量属性 实例3运算符与类型 实例4关于程序结构 实例5显示函数曲线图 实例6二分法选代的应用 实例7多变的立方体 实例8一维整型数组应用(1) 实例9一维整型数组应用(2) 实例10一维整型数组应用(3) 实例11一维整型数组应用(4) 实例12二维数组应用(1)——显示杨辉三角实例13二维数组应用(2)——魔方阵 实例14字符数组应用(1)——逻辑判断 实例15字符数组应用(2)——数据模拟 实例16二维数组应用——字符比较 实例17利用指针进行数据处理 实例18指针与字符串 实例19利用指针处理二维数组 实例20一级指针 实例21利用指针传递参数值 实例22结构体的应用 实例23链表的应用(1)

实例24链表的应用(2) 实例25链表的应用(3) 实例26共用体的应用 实例27枚举类型应用 实例28位运算 买例29义件加密 实例30文件的按记录随机读写 第二篇图形与多媒体 实例31改变文字背景色 实例32及本颜色设置 实例33制作表格 实例34制作多样的椭圆 实例35美丽的透视图形 实例36错位窗口 实例37能移动的矩形 实例38多变的填充矩形 实例39黄黑相间的矩形与圆 实例40六叶图案 实例41特殊图案 实例42国际象棋棋盘 实例43制作楼梯 实例44使用线类型函数设置多个汉字实例45彩色群点 实例46饼图 买例47产品折线图 实例48直方图 实例49变大变色的拒形与国

实例50多变的填充多边形 实例51流星球 实例52小球动态碰撞 买倒53多,曲线 实例54多变的圆与环 实例55优美的球体 实例56运动的小车 实例57统计动画消失次数 实例58运行的时钟 实例59直升飞机 实例60演绎“生命游戏” 实例61猜猜看 买例62艺术清屏 买倒63制作火焰 实例64动态绘制256条不同颜色的直线实例65红绿蓝三原色渐变 第三篇综合小程序 实例66两个矩阵相乘 实例67艺术钟 实例68家庭财务管理小程序 实例69用系统时间实现随机数 实例70闪动的多彩圆 实例71检查系统有无鼠标 实例72圆形光盘与矩形 实例73动态渐变图案 实例74往返两地间的小车 实例75飘扬的红旗

《C语言程序设计教程(第二版)》习题答案

2 第1章程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分 三、应用题(第24页) 2.源程序: main() {int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ printf("cock hen chick\n"); for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=1;k<=33;k++) if (i+j+k*3==100&&i*5+j*3+k==100) printf(" %d %d %d\n",i,j,k*3);} 执行结果: cock hen chick 4 18 78 8 11 81 12 4 84 3.现计算斐波那契数列的前20项。 递推法源程序: main() {long a,b;int i; a=b=1; for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ {printf("%8ld%8ld",a,b); a=a+b;b=b+a;}} 递归法源程序: main() {int i; for(i=0;i<=19;i++) printf("%8d",fib(i));} fib(int i) {return(i<=1?1:fib(i-1)+fib(i-2));} 执行结果: 1 1 2 3 5 8 13 21 3 4 55 89 144 233 377 610 987 1597 2584 4181 6765

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

C语言程序设计课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 调试过程及实验结果

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { 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,c3,c4,c5); } 运行结果: 密码是Glmre 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写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

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 ,

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

c语言程序设计流程图详解

c语言程序设计流程图详解 介绍常见的流程图符号及流程图的例子。 本章例1-1的算法的流程图如图1-2所示。本章例1-2的算法的流程图如图1-3所示。 在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”、“假”或“T、”“F或”“Y、”“N”注“真”、“假”或“T、”“F或”“Y、”“N”

另外还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。 2.算法的结构化描述 早期的非结构化语言中都有goto语句,它允许程序从一个地方直接跳转到另一个地方去。 执行这样做的好处是程序设计十分方便灵活,减少了人工复杂度,但其缺点也是十分突出的,一大堆跳转语句使得程序的流程十分复杂紊乱,难以看懂也难以验证程序的正确性,如果有错,排起错来更是十分困难。这种转来转去的流程图所表达的混乱与复杂,正是软件危机中程序人员处境的一个生动写照。而结构化程序设计,就是要把这团乱麻理清。 经过研究,人们发现,任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成,因此,我们构造一个算法的时候,也仅以这三种基本结构作为“建筑 单元”,遵守三种基本结构的规范,基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。正因为整个算法都是由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。 相应地,只要规定好三种基本结构的流程图的画法,就可以画出任何算法的流程图。 (1)顺序结构 顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如图1-4所示,语句 的执行顺序为:A→B→C。 (2)选择(分支)结构 这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种,如图1-5a)、b)所示。图1-5a)的执行序列为:当条件为真时执行A,否则执 行B;图1-5b)的执行序列为:当条件为真时执行A,否则什么也不做。 (3)循环结构 循环结构有两种基本形态:while型循环和do-while型循环。 a.while型循环 如图1-6所示。 其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。 b.do-while型循环 如图1-7所示。

C语言程序设计习题参考答案!(第二版--杜友福)

C语言程序设计习题参考答案!(第二版--杜友福)

C语言程序设计习题答案 习题一 C语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1(3)机器语言P1(4)汇编程序P2 (5)高级语言P2(6)编译程序P3(7)解释程序P3(8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S流程图最大的区别是什么?

答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 输入三个数给a,b,c 如果a

4. 求1×2×3×…×10的值。 5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 Y 3X (X<1) 输入一个数给x X<=1 Yes no

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

c语言程序设计(第3版)的习题答案

1.5请参照本章例题,编写一个C程序,输出以下信息: ************ Very Goodj! ************ 解: main() { printf(" ************ \n"); printf("\n"); printf(" Very Good! \n"); printf("\n"); printf(" ************\n"); } 1.6编写一个程序,输入a b c三个值,输出其中最大者。 解:main() {int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

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

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。