C语言程序设计(第3版)何钦铭 颜 晖 第7章 数组

C语言程序设计(第3版)何钦铭 颜 晖 第7章  数组
C语言程序设计(第3版)何钦铭 颜 晖 第7章  数组

第7章数组

【练习7-1】将例7-3 程序中的break 语句去掉,输出结果有变化吗?假设输入数据不变,输出什么?

解答:

当去掉break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为x 的元素,因

此程序输出会有变化。当输入数据仍为2 9 8 1 9 时,输出将是index is 1 index is 4。

【练习7-2】将数组中的数逆序存放。输入一个正整数n(1

解答:

#include

int main(void)

{

int i,n,temp;

int a[10];

printf("Input n:");

scanf("%d",&n);

printf("Input %d integer:",n);

for(i=0;i

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

printf("After reversed:");

for(i=0;i

temp=a[i];

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

a[n-1-i]=temp;

}

for(i=0;i

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

return 0;

}

【练习7-3】求最大值及其下标。输入一个正整数n(1

解答:

#include

int main(void)

{

int i,index,n;

int a[10];

printf("Enter n:");

scanf("%d",&n);

printf("Enter %d integrs:",n);

for(i=0;i

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

for(i=n-1;i>=0;i++)

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

return 0;

}

【练习7-4】找出不是两个数组共有的元素。输入一个正整数n (1<n≤10),再输入n 个整数,存入第1个数组中;然后输入一个正整数m(1

解答:

#include

int main(void)

{

int i,j,k,m,n,flag,equal;

int a[25],b[25],c[25];

printf("Enter m:");

scanf("%d",&m);

printf("Enter %d integers:",m);

for(i=0;i

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

printf("Enter n:");

scanf("%d",&n);

printf("Enter %d integers:",n);

for(j=0;j

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

k=0;

for(i=0;i

flag=0;

for(j=0;j

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

flag=1;//判断一个数组中是否有相重的元素,有的话不执行if(!flag){

equal=0;

for(j=0;j

if(a[i]==b[j]){

equal=1;

break;

}

if(!equal)

c[k++]=a[i];

}

}

for(i=0;i

flag=0;

for(j=0;j

if(b[i]==b[j])

flag=1;

if(!flag){

equal=0;

for(j=0;j

if(b[i]==a[j]){

equal=1;

break;

}

if(!equal)

c[k++]=b[i];

}

}

printf("%d",c[0]);

for(i=1;i

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

printf("\n");

return 0;

}

【练习7-5】给二维数组赋值时,如果把列下标作为外循环的循环变量,行下标作为内循环的循环变量,输入的数据在二维数组中如何存放?用下列for 语句替换例7-7 中的对应语句,将输入的 6 个数存入二维数组中,假设输入数据不变,输出什么?与例7-7 中的输出结果一样吗?为什么?

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

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

scanf(“%d”,&a[i][j]);

解答:

当把列下标作为外循环的循环变量,行下标作为内循环的循环变量时,输入的数据将

以列优先的方式存放。当用上述for 循环方式时,输出结果为:max=a[2][0]=10,与原例7-7 不一样,因为当用上述方式输入是,二维数组中存放值如下:

3 - 9

2 6

10 - 1

【练习7-6】在例7-9 的程序中,如果将遍历上三角矩阵改为遍历下三角矩阵,需要怎样修改程序?运行结果有变化吗?如果改为遍历整个矩阵,需要怎样修改程序?输出是什

么?为什么?

解答:

只需按要求修改矩阵的输出部分,方法如下,其运行结果不变。

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

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

temp = a[i][j];

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

a[j][i] = temp;

}

若修改为遍历整个程序,方法如下,则运行结果仍将输出原矩阵,无法达到转置要求,

原因是矩阵中每个元素相应被交换了2 次。

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

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

temp = a[i][j];

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

a[j][i] = temp;////先是下三角进行交换,后是上三角进行交换

}

【练习7-7】矩阵运算:读入1个正整数n(1≤n≤6),再读入n阶方阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。试编写相应程序。

解答:

#include

int main(void)

{

int i,j,n,sum;

int a[6][6];

printf("Input n:");

scanf("%d",&n);

printf("Input array:\n ");

for(i=0;i

for(j=0;j

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

sum=0;

for(i=0;i

for(j=0;j

if(i!=n-1&&j!=n-1&&i+j!=n-1) sum+=a[i][j];

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

return 0;

}

【练习7-8】方阵循环右移。读入2个正整数m和n(1<=n<6),在读入n阶方阵a,将该方阵中的每个元素循环向右移m个位置,即将第0、1、…、n-1列变换为第n-m、n-m+1、…、n-1、0、1、…、n-m-1列,移动后的方阵可以存到另一个二维数组中。试编写相应程序。

#include

int main(void)

{

int m,n,i,j,count;

int a[6][6],b[6][6];

printf("Enter m:");

scanf("%d",&m);

printf("Enter n:");

scanf("%d",&n);

printf("Input array:\n");

for(i=0;i

for(j=0;j

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

for(i=0;i

count=0;

for(j=0;j

if(j

b[i][j+m]=a[i][j];

else

b[i][count++]=a[i][j];

}

for(i=0;i

for(j=0;j

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

printf("\n");

}

return 0;

}

【练习7-9】计算天数:输入日期(年、月、日),输出它是该年的第几天。要求调用例7-10 中定义的函数day_of_year(year, month, day)。试编写相应程序。

解答:

#include

int day_of_year(int year, int month, int day);

int main(void)

{

int year,month,day,day_year;

printf("Input year,month,day: ");

scanf("%d%d%d",&year,&month,&day);

day_year=day_of_year(year,month,day);

printf("Days of year: %d\n",day_year);

return 0;

}

int day_of_year(int year,int month,int day)

{

int k,leap;

int tab[2][13]={

{0,31,28,31,30,31,30,31,31,30,31,30,31},

{0,31,29,31,30,31,30,31,31,30,31,30,31}

};

leap=(year%4==0&&year%100!=0||year%400==0);

for(k=1;k

day=day+tab[leap][k];

return day;

}

【练习7-10】查找指定字符。输入一个字符,再输入一个以回车符结束的字符串(少于80个字符)。如果找到,则输出该字符在字符串中所对应的最大下标,下标从0开始;否则输出”Not Found”。试编写相应程序。

解答:

#include

int main(void)

{

int i,max,flag;

char a[80],op;

printf("Enter a x:");

op=getchar();

fflush(stdin);//或setbuf(stdin,NULL);

printf("Enter a string:");

i=0;

while((a[i]=getchar())!='\n')

i++;

a[i]='\0';

max=0;

flag=0;

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

if(a[i]==op) {

max=i;

flag=1;

}

if(flag==1)

printf("Max=%d",max);

else

printf("Not Found!");

return 0;

}

【练习7-11】字符串逆序:输入一个以回车符结束的字符串(少于80个字符),将该字符串逆序存放,输出逆序后的字符串。试编写相应程序。

解答:

#include

int main(void)

{

int i;

char str[80],a[80];

printf("Enter a string:");

i=0;

while((str[i]=getchar())!='\n')

i++;

str[i]='\0';

for(;i>=0;i--)

putchar(str[i]);

return 0;

}

习题7

一.选择题

1.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4}; 则数组x在内存中所占字节数是 D 。

A.3 B.6 C.10 D.20

2.以下能正确定义数组并正确赋初值的语句是 D 。

A.int N=5,b[N][N];

B.int a[1][2]={{1},{3}};

C.int c[2][]={{1,2},{3,4}};

D.int d[3][2]={{1,2},{34}};

3.若有定义:int a[2][3];以下选项中对数组元素正确引用的是 D 。

A.a[2][0] B.a[2][3] C.a [0][3] D.a[1>2][1]

4.设有数组定义:char array [ ]="China";则数组array 所占的空间为 C 。

A.4 个字节B.5 个字节C.6 个字节D.7 个字节

5.下述对C 语言字符数组的描述中错误的是 D 。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

6.有以下定义:char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为C 。

A.数组x和数组y等价 B . 数组x和数组y的长度相同

C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度

7.以下程序的输出结果是 C 。

int main(void)

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

int i, j, k=2;

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

printf ("%d ",m[k][i]);

}

A.4 5 6 B.2 5 8 C.3 6 9 D.7 8 9

8.以下程序的输出结果是 B 。

int main(void)

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

int i, s=0;

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

s+=aa[i][1];

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

}

A.11 B.19 C.13 D.20

二.填空题

1.设有定义语句:int a[ ][3]={{0},{1},{2}}; 则数组元素a[1][2]的值是0 。

2.下列程序的功能是:求出数组x 中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

int main(void )

{ int x[10],a[9],i;

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

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

a[i-1]=x[i]+_x[i-1] _ ;

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

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

printf("\n");

}

3.写出下列程序的运行结果是-12 。

int main(void)

{ int a[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};

int j,s=0;

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

if(a [j]%2==0)

s+=a[j];

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

}

4.写出下面程序的运行结果。

#include

int main(void)

{ float s[6]={1, 3, 5, 7, 9};

float x;

int i;

scanf(“%f”, &x);

for (i=4 ; i>=0; i--)

if(s[i]>x)

s[i+1]=s[i];

else

break;

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

return 0;

}

(1) 如果输入4,则输出 2 。

(2) 如果输入5,则输出 3 。

5.下列程序的功能是输出如下形式的方阵,请填空。

13 14 15 16

9 10 11 12

5 6 7 8

1 2 3 4

int main(void)

{ int i,j,x;

for(j=4;_j>=1_;j--)

{ x=(j-1)*4+_i_;

printf("%4d",x);

}

printf("\n");

}

}

6.以下程序的功能是用来检查二维数组是否对称(即对所有的i,j都有a[i] [j]=a[j] [i])。请填空。

int main(void)

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

int i,j,found=0;

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

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

if(_a[j][i]!=a[i][j]_){

_found=1;_

break;

}

if(_found==1_)break;

}

if(found!=0) printf("该二维数组不对称\n");

else printf("该二维数组对称\n");

return 0;

}

三.程序设计题

1. 选择法排序。输入一个正整数n (1

解答:

#include

int main(void)

{

int i,n,index,k,temp;

int a[10];

printf("Enter n:");

scanf("%d",&n);

printf("Input %d integers:",n);

for(i=0;i

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

for(k=0;k

index=k;

for(i=k+1;i

if(a[index]

temp=a[index];

a[index]=a[k];

a[k]=temp;

}

printf("After sorted:");

for(i=0;i

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

printf("\n");

return 0;

}

2.求一批整数中出现最多的数字。输入一个正整数n(1≤n≤1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输入3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试编写相应程序。

解答:

#include

int main(void)

{

int i,j,k,g,n,max;

int a[1000],b[1000],count[1000];

printf("Enter n:");

scanf("%d",&n);

printf("Enter %d integers:",n);

for(i=0;i

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

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

count[i]=0;

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

for(j=0;j

for(k=0;k

b[k]=a[k];

while(a[j]!=0){

if(a[j]%10==i)

count[i]++;

a[j]=a[j]/10;

}

for(k=0;k

a[k]=b[k];

}

max=count[0];

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

if(max

max=count[i];

printf("出现最多次数的数字和次数是:");

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

if(max==count[i])

printf("%2d-%d",i,count[i]);

return 0;

}

3. 判断上三角矩阵。输入一个正整数n (1≤n≤6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。上三角矩阵,即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。试编写相应程序。

解答:

#include

int main(void)

{

int i,j,n,flag;

int a[6][6];

printf("Input n:");

scanf("%d",&n);

printf("Input array:\n");

for(i=0;i

for(j=0;j

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

for(j=1;j

flag=0;

for(i=1;i

if(a[i][j]==0)

flag=1;

}

if(flag)

printf("YES!\n");

else

printf("NO!\n");

return 0;

}

4.求矩阵各行元素之和。输入2个正整数m和n (1≤m≤6,1≤ n≤6),然后输入该m行n列矩阵a中的元素,分别求出各行元素之和,并输出。试编写相应程序。

解答:

#include

int main(void)

{

int i,j,m,n,sum;

int a[6][6];

printf("Input m:");

scanf("%d",&m);

printf("Input n:");

scanf("%d",&n);

printf("Input array:\n ");

for(i=0;i

for(j=0;j

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

for(i=0;i

sum=0;

for(j=0;j

sum=sum+a[i][j];

printf("sum of row %d is %d\n",i,sum);

}

return 0;

}

5.找鞍点。输入一个正整数n(1≤n≤6)和n阶方阵a中的元素,假设方阵

..a.最多有

..

...1.个鞍点.,如果找到a的鞍点,就输出它的下标;否则,输出"NO"。鞍点的元素值在该行上最大,,在该列上最小。试编写相应程序。

解答:

#include

int main(void)

{

int flag,i,j,k,row,col,n;

int a[6][6];

printf("Input n: ");

scanf("%d",&n);

printf("Input array:\n ");

for(i=0;i

for(j=0;j

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

for(i=0;i

flag=1;

col=0;

for(j=0;j

if(a[i][col]

for(k=0;k

if(a[i][col]>a[k][col]){

flag=0;

break;

}

if(flag){

row=i;

break;

}

}

if(flag)

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

else

printf("NO\n");

return 0;

}

7.字符串替换。输入一个以回车结束的字符串(少于80 个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。试编写相应程序。

原字母对应字母

A →Z

B →Y

C →X

D →W

……

X → C

Y → B

Z → A

解答:

#include

int main(void)

{

int i;

char ch,str[80];

printf("Input a string: ");

i=0;

while((ch=getchar())!='\n'){

str[i++]=ch;

}

str[i]='\0';

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

if(str[i]<='Z'&&str[i]>='A')

str[i]='A'+'Z'-str[i];

printf("After replaced:");

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

putchar(str[i]);

putchar('\n');

return 0;

}

8.字符串转换成十进制整数。输入一个以字符”#”结束的字符串滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果过滤后字符串的首字符为”-”,代表该数是负数。试编写相应程序。

解答:

#include

int main(void)

{

int i,j,k;

char hexad[80],str[80];

long number;

printf("Enter a string:");

i=0;

while((str[i]=getchar())!='#')

i++;

str[i]='\0';

k=0;

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

if(str[i]=='-'||str[i]>='0'&&str[i]<='9'||str[i]>='a'&&str[i]<='f'||str[i]>='A'&&str[i]<='F') hexad[k++]=str[i];

hexad[k]='\0';

j=1;

if(hexad[0]=='-'){

for(k=1;hexad[k]!='\0';k++)

if(hexad[k]!='-')

hexad[j++]=hexad[k];

}

else{

j=0;

for(k=0;hexad[k]=!'\0';k++)

if(hexad[k]!='-')

hexad[j++]=hexad[k];}

printf("New string:");

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

putchar(hexad[i]);

printf("\n");

number=0;

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

if(hexad[i]>='0'&&hexad[i]<='9')

number=number*16+hexad[i]-'0';

else if(hexad[i]>='A'&&hexad[i]<='F')

number=number*16+hexad[i]-'A'+10;

else if(hexad[i]>='a'&&hexad[i]<='f')

number=number*16+hexad[i]-'a'+10;

}

if(hexad[0]='-')

printf("Number=%ld\n",-number);

else

printf("Number=%ld\n",number);

return 0;

}

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

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);

第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语言程序设计(谭浩强)第四版-课后答案

第一章程序设计和C语言【第15页】 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 #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; }

3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } 3-2-2 #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次

C语言程序设计课后答案罗朝盛

第1章习题参考答案 1. (略) 2 3填空题 (1)main (2)函数的首部、函数体 (3){、} (4)main、main (5)语句、分号(;) 4 5选择题 (1) #include <> main() { int a, b, s; float t; printf("Enter A,B=?\n"); scanf("%d%d", &a, &b); s=a+b; t=a*b; printf("s=%d, t=%f\n", s, t); } (2) #include <> main() { printf("=================\n"); printf(" Hello! \n"); printf(" How do you do \n"); printf("=================\n"); } (3) #include <> main() {

int r, h; float v; printf("Enter R, H=?\n"); scanf("%d%d", &r, &h); v=*r*r*h; printf("v=%f\n",v); } 第2章 习题参考答案 一.(略) 二.填空题 (1) ab e d c b b a 2+ + + (2) (3) 16 (4) 10 (5) 16、16、11 (6) 4、10、6 (7) 18、3、3 (8) sin(65*180)+2*( +exp(y))/(x-y) (9) 25、25 (10) 27 (11) 4 (12) 0 四、编程题 1. #include <> main() { int x, a, b, c; printf("Enter a intger number x=?\n"); scanf("%d",&x); a=x /100; b=x%100/10; c=x%10;

《C语言程序设计》课后习题答案(第四版)谭浩强

第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.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } 3-2-1 #include #include int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;

C语言复习题及答案 第七章 数组教程文件

C语言复习题及答案第七章数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ; (1) (1)数组名后必须用方括弧 [ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标 ] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如 int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如 int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ‘’, float 0.0 ; 如 int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。

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

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

C语言程序设计第14章在线测试

A B C D 、以下程序:5) printf( A B C D 、y均为则语句 printf( A B C D 、在函数中定义变量时,若省略存储类型符,系统默认存储类别为 A B C D 、下列选项中关于。 A r egister B 量 C r egister D register

B、p+=2,*++p C、p+=2,*p++ D、p+=2,++*p 2、以下叙述中,错误的叙述是: A、函数的形参都属于全局变量 B、全局变量的作用域不比局部变量的作用域范围大 C、静态(static)类别变量的生存期贯穿整个程序的运行期间 D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值 3、下列选项中关于外部变量的作用域,正确的是( )。 A、外部变量的作用域是所在的源文件 B、外部变量的作用域是整个源程序 C、可以通过extern,将一些外部变量的作用域扩展到多个源文件 D、外部变量若定义为静态的,其他源文件不能使用该外部变量 4、下列选项中关于外部变量,正确的是( )。 A、main函数是主函数,不在main函数内部定义的变量都是外部变量 B、外部变量必须定义在源程序的开始处 C、外部变量必须定义在所有函数的外面 D、定义外部变量时,可以进行初始化 5、下列选项中关于变量的生存期,不正确的描述是( )。 A、auto型变量是静态存储的,其生存期等同于程序的运行期。 B、static变量是动态存储的,函数调用结束时,static变量所占用的内存单 元被释放 C、register变量都是动态存储的 D、外部变量都是静态存储的 第三题、判断题(每题1分,5道题共5分)

《C语言程序设计》第7章 数组

第7章数组 第1次课:2学时 一、教学内容 1、一维数组的定义和引用 2、二维数组的定义和引用 二、教学目标 1.了解一维数组、二维数组的基本概念; 2.掌握数组的定义与引用; 3.掌握数组元素的引用 三、教学重点及难点 重点:数组的定义和引用 难点:数组的定义和引用 四、教学方法 多媒体教学,案例驱动,实例演示,提问。 五、教学过程设计 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 7.1 一维数组的定义和引用 7.1.1 一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型;数组名是用户定义的数组标识符;方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 对于数组类型说明应注意以下几点: (1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 (2) 数组名的书写规则应符合标识符的书写规定。 (3) 数组名不能与其它变量名相同。 (4) 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5 个元素。但是其下标从0 开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 (5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。

大学生C语言程序设计(第四版 谭洪强)实验5答案

实验四参考答案(参考答案) (1) 设计程序sy5-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。 算法分析: 对角线上的元素,1维和2维下标相同,反对角线元素,如果行下标为i,列下标就为2-i; 参考答案: #include int main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int i,j,sum=0; for(i=0;i<3;i++) sum=sum+a[i][i]+a[i][2-i]; //a[i][i]当前行的主对角线元素 //a[i][2-i]当前行的反对角线元素printf("矩阵的正、反对角线元素之和为:%d\n",sum); return 0; } 运行结果: (2) 设计程序sy5-2.c,找出一个3×4的矩阵中的最小值及其位置。 算法分析: 首先把二维数组中的第一个数即a[0][0]看成最小值,然后逐行逐列的去遍历每个元素,逐一判断每一个元素是否比最小值还好小,如果是,就改写最小值,并记录他的下标。 参考答案: #include #include int main() { int a[3][4]={{10,21,41,5},{12,15,46,35},{40,21,26,30}}; int i,j,row,colum,min; printf("数组a:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%5d",a[i][j]);

printf("\n"); } min=a[0][0];row=0;colum=0; //首先把第一个数a[0][0]看成最小数 for(i=0;i<3;i++) //双重循环逐一遍历每个元素a[i][j] for(j=0;j<4;j++) if(min>a[i][j]) //如果当前值a[i][j]比最小值还要小 {min=a[i][j];row=i;colum=j;} //用a[i][j]改写最小值,并记下他们的下标printf("矩阵中最小元素是:%d,行下标是:%d,列下标是%d\n",min,row,colum); return 0; } 运行结果: (3) 设计程序sy5-3.c,定义一个3×3的二维数组,通过随机函数自动赋值。然后输入一个整数n,使数组左下三角(含对角线元素)元素中的值乘以n 。例如:若n的值为3,a 数组中的值为 | 1 9 7 |则程序运行后a数组中的值应为| 3 9 7 | | 2 3 8 | | 6 9 8 | | 4 5 6 | | 12 15 18 | 算法分析: 主要理解到对角线即以下元素包含哪些元素,即他们的下标变化。对每一行i来说,对角线以下的元素,他们的列下标是0,1,2,---,i;所以用外循环i遍历行,内循环j(从0到i),逐一遍历每一个a[i][j],并给a[i][j]赋值为他的n倍。最后输出矩阵。 参考答案: #include #include int main() { int a[3][3]; int i,j,n; printf("原来a的值:"); for(i=0;i<3;i++) //生成数组元素,并按矩阵形式输出 { for(j=0;j<3;j++) {a[i][j]=rand()%20; //rand()参看教材385页 //rand()%20 产生一个20以内的整数

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

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

C语言程序设计1-4、12章习题解答

第1章C语言程序设计概述 1.1一个C程序的执行是从 A 。 A.从main()函数开始,直到main()函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D.main()函数开始,直到最后一个函数结束 1.2在C程序中,main()的位置 C 。 A.必须作为第一个函数B.必须作为最后一个函数 C.可以任意D.必须放在它所调用的函数之后 1.3C语言源程序的基本单位是 B 。 A.过程 B.函数 C.子程序 D.标识符 1.4一个C源程序有且仅有一个一个函数和__零个或多个_____个其他函数。 1.5C语言源程序的语句分隔符是__分号___。 1.6C语言开发的四个步骤是_编辑源程序→对源程序进行编译→与库函数连接→运行 目标程序__ 。 1.7C语言有哪些主要特点? C主要特点有: 1.C语言简洁、紧凑,使用方便、灵活; 2.运算符丰富; 3.数据类型丰富; 4.C语言是结构化语言; 5.语法限制不太严格,程序设计自由度大; 6.可直接与机器硬件打交道,直接访问内存地址; 7.生成的目标代码质量高,程序执行效率高; 8.C语言适用范围广,可移植性好。 1.8简述C编译和运行的基本方法。 略。 1.9常用的集成开发工具有哪些?各有什么特点? 略。 1.10编写一个程序,在屏幕上输出以下内容: *************************** * You are welcome! * *************************** #include void main( ) /*主函数 */ { /*函数体开始*/ printf ("***************************\n"); /*输出语句*/ printf ("* You are welcome! *\n"); printf ("***************************\n"); } 1.11 编写一个C程序,输入a、b、c 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语言程序设计(第2-3章)习题答案(魏为民)

习题2参考答案 一、基础题 1.若二维数组a有m列,则在a[i][j]前的元素个数为: A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 B 2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是: A) char=y&&ch<'B'&&!y)的值是:

郑大远程教育《C语言程序设计》第14章在线测试

《C语言程序设计》第14章在线测试 剩余时间: 59:55 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、以下程序:main( ) {int x=5; if (x--<5) printf(“%d\n”, x); else printf(“%d\n”, x++); },程序运行后,输出结果是:B A、3 B、4 C、5 D、6 2、若int a=5,b=6,c=7,d=8,m=2,n=2; 则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为:C A、0 B、1 C、2 D、3 3、在函数中定义变量时,若省略存储类型符,系统默认存储类别为( )。A A、自动 B、静态

C、外部 D、寄存器 4、下列选项中关于register变量,正确的是( )。A A、频繁存取的自动变量适于定义为register变量 B、外部变量适于定义为register变量 C、存储单元较大的变量,适于定义register变量 D、静态存储的内部变量,适于定义为register变量 5、下列表述中的逗号,作为逗号运算符的是( )。B A、int fun ( int x, int y ); B、x =( x + y, x * x ); C、printf ( "%d%d", x, y ); D、printf ( "Hello, world!" ); 第二题、多项选择题(每题2分,5道题共10分) 1、已知int a[]={1,2,3,4,5,6,7,8,9},*p =a; 则值为3的表达式是()AC A、p+=2,*(p++) B、p+=2,*++p C、p+=2,*p++ D、p+=2,++*p 2、如果全局的外部变量和函数体内定义的局部变量重名,则错误说法为:ACD A、出错 B、局部变量优先 C、外部变量优先

《C语言程序设计》课后习题答案(第四版)谭浩强

第1章程序设计和C语言1 什么是计算机程序1 什么是计算机语言1 语言的发展及其特点3 最简单的C语言程序5 最简单的C语言程序举例6 语言程序的结构10 运行C程序的步骤与方法12 程序设计的任务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

数据类型42 整型数据44 字符型数据47 浮点型数据49 怎样确定常量的类型51 运算符和表达式52 语句57 语句的作用和分类57 最基本的语句——赋值语句59 数据的输入输出65 输入输出举例65 有关数据输入输出的概念67 用printf函数输出数据68 用scanf函数输入数据75 字符数据的输入输出78 习题82 3-1 #include <> #include <> int main() {float p,r,n; r=; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0;

C语言程序设计数组(说课稿)

C语言程序设计——数组(说课稿) 南京浦口中等专业学校—陈松一、课程目标 《C语言程序设计》是中职对口单招计算机专业理论考试和技能考试中一门重要的课程。要求学生掌握计算机编程语言的基本知识,初步掌握程序设计的基本思想,具有基本的C程序设计能力,能比较熟练地阅读、理解和编制简单的C程序。 二、学情分析 本课程是针对综合高中对口单招班高二年级计算机专业的学生,学生已学习了计算机基础和计算机原理课程,对专业知识有了一定的了解。但班级学生参差不齐,不少学生学习习惯较差,基础较薄弱。教师必须首先弄清学生对专业课学习的障碍及原因,再根据教学原理制定出相应的对策,培养学生学习的积极,提高解决实际问题的能力。 三、教材与参考书 本课程使用的教材是《C语言编程基础》(第2版)电子工业出版社。此教材分为两部分,第一部分是基础知识模块,第二部分是选用模块。对口单招学生只学习第一部分内容,第二部分内容单招计算机专业的考纲中是不要求的。 辅导练习: 1、C语言阶段综合测试卷集。 2、自己编写的每次课的学生工作页。

四、教材分析 1、单元内容 数组单元是C语言的一个重要章节,本单元教学内容有: (1)一维数组的定义、引用和初始化、一维数组应用。 (2)二维数组的定义、引用和初始化、二维数组应用。 (3)字符串与字符数组、字符串的输入输出、字符串处理函数、字符数组应用。 2、单元设计 (1)本单元每次课都编写了学生工作页,让学生根据任务去学习本单元内容。 (2)本单元加强了上机实习的课时数,着重培养学生上机实践能力,提高他们的程序设计能力。

3、教学目标 ?知识目标: (1)了解一维数组、二维数值型数组的定义和使用方法。 (2)掌握对数组的初始化。 (3)掌握字符串的输入、输出和处理。 (4)熟练掌握使用数组进行程序设计的方法。 (5)理解程序设计中的几种常见算法的基本思路。 ?技能目标: (1)学生能正确的定义数组;能正确的引用数组和初始化数组;能使用数组进行程序设计。 (2)培养学生的分析、思考能力,提高解决问题的能力。 ?情感目标: (1)通过上机实习调试程序,在学习中培养学生理论联系实际,使学生对编程更加感兴趣。 (2)培养学生认真学习的态度,激发学生学习C语言的兴趣。 4、单元重、难点 ?重点: 数组的定义、引用和初始化。 ?难点: 数组的应用及常见算法的基本思路。

相关文档
最新文档