2016年电大-《c语言程序设计》形成性考核作业().doc
文本预览下载声明
《C语言程序设计》作业2
一、选择题
1. 在下面的一维数组定义中,( )语句有语法错误。
A. int a[ ]={1,2,3}; B. int a[10]={0}; C. int a[ ]; D. int a[5];
2. 在下面的二维数组定义中,( )语句是正确的。
A. int a[5][ ]; B. int a[ ][5]; C. int a[ ][3]={{1,3,5},{2}}; D. int a[ ](10);
3. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( )。
A. 2 B. 4 C. 6 D. 8
4. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
A. 0 B. 4 C. 8 D. 6
5. 将两个字符串连接起来组成一个字符串时,选用( )函数。
A. strlen( ) B. strcap( ) C. strcat( ) D. strcmp( )
二、填空题
1. 假定一维数组的定义为“char * a[8];”,则该数组所含元素的个数为 。
2. 假定一维数组的定义为“char * a[8];”,则该数组所占存储空间的字节数为 。
3. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为 。
4. 假定二维数组的定义为“double a[M][N];”,则该数组所含元素的个数为 。
5. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在 之间。
6. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在 之间。
7. 使用“typedef char BB[10][50];”语句定义 为含有10行50列的二维字符数组类型。
8. 存储字符a需要占用存储器的 个字节空间。
9. 空字符串的长度为 。
10. 存储一个空字符串需要占用 个字节。
11. 字符串a:\\xxk\\数据的长度为 。
12. 用于存储一个长度为n的字符串的字符数组的长度至少为 。
13. strcmp函数用于进行两个字符串之间的 。
14. strcpy函数用于把一个字符串 到另一个字符数组空间中。
15. 一个二维字符数组a[10][20]能够存储 个字符串。
16. 一个二维字符数组a[10][20]能够存储的每个字符串的长度至多为 。
三、写出下列每个程序运行后的输出结果
1. #include stdio.h
void main( ) {
int a[10]={12, 39, 26, 41, 55, 63, 72, 40, 83, 95};
int i, i1=0, i2=0;
for(i=0; i10; i++)
if(a[i]%2==1) i1++; else i2++;
printf(%d %d\n, i1, i2);
}
2. #include stdio.h
#include string.h
void main( )
{
int i;
char * a[5]={student,worker,cadre,soldier,peasant};
char * p1, * p2;
p1=p2=a[0];
for(i=0; i5; i++) {
if(strcmp(a[i], p1)0) p1=a[i];
if(strcmp(a[i],p2)0) p2=a[i];
}
printf(%s %s\n,p1,p2);
}
3. #include stdio.h
int a[10]={4, 5, 6, 15, 20, 13, 12, 7, 8, 9};
void main( ) {
int i, s0, s1, s2;
s0=s1=s2=0;
for(i=1; i10; i++)
显示全部