2021-2022年四川省宜賓市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021-2022年四川省宜賓市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021-2022年四川省宜賓市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021-2022年四川省宜賓市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021-2022年四川省宜賓市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年四川省宜賓市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有下列程序:

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

A.30B.35C.40D.322.有以下程序(說明:字母A的ASCIl碼值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.BYB.BTC.YTD.YE

3.有以下程序#include<stdi0.h>main(){inta[]={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;casel:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.3344B.2050C.3040D.0304

4.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運(yùn)行時(shí)若輸入:howareyou?Iamfine<回車>則輸出結(jié)果是()。A.howareyou?Iamfine

B.howareyou?Iamfine

C.howareyou?Iamfine

D.howareyou?

5.在如下結(jié)構(gòu)定義中,不正確的是()。A.

B.

C.

D.

6.寫出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波蘭表達(dá)式()。

A.a(b-c*d)*+e-(f/g(h+i*j-k)*)

B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)

C.a(bcd*-)*+e-(fg/hij*+k-*)

D.abcd*-*e+fg/hij*+k-*-

7.

8.a、b、c、d變量均為float類型且已正確賦值,下列選項(xiàng)中與數(shù)學(xué)式子“2ab/(5cd)”等價(jià)的C語言表達(dá)式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

9.下列程序的輸出結(jié)果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a

10.

11.下列敘述中正確的是()。A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上三種說法都不對(duì)

12.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項(xiàng)中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

13.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是

#include<stdio.h>

main()

{charc;

intv0=1,v1=0,v2=0;

do{switch(c=getchar())

{case′a′:case′A′:

case′e′:case′E′:

case′i′:case′I′:

case′o′:case′O′:

case′u′:case′U′:v1+=1;

default:v0+=1;v2+=1;}}while(c!='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}

A.v0=7,v1=4,v2=7

B.v0=8,v1=4,v2=8

C.v0=11,v1=4,v2=11

D.v0=13,v1=4,v2=12

14.下列敘述中正確的是()。

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

15.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

16.算術(shù)運(yùn)算符和圓括號(hào)有不同的運(yùn)算優(yōu)先級(jí),對(duì)于表達(dá)式“a+b+c*(d+e)”,關(guān)于執(zhí)行順序,以下說法正確的是()。

A.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“a+b”得r1,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果

B.先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果

C.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“b+r3”得r4,最后執(zhí)行“a+r4”得表達(dá)式最后結(jié)果

D.先執(zhí)行“a+b”得r1,再執(zhí)行“r1+c”得r5,再執(zhí)行“(d+e)”得r2,最后執(zhí)行“r5*r2”得表達(dá)式最后結(jié)果

17.

18.下列敘述中正確的是()。

A.對(duì)長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B.對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為n/2

C.對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為log2n

D.對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為nlog2n

19.有以下程序:

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

A.0B.一1C.1D.7

20.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

二、2.填空題(20題)21.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

22.下列語句使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元。

p=【】malloc(sizeof(double));

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

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

24.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

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

printf("");

}

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

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

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

27.當(dāng)執(zhí)行以下程序時(shí),輸入1234567890<回車>,則其中while循環(huán)體將執(zhí)行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

28.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。

29.下面程序的運(yùn)行結(jié)果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}

30.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

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

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

elseprintf("no\n");

}

31.設(shè)一棵二叉樹中有3個(gè)葉子結(jié)點(diǎn),有8個(gè)度為1的結(jié)點(diǎn),則該二叉樹中總的結(jié)點(diǎn)數(shù)為【】。

32.下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<stdio.h>

main()

{intx=3,y=2,z=1;

if(x<y)

if(y<0)z=0;

elsez+=1;

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

}

34.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。

35.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),是素?cái)?shù),函數(shù)返回1,否則返回0。請(qǐng)?zhí)羁铡?/p>

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

36.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

37.若要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

38.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

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

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

