参考答案和解析
*((s++)+i)
更多“已知: char s[100]; int i=10; 则在下列引用数组元素的语句中,错误的表示形式是:”相关问题
  • 第1题:

    已知C源程序如下: include include void reverse(char S[]){ int C,i,J; f

    已知C源程序如下:

    include<stdio. h>

    include<string. h>

    void reverse(char S[]){

    int C,i,J;

    for(i=0,j=strlen(s)-1;i<j;i++,j++){

    c=s[i];

    s[i]=s[j];

    s[j]=c;

    }

    }

    void getHex(int number,char s[]){

    int I;

    i=0;

    while(number>0){

    if(number%16<10)

    s[i++]=number%16+'0';

    else

    switch(number%16){

    case 10:s[i++]='A';break;

    case 11:s[i++]='B';break;

    case 12:s[i++]='C';break;

    case 13:s[i++]='D';break;

    case 14:s[i++]='E';break;

    case 15:s[i++]='F';break;

    default:printf("Error");break;

    }

    number/=16;

    }

    s[i]:'\o';

    reverse(s);

    }

    int main(){

    unsigned int number;

    int i=0:

    char s[50];

    printf("%s","please input number;\n");

    scanf("%d",&number):

    getHex(number,s);

    i=0;

    while(s[i])

    printf("%c",s[i++]);

    return 0;

    }

    画出程序中所有函数的控制流程图。


    正确答案:流程图
    流程图

  • 第2题:

    下列程序是用来判断数组中特定元素的位置所在,则输出结果为includeinclude

    下列程序是用来判断数组中特定元素的位置所在,则输出结果为 #include<conio.h> #include<iostream.h> int fun(int * s,int t,int * k) { int i; *k=0; for(i=0;i<t;i++) if(s[ * k] <s[i] ) *k=i; retum s[ * k] ;} void main( ) { int a[10] ={876,675,896,101,301,401,980,431,451,777},k; fun(a,10,&k) ; cout < < k < < ',' < < a[k] ;}

    A.7,431

    B.6

    C.980

    D.6,980


    正确答案:D
    解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应认为
    * k的值为数组中的某一下标值,即 * k=0。

  • 第3题:

    下列各个选项中对字符数组赋字符串的语句中,错误的是( )。

    A.char s[10];s="program";

    B.char s[]="program";

    C.char s[10]="program";

    D.char s[10]; strcpy(s,"program");


    正确答案:A

  • 第4题:

    下列程序的输出结果是______。 char*fun(char*str,int n) { int i; char*p=str; for(i=0;i<10;i++,str++) *str='a'+i; return++p; } main() { char a[10]; printf("%s\n",fun(a,10)); }

    A.ABCDEFGHIJ

    B.abcdefghij

    C.bcdefghij

    D.不确定的值


    正确答案:C
    解析:调用函数fun使字符数组中的内容是"abcdefghij",函数的返回值是字符数据的地址,该地址指向数组的第二个字符,因此,主函数的输出结果是字符串 "bcdefghij"。

  • 第5题:

    若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )。A.AB.B

    若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )。

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    变量不能充当数组定义的长度。所以A)错误。

  • 第6题:

    若有以下定义和语句,且0<=I<10,则对数组元素的错误引用是 ( )

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

    int*p,I

    p=a;

    A.* (a+I)

    B.a[p-a]

    C.p+I

    D.* (&a[I])


    正确答案:C

  • 第7题:

    下列引用的定义中,( )是错误的。

    A.int i; int &j=i;

    B.int i; int &j; j=i;

    C.float i; float &j=i;

    D.chard; char &k=d;


    正确答案:B

  • 第8题:

    若有定义:int a[4][10];,则以下选项中对数组元素a[i][i]引用错误的是______。(0<=i<4,0=i<10)

    A.*(&a[0][0]十10*i+j)

    B.*(a+i)+j

    C.*(a+i)+j)

    D.*(a[i]+j)


    正确答案:B
    解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。

  • 第9题:

    若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是().

    • A、gets(a);
    • B、scanf("%s",a);
    • C、for(i=0;i<10;i++)a[i]=getchar();
    • D、a=getchar();

    正确答案:D

  • 第10题:

    下列定义数组的语句中正确的是().

    • A、#define size 10  char  str1[size],str2[size+2];
    • B、char str[];
    • C、int num[’10’];
    • D、int n=5; int a[n][n+2];

    正确答案:A

  • 第11题:

    若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是( ).

    • A、gets(a);
    • B、scanf("%s",a);
    • C、for(i=0;i<10;i++)a[i]=getchar();
    • D、a=getchar();

    正确答案:D

  • 第12题:

    填空题
    在默认情况下,如下数组声明语句中 Dim s(4,4) As Integer,第二个数组元素的引用形式是()。

    正确答案: s (1,1)
    解析: 暂无解析

  • 第13题:

    下列定义语句中,错误的是

    A.int px*;

    B.char*acp[10];

    C.char(*pac)[10];

    D.int(*p)();


    正确答案:A
    解析:B项定义了一个指针数组,正确。C项定义了一个指向字符数组的指针,即数组指针,正确。D项定义了一个指向返回值为整型量的函数的指针,即函数指针,正确。A项定义语句错误,本题选A。

  • 第14题:

    下列程序是用来判断数组中特定元素的位置所在的。includeincludeint fun(int

    下列程序是用来判断数组中特定元素的位置所在的。 #include<conio.h> #include<stdio.h> int fun(int *s,int t,int *k) {int i; *k=0; for(i=0;i<t;i++) if(s[*k]<s[i])*k=i; returns[*k];} main() { int a[10]={876,675,896,101,301,401,980,431,451,777},k; fun

    A.7,431

    B.6

    C.980

    D.6,980


    正确答案:D
    解析: 本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

  • 第15题:

    若有定义:int a[4][10];,则以下选项中对数组元素a[i][j]引用错误的是_______。 (0<=i<4,0<=j<10)

    A.*(&a[0][0]+10*i+j)

    B.*(a+i)+j

    C.*(*(a+i)+j)

    D.*(a[i]+j)


    正确答案:B
    解析:本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。

  • 第16题:

    以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:includefind

    以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空: #include<stdio.h> findmax(int*s,int t,int*k) { int p; for(p=0,*k=p;p<t;p++) if(s[p]>s[*k])________; } main() { int a[10],i,k; for(i=0;i<10;i++)scanf("%d",&a[i]); findmax(a,10,&k); printf("%d,%d\n",k,a[k]); }

    A.k=p

    B.*k=p-s

    C.k=p-s

    D.*k=p


    正确答案:D
    解析:k是—个指针,它的值是—个地址,要通过它为主函数的变量改变数据,必须使用*p,边样就可以把—个下标数赋给p指针指向的那个内存单元,所以横线处应填入*k=p。

  • 第17题:

    下列引用的定义中,( )是错误的。

    A.int i; int &j=i;

    B.int i; int &j; j=i:

    C.float i; float &j=i;

    D.char d; char &k=d;


    正确答案:B

  • 第18题:

    以下定义语句中,错误的是 ______。

    A.int a[]={1,2);

    B.char *a[3];

    C.char s[10]= "test";

    D.Int n=5,a[n];


    正确答案:D

  • 第19题:

    下列引用的定义中,( )是错误的。

    A.int i; int &j=i

    B.int i; int &j;

    C.float i; int &j; j=i

    D.char d; char &k=d;


    正确答案:B

  • 第20题:

    若有下面的程序片段: int[12]={0},*p[3],**pp,i; for(i=0;i<3;i) p[i]=&a[i*4]; pp=p; 则对数组元素的错误引用是


    正确答案:C
    C

  • 第21题:

    若有定义:“int x[10],*p,p=x;”,则在程序中引用数组元素x[i]的四种形式中,除了x[i]、p[i]和*(p+i)以外,还有()


    正确答案:*(x+i)

  • 第22题:

    在默认情况下,如下数组声明语句中 Dim s(4,4) As Integer,第二个数组元素的引用形式是()。


    正确答案:s (1,1)

  • 第23题:

    单选题
    设有定义:int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;若0≤i≤9,则对a数组元素的引用错误的是(  )。
    A

    a[10]

    B

    *(&a[i])

    C

    p[i]

    D

    a[p-a]


    正确答案: B
    解析:
    长度为n的数组其各个元素的下标应该是从0到n-1,因此,长度为10的数组a,第10个元素为a[9],而不是a[10],答案选择A选项。

  • 第24题:

    填空题
    若有定义:“int x[10],*p,p=x;”,则在程序中引用数组元素x[i]的四种形式中,除了x[i]、p[i]和*(p+i)以外,还有()

    正确答案: *(x+i)
    解析: 暂无解析