版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年黑龍江省大慶市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括A.順序結(jié)構(gòu)B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(fù)(循環(huán))結(jié)構(gòu)
2.若以“a+”方式打開一個已存在的文件,則下列敘述正確的是()。
A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作
B.文件打開時,原有文件內(nèi)容不被刪除,只能進行讀操作
C.文件打開時,原有文件內(nèi)容被刪除,只能進行寫操作
D.以上三種說法都不正確
3.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45
4.函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項是()。
A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s
5.假設(shè)以數(shù)組A[m]存放循環(huán)隊列的元素,其頭尾指針分別為front和rear,則當(dāng)前隊列中的元素個數(shù)為()。
A.(rear-front+m)%m
B.rear-front+1
C.(front-rear+m)%m
D.(rear-front)%m
6.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abcdefghijklmnopq
B.afgebcdhnopqmijklhnopqmijkl
C.efgabcdmnopqhijkl
D.mijklhnopqebcdafg
7.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()
A.2和4B.1和5C.4和2D.5和1
8.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是
A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>
9.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
10.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu
B.efgabcdmnopqhijkIrstuvwxyz
C.efgacdmopqhjkIrvwxyz
D.eefgaabcdmmnopqhhijkIrrstuvwxyz
11.信息隱蔽的概念與下述哪一種概念直接相關(guān)?
A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型的劃分D.模塊耦合度
12.若有定義"int(*pt)[3];",則下列說法正確的是()。
A.定義了基類型為int的三個指針變量
B.定義了基類型為int的具有三個元素的指針數(shù)組pt
C.定義了一個名為*pt、具有三個元素的整型數(shù)組
D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組
13.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a(chǎn)’+‘A’);}程序運行后的輸出結(jié)果是()。
A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR
14.若變量已正確定義為int型,要通過語句“scanf(“%d,%d,%d”,&a,&b,&c);”將a賦值為1、將b賦值為2、將c賦值為3,以下輸入形式中錯誤的是(注:□代表一個空格符)()。
A.1,2,3<Enter>
B.□□□1,2,3<Enter>
C.1,□□□2,□□□3<Enter>
D.1□2□3<Enter>
15.下列判斷正確的是()。
A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
16.程序運行后的輸出結(jié)果是()。A.0304.B.2050C.3344D.3040
17.以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}
A.19B.17C.15D.12
18.當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。
A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值
19.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點,A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點()。
A.99B.100C.101D.49E.50F.51
20.下列程序的輸出結(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
二、2.填空題(20題)21.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)數(shù)返回字符串:yes!否則函數(shù)返回這符串:no!并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
pl=str;p2=______;
for(i=0;i<=strlen(str)/2;i+*)
if(*p1++!=*p2--){t=1;break;}
if(______)return("yes!");
elsereturn(*no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",______);
}
22.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
23.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
24.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
25.閱讀下面程序,則程序的執(zhí)行結(jié)果為【】。
#include"stdio.h"
main()
{inta=30,b=20,z;
z=fun(a+b,a-b);
printf("%d\n",z);}
fun(inta,intb)
{intz;
z=a/b;
returnz;}
26.以下程序的運行結(jié)果是______。
#include<string.h>
typedefstructstudent{
charname[10];
longsno;
floatscore;
}STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p-&d;
d=a;
if{strcmp(a.nalne,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%ld%s\n",d.sno,p>name};
}
27.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
28.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負(fù)值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.下面程序的功能是求整數(shù)m、n的最大公約數(shù),請?zhí)羁铡?/p>
main()
{intm,n,r;
scanf("%d,%d",m,n);
if(【】){r=m;m=n;n=r;}
while(【】)
{r=m%n;m=n;n=r;}
printf("%d",m);
}
31.設(shè)有以下結(jié)構(gòu)體類型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:
fwrite(student,【】,1,fp);
32.如果一個工人可管理多個設(shè)備,而一個設(shè)備只被一個工人管理,則賣體“工人”與實體“設(shè)備”之間存在【】關(guān)系。
33.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
運行結(jié)果是【】
34.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與()。
35.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細(xì)設(shè)計屬于______中的一個階段。
36.以下程序的輸出結(jié)果是______。
main()
{inta=177;
printf("%o\n",a);
37.若有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時,正確的賦值方法是
38.若有如下定義,則該數(shù)組的第一維大小為【】。
intb[][4]={1,2,3,4,5,6,7,8,9);
39.若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出結(jié)果是【】。
40.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結(jié)果是()。
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
42.若有如下定義:intx=6,y=3,z=2;則表達式x=y||y<z&&z==z的值是()。
A.0B.1C.4D.6
43.有以下程序:voidchange(intk[]){k[0]=k[5];}main(){intx[10]=(1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運行后輸出的結(jié)果是()。
A.678910B.13579C.12345D.62345
44.若變量已正確說明為int類型,要通過語句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
A.3<回車>5<回車>8<回車>
B.3,5,8<回車>
C.3<回車>58<回車>
D.35<回車>8<回車>
45.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
46.運行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmoming!Bye_ye!
D.Hello!Bye_ye!
47.下列語句中,在字符串s1和s2相等時顯示“theyareEqual”的是()。
A.if(*s1==*s2)
B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");
C.if(s1==s2)
D.if(strcmp(s1,s2))Puts("theyareEqual");pros("theyareEqual");
48.有以下函數(shù)定義:
voidfun(intn,doublex){……}
若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調(diào)用語句是A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
49.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合
50.有下列程序:
main()
{intt,a=1,b=5,C=-2;
while(a>b>C)
{t=a;a=b;b=t;c++;}
printf("%d,%d,%d",a,b,C);
}
程序的輸出結(jié)果是()。
A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2
51.以下敘述中錯誤的是
A.gets函數(shù)用于從終端讀入字符串
B.getehar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
52.設(shè)有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。
A.aa數(shù)組中元素的值分別是{"abcd","ABCD"};
B.aa是指針變量,它指向含有兩個數(shù)組元素的字符型一維數(shù)組
C.aa數(shù)組的兩個元素分別存放的是含有4個字符的一維字符數(shù)組的首地址
D.aa數(shù)組的兩個元素中各自存放了字符‘a(chǎn)’和‘A’的地址
53.以下程序的輸出結(jié)果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(1+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
54.單個用戶使用的數(shù)據(jù)視圖的描述稱為______。
A.外模式B.概念模式C.內(nèi)模式D.存儲模式
55.以下對C語言中共用體類型數(shù)據(jù)的正確敘述是______。
A.可以對共用體變量名直接賦值
B.一個共用體變量中可以同時存放其所有成員
C.一個共用體變量中不能同時存放其所有成員
D.共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員
56.設(shè)有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}
A.789B.7911C.71013D.777
57.已定義以下函數(shù):intfun(int*p){return*p;}函數(shù)fun的返回值是()。
A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值
58.瀑布模型適合于______。
A.大型軟件系統(tǒng)開發(fā)B.中型軟件系統(tǒng)開發(fā)C.小型軟件系統(tǒng)開發(fā)D.大、中、小型軟件系統(tǒng)開發(fā)
59.在“文件包含”預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
60.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A.log2nB.n/2C.nD.n+1
四、選擇題(20題)61.有如下程序段:
執(zhí)行該程序段后,X的值為()。
A.trueB.falseC.0D.1
62.在深度為5的滿二叉樹葉中,葉子結(jié)點的個數(shù)為()。
A.32B.31C.16D.15
63.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
64.在以下選項中,能IE確聲明數(shù)組并進行初始化的語句是()。
A.str=newDimension(1,2,3);
B.str=newdimension(1,2,3);
C.str:newArray(1,2,3);
D.str=newarray(1,2,3);
65.
66.
67.以下數(shù)組定義中錯誤的是()。
A.
B.
C.
D.
68.(41)在下列選項中,哪個不是一個算法一般應(yīng)該具有的基本特征()
A.確定性
B.可行性
C.無窮性
D.擁有足夠的情報
69.若變量已正確定義,有以下程序段其輸出結(jié)果是()。
A.0,1B.0,0C.1,1D.程序進入無限循環(huán)
70.有以下程序:
voidmain()
{
inti=10,j=1;
printf("%d,%d\n",2*i--,++j*2);
}
執(zhí)行后輸出的結(jié)果是()。
A)20,4B)10,2
C)20,1D)10,4
71.設(shè)有定義:
72.(60)視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計的是()
A.自頂向下
B.由外向內(nèi)
C.由內(nèi)向外
D.自底向上
73.設(shè)有定義:char*C;以下選項中能夠使C正確指向一個字符串的是()。
A.charstr()=”string”;C=str;
B.scanf(”%s”,C.;
C.c=getchar();
D.*c=”strin9”;
74.下列選項中,能夠滿足“只要字符串sl等于字符串s2,則執(zhí)行sT”要求的是()。程序執(zhí)行后的輸出結(jié)果是()。
A.2B.1C.3D.0
75.下列關(guān)于算法復(fù)雜度描述正確的是()。
A.算法的時間復(fù)雜度是指算法執(zhí)行的時間
B.算法的空間復(fù)雜度是指執(zhí)行這個算法所需的內(nèi)存空間
C.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定大
D.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小
76.
77.有如下程序
main()
{
inta=2,b=-1,c=2;
if(a<b)c=1;
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
該程序的輸出結(jié)果是
A.0B.1
C.2D.3
78.以下選項中,能用做用戶標(biāo)識符的是()。
A.voidB.8_8C._0_D.unsigned
79.數(shù)據(jù)庫關(guān)系模型中可以有三類完整性約束,下列選項中不屬于三類完整性約束的是()。
A.實體完整性規(guī)則B.參照完整性規(guī)則C.對象完整性規(guī)則D.用戶自定義完整性規(guī)則
80.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已在主函數(shù)中賦予。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<strin9.h>#include<stdi0.h>#defineM80voidproc(char*arr){inti,j,n;charch;n=strlen(arr):for(i=1;i<n;i++)//****found****{c=arr[i];j=i-1;while((j>=o)&&(ch<arr[j])){arr[j+1]=arr[j];j--;}arr[j+1]=ch;}}voidmain{chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf("Theoriginalstring:%s\n",a);proc(a);printf("Thestringaftersortin9:%s\n\n",a);}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
參考答案
1.BB【解析】1966年Boehm和JaCopini證明了程序設(shè)計語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。
2.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。
3.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時,給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個整數(shù)的累加和,即55。
4.B函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個元素。取指針的值,使用*P,因此比較使用*P和*s,又因為找最大值,當(dāng)*s<*p時,修改指針s的指向。故本題答案為B選項。
5.A
6.B程序首先定義二維字符數(shù)組v,使用4個字符串初始化,另外定義字符指針數(shù)組P。通過第1個for循環(huán),將v的4個字符串的首地址賦給p。第2for循環(huán)通過兩層內(nèi)嵌循環(huán)將p中元素指向的字符串首字母進行排序交換。規(guī)則是將指向的字符串的首字母字符按照字母表中的順序排序后交換。注意,這里交換的是首字母,而不是整個字符串,所以程序輸出:afgebcdhnopqmijkl。本題答案為B選項。
7.A
8.A解析:本題考核的知識點是scanf()函數(shù)的運用。seanf()函數(shù)有兩個參數(shù),第一個參數(shù)為輸入格式字符串,第二個參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時數(shù)據(jù)的間隔,輸入時必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時必須原樣輸入。所以4個選項中選項A符合題意。
9.D
10.C程序定義一個二維字符數(shù)組a,使用5個字符串對其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當(dāng)前下標(biāo)為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個printf輸出p[i]字符串的首字母,第2個printf輸出p[i]字符串下標(biāo)從len/2開始的子字符串。當(dāng)下標(biāo)i=0時輸出efg;當(dāng)下標(biāo)i=l時輸出acd;當(dāng)下標(biāo)i=2時輸出mopq;當(dāng)下標(biāo)i=3時輸出hjkl;當(dāng)下標(biāo)i=4時輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項。
11.B解析:采用信息隱蔽的目的就是為了確保每個模塊的獨立性。
12.D\n數(shù)組指針是指向數(shù)組的一個指針,int(*pt)[3]表示一個指向3個int元素的數(shù)組的一個指針。
\n
13.C程序定義一個字符數(shù)組b,并使用字符串“happynewyeai”進行初始化。然后通過for循環(huán),遍歷字符數(shù)組b中的每個字符,再將b中的字符元素修改為大寫字母。程序輸出:HAPPYNEWYEAR。故本題答案為C選項。
14.D在輸入整數(shù)或?qū)崝?shù)這類數(shù)值型數(shù)據(jù)時,輸入數(shù)據(jù)之間必須用空格、回車符、制表符等間隔符隔開,間隔符個數(shù)不限。scanf的格式控制字符串也可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配,所以逗號必須輸入。故本題答案為D選項。
15.Da=“ABCD”書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名S是代表S數(shù)組首地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。
16.D[解析]第一次循環(huán)溈0.i%2為0.執(zhí)行switch(a[0]%62)中的case0語句后內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)的值為1.i%62為1.執(zhí)行case1:a[]=0;所以a[1]的值變成0;第三次循環(huán)的值為2.i%62為0.執(zhí)行switch([2]%62)中的case1語句后的內(nèi)容a[2]--,a[2]的值變成4;第四次循環(huán)的值為3.i%2為1.執(zhí)行case1:ai]=0;所以a[3]的值變成0.
17.D解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:
#define宏名(形參表)字符串
本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。
18.B解析:當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:
①形參定義成數(shù)組;
②形參定義成可變長數(shù)組:
③形參定義為指針變量。
19.A
20.A本題考查switch語句。當(dāng)i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當(dāng)i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
21.str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:判斷回文教一般使用兩個指針或下標(biāo)變量分別從檢查串的第1個字符和最后一個字符開始相向移動,并比較兩者內(nèi)容是否相同,直到中間相遇一直相同則是回文數(shù),否則不是。函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向str的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(sir)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標(biāo)志t為1,并跳出循環(huán)。所以最后一個if語句應(yīng)該為判斷標(biāo)志t是否為1,即應(yīng)該填t==0或者其他等價形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,印最后一空應(yīng)該填huiwen(str)。
22.存儲結(jié)構(gòu)
23.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)
24.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個元素進行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。
25.55解析:函數(shù)調(diào)用的時候,函數(shù)名字必須與所調(diào)用的函數(shù)名完全一致,形參與實參類型要一致,在沒有給出函數(shù)返回值類型的情況下,默認(rèn)為整形,當(dāng)返回值為整型的函數(shù)放到主函數(shù)后面時,可以不需要事先說明就調(diào)用這個函數(shù)。return既可以返回一個普通常量,也可以返回一個指針變量。
26.2002Shangxian2002Shangxian解析:本題考核的知識點是結(jié)構(gòu)體類型的定義、賦初值以及字符串的比較。本題中首先定義一個結(jié)構(gòu)體類型STU,鎮(zhèn)結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義?一個結(jié)構(gòu)體指針p,并讓它指向變量d。然后讓將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個訂語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量d。比較通過函數(shù)strcmp實現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d;第二個if語句strcmp()>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian
27.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
28.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回,所以在空框處應(yīng)填入*s-*t,保證在s>t時,返回正值,當(dāng)s<t時,返回負(fù)值。
29.軟件開發(fā)
30.m<nn!=0
31.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項;fp是文件指針。
32.一對多一對多解析:實體之間的聯(lián)系有3類:一對一,一對多,多對多。設(shè)有兩個實體集E1和E2,如果E2中的每一個實體與E1中的任意個實體(包括零個)有聯(lián)系,而E1中的每一個實體最多與E2中的一個實體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設(shè)備之間是一對多關(guān)系。
33.3233
34.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,即數(shù)據(jù)的組織形式。它分為數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。
35.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼和測試)、軟件維護期(即運行維護階段)。
36.261261解析:在控制格式符中“O”代表的是將數(shù)據(jù)按八進制輸出,十進制數(shù)的177代表的八進制數(shù)是261,所以該空格處應(yīng)該填寫261。
37.C
38.33解析:在初始化一個含有未指定維度的數(shù)組時,C語言總是在能完全容納初始化列表的基礎(chǔ)上盡可能小地設(shè)定該維度,來作為指定維度的標(biāo)準(zhǔn)。本題有9個初始值,若指定第一維度為2,則數(shù)組含有2*4=8個元素,容納不下,所以指定維度為3,3*4=12,足夠容納了。故應(yīng)該填3。
39.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
40.98
41.B解析:由于實參傳送的是變量的地址,所以對形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對實參內(nèi)容的改變。
42.B解析:<優(yōu)先級高于==高于&&高于||高于=。首先計算表達式y(tǒng)<z的值,y<z為假,表達式的值為0,則邏輯表達式y(tǒng)<z&&z==z的值也為0,||左側(cè)y的值為非零值3,所以表達式的值為1,將1賦值給x,賦值表達式的值是1。
43.A解析:本題的change()函數(shù)實現(xiàn)的是:將傳入的地址值的高5個單位的地址中的內(nèi)容復(fù)制到傳入的地址當(dāng)中,即等價于*k=*(k+5)。在主函數(shù)中,首先通過while循環(huán),循環(huán)5次調(diào)用change()函數(shù),依次將x[0]~x[4]的地址傳入,所以while循環(huán)結(jié)束后,x[0]~x[4]中的內(nèi)容等于x[5]~x[9]中的內(nèi)容。所以輸出結(jié)果為678910,故應(yīng)該選擇A。
44.B解析:本題中,“%d%d%d”表示按整型數(shù)形式輸入數(shù)據(jù),輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可以用回車鍵或Tab鍵。選項B)中不應(yīng)該使用逗號。
45.C解析:帶參數(shù)的宏定義命令行形式如下:
#define宏名(形參表)替換文本
在編譯的時候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計算,將計算的結(jié)果賦給a。注意,宏替換是在編譯時由預(yù)處理程序完成的,宏替換不占用運行的時間,而函數(shù)調(diào)用是在程序運行時進行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。
46.C解析:本題主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結(jié)構(gòu)后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行de-fault后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'C'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行
47.B解析:字符串比較不能用兩個等于號(==)來進行比較,應(yīng)使用函數(shù)strcmp(s1,s2)來比較。函數(shù)stremp(s1,s2)的功能是:當(dāng)字符串s1和s2相等時,返回值為0。因此,當(dāng)表達式!strcmp(s1,s2)=1時,條件成立,執(zhí)行后面的語句,輸出theyareEqual。
48.C解析:選項A中應(yīng)將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型一個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調(diào)用函數(shù)時,不應(yīng)該再聲明其返回類型,故迭項D不正確.所以,4個選項中選項C符合題意。
49.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關(guān)的圖文資料。因此本題的正確答案是D。
50.A解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。
51.B
52.C解析:aa數(shù)組被定義為字符型指針數(shù)組,有兩個元素,分別存放字符串'abcd'和'ABCD'的首地址。
53.B解析:按程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6;執(zhí)行三次k+=p[i]*2,相當(dāng)于k=5+0*2+2*2+6*2=21。
54.A解析:選項A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項C)不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內(nèi)模式。
55.C解析:共用體變量中的所有成員共享一段公共存儲區(qū),并非同時存放于共用體變量中,如共用體變量中有兩個成員,int型成員占兩個字節(jié),float型成員占4個字節(jié),則該共用體變量占4個字節(jié),并非2+4=6個字節(jié)。
56.A解析:本題考查靜態(tài)變量的問題。函數(shù)f中c是靜態(tài)變量存放在靜態(tài)存儲區(qū),在程序的整個運行期間都不釋放占據(jù)的存儲單元。函數(shù)f被調(diào)用3次,調(diào)用過程如下。
第1次調(diào)用;a=2、b=0、c=3,執(zhí)行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7
第2次調(diào)用:a=2、b=0、c=4.執(zhí)行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8
第3次調(diào)用:a=2、b=0、c=5,執(zhí)行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9
所以輸出結(jié)果為選項A。
57.B解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時指定的。在定義函數(shù)時對函數(shù)值說明的類型一般和return語句中的表達式類型一致,即函數(shù)類型決定返回值的類型。此題中定義函數(shù)類型為int型,故函數(shù)返回值也為整型。
58.C解析:根據(jù)瀑布模型的特點(連續(xù)無反饋)是對于每一個階段來說,前一個階段工作的正確無誤是至關(guān)重要的。因此,瀑布模型不能很好地適應(yīng)那些需求不易確定和多變的軟件項目的開發(fā)。由于大項目在軟件開發(fā)的前期階段,人們很難詳細(xì)地了解系統(tǒng)的許多細(xì)節(jié),從而在項目進行過程中常會出現(xiàn)需求變化。因此,瀑布模型適用于小系統(tǒng)開發(fā)項目,而不適用于大、中型軟件系統(tǒng)開發(fā)。
59.B解析:本題考查庫函數(shù)調(diào)用的知識點。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中班能干的小手教案10篇
- 年金保險合同條款的法律解釋與應(yīng)用考核試卷
- 電子產(chǎn)品購銷合同協(xié)議書
- 2025年全球及中國入門級數(shù)字彩色標(biāo)簽打印機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球家用前置過濾器行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球光網(wǎng)絡(luò)分析儀行業(yè)調(diào)研及趨勢分析報告
- 二零二四年金融機構(gòu)協(xié)定存款業(yè)務(wù)監(jiān)管協(xié)議3篇
- 三年級數(shù)學(xué)萬以內(nèi)加減混合兩步運算題綜合測試試題大全附答案
- 23年-24年項目部安全管理人員安全培訓(xùn)考試題及完整答案【奪冠】
- 杭州市度假村租賃合同
- 2024年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 電線電纜加工質(zhì)量控制流程
- 山東省淄博市張店區(qū)祥瑞園小學(xué)?-2024-2025年第一學(xué)期一年級班主任經(jīng)驗分享(著眼于愛 著手于細(xì))【課件】
- 企業(yè)內(nèi)部客供物料管理辦法
- 婦科臨床葡萄胎課件
- 醫(yī)務(wù)從業(yè)人員行為規(guī)范培訓(xùn)
- 中小學(xué)校食品安全管理現(xiàn)狀與膳食經(jīng)費優(yōu)化方案
- 藥學(xué)技能競賽標(biāo)準(zhǔn)答案與評分細(xì)則處方
- 第15屆-17屆全國中學(xué)生物理競賽預(yù)賽試卷含答案
- 2025屆高考英語 716個閱讀理解高頻詞清單
- 外研版小學(xué)英語(三起點)六年級上冊期末測試題及答案(共3套)
評論
0/150
提交評論