39.一般來說,數(shù)據(jù)庫的設(shè)計(jì)過程要經(jīng)歷3個(gè)大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計(jì)階段、設(shè)計(jì)實(shí)施與系統(tǒng)運(yùn)行階段。概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)屬于數(shù)據(jù)庫設(shè)計(jì)的【】階段。

40.在算法正確的前提下,評(píng)價(jià)一個(gè)算法的兩個(gè)標(biāo)準(zhǔn)是空間復(fù)雜度和()。

三、1.選擇題(20題)41.在下列語句中,其含義為“q為一個(gè)指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q)0;C.int*q;D.int*q();

42.以下敘述中不正確的是()

A.在C中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次,賦一次初值

B.在C中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C中,外部變量的隱含類別是自動(dòng)存儲(chǔ)類別

D.在C中,函數(shù)形參可以說明為register變量

43.下面程序的輸出是_______。typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

44.已知一個(gè)有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當(dāng)用二分法查找值為90的元素時(shí),查找成功的比較次數(shù)為()。

A.1B.2C.3D.9

45.若要打開A盤上user子目錄下名為abc.txt的文本文件進(jìn)行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是

A.fopen(“A:\user\abc.txt”,“r”)

B.fopen(“A:\\user\\abc.txt”,“r+”)

C.fopen(“A:\user\abc.txt”,“rb”)

D.fopen(“A:\user\\abc.txt”,“w”)

46.下列程序的輸出結(jié)果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}

A.42B.45C.56D.60

47.假定當(dāng)前盤符下有兩個(gè)如下文本文件:

文件名a1.txta2.txt

內(nèi)容123#321#

則下面程序段執(zhí)行后的結(jié)果為

#include"stdio.h"

voidfc(FILE*p)

