第六章 数组
C06-01
下面对数组定义正确的是:
int b[] int b[n],n=5 int b[10/2] int b[4.8]
若有定义语句:int a[10];则下列对a中数组元素正确引用的是
a[10/2–5] a[10] a[4.5] a(1)
能对一维数组正确初始化的语句是:
int a[6]={6*1} int a[6]={1,,,3} int a[6]={} int a[6]=(0,0,0)
定义数组:int n=10; int a[n];则数组a有10个元素
对 错
如果定义数组int b[6]={1,2,3,4};则b[6]为0
对 错
如果想使一个数组中全部元素的值为1,可以写成 int a[10]={1*10}
对 错
若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是:
12 20 40 80
若定义数组int a[10] ,其最后一个数组元素为a[10]
对 错
如下定义一个数组:int a[30]; double i=20;则有数组元素a[i]
对 错
有n(0<=n<=100)个整数要存储,可以这样定义数组吗?
int n;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
对 错
C06-02
int main()
{
int p[7]={11,13,14,15,16,17,18}, i=0,k=0;
while(i<7 && p[i]%2) {
k =k+ p[i]; i++; }
printf("%d", k);
return 0;}
58 56 45 24
条件:i<7&&p[i]%2,说明i要小于7并且p[i]是要奇数是初i=0所以可看出,i=0,i=1时, 经过的while循环当i=2时,p[2]=14不是奇数,则结束循环而p[0]=11,p[1]=13则k=24
有定义语句“int a[5],i;",输入数组a的所有元素的语句应为:
scanf("%d%d%d%d%d",a[5]); scanf("%d",a);
for(i=0;i<5;i++)scanf("%d",a+i); for(i=0;i<5;i++)scanf("%d",a[i]);
下面程序中有错误的行是______。
1、 main( )
2、 {
3、 int x[3];
4、 int k;
5、 scanf("%d", &x);
6、 for (k=1; k<3; k++)
7、 x[0]=x[0]+x[k];
8、 printf("x[0]=%d\n", x[0]);
9、 }
3 5 6 7
#include <stdio.h>
void main()
{ int a[10]={11,2,3,24,25,16,7,18,23,10};
int k,s,i;
float ave;
for(k=s=i=0;i<10;i++)
{ if(a[i]%2==0) continue;
s+=a[i];
k++; }
if(k!=0)
{ ave=s/k;
printf("k is:%d,ave is :%f\n",k,ave);
}}
k is:10,ave is :13.000000 k is:5,ave is :13.000000
k is:5,ave is :14.000000 k is:5,ave is :13.800000
void main()
{
int n[3],t,j,k;
for(t=0;t<3;t++)
n[t]=0;
k=2;
for(t=0;t<k;t++)
for(j=0;j<3;j++)
n[j]=n[t]+1;
怎么定义二维数组c语言 printf("%d",n[1]);}
2 1 0 3
C06-03
以下能正确定义二维数组的语句为:
int a[][] int a[][4] int a[3][] int a[3][4]
若有数组定义语句“int a[4][5];”,则对a中数组元素的正确引用是:
a[4][1] a[2,1] a[4][5] a[4–1][5–5]
以下能对二维数组a进行正确初始化的语句为:
int a[2][ ]={{1},{4,5}} int a[2][3]={1,2,3,4,5,6,7}
int a[ ][ ]={1,2,3,4,5,6} int a[ ][3]={1,2,3,4,5}
设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是:
2 3 4 无确定值
若二维数组y有m列,则在y[i][j]前的元素个数为:
j*m+i i*m+j i*m+j-1 i*m+j+1
若有数组定义语句:int a[4][5]; 其中第10个数组元素怎么表示?
a[2][0] a[2][5] a[1][4] a[1][5]
定义一个二维数组并进行初始化:int a[2][3]={{1,2,3,4},{0,0}};
对 错
如下两个定义一样:
int a[2][3]={{1,2},{3,4,}};和 int a[2][3]={1,2,3,4};
对 错
C06-04
int main(){
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",s);
return 0;}
11 19 13 20
有如下定义:float ff[5][6]; int i,j; 怎么输入整个数组呢?
for(i=0;i<5;i++)
for(j=0;j<6;j++)
scanf("%f",ff[i][j]);
scanf("%f",ff);
for(i=0;i<5;i++)
for(j=0;j<6;j++)
scanf("%f",&ff[i][j]);
for(i=1;i<=5;i++)
for(j=1;j<=6;j++)
scanf("%f",&ff[i][j]);
void main() {
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)
t=t+b[i][b[j][j]];
printf("%d",t); }
3 4 1 9
int j;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for (j=0;j<3;j++)
printf("%d ",x[j][2-j]);
输出结果是:
1 5 9 1 4 7 3 5 7 3 6 9
产生并输出杨辉三角的前七行。 空格处应填():
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
#include<stdio.h>
void main ( ){
int a[7][7];
int i,j,k;
for (i=0;i<7;i++) {
a[i][0]=1;
a[i][i]=1; }
for (i=2;i<7;i++)
for (j=1;j<i;j++)
a[i][j]= ___________;
for (i=0;i<7;i++) {
for (j=0;i+1>j;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
a[i][j-1]+a[i][j] a[i-1][j-1]+a[i-1][j] a[i-1][j]+a[i-1][j+1] a[i][j]+a[i][j+1]
C06-05
下列对字符数组的初始化不正确的是:
char s[5]="abc"; char s[5]={'a','b','c','d','e'};
char s[5]="abcde"; char s[]="abcde";
有定义语句:int b; char c[10];,则正确的输入语句是:
scanf("%d%s",&b,&c); scanf("%d%s",&b,c);
scanf("%d%s",b,c); scanf("%d%s",b,&c);
设已定义char c[10]="Hangzhou"和int j,则下面的输出函数调用中错误的是:
printf("%s",c); for(j=0;j<10;j++) printf("%c",c[j]);
puts(c); for(j=0;j<10;j++) puts(c[j]);
#include<stdio.h>
int main( )
{ char a[]="abcdefg",b[10]="abcdefg";
printf("%d %d",sizeof(a),sizeof(b));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论