当前位置:文档之家› C程序设计第四版谭浩强_习题&例题第7章

C程序设计第四版谭浩强_习题&例题第7章

C程序设计第四版谭浩强_习题&例题第7章
C程序设计第四版谭浩强_习题&例题第7章

第7章函数

例7.1

#include

int main()

{

void print_star();

void print_message();

print_star();

print_message();

print_star();

return 0;

}

void print_star()

{

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

void print_message()

{

printf("How do you do!\n");

}

例7.2

int max(int x,int y)

{

int z;

z=x>y?x:y;

return(z);

}

#include

int main()

{

int max(int x,int y);

int a,b,c;

printf("please enter two integer number:");

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

c=max(a,b);

printf("max is %d\n",c);

return 0;

}

例7.3

#include

int main()

{

int max(float x,float y);

float a,b;

int c;

printf("please enter two integer number:");

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

c=max(a,b);

printf("max is %d\n",c);

return 0;

}

int max(float x,float y)

{

float z;

z=x>y?x:y;

return(z);

}

例7.4

#include

int main()

{

float add(float x,float y);

float a,b,c;

printf("please enter a and b:");

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

c=add(a,b);

printf("sum is %f\n",c);

return 0;

}

float add(float x,float y)

{

float z;

z=x+y;

return(z);

}

例7.5

#include

int main()

{

int max4(int a,int b,int c,int d);

int a,b,c,d,max;

printf("please enter 4 interger number:");

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

max=max4(a,b,c,d);

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

return 0;

}

int max4(int a,int b,int c,int d)

{

int max2(int a,int b);

int m;

m=max2(a,b);

m=max2(m,c);

m=max2(m,d);

return(m);

}

int max2(int a,int b)

{

if(a>=b) return a;

else return b;

}

#include

int main()

{

int max4(int a,int b,int c,int d);

int a,b,c,d,max;

printf("please enter 4 interger number:");

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

max=max4(a,b,c,d);

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

return 0;

}

int max4(int a,int b,int c,int d)

int max2(int a,int b);

return(max2(max2(max2(a,b),c),d)); }

int max2(int a,int b)

{

return(a>b?a:b);

}

例7.6

#include

int main()

{

int age(int n);

printf("NO.5,age:%d\n",age(5));

return 0;

}

int age(int n)

{

int c;

if(n==1) c=10;

else c=age(n-1)+2;

return(c);

}

例7.7递归方法求n!

#include

int main()

{

int fac(int n);

int n,y;

printf("input a interger number:");

scanf("%d",&n);

y=fac(n);

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

return 0;

}

int fac(int n)