{charc;

while((c=fgetc(p))!=′#′)putchar(c);}

main()

{FILE*fp;

fp=fopen("a1.txt","r");

fc(fp);

fclose(fp);

fp=fopen("a2.txt","r");

fc(fp);

fclose(fp);

putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

48.在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為A.概念模式B.外模式C.內(nèi)模式D.物理模式

49.用C語言編寫的代碼程序

A.可立即執(zhí)行B.是一個(gè)源程序C.經(jīng)過編譯即可執(zhí)行D.經(jīng)過編譯解釋即可執(zhí)行

50.有以下程序main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運(yùn)行后輸出結(jié)果是

A.44B.33C.34D.43

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

A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套

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

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

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

52.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()

A.數(shù)據(jù)字典B.詳細(xì)設(shè)計(jì)說明書C.數(shù)據(jù)流圖說明書D.軟件需求規(guī)格說明書

53.以下程序的輸出結(jié)果是_______。main(){charst[20]="hello\0\t\\";printf(%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

54.有以下程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,"k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。

A.5,5B.5,11C.11,11D.11,5

55.下列程序中函數(shù)son()的功能是對(duì)數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&a[1],7);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.1,8,7,6,5,4,3,2,9,10,

D.1,2,10,9,8,7,6,5,4,3,

56.有以下定義和語句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列賦值語句不正確的是()。

A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;

57.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為Thecityisbeautiful\0

B.s1的內(nèi)容更新為isbeaut\0

C.s1的內(nèi)容更新為Thecity\0isbeautiful\0

D.s1的內(nèi)容更新為Thecityisbeautiful\0

58.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

59.在執(zhí)行以下程序時(shí),如果從鍵盤上輸入ABCdef<回車>,則輸出為______。#include<stdio.h>main(){charch;while((ch=getchar())!="\n"){if(ch>='A'&&ch<='B')ch=ch+32;elseif(ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}

A.ABCdefB.abcDEFC.abcD.DEF

60.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。

A.使用順序、選擇和重復(fù)(循環(huán))3種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.模塊只有一個(gè)入口,可以有多個(gè)出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

四、選擇題(20題)61.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序的易讀性

62.設(shè)有:

inta=1,b=2,c=3,d=4,m=2,n=2;

執(zhí)行(m=a>b)&&(n=c>d)后,n的值是

A.1B.2C.3D.4

63.以下關(guān)于宏的敘述中正確的是()。

A.宏替換沒有數(shù)據(jù)類型限制

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間

64.當(dāng)用“#defineF37.5f”定義后,下列敘述正確的是()。

A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串

65.某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是A.10B.8C.6D.4

66.

67.一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為l的結(jié)點(diǎn)數(shù)為()。

A.16B.10C.6D.4

68.閱讀以下程序及對(duì)程序功能的描述,其中正確的描述是

#include<stdio.h>

main()

{

FILE*in,*out;

charch,infile[10],outfile[10];

printf("Entertheinfilename:\n");

scanf("%s",infile);

printf("Entertheoutfilename:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{

printf("cannotopeninfile\n");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{

printf("cannotopenoutfile\n");

exit(0);

}

while(!feof(in))fputc(fgetc(in),out);

fclose(in);

fclose(out);

}

A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個(gè)磁盤文件合二為一的功能

C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中

D.程序完成將兩個(gè)磁盤文件合并后在屏幕上輸出

69.在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。

70.以下所列的C語言常量中,錯(cuò)誤的是()。

A.0xFFB.1.2e0.5C.2LD.‘72’

71.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流

72.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。

A.隊(duì)列B.線性表C.二叉樹D.棧

73.在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個(gè)階段相同

74.

75.

76.

77.數(shù)據(jù)庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

78.有以下程序(注:字符a的ASCIl碼值為97):

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

A.789B.abeC.7890D.979899

79.(55)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解

B.不限制goto語句的使用

C.減少或取消注解行

D.程序越短越好

80.設(shè)變量均已正確定義并賦值,以下與其他三組輸出結(jié)果不同的一組語句是()。

A.x++;printf("%dkn",x);

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

C.++x;printf("%d\n",x);

D.n=x++;printf("%6d\n",n);

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是計(jì)算正整數(shù)m

各位上數(shù)字的平方和。例如,輸入498,則輸出應(yīng)該是161。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大值和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。

主函數(shù)中arr是數(shù)組名,n是arr中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。

試題程序:

參考答案

1.A程序定義一個(gè)整型變量y和整型二維數(shù)組x,并對(duì)x賦初值。接著調(diào)用函數(shù)fun,在函數(shù)fun中,第1個(gè)for循環(huán)將數(shù)組a的第0列和第N-1列的所有元素累加到y(tǒng)中;第2個(gè)for循環(huán)將數(shù)組a的第0行的2、3和第N-1行的3、2累加到y(tǒng)中,再將y返回。所以fun函數(shù)的功能是將數(shù)組a的行列下標(biāo)為0、N-1的所有元素累加起來,即將1,2,3,4,2,3,3,2,4,3,2,1累加,輸出30。本題答案為A選項(xiàng)。

2.Dfun函數(shù)的意思是當(dāng)*s%2==0的時(shí)候就輸出并且s自加l次,然后判斷。所以可知只有第2和第4個(gè)位置上的才符合要求,所以答案為D。

3.C本題考查嵌套分支語句。共輸出4個(gè)值:當(dāng)i=0時(shí),i%2取余后還是0,則執(zhí)行ease0語句,繼續(xù)switch語句,此時(shí)i為0,數(shù)據(jù)的下標(biāo)是從0開始的,a[03的值為2,則a[0]%2=0,繼續(xù)執(zhí)行case0,數(shù)組a[0]++,值變?yōu)?,執(zhí)行break跳出第二重開關(guān)語句。出來后繼續(xù)執(zhí)行break,跳出第一重開關(guān)語句,繼續(xù)循環(huán);輸出第一個(gè)值為3。i++后值為1,i%2=1%2取余后值為1,執(zhí)行casel,將0賦給a[l],退出開關(guān)語句,輸出第二個(gè)值為0。i++后值為2,i%2=2%2取余后值為0’a[2]的值為5,則a[2]%2=1,繼續(xù)執(zhí)行casel,數(shù)組a[2]--,值變?yōu)?,執(zhí)行break跳出第二重開關(guān)語句。出來后繼續(xù)執(zhí)行break,跳出第一重開關(guān)語句,繼續(xù)循環(huán);輸出第三個(gè)值為4。i++后值為3,i%2=3%2取余后值為1,執(zhí)行casel,將0賦給a[3],退出開關(guān)語句,輸出第四個(gè)值為0。結(jié)果為3040。

4.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。

5.B

6.D

7.A

8.B解析:選項(xiàng)A和選項(xiàng)D中首先計(jì)算2/5,因?yàn)閮蓚€(gè)計(jì)算分量都是整型,所以結(jié)果為2,與實(shí)際運(yùn)算不符;選項(xiàng)B中因?yàn)槌顺M足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項(xiàng)C中的表達(dá)式等價(jià)于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。

9.C本題考查函數(shù)的調(diào)用及參數(shù)傳遞,當(dāng)執(zhí)行函數(shù)point時(shí),剛開始指針P指向“a”,經(jīng)過+3,指針p指向“f”,所以最后的輸出結(jié)果是f。

10.C

11.D算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A錯(cuò)誤。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項(xiàng)。

12.D解析:本題考核的知識(shí)點(diǎn)是指針變量定義和賦值語句的基本應(yīng)用。在使用一個(gè)指針變量之前,先要用聲明語句對(duì)其進(jìn)行定義,在定義了一個(gè)指針變量之后,系統(tǒng)就為這個(gè)指針變量分配了一個(gè)存儲(chǔ)單元,用它來存放地址。在C語言中有兩個(gè)有關(guān)指針的運(yùn)算符:&運(yùn)算符,為取地址運(yùn)算符,*運(yùn)算符是指針運(yùn)算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個(gè)指針變量p并讓它指向n,然后定義了一個(gè)指向指針的指針變量q并讓它指向p,選項(xiàng)A中將常量1賦給指針p不正確;選項(xiàng)B也是將常量2賦給*p,故選項(xiàng)B不正確;選項(xiàng)C中P不是指向指針的指針變量,而將他賦值給一個(gè)指向指針的指針變量小顯然不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

13.D解析:本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:

switch語句的語法格式為:

switch(表達(dá)式)

{

case常量表達(dá)式1:語句組1;

case常量表達(dá)式2:語句組2;

case常量表達(dá)式n:語句組n;

default:語句組n+1;

}

另外,以下幾點(diǎn)關(guān)于switch語句的重點(diǎn):

①系統(tǒng)在執(zhí)行時(shí)計(jì)算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)case標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標(biāo)號(hào),若存在default標(biāo)號(hào),則執(zhí)行該語句標(biāo)號(hào)后面的語句表n+1;當(dāng)不存在default標(biāo)號(hào)時(shí),不執(zhí)行switch中的任何一個(gè)語句表。

一般而言,在多分支結(jié)構(gòu)中總會(huì)出現(xiàn)'意外'的情況,這時(shí)均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號(hào)是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。

14.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。

15.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺(tái)和軟件平臺(tái)五個(gè)部分組成,可見DB和DBMS都是DBS的組成部分。

16.B題干表達(dá)式中,圓括號(hào)的優(yōu)先級(jí)最高,乘法運(yùn)算符次之,加法運(yùn)算符最低。同優(yōu)先級(jí)中,加法運(yùn)算符的結(jié)合性從左向右結(jié)合,所以題干中的表達(dá)式執(zhí)行順序是:先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果。故本題答案為B選項(xiàng)。

17.D

18.C\n\tC。【解析】二分法查找只適用于順序存儲(chǔ)的有序表,對(duì)于長度為n的有序線性表,最壞情況只需比較log2n次。

19.Ba一一的含義是先用后減l,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。

20.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。

21.交換排序交換排序解析:所謂排序是指將一個(gè)無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

22.(double*)

23.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值.

24.對(duì)于10個(gè)數(shù),相鄰的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入i=1。相鄰的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[i-1]。\r\n\r\n

25.246

26.gae

27.00解析:“ch=getchat()”的功能是從終端讀入一個(gè)字符賦給變量ch,由于getchar()只能接收一個(gè)字符,所以輸入的字符1被賦給ch,即“'1'!='0'”,循環(huán)體不執(zhí)行,直接退出while循環(huán),所以循環(huán)體執(zhí)行的次數(shù)為0。

28.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(*旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。

29.s=30s=30解析:分析循環(huán)條件“m=1,m<=4”,所以循環(huán)4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。

30.yesyes解析:本題中,if后面括號(hào)里的表達(dá)式為c=a+b為真(即c=1+3=4為真),所以,執(zhí)行printf('yes\\n'),最后輸出yes。

31.1313解析:在任意一棵二叉樹中,葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中的二叉樹有3個(gè)葉子結(jié)點(diǎn),所以,該二叉樹有3-1=2個(gè)度為2的結(jié)點(diǎn);又知本題中的二叉樹有8個(gè)度為1的結(jié)點(diǎn)。所以,本題中的二叉樹總結(jié)點(diǎn)數(shù)為:葉子結(jié)點(diǎn)數(shù)+度為l的結(jié)點(diǎn)數(shù)+度為2的結(jié)點(diǎn)數(shù)=3+8+2=13。所以,本題的正確答案為13。

解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a(bǔ)、b,代入,得到16.0=9/2+2*x/1.1+1/2。因?yàn)閍=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時(shí),等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

33.11解析:ifelse語句的功能是:若表達(dá)式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達(dá)式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個(gè)if語句的控制條件x<y就不滿足,又沒有與之配對(duì)的else語句,所以直接執(zhí)行printf語句,在整個(gè)過程中變量z的值都沒發(fā)生變化。

34.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為物理獨(dú)立性。

35.如果a能被i整除,則a是素?cái)?shù),返回值為0。如果a不能被i整除,則a不是素?cái)?shù),返回值為1。

