2019年大學(xué)《C語言程序設(shè)計(jì)》期末完整題庫500題(含答案)_第1頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末完整題庫500題(含答案)_第2頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末完整題庫500題(含答案)_第3頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末完整題庫500題(含答案)_第4頁
2019年大學(xué)《C語言程序設(shè)計(jì)》期末完整題庫500題(含答案)_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2019年大學(xué)C語言期末考試題庫500題含答案

一、選擇題

1.以下程序的輸出結(jié)果是—A—o

main()

{inta=4,b=5,c=0,d;

d=!a&&!b||!c;

printf("%d\n",d);

)

A、1B、0C、非0的數(shù)D、-1

2.以下程序的輸出結(jié)果是^—B—o

main()

{inti;

for(i='A';i<T;i++,i++)printf("%c",i+32);

printf("\n");

)

A、編譯不通過,無輸出B、acegC、acegiD、abcdefghi

3.下列程序執(zhí)行后的輸出結(jié)果是—A—。

main()

(

intx='f';

printf("%c\n";A'+(x-'a'+l));

)

A、GB、HC、ID、J

4.函數(shù)調(diào)用:strcat(strcpy(strl,str2),str3)的功能是_C___=

A、將串strl復(fù)制到串str2中后再連接到串str3之后

B、將串strl連接到串str2之后再復(fù)制到串str3之后

C、將串str2復(fù)制到串strl中后再將串str3連接到串strl之后

D、將串str2連接到串strl之后再將串strl復(fù)制到串str3中

5.C語言中的文件類型只有()。

A索引文件和文本文件兩種B文本文件一種

C二進(jìn)制文件一種DASCII碼文件和二進(jìn)制文件兩種

6.閱讀下列程序:

main()

{intn[3],i,j,k;

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

n[i]=O;

k=2;

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

for(j=0;j<k;j++)

n[j]=n[i]+l;

printf("%d\n",n[l]);

)

下述程序運(yùn)行后輸出結(jié)果是—D.

A、2B、1C、0D、3

7.有以下程序段

intk=0;

while(k=l)k++;

while循環(huán)執(zhí)行的次數(shù)是—A—o

A、無限次B、有語法錯(cuò),不能執(zhí)行C、一閃也不執(zhí)行D、執(zhí)行1次

8.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以

下正確的程序段是_A__。

A、while((ch=getchar())!='N'printf("%c",ch);

B、while(ch=getchar()!='N'printf("%c",ch);

C、while(ch=getchar())==,N,printf("%c",ch);

D、while((ch=getchar())=='N,printf("%c",ch);

9.以下程序中,while循環(huán)的循環(huán)次數(shù)是—D—o

main()

{inti=0;

while(i<10)

(

if(i<l)continue;

if(i==5)break;

i++;

}

}

A、1B、10C、6D、死循環(huán),不能確定次數(shù)

10.具有相同類型的指針類型變量p與數(shù)組a,不能進(jìn)行的操作是()。

Ap=a;B*p=a[O];Cp=&a[O];Dp=&a;

11.以下敘述正確的是—D—o

A、do-while語句構(gòu)成的循環(huán)不能用其它語句構(gòu)成的循環(huán)來代替

B、do-while語句構(gòu)成的循環(huán)只能用break語句退出

C、用do-while語句構(gòu)成的循環(huán),在while后的表達(dá)式為非零時(shí)結(jié)束循環(huán)

D、用do-while語句構(gòu)成的循環(huán),在while后的表達(dá)式為零時(shí)結(jié)束循環(huán)

12.40

13.設(shè)有定義:inta=2,b=3,c=4;,則以下選項(xiàng)中值為。的表達(dá)式是_A_

A>(!a==l)&&(!b==O)B、(a<b)&&!c|11C>a&&bD、a||(b+b)&&(c-a)

14.執(zhí)行下面的程序段后,變量k中的值為—A.

intk=3,s[2];

s[O]=k;k=s[l]*10;

A、不定值B、32C、30D、10

15.能正確表示邏輯關(guān)系:"aNlO或aWO〃的C語言表達(dá)式是—D.

A、a>=10ora<=0B、a>=0|a<=10

C、a>=10&&a<=0D、a>=10||a<=10

16.有以下程序

main()

{intnum[4][4]={{l,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},ij;

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

{for(j=l;j<=i;j++)printf("%4c";');

for(j=;j<4;j++)printf("%4d,num[i][j]);

printf("\n");

}

)

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是—B—。

A、i-1B、IC、i+1D、4-i

17.SUM=2468

四、程序改錯(cuò)

18.請(qǐng)讀程序:

#include<math.h>

#include<stdio.h>

main()

{floatx,y,z;

scanf("%f%f",&x,&y);

z=x/y;

while(z)

{if(fabs(z)>1.0)

{x=y;y=z;z=x/y;}

elsebreak;

}

printf("%f\n",y);

}

若運(yùn)行時(shí)從鍵盤上輸入3.62.4<CR>(<CR>表示回車),則輸出的結(jié)果是__B___。

A、1.500000B、1.600000C、2.000000D、2.400000

19.main()

{intx,g,s,b;

for(x=100;x<1000;x++)

{b=x/100;s=x%100/10;g=x%10;

if((g*g*g+s*s*s+b*b*b)==x)

printf("%d\n",x);}

}

2.main()

{inti,s=O,f=l;

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

{s=s+f*(i-l)/i;f=-f;}

printf(s=%f\nw,s);

}

六、選做題

20.有定義語句:intx,y;,若要通過scanf("%d,%d",&x,&y);語句使變量x得到數(shù)據(jù)ll,變量

y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是—A—o

A、1112<回車〉B、11,12〈回車〉C、U,12〈回車〉D、11,〈回車>12〈回車〉

21.以下程序的輸出結(jié)果是()。

main()

{intkl=l,k2=2,k3=3,x=15;

if(!kl)x-;

elseif(k2)if(k3)x=4;elsex=3;

printf("x=%d\n,;x);

)

Ax=4Bx=15Cx=14Dx=3

22.執(zhí)行下列程序時(shí)輸入:123〈空格>456(空格>789〈回車〉,輸出結(jié)果是—D

main()

{chars[100];

intcj;

scanf("%c",&c);

scanfC%d'\&i);

scanf("%s",s);

printf("%c,%d,%s\n",c,i,s);

)

A、123,456,789B、1,456,789C、1,23,456,789D、1,23,456

23.若有以下數(shù)組說明,則數(shù)值最小的和最大的元素下標(biāo)分別是()。B

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12);

A.1,12B.0,11C.1,11D.0,12

24.以下程序的輸出結(jié)果是—D—o

#include<stdio.h>

main()

{inta=2,c=5;

printf("a=%%d,b=%%d\n",a,c);

}

A、a=%2,b=%5B>a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d

25.以下程序運(yùn)行后的輸出結(jié)果是o

main()

{inta=l,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

答案:yes

26.表示"整數(shù)x的絕對(duì)值大于5"時(shí)值為"真"的C語言表達(dá)式是.

答案:x>51|x<-5

27.以下程序運(yùn)行后的輸出結(jié)果是o

main()

(

intx,a=l,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

printf("%d\n",x);

}

答案:1

28.以下能正確計(jì)算定義且賦初值的語句是—B—o

A>intnl=n2=10;B、charc=32;

C、fioatf=f+l.l;D、doublex=12.3E2.5

29.有如下程序

main()

(

inta=l,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a<b);

printf(”%d,%d\n”,k,m);

)

程序運(yùn)行后的輸出結(jié)果是—c—。

A、0,0B、0,1C、1,0D、1,1

30.設(shè)y是int型變量,請(qǐng)寫出判斷y為奇數(shù)的關(guān)系表達(dá)式

答案:y%2

31.關(guān)于return語句,下列正確的說法是()。

A可以在同一函數(shù)中出現(xiàn)多次B必須在每個(gè)函數(shù)中出現(xiàn)

C只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次D在主函數(shù)中不能出現(xiàn)

32.對(duì)數(shù)組按值從大到小的順序排序后輸出,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

floata[7]={2,6,3,8,3,12,9};

inti;

voidsort(float*,int);

for(i=0;i<7;i++)printf("%f",a[i]);

printf("\n");

}

voidsort()

(

intfloatt;

for(i=0;i<n-l;i++)

(

k=i;

for(j=i+l;j<n;j++)

if()k=j;

{t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;}

}

)

sort(a,7)float*p,intn*(p+k)<*(p+j)if(k!=i)

⑵下列函數(shù)在n個(gè)元素的一維數(shù)組中,找出最大值、最小值并傳送到調(diào)用函數(shù),請(qǐng)?zhí)羁铡?/p>

//include<stdio.h>

voidfind(float*p,intmax,intmin,intn)

(

intk;

*max=*p;

for(k=l;k<n;k++)

(

t=*(p+k);

if()*max=t;

if(t<*min)*min=t;

}

}

floatt;*min=*p;*max<t

33.A)a*b/a*b==l(B)a/b*b/a==l

34.若變量a、i已正確定義,且i已正確賦值,合法的語句是_B.

A、a==lB、++i;C、a=a++=5;D、a=int(i);

知識(shí)點(diǎn):賦值表達(dá)式

35.#defineMAX100

main()

{intf[MAX],ij,k=2,m=5;

for(i=0;i<=m;i++)f[i]=l;f[k-l]=2;

for(i=k;i<=m;i++)

for(j=i-k;j<=i-l;j++)f[i]+=f[j];

printf("%d%5d%5d\n",k,m,f[m]);

)

36.要打開一個(gè)已存在的非空文件"file"用于修改,選擇正確的語句()。

,,

Afp=fopen("file"/"r");Bfp=fopen("file",w");

Cfp=fopen("file"/"r+");Dfp=fopen("file"/"w+");

{intm,k,i,n=0;四寫出下列程序的運(yùn)行結(jié)果。(28分)

37.若有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[l],7,&a[2],9/\0,},*p;p=&a[0];

Ap++->nBp->n++C(*p).n++D++p->n

38.兩個(gè)指針變量不可以()。

A.相加B比較C相減D指向同一地址

39.以下函數(shù)調(diào)用語句中含有()個(gè)實(shí)參。

func((el,e2),(e3,e4,e5));

40.以下程序的輸出結(jié)果是()。

main()

{inta=011;

printf("%d\n”,++a);

}

A12B11C10D9

41.有以下程序

include<stdio.h>

main()

{charchl,ch2;intnl,n2;

chl=getchar();ch2=getchar();

nl=chl-'O';n2=nl*10+(ch2-'0');

printf("%d\n",n2);

)

程序運(yùn)行時(shí)輸入:12〈回車〉,執(zhí)行后輸出結(jié)果是o

答案:12

知識(shí)點(diǎn):數(shù)據(jù)輸入

42.以下程序段的輸出結(jié)果是。

inti=9;

printf("%o\n",i);

答案:11

43.設(shè)有以下定義,值為5的枚舉常量是()。

enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;

AtueBsatCfriDthu

44.以下程序的輸出結(jié)果為()。

main()

{inti=010,j=10,*pi,*pj;

pi=&i;pj=&j;

printf("%d.%d\n",*pi,*pj);

}

45.設(shè)有如下程序段,下面描述中正確的是()。

intk=10;while(k=O)k=k-l;

A循環(huán)執(zhí)行一次B循環(huán)是無限循環(huán)C循環(huán)體語句一次也不執(zhí)行D循環(huán)體語句執(zhí)行一次

46.在下列程序段中,枚舉變量Cl,C2的值依次是(),()。

enumcolor{red,yellow,blue=4,green,white}cl,c2;

cl=yellow;c2=white;

printf("%d,%d\n",cl,c2);

47.以下程序運(yùn)行后的了輸出結(jié)果是o

main()

{inta=l,b=2,c=3;

if(c=a)printf("%d\n",c);

elseprintf("%d\n",b);

}

答案:1

48.以下敘述中正確的是A

A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B、花括號(hào)"{"和"}"只能作為函數(shù)體的定界符

C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D、分號(hào)是C語言之間的分隔符,不是語句的一部分

填空復(fù)習(xí)題

49.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是—A—o

A、++x,y=x—B、x+l=yC、x=x+10=x+yD、double(x)/10

知識(shí)點(diǎn):算術(shù)表達(dá)式

50.設(shè)a為整型變量,初值為12,執(zhí)行完語句a+=a-=a*a后,a的值是()。

A552B144C264D-264

51.在C語言中,if語句后的一對(duì)圓括號(hào)中,用以決定分支流程的表達(dá)式為()。

A只能是邏輯表達(dá)式B只能是關(guān)系表達(dá)式

C只能是邏輯表達(dá)式或關(guān)系表達(dá)式D可以是任意表達(dá)式

52.關(guān)于return語句,下列正確的說法是()。

A可以在同一函數(shù)中出現(xiàn)多次B在主函數(shù)中不能出現(xiàn)

C必須在每個(gè)函數(shù)中出現(xiàn)D只能在除主函數(shù)之外的函數(shù)中出現(xiàn)一次

53.設(shè)有以下定義,則以下對(duì)變量w的賦值()是錯(cuò)誤的。

enumweek{sun,mon=4,tue,wed,thu,fri,sat}w:

Aw=sun;Bw=(enumweek)4;Cw=san;Dw=(enumweek)9;

54.若有下面的變量定義,以下語句中合法的是()。

inti,a[10],*p;

Ap=a+2;Bp=a[5];Cp=a[2]+2;Dp=&(i+2);

55.要打開一個(gè)已存在的非空文件〃file〃用于修改,選擇正確的語句()。

Afp=fopen("file"/,r");Bfp=fopen("file"/,w");

Cfp=fopen("file"/"r+");Dfp=fopen("file"/"w+");

56.下列程序的輸出結(jié)果是()。

main()

{inta=7,b=5;

printf("%d\n",b=b/a);

}

A5BlCOD不確定值

57.有以下程序

main()

{inta=l,b;

for(b=l;b<=10;b++)

{if(a>=8)break;

if(a%2==l)

a+=5;continue;}

a-=3;

}

printf("%d\n”,b);

}

程序運(yùn)行后的輸出結(jié)果是_Bo

A、3B>4C、5D、6

知識(shí)點(diǎn):程序分析

58.有以下程序

main()

(

intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

)

若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的數(shù)值為456,p中的值為789,則

正確的輸入是__A___o

A、m=123n=456p=789B、m=123n456p=789

C、m=123,n=456,p=789D、123456789

59.C)循環(huán)次數(shù)不定(D)是無限循環(huán)

60.以下程序的輸出結(jié)果是_Ao

#include<stdio.h>

main()

{

inti=10J=10;

printf("%d,%d\n"z++ij-);

)

A、11,10B、9,10C、010,9D、10,9

61.以下程序的輸出結(jié)果是—C

main()

{inti,a[10];

for(i=9;i>=0;i-)a[i]=10-i;

printf("%d%d%d,,,a[2],a[5],a[8]);

)

A、258B、741C、852D、369

62.為了建立結(jié)構(gòu)體(含有兩個(gè)成員,data是數(shù)據(jù)成員,next是指向自身結(jié)構(gòu)體的指針成

員),請(qǐng)?zhí)羁眨?/p>

Structlink

(

chardata;

structlink*next;

}

63.若有以下說明及語句,則值為6的表達(dá)式是(D)。

A、p++->nB>p->n++C>(*p).n++D>++p->n

structst{intn;structst*next;};

structsta[3],*p;

a[0].n=5;a[0].next=&a[l];a[l].n=7;a[l].next=&a[2];

a[2].n=9;a[2].next=,\0,;p=&a[0];

64.C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是_Ao

A、%=B、/C>=D、<=

知識(shí)點(diǎn):整型數(shù)據(jù)

65.若執(zhí)下面程序時(shí)從鍵盤上輸入5,

main()

(

intx;

scanf("%d",&x);

if(x++>5)printf("%d\n",x);

elseprintf("%d\n",x-);

)

則輸出是_Bo

A、7B、6C、5D、4

66.若x和y都是int型變量,x=100>y=200,且有下面的程序片段

printf("%d",(x,y));

上面程序片段的輸出結(jié)果是_A_o

A、200B、100C、100200D、輸則格式符不夠,輸出不確定的值

67.C語言中,數(shù)組的各元素必須具有相同的,元素的下標(biāo)下限為,下標(biāo)必須是正整數(shù)、

0、或者。但在程序執(zhí)行過程中,不檢查元素下標(biāo)是否。

數(shù)據(jù)類型,0,符號(hào)常量,越界

68.兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結(jié)果是—A—o

main()

(

intx;

scanf(”%d,&x);

if(x++>5)

printf("%d",x);

else

printf("%d\n",x-);

}

A、7和5B、6和3C、7和D、6和4

69.設(shè)有定義語句staticinta[3][4]={{1},{2},{3}};則a[l][0]值為,a[l][l]值為,a⑵[1]的值

為=2,0,0

70.以下函數(shù)的功能是,把兩個(gè)整數(shù)指針?biāo)傅拇鎯?chǔ)單元中的內(nèi)容進(jìn)行交換。請(qǐng)?zhí)羁铡?/p>

voidexchange(int*x,int*y)

{intt;

t=*y;*y=*x;*x=t;

)

B部分(本科必做)

程序填空:

71.以下程序輸出的是C。

voidmain()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j]);

}

