![2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁(yè)](http://file4.renrendoc.com/view/a5160246c2afab04649fc5bd0bab81f5/a5160246c2afab04649fc5bd0bab81f51.gif)
![2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁(yè)](http://file4.renrendoc.com/view/a5160246c2afab04649fc5bd0bab81f5/a5160246c2afab04649fc5bd0bab81f52.gif)
![2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁(yè)](http://file4.renrendoc.com/view/a5160246c2afab04649fc5bd0bab81f5/a5160246c2afab04649fc5bd0bab81f53.gif)
![2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁(yè)](http://file4.renrendoc.com/view/a5160246c2afab04649fc5bd0bab81f5/a5160246c2afab04649fc5bd0bab81f54.gif)
![2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁(yè)](http://file4.renrendoc.com/view/a5160246c2afab04649fc5bd0bab81f5/a5160246c2afab04649fc5bd0bab81f55.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年四川省攀枝花市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。A.數(shù)據(jù)的方法B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C.數(shù)據(jù)的對(duì)象D.數(shù)據(jù)的邏輯存儲(chǔ)
2.在下面的字符數(shù)組定義中,哪一個(gè)有語(yǔ)法錯(cuò)誤()。A.chara[20]=”abcdefg”;
B.chara[]=”x+y=55.”;
C.chara[15];
D.chara[10]=’5’;
3.以下與數(shù)學(xué)表達(dá)式“0<x<5且x≠2”不等價(jià)的C語(yǔ)言邏輯表達(dá)式是()。
A.(0<x<5)&&(x!=2)
B.0<x&&x<5&&x!=2
C.x>0&&x<5&&x!=2
D.(x>0&&x<2)||(x>2&&x<5)
4.設(shè)有定義“intx[10],*p=x,i;”,若要為數(shù)組x讀入數(shù)據(jù),以下選項(xiàng)正確的是()。
A.for(i=0;i<10;i++)scanf(“%d”,p+i);
B.for(i=0;i<10;i++)scanf(“%d”,*p+i);
C.for(i=0;i<10;i++)scanf(“%d”,*(p+i));
D.for(i=0;i<10;i++)scanf(“%d”,x[i]);
5.
6.下列敘述中正確的是A.break語(yǔ)句只能用于switch語(yǔ)句
B.在switch語(yǔ)句中必須使用default
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.在switch語(yǔ)句中,不一定使用break語(yǔ)句
7.下列語(yǔ)句中,說(shuō)法正確的是______。
A.C程序書(shū)寫(xiě)格式嚴(yán)格,每行只能寫(xiě)一個(gè)語(yǔ)句
B.C程序書(shū)寫(xiě)格式嚴(yán)格,每行必須有行號(hào)
C.C程序書(shū)寫(xiě)格式自由,每行可以寫(xiě)多條語(yǔ)句,但之間必須用逗號(hào)隔開(kāi)
D.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行
8.
9.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
10.若有說(shuō)明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無(wú)確定值
11.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
12.若有定義:int*p[3];,則以下敘述中正確的是()。
A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針
B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針
C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素
D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素
13.執(zhí)行完下列語(yǔ)句段后,i值為()。A.A.2B.4C.8D.無(wú)限遞歸
14.有下列程序: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
15.在深度為5的滿二叉樹(shù)葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
16.設(shè)有定義:floata=2,b=4,h=3;以下c語(yǔ)言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
17.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項(xiàng)中不能正確引用字符串的是()。
A.*p[3]B.p[3]C.str[2]D.*p
18.設(shè)有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用結(jié)構(gòu)體變量std中的color成員,寫(xiě)法錯(cuò)誤的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color
19.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的運(yùn)行結(jié)果是()。
A.1,1,2,0B.0,0,0,3C.編譯有錯(cuò)D.0,1,2,0
20.能正確表示x>=3或者x<1的關(guān)系表達(dá)式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
二、2.填空題(20題)21.已知字符'A'的ASCII碼值為65,以下語(yǔ)句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
22.以下函數(shù)用來(lái)在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個(gè)數(shù)。插入后數(shù)組中的個(gè)數(shù)仍然有序。請(qǐng)?zhí)羁?,使之完整?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
23.寫(xiě)出下列程序的執(zhí)行結(jié)果。swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*p1,*p2;scanf("%d%d",&a,&B);p1=&a;p2=&b;if(a<B)swap(p1,p2);printf("\na=%d,b=%d\n",a,B);}若a=7,b=8,則程序的運(yùn)行結(jié)果為()。
24.在宏定義#defineP13.14159中,用宏名PI代替一個(gè)______。
25.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END)fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
26.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請(qǐng)?zhí)羁铡?/p>
main()
{intm,n;
for(m=0;【】;m++)
{n=m*10+4;
If(【】)continue;
printf("%d\n",n);}}
27.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
28.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為_(kāi)_____型。
29.設(shè)有宏定義:
#defineWIDTH80
#defineLENGTHWIDTH+40
則執(zhí)行賦值語(yǔ)句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。
30.下面的if語(yǔ)句與y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,請(qǐng)補(bǔ)充完整。
if(______)
if(______)y=2*x-1;
elsey=x;
elsey=3*x-11;
31.在面向?qū)ο蠓椒ㄖ校瑢傩耘c操作相似的一組對(duì)象稱為【】。
32.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
33.設(shè)有如下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序運(yùn)行后,如果從鍵盤(pán)上輸入1298,貝愉出結(jié)果為【】。
34.若有以下定義語(yǔ)句,則不移動(dòng)指針p,并且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
35.fseek函數(shù)的正確調(diào)用形式是【】。
36.以下程序中函數(shù)f的功能是在數(shù)組x的n個(gè)數(shù)(假定n個(gè)數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,把最大的數(shù)與最后一個(gè)數(shù)對(duì)換。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
37.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎汀R韵潞瘮?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請(qǐng)?jiān)谙聞澗€內(nèi)填入正確內(nèi)容。
{intdata;structlink*next;}
main()
{structlink*head;
┆
sum(head);
┆}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
38.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的【】。
39.fun1函數(shù)的功能是將3個(gè)整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個(gè)變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個(gè)變量中的值。補(bǔ)足所缺語(yǔ)句。
fun2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
fun1(int*p1,int*p2,int*p3)
{if(*p3>*p2)fun2(*P2,*p3);
if(*p1<*p3)fun2(______);
if(*p1<*p2)fun2(______);
}
main()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
fun1(&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
40.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為_(kāi)_____。
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){chara:'a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序運(yùn)行后的輸出結(jié)果是()。
A.b,bB.b,cC.a,bD.a,c
42.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指
A.數(shù)據(jù)所占的存儲(chǔ)空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中表示C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D.存儲(chǔ)在外存中的數(shù)據(jù)
43.若fp是指向某文件的指針,且已讀到文件的末尾,則C語(yǔ)言函數(shù)feof(fp)的返回值是()
A.EOFB.-1C.非零值D.NULL
44.下面不屬于軟件設(shè)計(jì)原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
45.若以“葉”方式打開(kāi)一個(gè)己存在的文件,則下列敘述正確的是()。
A.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作
B.文件打開(kāi)時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作
C.文件打開(kāi)時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫(xiě)操作
D.以上3種說(shuō)法都不正確
46.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>
A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb
47.函數(shù)fseek的正確調(diào)用形式是()。
A.fseek(位移量,起始點(diǎn),文件類型指針);
B.fseek(文件類型指針,位移量,起始點(diǎn));
C.fseek(文件類型指針,起始點(diǎn),位移量);
D.fseek(起始點(diǎn),位移量,文件類型指針);
48.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循環(huán),不能確定次數(shù)
49.下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空structnode{floatx;structnode*next;};connect(structnode*t1,structnode*t2){if(t1->next==NULL)t1->next=t2;elseconnect(______,t2);}要實(shí)現(xiàn)此功能則應(yīng)該填入的選項(xiàng)是
A.t1.nextB.++t1.nextC.t1->nextD.++t1->next
50.下面能正確進(jìn)行字符串賦值操作的是
A.chars[5]={"ABCDE"};
B.chars[5]={′A′,′B′,′C′,′D′,′E′};
C.char*s;s="ABCDE";
D.char*s;scanf("%s",s);
51.若輸入“abcdef”、“abdef”,以下程序的輸出結(jié)果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
52.若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3,(int)(x+y)%2/4的值是
A.2.5B.2.75C.3.5D.0
53.下列說(shuō)法正確的是()
A.在執(zhí)行C程序時(shí)不是從main函數(shù)開(kāi)始的
B.C程序書(shū)寫(xiě)格式嚴(yán)格限制,一行內(nèi)必須寫(xiě)一個(gè)語(yǔ)句
C.C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以分寫(xiě)在多行上
D.C程序書(shū)寫(xiě)格式嚴(yán)格限制,一行內(nèi)必須寫(xiě)一個(gè)語(yǔ)句,并要有行號(hào)
54.若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入ADescriptor<回車>,則下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getehar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default: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
55.一個(gè)良好的算法由下面的基本結(jié)構(gòu)組成,但不包括______。
A.順序結(jié)構(gòu)B.選擇結(jié)構(gòu)C.循環(huán)結(jié)構(gòu)D.跳轉(zhuǎn)結(jié)構(gòu)
56.下面程序的輸出結(jié)果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}
A.6B.7C.3D.5
57.在嵌套使用if語(yǔ)句時(shí),C語(yǔ)言規(guī)定else總是A.和之前與其具有相同縮進(jìn)位置的if配對(duì)
B.和之前與其最近的if配對(duì)
C.和之前與其最近的且不帶else的if配對(duì)
D.和之前的第一個(gè)if配對(duì)
58.下列敘述中正確的是()。
A.break語(yǔ)句只能用于switch語(yǔ)句體中
B.continue語(yǔ)句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)
D.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同
59.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語(yǔ)言編譯系統(tǒng)決定
60.下列關(guān)于算法的時(shí)間復(fù)雜度陳述正確的是
A.算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間
B.算法的時(shí)間復(fù)雜度是指算法程序的長(zhǎng)度
C.算法的時(shí)間復(fù)雜度是指算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
D.算法的時(shí)間復(fù)雜度是指算法程序中的指令條數(shù)
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.11,12B.12,13C.13,14D.14,11
62.
63.
64.瀏覽器中用于負(fù)責(zé)向用戶顯示數(shù)據(jù)的是()。
A.WWWB.IP地址C.HTMLD.DNS
65.
66.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8
67.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.9B.10C.8D.7
68.有以下程序
#include<stdio.h>
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{
intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
程序的運(yùn)行結(jié)果是
A.34756B.23445
C.35745D.12345
69.設(shè)有定義:intx-2;,以下表達(dá)式中,值不為6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1
70.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
71.C語(yǔ)言中,合法的字符串常量是()。
A."M"B.\tC.100D.MUST
72.
73.
74.
75.
76.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。
A.(!a==1)&&(!b==0)B.(a<b)&&!cC.D.1E.a&&bF.aG.H.(b+b)&&(c-a)
77.
78.閱讀下面程序,則執(zhí)行后的結(jié)果是()。
A.tomeetme
B.tmem
C.oete
D.tome
79.若fp是指向某文件的指針,且已讀到文件末尾,則庫(kù)函數(shù)feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
80.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.abe,a23B.abe,123C.123,abeD.321,cba
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對(duì)M名學(xué)生的學(xué)習(xí)成績(jī),按從低到高的順序找出m(m≤10)名學(xué)生來(lái),并將這些學(xué)生數(shù)據(jù)存放在一個(gè)動(dòng)態(tài)分配的連續(xù)存儲(chǔ)區(qū)中,此存儲(chǔ)區(qū)的首地址作為函數(shù)值返回。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù).不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)voidproc(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶數(shù)、不為1的各整數(shù),并按從大到小的順序放在PP所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過(guò)形參n返回。
例如,若x的值為30,則有3個(gè)數(shù)符合要求,它們是15,5,3。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
參考答案
1.B詳細(xì)解答:
數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門(mén)學(xué)科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。
2.D
3.A在C語(yǔ)言里不能直接表達(dá)“0<x<5”,需要分步驟來(lái)實(shí)現(xiàn),即使用“x>0&&x<5”來(lái)描述。在C語(yǔ)言里,“0<x<5”屬于一個(gè)邏輯運(yùn)算表達(dá)式,可以理解為“(0<x)<5”,因此選項(xiàng)A錯(cuò)誤。故本題答案為A選項(xiàng)。
4.AC語(yǔ)言中scanf函數(shù)的聲明為“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2個(gè)參數(shù)是地址。因此,從4個(gè)答案中可以判斷,只有選項(xiàng)A是p[i]的地址,其他的均是變量本身。故本題答案為A選項(xiàng)。
5.D
6.D解析:break語(yǔ)句除了能用于switch語(yǔ)句外,還可以用于循環(huán)語(yǔ)句中,因此選項(xiàng)A不正確。在switch語(yǔ)句中,可以使用default來(lái)執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語(yǔ)句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開(kāi)始執(zhí)行,若沒(méi)有break語(yǔ)句中斷執(zhí)行的話,程序會(huì)一直執(zhí)行到switch的最后一條語(yǔ)句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對(duì)使用會(huì)讓所有case分支互不重疊條理明確,但不配對(duì)使用在C語(yǔ)言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。
7.D
8.B
9.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
10.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小:②當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。
11.C解析:C語(yǔ)言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。
12.B解析:當(dāng)一個(gè)數(shù)組中的元素均為指針類型數(shù)據(jù)時(shí),該數(shù)組就稱為指針數(shù)組。int*p[3]表示此數(shù)組是指針類型的,每個(gè)數(shù)組元素(指針變量)都是指向一個(gè)整型的指針變量。
13.B
14.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。
15.C根據(jù)二叉樹(shù)的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹(shù)為滿二叉樹(shù)。滿二叉樹(shù)的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿二叉樹(shù)的性質(zhì),在滿二叉樹(shù)的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿二叉樹(shù)的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。
16.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
17.A“*P[3]”是一個(gè)字符,也就是str[3][0],不是字符串,選項(xiàng)A錯(cuò)誤。“P[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項(xiàng)。
18.C【答案】C
【知識(shí)點(diǎn)】結(jié)構(gòu)體成員變量的引用
【解析】結(jié)構(gòu)體變量包括一個(gè)或多個(gè)成員變量,引用其成員變量的語(yǔ)法格式如下:
結(jié)構(gòu)體變量.成員變量。通過(guò)結(jié)構(gòu)體指針變量獲得其結(jié)構(gòu)體變量的成員變量的一般形式為:(*結(jié)構(gòu)體指針變量).成員變量,也可以使用:結(jié)構(gòu)體指針變量->成員變量來(lái)引用成員變量。
19.C本題中“if(a=1)b=1”與“elsed=3;”之間多了語(yǔ)句“c=2;”,所以會(huì)出現(xiàn)else語(yǔ)句的位置錯(cuò)誤的編譯失敗提示。故本題答案為C選項(xiàng)。
20.C
21.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
22.++pw[i-1]
23.a=8b=7
24.本題考查字符替換格式:#define標(biāo)識(shí)符字符串。
25.fopenfopen解析:C語(yǔ)言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開(kāi),使用后要關(guān)閉。打開(kāi)文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式');關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。
26.m<10n%4!=0
27.完整性控制完整性控制
28.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過(guò)開(kāi)方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。
29.880
30.x<10x>=1
31.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對(duì)象。所以,屬性與操作相似的一組對(duì)象稱為類。
32.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
33.89218921解析:本題的程序的功能是將輸入的整數(shù)反向輸出。
34.*(p+5)
35.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn))
“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開(kāi)始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長(zhǎng)度大于64k時(shí)不致出現(xiàn)問(wèn)題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。
36.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過(guò)for循環(huán)逐個(gè)比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個(gè)元素x[n-1]交換位置,再將最小值x[p1]和第一個(gè)元素(x[0])進(jìn)行交換,所以空白處應(yīng)該填入x[0]。
37.structlink*headstructlink*head解析:因?yàn)楸绢}中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點(diǎn)逐個(gè)節(jié)點(diǎn)的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有個(gè)指向結(jié)構(gòu)體變量的指針依次指向各個(gè)節(jié)點(diǎn),即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。注意:結(jié)構(gòu)體變量和共用體變量之間的區(qū)別為聯(lián)系。
38.模式或邏輯模式或概念模式模式也稱邏輯模式或概念模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等。
39.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本題考查的知識(shí)點(diǎn)有3個(gè),①指針變量作為形參,②函數(shù)的嵌套調(diào)用,③排序的基本方法。
40.1212解析:本題考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號(hào)表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒(méi)有給a賦值,因此a的值不變;接下來(lái)執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。
41.A解析:程序中pdntf('%c',++a)是先將a加1,再輸a,因此輸出的是\'b\',而pfintf('%c\\n',b=a++)是先將a的值賦給b,a再加1,所以輸出的也是\'b\'。
42.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)器內(nèi)的表示。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)用計(jì)算機(jī)語(yǔ)言的實(shí)現(xiàn),即建立數(shù)據(jù)的機(jī)內(nèi)表示。
43.D
44.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來(lái)而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語(yǔ)言中的過(guò)程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。
45.A解析:本題考查文件使用方式標(biāo)識(shí)符,以“葉”方式打開(kāi)一個(gè)已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時(shí),可以進(jìn)行追加或讀操作。
46.B解析:scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時(shí),實(shí)際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動(dòng)加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動(dòng)以“/0”代替換行符。
47.B解析:改變文件位置的指針函數(shù)fseek()的調(diào)用形式為:fseek(fp,offset,position);。fseek函數(shù)參數(shù)說(shuō)明:“fp”是指向該文件的文件型指針;“offset'’為位移量,指從起始點(diǎn)position.到要確定的新位置的字節(jié)數(shù)。也就是以起點(diǎn)為基準(zhǔn),向前移動(dòng)的字節(jié)數(shù)。ANSIC要求該參數(shù)為長(zhǎng)整型量;“position”為起始點(diǎn),指出以文件的什么位置為基準(zhǔn)進(jìn)行移動(dòng),position的值用整型常數(shù)表示,“0”表示文件的開(kāi)頭,“1”表示文件的當(dāng)前位置,“2”表示文件的末尾。
48.D解析:break語(yǔ)句只能在循環(huán)體和switch語(yǔ)句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語(yǔ)句體內(nèi)時(shí),則在執(zhí)行break后,跳出本層循環(huán)體.而continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行循環(huán)體內(nèi)的if語(yǔ)句,判斷if后面括號(hào)內(nèi)表達(dá)式的值為真,執(zhí)行“continue;”語(yǔ)句.因continue的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語(yǔ)句也仍然成立,因此循環(huán)將無(wú)止境地進(jìn)行下去。所以,4個(gè)選項(xiàng)中D為所選。
49.C解析:成員next中存放的是下一個(gè)結(jié)點(diǎn)的地址。
50.C解析:考查了一維字符數(shù)組的定義和初始化。選項(xiàng)A)和B)定義的數(shù)組空間太小,至少應(yīng)該為6個(gè)字符的長(zhǎng)度才可以。選項(xiàng)D)中的指針s未賦初值,所以指向一個(gè)不確定的地址,因而不能用scanf輸入數(shù)據(jù)到這一指針?biāo)赶虻牡刂分小?/p>
51.A
52.A解析:x+y的值為實(shí)型7.200000,經(jīng)強(qiáng)制類型轉(zhuǎn)化成整型7。a%3的值為1,1*7的值為7,7%2值為1。1/4的值為0,而非0.25,因而為兩個(gè)整數(shù)相除的結(jié)果為整數(shù),舍去小數(shù)部分。與實(shí)型x相加,最終得結(jié)果為2.500000。
53.C
54.D解析:由于只有4個(gè)元音字符,所以v1=4,v0和v2在循環(huán)11次中都要加1,共循環(huán)12次,由于v0的初值為1,所以v0=13,v2=12。
55.D解析:1966年,Bohra和Jacopini提出了以下三種結(jié)構(gòu),用這三咱基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元:1、順序結(jié)構(gòu);2、選擇結(jié)構(gòu);3、循環(huán)結(jié)構(gòu)。
56.B解析:指針變量p指向數(shù)組a的第5個(gè)元素,p[3]在原指向基礎(chǔ)上移3個(gè)單位,指針變量p將指向第8個(gè)元素(下標(biāo)為7的元素),值為7。
57.C解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書(shū)寫(xiě)格式無(wú)關(guān)。所以選項(xiàng)C)為正確答案。
58.C解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。當(dāng)break出現(xiàn)在循環(huán)體的switch語(yǔ)句體內(nèi)時(shí),其作用只是跳出該switch語(yǔ)句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語(yǔ)句中設(shè)置break語(yǔ)句,滿足某種條件,則跳出本層循環(huán)體。
59.D解析:在C語(yǔ)言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語(yǔ)言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。
60.C解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,也就是算法在執(zhí)行過(guò)程中所執(zhí)行的基本運(yùn)算的次數(shù),而不是指程序運(yùn)行需要的時(shí)間或是程序的長(zhǎng)度。
61.B本題中定義了一個(gè)結(jié)構(gòu)體數(shù)組dt[2],其中dt[0].x=11,dt[O].y=12,dt[1].x=13,dt[1].y=14。在main函數(shù)中指針P指向了結(jié)構(gòu)體數(shù)組的第一個(gè)元素,因此P一>x值為ll,P_>y值為l2,自
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車旅館裝修合同解除
- 招聘保安合同協(xié)議書(shū)
- 建筑工程勞務(wù)合同集錦
- 項(xiàng)目組織與管理標(biāo)準(zhǔn)手冊(cè)
- 法律服務(wù)協(xié)議書(shū)
- 數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)作業(yè)指導(dǎo)書(shū)
- 汽車零部件制造技術(shù)手冊(cè)
- 短信息服務(wù)合同五
- 欠款借款合同
- 財(cái)務(wù)信息咨詢合同年
- 電梯使用轉(zhuǎn)讓協(xié)議書(shū)范文
- 工程變更履歷表
- swagelok管接頭安裝培訓(xùn)教程
- 煤礦崗位標(biāo)準(zhǔn)化作業(yè)流程
- 唯物史觀課件
- 公墓管理考核方案
- 把子肉店創(chuàng)業(yè)計(jì)劃書(shū)
- 綜合樓裝修改造項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 冀教版五年級(jí)上冊(cè)英語(yǔ)全冊(cè)單元測(cè)試卷(含期中期末試卷及聽(tīng)力音頻)
- 靜脈用藥安全輸注藥護(hù)專家指引
- 華住酒店管理制度
評(píng)論
0/150
提交評(píng)論