36.概念概念

37.(double*)(double*)解析:一般用malloc函數(shù)為變量分配存儲(chǔ)單元時(shí),要在前面用強(qiáng)制類型轉(zhuǎn)換符說明該存儲(chǔ)單元中數(shù)據(jù)的類型。本題要為指向雙精度浮點(diǎn)型數(shù)據(jù)的指針變量p分配存儲(chǔ)單元,因此用(double*)說明。

38.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

39.系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)解析:系統(tǒng)設(shè)計(jì)階段是系統(tǒng)的具體設(shè)計(jì)過程,主要包括概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)3個(gè)步驟。這3個(gè)不同層次上的設(shè)計(jì)過程,是把實(shí)體以及相互之間的聯(lián)系轉(zhuǎn)換為“數(shù)據(jù)”并落實(shí)于計(jì)算機(jī)中。

40.時(shí)間復(fù)雜度時(shí)間復(fù)雜度解析:在算法正確的前提下,評(píng)價(jià)一個(gè)算法的兩個(gè)標(biāo)準(zhǔn)是空間復(fù)雜度和時(shí)間復(fù)雜度。算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

41.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。

42.C

43.C解析:sizeof(x)是一個(gè)標(biāo)準(zhǔn)C函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù),題目中定義了一個(gè)共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度。