72.在(1)的基礎(chǔ)上,通過指針p給變量ch賦字符H的語句是*p=。

73.有以下程序

intfun(intx[],intn)

(

staticintsum=O,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;

}

main()

(

inta[]={l,2,3,4,5},b[]={6,7,8,9,},s=0;

s=fun(a,5)+fun(b,4);

printf("%d\n",s);

)

程序執(zhí)行后的輸出結(jié)果是_c_。

A、45B、50C、60D、55

74.若已定義char*p;,使指針p指向變量ch的賦值語句是p=&ch;。

75.以下4個(gè)字符串函數(shù)中,()所在的頭文件與其他3個(gè)不同。A

A.getsB.strcpyC.strlenD.strcmp

76.以下程序的輸出結(jié)果是(C)

A、4B、6C、8D、10

#include<stdio.h>

voidmain()

(

intk=2,m=4,n=6;

int*pk=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);

printf("%d\n",n);

}

77.設(shè)有如下定義:

structsk

{inta;floatb;}data,*p;

若有p二&data;,則對(duì)data中的a域的正確引用是(B)。

A)(*p).data.aB)(*p).aC)p->data.aD)p.data.a

2、根據(jù)以下定義,能輸出字母M的語句是(D)。

A、printf("%c\n〃,class⑶.name);B、printf("%c\n",class[3].name[l]);

C、printf(//%c\n,,,class[2].name[l]);D、printf("z%c\nw,class[2].name[0]);

structperson{charname[9];intage;};

zz,,,,,,,,

structpersonclass[10]={John,17/Paul/19/Mary,18/Adam,16,};

78.x)(5)定義s為5x6(5行6列)的數(shù)組可寫成floata[5,6];

79.V)(5)所有函數(shù)定義都是并行的,相互獨(dú)立的。

