2016年电大-《c语言程序设计》形成性考核作业()
《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. 2B. 4C. 6D. 8
4. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
A. 0B. 4C. 8D. 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
void main( ) {
int a[10]={12, 39, 26, 41, 55, 63, 72, 40, 83, 95};
int i, i1=0, i2=0;
for(i=0; i<10; i++)
if(a[i]%2==1) i1++; else i2++;
printf("%d %d\n", i1, i2);
}
2.#include
#include
void main( )
{
int i;
char * a[5]={"student","worker","cadre","soldier","peasant"};
char * p1, * p2;
p1=p2=a[0];
for(i=0; i<5; 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
int a[10]={4, 5, 6, 15, 20, 13, 12, 7, 8, 9};
void main( ) {
int i, s0, s1, s2;
s0=