版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序
main()
{
intn[3],i,j;
for(i=0;i<3;i++)
n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2
B.1
C.0
D.3
2.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
3.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
4.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()。
A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項(xiàng)管理
5.
6.以下選項(xiàng)中,值為1的表達(dá)式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
7.對(duì)于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
8.一個(gè)函數(shù)返回值的類型是由()決定的。
A.return語句中表達(dá)式的類型B.定義函數(shù)時(shí)指定的函數(shù)類型C.在調(diào)用函數(shù)時(shí)臨時(shí)指定D.調(diào)用函數(shù)的主調(diào)函數(shù)的類型
9.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
10.棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是A.A.線性存儲(chǔ)結(jié)構(gòu)和鏈表存儲(chǔ)結(jié)構(gòu)
B.散列方式和索引方式
C.鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組
D.線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)
11.就平均查找速度而言,下列查找速度從慢至快的關(guān)系是()
A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半
12.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):
inti=8;
則下列語句:
printf("i=%08d",i);
輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8
13.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
14.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90
B.Zhao,m,85,Sun,f,90
C.Zhao,m,85,Qian,f,95
D.Sun,f,90,Qian,f,95
15.若有"doublea;",則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
16.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx
17.在下面的二維數(shù)組定義中,正確的是()。
A.inta[5][];
B.inta[][5];
C.inta[][3]={{1,3,5},{2}};
D.inta[](10);
18.以下敘述中正確的是()。
A.在switch語句中,不一定使用break語句
B.break語句只能用于switch語句
C.break語句必須與switch語句中的case配對(duì)使用
D.在switch語句中必須使用default
19.若某表最常用的操作是在最后一個(gè)結(jié)點(diǎn)之后插入一個(gè)結(jié)點(diǎn)或刪除最后一個(gè)結(jié)點(diǎn),則采用()存儲(chǔ)方式最節(jié)省運(yùn)算時(shí)間。
A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結(jié)點(diǎn)的雙循環(huán)鏈表
20.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。
A.8,6B.8,3C.6,4D.7,4
二、2.填空題(20題)21.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
執(zhí)行后的輸出結(jié)果是【】。
22.下列程序的功能是將字符串s中所有的字符c刪除。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
23.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
24.下列程序段的輸出結(jié)果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
25.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。
26.在面向?qū)ο蟮脑O(shè)計(jì)中,用來請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱為【】。
27.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
28.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
29.有以下程序:
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
ptintf("%d%d\n",x,y);
}
執(zhí)行后輸出結(jié)果是【】。
30.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
31.若有如下程序:
#include"stdio.h"
main()
{chars[30];
Strcpy(&S[0],"adc");
Strcpy(&S[1],"def");
strcpy(&S[2],"gh");;
printf("%S\n",s);
則程序運(yùn)行后的輸出結(jié)果是【】。
32.一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,則實(shí)體“宿舍”與實(shí)體“學(xué)生”的聯(lián)系屬于()的聯(lián)系。
33.長(zhǎng)度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。
34.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。
35.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
36.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
37.以下程序的輸出結(jié)果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
38.以下程序的輸出結(jié)果是______。
main()
{chars[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
39.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。
40.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
三、1.選擇題(20題)41.設(shè)a=5,bc6,c=7,d=8,m=2,n=2,執(zhí)行(m=a>b)&&(n=c>b)后n的值為______。
A.1B.2C.3D.4
42.執(zhí)行以下程序段()x=-1;do{x=x*x;}while(!x);
A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤
43.有以下定義:inta[4][3]={1,2,3,4,5,6,7,8,9.10,11,12};int(*ptr)[3]=a,*p=a[0];則下列能夠正確表示數(shù)組元素a[1][2]的表達(dá)式是()。
A.*((*ptr+1}+2)B.*(*(p+5))C.(*ptr+1)+2D.*(*(a+1)+2)
44.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系
45.下列敘述中正確的是()。
A.C語言編譯時(shí)不檢查語法B.C語言的子程序有過程和函數(shù)兩種C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用
46.以下程序的輸出結(jié)果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}
A.0B.29C.31D.無定值
47.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char為指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的。號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
48.對(duì)于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時(shí)依次輸入abcd、abba和abc三個(gè)字符串,則輸出結(jié)果為______。
A.abcdB.abbaC.abcD.abca
49.已有定義inta=3;和輸出語句printf("%8x",A);以下正確的敘述是()。
A.整型變量的輸出格式符只有%d一種
B.%x是格式符的一種,它可以適用于任何一種類犁的數(shù)據(jù)
C.%x是格式符的一種,其變量的值按十六進(jìn)制數(shù)輸出,但%08x是錯(cuò)誤的
D.%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度
50.若fp是指向某文件的指針,且已讀到此文件末尾,則庫函數(shù)feof(fp)的返回值是()
A.EOFB.0C.非零值D.NULL
51.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
52.有以下程序:structSTU{charname[10];intnum;intscore;};main(){structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550),{'Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[i]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}執(zhí)行后輸出結(jié)果是()。
A.550550B.680680C.580550D.580680
53.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中連續(xù)的三個(gè)節(jié)點(diǎn)。structnode{chardata;structnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指節(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的連續(xù),以下不能完成此操作的語句是()。
A.q->next=r->next;p->next=r;r->next=q;
B.p->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;p->next=r;
D.r->next=q;p->next=r;q->next=r->next;
54.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是______。
A.12353514B.12353513C.12343514D.12343513
55.有以下函數(shù)定義:
voidfun(intn,doublex){……}
若以下選項(xiàng)中的變量都已正確定義并賦值,則對(duì)函數(shù)fun的正確調(diào)用語句是A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
56.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是______。
A.0B.70C.35D.1
57.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
58.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(ar+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。
A.xyzabcABCB.zabeABCC.yzabcABCD.xyabcABC
59.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在執(zhí)行了c=&b;b=&a;語句后,表達(dá)式**c的值是()。
A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址
60.下面程序段的輸出結(jié)果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
四、選擇題(20題)61.
62.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.1C.2D.0
63.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
64.
65.
66.
67.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
68.下列定義數(shù)組的語句中,正確的是()。
69.以下語句中存在語法錯(cuò)誤的是()。
70.下列程序的輸出結(jié)果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0
71.
72.
73.
74.下列敘述中正確的是()。
A.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為n/2
C.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為log2n
D.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為nlog2n
75.沒有以下語句
則Z的二進(jìn)制值是()。
A.00010100B.00011011C.00011100D.00011000
76.
77.
78.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合
79.
80.軟件設(shè)計(jì)中衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是()。
A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:計(jì)算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,當(dāng)x的值為1,y的值為2,z的值為3時(shí),函數(shù)值為2.O0。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
參考答案
1.D初始時(shí)定義一個(gè)大小為3個(gè)一維整型數(shù)組,第一個(gè)for語句是對(duì)數(shù)組賦初值,每個(gè)值都為0。后面是一個(gè)for語句的嵌套調(diào)用,外層的循環(huán)變量i的取值為[0,2],內(nèi)層循環(huán)變量的取值范圍為[0,2]。最初外層的循環(huán)變量i=0,內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外層for語句的循環(huán)變量為1時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[1]+1,得到n[0]=2,n[1]=2,n[2]=2。外層for語句的循環(huán)變量為2時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[2]+1,得到n[0]=3,n[1]=3,n[2]=3。最后的輸出結(jié)果為3。
2.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。
3.A解析:本題考查C語言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
4.A在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復(fù)雜的數(shù)據(jù),有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。
5.A
6.B字符‘\\0’為空值,其ASCII值為0,所以B選項(xiàng)的值為1。字符‘0’的ASCII值為48,所以A、C、D選項(xiàng)的值均不為1。故本題答案為B選項(xiàng)。
7.D
8.B
9.D
10.A解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。
11.B
12.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時(shí),在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。
13.D
14.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對(duì)它初始化,調(diào)用函數(shù)f。將局部變量c的各個(gè)成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時(shí)a、b的各個(gè)成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項(xiàng)。
15.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
16.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
17.C
18.Aswitch語句中不一定使用break語句,選項(xiàng)A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項(xiàng)B、C錯(cuò)誤;switch語句不一定需要使用default語句,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。
19.D
20.C解析:本題考查的知識(shí)點(diǎn)是運(yùn)算符的優(yōu)先級(jí).在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個(gè)選項(xiàng)中C正確。
21.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。
22.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲(chǔ)存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過j++將下標(biāo)加1,指向下一元素要存儲(chǔ)的位置。
23.1212解析:本題的第一個(gè)for循環(huán)用于給數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
24.morningclassmorningclass解析:本題考查了兩個(gè)知識(shí)點(diǎn):①“++,--”運(yùn)算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n='c'時(shí),執(zhí)行“case'c'”,輸出morning;因?yàn)榇司渲袥]有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。
25.數(shù)據(jù)模型數(shù)據(jù)模型
26.消息消息解析:在面向?qū)ο蠹夹g(shù)中,主要用到對(duì)象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求。
27.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
28.存儲(chǔ)結(jié)構(gòu)
29.8484解析:“值傳遞”指實(shí)參將值傳遞給形參后,實(shí)參與形參再無聯(lián)系。也就是說對(duì)行參的改變將不影響實(shí)參;地址傳遞是指地址或數(shù)組名作為形參時(shí)的參數(shù)傳遞,這種情況下對(duì)形參的改變將對(duì)實(shí)參產(chǎn)生影響。函數(shù)f(y,*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實(shí)參y的值將不改變,而實(shí)參x的值將改變,故最后輸出的y值為4,而x的值為8。
30.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
31.adghadgh解析:函數(shù)strcpy是字符串復(fù)制函數(shù)。第一次將'adc'復(fù)制到以&s[0]為起始地址的存儲(chǔ)空間中,第二次將'def'復(fù)制到以&s[1]為起始地址的存儲(chǔ)空間中,“dc”將被覆蓋,變?yōu)椤癮def”,第三次將“gh”復(fù)制到以&s[2]為起始地址的存儲(chǔ)空間中,“ef”將被覆蓋,變?yōu)椤癮dgh”。
32.一對(duì)多一對(duì)多解析:在現(xiàn)實(shí)世界中事物間的關(guān)聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實(shí)體集間的一定關(guān)系。兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,分別是一對(duì)一,一對(duì)多和多對(duì)多,依據(jù)題意,一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,所以實(shí)體“宿舍”與實(shí)體“學(xué)生”的聯(lián)系屬于一對(duì)多的聯(lián)系。
33.n/2性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
34.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
35.完整性控制完整性控制
36.99解析:本題考查函數(shù)的綜合知識(shí)。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符,將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運(yùn)算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
37.55解析:此程序中,for循環(huán)語句后面直接跟了一個(gè)“;”,表明循環(huán)體為空。輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。
38.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。
39.2525解析:#NAME?
40.252H252H解析:要解答本題,首先要明白在對(duì)指針進(jìn)行加,減運(yùn)算時(shí),數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個(gè)存儲(chǔ)單元長(zhǎng)度。1個(gè)存儲(chǔ)單元長(zhǎng)度占存儲(chǔ)空間的多少,應(yīng)該視具體情況而定,如果存儲(chǔ)單元的基類型是血型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié);如果存儲(chǔ)單元基類型是float型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。
41.B解析:m=a>b的值為邏輯值0,n=c>b不被執(zhí)行,n的值仍為2。
42.A
43.C解析:本題定義了一個(gè)二維數(shù)組a,一個(gè)含有3個(gè)元素的指針數(shù)組ptr和一個(gè)指針變量p,并使指針數(shù)組和指針變量p指向數(shù)組a。
44.C解析:程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
45.D解析:C語言相對(duì)其他高級(jí)語言來說,放寬了語法檢查,因此程序設(shè)計(jì)自由度大,但并不是不檢查語法,C語言的程序是由函數(shù)構(gòu)成的。函數(shù)不能嵌套定義,但是可以嵌套調(diào)用。
46.C解析:函數(shù)fun的形參是簡(jiǎn)單變量,main函數(shù)中調(diào)用fun時(shí)只是把實(shí)參的值傳遞給形參,形參的改變不影響實(shí)參,所以調(diào)用完函數(shù)fun后a的值不發(fā)生變化,即a=31。
47.A解析:C語言中[]比:優(yōu)先級(jí)高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個(gè)元素,然后再與line前面的“*”結(jié)合,表示此數(shù)組是一個(gè)指針數(shù)組,每個(gè)數(shù)組元素都是一個(gè)基類型為char的指針變量。
48.B解析:本題自定義函數(shù)scmp()的作用是比較字符串s1和s2的大小,如果s1<s2,函數(shù)返回s1的值,否則返回s2的值。若運(yùn)行時(shí)依次輸入abcd、abba和abc三個(gè)字符串,執(zhí)行strcpy(string,scmp(str[0],str[1]));后,string的值為abba,再執(zhí)行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷貝到字符串?dāng)?shù)組string中,所以本題輸出abba。
49.D解析:本題考查printf函數(shù)的格式?!?8x”表示以十六進(jìn)制無符號(hào)形式輸出整掣數(shù)據(jù)?!?”表示指定輸出數(shù)據(jù)的寬度為8位。
50.C
51.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語句輸出的結(jié)果為a,97;第二個(gè)輸出語句輸出的結(jié)果為k=12。
52.C解析:本題中首先定義了結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個(gè)長(zhǎng)度為10的字符數(shù)組、兩個(gè)整型變量num和Score組成。在主函數(shù)中,定義了一個(gè)長(zhǎng)度為5的結(jié)構(gòu)體數(shù)組s并賦初值,一個(gè)指針數(shù)組p和一個(gè)指針變量t,接著將數(shù)組s中各元素的地址依次賦給指針數(shù)組p中的各成員。然后通過兩個(gè)for循環(huán)將數(shù)組p按Score的值從小到大的順序排列。因此最后輸出的p[1]->Score的值為550,而數(shù)組s[1].Score的值為580,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
53.D解析:D中的操作將會(huì)丟失r后面的鏈表結(jié)構(gòu),不能保持鏈表的連續(xù)。
54.A解析:自增運(yùn)算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。
55.C解析:選項(xiàng)A中應(yīng)將y和m前面的函數(shù)的類型說明符去掉,故選項(xiàng)A不正確;選項(xiàng)B中函數(shù)傳了2個(gè)參數(shù),其中一個(gè)為整型一個(gè)為浮點(diǎn)型,而fun()函數(shù)在定義時(shí)聲明的2個(gè)參數(shù),一個(gè)為整型一個(gè)為雙精度型,其參數(shù)類型不一致,故選項(xiàng)B不正確;選項(xiàng)D在調(diào)用函數(shù)時(shí),不應(yīng)該再聲明其返回類型,故迭項(xiàng)D不正確.所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
56.C解析:位與運(yùn)算是將兩個(gè)運(yùn)算分量看作兩個(gè)二進(jìn)制數(shù),然后對(duì)兩個(gè)二進(jìn)制數(shù)的相應(yīng)位進(jìn)行與運(yùn)算,若同時(shí)為1則結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。因此,當(dāng)兩個(gè)運(yùn)算分量相同時(shí),它們的相應(yīng)位肯定也相同,即不同為1就同為0。所以得到的結(jié)果和運(yùn)算分量也相同。所以,4個(gè)選項(xiàng)中選項(xiàng)C)符合題意。
57.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。
58.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC防到了*p1所指向的存儲(chǔ)單元中:strcpy在本題將abcABC復(fù)制到str+2所指向的存儲(chǔ)單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。
59.C解析:本題考查指向指針的指針。*c表示c間接指向的對(duì)象的地址,而**c是c間接指向的對(duì)象的值。在c*&b中,已經(jīng)把b的地址存放在c里了,*c就指向了b的地
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024路面鋪裝工程測(cè)量與放樣服務(wù)合同
- 2025年度智慧社區(qū)物業(yè)管理服務(wù)合同規(guī)范文本3篇
- 2025年度殯葬墓地銷售及售后服務(wù)協(xié)議書3篇
- 2025年度數(shù)據(jù)中心建設(shè)承包合同參考范文4篇
- 2025年度智能車位共享平臺(tái)代理銷售合同模板4篇
- 2024栽樹合同范本:生態(tài)濕地栽樹項(xiàng)目合同3篇
- 2025年度智能儲(chǔ)藏室資產(chǎn)交易合同4篇
- 2025年度智能化倉儲(chǔ)儲(chǔ)藏室租賃及運(yùn)營(yíng)管理協(xié)議范本4篇
- 2025年度醫(yī)療設(shè)備代工制造合同4篇
- 2025年度個(gè)人車輛購(gòu)置稅連帶擔(dān)保協(xié)議4篇
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 有機(jī)化學(xué)機(jī)理題(福山)
- 醫(yī)學(xué)會(huì)自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動(dòng)物遺傳育種學(xué)》動(dòng)物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報(bào)告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
- 7.6用銳角三角函數(shù)解決問題 (2)
評(píng)論
0/150
提交評(píng)論