80.設(shè)變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并

將第三位四舍五入的是_C—。

A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0

C、x=(int)(x*100+0.5)/100.0???D、x=(x/100+0.5)*100.0

知識(shí)點(diǎn):賦值表達(dá)式

81.函數(shù)調(diào)用可以在。D

A.函數(shù)表達(dá)式中B.函數(shù)語句中C,函數(shù)參數(shù)中D,以上都是

82.以下說法中正確的是_D。

A、#define和printf都是C語句B、#define是C語句,而printf不是

C、printf是C語句,但#define不是D、#define和printf都不是C語句

知識(shí)點(diǎn):簡(jiǎn)單C語言程序的構(gòu)成和格式

83.以下函數(shù)調(diào)用語句中,含有實(shí)參的個(gè)數(shù)為。C

fun((2,3),(4,5+6,7));

A.1B.2C,5D,6

84.

有以下程序

main()

(

inta=0,b=0;

a=10;/*給a賦值*/

b=20;/*給b賦值*/

printf("a+b=%d\n",a+b);

)

程序運(yùn)行后的輸出結(jié)果是—B_?

A、a+b=10B、a+b=30C、30D、出錯(cuò)

知識(shí)點(diǎn):簡(jiǎn)單c語言程序的構(gòu)成和格式

85.設(shè)有intx=ll;則表達(dá)式(x++*X/3)的值是—A—。??

