




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年江西省景德鎮(zhèn)市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.由權(quán)值分別為3,8,6,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為________。
A.24B.48C.72D.53
3.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{iuta=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{intc;
if(a>B)c=1;
e1Seif(a==B)c=0;
else(3=-1;
return(C);
}
A.-1B.0C.1D.2
4.
5.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()結(jié)構(gòu)。
A.存儲B.物理C.邏輯D.物理和存儲
6.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對初始序列精細(xì)第一堂排序的結(jié)果。
A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序
7.關(guān)于數(shù)組和指針,以下說法錯誤的是()。
A.數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置
B.既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中
C.可以將指針指向一個同類型的數(shù)組
D.指針可以指向同類型的數(shù)組中的任意一個元素
8.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
9.
10.考慮下圖中的程序段,①號語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'
11.如果最常用的操作是取第i個結(jié)點(diǎn)及其前驅(qū),則采用()存儲方式最節(jié)省時間。A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.順序表
12.在供應(yīng)關(guān)系中,實(shí)體供應(yīng)商和實(shí)體零件之間的聯(lián)系是()。
A.多對多B.一對一C.多對一D.一對多
13.以下選項(xiàng)中的表達(dá)式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
14.表達(dá)式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
15.有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序執(zhí)行后的輸出結(jié)果是A.123,abcB.abc,123C.1bc,a23D.321,cba
16.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存
B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存
C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存
D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存
17.在關(guān)系數(shù)據(jù)模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
18.下列函數(shù)的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的長度
B.比較兩字符串的大小
C.將字符串s復(fù)制到字符串t中
D.將字符串s連接到字符串t后
19.在一個有頭結(jié)點(diǎn)的鏈隊(duì)列中,假設(shè)f和r分別為隊(duì)首和隊(duì)尾指針,則插入s所指的結(jié)點(diǎn)的運(yùn)算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.s->next=r;r=s;
D.s->next=f;f=s;
20.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
二、2.填空題(20題)21.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
執(zhí)行后的輸出結(jié)果是【】。
22.對下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。
23.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
24.有以下程序,其功能是:以二進(jìn)制“寫”方式打開文件d1.dat,寫入1~100這100個整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開文件d1.dat,將這100個整數(shù)讀入到另一個數(shù)組b中,并打印輸出。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
inti,a[100],b[100];
fp=fopen("d1.dat","wb");
for(i=0;i<100;i++)a[i]=i+1;
fwrite(a,sizeof(int),100,fp);
fclose(fp);
fp=fopen("d1.dat",【】);
fread(b,sizeof(int),100,fp);
fclose(fp);
for(i=0;i<100;i++)printf("%d\n",b[i]);
}
25.實(shí)現(xiàn)程序可將磁盤中的一個文件復(fù)制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
26.以下程序?qū)?shù)組a的4個元素和數(shù)組b的6個元素寫到名為letter.dat的二進(jìn)制文件中,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
chara[4]="1234",b[6]="abcdef";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
27.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
28.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
29.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。
30.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{chara[]={'\1','\2','\3','\4','\0'};
printf("%d%d\n",sizeof(a),strlen(a));
}
31.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
32.軟件生命周期包括8個階段。為使各時期的任務(wù)更明確,又可以分為以下3個時期:軟件定義期、軟件開發(fā)期、軟件維護(hù)期。編碼和測試屬于【】期。
33.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
34.若a是int型變量,則下列表達(dá)式的值為______。
(a=2*3,a*2),a+4
35.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
36.以下程序運(yùn)行后的輸出結(jié)果是()。
#include<stdio.h>
main()
{intx=20;
printf("%d",0<x<20);
printf("%d\n",0<x&&x<20);
}
37.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
38.由25人圍坐成圓圈,先由任意一人開始順時針沿用1~25依次編號,然后從1號開始順時針報數(shù)(1、2、3…),凡報5的倍數(shù)者出圈,剩下者繼續(xù)報數(shù),求出最后出圈者的編號。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
39.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
40.下面程序的運(yùn)行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
A.-6B.1C.2D.-12
42.以下程序輸出的結(jié)果是_______。main(){inta=65535;printf("%d%u",a,A);}
A.-1-1B.6553565535C.-165535D.65535-1
43.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
44.下面程序輸出的結(jié)果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}
A.1234B.4321C.1324D.4231
45.下列程序的輸出結(jié)果是______。main(){intx=0,a=0,b=2;if(x=a+b)printf("****\n");elseprintf("####\n");}
A.有語法錯,不能通過編譯B.通過編譯,但不能連接C.****D.####
46.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
47.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
執(zhí)行該程序段后,x的值為
A.trueB.falseC.0D.1
48.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
49.以下程序的輸出結(jié)果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
50.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
51.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
52.運(yùn)行以下程序后,如果從鍵盤上輸入china#<回車>,貝愉出結(jié)果為_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}
A.2,0B.5,0C.5,5D.2,5
53.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為______。
A.10101001B.10101000C.11111101D.1010101
54.以下不正確的敘述是A.A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低
B.在C程序中,APH和aph是兩個不同的變量
C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實(shí)型變量只能輸入實(shí)型數(shù)值
55.以下程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
56.下列選項(xiàng)中正確的語句是()。
A.chars[8];s={"Beijng"};
B.char*s;s={"Beijng"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing';
57.下列說法正確的是()。
A.在C程序中,main()函數(shù)必須位于程序的最前面
B.在C程序中,一條語句只能寫一行而不能寫多行
C.C程序是以行為基本單位的
D.C語言本身沒有輸入輸出語句
58.有以下程序:#include<stdlib.h>voidfun(int*s,int**d){**d=*(s+2);}main(){inta[]={1,2,3,4,5},*b;b=(int*)malloc(sizeof(int));fun(a,&B);printf("%d\n",*b+1);}程序的輸出結(jié)果是()
A.2B.3C.4D.5
59.有以下程序:#include<stdio,h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[1];a[i]=a[j];a[j]=t;}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)prinff("%d,",aa[i]);prinff("\n");程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
60.下列敘述中,正確的一條是______。
A.語句int*pt中的*pt是指針變量名
B.運(yùn)算符*和&都是取變量地址的運(yùn)算符
C.已知指針變量p指向變量a,則&a和*p值相同,都是變量a的值
D.語句“int*p=a;”等價于“int*p;p=&a[0];”
四、選擇題(20題)61.
62.某二叉樹共有7個結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。
A.3B.4C.6D.7
63.
64.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應(yīng)消息C.消息頭和消息體D.實(shí)體消息和控制消息
65.
66.以下程序的輸出結(jié)果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
67.
68.
69.以下程序的功能是
#include<stdio.h>
main()
{FILE*fp1;*fp2;
fp1=fopen("file1","r");
fp2=fopen("file2","w");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
A.將磁盤文件的內(nèi)容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復(fù)制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
70.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性
71.
72.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
73.以下程序段完全正確的是()。
74.
75.
以下程序的輸出結(jié)果是()。
voidfun(int*a,inti,inti)
{intt;
if(i<i)
{t=a[i[;a[i]=a[j];a[j]一t;
i++;j--;fun(a,i,j);
}
}
main
{intK[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<1;i++)printf("%2d",x[i]);
printf("\n");
}
A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2
76.有以下程序段:
為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應(yīng)該是()。
A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
77.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
78.在數(shù)據(jù)庫設(shè)計(jì)中,將E—R圖轉(zhuǎn)換為關(guān)系模式的過程屬于()。
A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段
79.
80.
五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)proc(),它的功能是求m以內(nèi)(不包括m)同時能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。
例如,m為100時,函數(shù)值應(yīng)為s=7.416198。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.A
2.D
3.A解析:本題考查ifelse語句。在intf(a,B)中:第一個if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句:第二個if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。
4.C
5.C解析:數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)以及他們之間的相互聯(lián)系。其中數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,它與所使用的計(jì)算機(jī)無關(guān):數(shù)據(jù)的物理結(jié)構(gòu),又稱存儲結(jié)構(gòu),是指數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示,它包括數(shù)據(jù)元素的表示和元素的表示,其中數(shù)據(jù)元素之間的關(guān)系在計(jì)算機(jī)中有順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)兩種。因此C是正確答案。
6.C
7.BC語言中,數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置,選項(xiàng)A正確;已經(jīng)定義的數(shù)組被分配了內(nèi)存空間,所以可以讀入數(shù)據(jù)到數(shù)組中,未賦初值的指針沒有分配內(nèi)存空間,不可以讀入數(shù)據(jù),選項(xiàng)B錯誤;可以將指針指向一個同類型的數(shù)組,選項(xiàng)C正確;指針指向一個數(shù)組后,可以通過移動指針,指向該數(shù)組中的任意一個元素,選項(xiàng)D正確。故本題答案為B選項(xiàng)。
8.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。
9.B
10.D
11.D
12.A一家供應(yīng)商可提供多種零件,一種零件也可被多家供應(yīng)商提供。所以實(shí)體供應(yīng)商和實(shí)體零件之間的聯(lián)系是多對多。本題答案為A選項(xiàng)。
13.C
14.D解析:+=、-=、=等符號優(yōu)先級相同結(jié)合性是由右至左,所以選D。
15.C解析:此題考核的知識點(diǎn)是指針變量值的交換。c語言中,字符串常量在內(nèi)存中是以字符數(shù)組的形式進(jìn)行存放的,因此字符指針x和y指向的是各字符串的首地址,也就是字符串第—個字符的地址,則*x與*y交換的是字符串的第—個字符,即字符“a”與“1”的交換,而字符串中其它字符保持不變,所以答案選C。
16.Afgets函數(shù)的功能是從fp所指文件中讀入n-1個字符放入以str為起始地址的空間內(nèi),讀取長度不超過n-1,讀入結(jié)束后,自動在最后添加’\\0’,選項(xiàng)A正確。本題答案為A選項(xiàng)。
17.D解析:數(shù)據(jù)庫表中字段轉(zhuǎn)化為屬性,把記錄的類型轉(zhuǎn)化為關(guān)系模式。
18.B在本題中,從題目給出的四個選項(xiàng)我們就可以知道,程序是對兩個字符串進(jìn)行操作。下面將具體分析程序。
程序首先定義兩個字符型的指針變量s和t,從后面的程序中不難看出這兩個指針變量應(yīng)該用來對兩個字符串進(jìn)行操作處理。用循環(huán)來對字符串進(jìn)行處理時,循環(huán)繼續(xù)的條件是指針變量s和指針變量t所指向的結(jié)果值不為0,且兩結(jié)果值相等。很顯然,指針變量s和指針變量t所指向的結(jié)果值不為0,說明兩字符串沒有結(jié)束,只有結(jié)束時才為0,而結(jié)果值相等說明兩字符相等,如果不等,循環(huán)則結(jié)束,此時程序?qū)⒁蠓祷夭坏仍刂g的差值,從差值的正負(fù)關(guān)系我們可以判斷出哪個元素更大。綜上所述,程序段的作用是用來比較兩字符串的大小。因此,本題正確的答案選B。
19.B
20.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
21.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。
22.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。
23.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
24.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根據(jù)題目要求,在下劃線位置應(yīng)該填入一個能實(shí)現(xiàn)二進(jìn)制讀的使用文件方式的參數(shù)即可。所以,可以填'rb'或'r+b'或'rb+'。
25.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
26.letter.dat6*sizeof(char)letter.dat\r\n6*sizeof(char)解析:本題主要考查函數(shù)fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size個字節(jié)輸出到fp所指文件中。
27.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
28.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。
29.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。
30.545\u3000\u30004解析:字符串處理函數(shù)strlen()返回的是字符數(shù)組的實(shí)際長度,不包括字符申結(jié)束標(biāo)志‘\\\u30000’。而sizeof運(yùn)算符則計(jì)算的是字符數(shù)組的總長度,包括串末尾的結(jié)束標(biāo)志。
31.x+=1x+=1解析:本題考查“++”,“--”運(yùn)算符?!?+”、“--”只能作用于變量,不能用于表達(dá)式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
32.軟件開發(fā)。軟件開發(fā)。解析:通常,軟件生命周期包括8個階段:問題定義、可行性研究、需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試、運(yùn)行維護(hù)。還分為3個時期,軟件定義期:包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試4個階段;軟件維護(hù)期:即運(yùn)行維護(hù)階段。
33.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。
34.1010解析:此題考查逗號表達(dá)式。逗號表達(dá)式的值是最后一個表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。
35.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時,p[0]=&x[1],p[0][0]=2;當(dāng)i=1時,p[1]=&x[3],p[1][0]=4;當(dāng)i=2時,p[2]=&x[5],p[2][0]=6;當(dāng)i=3時,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
36.1010解析:表達(dá)式0<x<20,首先計(jì)算0<x,其值為1,再計(jì)算1<20,其值為1,輸出1;表達(dá)式0<x&&x<20,0<x為1,x<20為0,再計(jì)算1&&0,其值為0,輸出0。所以輸出結(jié)果為10。
37.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時,應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。
38.0a[j]=0count<25
39.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。
40.x=2y=1
41.D解析:賦值運(yùn)算符的結(jié)合方向是自右至左,所以表達(dá)式a+=a=a*a先運(yùn)算最右邊的a*a得9,再運(yùn)算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運(yùn)算a=a+(-6)=-12。
42.C解析:printf函數(shù)中不同類型的數(shù)據(jù)用不同的格式字符,其中%d是按整型數(shù)據(jù)的實(shí)際長度輸出十進(jìn)制整數(shù)。變量a=65535以%d格式輸出時溢出輸出值為該數(shù)的補(bǔ)碼值,即-1:%u用來輸出unsigned型數(shù)據(jù),無符號整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。
43.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計(jì)算switch后面括號里的表達(dá)式a%3,即15%3為0:執(zhí)行case0:后面的語句“m++;”,m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m值為1。所以選項(xiàng)A正確。
44.B解析:本題的fun()函數(shù)是用遞歸法實(shí)現(xiàn)逆序輸出一個字符串。函數(shù)中首先定義一個局部變量t,然后s所指的內(nèi)容是否為字符串結(jié)束符,不是的話將s所指的內(nèi)容賦給t,同時使s后移一位,然后遞歸調(diào)用fun(s)。到這條語句為止是遞歸過程,即接下來連續(xù)遞歸調(diào)用fun(s)都只會執(zhí)行到這一半,直到回朔條件(s所指內(nèi)容是字符串結(jié)束符)出現(xiàn),fun()函數(shù)連續(xù)返回,判斷t不等于0的話,就輸出t,所以輸入的字符串被逆序輸出,故本題的正確答案應(yīng)該是B。
45.C解析:if語句中的條件表達(dá)式是賦值表達(dá)式,a+b值為2,賦給x,x值非0,輸出****。
46.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
47.D解析:在C語言中,邏輯運(yùn)算符有4個,它們分別是:!(邏輯非)、邏輯或)、&&(邏輯與)、^(異或)。在位運(yùn)算里面還有&(位與)、|(位或)的運(yùn)算。本題考查邏輯與運(yùn)算符的用法,在表達(dá)式x=(a&&b)&&(c<'B');中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當(dāng)然c<'B'是成立的,顯然,該表達(dá)式的值為1。
48.C解析:本題考核的知識點(diǎn)是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項(xiàng)B和選項(xiàng)D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項(xiàng)B和選項(xiàng)D不正確。因?yàn)樵贑語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項(xiàng)C正確.而選項(xiàng)A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項(xiàng)A不正確,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
49.A解析:觀察子函數(shù)fun()可知,它是實(shí)現(xiàn)—個數(shù)組首末元素位置互相依次交換。聯(lián)系主函數(shù),可以看出,是對字符串中的元素依次進(jìn)行首末位置的對調(diào)。
50.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實(shí)際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
51.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
52.C解析:執(zhí)行完一個case后面的語句后,流程控制移到下一個case繼續(xù)執(zhí)行?!癱ase常量表達(dá)式”只是起語句標(biāo)號作用,并不是在該處進(jìn)行條件判斷。在執(zhí)行switch語句時,根據(jù)switch后面表達(dá)式的值找到匹配的入口標(biāo)號,就從此標(biāo)號開始執(zhí)行下去,不再進(jìn)行判斷。
53.D解析:異或運(yùn)算符(^)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個相應(yīng)位同號,則結(jié)果為0(假);異號則為1(真)。取反運(yùn)算符(-)的運(yùn)算規(guī)則是:對一個二進(jìn)制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對3(二進(jìn)制形式為00000011)按位取反即11111100。表達(dá)式(2+x)(-3)的值就等價于(00000010+10100111)^11111100,結(jié)果為01010101。
54.D解析:在C語言所有的運(yùn)算符中,逗號運(yùn)算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達(dá)式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計(jì)算機(jī)輸入允許的任何類型的數(shù)據(jù)。選項(xiàng)D)中當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實(shí)型變量可以輸入實(shí)型數(shù)值和整型數(shù)值等。
55.D解析:strcpy()函數(shù)的作用是把第二個參數(shù)代表的字符串,復(fù)制到第一個參數(shù)指向數(shù)組中。首先定義了兩個字符數(shù)組b1和b2,并用一個字符串給b1賦初值,然后定義了一個字符型指針變量pb,通過賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pb);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>:b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,使得指針pb自減1,即前移一位)。
56.D解析:用字符串常量給數(shù)組賦值的形式有“chars[8]={'Beijng'};”或“chars[8]='Beijing'”,而沒有選項(xiàng)A中的形式。選項(xiàng)C中的s是數(shù)組名為地址常量,不能被賦新值。選項(xiàng)D中s被定義為指針變量,s='Beijng'并不是把字符串的內(nèi)容放入s中,而是把字符串在內(nèi)存中的首地址賦值給s,故選項(xiàng)D正確,而選項(xiàng)B中的形式不存在。
57.D解析:本題涉及C語言最基本的4個知識點(diǎn):①C語言程序是由函數(shù)構(gòu)成的,C程序的基本單位是函數(shù);②每個C程序有且只有一個主函數(shù)main(),且程序必須從main()函數(shù)開始執(zhí)行,但是main()函數(shù)可以放在程序中的任意位置;③C語言的書寫格式是自由的,一行可以寫多條語句,一條語句也可以寫在不同的行上;④C語言本身不提供輸入輸出語句,可以通過函數(shù)來實(shí)現(xiàn)輸入和輸出操作。
58.C
59.C解析:sort函數(shù)的功能是將給定的數(shù)由大到小排序。函數(shù)調(diào)用sort(aa+2,5);中的實(shí)參aa+2是aa[2]的地址,將其傳給形參a[],使得形參中封a[0]的值為主函數(shù)中aa[2]的值,即3;實(shí)參5傳給形參n,在sort函數(shù)中用于指定參加排序的5個數(shù),從aa[2]到aa[6],所以本題輸出的結(jié)果是:1,2,7,6,5,4,3,8,9,10,
60.D
61.D
62.D根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個,因此本題中度為2的結(jié)點(diǎn)為l一1=0個,據(jù)此可以知道本題目中的二叉樹的每一個結(jié)點(diǎn)都有一個分支,所以共7個結(jié)點(diǎn)共7層,即深度為7,選擇D)。
63.A
64.B
65.A
66.C在“r=P;p=q;q=r;”三個語句是表示P與q交換,經(jīng)過交換后P指向b的地址,q指向a的地址,因此最后輸出為8,7,7,8,故選擇C選項(xiàng)。
67.B
68.D
69.C本題主要考查文件的操作。在本題的程序中,首先定義了兩個文件指針fp1和fp2,然后用指針fp1指向一個以讀方式打開的文件file1,用指針fp2指向一個以寫方式打開的文件file1,接著執(zhí)行while循環(huán),循環(huán)的結(jié)束條件是(!feof(fp1))為假,即feof(fp1)為真,表示對文件fp1的操作讀取到結(jié)束符,因此,循環(huán)結(jié)束的條件是對文件file1的讀取結(jié)束,循環(huán)體語句fputc(fgetc(fp1),fp2);中用到了fgetc和fputc函數(shù),C語言提供這兩個函數(shù)對文本文件進(jìn)行字符的讀寫操作。fgetc(fp1)函數(shù)的作用是從輸入流fp1的當(dāng)前位置返回一個字符,并將文件指針指示器移到下一個字符處;fputc(ch,fp2)函數(shù)的作用是將字符ch的值寫入所指定的流文件的當(dāng)前位置處,并將文件指針后移一位。
根據(jù)上面的分析,可以知道循環(huán)結(jié)束后,即將指針fp1指向的文件復(fù)制到指針fp2指向的文件中,然后關(guān)閉兩個操作的文件。因此,本題程序的作用是將一個磁盤文件復(fù)制到另一個磁盤文件中,本題正確答案選C。
70.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨(dú)立的模塊,這樣使完成每一個模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。
由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個模塊時,不會受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。
結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個新構(gòu)造的程序一定是一個單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。
71.A
72.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。
73.AsCanfi垂i數(shù)參數(shù)列表,需要為指針,這個指針必須指向變量,所以答案選擇A)。
74.C
75.C
\n本題用了函數(shù)調(diào)用,fun中if語句成立則進(jìn)行i,j的交換,用到主函勢中則為把下標(biāo)為0、3,1、2互換,因此,當(dāng)執(zhí)行完后X的數(shù)組為8,1,6,2,故選擇C選項(xiàng)。
\n
76.D此題目中變量s是迷惑考生的,變量t賦初值為1,由語句t=t-2;將使t得到的是負(fù)奇數(shù)。所以選項(xiàng)D)是正確答案。
77.D
78.BB.【解析】數(shù)據(jù)庫設(shè)計(jì)階段主要包括需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。其中邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換為關(guān)系模式。
79.B
80.B
81.錯誤:t[i]=s[s1];
正確:t[i]=s[i];
【解析】函數(shù)proc()首先要實(shí)現(xiàn)將數(shù)組s中的元素順序放在數(shù)組t中,即數(shù)組t中下標(biāo)為i的元素在數(shù)組S中下標(biāo)也為i,因此“t[i]=s[s1];”應(yīng)改為“t[i]=s[i];”。
82.
【解析】按照題目中要求求m以內(nèi)(不包括m)同時能被5與11整除的所有自然數(shù)之和的平方根s,需要判斷m以內(nèi)的所有整數(shù)是否能同時被5與11整除,首先求出同時能被5與
11整除的所有自然數(shù)之和,然后再求和的平方根,最后返回到主函數(shù)當(dāng)中。
2021年江西省景德鎮(zhèn)市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.由權(quán)值分別為3,8,6,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹,它的帶權(quán)路徑長度為________。
A.24B.48C.72D.53
3.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{iuta=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{intc;
if(a>B)c=1;
e1Seif(a==B)c=0;
else(3=-1;
return(C);
}
A.-1B.0C.1D.2
4.
5.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的()結(jié)構(gòu)。
A.存儲B.物理C.邏輯D.物理和存儲
6.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對初始序列精細(xì)第一堂排序的結(jié)果。
A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序
7.關(guān)于數(shù)組和指針,以下說法錯誤的是()。
A.數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置
B.既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中
C.可以將指針指向一個同類型的數(shù)組
D.指針可以指向同類型的數(shù)組中的任意一個元素
8.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
9.
10.考慮下圖中的程序段,①號語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'
11.如果最常用的操作是取第i個結(jié)點(diǎn)及其前驅(qū),則采用()存儲方式最節(jié)省時間。A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.順序表
12.在供應(yīng)關(guān)系中,實(shí)體供應(yīng)商和實(shí)體零件之間的聯(lián)系是()。
A.多對多B.一對一C.多對一D.一對多
13.以下選項(xiàng)中的表達(dá)式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
14.表達(dá)式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
15.有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序執(zhí)行后的輸出結(jié)果是A.123,abcB.abc,123C.1bc,a23D.321,cba
16.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存
B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存
C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存
D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存
17.在關(guān)系數(shù)據(jù)模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
18.下列函數(shù)的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的長度
B.比較兩字符串的大小
C.將字符串s復(fù)制到字符串t中
D.將字符串s連接到字符串t后
19.在一個有頭結(jié)點(diǎn)的鏈隊(duì)列中,假設(shè)f和r分別為隊(duì)首和隊(duì)尾指針,則插入s所指的結(jié)點(diǎn)的運(yùn)算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.s->next=r;r=s;
D.s->next=f;f=s;
20.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
二、2.填空題(20題)21.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
執(zhí)行后的輸出結(jié)果是【】。
22.對下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。
23.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
24.有以下程序,其功能是:以二進(jìn)制“寫”方式打開文件d1.dat,寫入1~100這100個整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開文件d1.dat,將這100個整數(shù)讀入到另一個數(shù)組b中,并打印輸出。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
inti,a[100],b[100];
fp=fopen("d1.dat","wb");
for(i=0;i<100;i++)a[i]=i+1;
fwrite(a,sizeof(int),100,fp);
fclose(fp);
fp=fopen("d1.dat",【】);
fread(b,sizeof(int),100,fp);
fclose(fp);
for(i=0;i<100;i++)printf("%d\n",b[i]);
}
25.實(shí)現(xiàn)程序可將磁盤中的一個文件復(fù)制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
26.以下程序?qū)?shù)組a的4個元素和數(shù)組b的6個元素寫到名為letter.dat的二進(jìn)制文件中,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
chara[4]="1234",b[6]="abcdef";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
27.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
28.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
29.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。
30.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{chara[]={'\1','\2','\3','\4','\0'};
printf("%d%d\n",sizeof(a),strlen(a));
}
31.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
32.軟件生命周期包括8個階段。為使各時期的任務(wù)更明確,又可以分為以下3個時期:軟件定義期、軟件開發(fā)期、軟件維護(hù)期。編碼和測試屬于【】期。
33.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
34.若a是int型變量,則下列表達(dá)式的值為______。
(a=2*3,a*2),a+4
35.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
36.以下程序運(yùn)行后的輸出結(jié)果是()。
#include<stdio.h>
main()
{intx=20;
printf("%d",0<x<20);
printf("%d\n",0<x&&x<20);
}
37.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
38.由25人圍坐成圓圈,先由任意一人開始順時針沿用1~25依次編號,然后從1號開始順時針報數(shù)(1、2、3…),凡報5的倍數(shù)者出圈,剩下者繼續(xù)報數(shù),求出最后出圈者的編號。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
39.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
40.下面程序的運(yùn)行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。main(){inta=3;printf("%d\n",(a+=a-+a*a))}
A.-6B.1C.2D.-12
42.以下程序輸出的結(jié)果是_______。main(){inta=65535;printf("%d%u",a,A);}
A.-1-1B.6553565535C.-165535D.65535-1
43.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
44.下面程序輸出的結(jié)果是()。#include<stdio.h>main(){char*a="1234";fun(a);printf("\n");}fun(char*s){chart;if(*s){t=*S++;fun(s);}elsereturn;if(t!='\0')putchar(t);}
A.1234B.4321C.1324D.4231
45.下列程序的輸出結(jié)果是______。main(){intx=0,a=0,b=2;if(x=a+b)printf("****\n");elseprintf("####\n");}
A.有語法錯,不能通過編譯B.通過編譯,但不能連接C.****D.####
46.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
47.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
執(zhí)行該程序段后,x的值為
A.trueB.falseC.0D.1
48.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
49.以下程序的輸出結(jié)果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
50.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
51.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
52.運(yùn)行以下程序后,如果從鍵盤上輸入china#<回車>,貝愉出結(jié)果為_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}
A.2,0B.5,0C.5,5D.2,5
53.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為______。
A.10101001B.10101000C.11111101D.1010101
54.以下不正確的敘述是A.A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低
B.在C程序中,APH和aph是兩個不同的變量
C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實(shí)型變量只能輸入實(shí)型數(shù)值
55.以下程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){charb1[8]=“abcdefg”,b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pb);printf(“%d\n”,strlen(b2));}
A.8B.3C.1D.7
56.下列選項(xiàng)中正確的語句是()。
A.chars[8];s={"Beijng"};
B.char*s;s={"Beijng"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing';
57.下列說法正確的是()。
A.在C程序中,main()函數(shù)必須位于程序的最前面
B.在C程序中,一條語句只能寫一行而不能寫多行
C.C程序是以行為基本單位的
D.C語言本身沒有輸入輸出語句
58.有以下程序:#include<stdlib.h>voidfun(int*s,int**d){**d=*(s+2);}main(){inta[]={1,2,3,4,5},*b;b=(int*)malloc(sizeof(int));fun(a,&B);printf("%d\n",*b+1);}程序的輸出結(jié)果是()
A.2B.3C.4D.5
59.有以下程序:#include<stdio,h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[1];a[i]=a[j];a[j]=t;}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)prinff("%d,",aa[i]);prinff("\n");程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
60.下列敘述中,正確的一條是______。
A.語句int*pt中的*pt是指針變量名
B.運(yùn)算符*和&都是取變量地址的運(yùn)算符
C.已知指針變量p指向變量a,則&a和*p值相同,都是變量a的值
D.語句“int*p=a;”等價于“int*p;p=&a[0];”
四、選擇題(20題)61.
62.某二叉樹共有7個結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。
A.3B.4C.6D.7
63.
64.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應(yīng)消息C.消息頭和消息體D.實(shí)體消息和控制消息
65.
66.以下程序的輸出結(jié)果是()。main{inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
67.
68.
69.以下程序的功能是
#include<stdio.h>
main()
{FILE*fp1;*fp2;
fp1=fopen("file1","r");
fp2=fopen("file2","w");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
A.將磁盤文件的內(nèi)容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復(fù)制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
70.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性
71.
72.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
73.以下程序段完全正確的是()。
74.
75.
以下程序的輸出結(jié)果是()。
voidfun(int*a,inti,inti)
{intt;
if(i<i)
{t=a[i[;a[i]=a[j];a[j]一t;
i++;j--;fun(a,i,j);
}
}
main
{intK[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<1;i++)printf("%2d",x[i]);
printf("\n");
}
A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2
76.有以下程序段:
為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應(yīng)該是()。
A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
77.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
78.在數(shù)據(jù)庫設(shè)計(jì)中,將E—R圖轉(zhuǎn)換為關(guān)系模式的過程屬于()。
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保技術(shù)開發(fā)合同違約賠償及成果轉(zhuǎn)化
- 二零二五年度林業(yè)用地林地買賣合同范本(含林權(quán)流轉(zhuǎn))
- 二零二五年度大數(shù)據(jù)產(chǎn)業(yè)股權(quán)質(zhì)押融資合同
- 2025年度綠色建筑項(xiàng)目業(yè)績回報提成協(xié)議
- 二零二五年度自愿離婚協(xié)議書附共同債務(wù)承擔(dān)及信用修復(fù)合同
- 二零二五年度影視制片人藝術(shù)指導(dǎo)合同
- 2025年度車輛事故車輛損失賠償協(xié)議
- 2025浙江外服招募公立醫(yī)院國企人員33人筆試參考題庫附帶答案詳解
- 2025廣西大藤峽水利樞紐開發(fā)有限責(zé)任公司春季招聘8人筆試參考題庫附帶答案詳解
- 交通管理與控制知到智慧樹章節(jié)測試課后答案2024年秋同濟(jì)大學(xué)
- 2025年天翼云解決方案架構(gòu)師認(rèn)證考試指導(dǎo)題庫-下(多選、判斷題)
- 礦山機(jī)械傷害安全培訓(xùn)
- 《走進(jìn)汽車》課件
- 2025貴州省黔東南州直屬事業(yè)單位招聘202人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年語文高考復(fù)習(xí)計(jì)劃解析
- 新生兒腸道病毒感染
- 2025年度專業(yè)酒店裝修承攬合同
- 2025年度5G基站建設(shè)勞務(wù)合同范本
- (完整版)班主任量化考核細(xì)則
- 2025年中國鐵路鄭州局集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年上半年永春縣農(nóng)文旅發(fā)展集團(tuán)限公司公開招聘若干名工作人員易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論