44.BB?!窘馕觥扛鶕?jù)二分法查找法需要兩次:(1)首先將90與表中間的元素50進(jìn)行比較,由于90大于50,所以性表的后半部分查找。(2)第二次比較的元素是后半部分的中間元素,即90,這時(shí)兩者相等,即查找成功。

45.B解析:本題考核的知識(shí)點(diǎn)是文件名的表示法以及文件的讀寫模式。由于“\\”是轉(zhuǎn)義字符,所以在文件名中的“\\”用“\\\\”來表示。要打開文本文件進(jìn)行讀寫,應(yīng)使用讀寫模式“r+”。

46.B解析:在C語言中,數(shù)組的下標(biāo)默認(rèn)為0,因此數(shù)組p的下標(biāo)范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句;接著進(jìn)行第2次循環(huán),此時(shí)i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后j的值為j=13+15+17=45。

47.A解析:本題的功能是順序的讀兩個(gè)文本文件,依次輸出。當(dāng)打開文件時(shí)出現(xiàn)錯(cuò)誤,fopen函數(shù)將返回NULL。

48.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式也稱子模式或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式也稱邏輯模式,是數(shù)據(jù)庫中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。內(nèi)模式也稱存儲(chǔ)模式或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方法的描述。根據(jù)上述介紹可知,數(shù)據(jù)庫系統(tǒng)中用戶所見到的數(shù)據(jù)模式為外模式。因此,本題的正確答案是B。