A、3B、4C、11D、12

知識(shí)點(diǎn):算術(shù)表達(dá)式

86.以下符合C語言語法的實(shí)型常量是—C—o

A、1.2E0.5B、3.14159EC、.5E-3D、E15

知識(shí)點(diǎn):實(shí)型數(shù)據(jù)

87.以下程序的輸出結(jié)果是(B)

A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7

#include<stdio.h>

voidsub(intxjntyjnt*z)

{*z=y-x;}

voidmain()

(

inta,b,c;

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

printf("%d,%d,%d\n〃,a,b,c);

)

88.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是_Ao

A、_mainencludesinB、If-maxturbo

C、txtREAL3C0MD、intk_2_001???

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

89.以下定義語句中正確的是_C—。

A^chara='A'b='B';B、floata=b=10Q;(正解a=10.0b=10.0)

C、inta=10,*b=&a;D、float*a,b=&a;???

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

90.x)(2)字符數(shù)組不要求它的最后一個(gè)字符為'\0',甚至可以不包含'\0'。

91.下列選項(xiàng)中,合法的C語言關(guān)鍵字是_Do

A、VARB、cherC、integerD、default

知識(shí)點(diǎn):常量、變量和標(biāo)識(shí)符

92.字符串"ab\n\\01如\\""的長(zhǎng)度為—。10

