程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> 三道c語言問題

三道c語言問題

編輯:C語言問答

三道c語言問題

1、

#include<stdio.h>

main()

{int a[5]={2,4,6,8,10},*p,**k;

p=a;k=&p;

printf("%d",*(p++));printf("%d\n",**k);

2、

#include<stdio.h>

#define N 6

main()

{char c[N];int i=0;

 for(i=0;i<N;i++)c[i]=getchar();

 for(i=0;i<N;i++)putchar(c[i]);

}

當運行以上程序時輸入三行,每行都是在第一列上開始,<CR>代表Enter鍵

a<CR>

b<CR>

cdef<CR>

3、

#include<stdio.h>

main()

{int aa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

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

  {if(i==0)aa[i][i+1]=*p+1;

    else++p;

    printf("%d',*p);

  }

 printf("\n")

}

這三道題怎樣做?

最佳回答:

不知道你說什麼?要做什麼啊?
追問:

第一題答案為:2和4

第二題:a

              b

              cd

第三題:23

講一下原因,為什麼得這些答案,3Q

回答:

第一題:你要理解

printf("%d",*(p++)); // 先用*p ,然後*p再++,其實可以看成printf("%d",*p); *p++ ;

printf("%d\n",**k);  //K指向p,  p指向a+1 即**k=a[1] =4

第二題:for(i=0;i<N;i++)c[i]=getchar();

 //接收6個鍵盤輸入字符,接收的字符分別為a,<CR>,b,<CR>,cd .

 // 其中<CR>無任何值輸出,但是具有換行作用 。

第三題:

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

  {if(i==0)aa[i][i+1]=*p+1;

    else++p;

    printf("%d',*p);

  }

//主要是分析這裡:i=0時,a[0][1]=2+1=3; 輸出*p 即輸出a[0][0] 當然是2

// i=1時,執行的是 ++p,也就是p=p+1;即p指向了下一位. 所以p=a[0][1]=3,輸出自然為3

//還有什麼不明白 你還可以繼續問

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved