




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年廣東省惠州市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.有以下程序
#include<stdio.h>
main()
{ini,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j)>3)break;
m=i*j;
}
}
printf("m=%d\n",m);
}
程序運(yùn)行后的輸出結(jié)果是A.m=6B.m=2C.m=4D.m=5
3.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。
A.1B..0C.6D.2
4.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運(yùn)行后的輸出結(jié)果是()。
A.CBB.BCAC.CCBBD.CDBCA
5.要聲明一個有10個int型元素的數(shù)組,正確的語句是()。
A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];
6.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
7.
8.需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結(jié)構(gòu)是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲結(jié)構(gòu)
9.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
10.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
11.在一個C語言源文件中定義的全局變量,其作用域?yàn)椋ǎ?/p>
A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
12.數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,()沒有專門的軟件對數(shù)據(jù)進(jìn)行管理。
I.人工管理階段
II.文件系統(tǒng)階段
Ⅲ.?dāng)?shù)據(jù)庫階段A.A.僅IB.僅ⅢC.I和IID.II和Ⅲ
13.判斷有向圖是否存在回路,利用()方法最佳。
A.求關(guān)鍵路徑B.求最短路徑C.拓?fù)渑判駾.廣度優(yōu)先遍歷
14.兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。
A.耦合度
B.內(nèi)聚度
C.復(fù)雜度
D.數(shù)據(jù)傳輸特性
15.數(shù)據(jù)在計算機(jī)存儲器內(nèi)表示時,如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。
A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)
16.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚假幣?
A.3B.4C.5D.6
17.以下關(guān)于注釋的敘述中錯誤的是()。
A.注釋的邊界符號“/”和“*”之間不允許加入空格
B.C語言允許注釋出現(xiàn)在程序中任意合適的地方
C.注釋的內(nèi)容僅用于閱讀,對程序的運(yùn)行不起作用
D.注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套
18.以下敘述中不正確的是
A.預(yù)處理命令行都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.宏替換不占用運(yùn)行時間,只占編譯時間
D.在以下定義是正確的:#definePI3.1415926;
19.對包含N個元素散列表進(jìn)行查找,平均查找長度()。
A.為OB.為O(N)C.不直接依賴ND.上述三者都不是
20.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
22.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
23.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
24.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次存放到該文件中,用#作為結(jié)束輸入的標(biāo)志,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenam\n");
gets(fname);
if((fp=【】==NULL)
{printf("Cannotopen\n");exit(0);}
printf("Enterdata\n");
while(ch=getchar()!='#')
fputc(【】,fp);
fclose(fp);
}
25.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
26.當(dāng)線性表的操作無插入和刪除時,采用【】結(jié)構(gòu)為好。
27.下列程序的輸出結(jié)果是16.00,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
28.以下程序運(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);}
29.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
30.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
31.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
32.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*pl=str1;
strcpy(str1+strlen(str1)/2,"esshe");
intf("%s\n",p1);
33.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
運(yùn)行后,i,j,m,n的值分別是_______。
34.下列程序的運(yùn)行結(jié)果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
35.若有以下程序:
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}
執(zhí)行后的輸出結(jié)果是【】。
36.軟件定義時期主要包括______和需求分析兩個階段。
37.閱讀下面語句,則執(zhí)行后的輸出結(jié)果為【】。
#include"stdio.h"
main()
{chara,b;
for(a='0',b='9';a<b;a++,b--)
printf("%c%c",a,b);
printf("\n");}
38.在面向?qū)ο蟮某绦蛟O(shè)計中,類描述的是具有相似性質(zhì)的一組【】。
39.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算s,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于或等于0。請?zhí)羁铡?/p>
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
40.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。
三、1.選擇題(20題)41.2個指針變量不可以______。
A.相加B.比較C.相減D.指向同一地址
42.有下列二叉樹,
對此二叉樹前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
43.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
44.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。
A.scanf(“%3d,%3d,%3d”,&i,&j,&k);
B.scanf(“%d,%d,%d”,&i,&J,&k);
C.scanf(“%d%d%d”,&i,&j,&k);
D.scanf(“i=%d,%d,k=%d”,&i,&j,&k);
45.已定義以下函數(shù)
fun(int*p)
{return*p;}
該函數(shù)的返回值是()
A.不確定的值
B.形參p中存放的值
C.形參p所指存儲單元中的值
D.形參p的地址值
46.以下程序的輸出結(jié)果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
47.以下正確的程序段是
A.charstr1[]="12345",str2[]="abcdef";
B.charstr[10],*st="abcde";strcat(str,st);
C.charstr[10]=""。*st="abcde";strcat(str,st);
D.char*st1="12345",*st2="abcde";strcat(st1,st2);
48.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
49.程序中頭文件type1.h的內(nèi)容是()。#defineN5#defineM1N*3程序如下:#define"type1.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序編譯后運(yùn)行的輸出結(jié)果是()。
A.10B.20C.25D.30
50.下列說法不正確的是()。
A.C程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成
B.C語言程序的一條語句可以寫在不同的行上
C.C程序的注釋行對程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫
D.C程序的每個語句都以分號結(jié)束
51.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是______。
A.2B.1C.3D.0
52.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的輸出結(jié)果是
A.409B.277C.1D.91
53.設(shè)q1和q2是指向一個int型一維數(shù)組的指針變最,k為float型變量,下列小能正確執(zhí)行的語句是()。
A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;
54.函數(shù)fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對
55.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}執(zhí)行后輸出結(jié)果是()。
A.產(chǎn)生語法錯誤B.隨機(jī)值C.AD.65
56.已知字母A的ASCII碼為十進(jìn)制數(shù)65,下面程序的輸出結(jié)果是()main(){charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf("%d,%c\n",ch1,ch2);}
A.67,DB.B,CC.C,DD.不正確定的值
57.下列程序是用來判斷數(shù)組中特定元素的位置所在。如果輸入如下整數(shù):876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,45l,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}則輸出結(jié)果為
A.7,431B.6C.980D.6,980
58.下列敘述中,正確的是
A.用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系
C.用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
59.執(zhí)行以下語句后的輸出結(jié)果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));
A.1B.0C.4D.3
60.若變量已正確定義并賦值,下面符合C語言的表達(dá)式是_____。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
四、選擇題(20題)61.
執(zhí)行下列程序中的輸出語句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
62.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細(xì)設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書
63.有以下程序
#include<stdio.h>
voidfun(char**p)
{++p;printf("%s",*p);}
main
{char*a[]={"Morning","Afternoon","Evening","Night");
fun(a);
}
程序的運(yùn)行結(jié)果是()。A.A.AfternoonB.fternoonC.MorningD.orning
64.有以下計算公式:
若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是
([answer]
65.當(dāng)變量c的值不為2、4、6時,值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
66.
67.
68.設(shè)已有定義:floatx;則以下對指針變量p進(jìn)行定義且賦初值的語句中正確的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;
69.
70.
71.以下敘述中正確的是()。
A)C程序中的#include和#define行均是C語句,只是語法不同
B)除賦值運(yùn)算符外,逗號運(yùn)算符的優(yōu)先級最低
C)C程序中,j++;是賦值語句
D)C程序中,+、-、*、/、%號是算數(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算
72.
73.有以下程序段:
程序運(yùn)行后的輸出結(jié)果是()。
A.a=10b=50C=30
B.a=10b=50c=10
C.a=10b=30c=10
D.a=50b=30c:50
74.
75.
76.如圖所示,兩個關(guān)系R1和R2:
則由關(guān)系R1和R2得到關(guān)系R3的操作是()。
A.笛卡爾積B.連接C.交D.除
77.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
78.
79.下列程序段的輸出結(jié)果是()。
A.passwarnB.passerrorC.goodpasswarnD.pass
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進(jìn)行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編一個函數(shù)voidproc(intttEM][N],intpp[N]),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每行中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineM3#defineN4voidproc(intttrM3rN]。intpp[N]){ }voidmain{intstr[M][N]={{34,56,84,78},{23,84,93,12),{28,38,39,93}};intp[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",str[i][j]);printf("\n");}proc(str,p);printf("\nTheresultis:\n");for(k=0:k<M;k++)printf("%4d",p[k]);printf("n");}
參考答案
1.B
2.A
3.C
4.Dputchar函數(shù)的功能是輸出一個字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項(xiàng)。
5.A
6.C程序定義兩個整型變量i、j,初值為3,7。另外,定義兩個整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過臨時變量t交換a和b指向的值,此時a指向的實(shí)參i、b指向的實(shí)參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調(diào)用結(jié)束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項(xiàng)。
7.D
8.B
9.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因?yàn)轭}中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w的值為5.0。
10.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。
\n
11.A全局變量的作用域是從聲明處到文件的結(jié)束。故本題答案為A選項(xiàng)。
12.A數(shù)據(jù)管理技術(shù)發(fā)展的蘭個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。
13.C
14.A解析:本題考核模塊獨(dú)立性的評價。評價模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨(dú)立的程度,也可以說是兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項(xiàng)A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。
15.C
16.A
17.D在編寫程序時可以在程序中加入注釋。在添加注釋時,注釋內(nèi)容必須放在符號“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),“/*”與“*/”之間不可以有空格,選項(xiàng)A正確;注釋可以用英文,可以用中文,可以出現(xiàn)在程序中任意合適的地方,選項(xiàng)B正確;注釋部分只適用于閱讀,對程序的運(yùn)行不起作用,選項(xiàng)C正確;使用“/*”和“*/”的注釋之間不可再嵌套“/*”和“*/”,選項(xiàng)D錯誤。故本題答案為D選項(xiàng)。
18.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。
19.C
20.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
21.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時,因?yàn)閕f語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。
22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
23.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。
24.fopen(fname"w")chfopen(fname,'w')\r\nch解析:數(shù)組fname用來存放終端輸入的一個文件的文件名;文件使用方式'w'是為寫而打開文本文件。若文件不存在,系統(tǒng)將用在fopen調(diào)用中以指定的文件名建立一個新文件;若存在,則覆蓋原有內(nèi)容;fputs(ch,fp)的功能是將字符ch寫到文件指針fp所指的文件中去。
25.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
26.順序順序解析:當(dāng)線性表的操作無插入和刪除時,在對線性表進(jìn)行操作時,不能改變元素的位置,采用順序結(jié)構(gòu)的效率高于鏈?zhǔn)浇Y(jié)構(gòu)。因?yàn)椴捎庙樞蚪Y(jié)構(gòu),對元素的查找可通過計算得到。
解析:本題以浮點(diǎn)格式輸出z值,寬度為5,有2位小數(shù)。應(yīng)該注意的是,兩個整數(shù)運(yùn)算結(jié)果仍為整數(shù),如1/2的結(jié)果為0。本題可逐步求解:
16.00=9/2+2*x/1.1+1/2
16.00=4+2*x/1.1+0
12.00=2*x/1.1
所以,x的值為6.6。
28.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
29.存儲結(jié)構(gòu)
30.44解析:在主函數(shù)中,語句p=a;p++使用指針p指向數(shù)組a[1],所以輸出結(jié)果為4。
31.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)
32.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括‘\\0’在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strqoy(strl+6,'esshe');因此可得答案為Howdoesshe。
33.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。
34.33解析:分析程序運(yùn)行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結(jié)果為3。
35.503503解析:本題考查的是C語言中if語句的語句體。第一個if語句的語句體為t=a,第二個if語句的語句體為t=a。執(zhí)行第一個if語句時,條件a<b不成立,所以不執(zhí)行t=a,直接執(zhí)行語句a=b和b=t得a=3、b=0,然后判斷第二個if語句的條件a<c是否成立,即判斷3<5是否成立,顯然條件成立,執(zhí)行語句t=a得t=3,接著執(zhí)行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。
36.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。
37.918273645918273645解析:for是C語言的關(guān)鍵字,其后的一對圓括號中通常含有3個表達(dá)式,各個表達(dá)式之間用分號隔開,這3個表達(dá)式可以是任意形式的表達(dá)式,通常主要用于for循環(huán)控制。
38.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。
39.-1*sn-1*sn解析:根據(jù)公式可知,第一處應(yīng)填-1;由于計算結(jié)果要通過形參指針sn傳回,所以第二處應(yīng)填*sn。
40.70萬70萬
41.A
42.C解析:對二叉樹的前序遍歷是指先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點(diǎn),再依次訪問其左、右子樹。
43.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。
44.B解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。
若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。
45.C解析:本題考核的知識點(diǎn)是函數(shù)的返回值.函數(shù)的返回值應(yīng)該為return后面的表達(dá)式的值,在本題中的表達(dá)式為*p,*p指的是形參p所指存儲單元中的值,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
46.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:
switch(表達(dá)式)
{
case常量表達(dá)式1:語句1;
case常量表達(dá)式2:語句2;
…
case常量表達(dá)式n:語句n;
default:語句n+1;
}
其語義是:計算表達(dá)式的值,并逐個與其后的常量表達(dá)式值進(jìn)行比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時,即執(zhí)行其后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句;如表達(dá)式的值與所有case后的常量表達(dá)式均不相等時,則執(zhí)行default后的語句。
47.C解析:本題考查了一維字符數(shù)組的定義和初始化。選項(xiàng)C中str[10]初始化為空,可以不必進(jìn)行類似''的空賦值,字符數(shù)組若沒有進(jìn)行初始化賦值,默認(rèn)的字符為空,并且定義完str數(shù)組后,應(yīng)該用“,”分隔而不是“。”,所以選項(xiàng)C錯誤。
48.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計,從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
49.C解析:i=M1+M2=N*3+N*2=5*3+5*2=25。
50.C解析:本題涉及C語言基本的3個知識點(diǎn):①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨(dú)立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;③注釋行雖然對程序的運(yùn)行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。
51.A解析:題目中定義了一個指針變量r作為形參f()的函數(shù)。在主函數(shù)main()中定義了兩個變量m和r,同時給m賦初值7,調(diào)用函數(shù)f(m,&r)并執(zhí)行,函數(shù)f()通過指針r將最后的值返回。
52.D解析:本題是計算50之內(nèi)的自然數(shù)相加之和,題中if語句括號中的條件表達(dá)式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個條件的只有3個數(shù),15,30,45,因?yàn)閟的初始值為1,所以s=1+15+30+45=91。故正確答案為D)。
53.B
54.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的開始,SEEK_CUR代表的是文件當(dāng)前位置。
55.C解析:本題在定義共用體的同時,定義了一個共用體型變量u1,共占兩個字節(jié),有兩個成員n和c,兩個成員的首地址是相同的。因此給u1.c賦一個A,其實(shí)就是給無符號整型成員u1.n的低字節(jié)賦一個A,輸出u1.n的時候是以字符型的形式輸出,只輸出它的低地址的一個字節(jié),因此為A。所以,C選項(xiàng)為所選。
56.A
57.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運(yùn)算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標(biāo)值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。
58.A解析:兩個實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。
59.D
60.B解析:選項(xiàng)A和C一望而知其錯;對于表達(dá)式a=a+7=c+b(答案D),是先執(zhí)行賦值表達(dá)式a+7=c+b,再把這個表達(dá)式的值賦給a,顯然,表達(dá)式a+7=c+b非法,因?yàn)橘x值表達(dá)式的左側(cè)不能為常量或表達(dá)式。
61.C解析:本題考查逗號表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。
62.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審四個方面。所以選擇D。
63.A執(zhí)行fun(a)語句時,P指向的是字符串?dāng)?shù)組a的第一個字符串“Morning”,p自加1之后,p指向字符串?dāng)?shù)組a的第2個字符串“Afternoon”。
64.B從本題給出的計算公式我們可以看出,這個公式的作用是:無論變量x的值是大于零或小于零,都取其絕對值。知道公式的作用后,再分析選項(xiàng)。
在選項(xiàng)A中,當(dāng)變量x的值小于0時,對其取絕對值操作,而當(dāng)變量x的值大于0時,取其本身,與公式描述的內(nèi)容完全一致。
在選項(xiàng)B中,首先對變量x進(jìn)行取絕對值操作,將結(jié)果賦值給變量y,然后當(dāng)x小于0時,將小于0的x重新賦值給變量y,使變量y中含有賦值,與公式描述的內(nèi)容不一致。
在選項(xiàng)C中,如果變量x的值大于等于0,則將其值賦給變量y,否則,當(dāng)x的值小于0時,取反再賦值給變量y,這也相當(dāng)于取絕對值,能正確表示公式的內(nèi)容。
在選項(xiàng)D中,與選項(xiàng)C所表述的意思完全一樣,能正確表示公式的內(nèi)容。
65.B滿足表達(dá)式,(C>=2&&c<=6)的整型變量C的值是2,3,4,5,6。當(dāng)變量C的值不為2,4,6時,其值只能為3或5,所以表達(dá)式C!=3和C!=5中至少有一個為真,即不論C為何值,表達(dá)式B)都為”真”。
66.D
67.B
68.A指針是用來存放地址的變量,用(類型名*指針變量名)的形式定義。賦值時應(yīng)將某個變量地址即&x賦給指針變量,因此選擇A。
69.D
70.A
71.C#define行為非C語句,所以沒有“;”號,%的運(yùn)算對象只能為整型,逗號運(yùn)算符的優(yōu)先級最低。
72.B
73.B本題中a>b的條件不滿足,所以不執(zhí)行逗號表達(dá)式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值勾10。
74.B
75.D
76.B連接運(yùn)算也稱0連接,是對兩個關(guān)系進(jìn)行運(yùn)算,其意義是從兩個關(guān)系的笛卡爾積中選擇滿足給定屬性間一定條件的那些元組。本題關(guān)系R3為關(guān)系R1中B屬性和關(guān)系R2中D屬性相等連接而成。
77.A本題考查的是函數(shù)調(diào)用時的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個拷貝,函數(shù)f所做所有操作只是針對這個數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會影響變量c的值。
78.C
79.A本題的考查點(diǎn)是switch語句。當(dāng)用戶鍵人字符時,會進(jìn)入一個多分支選擇語句,根據(jù)n的值,來確定下一步執(zhí)行的選擇語句;最后的結(jié)果應(yīng)當(dāng)為passwarn。本題需要注意的是,當(dāng)case語句沒有跟隨break語句時,不會跳出switch,而是繼續(xù)執(zhí)行下一個case語句,直至遇到break語句。
80.D
81.
【解析】由主函數(shù)的調(diào)用可知,函數(shù)proc()沒有返回值。因此,“proc(char*pstr[6])”應(yīng)改為“voidproe(char*pstr[6])”。題目中要求按字符串由小到大的順序進(jìn)行排序,需要比較每一個字符串的大小,因此,“if(strcmp(*(pstr+i),pstr+j)>0)”應(yīng)改為“if(strcmp(*(pstr+i),*(pstr+j))>O)”。順序不對的2個字符串要互換其指針?biāo)赶虻牡刂罚x值的兩個變量其類型應(yīng)該相同,因此,“*(pstr+i)=pstr+j;”應(yīng)改為“*(pstr+i)=*(pstr+j);”。
82.voidproc(inttt[M][N],intpp[N])inti,j,max;for(i=0;i<M;i++)//i控制行的下標(biāo){max=tt[i][c];//max存放每行中最大的數(shù)for(j=0;j<N;j++)if(tt[i][j]>max)max=tt[i][j];pp[i]=max;//把大的數(shù)放到PP數(shù)組中,經(jīng)過i來控制pp數(shù)組的下標(biāo)}}【解析】按照題目中要求,求出二維數(shù)組每行中最大元素,并依次放入PP所指的一維數(shù)組中。首先比較二維數(shù)組中每一行的元素,找出每一行中的最大元素,放入一維數(shù)組pp中,返回到主函數(shù)當(dāng)中。2021-2022年廣東省惠州市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.有以下程序
#include<stdio.h>
main()
{ini,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j)>3)break;
m=i*j;
}
}
printf("m=%d\n",m);
}
程序運(yùn)行后的輸出結(jié)果是A.m=6B.m=2C.m=4D.m=5
3.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。
A.1B..0C.6D.2
4.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運(yùn)行后的輸出結(jié)果是()。
A.CBB.BCAC.CCBBD.CDBCA
5.要聲明一個有10個int型元素的數(shù)組,正確的語句是()。
A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];
6.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
7.
8.需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結(jié)構(gòu)是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲結(jié)構(gòu)
9.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
10.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
11.在一個C語言源文件中定義的全局變量,其作用域?yàn)椋ǎ?/p>
A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
12.數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,()沒有專門的軟件對數(shù)據(jù)進(jìn)行管理。
I.人工管理階段
II.文件系統(tǒng)階段
Ⅲ.?dāng)?shù)據(jù)庫階段A.A.僅IB.僅ⅢC.I和IID.II和Ⅲ
13.判斷有向圖是否存在回路,利用()方法最佳。
A.求關(guān)鍵路徑B.求最短路徑C.拓?fù)渑判駾.廣度優(yōu)先遍歷
14.兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。
A.耦合度
B.內(nèi)聚度
C.復(fù)雜度
D.數(shù)據(jù)傳輸特性
15.數(shù)據(jù)在計算機(jī)存儲器內(nèi)表示時,如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。
A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)
16.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚假幣?
A.3B.4C.5D.6
17.以下關(guān)于注釋的敘述中錯誤的是()。
A.注釋的邊界符號“/”和“*”之間不允許加入空格
B.C語言允許注釋出現(xiàn)在程序中任意合適的地方
C.注釋的內(nèi)容僅用于閱讀,對程序的運(yùn)行不起作用
D.注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套
18.以下敘述中不正確的是
A.預(yù)處理命令行都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.宏替換不占用運(yùn)行時間,只占編譯時間
D.在以下定義是正確的:#definePI3.1415926;
19.對包含N個元素散列表進(jìn)行查找,平均查找長度()。
A.為OB.為O(N)C.不直接依賴ND.上述三者都不是
20.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
22.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
23.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
24.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次存放到該文件中,用#作為結(jié)束輸入的標(biāo)志,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenam\n");
gets(fname);
if((fp=【】==NULL)
{printf("Cannotopen\n");exit(0);}
printf("Enterdata\n");
while(ch=getchar()!='#')
fputc(【】,fp);
fclose(fp);
}
25.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
26.當(dāng)線性表的操作無插入和刪除時,采用【】結(jié)構(gòu)為好。
27.下列程序的輸出結(jié)果是16.00,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
28.以下程序運(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);}
29.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
30.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
31.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
32.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*pl=str1;
strcpy(str1+strlen(str1)/2,"esshe");
intf("%s\n",p1);
33.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
運(yùn)行后,i,j,m,n的值分別是_______。
34.下列程序的運(yùn)行結(jié)果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
35.若有以下程序:
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,c);
}
執(zhí)行后的輸出結(jié)果是【】。
36.軟件定義時期主要包括______和需求分析兩個階段。
37.閱讀下面語句,則執(zhí)行后的輸出結(jié)果為【】。
#include"stdio.h"
main()
{chara,b;
for(a='0',b='9';a<b;a++,b--)
printf("%c%c",a,b);
printf("\n");}
38.在面向?qū)ο蟮某绦蛟O(shè)計中,類描述的是具有相似性質(zhì)的一組【】。
39.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算s,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于或等于0。請?zhí)羁铡?/p>
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
40.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。
三、1.選擇題(20題)41.2個指針變量不可以______。
A.相加B.比較C.相減D.指向同一地址
42.有下列二叉樹,
對此二叉樹前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
43.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
44.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。
A.scanf(“%3d,%3d,%3d”,&i,&j,&k);
B.scanf(“%d,%d,%d”,&i,&J,&k);
C.scanf(“%d%d%d”,&i,&j,&k);
D.scanf(“i=%d,%d,k=%d”,&i,&j,&k);
45.已定義以下函數(shù)
fun(int*p)
{return*p;}
該函數(shù)的返回值是()
A.不確定的值
B.形參p中存放的值
C.形參p所指存儲單元中的值
D.形參p的地址值
46.以下程序的輸出結(jié)果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
47.以下正確的程序段是
A.charstr1[]="12345",str2[]="abcdef";
B.charstr[10],*st="abcde";strcat(str,st);
C.charstr[10]=""。*st="abcde";strcat(str,st);
D.char*st1="12345",*st2="abcde";strcat(st1,st2);
48.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
49.程序中頭文件type1.h的內(nèi)容是()。#defineN5#defineM1N*3程序如下:#define"type1.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序編譯后運(yùn)行的輸出結(jié)果是()。
A.10B.20C.25D.30
50.下列說法不正確的是()。
A.C程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成
B.C語言程序的一條語句可以寫在不同的行上
C.C程序的注釋行對程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫
D.C程序的每個語句都以分號結(jié)束
51.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是______。
A.2B.1C.3D.0
52.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的輸出結(jié)果是
A.409B.277C.1D.91
53.設(shè)q1和q2是指向一個int型一維數(shù)組的指針變最,k為float型變量,下列小能正確執(zhí)行的語句是()。
A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;
54.函數(shù)fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對
55.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}執(zhí)行后輸出結(jié)果是()。
A.產(chǎn)生語法錯誤B.隨機(jī)值C.AD.65
56.已知字母A的ASCII碼為十進(jìn)制數(shù)65,下面程序的輸出結(jié)果是()main(){charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf("%d,%c\n",ch1,ch2);}
A.67,DB.B,CC.C,DD.不正確定的值
57.下列程序是用來判斷數(shù)組中特定元素的位置所在。如果輸入如下整數(shù):876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,45l,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}則輸出結(jié)果為
A.7,431B.6C.980D.6,980
58.下列敘述中,正確的是
A.用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系
C.用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
59.執(zhí)行以下語句后的輸出結(jié)果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));
A.1B.0C.4D.3
60.若變量已正確定義并賦值,下面符合C語言的表達(dá)式是_____。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
四、選擇題(20題)61.
執(zhí)行下列程序中的輸出語句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
62.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細(xì)設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書
63.有以下程序
#include<stdio.h>
voidfun(char**p)
{++p;printf("%s",*p);}
main
{char*a[]={"Morning","Afternoon","Evening","Night");
fun(a);
}
程序的運(yùn)行結(jié)果是()。A.A.AfternoonB.fternoonC.MorningD.orning
64.有以下計算公式:
若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是
([answer]
65.當(dāng)變量c的值不為2、4、6時,值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
66.
67.
68.設(shè)已有定義:floatx;則以下對指針變量p進(jìn)行定義且賦初值的語句中正確的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;
69.
70.
71.以下敘述中正確的是()。
A)C程序中的#include和#define行均是C語句,只是語法不同
B)除賦值運(yùn)算符外,逗號運(yùn)算符的優(yōu)先級最低
C)C程序中,j++;是賦值語句
D)C程序中,+、-、*、/、%號是算數(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算
72.
73.有以下程序段:
程序運(yùn)行后的輸出結(jié)果是()。
A.a=10b=50C=30
B.a=10b=50c=10
C.a=10b=30c=10
D.a=50b=30c:50
74.
75.
76.如圖所示,兩個關(guān)系R1和R2:
則由關(guān)系R1和R2得到關(guān)系R3的操作是()。
A.笛卡爾積B.連接C.交D.除
77.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
78.
79.下列程序段的輸出結(jié)果是()。
A.passwarnB.passerrorC.goodpasswarnD.pass
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進(jìn)行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編一個函數(shù)voidproc(intttEM][N],intpp[N]),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每行中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineM3#defineN4voidproc(intttrM3rN]。intpp[N]){ }voidmain{intstr[M][N]={{34,56,84,78},{23,84,93,12),{28,38,39,93}};intp[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",str[i][j]);printf("\n");}proc(str,p);printf("\nTheresultis:\n");for(k=0:k<M;k++)printf("%4d",p[k]);printf("n");}
參考答案
1.B
2.A
3.C
4.Dputchar函數(shù)的功能是輸出一個字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項(xiàng)。
5.A
6.C程序定義兩個整型變量i、j,初值為3,7。另外,定義兩個整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過臨時變量t交換a和b指向的值,此時a指向的實(shí)參i、b指向的實(shí)參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調(diào)用結(jié)束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項(xiàng)。
7.D
8.B
9.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因?yàn)轭}中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w的值為5.0。
10.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。
\n
11.A全局變量的作用域是從聲明處到文件的結(jié)束。故本題答案為A選項(xiàng)。
12.A數(shù)據(jù)管理技術(shù)發(fā)展的蘭個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。
13.C
14.A解析:本題考核模塊獨(dú)立性的評價。評價模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨(dú)立的程度,也可以說是兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項(xiàng)A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。
15.C
16.A
17.D在編寫程序時可以在程序中加入注釋。在添加注釋時,注釋內(nèi)容必須放在符號“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),“/*”與“*/”之間不可以有空格,選項(xiàng)A正確;注釋可以用英文,可以用中文,可以出現(xiàn)在程序中任意合適的地方,選項(xiàng)B正確;注釋部分只適用于閱讀,對程序的運(yùn)行不起作用,選項(xiàng)C正確;使用“/*”和“*/”的注釋之間不可再嵌套“/*”和“*/”,選項(xiàng)D錯誤。故本題答案為D選項(xiàng)。
18.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。
19.C
20.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
21.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時,因?yàn)閕f語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。
22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
23.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標(biāo),需先預(yù)設(shè)1個臨時最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨政領(lǐng)導(dǎo)干部黨章黨規(guī)黨紀(jì)知識考試題庫及答案(共150題)
- 智能財稅綜合實(shí)訓(xùn) 上篇 課件全套 社會共享初級代理實(shí)務(wù)-社會共享企業(yè)管家
- 2025年可生物降解有機(jī)垃圾厭氧發(fā)酵裝置合作協(xié)議書
- 2025年廣東省深圳市中考一模語文試題(原卷版+解析版)
- 銀行業(yè)務(wù)流程優(yōu)化與風(fēng)險控制方案
- 網(wǎng)絡(luò)安全攻防實(shí)戰(zhàn)與防御策略
- 新能源行業(yè)光伏電站智能調(diào)度與管理方案
- 制造業(yè)智能化生產(chǎn)線升級方案
- 項(xiàng)目執(zhí)行階段工作總結(jié)與經(jīng)驗(yàn)教訓(xùn)分享報告
- 三農(nóng)產(chǎn)品加工與銷售優(yōu)化方案
- 人防工程偽裝防護(hù)技術(shù)規(guī)范
- 高中物理分層教學(xué)實(shí)施方案
- 農(nóng)貿(mào)市場建設(shè)項(xiàng)目可行性研究報告
- 大學(xué)英語四級閱讀理解精讀100篇
- 思想道德與法治2023版第三章繼承優(yōu)良傳統(tǒng) 弘揚(yáng)中國精神專題4第1講 教學(xué)設(shè)計
- 股東損害公司債權(quán)人利益責(zé)任糾紛起訴狀(成功范文)
- 中國石油轉(zhuǎn)觀念勇?lián)?dāng)創(chuàng)一流心得體會 中國石油轉(zhuǎn)觀念勇?lián)?dāng)創(chuàng)一流心得
- 中石油職稱俄語
- 七年級歷史下冊(人教版1-5課)測試題
- 蘇州職業(yè)大學(xué)職業(yè)適應(yīng)性測試題庫2021
- 遼寧升聯(lián)生物科技有限公司年產(chǎn)1.42萬噸化學(xué)農(nóng)藥原藥智能化示范項(xiàng)目環(huán)境影響報告書
評論
0/150
提交評論