三.判斷題

93.若有定義:inta=8,b=5,c;,執(zhí)行語句c=a/b+0.4;后,c的值是—B。

A、1.4B、1C、2.0D、2

知識(shí)點(diǎn):算術(shù)表達(dá)式

94.設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達(dá)式與代數(shù)式V2((a+b)h)計(jì)算結(jié)果不相符的

是___B___o

A、(a+b)*h/2B、(V2)*(a+b)*hC、(a+b)*h*l/2D、h/2*(a+b)

知識(shí)點(diǎn):算術(shù)表達(dá)式

95.以下函數(shù),真正地沒有返回值。B

A.inta(){inta=2;return(a);}B.voidb(){printf("c");}

C.inta(){inta=2;returna;}D.以上都是

96.下列語句中,正確的是()。D

A.chara[3][]={'abc','1'};B.chara[][3]={'abc','1'};

C.chara[3][]={'a',"1"};D.chara[][3]={"a","1"};

97.以下函數(shù)值的類型是—A―o

fun(floatx)

(

floaty;

y=3*x-4;

returny;

}

A、intB、不確定C、voidD、float

98.若有定義:intxjpb;則以下正確的表達(dá)式是(A)

A、pb=&xB>pb=xC>*pb=&xD>*pb=*x

99.若有以下程序

//include<stdio.h>

voidf(intn)

main()

(

voidf(intn);

f⑸;

}

voidf(intn);

{printf("%d\n",n);}

則以下敘述不正確的是—c—。

A、若只在主函數(shù)中對(duì)函數(shù)f進(jìn)行說明,則只能在主函數(shù)中正確調(diào)用函數(shù)f

B、若在主函數(shù)前對(duì)函數(shù)f進(jìn)行說明,則在主函數(shù)和其它函數(shù)中都可以正確調(diào)用函數(shù)f

C、對(duì)于以上程序,編譯時(shí)系統(tǒng)會(huì)出提示出錯(cuò)信息:提示對(duì)f函數(shù)重復(fù)說明

D、函數(shù)f無返回值,所以可用void將其類型定義為無值型

100.以下程序的輸出結(jié)果是(D)。

A、23B、24C、25D、26

#include<stdio.h>

voidprtv(int*x)

{printf("%d\n,>+*x);}

voidmain()

(

inta=25;prtv(&a);

)

101.以下不能正確定義二維數(shù)組的選項(xiàng)是_D—。

A、inta[2][2]={{l},{2}};B、inta[][2]={l,2,3,4};

C.inta[2][2]={{l},2,3};D、inta⑵口={{1,2},{3,4}};

102.下列各語句定義了數(shù)組,其中哪一個(gè)是不正確的()。C

A.chara[3][10]={"China","American","Asia"};B.intx[2][2]={l,2,3,4};

C.floatX[2][]={1,2,4,6,8,10};D.intm口[3]={1,2,3,4,5,6};

103.,可以不進(jìn)行函數(shù)類型說明。D

A.被調(diào)函數(shù)的返回值是整型或字符型時(shí)B,被調(diào)函數(shù)的定義在主調(diào)函數(shù)定義之前時(shí)

C.在所有函數(shù)定義前,已在函數(shù)外預(yù)先說明了被調(diào)函數(shù)類型D.以上都是

104.以下數(shù)組定義中不正確的是—D—o

A>inta[2][3];B,intb[][3]={0,l,2,3);

C>intc[100][100]={0};D、intd⑶口={{1,2},{1,2,3},{1,2,3,4}};

105.下面的程序中哪一行有錯(cuò)誤()。D

ffinclude<stdio.h>

main()

floatarray[5]={0.0};//MA行

inti;

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

scanf("%f",&array[i]);

for(i=l;i<5;i++)

array[0]=array[0]+array[i];〃第B行

printf("%f\n",array[O]);//MC行

)

A.第A行B.第B行C.第C行D,沒有

106.合法的數(shù)組定義是()。A

A.chara[]="string";B.inta[5]={0,1,2,3,4,5};C.chara="string";D.chara[]={0,l,2,3,4,5}

107.設(shè)有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[l],7,&a[2],9,0},*p;

P=&a[0];

Ap++->nB++p->nCp->n++D(*p).n++

108.以下程序的輸出結(jié)果為()。

#defineADD(x)x*x

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d'1,d);

}

Ad=70Bd=80Cd=140Dd=700

109.以下函數(shù)調(diào)用語句中含有()個(gè)實(shí)參。

func((el,e2),(e3,e4,e5));

A2B3C5D語法錯(cuò)誤

110.C語言源程序的基本單位是()。

A過程B函數(shù)C子程序D標(biāo)識(shí)符

111.以下程序的功能是計(jì)算:1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>

Main()