{

int f;

if(n<0) printf("n<0,data error!");

else if(n==0||n==1) f=1;

else f=fac(n-1)*n;

return(f);

例7.8汉诺塔

#include

int main()

{

void hanoi(int n,char one,char two,char three);

int m;

printf("input the number of diskes:");

scanf("%d",&m);

printf("The step to move %d diskes:\n",m);

hanoi(m,'A','B','C');

}

void hanoi(int n,char one,char two,char three)//将N-1个盘子从一座移到另一座。

{

void move(char x,char y);//用到这个函数,提前声明

if(n==1) move(one,three);//最后一步1-3

else

{

hanoi((n-1),one,three,two);//小和尚工作n-1个盘子借用3由1搬到2

move(one,three);//老和尚工作最大盘子由1搬到3

hanoi((n-1),two,one,three);//小和尚工作n-1个盘子借用2由1搬到3,完成工作}

}

void move(char x,char y)//将一个盘子从一座移到另一座

{

printf("%c-->%c\n",x,y);

}

例7.9

#include

int main()

{

int max(int x,int y);

int a[10],m,n,i;

printf("enter 10 interger numbers:");

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

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

printf("\n");

for(i=1,m=a[0],n=0;i<10;i++)

{

if (max(m,a[i])>m)

{

m=max(m,a[i]);

n=i;

}

}

printf("The largest number is %d\nit is the %dth number.\n",m,n+1); }

int max(int x,int y)

{

return(x>y?x:y);

}

例7.10

#include

int main()

{

float average(float array[10]);

float score[10],aver;

int i;

printf("enter 10 scores:\n");

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

scanf("%f",&score[i]);

printf("\n");

aver=average(score);

printf("average score is %5.2f\n",aver);

return 0;

}

float average(float array[10])

{

int i;

float aver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

return(aver);

}

例7.11

#include

int main()

{

float average(float array[10],int n);

float score1[5]={98.5,97,91.5,60,55};

float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};

printf("The average of class A is %6.2f\n",average(score1,5));

printf("The average of class B is %6.2f\n",average(score2,10));

return 0;

}

float average(float array[10],int n)

{

int i;

float aver,sum=array[0];

for (i=1;i

sum=sum+array[i];

aver=sum/n;

return(aver);

}

例7.12

#include

int main()

{

void sort(int array[],int n);

int a[10],i;

printf("enter array:\n");

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

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

sort(a,10);

printf("The sorted array:\n");

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

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

printf("\n");

return 0;

}

void sort(int array[],int n)

{

int i,j,k,t;

for(i=0;i

{

k=i;

for(j=i+1;j

if(array[j]

k=j;

t=array[k];array[k]=array[i];array[i]=t;

}

}

例7.13

#include

int main()

{

int max_value(int array[][4]);

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

printf("Max value is %d\n",max_value(a));

return 0;

}

int max_value(int array[][4])

{

int i,j,max;

max=array[0][0];

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

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

if(array[i][j]>max) max=array[i][j];

return(max);

}

例7.14

#include

float Max=0,Min=0;

int main()

{

float average(float array[],int n);

float ave,score[10];

int i;

printf("Please enter 10 score:");

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

scanf("%f",&score[i]);

ave=average(score,10);

printf("max =%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave);

return 0;

}

float average(float array[],int n)

{

int i;

float aver,sum=array[0];

Max=Min=array[0];

for(i=1;i

{

if(array[i]>Max) Max=array[i];

else if(array[i]

sum+=array[i];

}

aver=sum/n;

return(aver);

}

例7.15

#include

int a=3,b=5;

int main()

{

int max(int a,int b);

int a=8;

printf("max=%d\n",max(a,b));

return 0;

}

int max(int a,int b)

{

int c;

c=a>b?a:b;

return(c);

}

例7.16

#include

int main()

{

int f(int);

int a=2,i;

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

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

return 0;

}

int f(int a)

{

auto int b=0;

static c=3;

b=b+1;

c=c+1;

return(a+b+c);

}

例7.17

#include

int main()

{

int fac(int n);

int i;

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

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

return 0;

}

int fac(int n)

{

static int f=1;

f=f*n;

return(f);

}

例7.18

#include

int main()

{

int max();

extern int A,B,C;

printf("Please enter three interger numbers\n");

scanf("%d %d %d",&A,&B,&C);

printf("max is %d\n",max());

return 0;

}

int A,B,C;

int max()

{

int m;

m=A>B?A:B;

if(C>m)m=C;

return(m);

}

例7.19

file1.c

#include

int A;

int main()

{

int power(int);

int b=3,c,d,m;

printf("enter the number a and its power m:\n");

scanf("%d,%d",&A,&m);

c=A*b;

printf("%d*%d=%d\n",A,b,c);

d=power(m);

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

return 0;

}

file2.c

extern A;

int power(int n)

{

int i,y=1;

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

y*=A;

return(y);

}

例7.20

file1.c

#include

int main()

{

extern void enter_string(char str[]);

extern void delete_string(char str[],char ch);

extern void print_string(char str[]);

char c,str[80];

enter_string(str);

scanf("%c",&c);

delete_string(str,c);

print_string(str);

return 0;

}

file2.c

void enter_string(char str[80])

{

gets(str);

}

file3.c

void delete_string(char str[],char ch)

{

int i,j;

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

if(str[i]!=ch)

str[j++]=str[i];

str[j]='\0';

}

file4.c

void print_string(char str[])

{

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

}

习题

1.

#include

int divisor(x,y)

{

int r;

if(x

{

r=x;

x=y;

y=r;

}

while(r)

{

r=x%y;

x=y;

y=r;

}

return(x);

}

int multiple(int x,int y)

{

int z;

z=x*y/divisor(x,y);

return(z);

}

int main()

{

int a,b;

printf("请输入两个整数a和b:");

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

printf("a和b的最大公约数为%d.\n",divisor(a,b));

printf("a和b的最小公倍数为%d.\n",multiple(a,b));

return 0;

}

2.

#include

#include

float d;

void disc1(float a,float b,float c)

{

printf("方程有两不等实根:x1=%5.2f,x2=%5.2f\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)); }

void disc2(float a,float b,float c)

{

printf("方程有两相等实根:x1=x2=%5.2f\n",-b/(2*a));

}

void disc3(float a,float b,float c)

{

printf("方程有两不等实

根:x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a)); }

int main()

{

float a,b,c;

printf("请输入a,b,c:");

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

d=b*b-4*a*c;

if(d>0) disc1(a,b,c);

else if(fabs(d)<=1e-6) disc2(a,b,c);

else disc3(a,b,c);

return 0;

}

3.

#include

#include

void f(int a)

{

int i,n=(int)sqrt(a),t;

for(i=2,t=1;i<=n;i++)

{

if(a%i==0)

{

t=0;

printf("这是一个合数.\n");break;

}

}

if(t) printf("这是一个素数.\n");

}

int main()

{

int a;

printf("请输入一个正整数a:");

scanf("%d",&a);

f(a);

return 0;

}

4.

#include

void f(int a[3][3])

{

int i,j,t;

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

for(j=0;j

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

void main()

{

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

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

{

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

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

printf("\n");

}

printf("\n");

f(a);

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

{

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

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

printf("\n");

}

}

5.

#include

#include

void f(char a[])

{

int i,t;

char b;

t=strlen(a);

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

{

b=a[i];

a[i]=a[t-i-1];

a[t-i-1]=b;

}

}

void main()

{

char ch[80];

gets(ch);

f(ch);

puts(ch);

}

6.

#include

void f(char a[],char b[])

{

int i,j;

for(i=0;a[i]!='\0';i++);

for(j=0;b[j]!='\0';i++,j++)

a[i]=b[j];

}

void main()

{

char ch1[80]="How do you do!",ch2[]="Fine,thank you,and you?";

f(ch1,ch2);

puts(ch1);

}

7.

#include

void f(char a[80],char b[40])

{

int i,j;

for(i=0,j=0;a[i]!='\0';i++)

if(a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U'||a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o' ||a[i]=='u')

{

b[j]=a[i];

j++;

}

b[j]='\0';

}

int main()

{

char ch1[80]="How are you?Fine,thank you,and you?",ch2[40];

f(ch1,ch2);

puts(ch2);

return 0;

}

8.

#include

void f(int n,int ch[])

{

ch[0]=n/1000;

ch[1]=(n-ch[0]*1000)/100;

ch[2]=(n-ch[0]*1000-ch[1]*100)/10;

ch[3]=n%10;

}

void main()

{

int n,i,ch[4];

printf("输入一个四位整数:\n");

scanf("%d",&n);

f(n,ch);

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

printf("%c ",ch[i]+48);

}

9.

#include

int upp,low,num,space,other;

void f(char c[])

{

int i;

for(upp=0,low=0,num=0,space=0,other=0,i=0;c[i]!='\0';i++)

{

if(c[i]>='A'&&c[i]<='Z') upp++;

else if(c[i]>='a'&&c[i]<='z') low++;

else if(c[i]>='0'&&c[i]<='9') num++;

else if(c[i]==' ') space++;

else other++;

}

}

void main()

{

char ch[80];

printf("输入一句英文,限80字符内:\n");

gets(ch);

f(ch);

printf("大写字母%d个,小写字母%d个,数字%d个,空格%d个,其他%d个\n",upp,low,num,space,other);

}

10.

#include

void f(char a[100],char b[40][30])

{

int i,m,n,k,g;

for(i=m=n=k=g=0;a[i]!='\0';i++)

{

if (a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')

{

b[m][n]=a[i];//m单词位置n单词长度

n++;

}

else

{

if(k

{

k=n;//k单词最长数g最长单词位置

g=m;

b[m][n]='\0';

}

n=0;

m++;

}

}

printf("最长的单词为:\n");

puts(b[g]);

}

void main()

{

char a[100],b[40][30];

printf("请输入一句英文:\n");

gets(a);

f(a,b);

}

11.

#include

void f(char a[10])

{

int i,j;

char ch;

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

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

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

{

ch=a[i];

a[i]=a[j];

a[j]=ch;

}

}

void main()

{

char a[10];

printf("请输入10个字符:\n");

gets(a);

f(a);

puts(a);

}

12.

#include

float f(float a,float b,float c,float d,float x)

{

float z;

z=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c);

return (z);

}

void main()

{

float a,b,c,d,x;

printf("请输入a,b,c,d:\n");

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

printf("方程为%f*x*x*x+%f*x*x+%f*x+%f=0\n",a,b,c,d);

x=1.0;

while(a*x*x*x+b*x*x+c*x+d>1e-6)

x=f(a,b,c,d,x);

printf("方程在1附近的根为:%f\n",x);

(完整版)谭浩强c程序设计课后习题答案

谭浩强c++程序设计课后答案 娄警卫

第一章1.5题 #include using namespace std; int main() { cout<<"This"<<"is"; cout<<"a"<<"C++"; cout<<"program."; return 0; 1.6题 #include using namespace std; int main() { int a,b,c; a=10; b=23; c=a+b; cout<<"a+b="; cout< using namespace std; int main() { int a,b,c; int f(int x,int y,int z); cin>>a>>b>>c; c=f(a,b,c); cout< using namespace std; int main() { int a,b,c; cin>>a>>b; c=a+b; cout<<"a+b="< using namespace std; int main() { int a,b,c; int add(int x,int y); cin>>a>>b; c=add(a,b); cout<<"a+b="<

C语言程序设计谭浩强第四版期末复习重点

C语言程序设计谭浩强第四版期末复习重点 Newly compiled on November 23, 2020

第一章 程 序设计和C 语言 .什么是计算机程序 程序.. :一组计算机能识别和执行的指令。只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作 计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。 什么是计算机语言 计算机语言:人和计算机交流信息的、计算机和人都能识别的语言。 计算机语言发展阶段:机器语言(由0和1组成的指令) 符号语言(用英文字母和数字表示指令) 高级语言(接近于人的自然语言和数学语言) 面向过程的语言(非结构化的语言、结构化语言);面向对象的语言 语言的发展及其特点 C 语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。因此C 语言问世以后得到迅速推广。 C 语言主要特点: 语言简洁、紧凑,使用方便、灵活。(只有37个关键字、9种控制语句;程序书写形式 自由,源程序短) 运算符丰富。(34种运算符;把括号、赋值、强制类型转换等都作为运算符处理;表达 式类型多样化) 数据类型丰富。(包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型;C99又扩充了复数浮点类型、超长整型、布尔类型;指针类型数据,能用来实现各种复杂的数据结构的运算。)

具有结构化的控制语句。(如if…else语句、while语句、do…while语句、switch语句、for语句用函数作为程序的模块单位,便于实现程序的模块化;C语言是完全模块化和结构化的语言) 语法限制不太严格,程序设计自由度大。(对数组下标越界不做检查;对变量的类型使用比较灵活,例如,整型量与字符型数据可以通用;C语言允许程序编写者有较大的自由度,因此放宽了语法检查) 允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。(C语言具有高级语言的功能和低级语言的许多功能,可用来编写系统软件;这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言) 用C语言编写的程序可移植性好。(C的编译系统简洁,很容易移植到新系统;在新系统上运行时,可直接编译“标准链接库”中的大部分功能,不需要修改源代码;几乎所有计算机系统都可以使用C语言) 生成目标代码质量高,程序执行效率高。 1.C语言允许用两种注释方式:计算法 3.编写程序 4.对源程序进行编辑、编译和连接 5. 运行程序,分析结 6.编写程序文档 第二章算法——程序的灵魂 一个程序主要包括以下两方面的信息: (1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,这就是数据结构。 (2) 对操作的描述。即要求计算机进行操作的步骤,也就是算法。 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。 着名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:算法 + 数据结构 = 程序

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

C程序设计第四版谭浩强完整版课后习题答案集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

C程序设计(第四版)(谭浩强)第一章课后习题答案 P006 向屏幕输出文字. #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } P008 求两个数的和. #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum);

return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); }

P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); }

C程序设计第四版谭浩强_习题&例题第7章

第7章函数 例7.1 #include int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("***********************************\n"); } void print_message() { printf("How do you do!\n"); } 例7.2 int max(int x,int y) { int z; z=x>y?x:y; return(z); } #include int main() { int max(int x,int y); int a,b,c; printf("please enter two integer number:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; }

例7.3 #include int main() { int max(float x,float y); float a,b; int c; printf("please enter two integer number:"); scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return(z); } 例7.4 #include int main() { float add(float x,float y); float a,b,c; printf("please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) { float z; z=x+y; return(z); }

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

《C语言程序设计》_谭浩强版教案

《C 语言程序设计》教案 职称: 助教 ____________ 单 位:湖南理工职业技术学院 学院(教研室):风能工程学院 工业机器人专业 授课教师: 周常欣

教 学 重 占 八、、 和 难 占 八、、 一、 程序设计和 C 语言 重点:计算机程序、计算机语言、 C 语言编译软件的安装、最简单的 C 语言程序 二、 算法:程序的灵魂 重点:简单的算法举例、算法的特性、用流程图表示算法。 三、 顺序结构程序设计 重点:C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出 中最常用的 控制格式。 四、 选择结构程序设计 重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、 二条分支语句的格 式及基本应用、多分支的选择语句。 五、 循环结构程序设计 重点:C 构成循环的四种方法,尤其是后三种方法、 break 与continue 语句的基本作 用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套; break 与continue 语句。 六、 数组 重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处 理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、 函数 重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的 递归调 用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调 用;数组作 为函数的参数、变量的存储类别与作用域。 八、 指针 重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字 符串、指针 数组与二级指针;指针的应用 九、 建立自己的数据类型 重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型 十、文件 重点:文件的基本知识、 fopen 、fclose 函数打开与关闭文件、顺序读与数据文件、 随机读写数据文件 难点:用二进制方式向文件读写一组数据。 十一、常见错误分析 重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。 十二、数组高级应用 重点:不定长数组与二维数组的应用 难点:不定长数组与二维数组的应用 十三、综合应用 重点:数组、if 语句、循环语句、函数知识的综合应用 难点:二维数组、指针 教材、 参 考书 教材:《C 程序设计》(第四版) 谭浩强著 清华大学出版社2010年6月 参考书:《C 程序设计语言》 Kernighan&Ritchie 机械工业出版社 《C 语言程序设计》教案 第1-2课时

C语言程序设计第四版第六章答案_谭浩强

1、用筛选法求100之内的素数。解: #include #include int main() {int i,j,n,a[101]; for (i=1;i<=100;i++) a[i]=i; a[1]=0; for (i=2;i int main() {int i,j,min,temp,a[11]; printf("enter data:\n"); for (i=1;i<=10;i++)

{printf("a[%d]=",i); scanf("%d",&a[i]); } printf("\n"); printf("The orginal numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); for (i=1;i<=9;i++) {min=i; for (j=i+1;j<=10;j++) if (a[min]>a[j]) min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf("\nThe sorted numbers:\n"); for (i=1;i<=10;i++) printf("%5d",a[i]); printf("\n"); return 0; } 3、求一个3×3的整型矩阵对角线元素之和。解: #include int main() { int a[3][3],sum=0; int i,j; printf("enter data:\n"); for (i=0;i<3;i++) for (j=0;j<3;j++) scanf("%3d",&a[i][j]); for (i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%6d\n",sum);

04737c程序设计试题及答案20200_图文

全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.对C++中主函数描述正确的是( ) A.名称为main,可为多个 B.名称不限,可为多个 C.名称为main,必须有且只能有一个 D.名称不限,必须有且只能有一个 2.调用声明为int result(int a,int b)的函数时,正确的方法是( ) A.result(1,2) B.result(1) C.result(0.1,0.3) D.result(1,2,3) 3.用于包含C++标准库iostream的预处理指令是( ) A.#define B.#include C.#define ‘iostream’ D.#include‘iostream’ 4.无类型标识符是指( ) A.void B.bool C.short D.long 5.从本质上看,引用是被引用变量的( ) A.拷贝 B.别名 C.复制 D.克隆 6.下面关于数组的初始化正确的是( ) A.char str[ ]={'a','b','c'}; B.char str[2]={'a','b','c'}; C.char str[1][2]={{'a','b'},{'e','d'}}; D.char str[ ][ ]={'a','b','c'}; 7.C++类中定义的成员默认访问属性为( ) A.public B.private C.protected D.friend 1文档来源为:从网络收集整理.word版本可编辑.

谭浩强--C语言程序设计(第二版)习题答案

C语言程序设计(第2版)课后习题答案 第一章 1.请参照本章例题,编写一个C程序,输出以下信息: ************************** Very good! ************************** 解: #include void main() { printf("**************************"); printf("\n"); printf("Very good!\n"); printf("\n"); printf("**************************"); } 2.编写一个C程序,输入a、b、c三个值,输出其中最大值。 解: #include void main() { int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max #include void main() { double P, r=0.1, n=10; P=pow((1+r), n);

printf("%lf\n", P); } 3.请编程序将"China"译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。例如,字母"A"后面第4个字母是"E","E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为'C'、'h'、'i'、'n'、'a',经过运算,使c1、c2、c3、c4、c5分别变为'G'、'l'、'm'、'r'、'e',并输出。 解: #include void 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); } 第三章 3.用下面的scanf函数输入数据,使a=3, b=7, x=8.5, y=71.82, c1='A', c2='a'。问在键盘上如何输入? 解: #include void main() { int a, b; float x, y; char c1, c2; scanf("a=%d, b=%d", &a, &b); scanf(" x=%f, y=%e", &x, &y); scanf(" c1=%c, c2=%c",&c1, &c2); } a=3, b=7 x=8.5, y=71.82 c1=A, c2=a 5. 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后2位数字。请编程序。 解: #include void main() { float r,h,C1,Sa,Sb,Va,Vb; scanf("%f,%f",&r,&h);

C语言程序设计试题集及其答案

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

C语言程序设计期末考试试题及答案

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

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

C语言程序设计试题及 答案 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是() A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是() A、abc B、12AC C、sun D、 A2 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是() A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是() A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是() A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是() A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是() sum=pad=5;pAd=sum++,pAd++,++pAd;

printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是() A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:() void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是() main( ) { int x,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别()

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

C程序设计(第四版)(谭浩强)第一章课后习题答案 #include<>代码均调试成功,若有失误大多不是代码问题.自已找找. int main() { printf("Welcome to \n"); return 0; } #include<> int main() { int a,b,sum; a=5; b=4; sum=a+b; printf("The sum is %d .\n",sum); return 0; } P008 调用函数比较两个数的大小. #include<> int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("The max is %d .\n",c); return 0; } int max(int x,int y) { int z; if (x>y) z=x; else z=y; return(z); }

P015 三个数的大小.(数字0表示课后练习题) #include<> int main() { int a,b,c,d; int max(int x , int y , int z); printf("Please input 3 numbers :\n"); scanf("%d %d %d",&a,&b,&c); d=max(a,b,c); printf("The max is :%d .\n",d); } int max(int x , int y , int z) { int m; if (x>y && x>z) m=x; if (y>x && y>z) m=y; if (z>y && z>x) m=z; return (m); } C程序设计(第四版)(谭浩强)第2章课后 习题答案 算法——程序的灵魂 P017 计算机1-5相乘的积. #include<> int main() { int i,s=1; for(i=1;i<6;i++) { s=s*i; n",s); return 0; } #include<> int main() { int i,s=1; for(i=1;i<12;i++) 可以是i=i+2 { if(i%2!=0) s=s*i; else continue; }

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

C语言程序设计课后习 题答案第四版谭浩强 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; }

1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.2简单的算法举例17 2.3算法的特性21 2.4怎样表示一个算法22 2.4.1用自然语言表示算法22 2.4.2用流程图表示算法22 2.4.3三种基本结构和改进的流程图26 2.4.4用N S流程图表示算法28 2.4.5用伪代码表示算法31 2.4.6用计算机语言表示算法32 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42

相关主题
文本预览
相关文档 最新文档