計算機二級c語言一道選擇題求詳細解法

2021-03-06 00:28:56 字數 5856 閱讀 7799

1樓:匿名使用者

樓主應該是抄錯題了,要得到選項中的執行結果,程式應該是這樣的#include

void main()

,c[5]=,i;

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

c[s[i]]++;

for(i=1;i<5;i++) //原題的中的「i=0」改為「i=1」

printf("%d",c[i]);

}答案為c。

陣列c中的元素c[0]到c[4]分別用於存放在陣列s中0到4的個數。

2樓:百度使用者

/** 此程式可以ls 多個檔案

* 範例: ./myls file1 file2 dt1 dt2 後面引數可以多個,**/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

/** 讀取不是目錄的檔案

* argv : 檔名

* 返回值: 出錯1, 正確0

*/int lsregfile(char *argv) //讀取不是目錄的檔案

char str[10] = "";

/******************判斷檔案的型別***********************/

if (s_isreg(buf.st_mode)) str[0] = '-';

else if (s_isdir(buf.st_mode)) str[0] = 'd';

else if (s_ischr(buf.st_mode)) str[0] = 'c';

else if (s_isblk(buf.st_mode)) str[0] = 'b';

else if (s_isfifo(buf.st_mode)) str[0] = 'p';

#ifdef s_islnk

else if (s_islnk(buf.st_mode)) str[0] = 'l';

#endif

#ifdef s_issock

else if (s_issock(buf.st_mode)) str[0] = 's';

#endif

else str[0] = 'u'; //表示未知檔案型別

/************************* 輸出許可權 ************************/

str[1] = ((buf.st_mode & s_irusr) != 0) ? 'r' : '-';

str[2] = ((buf.st_mode & s_iwusr) != 0) ? 'w' : '-';

str[3] = ((buf.st_mode & s_ixusr) != 0) ? 'x' : '-';

//判斷設定-使用者-id

str[3] = ((buf.st_mode & s_isuid) != 0) ? 's' : str[3];

str[4] = ((buf.st_mode & s_irgrp) != 0) ? 'r' : '-';

str[5] = ((buf.st_mode & s_iwgrp) != 0) ? 'w' : '-';

str[6] = ((buf.st_mode & s_ixgrp) != 0) ? 'x' : '-';

//判斷設定-使用者組-id

str[6] = ((buf.st_mode & s_isgid) != 0) ? 'x' : str[6];

str[7] = ((buf.st_mode & s_iroth) != 0) ? 'r' : '-';

str[8] = ((buf.st_mode & s_iwoth) != 0) ? 'w' : '-';

str[9] = ((buf.st_mode & s_ixoth) != 0) ? 'x' : '-';

printf("%s ", str);

// 輸出硬鏈結數

printf("%3ld ", (long) buf.st_nlink);

// 輸出檔案所有者。

struct passwd *ppd;

ppd = getpwuid(buf.st_uid);

printf("%-5s ", ppd->pw_name);

// 輸出檔案所有者的組名

struct group *pgroup;

pgroup = getgrgid(buf.st_gid);

printf("%-5s ", pgroup->gr_name);

// 輸出檔案大小

printf("%5lld ", (long long) buf.st_size);

// 輸出最近修改時間

struct tm *ptime = null;

printf("%.4d-%.2d-%.2d %.2d:%.2d ",

(1900 + ptime->tm_year),

(1 + ptime->tm_mon),

ptime->tm_mday,

ptime->tm_hour,

ptime->tm_min);

// 輸出檔名

printf("%s", argv);

if (str[0] == 'l') //如果是鏈結檔案,獲取鏈結物件名

printf("%s", linkbuf);

}printf("\n");

return 0;}/*

* 讀取目錄裡面不帶.和..的所有檔案的資訊.

* argv : 檔名

* 返回值: 出錯1, 正確0

*/int lsdir(char *argv) //讀取目錄

if (chdir(argv) < 0) //修改工作目錄 使下面的stat能成功.

struct dirent *pd = null;

long long ssize = 0;

while ((pd = readdir(pread)) != null)

char str[10] = "";

/******************判斷檔案的型別***********************/

if (s_isreg(buf.st_mode)) str[0] = '-';

else if (s_isdir(buf.st_mode)) str[0] = 'd';

else if (s_ischr(buf.st_mode)) str[0] = 'c';

else if (s_isblk(buf.st_mode)) str[0] = 'b';

else if (s_isfifo(buf.st_mode)) str[0] = 'p';

#ifdef s_islnk