{intt=0,s=0,l;

for(l=l;l<=5;l++)

{t=1+;s=s+t;}

printf(//s=%d\n,;s);

}

答案:t*10-10*t

知識(shí)點(diǎn):程序分析

112.以下程序的輸出結(jié)果是—A

main()

(

inta[3][3]={{l,2},{3,4},{5,6}},ij,s=0;

for(i=l;i<3;i++)

for(j=0;j<=i;j++)s+=a[i][j];

printf("%d\n”,s);

)

A、18B、19C、20D、21

113.

include<stdio.h>

longsum(inta,intb);

longfactorial(intn);

main()

(

intnl,n2;

longa;

scanf("%d,%d",&nl,&n2);

a=sum(nl,n2);

printf("a=%ld",a);

}

longsum(inta,intb)

(

longcl,c2;

cl=factorial(a);

c2=factorial(b);

return(cl+c2);

}

longfactorial(intn)

{

longrtn=l;

inti;

for(i=l;i<=n;i++)

rtn*=i;

return(rtn);

)

運(yùn)行時(shí)若輸入:2,3則輸出:—8

運(yùn)行時(shí)若輸入:0,5則輸出:―121

114.以下程序的輸出結(jié)果是(C)。

A、15B、100C>10D,150

#defineMIN(x,y)(x)<(y)?(x):(y)

voidmain()

(

intl,j,k;

i=10;j=15;k=10*MIN(ij);

printf(〃%d\n〃,k);

)

115.

#include<stdio.h>

ints();

intx,y;

main()

(

intn;

x=l;y=2;

n=s();

printf("x=%d,y=%d,n=%d",x,y,n);

}

ints()

(

intz;

x=3;y=4;

z=x+y;

return(z);

)

程序運(yùn)行后輸出:―3,4,7

(9)以下程序的輸出結(jié)果是a=___,b=___,c=

#include<stdio.h>

intfunc(inta,int*p);

voidmain()

inta=l,b=2,c;

c=func(a,&b);

b=func(c,&a);

a=func(b,&c);

printf("a=%d,b=%d,c=%d",a,b,c);

}

intfunc(inta,int*p)

(

a++;

*p=a+2;

return(*p+a);

}

361619

第九章預(yù)處理

A部分(本、??票刈?

116.被調(diào)函數(shù)通過語句,將值返回給主調(diào)函數(shù)。D

A.ifB.forC.whileD.return

117.C語言可執(zhí)行程序從什么地方開始執(zhí)行()。C

A.程序中第一條可執(zhí)行語句B.程序中第一個(gè)函數(shù)

C.程序中的main函數(shù)D.包含文件中的第一個(gè)函數(shù)

118.設(shè)有以下程序段,則值為6的表達(dá)式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[l],7,&a[2],9,0},*p;

P=&a[0];

Ap++->nB++p->nCp->n++D(*p).n++

119.正確的程序?yàn)?/p>

main()

{inta,b,s,l;

scanf("%d,%d",&a,&b);

s=a*b;l=2*(a+b);

printf("l=%d,s=%d\n",I,s);

}

三、寫出程序運(yùn)行結(jié)果

120.正確的程序?yàn)?/p>

#include"stdio.h"

main()

{charc;

getchar(c);

putcharf\007,);/*鳴笛*/

putchar();

}

121.voidmain()

{floata,b,temp;

printf("inputaandb:");

scanf("%d,%d",&a,&b);

temp=a;a=b;b=temp;

printf("a=%d,b=%d\n",a,b);

}

選擇結(jié)構(gòu)答案

122.設(shè)有說明int(*ptr)();其中標(biāo)識(shí)符ptr是()。

A是一個(gè)指向整形變量的指針B是一個(gè)指針,它指向一個(gè)函數(shù)值是int的函數(shù)

C是一個(gè)函數(shù)名D定義不合法

123.下列說法不正確的是()。

A主函數(shù)main中定義的變量在整個(gè)文件或程序中有效

B不同函數(shù)中,可以使用相同名字的變量

C形式參數(shù)是局部變量

D在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量只在本復(fù)合語句中有效

124.函數(shù)調(diào)用語句:fseek(fp,-10L,2);的含義是()。

A將文件位置指針從文件末尾處向文件頭的方向移動(dòng)10個(gè)字節(jié)

B將文件位置指針從當(dāng)前位置向文件頭的方向移動(dòng)10個(gè)字節(jié)

C將文件位置指針從當(dāng)前位置向文件末尾方向移動(dòng)10個(gè)字節(jié)

D將文件位置指針移到距離文件頭10個(gè)字節(jié)處

125.設(shè)i和k都是int類型,貝Ifor循環(huán)語句()。

for(i=0,k=-l;k=l;i++,k++)printf("****\n");

A循環(huán)結(jié)束的條件不合法B循環(huán)體一次也不執(zhí)行C循環(huán)體只執(zhí)行一次D是無限循環(huán)

126.下面的選項(xiàng)中正確的賦值語句是(chara[5],*p=a;)()。

Ap="abed";Ba="abed";C*p="abcd";D*a=〃abcd”;

127.定義由n個(gè)指向整形數(shù)據(jù)的指針組成的數(shù)組p,其正確的方式為()。

Aintp;Bint(*p)[n];Cint*p[n];Dint(*p)();

128.有以下程序

main()

{intt=l,i=5;

for(;i>=0;i-)t*=i;

printf("%d\n",t);

}

執(zhí)行后輸出結(jié)果是o

答案:o

知識(shí)點(diǎn):for語句和用for語句構(gòu)成的循環(huán)結(jié)構(gòu)

129.表示條件:10<x<100或x<0的C語言表達(dá)式是

答案:(x>10&&x<100||x<0)

130.在數(shù)組中,數(shù)組名表示()。A

A.數(shù)組第1個(gè)元素的首地址B.數(shù)組第2個(gè)元素的首地址

C.數(shù)組所有元素的首地址D.數(shù)組最后1個(gè)元素的首地址

131.main()

