




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年浙江省杭州市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列定義數(shù)組的語句中錯誤的是()。
A.intx[2][3]={1,2,3,4,5,6};
B.intx[][3]={0};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]={{1,2},{3,4},{5,6}};
2.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
3.下列說法錯誤的是______。
A.關(guān)系中每一個屬性對應(yīng)一個值域
B.關(guān)系中不同的屬性可對應(yīng)同一值域
C.對應(yīng)同一值域的屬性為不同的屬性
D.DOM(A)表示屬性A的取值范圍
4.數(shù)據(jù)結(jié)構(gòu)若采用鏈式存儲結(jié)構(gòu),要求內(nèi)存中可用存儲單元的地址()。
A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以
5.下列定義數(shù)組的語句中,正確的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
6.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));}程序運行后的輸出結(jié)果是
A.編譯出錯B.9C.21D.9
7.下列選項中不合法的十六進制數(shù)是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
8.下列敘述中錯誤的是()。
A.C語言程序必須由一個或一個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為一個獨立的語句存在
C.若函數(shù)有返回值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應(yīng)的實參
9.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個FBI項目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請在下面幾個數(shù)據(jù)結(jié)構(gòu)中選擇一個使檢索速度最快的()
A.二叉搜索樹,比較函數(shù)開銷:1次運算/每字符
B.哈希表,hash算法開銷:10次運算/每字符
C.鏈表,比較函數(shù)開銷:1次運算/每字符
D.TRIE樹,尋找子節(jié)點開銷:1次運算/每字符
10.插入和刪除只能在一端進行線性表,稱為()。
A.隊列B.循環(huán)隊列C.棧D.循環(huán)棧
11.
12.設(shè)有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()。
A.scanf(“%s”,ptr.title);
B.scanf(“%s”,rec.title);
C.scanf(“%s”,(*ptr).title);
D.scanf(“%s”,ptr->title);
13.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}輸出結(jié)果是()。A.11B.10C.9D.1011
14.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i
15.有以下程序程序執(zhí)行后的輸出結(jié)果是()
A.60B.50C.45D.55
16.設(shè)已包含頭文件<string.h>,下列程序段的運行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
17.算法的時間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法程序中的指令條數(shù)D.算法執(zhí)行過程中所需要的基本運算次數(shù)
18.在一個具有n個結(jié)點的有序單鏈表中插入一個新結(jié)點并仍然保持有序的時間復(fù)雜度是()。
A.O(1)B.O(n)C.O(n2)D.O(nlog2n)
19.在Internet中,域名服務(wù)器的主要功能是實現(xiàn)()的轉(zhuǎn)換。
A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問
20.若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
則輸出結(jié)果是A.A.55B.105C.107D.58
二、2.填空題(20題)21.以下程序的運行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
22.有以下程序:
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序運行后的輸出結(jié)果是【】。
23.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
24.輸出若干學(xué)生3門課程的成績。
#include<stdio.h>
【】
structstudent
{intnum;
floatscore[3];
}
main()
{inti=0,n;
floata[3];
【】*ptr[200];
printf("請輸入學(xué)生學(xué)號和3門課成績,學(xué)號為0表示數(shù)據(jù)輸入結(jié)束\n");
do
{ptr[i]=(structstudent*)malloc(sizeof(structstudent));
scanf("%d%f%f%f",&ptr[i]->num,&a[O],&a[1],&a[2]);
ptr[i]->score[O]=a[O];
ptr[i]->score[1]=a[1];
ptr[i]->score[2]=a[2];
if(【】)break;
i++;
}while(1);
n=i-1;
【】;
for(i=O;i<=n;i++)
printf("%-6d%.1f%.1f%.1f\n",ptr[i]->num,ptr[i]->score[0],
ptr[i]->score[1],ptr[i]->score[2]);}
25.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
26.一個項目具有一個項目主管,一個項目主管叫‘管理多個項目,則實體“主管”與實體“”的聯(lián)系屬于______。
27.在關(guān)系運算中,【】運算是在給定關(guān)系的某些域上進行的運算。
28.下述函數(shù)統(tǒng)計字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=")flag=0;
elseif【】{flag=1;num++}
}
return【】;}
29.在一個容量為15的循環(huán)隊列中,若頭指針front=6,尾指針Year=9,則該循環(huán)隊列中共有【】個元素。
30.僅依據(jù)規(guī)格說明書描述的程序功能來設(shè)計測試實例的方法稱為【】。
31.以下程序運行后的輸出結(jié)果是【】。
main()
{charm;
m='B'+32;printf("%c\n",m);
}
32.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
33.當(dāng)運行以下程序時,從鍵盤輸入abcdabcdef<CR>
cde<CR>
(<CR>表示回車),則下面程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{inta;chars[80],t[80];
gets(s);gets(t);
a=fun(s,t);
printf("a=%d\n",a);}
fun(char*p,char*q)
{inti;
char*p1=p;
char*q1;
for(i=0;*p!='\0';p++,i++)
{p=p1+i;
if(*p!=*q)continue;
for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)
if(*p!=*q1)break;
if(*q1=='\0')returni;}
return(-1);}
34.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
35.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
36.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
37.下面程序的輸出是【】。
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;
printf("%d\n",z);
}
38.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
39.下列程序的輸出結(jié)果是______。
#include<stdio.h>
sb(ints[],intb)
{staticintn=3;
b=s[n];
n--;
return(b);
}
main()
{ints[]={1,5,6,8};
inti,x=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);
}
printf("\n");
}
40.以下程序用業(yè)統(tǒng)計文件十字符個數(shù)。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{FTLE*fp;longnum=OL;
if((fp=fopen("fname.dat","r"))==NUlL)
{pirntf("Openerror\n");exit(0);}
while()
{fgetc(fp);num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
三、1.選擇題(20題)41.假定所有變量均已正確說明,下列是程序段運行后x的值是()a=b=C=O;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
42.以下敘述中正確的是
A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方
B.花括號“{”和“}”只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的一部分
43.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
44.有以下程序#include<stdio.h>main(){intk=5,n=0;while(k>0){switch(k){defhult:break;case1:n+=k:case2:case3:n+=k;}k--;}printf("%d\n",n);}程序運行后的輸出結(jié)果是()
A.0B.4C.6D.7
45.有以下程序#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序運行后的輸出結(jié)果是
A.SunDan20042B.SunDan20044C.LiSiGuo20042D.YangSan20041
46.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的聯(lián)系
B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小
D.上述三種說法都不對
47.語句“printf("%d\n",12&012);”的輸出結(jié)果是______。
A.12B.8C.6D.12
48.下列敘述中,正確的一條是______。
A.putchar函數(shù)可以輸出一個字符串
B.在printf("%c",c)函數(shù)中,兩個c是一樣的
C.語句printf("%d%%",1)的輸出結(jié)果為1%
D.用scar函數(shù)輸入數(shù)據(jù)時可以規(guī)定精度,例如scanf("%7.2f",&a)
49.下列程序的輸出結(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
50.有以下程序
#include
main()
{intc;
while((c=getchar())!='\n')
{switch(c-'2')
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)代表一個回車符。
2743
程序的輸出結(jié)果是
A.66877B.668966C.6677877D.6688766
51.下面程序main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%d\n",k,a,B);}的輸出是_______。
A.003B.012C.103D.112
52.詳細設(shè)計主要確定每個模塊具體執(zhí)行過程,也稱過程設(shè)計,下列不屬于過程設(shè)計工具的是()
A.DFD圖B.PAD圖C.N-S圖D.PDL
53.設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。
A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出
B.運行時產(chǎn)生出錯信息
C.輸出值為2002
D.輸出值為2003
54.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);
B.intfun(double,int);
C.intfun(double*x,intn);
D.intfun(double*,int*);
55.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為A.32B.31C.16D.15
56.經(jīng)下列語句定義后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC機上的值分別為______。charx=65;floaty=7.3;inta=100;doubleb=4.5;
A.2,2,2,4B.1,2,2,4C.1,4,2,8D.2,4,2,8
57.若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
58.以下敘述中正確的是()。
A.C語言的源程序不必通過編譯就可以直接運行
B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令
C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行
D.C語言中的函數(shù)不可以單獨進行編譯
59.已知a、b、c為整型變量,若從鍵盤輸入5<空格>6<空格>7<回車>,使a的值為5,b的值為6,c的值為7,則下列選項中正確的輸入語句是()。
A.scanf("%3d%3d%3d",a,b,C);
B.scanf("%d%d%d",a,b,C);
C.scanf("%d%d%d",&a,&b,&c);
D.scanf("%d%d%d",&a,&b,&c);
60.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。
A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移
四、選擇題(20題)61.以下程序的運行結(jié)果是()。
#include<stdio.h>
main{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}
A.0B.1C.2D.3
62.有以下程序段:
以下選項中表達式的值為11的是()。
A.
B.
C.
D.
63.
64.一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯(lián)系是()。
A.1:1聯(lián)系B.1:m聯(lián)系C.m:1聯(lián)系D.m:n聯(lián)系
65.有以下程序
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)
puts(ps);
}
程序的運行結(jié)果是
A.yzB.zC.zD.x
xyzyzyzxy
xyzxyz
66.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
67.
有下列程序:
intfun(intx[],intn)
{staticintsum=0,i:
for(i0;i<n;i++)sum+=x[i];
returnsum;
}
main
{inta[]={1,2,3,4,5),b[]一{6,7,8,9),s=0:
s=fun(a,5)+fun(b,4);printf("%d\n",s):
}
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.50C.60D.55
68.數(shù)據(jù)庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)
69.
70.
71.
72.
73.
74.當(dāng)執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤
75.表示關(guān)系M<=N<=P的C語言表達式為()。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
76.若有以下程序:inta=1,b=2:a=a^b:b=b^a:則執(zhí)行以上語句后a和b的值分別是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
77.第
42
題
下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*p;p=a="china"
78.
下列程序的輸出結(jié)果是()。
char*point(char*pt):
main
{charb[4]={a,c,s,f),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
returnp;
}
A.sB.cC.fD.a
79.若有定義:charc;doubled;程序運行時輸入:12<;回車>;,能把字符1輸入給變量c、數(shù)值2輸入給變量d的輸入語句是()。
80.在關(guān)系數(shù)據(jù)庫系統(tǒng)中,當(dāng)關(guān)系的模型改變時,用戶程序可以不變,這是
A.?dāng)?shù)據(jù)的物理獨立性B.?dāng)?shù)據(jù)的邏輯獨立性C.?dāng)?shù)據(jù)的位置獨立性D.?dāng)?shù)據(jù)的存儲獨立性
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個新數(shù)存放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為7654321時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<;stdi0.h>;
六、程序設(shè)計題(1題)82.N名學(xué)生的成績已在主函數(shù)中放人一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。
例如,若學(xué)生的成績是:8576698591726487,則平均分應(yīng)當(dāng)是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.DD選項中“x[2][3]”定義的是一個2行3列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了3行,所以錯誤。故本題答案為D選項。
2.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進行∩、∪、一運算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進行笛卡兒積(×)運算的。
3.C解析:關(guān)系中每一個屬性都有一個取值范圍,稱為屬性的值域。每—個屬性對應(yīng)一個值域,不同屬性可對應(yīng)同一個值域。對應(yīng)同一值域的卻不一定是不同的屬性。屬性的值域用DOM(A)表示,A表示屬性的名稱。
4.D
5.A數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。
6.B解析:fun()函數(shù)是將傳進來的兩個整型參數(shù)相加,把和作為函數(shù)值返回,注意返回值為float型。在主函數(shù)調(diào)用了兩次fun()函數(shù),第一次調(diào)用時把表達式“a+c”和變量“b”的值求和,得到15轉(zhuǎn)換為15.0作為函數(shù)的返回值。第二次調(diào)用把第一次調(diào)用的返回值通過強制類型轉(zhuǎn)換成int型15,再和表達式“a-c”相加,得到結(jié)果9,轉(zhuǎn)換成float型作為函數(shù)值返回。由于輸出格式符為“%3.of輸出時沒有小數(shù)位,故輸出為9。
7.C十六進制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數(shù)字和a、b、C、d、e、f這6個字母。
8.D形參是定義函數(shù)時由用戶定義的。實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語言中,實參向形參傳送數(shù)據(jù)的方式是“值傳遞'是單向傳遞。故本題答案為D選項。
9.D
10.C
11.C
12.A運算符“->”適用指針訪問成員變量,運算符“.”適用普通變量訪問成員變量。ptr是指針,只能用“->”,因此選項A錯誤。選項B中,rec.title代表數(shù)組title,選項B正確,同理選項C正確?!?ptr”是結(jié)構(gòu)體變量rec,可以使用運算,因此選項D正確。故本題答案為A選項。
13.B本題考多循環(huán)的使用,當(dāng)j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當(dāng)i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。
14.B本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。
15.A函數(shù)fun的功能是求數(shù)組的n個元素之和。fun(a,5)=15。由于s岫是靜態(tài)局部變量,所以保持l5不變,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。
16.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。
strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。
17.D解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算工具以及程序員的水平無關(guān)。
選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤。因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。
選項C錯誤,因為根據(jù)一個算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。
所以,本題的正確答案為D。
18.B
19.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運行域名系統(tǒng)的主機稱為域名服務(wù)器。域名服務(wù)器的主要功能是實現(xiàn)入網(wǎng)主機名字和IP地址的轉(zhuǎn)換。
20.A
21.#&#&解析:剛開始時,switch后面的表達式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達式b<0值為0,沒有與其匹配的語句,返回外層,因為外層沒有break語句,順序執(zhí)行case0后面的switch語句,表達式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因為外層沒有break語句,順序執(zhí)行default后的語句,輸出&。
22.66解析:本題定義了二維數(shù)組a和指針變量p,p指向數(shù)組的首地址,for循環(huán)語句的功能是給數(shù)組元素賦值,結(jié)果為a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函數(shù)的輸出結(jié)果為6。
23.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。
24.#include<alloc.h>structstudentptr[i]->num==Ofree(ptr[i])#include<alloc.h>\r\nstructstudent\r\nptr[i]->num==O\r\nfree(ptr[i])
25.&a[i]或a+ia[i]或*(a+i)&a[i]或a+i\r\na[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20的整型數(shù)組,然后通過一個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應(yīng)填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a或*(a+i)。
26.一對多一對多解析:由于一個項目主管可以管理多個項目,而一個項目只能有一個項目主管,“項目主管”這個實體與“項目”這個實體的管理關(guān)系囑于一對多。
27.投影投影解析:在關(guān)系運算中,投影運算是在給定關(guān)系的某些域上進行的運算。
28.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空恪,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1);最后一個空格需填寫的是返回的單詞的個數(shù),即num。
29.3
30.黑箱法黑箱法
31.BB解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,另外,字符數(shù)據(jù)還可以作為整數(shù)參加運算。格式控制參數(shù)中的格式字符用以指定輸出項的數(shù)據(jù)類型和輸出格式,輸出字符與其對應(yīng)的輸出項的類型要一致。本題中,“b”的ASCII碼為98,字符類型m的ASCII碼為98+32=130,所以最后輸出為b。
32.空間復(fù)雜度和時間復(fù)雜度算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。
33.a=6a=6解析:字符指針p++使指針向后移動一個字符的位置,而*p則是取得指針p所在位置的字符元素。
34.完整性控制完整性控制
35.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。
36.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
37.66解析:本題變量z的值應(yīng)為最后一次給它賦的值,且最后一次for循環(huán)使prt指向a[2]
38.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。
39.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
40.!feof(fp)!feof(fp)解析:本題中統(tǒng)計文件中字符個數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個字符,同時字符的個數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.daf”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。
41.B
42.A解析:“/*”與“*/”之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確;在C語言中,函數(shù)體是從花括號“{”開始,到花括號“}”結(jié)束.但沒有規(guī)定花括號“{”和“}”只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,在C程序中由有一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù)比如庫函數(shù),主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號“;”結(jié)束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。
43.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。
44.D解析:因為沒有break語句,當(dāng)k=2的時候,會順序執(zhí)行兩條語句,k=1的時候,會順序執(zhí)行3條語句。
45.A解析:題目中定義的函數(shù)f()包含兩個參數(shù),一個字符指針,—個整型變量。當(dāng)修改參數(shù)指針所指向的內(nèi)容的時候,實參所指的內(nèi)容也被修改,即傳址調(diào)用;但只是修改參數(shù)變量的內(nèi)容,則實奉不受影響,即傳值調(diào)用。因此,主函數(shù)調(diào)用f()函數(shù)后,第1個參數(shù)被修改成函數(shù)中s[0]的name成員,第2個參數(shù)不受影響,還是主函數(shù)中s[1]的num成員。故最終輸出SunDan20042。應(yīng)該選擇A。
46.C解析:在面向?qū)ο蟮某绦蛟O(shè)計中,對象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨立性考慮,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強。由于完成對象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項A與B錯誤,選項C正確。
47.B解析:012是八進制數(shù),轉(zhuǎn)換成十進制為10,12&10轉(zhuǎn)換成二進制為00001100&00001010=00001000,00001000轉(zhuǎn)換成十進制為8。
48.C
49.C解析:帶參數(shù)的宏定義命令行形式如下:
#define宏名(形參表)替換文本
在編譯的時候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計算,將計算的結(jié)果賦給a。注意,宏替換是在編譯時由預(yù)處理程序完成的,宏替換不占用運行的時間,而函數(shù)調(diào)用是在程序運行時進行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。
50.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標準輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標準輸出設(shè)備上,并且字符可以看作整數(shù)參與運算。
51.C解析:a++是先使用a值再將a的值加1,b-是先使用b的值再將b的值減1,所以題中的邏輯運算表達式的值應(yīng)當(dāng)為真,即為1,而經(jīng)過運算后,a和b的值已經(jīng)分別變成0和3了。
52.AA)【解析】DFD圖(數(shù)據(jù)流圖)是以圖形的方式描述數(shù)據(jù)在系統(tǒng)中流動和處理的過私,只反映系統(tǒng)必須完成的邏輯功能,它是需求分析階段的圖形工具。盒式圖(N—S圖)、問題分析圖
\n(PAD圖)和PDL(偽碼)是詳細設(shè)計的常用工具。
53.D解析:本題考查逗號表達式。逗號表達式的形式為:表達式1,表達式2,其求解過程為:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。
54.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。
55.C2(n-1)
=2(5-1)=16
56.C
57.C解析:EOF是指向文本文件的結(jié)束標志,NULL是打開文件錯誤時的返回值。feof(fp)用來判斷文件是否在文件末尾,文本文件和二進制文件均可以使用此函數(shù),如果遇到文件結(jié)束就返回1,否則返回0。
58.B解析:本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進制的目標代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行;連接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。
59.C解析:通過scanf()函數(shù)從鍵盤讀入數(shù)據(jù)時,接收參數(shù)的使用變量的地址值,所以選項A和B是錯誤的。選項D要求輸入時以逗號間隔,故按題目要求的輸入方式不能正確讀取到3個數(shù),也是錯誤的。所以正確答案是C。
60.BB。【解析】程序的三種基本控制結(jié)構(gòu)包括:順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)就足以表達出各種其他形式的結(jié)構(gòu)。
61.D
62.C→的運算優(yōu)先級比++高,此時,pt→x=10,執(zhí)行自加運算后為11。
63.D
64.D多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為一個表中的多個記錄在相關(guān)表中同樣有多個記錄與其匹配。
一個教師可講授多門課程,一門課程可由多個教師講授,所以實體教師和課程間的聯(lián)系是多對多的聯(lián)系。
65.B本題主要考查循環(huán)結(jié)構(gòu)和字符串的存儲結(jié)構(gòu)。在C語言中,為了方便確定字符串的長度,編譯系統(tǒng)在字符串后增加了一個結(jié)束標識‘\\0’,即ASCII碼的0。
在程序中,首先定義了一個字符型數(shù)組str,并賦初值,然后定義一個同類型的指針變量ps,并使ps指向字符數(shù)組str。
在while循環(huán)中,循環(huán)結(jié)束的條件是*ps的值為0,由于循環(huán)開始前,指針變量ps是指向數(shù)組的第一個元素,即*ps等價于str[0],值為x,其ASCII碼值不為0,循環(huán)繼續(xù),使ps指向數(shù)組的第二個元素,很明顯,結(jié)果不為0,第三個元素也不為0,而第四個元素才為0,循環(huán)結(jié)束,此時ps指向數(shù)組中的結(jié)束標識符。
在for循環(huán)中,首先將指針變量ps做自減運算,即使指針變量ps執(zhí)行數(shù)組的最后一個元素值,即第三個元素z,然后用輸出函數(shù)puts輸出,該輸出函數(shù)的功能是輸出字符串或字符數(shù)組到終端上
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國家用智能路由器項目創(chuàng)業(yè)計劃書
- 中國基于移動互聯(lián)網(wǎng)的LBS應(yīng)用項目創(chuàng)業(yè)計劃書
- 中國康復(fù)醫(yī)學(xué)項目創(chuàng)業(yè)計劃書
- 2025電工材料購銷合同范本
- 中國腦部掃描儀項目創(chuàng)業(yè)計劃書
- 中國高性能路由器項目創(chuàng)業(yè)計劃書
- 中國電子熱離子管項目創(chuàng)業(yè)計劃書
- 浙江飼料項目創(chuàng)業(yè)計劃書
- 建設(shè)工程施工協(xié)議合同
- 樂昌保安考試題目及答案
- (高清版)TDT 1063-2021 國土空間規(guī)劃城市體檢評估規(guī)程
- 數(shù)據(jù)治理培訓(xùn)資料
- 建筑裝飾裝修工程消耗量定額
- 中小學(xué)生心理健康的MHT診斷測驗(包括評分表和評分細則)
- 《勞動法案例》課件
- 龍?zhí)端挛磥硪?guī)劃方案
- EOD項目策劃、融資、落地、偏差、風(fēng)險
- 漢堡店創(chuàng)業(yè)計劃書
- 二手車鑒定評估表
- 中國思想史 馬工程329P
- 2023年高考全國新高考1卷英語含答案(適用地區(qū)山東、廣東、湖南、湖北、河北、江蘇、福建、浙江)
評論
0/150
提交評論