c语言数组问题
他们是_ _ _ _ _ _ _ _ _。
a[0] a[1] a[2] a[3] a[4]
┌──┬──┬──┬──┬──┐
│ 10│ 20│ 30│ 40│ 50│
└──┴──┴──┴──┴──┘
B) 20和31
题目是数值增加,不是指针增加。
2、有以下程序
# include & ltstdio.h & gt
void main()
123 abcdefg * & amp;;
int j;长s = 0;
卖出(ch);
for(j = 0;ch[j]& gt;'\0';j++)
if(ch[j]& gt;= ' a ' & amp& ampch[j]& lt;= ' z ')ch[j]= ch[j]-' B '+' B ';
卖出(ch);
}
这个程序的功能是_ _ _ _ _ _。
c)将字符数组ch中的小写字母转换成大写字母。
大写字母和小写字母的差距是一定的,即-'b'+'B '和-'a'+'A '的结果是一样的。
3.请阅读程序片段(字符串中没有空格字符):
printf("%d\n ",strlen(" ATS \ n 012 \ 1 \ \ ");
上述程序片段的输出结果是_ _ _ _ _ _ _ _ _。
B) 10
\n和\ \只能算作一个字符。
4.当执行以下程序并输入ABC时,输出结果是_ _ _ _ _ _ _ _ _。
# include & ltstdio.h & gt
# include & ltstring.h & gt
void main()
{ char ss[10]= " 12345 ";
strcat(ss,“6789”);
gets(ss);printf("%s\n ",ss);
}
A) ABC
因为ss的值被替换了。
5.下列数组定义不正确:_ _ 10125030240 _ _。
D) int a[3][]={{1,2},{1,2,3},{1,2,3,4 } };
在C语言中,只有最左边数组的长度可以不定义,长度必须从多维数组的第二位开始定义。
6.下列对阵列的描述是_ _ _ _ _ _ _ _。
c)数组的大小是固定的,所有数组元素必须是同一类型。
c语言数组大小是固定的。然而,C99标准允许定义可变长度数组。
7.下列程序的输出是_ _ _ _ _ _ _ _ _。(设a[0][0]是数组A中的第1个元素)
# include & ltstdio.h & gt
void main()
{int a[4][5]={1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5 };
int i,j,i1,j1,n;
n =-4;
for(I = 0;我& lt4;i++)
{ for(j = 0;j & lt5;j++)
if(a[I][j]= = n){ I 1 = I;j 1 = j;}
}
printf("%d是a的第%d号\n ",n,I 1 * 5+j 1+1);
}
b)数组a中n的最后一个位置。
因为下标比位置小1,又因为第一次检查N后没有跳出循环,所以会再次把值赋给i1 j1,直到N不再出现。
8.下面的程序统计了三个学生四门课的考试成绩,要求输出每个学生的平均分和三个学生的总分。正确的说法是_ _ _ _ _ _。
# include & ltstdio.h & gt
void main()
{ int stu[3][4],I,j,t[3];
浮点求和=0,a[3];
for(I = 0;我& lt3;i++)
for(j = 0;j & lt4;j++) scanf("%d ",& ampstu[I][j]);
for(I = 0;我& lt3;i++)
{ t[I]= 0;a[I]= 0;
for(j = 0;j & lt=3;j++)
{ sum+= stu[I][j];
t[I]+= stu[I][j];
printf("%-6d ",stu[I][j]);}
a[I]= t[I]/3;
printf("%-6.2f\n ",a[I]);
}
printf("sum = %f\n ",sum);
}
d)从键盘输入成绩的顺序是根据学生的输入。
因为j在内层循环
10.如果想让下面的程序运行后输出45,正确选择程序空白的是_ _ _ _ _ _。
# include & ltstdio.h & gt
void main()
{ int i,j=10,a[ ]={1,3,5,7,9,11,13,15 };
对于(_ _ _ _ _ _ _ _ _ _ _ _ _)
j+= a[I];
printf("%d\n ",j);
}
c)I = 5;我& gt=1;[构成来自拉丁语、结尾为-us的名词的复数]
在这里,我和我其实是一样的。