{inta,b,c,sum;

floatave;

scanf(〃%d%d%d",&a,&b,&c);

sum=a+b+c;ave=sum^.O;

printf(//sum=%d,ave=%.2f\n,,,sum,ave);

}

五、選做題

132.下面選項(xiàng)中正確的賦值語句是(設(shè)chara[5],*p=a;)

Ap=,,abcd";Ba="abcd";C*p=,,abcd";D*a="abcd";

133.5

134.ch=getchar()ch>=/A,&&ch<=,Z,

135.xlxl72-2

136.B2.A3.A4.C5.A6.B7.A8.C9.D10.D

二、填空題

137.對(duì)字符數(shù)組進(jìn)行初始化,()形式是錯(cuò)誤。B

A.charcl[]={'l','2','3'};B.charc2[]=123;C.charc3[]={'1','2','3','\0'};D.charc4[]="123";

138.已知函數(shù)fread的調(diào)用形式為fread(buffer,size,count,fp),其中buffer代表的

是()。

A存放讀入數(shù)據(jù)項(xiàng)的存儲(chǔ)區(qū)B存放讀入數(shù)據(jù)的地址或指向此地址的指針

C一個(gè)指向所讀文件的文件指針D一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

139.A)2(B)3(C)5(D)語法錯(cuò)誤

140.C語言源程序的基本單位是()。

141.C)fp=fopen("file","r+");(D)fp=fopen("file","w+");

142.C語言中函數(shù)調(diào)用的方式有()。

A函數(shù)調(diào)用作為語句1種B函數(shù)調(diào)用作為函數(shù)表達(dá)式1種

C函數(shù)調(diào)用作為語句或函數(shù)表達(dá)式2種D函數(shù)調(diào)用作為語句、函數(shù)表達(dá)式或函數(shù)參數(shù)3種

143.以下程序的輸出結(jié)果是()。

main()

{charsl[20]=zzChina,;s2[20]="for",,s[10];

if(strcmp(sl,s2))printf("%s\n",strcat(s2,sl));

elseprintf("%d\n〃,strlen(sl));

}

AChinaforB5CforChinaD3

144.若有代數(shù)式,則錯(cuò)誤的C語言表達(dá)式是()。

Aa*e/c/bBa*e/b/cCa*e/b*cDa/b/c*e

145.x)(10)定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)。

四.判斷題

146.以下程序的輸出結(jié)果為()。

main()

{charc;

inti;

for(i=65;i<68;i++)

{c=i+32;

switch(c)

{case'a':printf(”%cj,c);break;

caseE:case,e':printf("okj);

default:printf("end");

}

}

)

Aa,ok,endBa,ok,endendCa,ok,end,endDa,ok,ok

147.在C語言程序中,以下說法正確的是()。

A函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套

B函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套

C函數(shù)的定義和函數(shù)的調(diào)用都不可以嵌套

D函數(shù)的定義和函數(shù)的調(diào)用都可以嵌套

148.假設(shè)變量a,b均為整型,表達(dá)式(a=5,b=2,a>b?a++:b++,a+b)的值是()。

A7B8C9D2

149.若有以下定義和語句,則值為12的表達(dá)式是()。

structwc{inta;int*b;}*p;

intxO[]={ll,12},xl[]={31,32};

staticstructwcx[2]={100,xO,300,xl};

p=x;

A*++p->bB++p->aCp->bD*(p++)->b

150.以下定義結(jié)構(gòu)體類型stl,其中正確的是()。

Atypedefstructstudent

{intnum;intage;}STD;

STDstl;

Bstructstl{intnum,age;}s;

Cstruct{intnum;floatage;}stl;

Dstructstl{intnum;intage;}

151.下列整數(shù)值中,不正確的八進(jìn)制或十六進(jìn)制數(shù)值常量是()。

AOxcdB-017C-0X123DOxfdc

152.A)day=25;month=10;year=1993;

153.以下程序的輸出結(jié)果為()。

#defineA3

#defineB(a)(A+l)*a

main()

{intx;

x=3*A+B(7);

printf("x=%d\n",x);

}

Ax=93Bx=37Cx=60Dx=90

154.如定義語句為chara[]="windows",b[]="95";,語句printf(“%s,strcat(a,b));的輸出結(jié)果

為。Windows95

155.x)(1)C允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即可用變量定義數(shù)組的大小。

156.根據(jù)以下說明,寫出正確的說明語句:men是一個(gè)有10個(gè)整型元素的數(shù)組。

step是一個(gè)有4個(gè)實(shí)型元素的數(shù)組,元素值分別為1.9,-2.33,0,20.6。

grid是一個(gè)二維數(shù)組,共有4行,10列整型元素。

intmesh[10];floatstep[4]={1.9,-2.33,0,20.6};intgrid[4][10];

157.x)(10)設(shè)已有說明:staticcharcl[10],c2[10];下面程序片段是合法的。cl={〃book〃};

c2=cl;

四.判斷題

158.以下程序的運(yùn)行結(jié)果是2002Shangxian。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

