版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年河南省濮陽市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
3.
4.一個C語言程序總是從()開始執(zhí)行:
A.主程序B.子程序C.主函數(shù)D.第一個函數(shù)
5.以下是一個對數(shù)組A(含有n個數(shù)值元素)進行排序的算法偽代碼,請問它的平均時間復雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
6.由權值分別為3,8,6,2,5的葉子結(jié)點生成一棵哈夫曼樹,它的帶權路徑長度為________。
A.24B.48C.72D.53
7.有以下程序:
執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0
8.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
9.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運行時輸入以下命令行tt12345678程序運行后的輸出結(jié)果是A.12B.12345C.12345678D.136
10.設n、m為一棵二叉樹上的兩個結(jié)點,在中序遍歷時,n在m之前的條件是_____________。
A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫
11.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
12.堆排序是一種()排序。
A.插入B.選擇C.交換D.歸并
13.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序運行后的輸出結(jié)果是()。
A.**$$B.%##C.%&&D.**##
14.人們提出了用______的原理來設計軟件,這就是軟件工程學誕生的基礎。
A.計算機科學B.數(shù)學C.工程學D.運籌學
15.以下不能輸出字符A的語句是(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)()。
A.print[("%c\n",a-32);
B.print[("%d\n",A);
C.printf("%c\n",65);
D.printf("%c\n",B-1);
16.設有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
17.以下說法正確的是()。
A.C語言只接受十進制的數(shù)
B.C語言只接受二進制、八進制、十六進制的數(shù)
C.C語言只接受二進制、十進制、十六進制的數(shù)
D.C語言只接受八進制、十進制、十六進制的數(shù)
18.s1和s2已正確定義并分別指向兩個字符串。若要求:當s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
19.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下敘述中正確的是()。A.此while語句將無限循環(huán)
B.getchar()不可以出現(xiàn)在while語句的條件表達式中
C.當執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行
D.當執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行
20.在位運算中,操作數(shù)左移一位,其結(jié)果相當于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
二、2.填空題(20題)21.數(shù)據(jù)結(jié)構包括數(shù)據(jù)的邏輯結(jié)構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
22.下列程序的輸出結(jié)果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
primf("%d",sum);
}
23.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結(jié)果如下:
ABCDE
FGHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
}
elseprintf("nistoolarge!\n")
printf("\n"0);
}
24.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
25.在先左后右的原貝嚇,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、【】遍歷和后序遍歷。
26.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。
27.以下說明語句中,【】是結(jié)構體類型名。
typedefstruct
{intn;
charch[8];
}PER;
28.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
29.以下程序從輸入的10個字符串中找出最長的那個串,請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
#defineN10
main()
{charstr[N][81],*sp;
inti;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【】;
printf("輸出最長的那個串:\n%s\n",sp);
printf("輸出最長的那個串的長度:%d\n",strlen(sp));}
30.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
31.下列程序的運行結(jié)果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
32.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構。
33.下列函數(shù)從字符數(shù)組s[]中刪除和c一樣的字符,請在下面橫線處填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
34.有以下程序
intfa(intx){returnx*x;}
intfb(intx){returnx*x*x;}
intf(int(*fl)(),int(*f2)(),intx}
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結(jié)果是【】。
35.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù)且要求m>n。
例如:m=12,n=8時,運行結(jié)果應該是495.000000。請在題目的空白處填寫適當?shù)某绦蛘Z句,將該程序補充完整。
#include<conio.h>
#include<stdio.h)
floatfun(intm,intn)
{inti;
doublep=1.0;
for(i=1;i<=m;i++)【】;
for(i=1;i<=n;i++)【】;
for(i=1;i<=m-n;i++)p=p/i;
returnP;}
main()
{clrscr();
printf("p=%f\n",fun(12,8));}
36.設有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結(jié)果為
37.以下程序給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;P[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
38.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構改變時,其邏輯結(jié)構可以不變,因此,基于邏輯結(jié)構的應用程序不必修改,這稱為______。
39.若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。
40.在面向?qū)ο蟮某绦蛟O計方法中,類的實例稱為______。
三、1.選擇題(20題)41.微型計算機中運算器主要的功能是進行()
A.算術運算B.邏輯運算C.算術和邏輯運算D.初等函數(shù)運算
42.下列寫法正確的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
43.若x是整型變量,pb是基本類型為整型的指針變量,則正確的賦值語句是()
A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x;
44.下面程序的輸出結(jié)果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
45.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。
A.8B.16C.32D.15
46.將E-R圖轉(zhuǎn)換到關系模式時,實體與聯(lián)系都可以表示成________。
A.屬性B.關系C.鍵D.域
47.概要設計是軟件系統(tǒng)結(jié)構的總體設計,不屬于概要設計的是
A.把軟件劃分成模塊B.確定模塊之間的調(diào)用關系C.確定各個模塊的功能D.設計每個模塊的偽代碼
48.
若有下列定義(設int類型變量占2個字節(jié)):
inti=8,j=9;
則下列語句:
printf("i=%%d,j=%%d\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
49.下列程序的輸出結(jié)果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}
A.42B.45C.56D.60
50.已知inta=2,b=3;則執(zhí)行表達式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
51.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
52.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新為defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
53.循環(huán)鏈表的主要優(yōu)點是()
A.不再需要頭指針了
B.從表中任一結(jié)點出發(fā)都能訪問到整個鏈表
C.在進行插入、刪除運算時,能更好的保證鏈表不斷開
D.已知某個結(jié)點的位置后,能夠容易的找到它的直接前件
54.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的輸出結(jié)果是()。
A.1B.20C.1-4D.死循環(huán)
55.在數(shù)據(jù)庫設計中,將E-R圖轉(zhuǎn)換成關系數(shù)據(jù)模型的過程屬于()A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
56.設變量已正確定義并賦值,以下正確的表達式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
57.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構只能有一種存儲結(jié)構
B.數(shù)據(jù)的邏輯結(jié)構屬于線性結(jié)構,存儲結(jié)構屬于非線性結(jié)構
C.一個邏輯數(shù)據(jù)結(jié)構可以有多種存儲結(jié)構,且各種存儲結(jié)構不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構可以有多種存儲結(jié)構,且各種存儲結(jié)構影響數(shù)據(jù)處理的效率
58.若i是int型變量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的輸出結(jié)果是______。
A.**4##5B.##4**5C.**4**5D.##4##5
59.對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
60.若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i)
p[i]=&a[i*4];
pp=p;
則對數(shù)組元素的錯誤引用是
A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)
四、選擇題(20題)61.
62.
63.設有以下語句:
TypedefstructTT
{charc;inta[4];}CIN;
則下面敘述中錯誤的是()。
A.不可以用TT定義結(jié)構體變量
B.TT是結(jié)構體標識名
C.可以用CIN定義結(jié)構體變量
D.CIN是structTT類型的變量
64.有以下程序
65.若程序中有宏定義行:#defineN100則以下敘述中正確的是()。
A.宏定義行中定義了標識符N的值為整數(shù)100
B.在編譯程序?qū)源程序進行預處理時用100替換標識符N
C.對C源程序進行編譯時用100替換標識符N
D.在運行時用100替換標識符N
66.設x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000
67.若已建立如下圖所示的單向鏈表結(jié)構:在該鏈表結(jié)構中,指針p、s分別指向圖中所示結(jié)點,則不能將s所指的結(jié)點插入到鏈表末尾仍構成單向鏈表的語句組是A.p=p->next;s->next=p;p->next=s;
B.p=p->next;s->next=p->next;p->next=s;
C.s->next=NULL;p=p->next;p->next=s;
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
68.
69.下列關于棧的敘述正確的是()。
A.棧按“先進先出”組織數(shù)據(jù),B.棧按“先進后出”組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)
70.
有以下程序
#include<stdio.h>
main
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的運行結(jié)果是()。
A.741B.963C.852D.875421
71.以下不能將a所指字符串正確復制到所指存儲空間的是()。
72.
73.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
74.
75.以下關于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
76.
若已包括頭文件<string.h>且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
77.
78.一名工作人員可以使用多臺計算機,而一臺計算機可被多名工作人員使用,則實體工作人員與實體計算機之間的聯(lián)系是()。
A.—對一B.—對多C.多對多D.多對一
79.已知:intx,y;doublez;則以下語句中錯誤的函數(shù)調(diào)用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
80.
五、程序改錯題(1題)81.下列給定的程序中,proc()函數(shù)的功能是:將str所指字符串中每個單詞的最后一個字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。
例如,若輸人:Howdoyoudo,則輸出:HoWdOyoUd0。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構體數(shù)組S中,請編寫函數(shù)proc(),它的功能是:把分數(shù)最高的學生數(shù)據(jù)放在h所指的數(shù)組中。注意:分數(shù)最高的學生可能不止一個,函數(shù)返回分數(shù)最高學生的人數(shù)。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.C
2.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。
3.B
4.C
5.B
6.D
7.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(5);
調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(3);調(diào)用函數(shù)fun(3)時,由于X的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(1);調(diào)用函數(shù)fun(1)時,由于x的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。
因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。
8.A題干中,定義一個二維字符數(shù)組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數(shù)組v是存放4個字符串的二維數(shù)組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項。
9.D解析:運行時輸入該命令后,參數(shù)argc的值為4,字符串數(shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個參數(shù)的第一個字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個新的三位數(shù)。
10.C
11.D結(jié)構workers中的成員s是一個嵌套的結(jié)構類型定義,因此在給year賦值時,要用“.”運算在深入一層訪問到最基本的成員year,只有D項反映出了這一點。
12.B解析:堆排序是一種選擇排序。選擇排序有直接選擇排序和堆排序兩種。
13.Bmain函數(shù)中,根據(jù)“b=2,c=3”可知表達式“b>=2&&c<=3”為真,flag值為1。由“a=1”和外層switch語句的case標號沒有break語句,可知外層switch語句執(zhí)行case1,case0。對于外層case1:嵌套的switch語句根據(jù)“flag=1”執(zhí)行case1,執(zhí)行“printf(“%%”);”,輸出“%”,接著執(zhí)行break語句,結(jié)束內(nèi)層switch執(zhí)行外層;對于外層case0:嵌套的switch語句根據(jù)“c=3”執(zhí)行default語句,執(zhí)行“printf(“##”);”,輸出“##”。故本題答案為B選項。
14.C
15.B在C語言中%d表示輸出整型數(shù)值,所以答案為B。
16.A根據(jù)題目中的定義可知,“sizeof(p)”計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。故本題答案為A選項。
17.DC語言中,整型常量可以用十進制、八進制和十六進制表示。故本題答案為D選項。
18.D在C語言中,不能直接比較兩個字符串的大小,必須用特定的函數(shù)來完成,選項A錯誤;選項B不管大于還是小于都執(zhí)行S,不符合題意;選項C正好相反,當s2大于s1時,執(zhí)行語句S,可知選項D正確。
19.C主要是考查while和getchar函數(shù),getchar函數(shù)是輸入字符函數(shù),while是循環(huán)語句,所以當輸入的字符為換行符時將執(zhí)行。
20.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
21.存儲結(jié)構數(shù)據(jù)結(jié)構包括3個方面,即數(shù)據(jù)的邏輯結(jié)構、數(shù)據(jù)的存儲結(jié)構及對數(shù)據(jù)的操作運算。
22.無定值無定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。
23.ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;priintf("\n");或putchar('\n');ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;\r\npriintf('\\n');或putchar(\'\\n\');解析:因為ch被初始化為\'A\',而內(nèi)循環(huán)中有—條輸出ch的語句,整個程序都沒有一條改變ch值的語句。所以,第1空應該填ch++或其它類似的表達式,以使每次輸出一個字母后ch都能變?yōu)橄乱粋€字母。內(nèi)循環(huán)結(jié)束后,代表這一行已經(jīng)輸出完畢,此時即將開始下一行的輸出,所以在第2空位置應該輸出一個換行符,故應填入printf('\\n');或其他等價形式。
24.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
25.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前療遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。
26.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
27.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構體類型,此時,也可以用PER來定義變量。
28.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。
29.sp=str[i]sp=str[i]解析:二維字符數(shù)組即數(shù)組的每個元素又是一個字符串,即字符串數(shù)組。題中二維數(shù)組的第一行的首地址賦給字符指針sp,使sp指向了二維字符數(shù)組的一個字符串。求字符串長度函數(shù)strlen比較當前字符串與數(shù)組的下一個元素的字符串的長度,如果當前字符串的長度小于下一個元素的,則指針sp又指向了下一個元素,直到比較到數(shù)組的最后一個元素,得到的sp指針所指向的字符串即為長度最長的字符串。
30.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。
31.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在子函數(shù)中將m和i定義成了static類型,所以在子函數(shù)中對m和i進行的改變在下一次調(diào)用子函數(shù)時能進行保存,所以第二次調(diào)用子函數(shù)時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
32.邏輯關系邏輯關系
33.s[i]!='\0's[i]!='\\0'解析:本題是要刪除字符數(shù)組中和c一樣的字符,for循環(huán)實現(xiàn)的功能是逐個讀出字符數(shù)組s中的元素,并和字符c做比較,直到遇到字符串結(jié)束標志'\\0',結(jié)束循環(huán),所以橫線上應該填s[i]!='\\0'。
34.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的齜23-22=4。
35.p=p*Ip=p/ip=p*I\r\np=p/i解析:本題中,欲求p的值,需要先求m,n,m-n的階乘值,可用循環(huán)語句實現(xiàn)。
36.89218921
37.3*sizeof(double)或243*sizeof(double)或24解析:觀察程序可知,本題要求用malloc函數(shù)分配三個double型的動態(tài)內(nèi)存單元。
38.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(包括存儲結(jié)構、存取方式)改變時,不需要修改應用程序。而邏輯獨立性是指當邏輯結(jié)構改變時,不需要修改應用程序。
39.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函數(shù)的一般格式為:“printf(格式控制,輸出表列)”。
40.對象對象解析:在面向?qū)ο蟮某绦蛟O計方法中,類是具有相同的屬性或方法的對象的抽象,對象是類的實例。
41.C
42.D解析:本題考查語句的基本構成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。
43.A
44.A解析:在C語言中,數(shù)組元素是從0開始的。指針變量p指向數(shù)組的首地址,(p+2)就會指向數(shù)組中的第3個元素。題目中要求輸出的是元素的值。
45.B[答案]B
[考點]數(shù)據(jù)結(jié)構與算法
[評析]依次從上到下,可得出:
第1層結(jié)點數(shù)為1;
第2層結(jié)點數(shù)為2*1=2;
第3層結(jié)點數(shù)為2*2=4;
第n層結(jié)點數(shù)為2的n-1次冪
46.B解析:關系數(shù)據(jù)庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關系,E-R圖中屬性也可以轉(zhuǎn)換成關系的屬性,實體集也可以轉(zhuǎn)換成關系。
47.D解析:概要設計是數(shù)據(jù)庫的總體設計,其目的就是要按照需求規(guī)格說明書把軟件按照功能劃分為多個模塊,然后確定每個模塊要實現(xiàn)的功能,最后確定模塊之間的調(diào)用關系,而設計每個模塊的偽代碼則屬于詳細設計。
48.B解析:本題考查printf函數(shù)的格式。在printf函數(shù)中,如果格式說明符中有兩個%說明,則將第1個%后面的字符原樣輸出,并不輸出其對應的變量值。
49.B解析:在C語言中,數(shù)組的下標默認為0,因此數(shù)組p的下標范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句;接著進行第2次循環(huán),此時i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后j的值為j=13+15+17=45。
50.B解析:先計算關系表達式a<b=2<3為真(表達式為真時,如果變量為int型變量則真用1表示,假用0表示),即a=1。
51.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。
52.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。
53.B解析:循環(huán)鏈表就是將單向鏈表中最后一個結(jié)點的指針指向頭結(jié)點,使整個鏈表構成一個環(huán)形,這樣的結(jié)構使得從表中的任一結(jié)點出發(fā)都能訪問到整個鏈表。
54.C解析:本題考查do…while循環(huán)。①執(zhí)行printf語句,x=x-4=1,輸出1,判斷while循環(huán)的控制條件,--x=0,則(!(-x))非零,循環(huán)條件成立,執(zhí)行下一次循環(huán);②執(zhí)行printf語句,x=x-4=-4,輸出-4,判斷while循環(huán)的控制條件,--x=-5,則(!(--x))為零,循環(huán)條件不成立,結(jié)束循環(huán)。
55.B數(shù)據(jù)庫應用系統(tǒng)的邏輯設計包括數(shù)據(jù)庫邏輯結(jié)構設計、數(shù)據(jù)庫事務概要設計和應用程序概要設計三方面。數(shù)據(jù)庫邏輯結(jié)構設計的主要步驟為:將E—R圖轉(zhuǎn)換為初始關系模式,對初始關系模式進行優(yōu)化,檢查關系表對數(shù)據(jù)庫事務的支持性,確定關系模式完整性約束,設計基于關系模式的用戶視圖。
56.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。
57.D解析:數(shù)據(jù)的邏輯結(jié)構是對數(shù)據(jù)元素之間的邏輯關系的描述,它可以用一個數(shù)據(jù)元素的集合和在此集合中定義的若干關系來表示。數(shù)據(jù)的邏輯結(jié)構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(也稱數(shù)據(jù)的物理結(jié)構)。一種數(shù)據(jù)的邏輯結(jié)構根據(jù)需要可以表示成多種存儲結(jié)構,常用的存儲結(jié)構有順序、鏈接等存儲結(jié)構。但是不同的存儲結(jié)構的數(shù)據(jù)的處理效率不同。
58.B解析:函數(shù)printf中的參數(shù)是三目條件表達式,循環(huán)控制變量i值為4時,i%2為0,格式控制字符串為'##%d\\n',輸出為##4;循環(huán)控制變量i值為5時,i%2為1,格式控制字符串為'**%d\\n',輸出為*5,兩次輸出不在同一行。
59.C解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止.在最壞的情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。
60.C解析:考查指向數(shù)組的指針。本題綜合考查一維數(shù)組和多維數(shù)組指針變量的表示方法。在C語言中,引用數(shù)組元素的方法有兩種,即下標法和指針法。下標法如a[i]形式;指針法如*(a+i)或*(p+1)。其中,a是數(shù)組名,p是指向數(shù)組的指針變量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意語句中指針型數(shù)組的書寫格式,不能寫成'(*數(shù)組名)[長度]',因為這是定義指向含有'長度'個元素的一維數(shù)組的指針變量。例如有定義語句'inta,b,c,c,*p[3]={&a,&b,&c};',它定義了一個名為p的指針型數(shù)組,其3個元素p[0],p[1],p[2]分別指向f3個整型變量a,b,c。
61.C
62.A
63.D類型定義;CIN不是structII類型的變量,它是structII類型的代替,即可以用它定義結(jié)構體變量。
64.A函數(shù)fun的功能是返回字符串數(shù)組.,各個字符串第一個字母是T的個數(shù),str數(shù)組里有2個,所以選擇A)。
65.B解析:宏定義是預處理命令,即在C源程序進行編譯之前,編譯程序?qū)υ闯绦蜻M行編譯預處理時所進行的一種替換操作。所以選項C和\u3000D可以排除。宏定義是用宏名代替一個字符串,也就是作簡單的置換,不做正確性檢查。所以選項A的敘述也不正確,宏替換時100被當作一個字符串來替換宏名的,而不是被看作整數(shù)值100。故本題的正確答案為B。
66.C
\n本題考查按位異或運算,異或就是相同為0,不同為1(化為二進制00001101),017的二進制為000001111,兩者異或結(jié)果為00000010。
\n
67.A在選項A中,s的確已插到了鏈表的末尾,但它的next并沒有為NULL,而是指向了它的直接前趨p,這樣它就不是一個單向鏈表(單向鏈表最后一個結(jié)點的next指針一定是一個NULL)。
68.D
69.B棧是按“先進后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進行操作。
70.C
\n在for循環(huán)中,當y的值為9、6或3時,執(zhí)行輸出語句,輸出表達式--Y的值。Y先自減l,然后再輸出y的值。
\n
71.Ado{*t++=*s++;}while(*s);,不能因為當*s=’\0。時,while(*s)跳出循環(huán),這樣字符串結(jié)束標志’\0’沒有復制給*t,造成*t不完整。注意,*t++=}s++是先執(zhí)行t=*s,然后才進行t=t+1,s=s+1。選項B)、c)、D)都能將’、0’復制過去。
72.C
73.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤(注:數(shù)組元素下標從0開始);B中,*a+1指的是將數(shù)組a的第一個元素加1;選項C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
74.D
75.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。
76.C
\n數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因為“=”左邊不能出現(xiàn)常量,所以s1='ABCDE'的方法是錯誤的。
\n
77.D
78.c因為一名工作人員可以操作多臺計算機,而一臺計算機又可以被多名工作人員使用,所以兩個實體之間是多對多的關系,選擇c)。
79.BB項的格式應該為scanf("%1d*%d%1f",&x,&y,&z);
80.A
81.
82.
【解析】要得到分數(shù)最高的學生數(shù)據(jù),首先應檢查每一個學生的數(shù)據(jù),得到學生的最高成績。成績最高的學生不止一個,將每一個學生的成績與最高成績相比較,得出最高成績學生的個數(shù),將成績最高的學生記錄放在指定數(shù)組中通過形參返回。成績最高的學生個數(shù)由函數(shù)值返回給主函數(shù)。
2021年河南省濮陽市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
3.
4.一個C語言程序總是從()開始執(zhí)行:
A.主程序B.子程序C.主函數(shù)D.第一個函數(shù)
5.以下是一個對數(shù)組A(含有n個數(shù)值元素)進行排序的算法偽代碼,請問它的平均時間復雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
6.由權值分別為3,8,6,2,5的葉子結(jié)點生成一棵哈夫曼樹,它的帶權路徑長度為________。
A.24B.48C.72D.53
7.有以下程序:
執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0
8.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
9.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運行時輸入以下命令行tt12345678程序運行后的輸出結(jié)果是A.12B.12345C.12345678D.136
10.設n、m為一棵二叉樹上的兩個結(jié)點,在中序遍歷時,n在m之前的條件是_____________。
A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫
11.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
12.堆排序是一種()排序。
A.插入B.選擇C.交換D.歸并
13.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序運行后的輸出結(jié)果是()。
A.**$$B.%##C.%&&D.**##
14.人們提出了用______的原理來設計軟件,這就是軟件工程學誕生的基礎。
A.計算機科學B.數(shù)學C.工程學D.運籌學
15.以下不能輸出字符A的語句是(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)()。
A.print[("%c\n",a-32);
B.print[("%d\n",A);
C.printf("%c\n",65);
D.printf("%c\n",B-1);
16.設有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
17.以下說法正確的是()。
A.C語言只接受十進制的數(shù)
B.C語言只接受二進制、八進制、十六進制的數(shù)
C.C語言只接受二進制、十進制、十六進制的數(shù)
D.C語言只接受八進制、十進制、十六進制的數(shù)
18.s1和s2已正確定義并分別指向兩個字符串。若要求:當s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
19.有以下程序段#include<stdio.h>main(){...while(getchar()!=\n);...}以下敘述中正確的是()。A.此while語句將無限循環(huán)
B.getchar()不可以出現(xiàn)在while語句的條件表達式中
C.當執(zhí)行此while語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行
D.當執(zhí)行此while語句時,按任意鍵程序就能繼續(xù)執(zhí)行
20.在位運算中,操作數(shù)左移一位,其結(jié)果相當于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
二、2.填空題(20題)21.數(shù)據(jù)結(jié)構包括數(shù)據(jù)的邏輯結(jié)構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
22.下列程序的輸出結(jié)果是______。
main()
{inti,sum;
for(i=1;i<7;i++)
sum+=i;
primf("%d",sum);
}
23.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結(jié)果如下:
ABCDE
FGHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
}
elseprintf("nistoolarge!\n")
printf("\n"0);
}
24.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
25.在先左后右的原貝嚇,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、【】遍歷和后序遍歷。
26.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。
27.以下說明語句中,【】是結(jié)構體類型名。
typedefstruct
{intn;
charch[8];
}PER;
28.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
29.以下程序從輸入的10個字符串中找出最長的那個串,請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
#defineN10
main()
{charstr[N][81],*sp;
inti;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【】;
printf("輸出最長的那個串:\n%s\n",sp);
printf("輸出最長的那個串的長度:%d\n",strlen(sp));}
30.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
31.下列程序的運行結(jié)果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
32.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構。
33.下列函數(shù)從字符數(shù)組s[]中刪除和c一樣的字符,請在下面橫線處填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!='c')s[j++]=s[i];s[j]="\0";}
34.有以下程序
intfa(intx){returnx*x;}
intfb(intx){returnx*x*x;}
intf(int(*fl)(),int(*f2)(),intx}
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結(jié)果是【】。
35.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù)且要求m>n。
例如:m=12,n=8時,運行結(jié)果應該是495.000000。請在題目的空白處填寫適當?shù)某绦蛘Z句,將該程序補充完整。
#include<conio.h>
#include<stdio.h)
floatfun(intm,intn)
{inti;
doublep=1.0;
for(i=1;i<=m;i++)【】;
for(i=1;i<=n;i++)【】;
for(i=1;i<=m-n;i++)p=p/i;
returnP;}
main()
{clrscr();
printf("p=%f\n",fun(12,8));}
36.設有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結(jié)果為
37.以下程序給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;P[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
38.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構改變時,其邏輯結(jié)構可以不變,因此,基于邏輯結(jié)構的應用程序不必修改,這稱為______。
39.若變量a,b已定義為int類型并賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。
40.在面向?qū)ο蟮某绦蛟O計方法中,類的實例稱為______。
三、1.選擇題(20題)41.微型計算機中運算器主要的功能是進行()
A.算術運算B.邏輯運算C.算術和邏輯運算D.初等函數(shù)運算
42.下列寫法正確的是()。
A.main(){inti=3,j;j=5}
B.main(){inti=3;
C.main()
D.main(){;}
43.若x是整型變量,pb是基本類型為整型的指針變量,則正確的賦值語句是()
A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x;
44.下面程序的輸出結(jié)果是main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}
A.3B.4C.1D.2
45.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。
A.8B.16C.32D.15
46.將E-R圖轉(zhuǎn)換到關系模式時,實體與聯(lián)系都可以表示成________。
A.屬性B.關系C.鍵D.域
47.概要設計是軟件系統(tǒng)結(jié)構的總體設計,不屬于概要設計的是
A.把軟件劃分成模塊B.確定模塊之間的調(diào)用關系C.確定各個模塊的功能D.設計每個模塊的偽代碼
48.
若有下列定義(設int類型變量占2個字節(jié)):
inti=8,j=9;
則下列語句:
printf("i=%%d,j=%%d\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
49.下列程序的輸出結(jié)果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}
A.42B.45C.56D.60
50.已知inta=2,b=3;則執(zhí)行表達式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
51.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
52.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新為defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
53.循環(huán)鏈表的主要優(yōu)點是()
A.不再需要頭指針了
B.從表中任一結(jié)點出發(fā)都能訪問到整個鏈表
C.在進行插入、刪除運算時,能更好的保證鏈表不斷開
D.已知某個結(jié)點的位置后,能夠容易的找到它的直接前件
54.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(1(--x));}程序的輸出結(jié)果是()。
A.1B.20C.1-4D.死循環(huán)
55.在數(shù)據(jù)庫設計中,將E-R圖轉(zhuǎn)換成關系數(shù)據(jù)模型的過程屬于()A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
56.設變量已正確定義并賦值,以下正確的表達式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
57.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構只能有一種存儲結(jié)構
B.數(shù)據(jù)的邏輯結(jié)構屬于線性結(jié)構,存儲結(jié)構屬于非線性結(jié)構
C.一個邏輯數(shù)據(jù)結(jié)構可以有多種存儲結(jié)構,且各種存儲結(jié)構不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構可以有多種存儲結(jié)構,且各種存儲結(jié)構影響數(shù)據(jù)處理的效率
58.若i是int型變量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的輸出結(jié)果是______。
A.**4##5B.##4**5C.**4**5D.##4##5
59.對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
60.若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i)
p[i]=&a[i*4];
pp=p;
則對數(shù)組元素的錯誤引用是
A.pp[0][1]B.a[10]C.p[3][1]D.*(*(p+2)+2)
四、選擇題(20題)61.
62.
63.設有以下語句:
TypedefstructTT
{charc;inta[4];}CIN;
則下面敘述中錯誤的是()。
A.不可以用TT定義結(jié)構體變量
B.TT是結(jié)構體標識名
C.可以用CIN定義結(jié)構體變量
D.CIN是structTT類型的變量
64.有以下程序
65.若程序中有宏定義行:#defineN100則以下敘述中正確的是()。
A.宏定義行中定義了標識符N的值為整數(shù)100
B.在編譯程序?qū)源程序進行預處理時用100替換標識符N
C.對C源程序進行編譯時用100替換標識符N
D.在運行時用100替換標識符N
66.設x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000
67.若已建立如下圖所示的單向鏈表結(jié)構:在該鏈表結(jié)構中,指針p、s分別指向圖中所示結(jié)點,則不能將s所指的結(jié)點插入到鏈表末尾仍構成單向鏈表的語句組是A.p=p->next;s->next=p;p->next=s;
B.p=p->next;s->next=p->next;p->next=s;
C.s->next=NULL;p=p->next;p->next=s;
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
68.
69.下列關于棧的敘述正確的是()。
A.棧按“先進先出”組織數(shù)據(jù),B.棧按“先進后出”組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)
70.
有以下程序
#include<stdio.h>
main
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的運行結(jié)果是()。
A.741B.963C.852D.875421
71.以下不能將a所指字符串正確復制到所指存儲空間的是()。
72.
73.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
74.
75.以下關于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
76.
若已包括頭文件<string.h>且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
77.
78.一名工作人員可以使用多臺計算機,而一臺計算機可被多名工作人員使用,則實體工作人員與實體計算機之間的聯(lián)系是()。
A.—對一B.—對多C.多對多D.多對一
79.已知:intx,y;doublez;則以下語句中錯誤的函數(shù)調(diào)用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);
B.scanf("%1d*%d&1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);
D.scanf("%x%o%6.2f",&x,&y,&z);
80.
五、程序改錯題(1題)81.下列給定的程序中,proc()函數(shù)的功能是:將str所指字符串中每個單詞的最后一個字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。
例如,若輸人:Howdoyoudo,則輸出:HoWdOyoUd0。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構體數(shù)組S中,請編寫函數(shù)proc(),它的功能是:把分數(shù)最高的學生數(shù)據(jù)放在h所指的數(shù)組中。注意:分數(shù)最高的學生可能不止一個,函數(shù)返回分數(shù)最高學生的人數(shù)。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.C
2.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。
3.B
4.C
5.B
6.D
7.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(5);
調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(3);調(diào)用函數(shù)fun(3)時,由于X的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(1);調(diào)用函數(shù)fun(1)時,由于x的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。
因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。
8.A題干中,定義一個二維字符數(shù)組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數(shù)組v是存放4個字符串的二維數(shù)組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項。
9.D解析:運行時輸入該命令后,參數(shù)argc的值為4,字符串數(shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個參數(shù)的第一個字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個新的三位數(shù)。
10.C
11.D結(jié)構workers中的成員s是一個嵌套的結(jié)構類型定義,因此在給year賦值時,要用“.”運算在深入一層訪問到最基本的成員year,只有D項反映出了這一點。
12.B解析:堆排序是一種選擇排序。選擇排序有直接選擇排序和堆排序兩種。
13.Bmain函數(shù)中,根據(jù)“b=2,c=3”可知表達式“b>=2&&c<=3”為真,flag值為1。由“a=1”和外層switch語句的case標號沒有break語句,可知外層switch語句執(zhí)行case1,case0。對于外層case1:嵌套的switch語句根據(jù)“flag=1”執(zhí)行case1,執(zhí)行“printf(“%%”);”,輸出“%”,接著執(zhí)行break語句,結(jié)束內(nèi)層switch執(zhí)行外層;對于外層case0:嵌套的switch語句根據(jù)“c=3”執(zhí)行default語句,執(zhí)行“printf(“##”);”,輸出“##”。故本題答案為B選項。
14.C
15.B在C語言中%d表示輸出整型數(shù)值,所以答案為B。
16.A根據(jù)題目中的定義可知,“sizeof(p)”計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。故本題答案為A選項。
17.DC語言中,整型常量可以用十進制、八進制和十六進制表示。故本題答案為D選項。
18.D在C語言中,不能直接比較兩個字符串的大小,必須用特定的函數(shù)來完成,選項A錯誤;選項B不管大于還是小于都執(zhí)行S,不符合題意;選項C正好相反,當s2大于s1時,執(zhí)行語句S,可知選項D正確。
19.C主要是考查while和getchar函數(shù),getchar函數(shù)是輸入字符函數(shù),while是循環(huán)語句,所以當輸入的字符為換行符時將執(zhí)行。
20.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
21.存儲結(jié)構數(shù)據(jù)結(jié)構包括3個方面,即數(shù)據(jù)的邏輯結(jié)構、數(shù)據(jù)的存儲結(jié)構及對數(shù)據(jù)的操作運算。
22.無定值無定值解析:for(i=l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽工業(yè)職業(yè)技術學院單招職業(yè)技能考試備考試題含詳細答案解析
- 2026中國歌劇舞劇院招募舞蹈演員(實習生)參考考試題庫及答案解析
- 2026年廣西交通職業(yè)技術學院單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年貴州工貿(mào)職業(yè)學院高職單招職業(yè)適應性測試備考試題及答案詳細解析
- 2026年江西交通職業(yè)技術學院單招綜合素質(zhì)考試模擬試題含詳細答案解析
- 2026年長春師范高等??茖W校單招綜合素質(zhì)筆試模擬試題含詳細答案解析
- 2026年重慶護理職業(yè)學院單招職業(yè)技能考試參考題庫含詳細答案解析
- 2026年石家莊郵電職業(yè)技術學院單招綜合素質(zhì)筆試參考題庫含詳細答案解析
- 2026年黑河北安市鐵南街道辦事處公開招聘公益性崗位人員1人考試重點試題及答案解析
- 2026年武夷學院單招綜合素質(zhì)考試模擬試題含詳細答案解析
- 無人機制造裝配工藝智能優(yōu)化
- 全文版曼娜回憶錄
- GB/T 1965-2023多孔陶瓷室溫彎曲強度試驗方法
- 六年級語文非連續(xù)性文本專項訓練
- 體育單招核心1700單詞
- 梨樹溝礦區(qū)金礦2022年度礦山地質(zhì)環(huán)境治理計劃書
- 師德規(guī)范關愛學生
- 太陽能光伏發(fā)電裝置的開發(fā)與推廣商業(yè)計劃書
- 海水淡化用閥門
- GB/T 36377-2018計量器具識別編碼
- GB/T 26332.3-2015光學和光子學光學薄膜第3部分:環(huán)境適應性
評論
0/150
提交評論