49.B解析:C語言一種高級(jí)語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個(gè)后綴為。OBJ的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此。OBJ文件與C語言提供的各種庫函數(shù)連接在一起,生成一個(gè)后綴.EXE的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項(xiàng)A錯(cuò)誤;根據(jù)以上定義,選項(xiàng)C和選項(xiàng)D錯(cuò)誤,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

50.C解析:本題考查的是字符數(shù)組的初始化。字符數(shù)組即可以用{初始化列裹}來初始化,也可以用一個(gè)字符串常量來初始化。但字符串常量系統(tǒng)會(huì)自動(dòng)為其添加結(jié)束標(biāo)記'\\0',故比實(shí)際長度要多一位,所以本題輸出為34,應(yīng)該選擇C。

51.B解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是個(gè)未知量,而函數(shù)定義時(shí)不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。

52.DD)【解析】需求分析的最終結(jié)果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便。

53.B解析:C語言中字符串是以'\\0'字符結(jié)束的,且strlen()函數(shù)計(jì)算的是'\\0'字符前的所有字符的個(gè)數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof()函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。

54.B解析:本題的fun()函數(shù)中定義的變量m和i是靜態(tài)局部變量,第1次調(diào)用fun()函數(shù)時(shí)m=0、i=2,執(zhí)行i+=m+1后,i的值變?yōu)?,再執(zhí)行m=i+x+y后,m的值變?yōu)?,所以第1次輸出的整數(shù)是5。第2次調(diào)用fun()函數(shù)時(shí)m=5、i=3,執(zhí)行i+=m+1,i變?yōu)?,再執(zhí)行m=i+x+y,m變?yōu)?1,所以第2次輸出的整數(shù)是11。故本題應(yīng)該選擇B。

55.C解析:本程序中的函數(shù)sort(inta[],intn)實(shí)現(xiàn)的功能是將數(shù)組a中的前n個(gè)數(shù)進(jìn)行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個(gè)數(shù)進(jìn)行從大到小排序,其他數(shù)不變。

56.B

57.D解析:該函數(shù)用來使兩個(gè)字符串連接成為一個(gè)字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個(gè)“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。

58.D解析:逗號(hào)表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

59.B

60.A解析:符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格中,應(yīng)該選擇只有一個(gè)入口和一個(gè)出口的模塊,故選項(xiàng)B錯(cuò)誤;首先要保證程序正確,然后才要求提高效率,故選項(xiàng)C錯(cuò)誤;嚴(yán)格控制使用goto語句,必要時(shí)可以使用,故選項(xiàng)D錯(cuò)誤。

61.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

62.B本題考查邏輯與運(yùn)算符“&&”的使

溫馨提示

  • 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)論