C语言第6章_数组2
- 格式:ppt
- 大小:2.05 MB
- 文档页数:63


第 1 页 共 6 页 1. 下面程序段的运行结果是 FK 。(5分)
main()
{char w[][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”};
for(int k=1;k<3;k++)
printf(“%c\n”,w[k][k]);
}
2. 下面程序段的运行结果是 6 。(8分)
main()
{char ch[7]={“65ab21”};
int i,s=0;
for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
}
3. 下面程序段的运行结果是 Hello 。(5分)
main() 第 2 页 共 6 页 {char b[]=”Hello,you”;
b[5]=0;
printf(“%s\n”,b);
}
4.若有一维数组初始化语句float b[20]={1.8,3.2,4.3,5.7,8.2,9.5};且数组的起始地址为8050H,则8058H是数组元素 4.3 的起始地址。 (5分)
5.设已包含头文件,下面程序段的运行结果是 h 。(6分)
char s1[10]="ChangChun" ;
char s2[6]="JiNan";
strcpy(s1,s2);
printf("%c",s1[6]);
6.若字符数组a[20]中存放着一个字符串,且a[10]=‘\0’(第一次出现的),则该字符串的长度是 11 。(5分)
7.下面的程序段运行后, 输出结果是 16 。(8分)
int i, j, x=0;
static int a[9][9]; 第 3 页 共 6 页 for (i=0; i<4; i++)
第六章 数组
学习和解题要点
1.要学习和掌握C语言的数组问题,首先必须形成这么一个观念,当用数组定义语句:
[存储类型] 数据类型 数组名[长度];定义一个数组时,表明请求计算机在内存开辟一个大的空间,该空间的名字即为数组名,同时数组名也是该空间在内存的起始地址。空间的大小由“长度”决定,因此“长度”必须是正整常数明确确定。即使是N,该N也必须在前面的#define N中明确指明是多少。该空间可放“长度”个同一类型的数据。放什么样的数据由数据类型指定。
如:int a[10]; 表明内存地址为a 放10个整数,每个小空间为a[0],a[1],……,a[9]
a
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
↘
2. 有的想用下面的方法定义任意大小的数组:
int n;
scanf(“%d”,&n);
int a[n];
认为从键盘输入一多少大整数给n,则就定义多少大的数组。这也是错误的。因为C语言规定,执行语句以后,就不能再出现定义语句。这种根据程序的需要随时申请空间的称为“动态数据结构”,要用以后的结构类型和指针来解决。
3. 可在定义数组的同时,马上就赋初值。也可由初值的个数决定数组的大小。如:
int a[]={1,2,3,4,5,6,7,8,9,10};
4. 对数值型的数组操作,只能一个元素一个元素的使用,每一的元素的使用都可以看成一个变量的使用,称之为带下标的变量,而决不允许用数组名。如 a[i] 当i为多少时即为那一个元素。在程序中要时时注意现在是对那一个元素操作,如在教材中的“冒泡排序法”和“选择排序法”的程序中要注意现在下标是那一个元素。注意:定义中的int
a[10] 表示共10个元素,而程序中的a[10]表示带下标的变量。
5.二维数组的定义与一维一样,必须有二个正整常数明确确定,我们可以看成多少行和多少列个元素,如果在定义数组的同时赋初值,则第一维的长度可以省略。无论如何,第二维的长度决不能缺省。
C程序设计第05章(数组)作业答题纸 第 1 页 共 4 页 C程序设计第05章(数组)作业答题纸
学号 119064257 姓名 葛冉浩 班级 电112
一、选择题:
1~5: DCABB 6~8:DCC
二、写出下列程序的输出结果或填空题:
9、2;2;\0
10、5
11、a[k][k]
12、1;a[20]
13、a[m];k<12
14、
*
***
*****
*******
*********
15、 1 1 1
16、a[0]=3
C程序设计第05章(数组)作业答题纸 第 2 页 共 4 页 a[1]=2
a[2]=3
a[3]=3
a[4]=3
a[5]=2
a[6]=3
a[7]=2
三、编程题:
17、已知整型数组a中有10个元素,整型数组b中有6个元素。编程将那些在数组a中而不在数组b的数据组成新数组c并输出。
#include "stdio.h" void main() {int a[10],b[6],c[10]; int i,j,t=-1; for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n"); for(j=0;j<6;j++)scanf("%d",&b[j]);printf("\n"); for(j=0;j<6;j++) {if(a[i]==b[j])break; if(j>=6){t++;c[t]=a[i];} } for(i=0;i<=t;i++) printf("c=%d",c[i]); }
18、已知a是3×4的整型二维数组,编程求数组a中所有外围元素之和。
#include "stdio.h" void main() {int i,j,sum=0,a[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]);
C语言程序设计 练习题参考答案 第四章(1) 一维数组
/* 4.11 fibonacci数列,前15项1,1,2,3,5,。。。。。*/
#include "stdio.h"
void main()
{
int f[15]={1,1}, i;
for(i=2;i<=14;i++) /* 计算 */
f[i]=f[i-2]+f[i-1];
printf("fibonacci数列,前15项\n"); /* 输出 */
for(i=0;i<=14;i++)
{
printf("%5d",f[i]);
if((i+1)%5==0)
printf("\n");
}
}
/* 4.12 数组元素前移动一个位置 */
#include "stdio.h"
void main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i,t;
printf("\n移动之前:\n");
for(i=0;i<=9;i++)
printf("%3d",a[i]);
/* 移动 */
t=a[0];
for(i=0;i<=9;i++)
a[i]=a[i+1];
a[9]=t;
printf("\n移动之后:\n");
for(i=0;i<=9;i++)
printf("%3d",a[i]);
}
/* 4.13 有序数列中插入若干个数,仍然保持有序 */
#include "stdio.h"
void main()
{
int a[100]={1,4,8,10};
int i,k,x,count=4;/* i,k 循环变量, x 输入整数,count 有多少整数*/