了解湖南/長沙365体育备用网址資訊,從365投注平台開始!365bet官网報名365bet官网本科
您當前的位置:首頁 > 365bet官网考前練習

365体育备用网址“高級語言程序設計”經典習題及答案(20)

365体育备用网址“高級語言程序設計”經典習題及答案(20)

 

  4.若有說明語句“int a[10],*p=a;”,對數組元素的正確引用是( )w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①a[p] ②P[a]w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ③*(P+2) ④P+2w28365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”在 C語言中,約定數組名單獨出現在表達式中時,它表示數組首元素的指針。有int a[10] ,則a可以作為&a[0]使用。另有整型指針變量p,代碼p=a實現p指向數組a的首元素。則表達式*(p+2)是引用數組元素a[2].表達式a[p]和p[a]都是不正確的,下標必須是整型表達式,不可以是指針表達式。表達式p+2是指針表達式,它的值是&p[2].所以只有表達式*(p+2)引用數組a的元素a[2].所以解答是③。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  5.下面各語句中,能正確進行賦字符串操作的語句是( )w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①char s[5] ={“ABCDE”}; ②char s[5] ={‘A’,‘B’,‘C’,‘D’,‘E’};w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ③ char *s;s=“ABCDE”; ④ char *s;scanf(“%”, s);w28365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”字符串最終存儲于字符數組中,存儲字符串的字符數組可以是程序主動引入的(定義或動態分配),也可以是字符串常量,由系統分配。其中字符數組用字符串初始化就是字符串存儲于由程序引入的字符數組的例子。給字符指針賦字符串則是系統自動分配字符率存儲空間的例子。給字符指針賦字符串并不是將一個長長的字符串存于字符指針變量中,而是將字符串常量存儲于常量區,并將存儲這個字符串的首字節地址賦給指針變量,讓指針變量指向字符率常量的首字符。對于以字符串作為字符數組初值的情況,要求字符數組足夠的大,能存得下字符串常量。這里有一個特別的規定,若數組的大小少于存儲字符串有效字符的字節個數,系統將報告錯誤;當字符數組的大小只能存儲字符串的有效字符,而不能存儲字符率結束標記符時,則存儲于字符數組中的內容是字符序列,因沒有存儲字符率結束標記符,存儲的內容就不是字符串。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  如代碼char a[5]=“ABCDE”。另外,給字符數組元素逐一賦字符初值,并在字符初值中沒有字符串結束標記符,則存于字符數組中的內容也不是字符率。如代碼 char s[5]={‘A’,‘B’,‘C’,‘D’,‘E’}.特別要注意當字符指針還未指向某個字符數組的元素時,不可以通過字符指針輸入字符串。如代碼char *s;scanf(“%s”,s)。若寫成char *str;scanf(“%s”,&str)更是錯誤的了。由于C語言規定數組不能相互賦值,所以只能將字符串常量賦給某字符指針。如代碼char *s;s=“ABCDE”是正確的。實際上,字符率“ABCDE” 被存儲于常量區中,向指針變量賦的是字符指針,讓s指向其中的字符‘A’。所以解答是③。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  6.若有以下定義,則不能表示a數組元素的表達式是()w28365投注平台_365bet官网本科_365bet官网報名_首頁

  int a[10]={1,2,3,4,5,6,7,8,9,1o},*p=a;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①*p ② a[10] ③*a ④ a[p-a]w28365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”上述代碼定義了有10個元素的整型數組。,和定義指針變量p,并讓p指向數組元素a[0].所以代碼*p是引用 a[0].由于數組a只有10個元素,最后一個元素是a[9],表達式a[10]是錯誤的。數組名a可以作為a的首元素的指針,表達式*a就是a[0] ,是對數組a的首元素a[0]的引用。指針p的值是a,表達式p-a.的值是0,所以a[p-a]就是a[0].所以解答是②。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  7.若有以下定義,則值為3的表達式是()w28365投注平台_365bet官网本科_365bet官网報名_首頁

  int a[]= {1,2,3,4,5,6,7,8,9,10},*p=a;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①p+=2,*(p++) ③p+=2,* ++pw28365投注平台_365bet官网本科_365bet官网報名_首頁

  ③p+=3,*p++ ④ p+=2,++ *pw28365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”數組a有10個元素,分別有值1至10,指針變量p指向a[0] ①逗號表達式 p+=2,*(P++),先是P+=2使P指向a[2],接著是*(P++),以當時P所指變量a[2]取內容3為表達式的值,同時使p指向a[3].②返號表達式p+=2,* ++p,先是p+=2使p指向a[2],以后是* ++p,又使 p增1,讓它指向a[3],并取指針p所指變量a[3]的內容4作為表達w28365投注平台_365bet官网本科_365bet官网報名_首頁

  式的值。③逗號表達式 p+=3,*p++,先是p+=3使p指向a[3],以后是*p++,表達式的值是 a[3]為 4,而使p指向a[4].④逗號表達式p+=2,++ *p,先是p+=2,使p指向a[2],以后是++ *p,因當時的*p就是 a[2],++a[2]使a[2]增1,變成4,并以4為表達式的值。所以只有p+=2,*(p++)的值是3.所以解答是①。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  8.設有定義“char a[10]={”abcd“},*p=a;”,則*(p+4)的值是( )w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①“abCd” ②‘d’w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ③‘/0’ ④不能確定w28365投注平台_365bet官网本科_365bet官网報名_首頁

  “ 解”若有char a[10]=“abcd”,*p=a,則指針變量p指向a[0].在表達式*(p+4)中,p+4指向a[4],*(p+4)就是a[4].由于用字符“abcd” 給字符數組a賦初值,a[4]的值是字符串結束標記符‘/0’。所以解答是③。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  9.設有代碼“int(*ptr)[10];”,其中的ptr是( )w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①10個指向整型變量的指針w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ②指向10個整型變量的函數指針w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ③一個指向具有10個元素的一維數組的指針w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ④具有10個指針元素的一維數組w28365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”代碼“int(*ptr)[10];”的分析過程是,因圓括號,括號內的ptr先與字符*結合,字符*修飾標識符ptr是一種指針;接著與后面的一對方括號結合,表示是這樣的一種指針,是指向一維數組的;再有方括號中的10,說明這種數組有10個元素。至此,ptr是指向含10個元素的w28365投注平台_365bet官网本科_365bet官网報名_首頁

  一維數組的指針。最后,是最前面的int,表示數組元素是int類型的。所以,ptr是一個指向具有10個int型元素的一維數組的指針。所以解答是③。另外,要是①,10個指向整型變量的指針,就是一個指針數組,上述代碼應寫成“int *ptr[10];”,即ptr是一個有10個指向整型變量的數組。要是②,返回值是指向10個整型變量的函數的指針,上述代碼應寫成“int(*(*ptr)())[10];”,即ptr是指針,指向一種函數,函數的返回值又是一種指針,指向10個元素的數組,數組的元素是整型的。下面的代碼是這樣的函數指針和函數的例子:w28365投注平台_365bet官网本科_365bet官网報名_首頁

  # includew28365投注平台_365bet官网本科_365bet官网報名_首頁

  int a[][10]={{1,2,3,4,5,6,7,8,9,0} ,{0,1,2,3,4,5,6,7,8,9} };w28365投注平台_365bet官网本科_365bet官网報名_首頁

  int(*(*ptr)(int))[10];w28365投注平台_365bet官网本科_365bet官网報名_首頁

  int(*f( int n))[10]w28365投注平台_365bet官网本科_365bet官网報名_首頁

  {return a+n;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  }w28365投注平台_365bet官网本科_365bet官网報名_首頁

  void main()w28365投注平台_365bet官网本科_365bet官网報名_首頁

  { int(*p)[10],*q;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ptr=f;/*讓ptr指向函數f*/w28365投注平台_365bet官网本科_365bet官网報名_首頁

  P=(*ptr)(0);w28365投注平台_365bet官网本科_365bet官网報名_首頁

  q=*p;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“%d/n”, *p);w28365投注平台_365bet官网本科_365bet官网報名_首頁

  P=(*ptr)(l);w28365投注平台_365bet官网本科_365bet官网報名_首頁

  q=*p;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  printf(“%d/n”, *q);w28365投注平台_365bet官网本科_365bet官网報名_首頁

  }w28365投注平台_365bet官网本科_365bet官网報名_首頁

  在上述代碼中,函數有一個int型的形參。要是④,其意義與①相同,上述代碼應寫成“int* ptr[10];”,即 ptr是一個有10個元素的數組,數組元素是指向整型變量的指針。w28365投注平台_365bet官网本科_365bet官网報名_首頁

  10.若有以下定義,則數值為4的表達式是( )w28365投注平台_365bet官网本科_365bet官网報名_首頁

  int w[3][4]={{0,1},{2,4},{5,8}},(* p)[4]= W;w28365投注平台_365bet官网本科_365bet官网報名_首頁

  ①*w[1]+l ②p++,*(p+1) ③w[2][2] ④p[1][1]w28365投注平台_365bet官网本科_365bet官网報名_首頁

  “解”二維數組定義有多種賦初值的辦法,問題給出的代碼是按行給數組的部分元素賦初值。它們分別是w[0][0]=0.w[0][1]=1、w[1][1]=2.w[1][1]=4,w[2][0]=5,w[2][1]=8.根據約定,未指定初值的元素自動置全0值。指針變量p是一個指向具有四個int型元素的一維數組的指針,定義時的初值使它指向數組W的第一行。①的代碼,*w[1]+1中的W[l]是指向 w[l][0]的指針,*w[1] 就是w[1][0],其值是2,*w[1]+l的值是3.②的代碼是逗號表達式,“p++,*(p+1)”先使p指向數組w的第二行,*(p+l)中的p+l是指向數組w的第三行,*(p+1)是指針值,指向數組w的第三行的第一個元素,即&w[2][0]. ③的代碼w[2][2]引用數組W第三行的第三列元素,其值是0.④的代碼p[1][l]引用數組W第二行的第二列元素w[1][1],其值是 4.所以解答是@.w28365投注平台_365bet官网本科_365bet官网報名_首頁

 w28365投注平台_365bet官网本科_365bet官网報名_首頁

w28365投注平台_365bet官网本科_365bet官网報名_首頁

 

365体育备用网址“高級語言程序設計”經典習題及答案(20)

    365投注平台——致力于打造365投注平台第一網,以努力服務于廣大365bet官网學子、提供最全的365bet官网資訊為己任,發布365bet官网最新的新聞資訊,提供365bet官网專科365bet官网本科365bet官网報名365bet官网成績查詢等綜合信息

 

365bet官网
相關文章
    無相關信息
湖南365体育备用网址
365bet官网政策
365体育备用网址30年大事
365bet官网專業
365bet官网問答
名家訪談
365bet官网故事
365bet官网院校
365bet官网大綱
365体育备用网址復習方法
365体育备用网址筆記串講
365体育备用网址應試技巧
365bet官网真題
365bet官网就業
湖南論文指導
365bet官网實踐
365bet官网學位
365体育备用网址成績查詢
365体育备用网址考籍查詢
365体育备用网址學歷查詢


咨詢QQ:137847917
13548661633(微信同號)