C语言基础习题及答案6

第六章  数组 

一、选择题

1、在C语言中,引用数组元素时,其数组下标的数据类型允许是 。

A、  整型常量

B、  整型表达式

C、  整形常量或整形表达式

D、  任何类型的表达式

2、以下对一维整型数组a的正确说明是____

A、  int a(10) ;

B、  int n=10,a[n];

C、  int n;

scanf(“%d”,&n);

 int a[n];

D、#define SIZE 10

 int a[SIZE];

3、若有定义:int a[10],则对数组a元素的正确引用是 

A、  a[10]  B、a[3.5] C、a(5) D、a[10-10]

4、以下能对一维数组a进行正确初始化的语句是 。

A、  int a[10]={0,0,0,0,0}; 

B、  int a[10]={} ;

C、  int a[ ] = {0} ;

D、  int a[10]={10*1} ;

5、若有定义:int a[3][4],则对数组a元素的正确引用是________

A、  a[2][4] B、a[1,3] C、a(5) D、a[10-10]

6、以下能对二维数组a进行正确初始化的语句是_______

A、  int a[2][]={{1,0,1},{5,2,3}} ;

B、  int a[][3]={{1,2,3},{4,5,6}} ;

C、  int a[2][4]={{1,2,3},{4,5},{6}} ;

D、  int a[][3]={{1,0,1},{},{1,1}} ;

7、若有说明:int a[3][4]={0};则下面正确的叙述是_______

A、  只有元素a[0][0]可得到初值0

B、  此说明语句不正确

C、  数组a中各元素都可得到初值,但其值不一定为0

D、  数组a中每个元素均可得到初值0

8、下面是对s的初始化,其中不正确的是_____

A、  char s[5]={“abc”};

B、  char s[5]={‘a’,’b’,’c’,’d’,’e’,’\ 0’};

C、  char s[5]=” ”; 

D、  char s[5]=”abcdef”;

 

二、程序填空

1、以下程序把一个由小到大的有序数列放在a[1]到a[n]中,a[0]用作工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍然的序。请填空,完善程序。

#include

{int a[10]={0,12,17,20,25,28},x,i,n=5;

Printf(“enter a number”);

Scanf(“%d”,&x);

a[0]=x;i=n;

while(a[i]>x)

{a[____ (1)____ ]=a[i];

______(2)___________;

}

a[___(3)____]=x;n++;

for(i=1;i<=__(4)_______;i++)

printf(“M”,a[i]);

printf(“\n”);

}

 

三、编程题

1、用选择法对10个整数排序(从小到大)

2、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,中文字母,中文字符,数字,空格及其他字符的个数。(提示:中文字符是两个字节,且数值均大于128的字符)。

3、将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。

 

参考答案

一、选择题

1、A  2、D  3、A  4、A   5、A  6、B  7、D  8、A

二、程序填空

(1)  i+1

(2)  i=i-1

(3)  ++i

(4)  n

二、编程题

1、  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”);

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

 Printf(“]”,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 number:\n”);

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

Printf(“]”,a[i]);

}

2、  main()

{int i,j,upp,low,dig,spa,oth;

Char text[3][80];

Upp=low=dig=spa=oth=0;

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

 {printf(“\nplease input line %d:\n”,i++);

 Gets(text[i]);

For(j=0;j<80&&text[i][j]!=’\0’;j++)

 {if(text[i][j]>’A’&&text[i][j]<=’Z’)

 Upp++;

 Else if(text[i][j]>=’a’&&text[i][j]<=’z’)

Low++;

 Else if(text[i][j]>=’0’&&text[i][j]<=’9’)

 Dig++;

 Else if (text[i][j]= =’ ‘)

 Spa++;

 Else

 Oth++;

 }

 }

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

 Printf(“%s\n”,text[i]);

 Printf(“upper case:%d\n”,upp);

  Printf(“upper case:%d\n”,low);

 Printf(“digit:%d\n”,dig);

Printf(“space:%d\n”,spa);

Printf(“other:%d\n”,oth);

}

3、#define N 5

 Main()

 {int a[N],i,temp;

 Printf(“enter array a:\n”);

 For(i=0;i

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

 Printf(“array a:\n”);

 For(i=0;i

Printf(“M”,a[i]);

 For(i=0;i)

{temp=a[i];

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

a[N-i-1]=temp;

}

Printf(“\n now,array a:\n”);

For(i=0;i

Printf(“M”,a[i]);

Printf(“\n”);

}

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值