版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年黑龍江省齊齊哈爾市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.已知a,b均被定義為double型,則表達(dá)式:a=5/2的值為()。
A.1B.3C.3.0D.2.5
2.下面的哪一個(gè)保留字不能作為函數(shù)的返回類型()。
A.voidB.intC.newD.long
3.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是()。
A.7B.8C.6D.2
4.對(duì)于n個(gè)元素,下列哪種操作時(shí)間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
5.有以下程序:#includeMain(){Int?x=1.y=0;if(!x)y++;elsef(x==0)if(x)y+=2;else?y+=3;printf("%d\n",y);\}程序運(yùn)行后的輸出結(jié)果是()。A.3B.2C.1D.0
6.以下是一個(gè)對(duì)數(shù)組A(含有n個(gè)數(shù)值元素)進(jìn)行排序的算法偽代碼,請(qǐng)問(wèn)它的平均時(shí)間復(fù)雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
7.以下關(guān)于指針的說(shuō)法錯(cuò)誤的是()。
A.可以向指針中寫(xiě)入任意數(shù)據(jù)
B.可以向指針?biāo)竷?nèi)存單元中寫(xiě)入數(shù)據(jù)
C.指針可以指向與其基類型相同的普通變量
D.可以通過(guò)加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元
8.
9.
10.以下不正確的敘述是()。
A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低
B.在C程序中,APH和aph是兩個(gè)不同的變量
C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變
D.當(dāng)從鍵盤(pán)輸入數(shù)據(jù)時(shí),對(duì)整型變量只能輸入整型數(shù)值,對(duì)實(shí)型變量只能輸入實(shí)型數(shù)值
11.
12.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是()。A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next;
D.p->next=s->next;p->next=s;
13.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
14.有以下語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是______。
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
15.#define能作簡(jiǎn)單的替代,用宏來(lái)替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語(yǔ)句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
16.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
17.若有定義語(yǔ)句:“intx=10;”,則表達(dá)式x-=x+x的值為()。
A.-20B.-l0C.0D.10
18.以下可以正確且安全地用作用戶標(biāo)識(shí)符的一組選項(xiàng)是()。
A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter
19.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是______。
A.3B.5C.-1D.-216
20.已知大寫(xiě)字母A的ASCII碼是65,小寫(xiě)字母a的ACSII碼是97。下列能將變量C中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
二、2.填空題(20題)21.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程
序的輸出結(jié)果是______。
22.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
23.以下程序中函數(shù)fun的功能是求出能整除x且不是偶數(shù)的務(wù)正整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過(guò)形參n返回。
例如,若x中的值為30,則有4個(gè)數(shù)符合要求,它們是1,3,5,15。
請(qǐng)按題意,完成填空。
試題程序:
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
【】;
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
printf("\nPleaseenteranintegernumber:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)printf("%d",aa[i]);
printf("\n");
}
24.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
25.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于______的聯(lián)系。
26.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
27.若從鍵盤(pán)輸入58,則以下程序輸出的結(jié)果是【】。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);}
28.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、【】和選擇排序等。
29.設(shè)有宏定義:
#defineWIDTH80
#defineLENGTHWIDTH+40
則執(zhí)行賦值語(yǔ)句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。
30.以下程序用以刪除字符串中所有的空格,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[100]={"OurteacherteachClanguage!"};inti,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!=''){()}
s[j]='\0';
printf("%s\n",s);
}
31.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
32.以下程序中用戶由鍵盤(pán)輸入一個(gè)文件名,然后輸入一串字符(用#結(jié)束輸入)存放到此文件中,形成文本文件,并將字符的個(gè)數(shù)寫(xiě)到文件的尾部。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[32];intcount=0;
printf(”Inputthefilename:");
scanf("%s",fname);
if((fp=fopen(【】,"w+"))==NULL)
{printf("Can'topenfile:%s\n",fname);exit(0);}
printf("Enterdata:\n");
while((ch=getchar())!='#')
{fputc(ch,fp);count++;}
fprintf(【】,"\n%d\n",count);
fclose(fp);
}
33.下面程序的功能是從鍵盤(pán)輸入一行字符,統(tǒng)計(jì)有多少個(gè)單詞,單詞間用空格分隔。補(bǔ)充所缺語(yǔ)句。
#include<stdio.h>
main()
{charss[80],c1,c2='';
inti=0,num=0;
gets(s);
while(s[i]!='\0')
{c1=s[i];
if(i==0)c2='';
elsec2=s[i-1];
if(【】)num++;
i++;
}
printf("Thereare%dwords,\n",num);
}
34.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{char*p=b;
for(;*p;p++)
printf("%s",p);
printf("\n");
}
35.下面程序是把從終端讀入的20個(gè)字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
36.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
37.以下程序調(diào)用隨機(jī)函數(shù)得到N個(gè)20以內(nèi)的整數(shù)放在s數(shù)組中。函數(shù)fun的功能是找出s數(shù)組中的最大數(shù)(不止一個(gè))所在下標(biāo)傳回主函數(shù)進(jìn)行輸出,并把最大值作為函數(shù)值返回,請(qǐng)?zhí)羁铡?/p>
#defineN30
man()
{ints[N],d[N],i,k,m;
for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}
m=fun(【】);
printf("m=%d\n",m);
printf(”Theindex;\n");
for(i=0;i<k;i++)printf("%4d",d[i]);
printf("\n\n");
}
fun(int*w,int*d,int*k)
{inti,j,m=0,v;
for(i=0;i<N;i++)
if(w[i]>w[m])【】;
v=w[m];
for(i=0,j=0;i<N;i++)
if(w[i]==v)【】;
*k=【】;
return【】;
}
38.以下程序運(yùn)行后的輸出結(jié)果是【】。(注:如果結(jié)果中含有回車,可加一空格寫(xiě)在一行,例如:
111
111
111
可以寫(xiě)成:111111111。
#include<stdio.h>
mala()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
39.執(zhí)行下列語(yǔ)句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
40.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長(zhǎng)時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。
請(qǐng)?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
三、1.選擇題(20題)41.有以下程序
#include<stdio.h>
#include<string.h>
voidfun(char*s[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;}
}
main()
{char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的運(yùn)行結(jié)果是
A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
42.若變量c為char類型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是______。
A.'a'<=c<='z'
B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)
D.(c>='a')&&(c<='z')
43.下面程序的輸出結(jié)果是()。#defineWW(X)X*Xmain(){inta,i;i=3;a=++WW(i+1);printf("%d\n",a);}
A.5B.6C.9D.程序有錯(cuò)誤
44.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A.x%2==1B.x/2C.x%2!=0D.x%2==0
45.有下列程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sm=fun((a++,b++,a+B),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。
A.6B.7C.8D.9
46.詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序的()。
A.代碼的規(guī)模B.運(yùn)行速度C.質(zhì)量D.可維護(hù)性
47.對(duì)關(guān)系S和關(guān)系R進(jìn)行集合運(yùn)算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運(yùn)算稱為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.除運(yùn)算
48.執(zhí)行下面程序的正確結(jié)果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}
A.1.9B.111133331.9C.33331.9D.1111233331.9
49.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}}
該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
50.執(zhí)行以下程序段后,w的值為()。intw='A',x=14,y=15;w=((x||y)&&(w<'a'));
A.-1B.NULLC.1D.0
51.以下程序的輸出結(jié)果是______。#include<sulio.h>#defmeSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf("%d\n",a);}
A.8B.9C.17D.20
52.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]="BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
53.若有說(shuō)明inti,j=2,*p=&i;,則能完成i=j賦值功能的語(yǔ)句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
54.設(shè)int型占2個(gè)字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
55.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fur(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
56.以下程序的輸出結(jié)果是______。main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"),k;for(k=1;k<3;k++)printf("%s\n",w[k]);}
A.ABCDFGHKLMB.ABCDEFGIJC.EFGJKOD.EFGHUKL
57.設(shè)x為int型變量,執(zhí)行以下語(yǔ)句,x=10;x+=x-x;x;x的值為_(kāi)_____。
A.10B.20C.30D.40
58.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}
59.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(L[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
60.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
四、選擇題(20題)61.
62.
63.
64.為了使模塊盡可能獨(dú)立,要求()。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的偶合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
65.設(shè)有如下三個(gè)關(guān)系表:
66.下述程序的運(yùn)行結(jié)果是()。
#includedstdio.h>
#includedstrin9.h>
main
{char*s1="abDuj";
char*s2="ABdUG";
intt;
t=strcmp(s1,s2);
printf("%d",t);
}
A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
67.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.1C.6D.8
68.
69.
70.
71.若有定義:inta,h;通過(guò)語(yǔ)句:scanf(”%d;%d”,&a,&B.;,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
72.
73.
74.(70)需求分析階段的任務(wù)是確定()
A.軟件開(kāi)發(fā)方法
B.軟件開(kāi)發(fā)工具
C.軟件開(kāi)發(fā)費(fèi)用
D.軟件系統(tǒng)功能
75.下列選項(xiàng)中屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。
A.可封裝
B.多態(tài)性
C.自下而上
D.逐步求精
76.
77.以下敘述中錯(cuò)誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡(jiǎn)單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過(guò)指向結(jié)構(gòu)體變量的指針訪問(wèn)所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
78.
79.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+C—k值的類型為:()。
A.intB.doubleC.floatD.char
80.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",(++p)[i]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.012B.135C.234D.345
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的3個(gè)邊長(zhǎng)(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回1;若不能,則返回0。例如,輸入3個(gè)邊長(zhǎng)為3,4,5,實(shí)際輸入時(shí),數(shù)與數(shù)之間以Enter鍵分隔而不是逗號(hào)。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<math.h>intproc(inta,intb,intc){if(a+b>c&&b+c>aa+c>b){if(a==b&&b==c)//****found****return1;elseif(a==b||b==c||a==c)return2;//****found****elsereturn3;}elsereturn0;}voidmain{inta,b,C,shape;printf("\nlnputa,b,C:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=proc(a,b,c);printf("\n\nTheshape:%d\n",shape);}
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串只包含字母和“#”號(hào),請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:刪除字符串中所有的“#”號(hào)。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“##w#e1##come###”,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是“welcome”。請(qǐng)勿改動(dòng)main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.D
2.C
3.B
4.C
5.D[解析]在ifelse語(yǔ)句中else,總是與離它最近的配對(duì)。本題目中x為1所以!勸0.所以執(zhí)行elsei語(yǔ)句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閯?所以條件不成立,所以else內(nèi)部的if..else語(yǔ)句不再執(zhí)行,所以y的值還是初始值0.
6.B
7.A指針變量必須區(qū)分基類型,可以向指針?biāo)竷?nèi)存單元寫(xiě)入與基類型相同的數(shù)據(jù),而不能寫(xiě)入任意數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針可以指向與其基類型相同的普通變量,選項(xiàng)C正確;指針是一個(gè)內(nèi)存地址,它是一個(gè)整數(shù),可以通過(guò)加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元,選項(xiàng)D正確。故本題答案為A選項(xiàng)。
8.D
9.C
10.D
11.A
12.B
13.C選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對(duì)表達(dá)式b=c計(jì)算;對(duì)于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。
14.B解析:b是整型數(shù),在輸人語(yǔ)句中要加取地址符,而c是數(shù)組名,本身就是數(shù)組的首地址,因此不用加取地址符。
15.C解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開(kāi)成由實(shí)參組成的表達(dá)式。
16.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見(jiàn)該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長(zhǎng)度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
17.B表達(dá)式x-=x+X可以寫(xiě)成x=x-(x+x),所以X的值為-l0。
18.AC語(yǔ)言中,合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,并且第1個(gè)字符必須是字母或下劃線。選項(xiàng)D中的“3break”錯(cuò)誤;用戶標(biāo)識(shí)符不能是C語(yǔ)言中的關(guān)鍵字或函數(shù),選項(xiàng)B中的“unsigned”是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符,“Switch”是合法的用戶標(biāo)識(shí)符;選項(xiàng)C中的“getch”是庫(kù)函數(shù)名,不是合法的用戶標(biāo)識(shí)符,而C語(yǔ)言區(qū)分字母大小寫(xiě),“Abc”是合法的用戶標(biāo)識(shí)符;選項(xiàng)A中的兩個(gè)標(biāo)識(shí)符都是合法的用戶標(biāo)識(shí)符。故本題答案為A選項(xiàng)。
19.D解析:本題主要考查++執(zhí)行的次序。執(zhí)行過(guò)x=-m++;后,x=-3,m=4;執(zhí)行x=x+8/++n;時(shí)8/++n=1;因此最后x=-216。
20.B根據(jù)ASCII碼可知大寫(xiě)字符A與小寫(xiě)字符a的ASCIl碼相差32,而D中應(yīng)該是加上'a',選項(xiàng)A和C左側(cè)的表達(dá)式都是大寫(xiě)字符C與大寫(xiě)字符A的差與'a'的ASCIl代碼的和就是小寫(xiě)字符c的ASCII代碼。
21.QTHRGQTHRG解析:函數(shù)strcmp(t,s)用來(lái)比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語(yǔ)句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語(yǔ)句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語(yǔ)句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲(chǔ)空間中,然后輸出字符數(shù)組t。
22.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)
23.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本題題干信息是求能整除x且不是偶數(shù)的所有正整數(shù)。循環(huán)語(yǔ)句中i從1開(kāi)始且每次增2,所以i始終是奇數(shù),語(yǔ)句,n=j;是記錄符合題意的整數(shù)的個(gè)數(shù)。
24.11解析:因?yàn)閤=4,y=3,所以表達(dá)式x<y的值為假(0),又因?yàn)閦=2,所以0<z的值為真(1),故最終輸出的結(jié)果為1。
25.1對(duì)多(或1:N)1對(duì)多(或1:N)
26.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。
27.585858585858解析:本題考查對(duì)if語(yǔ)句的掌握,當(dāng)輸入58以后,程序中的3個(gè)if語(yǔ)句都成立,所以分別輸出58。
28.交換排序交換排序解析:常見(jiàn)的排序方法有插入排序(包括簡(jiǎn)單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡(jiǎn)單選擇排序和堆排序等)。注意:常見(jiàn)的排序方法及其作用機(jī)制和區(qū)別。
29.880
30.s[j]=s[i];j++;s[j]=s[i];j++;解析:本題中相當(dāng)于字符串s中存儲(chǔ)著含有空格的字符,當(dāng)發(fā)現(xiàn)空格的時(shí)候就用這個(gè)空格字符后面的字符前移覆蓋這個(gè)空格字符,依次類推向后繼續(xù)。因此,應(yīng)填s[j]=s[i];j++;兩條語(yǔ)句。
31.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個(gè)字符串,即題中的ptr1=a和ptr2=b,然后就是通過(guò)指針的移動(dòng)可以引用到字符串中的每一個(gè)字符。題中的*(ptr1+k)是使指針ptr1向后移動(dòng)k個(gè)位置,然后取出指向的字符。
32.fnamefpfname\r\nfp解析:fopen()函數(shù)實(shí)現(xiàn)打開(kāi)文件的功能,通常的調(diào)用方式為:FILE*fp;fp=fopen(文件名,使用文件方式),因此,第一個(gè)橫線處要求填寫(xiě)要打開(kāi)文件的名字fname。fprintf()函數(shù)的—般調(diào)用方式為:fprintf(文件指針,格式字符串,輸出表列),所以第二個(gè)橫線處應(yīng)填寫(xiě)fp。
33.c1!==''&&c2==''
34.ABCDBCDCDD
35.\0's*p++\\0'\r\ns\r\n*p++解析:本題先通過(guò)for循環(huán)從鍵盤(pán)接收20個(gè)字符,然后在串尾賦一空值'\\0'作為串結(jié)束標(biāo)志。再使指針p指向串的首地址。最后通過(guò)while循環(huán)對(duì)字符串進(jìn)行掃描并輸出。
36.k=p;k=p;解析:為尋找數(shù)組中最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查通常從首元素開(kāi)始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k]更大時(shí),應(yīng)該用p更新k,所以在空框處應(yīng)填入代碼'k=p;'。
37.sd&km=id[j++]=ijv
38.123056009或123056009123\r\n056\r\n009\r\n或123056009解析:程序開(kāi)頭定義了一個(gè)3行3列的數(shù)組,即:
1,2,3
4,5,6
7,8,9
進(jìn)入循環(huán),for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
把a(bǔ)[1][0],a[2][0],a[2][1]分別賦為0,輸出結(jié)果為:
123
056
009
39.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。
40.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時(shí)滿足幾個(gè)條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價(jià)形式。
41.A解析:函數(shù)fun(char*s[],intn)的功能是對(duì)字符串?dāng)?shù)組的元素按照字符串的長(zhǎng)度從小到大排序。在主函數(shù)中執(zhí)行fun(ss,5)語(yǔ)句后,*ss[]={'xy','bcc','bbcc','aabcc','aaaacc'},ss[0],ss[4]的輸出結(jié)果為xy,aaaacc。
42.D解析:字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII碼存儲(chǔ)的,英文大寫(xiě)字母和小寫(xiě)字母在ASCII碼表中都是連續(xù)的,大寫(xiě)字母A到Z是從65到90,小寫(xiě)字母a到z是97到122,所以只要變量c大于a并且小于z就能保證其為小寫(xiě)字母。
43.C解析:表達(dá)式“a++WW(i+1);”,宏展開(kāi)之后為a=++i+1*i+1,先計(jì)算++i,結(jié)果為4,i的值也變?yōu)?,所以a=4+1*4+1=9。所以正確答案是選項(xiàng)C。
44.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來(lái)說(shuō),x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。
45.C解析:函數(shù)fun(intx,inty)的功能是返回兩個(gè)整型數(shù)據(jù)的和。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號(hào)表達(dá)式“a++,b++,a+b”的值等于5,表達(dá)式c++的值為3,調(diào)用于函數(shù)的表達(dá)式為“fun(5,3);”,其返回值等8。所以變量sum的值等于8。
46.C解析:詳細(xì)設(shè)計(jì)階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實(shí)現(xiàn)所要求的系統(tǒng),但詳細(xì)設(shè)計(jì)階段的任務(wù)還不是具體的編寫(xiě)程序,而是要設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)藍(lán)圖寫(xiě)出實(shí)際的程序代碼,因此,詳細(xì)設(shè)計(jì)階段的結(jié)果基本上就決定了最終的程序代碼的質(zhì)量。
47.AA)【解析】關(guān)系的并運(yùn)算是指,由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。
48.B解析:switch語(yǔ)句只接受int型變量,如果不是則隱式轉(zhuǎn)換為int,由于C語(yǔ)言中float到int的轉(zhuǎn)換是截尾取整,故在switch中從case1:標(biāo)號(hào)處開(kāi)始執(zhí)行,首先輸出4個(gè)1。此時(shí)又因?yàn)閏ase2:之前并沒(méi)有break;之類的跳轉(zhuǎn)語(yǔ)句,所以case2:標(biāo)號(hào)處的語(yǔ)句也被執(zhí)行,輸出4個(gè)3。最后以默認(rèn)的浮點(diǎn)數(shù)格式輸出變量a,變量a在switch語(yǔ)句中并未被改變,故最后輸出為1.900000,所以應(yīng)該選擇B。
49.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時(shí)的輸出結(jié)果來(lái)決定哪一項(xiàng)是正確的。第一次進(jìn)入循環(huán)時(shí),n的值是9,循環(huán)體內(nèi),先經(jīng)過(guò)n--運(yùn)算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項(xiàng)A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開(kāi)始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時(shí),輸出為6,由此可以排除選項(xiàng)C)。
50.C解析:字符變量w的初值為字符'A',其ASCII碼值為65,字符'a'的ASCII碼值為97,所以關(guān)系表達(dá)式w<'a'的值為1;變量x=14,變量y=15,x||y為或,x、y均為真,所以x||y的結(jié)果1。因而邏輯表達(dá)式(x||y)&&(w<'a')的值為1。
51.B解析:本題宏替換中遇到形參x以實(shí)參k+l代替,其他字符不變。SQR(k+1)展開(kāi)后應(yīng)為字符串k+l*k+l。
52.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPK\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串的第—個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i-,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
53.B解析:指針是—種用來(lái)存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。
54.A解析:本題int型占2個(gè)字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(2(上標(biāo))16-1),即0~65535。
55.C
56.D
57.B解析:本題x=10,表達(dá)式“x+=x-=x-x;”的求解步驟如下:先進(jìn)行x=x-x的運(yùn)算,相當(dāng)于x=x-(x-x)=x=10;再進(jìn)行x+=x的運(yùn)算,即x=x+x=200
58.C解析:C語(yǔ)言中,switch語(yǔ)句專用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰而直觀。switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。
59.D解析:在C語(yǔ)言中,定義一維數(shù)組的語(yǔ)句一般形式如下:
類型名數(shù)組名[常量表達(dá)式];
一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達(dá)式]。count表示能被2整除或被5整除的個(gè)數(shù),i則計(jì)算有多少個(gè)數(shù)組元素。
60.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過(guò)程設(shè)計(jì)表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
61.A
62.D
63.A
64.B解析:系統(tǒng)設(shè)計(jì)的質(zhì)量主要反映在模塊的獨(dú)立性上。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè):一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度;二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來(lái)說(shuō),要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。綜上所述,選項(xiàng)B的答案正確。
65.B兩個(gè)相同結(jié)構(gòu)關(guān)系的“并”是由屬于這兩個(gè)關(guān)系的元組組成的集合。
66.A本題考查符符串比較函數(shù)和兩個(gè)字符串比較的原則這兩個(gè)知識(shí)點(diǎn)。
\n(1)兩字符串比較的原則是依次比較兩個(gè)字符串同一位置的一對(duì)字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對(duì)字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個(gè)字符串相等;若一個(gè)字符串全部i個(gè)字符與另一個(gè)字符串的前i個(gè)字符相同,則字符串較長(zhǎng)的較大(2)strcmp(s1,s2)的返回值,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù);當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)。
67.A
\n本題考查switch語(yǔ)句。當(dāng)i一1時(shí),執(zhí)行case1,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a—a+2—13,a—a+3一l6:當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
68.D
69.D
70.C
71.C輸入數(shù)據(jù)的格式必須與seanf()的格式控制串完全匹配,所以輸入時(shí)必須在3和5之間輸入“;”。
72.B
73.D
74.D
75.D模塊化、自頂向下、逐步求精和限制使用goto語(yǔ)句是結(jié)構(gòu)化程序設(shè)計(jì)的原則。因此答案明顯為D.逐步求精。
76.D\r\n
77.A函數(shù)返回值類型可以是簡(jiǎn)單類型和結(jié)構(gòu)體類型。
78.B
79.B雙目運(yùn)算中兩邊運(yùn)算量類型轉(zhuǎn)換規(guī)律:
運(yùn)算數(shù)1\t\t\t\r\n\t\t\t\t\t運(yùn)算數(shù)2\t\t\t\t\r\n\t\t\t\t\t轉(zhuǎn)換結(jié)果類型\t\t\t\t\r\n\t\t\t\t\t短整型\t\t\t\t\r\n\t\t\t\t\t長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t短整型一>長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t整型一>長(zhǎng)整型\t\t\t\t\r\n\t\t\t\t\t字符型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t字符型一>整型\t\t\t\t\r\n\t\t\t\t\t有符號(hào)整型\t\t\t\t\r\n\t\t\t\t\t無(wú)符號(hào)整型\t\t\t\t\r\n\t\t\t\t\t有符號(hào)整型一>無(wú)符號(hào)整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t浮點(diǎn)型\t\t\t\t\r\n\t\t\t\t\t整型一>浮點(diǎn)型\t\t\t\t\r\n\t在a/b的時(shí)候,a,b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short一>int->unsigned->long->double←float。
80.B第一個(gè)for循環(huán)的結(jié)果是p[9]={0,1,2,3,4,,5,6,7,8},第二個(gè)for循環(huán):i=0,++p,使得p指向了1,所以輸出的結(jié)果是1,然后i++,i=1,++p,p指向了3……81.(1)錯(cuò)誤:returnl;正確:return3;(2)錯(cuò)誤:return3;正確:returnl;【解析】三條邊都相等的三角形為等邊三角形,按題目中要求,等邊三角形返回3,若不是等邊三角形也不是等腰三角形則返回l,因此,“returnl;”應(yīng)改為“return3;”;“return3;”應(yīng)改為“returnl;”。
82.
【解析】在while循環(huán)中,利用if判斷表達(dá)式中每一個(gè)字符是否為“#”,如果不是,將其復(fù)制到字符串,否則跳過(guò),這就實(shí)現(xiàn)了函數(shù)的功能。
(1)首先利用工作指針指向字符串,當(dāng)指針不指向串尾時(shí),就對(duì)字符串進(jìn)行循環(huán)判斷。
(2)在循環(huán)中利用if判斷表達(dá)式字符是否為“#”,如果不是,將其復(fù)制到字符串,否則跳過(guò)。
(3)所有字符處理完后,記得在新串s的末尾加上結(jié)束符“ˊ\0ˊ”。
2022-2023年黑龍江省齊齊哈爾市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.已知a,b均被定義為double型,則表達(dá)式:a=5/2的值為()。
A.1B.3C.3.0D.2.5
2.下面的哪一個(gè)保留字不能作為函數(shù)的返回類型()。
A.voidB.intC.newD.long
3.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是()。
A.7B.8C.6D.2
4.對(duì)于n個(gè)元素,下列哪種操作時(shí)間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
5.有以下程序:#includeMain(){Int?x=1.y=0;if(!x)y++;elsef(x==0)if(x)y+=2;else?y+=3;printf("%d\n",y);\}程序運(yùn)行后的輸出結(jié)果是()。A.3B.2C.1D.0
6.以下是一個(gè)對(duì)數(shù)組A(含有n個(gè)數(shù)值元素)進(jìn)行排序的算法偽代碼,請(qǐng)問(wèn)它的平均時(shí)間復(fù)雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
7.以下關(guān)于指針的說(shuō)法錯(cuò)誤的是()。
A.可以向指針中寫(xiě)入任意數(shù)據(jù)
B.可以向指針?biāo)竷?nèi)存單元中寫(xiě)入數(shù)據(jù)
C.指針可以指向與其基類型相同的普通變量
D.可以通過(guò)加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元
8.
9.
10.以下不正確的敘述是()。
A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低
B.在C程序中,APH和aph是兩個(gè)不同的變量
C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變
D.當(dāng)從鍵盤(pán)輸入數(shù)據(jù)時(shí),對(duì)整型變量只能輸入整型數(shù)值,對(duì)實(shí)型變量只能輸入實(shí)型數(shù)值
11.
12.在單鏈表指針為p的結(jié)點(diǎn)之后插入指針為s的結(jié)點(diǎn),正確的操作是()。A.p->next=s;s->next=p->next;
B.s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next;
D.p->next=s->next;p->next=s;
13.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
14.有以下語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是______。
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C.scanf("%d%s",b,c);
D.scanf("%d%s",b,&c);
15.#define能作簡(jiǎn)單的替代,用宏來(lái)替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語(yǔ)句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
16.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是()。
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
17.若有定義語(yǔ)句:“intx=10;”,則表達(dá)式x-=x+x的值為()。
A.-20B.-l0C.0D.10
18.以下可以正確且安全地用作用戶標(biāo)識(shí)符的一組選項(xiàng)是()。
A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter
19.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是______。
A.3B.5C.-1D.-216
20.已知大寫(xiě)字母A的ASCII碼是65,小寫(xiě)字母a的ACSII碼是97。下列能將變量C中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
二、2.填空題(20題)21.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程
序的輸出結(jié)果是______。
22.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
23.以下程序中函數(shù)fun的功能是求出能整除x且不是偶數(shù)的務(wù)正整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個(gè)數(shù)通過(guò)形參n返回。
例如,若x中的值為30,則有4個(gè)數(shù)符合要求,它們是1,3,5,15。
請(qǐng)按題意,完成填空。
試題程序:
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
【】;
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
printf("\nPleaseenteranintegernumber:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)printf("%d",aa[i]);
printf("\n");
}
24.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
25.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于______的聯(lián)系。
26.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
27.若從鍵盤(pán)輸入58,則以下程序輸出的結(jié)果是【】。
main()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);}
28.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、【】和選擇排序等。
29.設(shè)有宏定義:
#defineWIDTH80
#defineLENGTHWIDTH+40
則執(zhí)行賦值語(yǔ)句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。
30.以下程序用以刪除字符串中所有的空格,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[100]={"OurteacherteachClanguage!"};inti,j;
for(i=j=0;s[i]!='\0';i++)
if(s[i]!=''){()}
s[j]='\0';
printf("%s\n",s);
}
31.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
32.以下程序中用戶由鍵盤(pán)輸入一個(gè)文件名,然后輸入一串字符(用#結(jié)束輸入)存放到此文件中,形成文本文件,并將字符的個(gè)數(shù)寫(xiě)到文件的尾部。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[32];intcount=0;
printf(”Inputthefilename:");
scanf("%s",fname);
if((fp=fopen(【】,"w+"))==NULL)
{printf("Can'topenfile:%s\n",fname);exit(0);}
printf("Enterdata:\n");
while((ch=getchar())!='#')
{fputc(ch,fp);count++;}
fprintf(【】,"\n%d\n",count);
fclose(fp);
}
33.下面程序的功能是從鍵盤(pán)輸入一行字符,統(tǒng)計(jì)有多少個(gè)單詞,單詞間用空格分隔。補(bǔ)充所缺語(yǔ)句。
#include<stdio.h>
main()
{charss[80],c1,c2='';
inti=0,num=0;
gets(s);
while(s[i]!='\0')
{c1=s[i];
if(i==0)c2='';
elsec2=s[i-1];
if(【】)num++;
i++;
}
printf("Thereare%dwords,\n",num);
}
34.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{char*p=b;
for(;*p;p++)
printf("%s",p);
printf("\n");
}
35.下面程序是把從終端讀入的20個(gè)字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
36.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
37.以下程序調(diào)用隨機(jī)函數(shù)得到N個(gè)20以內(nèi)的整數(shù)放在s數(shù)組中。函數(shù)fun的功能是找出s數(shù)組中的最大數(shù)(不止一個(gè))所在下標(biāo)傳回主函數(shù)進(jìn)行輸出,并把最大值作為函數(shù)值返回,請(qǐng)?zhí)羁铡?/p>
#defineN30
man()
{ints[N],d[N],i,k,m;
for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}
m=fun(【】);
printf("m=%d\n",m);
printf(”Theindex;\n");
for(i=0;i<k;i++)printf("%4d",d[i]);
printf("\n\n");
}
fun(int*w,int*d,int*k)
{inti,j,m=0,v;
for(i=0;i<N;i++)
if(w[i]>w[m])【】;
v=w[m];
for(i=0,j=0;i<N;i++)
if(w[i]==v)【】;
*k=【】;
return【】;
}
38.以下程序運(yùn)行后的輸出結(jié)果是【】。(注:如果結(jié)果中含有回車,可加一空格寫(xiě)在一行,例如:
111
111
111
可以寫(xiě)成:111111111。
#include<stdio.h>
mala()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
39.執(zhí)行下列語(yǔ)句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
40.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長(zhǎng)時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。
請(qǐng)?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
三、1.選擇題(20題)41.有以下程序
#include<stdio.h>
#include<string.h>
voidfun(char*s[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;}
}
main()
{char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的運(yùn)行結(jié)果是
A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
42.若變量c為char類型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是______。
A.'a'<=c<='z'
B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)
D.(c>='a')&&(c<='z')
43.下面程序的輸出結(jié)果是()。#defineWW(X)X*Xmain(){inta,i;i=3;a=++WW(i+1);printf("%d\n",a);}
A.5B.6C.9D.程序有錯(cuò)誤
44.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A.x%2==1B.x/2C.x%2!=0D.x%2==0
45.有下列程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sm=fun((a++,b++,a+B),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。
A.6B.7C.8D.9
46.詳細(xì)設(shè)計(jì)的結(jié)果基本決定了最終程序的()。
A.代碼的規(guī)模B.運(yùn)行速度C.質(zhì)量D.可維護(hù)性
47.對(duì)關(guān)系S和關(guān)系R進(jìn)行集合運(yùn)算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運(yùn)算稱為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.除運(yùn)算
48.執(zhí)行下面程序的正確結(jié)果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}
A.1.9B.111133331.9C.33331.9D.1111233331.9
49.有如下程序
main()
{intn=9;
while(n>6){n--;printf("%d",n);}}
該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
50.執(zhí)行以下程序段后,w的值為()。intw='A',x=14,y=15;w=((x||y)&&(w<'a'));
A.-1B.NULLC.1D.0
51.以下程序的輸出結(jié)果是______。#include<sulio.h>#defmeSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf("%d\n",a);}
A.8B.9C.17D.20
52.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]="BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
53.若有說(shuō)明inti,j=2,*p=&i;,則能完成i=j賦值功能的語(yǔ)句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
54.設(shè)int型占2個(gè)字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
55.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fur(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
56.以下程序的輸出結(jié)果是______。main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"),k;for(k=1;k<3;k++)printf("%s\n",w[k]);}
A.ABCDFGHKLMB.ABCDEFGIJC.EFGJKOD.EFGHUKL
57.設(shè)x為int型變量,執(zhí)行以下語(yǔ)句,x=10;x+=x-x;x;x的值為_(kāi)_____。
A.10B.20C.30D.40
58.若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf(**\n);}casec:printf(**\n);}
59.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(L[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
60.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
四、選擇題(20題)61.
62.
63.
64.為了使模塊盡可能獨(dú)立,要求()。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的偶合程度要盡量弱
D.模塊的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重癥醫(yī)學(xué)科考試題(附答案)
- 護(hù)理三基三嚴(yán)理論知識(shí)??荚囶}與參考答案
- 多人承包魚(yú)塘合同范例
- 皮夾外加工合同范例
- 急救理論知識(shí)習(xí)題及答案
- 戶外改造策劃合同范例
- 河津出租車承包合同范例
- 小區(qū)清潔服務(wù)合同范例
- 2025年?yáng)|營(yíng)貨運(yùn)上崗證模擬考試試題
- 產(chǎn)權(quán)代辦合同范例
- 合理性、先進(jìn)性的證明
- 人教版數(shù)學(xué)三年級(jí)上冊(cè)分?jǐn)?shù)的初步認(rèn)識(shí)分?jǐn)?shù)的初步認(rèn)識(shí)-課件16
- 選必中第一單元大單元教學(xué)設(shè)計(jì)
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GB/T 23988-2009涂料耐磨性測(cè)定落砂法
- GB/T 1962.2-2001注射器、注射針及其他醫(yī)療器械6%(魯爾)圓錐接頭第2部分:鎖定接頭
- GB/T 15905-1995硫化橡膠濕熱老化試驗(yàn)方法
- 中央空調(diào)空調(diào)年度維保報(bào)價(jià)單
- (新平臺(tái))國(guó)家開(kāi)放大學(xué)《工程數(shù)學(xué)(本)》形成性考核作業(yè)1-5參考答案
- ommaya囊的護(hù)理教學(xué)課件
- 統(tǒng)計(jì)與概率的教材梳理講稿
評(píng)論
0/150
提交評(píng)論