一 、选择题
1.以下数组定义中,错误的是:C)int a[3]={1,2,3,4};
2.以下数组定义中,正确的是:B) int a[][2]={1,2,3,4};
3.设有定义“int a[8][10];”,在VC中一个整数占用4字节,设a的起始地址为1000,则a[1][1]的地址是:D)1044
4.已知有数组定义“int a[][3]={1,2,3,4,5,6,7,8,9};”,则a[1][2]的值是:C)6
5.在以下字符串定义、初始化和赋值运算中,错误的是:A) char str[10];str=”String”;
6.设有以下字符串定义,
char s1[]={‘S’,’t’,’r’,’i’,’n’,’g’};
char s2[]=”String”;
则s1和s2:C)长度不同,但内容相同。
7.设有定义“int a[10]={0};”,则说法正确的是:A)数组a有10个元素,各元素的值为0.
8.设已定义“char str[6]={‘a’,’b’,’\0’,’c’,’d’,’\0’};”,执行语句“printf(“%s”,str)”后,输出结果为:B)ab
9.引用数组元素时,数组元素下标不可以是:C)字符串
10.已定义字符串S1和S2,以下错误的输入语句是:C)gets(s1,s2);
11.下面程序段的运行结果是:A)123
void main()
{
char a[]=”abcd”,b[]=”123”;
strcpy(a,b);
printf(“%s\n”,a);
}
12.下面程序段的运行结果是:A)123
void main()
{
char a[]=”123”,b[]=”abcd”;
if(a>b)printf(“%s\n”,a);
else printf(“%s\n”,b);
}
二、编程题
1.一维数字a的值已经,请把数组中的值按逆序存放,然后输出数组。例如数组中原来的值为3,4,2,1,6,颠倒后变成6,1,2,4,3.
#include
main()
{
int i,a[5]={2,3,45,12,5},t;
printf("转换前:");
for(i=0;i<5;i++)
printf("%d\t",a[i]);
for(i=0;i<5/2;i++)
{
t=a[i];