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 線性表的順序儲存結構和線性表的鏈式儲存結構分別...