else if (s_islnk(buf.st_mode)) str[0] = 'l';

#endif

#ifdef s_issock

else if (s_issock(buf.st_mode)) str[0] = 's';

#endif

else str[0] = 'u'; //表示未知檔案型別

/************************* 輸出許可權 ************************/

str[1] = ((buf.st_mode & s_irusr) != 0) ? 'r' : '-';

str[2] = ((buf.st_mode & s_iwusr) != 0) ? 'w' : '-';

str[3] = ((buf.st_mode & s_ixusr) != 0) ? 'x' : '-';

//判斷設定-使用者-id

str[3] = ((buf.st_mode & s_isuid) != 0) ? 's' : str[3];

str[4] = ((buf.st_mode & s_irgrp) != 0) ? 'r' : '-';

str[5] = ((buf.st_mode & s_iwgrp) != 0) ? 'w' : '-';

str[6] = ((buf.st_mode & s_ixgrp) != 0) ? 'x' : '-';

//判斷設定-使用者組-id

str[6] = ((buf.st_mode & s_isgid) != 0) ? 'x' : str[6];

str[7] = ((buf.st_mode & s_iroth) != 0) ? 'r' : '-';

str[8] = ((buf.st_mode & s_iwoth) != 0) ? 'w' : '-';

str[9] = ((buf.st_mode & s_ixoth) != 0) ? 'x' : '-';

printf("%s ", str);

// 輸出硬鏈結數

printf("%3ld ", (long) buf.st_nlink);

// 輸出檔案所有者。

struct passwd *ppd;

ppd = getpwuid(buf.st_uid);

printf("%-5s ", ppd->pw_name);

// 輸出檔案所有者的組名

struct group *pgroup;

pgroup = getgrgid(buf.st_gid);

printf("%-5s ", pgroup->gr_name);

// 輸出檔案大小

printf("%5lld ", (long long) buf.st_size);

ssize += buf.st_size;

// 輸出最近修改時間

struct tm *ptime = null;

printf("%.4d-%.2d-%.2d %.2d:%.2d ",

(1900 + ptime->tm_year),

(1 + ptime->tm_mon),

ptime->tm_mday,

ptime->tm_hour,

ptime->tm_min);

// 輸出檔名

printf("%s", pd->d_name);

if (str[0] == 'l') //如果是鏈結檔案,獲取鏈結物件名

printf("%s", linkbuf);

}printf("\n");

}// 輸出總用量

printf("總用量 %lld\n", ssize/1024);

if (closedir(pread) < 0) //關閉目錄}/*

* * 這個程式,把非目錄檔案和目錄分開讀。**/

int main(int argc, char *argv)

int i;

for (i = 1; i < argc; ++i)

struct stat buf0; //獲取檔案資訊

if (stat(argv[i], &buf0) < 0)

if (!s_isdir(buf0.st_mode)) //如果讀取的不是目錄。就直接去讀檔案。

lsregfile(argv[i]); //讀檔案

else

lsdir(argv[i]); //讀目錄

// 改變工作目錄回原來的工作目錄,以便讀取相對路徑的檔案

if (chdir(bufpwd) < 0)

}return 0;}

一道計算機二級c語言的題求詳細解答

c選項的資料型別不對,題目中定義的是字元和整形,所以應該是 c和 d 一道c語言題目,求解答!scanf 函式中沒有精度控制。如 scanf 5.2f a 是非法的。不能企圖用此語句輸入小數為2位的實數。則排除c b,d沒有 排除 格式輸入嚴格按照格式輸入就好了,如果是c的話輸入得是 6.2283....

請問計算機二級C語言的最後一道程式設計題,把程式寫出來可以自

可以,而且必須除錯執行,得出正確結果儲存。今天剛考的全國計算機等級考試二級c語言最後一道程式設計題 編譯沒錯執行的時候結果也是對的 但是那個 樓主你好基本上是這樣的,因為它只會要你給出乙個結果,而且你想這麼多人,每個人的程式也不一樣,有哪個老師會這麼有耐心去看。答案不對,基本就是沒分了。歡迎追問,望...

計算機二級筆試選擇題(習題9)

一 選擇題 1 最簡單的交換排序方法是 d a 快速排序 b 選擇排序 c 堆排序 d 氣泡排序 2 棧通常採用儲存結構是 b a 順序儲存結構和連結串列儲存結構 b 雜湊方式和索引方式 c 連結串列儲存結構和陣列 d 線性儲存結構和非線性儲存結構 3 線性表的順序儲存結構和線性表的鏈式儲存結構分別...