一道二級c語言題,求教,一道二級C語言題,求教

2021-12-25 02:11:07 字數 7251 閱讀 9801

1樓:不疊被子過日子

答案應該選c。呼叫fun1求平方,並強制轉換為int型別;呼叫fun2求和,並強制轉換為double型別。可以在main函式中加prinrf("%f",w)來檢驗w的值。

希望有所幫助。

2樓:丿那灬回眸

因為是int(a+b),所以w=fun2(1,2),然後根據上面的函式(a*=a)

求的fun2(1+2)=1+2*1+2=5,最後由於是doublew,所以5應該表示為5.0

3樓:匿名使用者

首先可以看出a與b不對,因為fun1與fun2的返回值都是int型,不可能出現5.21,之後是b選項,因為w是double型,不可能是int型,

在主函式中,w=fun2(1.1,2.0);計算為,(int)1.

1*1.1+(int)2.0*2.

0,結果為1+4=5,但是w為double型,雙精度,不為整型,結果就是5.0,。

以上是個人的一點小見解,如有不對處,請大家多多指導,謝謝。

c or not c ,that is a question

4樓:藍晨星

b 因為主函式中呼叫的是fun2()函式,這個函式的返回值型別是int型,return (int)(a+b);這句中的int是強制轉換的意思。

求教一道二級c語言課本上的選擇題!謝謝各位!

5樓:7無7言

答案確實是15,關於巨集的定義建議你看一下那個關於加不加括號的異同知識點,具體語言論述我忘了,就這道題而言,將i=10,j=15代入,相當於執行了k=10*10<15?10:15;也就是k=100<10?

10:15;答案是15

如果巨集定義時巨集體外加一括號,寫成#define min(x,y) ((x)<(y)?(x):(y)) 則執行了k=10*(10<15?10:15);此時答案是100

6樓:_奕芸

#define是巨集,通俗解釋,#define a b的意思是在以後的**中凡出現a的地方都換成b。

在你這個例子裡,min(x,y)就是求x,y中的最小值囖,所以,i,j最小是i,k就等於100啦。

7樓:冰與火的協奏

我給你執行了一遍,是15

2樓正解

8樓:張燦鬆

#define min(x,y) (x)<(y)?(x):(y)是將min(x,y)定義為(x);k=10*min(i.

j)是先計算10*(x),再用所得的數與y比較返回最小的數,故選15

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

9樓:匿名使用者

樓主應該是抄錯題了,要得到選項中的執行結果,程式應該是這樣的#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的個數。

10樓:百度使用者

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

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

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

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

* ar** : 檔名

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

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

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", ar**);

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

printf("%s", linkbuf);

}printf("\n");

return 0;}/*

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

* ar** : 檔名

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

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

if (chdir(ar**) < 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 *ar**)

int i;

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

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

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

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

lsregfile(ar**[i]); //讀檔案

else

lsdir(ar**[i]); //讀目錄

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

if (chdir(bufpwd) < 0)

}return 0;}

安徽二級c語言考試最後一道程式設計題我執行了好幾次,最後兩次答案

二c考試最後的檢測是由計算機呼叫你編寫的程式執行如後比對生成的結果,佔用工作空間的可能很多,但是一般不會影響這種測試,關鍵是演算法正確與否。能保證程式是對的,這種情況以我卡住前最後執行的程式答案為準嗎 今天剛考的全國計算機等級考試二級c語言最後一道程式設計題 編譯沒錯執行的時候結果也是對的 但是那個...

c語言二級題,求解,二級C語言題,急求解

首先func int a,int b,int c 的返回值是其三個引數之和.r func x y z,x y 它的三個引數分別是 x y z 6 x 2 y 3.所以是r func 6,2,3 引數之和是11 函式裡面形參 p會改變原來的值,int形式的不會改變,按照這個來算就行了 輸入是a 36,...

求教一道C語言題目,一道C語言題目

你的for迴圈裡面多了一個i int main void 我剛bai學的時候出現du過一個問題。就是scanf d n 這個函式zhi 在最後你dao會輸個回車。而這回個回車會 答儲存在記憶體中。現在再出現scanf 函式時候會直接讀入回車。所以就跳過了。這時你只要在scanf d n 後面加一個s...