版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022-2023年山東省東營市全國計算機等級考試C語言程序設(shè)計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面哪些使用的不是貪心算法()
A.單源最短路徑中的Dijkstra算法
B.最小生成樹的Prim算法
C.最小生成樹的Kruskal算法
D.計算每對頂點最短路徑的Floyd-Warshall算法
2.
3.判斷有向圖是否存在回路,利用()方法最佳。
A.求關(guān)鍵路徑B.求最短路徑C.拓撲排序D.廣度優(yōu)先遍歷
4.
5.設(shè)intx=7,則~x的值是()。
A.-8B.7C.-1D.1
6.設(shè)有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
7.
8.以下敘述中錯誤的是()。
A.線性結(jié)構(gòu)也能采用鏈式存儲結(jié)構(gòu)
B.線性結(jié)構(gòu)一定能采用順序存儲結(jié)構(gòu)
C.有的非線性結(jié)構(gòu)也能采用順序存儲結(jié)構(gòu)
D.非線性結(jié)構(gòu)一定不能采用順序存儲結(jié)構(gòu)
9.能在O(1)時間內(nèi)訪問線性表的第i個元素的結(jié)構(gòu)是()
A.順序表B.單鏈表C.單向循環(huán)鏈表D.雙向鏈表
10.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
11.算法的時間復雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
12.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結(jié)果是A.A.1267B.1256C.1278D.1245
13.下面關(guān)于求關(guān)鍵路徑的說法不正確的是()。
A.求關(guān)鍵路徑是以拓撲排序為基礎(chǔ)的
B.一個事件的最早開始時間同以該事件為尾的弧的活動最早開始時間相同
C.一個事件的最遲開始時間為以該事件為尾的弧的活動最遲開始時間與該活動的持續(xù)時間的差
D.關(guān)鍵活動一定位于關(guān)鍵路徑上
14.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()
A.堆排序B.插入排序C.冒泡排序D.快速排序
15.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
16.下列合法的聲明語句是()。
A.intabc=50;
B.doubleint=3+5e2.5;
C.longdo=1L;
D.float3asd=3e一3;
17.在進行單元測試時,常用的方法是
A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測試D.只使用黑盒測試
18.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
19.以下敘述中正確的是A.A.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
B.C程序書寫格式嚴格,要求一行內(nèi)只能寫一個語句
C.C程序書寫格式自由,一個語句可以寫在多行上
D.用C語言編寫的程序只能放在一個程序文件中
20.以下選項中與“(!a==0)”的邏輯值不等價的表達式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
二、2.填空題(20題)21.下面程序由兩個源程序文件:t4.h和t4.c組成,程序編譯運行結(jié)果是()。t4.h的源程序為:
#defineN10
#definef2(x)(x*N)
t4.c的源程序為:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf("%d%d\n",i,j);
}
22.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z+0;
elseZ+=1;
primf(“%d\n",z);
}
23.下面程序的運行結(jié)果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
24.設(shè)變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。
25.以下程序的運行結(jié)果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
26.診斷和改正程序中錯誤的工作通常稱為【】。
27.閱讀下列程序,則程序的輸出結(jié)果為______。
#include"stdio.h"
struetty
{intdata;
charc;};
main()
{streettya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
28.在程序設(shè)計階段應(yīng)該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而用某種程序設(shè)計語言寫成程序。
29.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
30.設(shè)有以下定義和語句,則*(*(P+2)+1)的值為【】。
int[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
31.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。
32.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<t時返回負值。請?zhí)羁铡?/p>
my_cmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}return【】;
}
33.以下說明語句中,【】是結(jié)構(gòu)體類型名。
typedefstruct
{intn;
charch[8];
}PER;
34.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
35.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個最大值中的最小的那個數(shù)作為函數(shù)值返回。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++
{
for(max=a[row][0],col=1;col<N;col++)
if(【】)max=a[row][col];
if(row==0)min=max;
elseif(【】)min=max;
}
returnmin;
}
36.在索引查找或分塊查找中,首先查找【】,然后再查找相應(yīng)的【】,整個索引查找的平均查找長度等于查找索引表的平均查找長度與查找相應(yīng)子表的平均查找長度之和。
37.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
38.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。
39.以下程序運行后的輸出結(jié)果是【】
#include<stdio,h>fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
inti,a=5;
for(i=0;i<3;i++)prinff("%d%d",i,fun(a));
printf("\n");
}
40.若fp已正確定義為—‘個文件指針,d1.dd為二進制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(______);。
三、1.選擇題(20題)41.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則
A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次
42.有以下程序int*f(znt*x,int*y){if(*x<*y)returnX;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d.%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
43.若有以下類型說明語句:charw;intx;floaty,z;則表達式w*x+z-y的結(jié)果為______類型。
A.floatB.charC.intD.double
44.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是______。
A.程序的規(guī)模B.程序的易讀性C.程序的執(zhí)行效率D.程序的可移植性
45.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
46.下列敘述中正確的是()。
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上3種描述都不對
47.下列程序的執(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
48.有以下程序段
charch;intk;
ch=′a′;k=12;
printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
49.若以下選項中的變量已正確定義,則正確的賦值語句足
A.x1=26.8%3;B.1+2=x2C.x3=0x12;D.x4=1+2=3;
50.在下列選項中,沒有構(gòu)成死循環(huán)的是
A.inti=100;while(1){i=i%100+1;if(i>100)break;}
B.for(;;);
C.intk=10000;do{k++;}while(k>10000);
D.)ints=36;while(s)--s;
51.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*+5
B.#definef5*x*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define5*x*x+5*+5f(x)
52.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
53.設(shè)有定義:intA,*pA=&A;,以下scanf語句中能正確為變量A讀入的數(shù)據(jù)是______。
A.scanf("%d",pA);
B.scanf("%d",A);
C.scanf("%d",&pA);
D.scanf("%d",*pA);
54.在printf函數(shù)中用來輸出十六制無符號的格式字符是()
A.d格式符B.x格式符C.u格式符D.o格式符
55.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
56.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
57.結(jié)構(gòu)化程序設(shè)計的主要任務(wù)是確定每個模塊的
A.程序的規(guī)模B.程序的易讀性C.程序的執(zhí)行效率D.程序的可移植性
58.當用“#defineF37.5f”定義后,下列敘述正確的是()。
A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串
59.順序查找一個具有n個元素的線性表,二分查找一個具有n個元素的有序表,其時間復雜性為______。
A.O(n)
B.O(log2n)
C.O(n2)
D.O(nlog2n)
60.下列定義變量的語句中錯誤的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;
四、選擇題(20題)61.
62.
63.
有以下程序:
main
{inta=0,b=l0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,C,d);
}
程序輸出()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
64.下列敘述中不正確的是。
A.算法的效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)
B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
D.算法的時間復雜度與空間復雜度不一定相關(guān)
65.
66.信息隱蔽的概念與下述哪一種概念直接相關(guān)()。
A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型劃分D.模塊耦合度
67.以下可用作C語言用戶標識符的是()
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
68.
69.以下關(guān)于字符串的敘述中正確的是()。
A.C語言中有字符串類型的常量和變量
B.兩個字符串中的字符個數(shù)相同時才能進行字符串大小的比較
C.可以用關(guān)系運算符對字符串的大小進行比較
D.空串一定比空格打頭的字符串小
70.下列說法中不正確的是
A.C語言規(guī)定,不能在一個函數(shù)的內(nèi)部再定義函數(shù)
B.在沒有聲明函數(shù)返回值類型的情況下,默認的函數(shù)返回值類型為int型
C.函數(shù)的類型可以是整型、實型、字符型,但不能是指針型
D.函數(shù)可以沒有形參,但函數(shù)名后的一對圓括號不能省略
71.
(19)關(guān)系表中的每一橫行稱為一個()
A.元組
B.字段
C.屬性
D.碼
72.
73.
74.軟件測試的目的是()。
A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤
75.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
76.以下程序段完全正確的是()。
A.int*p;scanf(”%d”,&p);
B.int*p;scanf(”%d”,P);
C.intk,*P:&k;scanf(’’%d”,P);
D.intk,*p;*P=&k;scanf(”%d”,P);
77.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
78.以下敘述中正確的是()。
A.在C語言中,預處理命令行都以“#”開頭
B.預處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開頭
D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能
79.(11)算法的時間復雜度是指()
A.執(zhí)行算法程序所需要的時間
B.算法程序的長度
C.算法執(zhí)行過程中所需要的基本運算次數(shù)
D.算法程序中的指令條數(shù)
80.有以下程序:
以下敘述中正確的是()。
A.在給P和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3
B.由于P數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符長度為3
C.由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但P數(shù)組中字符長度為3
D.由于P和q數(shù)組中沒有字符串結(jié)束符,故長度都不能確定
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:求出以下分數(shù)序列的前m項之和。2/1,3/2,5/3,8/5,13/8,21/13,…和值通過函數(shù)值返回main()函數(shù)。例如,若m=6,則應(yīng)輸出10.007051。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc(),它的功能是將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)為整數(shù)的函數(shù))。
例如,若輸入字符串“1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值1234。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考答案
1.D
2.D
3.C
4.C
5.A本題主要考查按位求反運算和C語言正負數(shù)的表示,“O”代表正數(shù),“1”代表負數(shù);x=7的二進制為00111,第一個0代表正數(shù),~x為11000,第一個l代表負數(shù),值為8。
6.B解析:條件表達式的形式為:“表達式1?表達式2:表達式3”。其含義為:當“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值;當“表達式1”的值為零時,求出“表達式3”的值,此時“表達式3”的值就是整個條件表達式的值。對于本題來說,當表達式EXP為非0值時條件成立,即執(zhí)行語句i++;當EXP等于0時,執(zhí)行語句j--;這等同于條件表達式“(EXP!=0)?i++:i++;”。
7.A
8.D滿二叉樹與完全二叉樹均為非線性結(jié)構(gòu),但可以按照層次進行順序存儲。本題答案為D選項。
9.A
10.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。
11.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復雜度。所以,本題正確答案為C。
12.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf(“%c%c\\n”,c5,c6)輸出45。
13.C
14.A
15.D共用體變量中的所有成員共享一段公共存儲區(qū),所有成員的首地址相同。在每一個時刻所有的成員中只有一個有效,即只有最后一個被賦值的成員有效,其余的成員無效。
16.A標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。B選項int不是表達變量類型的標識符,它不能再用做變量名和函數(shù)名。C選項do是C語言的一個關(guān)鍵字。D選項標識符只能以字母或下劃線開始。
17.A解析:單元測試的步驟如下:
①理解需求和設(shè)計。清楚被測試模塊在整個軟件中所處的位置。一個原則是:好的設(shè)計,各模塊只負責完成自己的事情,層次與分工明確。單元測試時,可以不測試不屬于被測模塊所負責的功能,以減少測試用例的冗余。
②概覽源代碼。瀏覽源代碼,初步檢查源代碼的編碼風格與規(guī)范,大致估算測試工作量,確定模塊的復雜程度,初步制定測試的優(yōu)先級等。
③精讀源代碼。認真閱讀和分析代碼,理解代碼的業(yè)務(wù)邏輯,檢查代碼與設(shè)計是否相符,仔細研究邏輯復雜的模塊,可采用一些檢查列表來檢查程序可能會出現(xiàn)的問題。
④設(shè)計測試用例。綜合運用白盒測試方法(并結(jié)合黑盒測試方法)設(shè)計測試用例,包括功能測試、性能測試等,要達到一定的測試覆蓋率。本題正確答案為選項A。
⑤搭建單元測試環(huán)境。這個階段主要就是寫樁模塊和驅(qū)動模塊,然后驅(qū)動模塊想辦法獲取被測試模塊對數(shù)據(jù)的處理結(jié)果,并判定返回的實際結(jié)果與測試用例的預
期結(jié)果是否一致,通過測試框架來記錄執(zhí)行的結(jié)果,對于出現(xiàn)的錯誤,還需統(tǒng)計錯誤的信息,供執(zhí)行完之后分析。
⑥執(zhí)行測試。運行寫好的驅(qū)動模塊完成對被測試模塊的測試。
⑦補充和完善測試用例。在測試過程中不斷補充測試用例,直到滿足要求為止。
⑧分析結(jié)果,給出評價。根據(jù)測試的結(jié)果分析、查找錯誤的原因,并找到解決的辦法。測試結(jié)束之后,根據(jù)測試過程的數(shù)據(jù)統(tǒng)計,給出被測試對象評價。
18.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。
19.C
20.A運算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級高于“==”,選項A等價于“(!a)==0”。如果a不等于0,則表達式為真,否則表達式為假。故本題答案為A選項。
21.16111611解析:本題主要考查宏定義的兩種形式,不帶參數(shù)的宏定義:“#define宏名替換文本”;帶參數(shù)的宏定義:“#define宏名(形參表)替換文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。
22.11解析:ifelse語句的功能:若表達式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執(zhí)行printf語句,在整個過程中變量z的值都沒發(fā)生變化。
23.1111解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數(shù)值。
24.33解析:本題考查的是C語言逗號表達式的相關(guān)知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
25.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進行fun()函數(shù)后的運算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。
26.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
27.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調(diào)用函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
28.自頂而下自頂而下
29.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
30.6060解析:本題定義了一個3行2列的二維數(shù)組a,并定義了一個指向兩個元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。
31.22解析:計算機存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。
32.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時返回正值,當s<t時返回負值。
33.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。
34.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
35.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量row、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值,min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個空應(yīng)該填a[row][col]>max或a[row][col]>=max。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時,將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應(yīng)該填max>min或mm>max,當退出外循環(huán)時,min為所有行中的最大值的最小值。
36.索引表塊索引表\r\n塊
37.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
38.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
39.1011121210111212解析:用static關(guān)鍵字聲明的變量稱為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時賦一次初值,以后再次調(diào)用函數(shù)時不再重新賦初值,而是保留上次函數(shù)調(diào)用結(jié)束時的值。程序中的變量c為靜態(tài)變量,當再次調(diào)用fun函數(shù)時,變量c不再被賦初值,變量c的值為上次調(diào)用fun函數(shù)時所保留下來的值,具體在程序運行過程中的體現(xiàn)如下:
當i=0時,第一次調(diào)用fun(5),這時a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當i=1時,第二次調(diào)用fun(5),這時a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當i=2時,第三次調(diào)用fun(5),這時a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當i=3時,循環(huán)結(jié)束,所以輸出結(jié)果為:010111212。
40.d1.dat""rb"或"d1.dat""r+b”或"d1.dat""rb+"d1.dat','rb'或'd1.dat','r+b”或'd1.dat','rb+'解析:本題考查的知識點是二進制文件的打開方式。打開文件的函數(shù)為fopen('文件名''mode'),其中'mode'表示文件的打開方式.如果打開的是二進制文件,其mode字符串可以是:'rb''wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已有在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件.'a'為追加方式打開。若文件存在時,將打開這個文件并且在文件的末尾進行追加.當文件不存在,將創(chuàng)建新文件。'r='打開一個已有在文件用于更新(可讀可寫)。'w+'創(chuàng)建一個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當文件不存在時,創(chuàng)建新文件,并在文件末尾進行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'或其他等價的表達法。
41.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。
42.B解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形參x和y)該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數(shù)中定義了兩個指針變量p和小并讓它們指向了變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和,r的值是7,8和7。所以,B選項為所選。
43.A解析:在進行運算時,不同類型的數(shù)據(jù)參加運算,需要先將其轉(zhuǎn)換成同一類型的數(shù)據(jù),然后再進行運算。轉(zhuǎn)換的順序由低到高為:char,short→int→unsigned→long→double←float,故結(jié)果為float型。
44.B解析:采用結(jié)構(gòu)化編程方法的好處主要在于:一是便于控制、降低程序的復雜性,因此便于編寫程序。二是程序清晰易讀,可理解性好。因此,結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是程序的易讀性,而不是程序的規(guī)模、程序的執(zhí)行效率和程序的可移植性。
45.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)
46.C解析:算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。算法的空間復雜度是指算法執(zhí)行過程中所需的存儲空間。
47.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
48.D解析:考查printf函數(shù)的相關(guān)知識。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和C)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。所以選項D)為正確答案。
49.C解析:本題考核的知識點是C語言中對變量賦值的應(yīng)用。賦值操作由賦值運算符“=”來完成,一般形式為變量:表達式,賦值的方向為由右向左,即將“;”右側(cè)表達式的值賦給“=”左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符“%”的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個表達式,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個表達式,故選項D不正確;所以,4個選項中選項C符合題意。
50.D解析:選項A)的循環(huán)表達式的條件永久為1,并且小于100的數(shù)與100取余不超過99,所以在循環(huán)體內(nèi)表達式i%100+1的值永遠不大于100,break語句永遠不會執(zhí)行,所以是死循環(huán);選項B)的括號內(nèi)沒有能使循環(huán)停下來的變量增量,是死循環(huán);選項C)中先執(zhí)行k++,使k=10001,從而使循環(huán)陷入死循環(huán)。
51.C解析:帶參數(shù)宏的格式:#define標識符(形參表)形參表達式。其功能:在預處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。
52.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。
53.A解析:選項B中不是變量A的地址,錯誤;選項C是指針pA的地址,錯誤;選項D中*pA表示變量A的值,錯誤。
54.B
55.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。
56.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號字符;“\\\\”格式符表示輸出反斜線字符。
57.B解析:按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序具有明顯的優(yōu)點,即程序易于理解、使用和維護,便于控制、降低程序的復雜性,便于驗證程序的正確性,程序清晰易讀,可理解性好。
58.D解析:字符替換定義格式為:#define標識符(形參表)形參表達式。題中F是代表形參表達式的標識符(字符串)。
59.B
60.DC語言規(guī)定,變量名必須符合標識符的命名規(guī)則。D選項中包含非法字符“$”,所以錯誤。標識符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或者下劃線,而不能是數(shù)字。大寫字母與小寫字母被認為是兩個不同的字符,所以“For”不是關(guān)鍵字“for”。故本題答案為D選項。
61.C
62.D
63.D
\n語法錯誤。else與if之間不應(yīng)再用其他語句,如果滿足if條件,則繼續(xù)執(zhí)行if后面的語句;不滿足就執(zhí)行else語句。
\n
64.C本題主要考查與算法有關(guān)的基本知識。算法是對一個問題求解步驟的描述,是求解問題的方法,它是指令的有限序列,其中的每條指令表示一個或多個操作。算法的效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)。
算法的時間復雜度和空間復雜度是衡量一個算法好壞的度量,其中時間復雜度是指執(zhí)行算法所需要的計算工作量;空間復雜度是指算法在執(zhí)行過程中所需要的計算機存儲空間。算法的空間復雜度與時間復雜度不一定相關(guān)。
數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)的邏輯關(guān)系,與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān),是獨立于計算機的。因此,題目中說數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)一一對應(yīng)的說法不正確。本題答案選C。
65.C
66.B解析:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨立性的度量標準是耦合性和內(nèi)聚性。一個模塊的耦合性越強,則該模塊的模塊獨立性越強。
67.BC語言規(guī)定用戶標識符由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽工業(yè)職業(yè)技術(shù)學院單招職業(yè)技能考試備考試題含詳細答案解析
- 2026中國歌劇舞劇院招募舞蹈演員(實習生)參考考試題庫及答案解析
- 2026年廣西交通職業(yè)技術(shù)學院單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年貴州工貿(mào)職業(yè)學院高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細解析
- 2026年江西交通職業(yè)技術(shù)學院單招綜合素質(zhì)考試模擬試題含詳細答案解析
- 2026年長春師范高等專科學校單招綜合素質(zhì)筆試模擬試題含詳細答案解析
- 2026年重慶護理職業(yè)學院單招職業(yè)技能考試參考題庫含詳細答案解析
- 2026年石家莊郵電職業(yè)技術(shù)學院單招綜合素質(zhì)筆試參考題庫含詳細答案解析
- 2026年黑河北安市鐵南街道辦事處公開招聘公益性崗位人員1人考試重點試題及答案解析
- 2026年武夷學院單招綜合素質(zhì)考試模擬試題含詳細答案解析
- 糖皮質(zhì)激素在兒科疾病中的合理應(yīng)用3
- 無人機制造裝配工藝智能優(yōu)化
- GB/T 1965-2023多孔陶瓷室溫彎曲強度試驗方法
- 六年級語文非連續(xù)性文本專項訓練
- 體育單招核心1700單詞
- 梨樹溝礦區(qū)金礦2022年度礦山地質(zhì)環(huán)境治理計劃書
- 師德規(guī)范關(guān)愛學生
- 太陽能光伏發(fā)電裝置的開發(fā)與推廣商業(yè)計劃書
- 海水淡化用閥門
- GB/T 36377-2018計量器具識別編碼
- GB/T 26332.3-2015光學和光子學光學薄膜第3部分:環(huán)境適應(yīng)性
評論
0/150
提交評論