(

STUa={//zhangsan,,,2001,95},b={z/Shangxian,,,2002,90},

c={/zAnhua,,,2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf(/z%ld%s\n,,,d.sno,p->name);

)

B部分(本科必做)

程序填空:

以下程序的功能是:處理由學(xué)號(hào)和成績(jī)組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放

入結(jié)構(gòu)體數(shù)組s中,它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,注意:分

數(shù)最高的學(xué)生可能不只一個(gè),函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN16

typedefstruct

(

charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b)

(

inti,j=O,max=a[O].s;

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

if(max<a[i].s)max=a[i].s;

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

if(a[i].s==max)b[j++]=a[i];

returnj;

}

voidmain()

(

/z,,z/,,z/,,/z,,

STRECs[N]={{GA005,85},{GA003,76},{GA002,69},{GA004,85}/

{〃GA001〃,9:L},{“GA007〃,72},{〃GA008〃,64},{〃GA006〃,87},{〃GA0(H5〃,85},

z/,,/z,zz,,/z,,zz,,

{GA0013,91}/{GA0012;64},{GA0014,91},{GA0011,66},{GA0017,64},

//,,

{GA0018;64}/{"GA0016;72},};

STRECh[N];

inti,n;

n=fun(s,h);

printf(〃The%dhighestscore:\n,/,n);

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

printf("%s%4d\n,,,h[i].num,h[i].s);

printf(〃\n〃);

)

159.以下程序的輸出結(jié)果是(D)。

A、OB、IC、3D、6

#include<stdio.h>

voidmain()

structemplx{intx;inty;}enum[2]={l,3,2,7};

printf(/z%d\n,,,enum[O].y/enum[O].x*enum[l].x);

}

160.array是一個(gè)一維整形數(shù)組,有10個(gè)元素,前6個(gè)元素的初值是9,4,7,49,32,-5,正確的說

明語句為:

o該數(shù)組下標(biāo)的取值范圍是從—到—(從小到大)。用scanf函數(shù)輸入數(shù)組的第二個(gè)元素表

示為:。用賦值語句把39存入第一個(gè)元素表示為:。

把第六個(gè)和第四個(gè)元素之和存入第一個(gè)元素表示為:。

intarray[10]={9,4,7,49,32廠5};09scanf("%d",&array[l]);array[0]=39;array[0]=

array[5]+array[3];

161.被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱為。C

A.形參B.實(shí)參C.返回值D.參數(shù)

162.x)(8)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參。

163.x)⑺形參可以是常量、變量或表達(dá)式。

164.x)(3)在C的函數(shù)中,最好使用全局變量。

165.V)(8)staticcharc[]={"abook"};與staticcharc[]="abook”;等價(jià)。

166.使指針p指向變量ch的定義語句是char*p=&ch;。

167.在C語言中,有關(guān)函數(shù)的說法,以下正確的是。A

A.函數(shù)可嵌套定義,也可嵌套調(diào)用B.函數(shù)可嵌套定義,但不可嵌套調(diào)用

C.函數(shù)不可嵌套定義,但可嵌套調(diào)用D.函數(shù)不可嵌套定義,也不可嵌套調(diào)用

168.函數(shù)在定義時(shí),省略函數(shù)類型說明符,則該函數(shù)值的類型為。A

A.intB.floatC.longD.double

169.C語言總是從函數(shù)開始執(zhí)行。A

A.mainB.處于最前的C.處于最后的D.隨機(jī)選一個(gè)

170.單項(xiàng)選擇題

171.閱讀程序,分析程序的功能。

172.輸入20個(gè)數(shù),輸出它們的平均值,輸出與平均值之差的絕對(duì)值為最小的數(shù)組元素。

請(qǐng)?zhí)羁铡?/p>

include<stdio.h>

voidmain()

(

floata[20],pjz=0,s,t;inti,k;

for(i=0;i<20;i++)pjz+=a[i];

s=fabs(a[O]-pjz);

for(i=l;i<20;i++)

if(fabs(a[i]-pjz)<s)

(

s=fabs(a[i]-pjz);t=a[i];

}

}

for(i=0;i<20;i++)scanf("%f”,&a[i]);pjz/=20;printf("%£%f\n”,piz,t);

⑵以下程序以每行10個(gè)數(shù)據(jù)的形式輸出a數(shù)組,請(qǐng)?zhí)羁铡?/p>

voidmain()

(

inta[50],i;

printf("輸入50個(gè)整數(shù):");

for(i=0;i<50;i++)scanf("%d",);

for(i=l;i<=50;i++)

{if()

printf("%3d\n",);

printf("%3d",a[i-l]);

)

}

&a[i]i%10==0a[i-l]

⑶下面程序的功能是輸出數(shù)組S中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>

voidmain()

(

intk,p;

ints[]={l,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k]);

printf("%d\n",k);

}

k=p

(4)這個(gè)程序輸入了20個(gè)數(shù)存放在一個(gè)數(shù)組中,并且輸出其中最大者與最小者、20個(gè)數(shù)的和

及它們的平均值。請(qǐng)?zhí)羁铡?/p>

voidmain()

(

chararray;

intmax,min,average,sum;

inti;

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

(

printf("請(qǐng)輸入第%d個(gè)數(shù):,i+1);

scanf("%d",);

)

max=array[0];

min=array[0];

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

(

if(max<array[i])

if(min>array[i])

sum=;

}

average=;

printf("20個(gè)數(shù)中最大值是%m",max);

printf("最小值是%dj,min);

printf("和是%同“41^);

printf("平均值是%d.\n",average);

}

[20]

20

&array[i]

19

max=array[i];

min=array[i];

sum+array[i]

sum/20

B卷

173.C語言中的文件類型只有()。

A索引文件和文本文件兩種B文本文件一種

C二進(jìn)制文件一種DASCII碼文件和二進(jìn)制文件兩種

174.設(shè)有以下定義,值為5的枚舉常量是()。

enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;

AtueBsatCfriDthu

175.已知職工記錄描述如下,在TurboC中,系統(tǒng)為變量w分配()字節(jié)的空間。

structworker

{intno;

charname[20];

charsex;

union

{intday;int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論