




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年河北省承德市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);
2.第
24
題
下面程序段的運(yùn)行結(jié)果是
char*p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
3.若有定義“intb[8],*p=b;”,則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
4.健壯的算法不會(huì)因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)()
A.對(duì)B.錯(cuò)
5.在長(zhǎng)度為n的有序線(xiàn)性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是A.O(n)
B.O(n2)
C.O(log2n)
D.O(nlog2n)
6.若執(zhí)行下述程序時(shí),若從鍵盤(pán)輸入6和8,結(jié)果為()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}
A.36B.64C.48D.以上都不對(duì)
7.有以下程序段當(dāng)執(zhí)行上述程序段,從鍵盤(pán)上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
8.設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過(guò)棧S,一個(gè)元素出棧后即進(jìn)隊(duì)列Q,若6個(gè)元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應(yīng)該是()。
A.6B.4C.3D.2
9.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。
A.PDLB.DFD圖C.PAD圖D.N—S圖
10.在深度為5的滿(mǎn)二叉樹(shù)葉中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.32B.31C.16D.15
11.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲(chǔ)的有序線(xiàn)性表B.結(jié)性鏈表C.二叉鏈表D.有序線(xiàn)性鏈表
12.運(yùn)行下列程序時(shí),若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。main{floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b.b=t;)if(a<c){t=a;a=c;c=t;)it(b<c){t=b;b=C;c—=;)printf("%f\n%f\n%f\n",a,b,c);}A.1.002.003.00B.1.003.002.00C.132D.3.000002.000001.00000
13.
14.
15.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
16.#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)
17.若果要求一個(gè)線(xiàn)性表既能較快查找,又能適應(yīng)動(dòng)態(tài)變化的要求,可以采用()查找方法。
A.分塊B.順序C.二分D.散列
18.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
19.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運(yùn)行后的輸出結(jié)果是()。A.10,64B.10,10C.64,10D.64,64
20.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5
二、2.填空題(20題)21.下列程序的運(yùn)行結(jié)果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
22.按數(shù)據(jù)流的類(lèi)型,結(jié)構(gòu)化設(shè)計(jì)方法有兩種設(shè)計(jì)策略,它們是變換分析設(shè)計(jì)和______。
23.如下語(yǔ)句printf("%c\n",'B'+40);在執(zhí)行后的輸出結(jié)果是【】。
24.下面程序的功能是:計(jì)算1~20之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁帐钩绦蚬δ芡暾?/p>
#include<stdio.h>
main()
{inta=0,b=0,c=0,i;
for(i=0;i<=20;i+=2)
{a+=i;
();
c+=b;
}
printf("偶數(shù)之和=%d\n",A);
printf("奇數(shù)之和=%d\n",c-21);
}
25.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%5ld\n",k);}
26.有以下語(yǔ)句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開(kāi)始,請(qǐng)?zhí)羁铡?/p>
n1=10
n2=20
27.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】}
28.以下程序的運(yùn)行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
29.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
30.下列程序的功能是把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中。請(qǐng)?zhí)羁铡?/p>
#include"stdio.h"
FILE*fp;
{charch;
if((fp=fopen("bi.dat","w"))==NULL)exit(0);
while(______)fputc(ch,fp);
______;
}
31.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱(chēng)為_(kāi)_____。
32.下列程序的輸出結(jié)果是______。
main()
{inta[]={31,27,20,12,6,1},*p=a;
p++;
printf("%d\n",*(p+2));
}
33.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
34.以下程序的定義語(yǔ)句中,x[1]的初值是(),程序運(yùn)行后輸出的內(nèi)容是()。#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1],printf("q%d”,p[i][0]);}printf("\n");}
35.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33<回車(chē)>,則輸出結(jié)果是【】。
#include
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
36.一個(gè)類(lèi)可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
37.以下條件表達(dá)式可計(jì)算:1+|a|的值,請(qǐng)?zhí)羁铡?/p>
a>=0?【】:【】
38.mysulen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>
intmystrlen(Char*str)
{inti;
for{i=0;!='\0';i++);
return(______);
}
39.以下程序是求矩陣a、b的和,結(jié)果存入矩陣c中,請(qǐng)?zhí)羁铡?include<stdio.h>main(){inta[4][4]={1,2,6,7},{0,4,2,-8},{1,4,5,2},{2,4,6,8}};intb[4][4]={{-4,0,7,9},{2,-7,7,4),{6,9,0,1),{8,8,6,5)};inti,j,c[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)c[i][j]=();for(i=0;i<4;i++)for(j=0;j<4;j++)printf("%d",c[i][j]);}
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{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");
}
}
三、1.選擇題(20題)41.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
42.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)的是______。
A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上
43.有下面程序段
#include"stdio.h"
#include"string.h"
main()
{chara[3][20]={{"china"},{"isa"},{"bigcountry!"}};
chark[100]={0},*p=k;
inti;
for(i=0;i<3;i++)
{p=strcat(p,a[i]);}
i=strlen(p);
printf("%d\n",i);}
則程序段的輸出結(jié)果是
A.18B.19C.20D.21
44.以下敘述中不正確的是
A.預(yù)處理命令行都必須以#號(hào)開(kāi)始
B.在程序中凡是以#號(hào)開(kāi)始的語(yǔ)句行都是預(yù)處理命令行
C.宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間
D.在以下定義是正確的:#definePI3.1415926;
45.以下不正確的敘述是()。
A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低
B.在C程序中,APH和aph是兩個(gè)不同的變量
C.若變量a和b類(lèi)型相同,執(zhí)行了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤(pán)輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,而實(shí)型變量只能輸入實(shí)型數(shù)值
46.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;};printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是
A.10B.13C.24D.程序進(jìn)入死循環(huán)
47.
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;e1sey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0:elsey=-1;
48.設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程c(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表sc的關(guān)鍵字(鍵或碼)為()。
A.課號(hào),成績(jī)B.學(xué)號(hào),成績(jī)C.學(xué)號(hào),課號(hào)D.學(xué)號(hào),姓名,成績(jī)
49.以下數(shù)組定義中錯(cuò)誤的是()。
A.intx[][3]={0};
B.intx[2][3]={{1,2},{3,4},{5,6}};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]={1,2,3,4,5,6};
50.下面是對(duì)宏定義的描述,不正確的是______。
A.宏不存在類(lèi)型問(wèn)題,宏名無(wú)類(lèi)型,它的參數(shù)也無(wú)類(lèi)型
B.宏替換不占用運(yùn)行時(shí)間
C.宏替換時(shí)先求出實(shí)參表達(dá)式的值,然后代入形參運(yùn)算求值
D.宏替換只不過(guò)是字符替代而已
51.有以下程序:main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);}程序運(yùn)行后的輸出結(jié)果是()。
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
52.下列程序的功能:給r輸入數(shù)據(jù)后計(jì)算半徑為r的圓面積s。程序在編譯時(shí)出錯(cuò)。
main()
/*Beginning*/
{intr;floats;
scanf("%d",£r);
star*r*r;
printf("s=%f\n",s);
}
出錯(cuò)的原因是()。
A.注釋語(yǔ)句書(shū)寫(xiě)位置錯(cuò)誤
B.存放圓半徑的變量r不應(yīng)定義為整型
C.輸出語(yǔ)句中格式描述符非法
D.計(jì)算圓面積的賦值語(yǔ)句使用非法變量
53.下述對(duì)C語(yǔ)言字符數(shù)組的描述中錯(cuò)誤的是()
A.字符數(shù)組可以存放字符串
B.字符數(shù)組中的字符串可以整體輸入、輸出
C.可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值
D.不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較
54.有下列程序:
fun(intx)
{intp;
if(x==0‖x==1)return(3);
p=x-fun(x-2);
returnp;
}
main()
{printf("%d\n",fun(7));}
執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
55.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。
A.1B.5C.9D.死循環(huán)
56.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運(yùn)行時(shí)輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出的結(jié)果是()。
A.14B.12C.8D.6
57.有以下函數(shù)fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是______。
A.計(jì)算a和b所指字符串的長(zhǎng)度之差
B.將b所指字符串連接到a所指字符串中
C.將b所指字符串連接到a所指字符串后面
D.比較a和b所指字符串的大小
58.對(duì)下述程序的判斷中,正確的是
#include<stdio.h>
voidmain()
{char*p,s[128];
p=s;
while(strcmp(s,"End"))
{printf("Inputastring:");gets(s);
while(*p)
putchar(*p++);}}
A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止
B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串
59.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
60.下列關(guān)于關(guān)系運(yùn)算的敘述中正確的是()。
A.投影、選擇、連接是從二維表的行的方向來(lái)進(jìn)行運(yùn)算
B.并、交、差是從二維表的列的方向來(lái)進(jìn)行運(yùn)算
C.投影、選擇、連接是從二維表的列的方向來(lái)進(jìn)行運(yùn)算
D.以上三種說(shuō)法都不對(duì)
四、選擇題(20題)61.
62.有三個(gè)關(guān)系R、S和T如下:
由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.笛卡爾積B.交C.并D.自然連接
63.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.5,11B.5,5C.11,11D.11,5
64.“年齡在18~25之間”這種約束是屬于數(shù)據(jù)庫(kù)當(dāng)中的()。A.A.原子性措施B.一致性措施C.完整性措施D.安全性措施
65.有以下程序執(zhí)行程序時(shí),給變量X輸入l0,程序的輸出結(jié)果是()。
A.55B.54C.65D.45
66.第
11
題
若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
67.
下面for語(yǔ)句的循環(huán)次數(shù)為()。
for(x=1,y=0;(y!=19)&&(x<6);x++);
A.是無(wú)限循環(huán)B.循環(huán)次數(shù)小定C.最多執(zhí)行6次D.最多執(zhí)行5次
68.設(shè)有如下定義:intx=10,y=3,z;則語(yǔ)句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
69.以下程序的輸出結(jié)果為
main()
{
char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};
char**p;
inti;
p=alpha;
for(i=0;i<4;i++)
printf("%s",p[i]);
printf("\n");
}
A.ABCDEFGHIJKLB.ABCD
C.ABCDEFGHIJKLMNOPD.AEIM
70.
71.以下選項(xiàng)中正確的語(yǔ)句組是()。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.charS[10];S=”BOOK!”;
D.charS[];S=”BOOK!”;
72.下列定義數(shù)組的語(yǔ)句中,正確的是()。
A.intN=10;intx[N]:
B.#defineNl0;intx[N];
C.intx[0..10];
D.intx[];
73.
下列程序的輸出結(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
74.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.3,3,3B.2,2,3C.1,2,3D.1,1,3
75.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是()
A.堆排序B.直接插入排序C.快速排序D.直接選擇排序
76.在軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
77.
78.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
79.對(duì)字符數(shù)組s賦值,不合法的一個(gè)是()。
A.chars[]="Beijing"
B.chars[20]={"Beijing"}
C.chars[20];s="Beijing"
D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}
80.以下關(guān)于宏的敘述中正確的是()。
A.宏替換沒(méi)有數(shù)據(jù)類(lèi)型限制
B.宏定義必須位于源程序中所有語(yǔ)句之前
C.宏名必須用大寫(xiě)字母表示
D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當(dāng)n為l0時(shí),函數(shù)值應(yīng)為22.550361。f(x)函數(shù)定義如下:請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,其功能是:計(jì)算并輸出下列多項(xiàng)式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函數(shù)從鍵盤(pán)給n輸入20后,則輸出為S=0.680803。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#includet:stdio.h>
doubleproc(intn)
{
}
voidmain
{
intn;
doubleslim;
printf("\nInputn:");
scanf("%d",&n);
sum=proc(n)。
printf("\ns=%f\n",sum);
}
參考答案
1.DD選項(xiàng)中*f(a,b)表示調(diào)用后返回一個(gè)指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類(lèi)型,所以不能將其賦值給整形變量k。
2.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個(gè)字符串,然后將指針變量p加3,即使其指向字符串的第四個(gè)元素。然后執(zhí)行輸出語(yǔ)句,通過(guò)輸出語(yǔ)句的輸出格式我們可以知道,最后輸出的是一個(gè)十進(jìn)制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復(fù)制到目的地址中,這種復(fù)制將覆蓋原來(lái)的字符串。strcat函數(shù)的功能是將源地址的字符串復(fù)制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個(gè)數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個(gè)數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結(jié)果是4。因此本題正確的答案是C。
3.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中“P+6”指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,即指向uE63,存放的是b[6]的地址。
4.A
5.C解析:二分查找法也稱(chēng)為折半查找法。它的基本思想是:將n個(gè)元素分成個(gè)數(shù)大致相同的兩半,取a[n/2]與欲查找的x作比較,如果x=a[n/2],則找到x,算法終止;如果x<a[n/2],則只要在數(shù)組a的左半部繼續(xù)搜索x(這里假設(shè)數(shù)組元素呈升序排列);如果x>a[n/2],則只要在數(shù)組a的右半部繼續(xù)搜索x。每次余下n/(2i)個(gè)元素待比較,當(dāng)最后剩下一個(gè)時(shí),即n/(2i)=1。故n=2i;所以i=log2n。
6.B
7.A本題考查的是格式輸)ki$i數(shù),即按用戶(hù)指定的格式從鍵盤(pán)上把數(shù)據(jù)輸入到指定的變量之中,其中的格式命令可以說(shuō)明最大域?qū)?。在百分?hào)(%)與格式碼之間的整數(shù)用于限制從對(duì)應(yīng)域讀入的最大字符數(shù)。因此j的值為55,y的值為566.0,字符數(shù)組nanle的值為7777123。故本題答案為A)。
8.C
9.B常見(jiàn)的過(guò)程設(shè)計(jì)工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語(yǔ)言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過(guò)程的工具。
10.C根據(jù)二叉樹(shù)的性質(zhì)及定義,一棵深度為k且有2k-1個(gè)結(jié)點(diǎn)的二叉樹(shù)為滿(mǎn)二叉樹(shù)。滿(mǎn)二叉樹(shù)的葉子結(jié)點(diǎn)為最后一層的結(jié)點(diǎn)數(shù),又根據(jù)滿(mǎn)二叉樹(shù)的性質(zhì),在滿(mǎn)二叉樹(shù)的第i層上至多有2i-1個(gè)結(jié)點(diǎn)。因此深度為5的滿(mǎn)二叉樹(shù)的葉子結(jié)點(diǎn)數(shù)為25-1=16個(gè)。
11.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲(chǔ)的有序線(xiàn)性表,對(duì)于順序存儲(chǔ)的非有序線(xiàn)性表和線(xiàn)性鏈表,都只能采用順序查找。
\n
12.D本題考查if語(yǔ)句。第1個(gè)if語(yǔ)句,如果a<b,則a與b交換;第2個(gè)if語(yǔ)句,如果a<c,則a與c交換;第3個(gè)if語(yǔ)句,如果b<2t,則b與c交換。3個(gè)if語(yǔ)句結(jié)合起來(lái)實(shí)現(xiàn)的功能就是將a、b、C按從大到小排序。
13.B
14.D
15.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。
16.C解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開(kāi)成由實(shí)參組成的表達(dá)式。
17.A
18.A解析:本題考查C語(yǔ)言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱(chēng)K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱(chēng)ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
19.A本題考查帶參數(shù)的宏定義。第一次函數(shù)調(diào)用求S的值,x=a+1,所以X*X*X應(yīng)寫(xiě)成a+1*a+1*a+1,沒(méi)有括號(hào)優(yōu)先級(jí),結(jié)果為l0,第二次函數(shù)調(diào)用x*X*X可寫(xiě)成(a+1)*(a+1)*(a+1),所以結(jié)果為43=64。
20.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)x,最后輸出x數(shù)組。
21.22132,2,1,3解析:本題考查++,--運(yùn)算符和條件運(yùn)算符的使用。
“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計(jì)算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計(jì)算表達(dá)式3的值,且為最終結(jié)果。
本題中,x=1,y=2時(shí),x<y成立,輸出y的值2;y=2,z=3時(shí),z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個(gè)輸出x的值不變?yōu)?,y的值為增加后的3。
22.事務(wù)分析設(shè)計(jì)事務(wù)分析設(shè)計(jì)解析:典型的數(shù)據(jù)流圖有兩種,即變換型和事務(wù)型。按照這兩種類(lèi)型把設(shè)計(jì)方法分為兩類(lèi),即變換分析設(shè)計(jì)和事務(wù)分析設(shè)計(jì)。
23.jj解析:在C程序中的字符量可參與任何整數(shù)運(yùn)算。
24.b=i+1b=i+1解析:分析for循環(huán)條件,i=0說(shuō)明循環(huán)從0開(kāi)始判斷,i+=2是間隔為2的數(shù),i<=20就是控制數(shù)是20之內(nèi)的a+=i,就是所有偶數(shù)的和,如果從1開(kāi)始(b=i+1)間隔為2的數(shù)(1,3,5,7,9,11,13,15,17,19)相加就是所有奇數(shù)的和。
25.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
26.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項(xiàng)參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說(shuō)明和普通字符,普通字符將被簡(jiǎn)單地復(fù)制顯示,格式說(shuō)明項(xiàng)將引起一個(gè)輸出參數(shù)項(xiàng)的轉(zhuǎn)換與顯示,它是由“%”引出并以一個(gè)類(lèi)型描述符結(jié)束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因?yàn)閚1,n2為整數(shù),所以格式說(shuō)明項(xiàng)為%d,也可以在%與d之間加上域?qū)?,另外還要在每行輸出結(jié)束時(shí)加轉(zhuǎn)義字符\\n進(jìn)行換行。所以,應(yīng)填寫(xiě)n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
27.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說(shuō)明這個(gè)字符是一個(gè)單詞的開(kāi)始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1)='';最后一個(gè)空格需填寫(xiě)的是返回的單詞的個(gè)數(shù),即num。
28.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價(jià)于(i>j?i:j)+1。因?yàn)?>8為假,則關(guān)系表達(dá)式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
29.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
30.(ch=getchar())!='@'fclose(fp)。(ch=getchar())!='@',fclose(fp)。解析:表達(dá)式z-=x<y?x++:++y相當(dāng)于先執(zhí)行++y,再執(zhí)行z-=x<y?x:y,最后執(zhí)行x++,其中z-=x<y?x:y等價(jià)于z=z-(x<y?x:y),由于x值為3,y值為3,x<y不成立,返回y的值,z-y的值為-2,賦給z。
31.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱(chēng)為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱(chēng)為扇出。
32.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個(gè)指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過(guò)p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。
33.22解析:分析程序,a=2,b=-1,c=2時(shí),if語(yǔ)句的表達(dá)式a<b不成立,不再柱下判斷,直接退出if語(yǔ)句,執(zhí)行后面的輸出語(yǔ)句,程序結(jié)束。在這個(gè)程序中a、b、c的值沒(méi)做任何改變。
34.2246822468解析:p為指向數(shù)組的指針變量,數(shù)組x[1]為數(shù)組x[]的第二個(gè)元素,值為2;進(jìn)入for循環(huán)i=0時(shí),p[0]=&x[1]…直到循環(huán)完畢,指針?lè)謩e指向數(shù)組x[]中的第2、4、6、8個(gè)元素,所以第二個(gè)空白處應(yīng)填2468。
35.1B1B解析:從鍵盤(pán)輸入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在輸出時(shí)均需要把a(bǔ),b轉(zhuǎn)化為字符型,因此輸出為1B。
36.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
37.1+a1-a1+a\r\n1-a解析:因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對(duì)值之和。所以根據(jù)數(shù)學(xué)中求絕對(duì)值的規(guī)則,當(dāng)a>=0時(shí),絕對(duì)值取本身,當(dāng)a<0時(shí),絕對(duì)值取相反數(shù),再結(jié)合條件運(yùn)算符的計(jì)算規(guī)則可得到本題的答案為a>=0。注意:逗號(hào)表達(dá)式的求值規(guī)則。
38.*(srt+i)或str[i]i*(srt+i)或str[i]\r\ni解析:求str指向的字符串長(zhǎng)度的算法是:用一個(gè)變量i表示字符串中字符的位置,一開(kāi)始賦值為0,取出i位置的字符,判斷是否為'\\0',若不是則i的值加1,如此循環(huán)直到取出的字符是'\\0'為止,此時(shí)i的值就是字符串的長(zhǎng)度。由此可知,第一個(gè)空處應(yīng)填第i位置上的字符*(str+i);第二個(gè)空格應(yīng)該填字符串的長(zhǎng)度i。
39.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:求兩個(gè)矩陣的和只要將對(duì)應(yīng)元素相加即可。
40.123056009123\r\n056\r\n009解析:數(shù)組a中元素的初值為: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[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個(gè)for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個(gè)for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。
41.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦韌值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語(yǔ)句。本題在程序開(kāi)頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過(guò)來(lái)的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
42.B解析:視圖設(shè)汁一般有3種設(shè)計(jì)次序,它們分別是自頂向下、自底向上和由內(nèi)
向外,它們又為視圖設(shè)計(jì)提供了具體的操作方法,設(shè)計(jì)者可根據(jù)實(shí)際情況靈活掌握,可以
單獨(dú)使用也可混合使用。
注意:數(shù)據(jù)庫(kù)概念設(shè)計(jì)的過(guò)程:首先選擇局部應(yīng)用,再進(jìn)行局部視圖設(shè)計(jì),最后
對(duì)局部視圖進(jìn)行集成得到概念模式。
43.B解析:字符串連接函數(shù)streat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)將s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動(dòng)覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。
44.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識(shí)符PI來(lái)代替“3.1415926”這個(gè)字符串,但宏定義不是C語(yǔ)句,不必在行末加分號(hào)。
45.D解析:在C語(yǔ)言的所有運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低;C語(yǔ)言中的字母區(qū)分大小寫(xiě),所以APH和aph是兩個(gè)不同的變量;賦值表達(dá)式a=b表示將b的值賦給a,而b本身的值保持不變;當(dāng)從鍵盤(pán)輸入數(shù)據(jù)時(shí),對(duì)于整型變量可以輸入整型數(shù)值和字符,對(duì)于實(shí)型變量可以輸入實(shí)型數(shù)和整型數(shù)值等,選項(xiàng)D)錯(cuò)。
46.D解析:程序中for循環(huán)中省略了判斷退出循環(huán)的表達(dá)式,for循環(huán)將由里面的break語(yǔ)句控制是否結(jié)束循環(huán),第一次循環(huán),第一條if語(yǔ)句后面括號(hào)里的表達(dá)式的值為假,所以該if語(yǔ)句不被執(zhí)行,執(zhí)行下面的第二條語(yǔ)句,此時(shí)該if語(yǔ)句表達(dá)式的值為假,所以該if語(yǔ)句也不執(zhí)行,執(zhí)行下面的語(yǔ)句,i++、s+=i,執(zhí)行完畢后i的值為1,s的值為1,如此循環(huán),直到第三次之后i,s的值都為3,繼續(xù)第四次循環(huán),顯然這時(shí)滿(mǎn)足第一條if語(yǔ)句的,執(zhí)行后面的continue該次循環(huán)結(jié)束從頭開(kāi)始下次循環(huán),而i的值為3一直沒(méi)有改變,所以第一條語(yǔ)句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去。
47.C解析:選項(xiàng)A的意思是:在x>O情況下,y為1,否則,在x=O時(shí),y為0,剩下x<O時(shí),y為-1,滿(mǎn)足本題中函數(shù)的要求。選項(xiàng)B描述的意思是:初始化y的值為0,在x>O時(shí),給y重新賦值為1,否則,在x<O時(shí),給y重新賦值為-1,滿(mǎn)足本題中函數(shù)的要求。選項(xiàng)C描述的意思是:在x>=0情況下,如果x>O,則y為1,否則,即x==0時(shí),y為-1;剩下的x<O時(shí),y為0。可見(jiàn)答案C實(shí)現(xiàn)的結(jié)果不是給定的表達(dá)式。選項(xiàng)D中描述的意思是:在x>=0的情況下,如果x>O,就給y賦值為1,否則即x==0時(shí)給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿(mǎn)足本題中函數(shù)的要求。所以4個(gè)選項(xiàng)中C為所選。
48.C學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C項(xiàng)。
49.B解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行進(jìn)行初始化;③部分?jǐn)?shù)組元素進(jìn)行初始化;④省略第一維的定義,不省略第二維的定義。選頃B)等號(hào)右邊分了3行,大于等號(hào)左邊數(shù)組的行數(shù)2。
50.C解析:宏替換實(shí)質(zhì)上就是字符替代,它不可能進(jìn)行計(jì)算,故C錯(cuò)誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時(shí)不會(huì)產(chǎn)生類(lèi)似于函數(shù)調(diào)用的問(wèn)題,可以說(shuō)不占用運(yùn)行時(shí)間。
51.C解析:程序中定義了兩個(gè)變量a和b,并分別賦初值為7和8,定義了3個(gè)指針變量p、q、r,并讓指針p指向變量a,讓q指向變量b,然后通過(guò)一個(gè)中間指針變量r,使指針變量p和q互換,互換后p指向b,q指向a,因此最后輸出的*p、*q的值為8、7、a、b的值沒(méi)有改變?nèi)詾?、8。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
52.D解析:在C語(yǔ)言程序中,可以用一個(gè)符號(hào)名宋代表一個(gè)常量,稱(chēng)為符號(hào)常量。這個(gè)符號(hào)名必須在程序中進(jìn)行特別的“指定”,并符合標(biāo)識(shí)符的命令規(guī)則。在本題中圓周率冗是一個(gè)符號(hào)常量,但在程序中并沒(méi)有指定其值,所以編譯器找不到其值就會(huì)報(bào)錯(cuò)。所以選項(xiàng)D)正確。
53.C
54.C解析:因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或1時(shí),返回值3。否則p=x-fun(x-2)這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)時(shí),其過(guò)程為:“fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1))=7-(5-(3-3))=7-5=2”,所以最后的輸出結(jié)果為2。
55.B解析:因?yàn)樵谘h(huán)中存在一條這樣的語(yǔ)句“if(n=4)break;”,所以循環(huán)變量n遞增到4的時(shí)候循環(huán)會(huì)被強(qiáng)行結(jié)束。故一共循環(huán)了5次,每次n的值分別為0、1、2、3、4。應(yīng)該選擇B。
56.D解析:主函數(shù)的第一個(gè)參數(shù)argc為整形參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為5,argv[0]指向字符串“ex”,argv[l]指向參數(shù)字符串“abcd”,argv[2]指向字符串“efg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“k44”。在main()函數(shù)中,for循環(huán)執(zhí)行了兩次,當(dāng)i=1時(shí),len=O+strlen(argv[1]),而其中argv[l]=“abcd”,故此時(shí)len的值為4;當(dāng)i=3時(shí),len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此時(shí)len的值為6;當(dāng)i=5時(shí),退出循環(huán),故最后輸出的len值為6。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
57.D解析:本題的函數(shù)fun的最后一個(gè)語(yǔ)句是“return(*a-*b);”,也就是返回指針a所指單元的值與指針b所指單元的值的差。顯然這不可能是計(jì)算a和b所指字符串的長(zhǎng)度之差,因此選項(xiàng)A的說(shuō)法是錯(cuò)誤的。由于函數(shù)中并沒(méi)有出現(xiàn)。a=*b的賦值操作,所以選項(xiàng)B的連接字符串的說(shuō)法也是錯(cuò)誤的。同理,由于沒(méi)有*a現(xiàn)*a=*b的賦值操作,所以選項(xiàng)C的復(fù)制字符串的說(shuō)法也是錯(cuò)誤的。排除了三個(gè)選項(xiàng)后,就可以斷定正確選項(xiàng)是D。
58.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車(chē)符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。
59.D解析:本題中首先定義一個(gè)字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個(gè)字符指針變量p,在接下來(lái)for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時(shí)輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時(shí)輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時(shí)輸出的p所指的字符串的值為D。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
60.C解析:在關(guān)系模型的數(shù)據(jù)語(yǔ)言中,一般除了運(yùn)用常規(guī)的集合運(yùn)算(并、交、差、笛卡爾積等)外,還定義了一些專(zhuān)門(mén)的關(guān)系運(yùn)算,如投影、選擇、連接等運(yùn)算。前者是將關(guān)系(即二維表)看成是元組的集合,這些運(yùn)算主要是從二維表的行的方向來(lái)進(jìn)行的;后者主要是從二維表的列的方向來(lái)進(jìn)行運(yùn)算。因此,選項(xiàng)A與B中的說(shuō)法都是錯(cuò)誤的,而選項(xiàng)C中的說(shuō)法是正確的。
61.C
62.D解析:笛卡爾積:設(shè)關(guān)系R和S的元數(shù)分別是r和s,定義R和S的笛卡爾積是一個(gè)(r+s)元元組的集合,每一個(gè)元組的前r個(gè)分量來(lái)自R的一個(gè)元組,后s個(gè)分量來(lái)自S的一個(gè)元組。若R有k1個(gè)元組,s有k2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1×k2個(gè)元組。交:設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的交由屬于R又屬于S的所有元組組成。并:設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的元組組成。自然連接:是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須有相同的屬性組,并且要將結(jié)果中重復(fù)的屬性去掉。
63.A聲明靜態(tài)局部變量:函數(shù)調(diào)用結(jié)束后,其占用的存儲(chǔ)單元不釋放:在下次該函數(shù)調(diào)用時(shí),該變量保留上一次函數(shù)調(diào)用結(jié)束時(shí)的值。本題子函數(shù)fun中的變量i和m均為靜態(tài)局部變量。因此第一次調(diào)用fun函數(shù),返回m的值為5,第二次再調(diào)用fun函數(shù)時(shí),i的值為3,m的值已經(jīng)是5了,所以執(zhí)行i+=m+1,i的值變?yōu)?,m=i+x+y=9+l+l=11。故本題答案為A)。
64.C關(guān)系完整性是為保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和相容性,對(duì)關(guān)系模型提出的某種約束條件或規(guī)則。完整性通常包括域完整性,實(shí)體完整性、參照完整性和用戶(hù)定義完整性,“年齡在18~25之間”屬于用戶(hù)定義完整性約束
65.A本題考查的是遞歸算法的分析。一個(gè)直接或間接地調(diào)用自身的算法稱(chēng)為遞歸算法。在一個(gè)遞歸算法中,至少要包含一個(gè)初始值和一個(gè)遞歸關(guān)系。本題的fun()函數(shù)在n等于l時(shí)返回1,而在其余情況下返[fi]n+fun(n一1),所以本題的遞歸算法可以這樣來(lái)表示:fun(n)=1(n=1)(初始值)fun(n)=n+fun(n一1)(n≠1)(遞歸關(guān)系)此時(shí)不難看出,該遞歸算法實(shí)現(xiàn)的是計(jì)算l+2+3+…+n,而且n必須大于0,否則會(huì)陷入死循環(huán)。故題目輸出的結(jié)果是l+2+3+..+10=55.應(yīng)該選擇A)。
66.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語(yǔ)言不允許用賦值表達(dá)式對(duì)字符數(shù)組賦值,如下面的語(yǔ)句就是非法的:str1='China',如果想把“China”這5個(gè)字符放到數(shù)組str1中,除了逐個(gè)輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個(gè)字符串復(fù)制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語(yǔ)句來(lái)實(shí)行賦值(將str2的值傳給str1):str1=str2;不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。
strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)
其中,需要注意的是,字符數(shù)組1的長(zhǎng)度不應(yīng)小于字符串2的長(zhǎng)度,“字符數(shù)組1”必須寫(xiě)成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。
67.D
\n本題考查for循環(huán)的使用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咖啡市場(chǎng)分析與調(diào)研試題及答案
- 內(nèi)資股東轉(zhuǎn)讓合同二零二五年
- 二零二五最高額保證擔(dān)保合同范例
- 房地產(chǎn)買(mǎi)賣(mài)合同模板
- 倉(cāng)庫(kù)出租合同二零二五年
- 二零二五版自擬離婚協(xié)議范例
- 二零二五版呼和浩特二手房買(mǎi)賣(mài)合同
- 睫毛產(chǎn)品知識(shí)培訓(xùn)課件
- 橋板運(yùn)輸安裝安全協(xié)議書(shū)
- 二零二五裝修委托協(xié)議合同范例
- DBJ61_T 179-2021 房屋建筑與市政基礎(chǔ)設(shè)施工程專(zhuān)業(yè)人員配備標(biāo)準(zhǔn)
- 畢業(yè)設(shè)計(jì)三交河煤礦2煤層開(kāi)采初步設(shè)計(jì)
- 預(yù)應(yīng)力錨索施工全套表格模板
- SIEMENS-S120變頻器硬件、軟件培訓(xùn)(高端培訓(xùn))課件
- 食品流通許可證食品經(jīng)營(yíng)操作流程圖
- CA6132普通車(chē)床使用說(shuō)明書(shū)
- 風(fēng)電場(chǎng)工作安全培訓(xùn)
- 壓縮機(jī)課程設(shè)計(jì)(共28頁(yè))
- 四方公司機(jī)組扭振監(jiān)測(cè)、控制和保護(hù)新技術(shù)---1105 17
- 混凝土拆模令
- 康復(fù)治療技術(shù)士知識(shí)點(diǎn)
評(píng)論
0/150
提交評(píng)論