c语言数组部分练习

数组

一、选择题

1、若有以下说明语句:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是(d)。

A)a[g-c]           B)a[4]         C)a[‘d’-‘c’]           D)a[‘d’-c]

2、假设int型变量占两个字节的存储单元,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数为(d)。

A)3                B)6            C)10               D)20

3、下列合法的数组定义是(d)。

A)int a[]=”string”;                  B)int a[5]={0,1,2,3,4,5};

C)char a=”string”;                   D)char a[]={0,1,2,3,4,5};

4、若给出定义:char x[]=”abcdefg”;char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};则正确的叙述为(c)。

A)数组x和数组y等价               B)数组x和数组y的长度相同

C)数组x的长度大于数组y的长度     D)数组y的长度大于数组x的长度

6、下列程序运行后的输出结果是(d)。N0=n0+1 1,n1=n0+1 2,n2=n0+1 2,n0=n1+1,n1=n1+1,n2=n1+1

#include

int main()

{

    int n[3],t,j,k;

    for(t=0;t<3;t++)

        n[t]=0;

   k=2;

   for(t=0;t

        for(j=0;j<3;j++)

            n[j]=n[t]+1;

        printf("%d\n",n[1]);

}

A)2                B)1            C)0                D)3

7、有以下程序,执行后输出结果是(d)。

#include

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\n", k);

}

A)58           B)56           C)45           D)24

9、有以下程序,执行后输出结果是(a)。

#include

int main()

{

    int m[][3]={1,4,7,2,5,8,3,6,9};

    int i,j,k=2;

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

    {

        printf("%d ",m[k][i]);

    }

}

A)4 5 6            B)2 5 8            C)3 6 9         D)7 8 9

10、以下能正确定义一维数组的选项是(b)。

A)int num[];                           B) #define N 100

int num[N];

C)int num[0..100];                     D) int N=100;

int num[N];

11、有以下程序,执行后输出结果是(c)。

#include

int main( )

    char a[]="abcdefg",b[10]="abcdefg";

    printf("%d  %d\n",sizeof(a),sizeof(b));

A)7  7           B)8 8         C)8 10            D)10 10

12、若有以下定义语句:char s[10],s=”abcd”;printf(“%s\n”,s);则运行结果是( d)。

A)输出abcd        B)输出a            C)输出ab cd        D)编译不通过

13、不能把字符串“Hello!”赋给数组b的语句是(b)。

A)char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’};           

B)char b[10];b=”Hello!”;

C)char b[10]; strcpy(b,”Hello!”);           

D)char b[10]=”Hello!”;

14、若有以下程序段,该程序段的输出结果是(a)。

char str[]=”ab\n\012\\\””;

printf(“%d”,strlen(str));

A)3               B)4                 C)6                D)12

15、下列程序的输出结果是(c)。

 #include

main()

{

    char ch[7]={"65ab21"};

    int j,s=0;

    for(j=0;ch[j]>='0'&&ch[j]<='9';j+=2)

        s=10*s+ch[j]-'0';

    printf("%d\n",s);

}

A)12ba56           B)66521            C)6                D)62

//16、设已定义char s[]=”\”Name\\Address\”\n”;,则字符串s所占的字节数是(a)。?

A)19               B)18               C)16               D)14

17、设已定义char c[8]=”Tianjin”和int j,则下面的输出函数调用中错误的是( d)。

A)printf(“%s”,c);                B)for(j=0;j<8;j++) printf(“%c”,c[j]);

C)puts(c);                         D)for(j=0;j<8;j++) puts(c[j]);

18、设已定义char a[10]和 int j,则下面输入函数调用中错误的是(b)。

A)scanf(“%s”,a);                 B)for(j=0;j<9;j++) scanf(“%c”,a[j]);

C)gets(a);                         D)for(j=0;j<9;j++) scanf(“%c”,&a[j]);

19、设已定义char x[8]和int j,为了给该数组赋值,下面语句中正确的是(d)。

A)x[8]=”Turbo C”;               B)x=” Turbo C”;

C)x[]=”Turbo C”;                D)for(j=0;j<7;j++) x[j]=getchar();

20、有如下程序,该程序的输出结果是(d)。

#include

main()

{

    int n[5]={0,0,0},j,k=2;

    for(j=0;j

        n[j]=n[j]+1;

    printf("%d\n",n[k]);

}

A)不确定的值           B)2            C)1            D)0

程序编写

请编写一个程序,它的功能是:将字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

#include
#include
#include
int main(int argc, const char *argv[])
{
	char str[]="asdfdfadsfadsdfa";
	for(int i=1;i='a')
			str[i]=str[i]-('a'-'A');
	printf("%s\n",str);

	return 0;
}

你可能感兴趣的:(c语言,算法,linux)