




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年河南省商丘市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下敘述中錯誤的是()。
A.C語言程序在運行過程中的所有計算都以二進制方式進行
B.C語言程序在運行過程中的所有計算都以十進制方式進行
C.所有C語言程序都需要編譯、鏈接無誤后才能運行
D.C語言程序中字符變量存放的是字符的ASCII值
2.以下說法錯誤的是:()
A.全局變量就是在函數外定義的變量,因此又叫做外部變量
B.一個函數中既可以使用本函數中的局部變量,也可以使用全局變量
C.局部變量的定義和全局變量的定義的含義不同
D.如果在同一個源文件中,全局變量和局部變量同名,則在局部變量的作用范圍內,全局變量通常不起作用
3.
4.
5.
6.
7.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結果是
A.235B.0235C.02356D.2356
8.若主調用函數類型為double,被調用函數定義中沒有進行函數類型說明,而return語句中的表達式類型為float型,則被調函數返回值的類型是()。
A.int型B.float型C.double型D.由系統(tǒng)當時的情況而定
9.
有以下程序
#include<stdio.h>
main
{inta=1,b=2,c=3,x;
x=(a^b)&C;printf("%d",x);
}
程序的運行結果是()。
A.0B.1C.2D.3
10.有以下程序
#include<stdio.h>
main()
{ints;
scanf(“%d”,&s);
while(s>0)
{switch(s)
{case1;printf(“%d”,s+5);
case2:printf(“%d”,s+4);break;
case3:printf(“%d”。s+3);
default:printf(“%d”,s+1);break;
}
seanf(“%d”,&s);
}
}
運行時,若輸入12345O<回車>,則輸出結果是A.6566456B.66656C.66666D.6666656
11.有以下程序:
程序運行后的輸出結果是()。
A.0B.一1C.1D.7
12.請選出以下程序的輸出結果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
13.數據的獨立性是指______。
A.數據庫的數據相互獨立
B.DBMS和DB相互獨立
C.用戶應用程序與數據庫的數據相互獨立
D.用戶應用程序與DBMS相互獨立
14.下列排序算法中,其時間復雜度和記錄的初始排列無關的是()
A.插入排序B.堆排序C.快速排序D.冒泡排序
15.在一個源文件中定義的全局變量的作用域為:()
A.本程序的全部范圍B.本函數的全部范圍C.從定義該變量的位置開始到本文件結束D.以上說法都不正確
16.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯誤的賦值是()。
A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]
17.是哈希查找的沖突處理方法()。
A.求余法B.平均取中法C.二分法D.開放地址法
18.設inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是()。
A.552B.264C.144D.-264
19.在黑盒測試方法中,設計測試用例的主要根據是A.程序外部功能B.程序內部邏輯C.程序數據結構D.程序流程圖
20.C程序的基本模塊為()。
A.表達式B.標識符C.語句D.函數
二、2.填空題(20題)21.若運行時給變量x輸入12,則以下程序的運行結果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
22.下列循環(huán)的循環(huán)次數是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
23.以下程序運行后的輸出結果是【】
#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");
}
24.設Y是int型變量,請寫出判斷Y為奇數的關系表達式【】。
25.以下程序的輸出結果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
26.在面向對象程序設計中,從外面看只能看到對象有外部特征,而不知道也無須知道數據的具體結構以及實現操作的算法,這稱為對象的______。
27.以下定義的結構體類型擬包含兩個成員,其中成員變量info用來存入整形數據;成員變量link是指向自身結構體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
28.下列軟件系統(tǒng)結構圖的寬度為[]。
29.下面程序的功能是:計算1~20之間的奇數之和與偶數之和,請?zhí)羁帐钩绦蚬δ芡暾?/p>
#include<stdio.h>
main()
{inta=0,b=0,c=0,i;
for(i=0;i<=20;i+=2)
{a+=i;
();
c+=b;
}
printf("偶數之和=%d\n",A);
printf("奇數之和=%d\n",c-21);
}
30.在面向對象方法中,屬性與操作相似的一組對象稱為【】。
31.若有定義floatb[15],*p=b;,且數組b的首地址為200H,則p+13所指向的數組元素的地址為______。
32.以下程序運行結果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
33.下面程序執(zhí)行后輸出的結果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
34.下列程序的輸出結果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
35.以下程序的輸出結果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;t=a;a=b;b=c;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf("%d%d\n",*p,*q);}
36.執(zhí)行以下for語句后,變量i的值是【】。
for(i=1;i++<=5;);
37.棧中允許進行插入和刪除的一端叫做______。
38.下列程序的運行結果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
39.數據庫系統(tǒng)在三級模式之間提供了兩層映像,這兩層映像是外模式/模式映像和【】。
40.設有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。
三、1.選擇題(20題)41.以下選項中不屬于字符常量的是
A.'C'B.CC.'\xCC'D.'\072'
42.能將高級語言程序轉換成目標語言程序的是______。
A.調試程序B.解釋程序C.編譯程序D.編輯程序
43.以下不能對二維數組a進行正確初始化的語句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
44.編制一個好的程序,首先要保證它的正確性和可靠性,還應強調良好的編程風格,在書寫功能性注釋時應考慮
A.僅為整個程序作注釋B.僅為每個模塊作注釋C.為程序段作注釋D.為每個語句作注釋
45.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
46.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關,而與數據的存儲結構無關
B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
C.數據的邏輯結構與存儲結構是一一對應的
D.算法的時間復雜度與空間復雜度一定相關
47.設有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
48.設變量已正確定義,則下列能正確計算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
49.定義int*swap()的是_______。
A.一個返回整型值的函數swap()
B.一個返回指向整型值指針的函數swap()
C.一個指向函數swap()的指針,函數返回一個整型值
D.以上說法均錯
50.在深度為5的滿二叉樹中,葉子結點的個數為A.32B.31C.16D.15
51.以下程序的輸出結果是_______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++:*sl=*s2-;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}
A.1234567B.7654321C.1711717D.7177171
52.若有以下的定義和語句:main(){inta[4][3]*p[4],j;for(j=0;j<4;j++)p[j]=a[j];}則能表示數組元素的表達式是______。
A.*(p[1])B.a[4][3]C.a[1]D.*(p+4)[1]
53.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結果是______。
A.2B.3C.4D.編譯時有錯,無結果
54.下列字符數組初始化語句中,不正確的是()。
A.charc[]='goodmorning';
B.char,c[20]="goodmoming";
C.charc[]={'a','b','c','d'};
D.charc[]={"goodmoming"};
55.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
56.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()
A.需求分析B.詳細設計C.軟件設計D.概要設計
57.若t已定義為double類型,表達式:t=1,t++,t+5的值是()
A.1B.7C.2D.1
58.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
59.下列程序的運行結果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
60.下列敘述中正確的是()。
A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的
B.線性鏈表的頭元素一定存儲在其他元素的前面
C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
四、選擇題(20題)61.有以下程序
62.對于長度為n的線性表,在最壞的情況下,下列各排序法所對應的比較次數中正確的是
A.插入排序為n/2B.插入排序為nC.快速排序為nD.快速排序為n(n-1)/2
63.在結構化程序設計方法中,下面內聚性最弱的是()。
A.邏輯內聚B.時間內聚C.偶然內聚D.過程內聚
64.以下關于return語句的敘述中正確的是()。
A.一個自定義函數中必須有一條return語句
B.一個白定義函數中可以根據不同情況設置多條return語句
C.定義成void類型的函數中可以有帶返回值的return語句
D.沒有return語句的自定義函數在執(zhí)行結束時不能返回到調用處
65.以下選項中非法的表達式是()。
A.a+1=a+1
B.a=b==0
C.(Char.(100+100.
D.7<=X<60
66.以下關于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性
67.28.以下敘述中錯誤的是
A.對于float類型數組,不可以直接用數組名完成對數組進行整體輸入或輸出
B.數組名代表的是數組所占存儲區(qū)的首地址,其值是常量,是不可改變的
C.當執(zhí)行程序時,數組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數組元素的個數
68.設有如下函數定義若執(zhí)行調用語句:n=fun(3);,則函數fun總共被調用的次數是()。
A.3B.2C.4D.5
69.下砸結構體的定義語句中,錯誤的是()。
70.數據庫系統(tǒng)的核心是()。
A.數據模型B.數據庫管理系統(tǒng)C.數據庫D.數據庫管理員
71.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。
A.
B.
C.
D.
72.有以下程序:
main
{
unsignedchara=2,b=4,c=5,d;
d=a|b;d&=c;printf("%d\n",d);
}
程序運行后的輸出結果是()。
A.3B.4C.5D.6
73.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價的是()。A.
B.
C.
D.
74.
以下程序執(zhí)行后sum的值是()。
main
{inti,sum;
for(i=1;i<6;i++)sum+=i:
printf("1%d\n",sum):
}
A.15B.14C.不確定D.0
75.有以下程序:
程序運行后的輸出結果是()。
76.
77.以下敘述中正確的是(.。
A.調用printf函數時,必須要有輸出項
B.使用putChar函數時,必須在之前包含頭文件stdio.h
C.在C語言中,整數可以以十二進制、八進制或十六進制的形式輸出
D.調用getChar函數讀入字符時,可以從鍵盤上輸入字符所對應的ASCIl碼
78.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.
79.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現在標識符中的是()。
A.大寫字母B.連接符C.數字字符D.下劃線
80.軟件生命周期中,花費最多的階段是()。
A.詳細設計B.軟件編碼C.軟件測試D.軟件維護
五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。
例如,輸入opdye,則應輸出deopy。
請修改程序中的錯誤,使它能得到正確結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include%string.h>
#include%stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charC;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j4-+)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=C;
}
}
voidmain
{
charst/[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\nknBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%S",str);
}
六、程序設計題(1題)82.N名學生的成績已在主函數中放入一個帶有頭結點的鏈表結構中,h指向鏈表的頭結點。請編寫函數fun(),其功能是:找出學生的最高分,并由函數值返回。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.BC語言程序在運行過程中的所有計算都以二進制方式進行,所以B選項錯誤。故本題答案為B選項。
2.A
3.D
4.C
5.C
6.C
7.A解析:因為變量的初始值分別為“k=5,n=0”,所以程序第一次進入循環(huán)時,執(zhí)行default語句,這時k=4,執(zhí)行'case4:”這個分支,結果是“n=2,k=3”,打印出2;然后程序進行第二次循環(huán),這時“n=2,k=3”,執(zhí)行'case3:”這個分支,結果是“n=3,k=2”,打印出3;程序進行第三次循環(huán),這時“n=3,k=2”,執(zhí)行“case2:case4:”這兩個分支,結果是“n=5,k=1”,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結束,故輸出結果為235。
8.A
9.D
\n首先計算1與2的或運算,再將其結果與3進行“與”運算,結果為00000011,即十進制數3。
\n
10.A
11.Ba一一的含義是先用后減l,所以當a的值為0時,跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。
12.B
13.C解析:修改數據庫的物理結構或邏輯結構時,通過兩級映像,可以使得應用程序不必修改,保證數據的獨立性。數據的獨立性包括物理獨立性和邏輯獨立性。
14.B
15.C
16.A數組名是一個存放一個數組首地址的值,是一個地址常量。而p=a不是合法的,因為p和a的基本類型不同。
17.D
18.D
19.A【答案】:A
【知識點】:黑盒測試
【解析】:黑盒測試也稱功能測試或數據驅動測試,它完全不考慮程序內部的邏輯結構和內部特征,只著眼于程序的外部結構,主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
20.D
21.00解析:三目運算符的形式為(表達式1)?(表達式2):(表達式3)。當(表達式1)值為真時,返回(表達式2)的值;為假時,返回(表達式3)的值。題中因為x>12為假,所以結果為x-12,即為0。
22.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。
23.1011121210111212解析:用static關鍵字聲明的變量稱為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時賦一次初值,以后再次調用函數時不再重新賦初值,而是保留上次函數調用結束時的值。程序中的變量c為靜態(tài)變量,當再次調用fun函數時,變量c不再被賦初值,變量c的值為上次調用fun函數時所保留下來的值,具體在程序運行過程中的體現如下:
當i=0時,第一次調用fun(5),這時a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數輸出010;當i=1時,第二次調用fun(5),這時a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數輸出111;當i=2時,第三次調用fun(5),這時a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數輸出212;當i=3時,循環(huán)結束,所以輸出結果為:010111212。
24.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
25.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。
26.封裝性封裝性解析:對象具有下列5個基本特點:①標識惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內部特征即處理能力的實行和內部狀態(tài),對外是不可見的,對象的內部狀態(tài)只能由其自身改變。
27.structnode*structnode*解析:本題中的結構類型名為structnode,所以空白處應填:structnode*。即定義一個指向自身的結構體指針。
28.33解析:軟件系統(tǒng)結構圖的寬度:整體控制跨度(最大模塊數的層)的表示。
29.b=i+1b=i+1解析:分析for循環(huán)條件,i=0說明循環(huán)從0開始判斷,i+=2是間隔為2的數,i<=20就是控制數是20之內的a+=i,就是所有偶數的和,如果從1開始(b=i+1)間隔為2的數(1,3,5,7,9,11,13,15,17,19)相加就是所有奇數的和。
30.類類解析:在面向對象方法中,類描述的是具有相似性質的一組對象。所以,屬性與操作相似的一組對象稱為類。
31.252H252H解析:要解答本題,首先要明白在對指針進行加,減運算時,數字“1”不是十進制數的“1”,而是指“1”個存儲單元長度。1個存儲單元長度占存儲空間的多少,應該視具體情況而定,如果存儲單元的基類型是血型,則移動1個存儲單元的長度就是位移2個字節(jié);如果存儲單元基類型是float型,則移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數組元素的地址為:200H+(13*4)H=252H。
32.0240480,2,4\r\n0,4,8解析:本題主要考查了for循環(huán)語句的使用以及靜態(tài)局部變量的特點。
33.22解析:本題變量m既是外部變量(值是13),又是fun函數的局部變量(值為3)。函數fun(x*y-m)的值為7*5-3=32,在main函數中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。
34.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結束。
35.3535解析:本題考查函數中形參和實參的傳遞。在C語言函數中實參和形參傳遞具有不可逆性,參數只能由實參傳向形參,而不能由形參傳向實參,雖然swap函數的功能是實現兩個數的交換,但由于沒有返回值,故最終的輸出結果為35。
36.7
37.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
38.2525解析:本題考查帶參數的宏的定義及相關運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
39.模式/內模式映像模式/內模式映像解析:映像即一種對應規(guī)則,指出映像雙方如何進行轉換。數據庫系統(tǒng)在三級模式之間提供了兩層映像,這兩層映像是外模式/模式映像與模式/內模式映像。
40.100100解析:本題考查帶參數的宏定義及相關運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。
41.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項A)、C)和D)為正確的字符常量,而選項B)是用雙引號括起來的字符,表示一個字符串常量。
42.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。
43.C解析:關于二維數組的初始化,我們需要掌握如下方法:①所賦初值個數與數組元素的個數相同;②所賦初值行數少于數組行數時,系統(tǒng)將自動給后面各行的元素補初值0;③在給二維數組賦初值時可以不用行花括號對。選項C)應該是inta[3][2]={{1,2},{3,4},{5,6,}};
44.C解析:功能性注釋是嵌在源程序體中的,用以描述其后的語句或程序段是在做什么工作,或者執(zhí)行了下面的語句會怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語句。
45.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
46.B解析:本題考查數據結構中有關算法的基本知識和概念。數據的結構,直接影響算法的選擇和效率。而數據結構包括兩方面,即數據的邏輯結構和數據的存儲結構。因此,數據的邏輯結構和存儲結構都影響算法的效率。選項A的說法是錯誤的。算法的時間復雜度是指算法在計算機內執(zhí)行時所需時間的度量;與時間復雜度類似,空間復雜度是指算法在計算機內執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。
數據之間的相互關系稱為邏輯結構。通常分為四類基本邏輯結構,即集合、線性結構、樹型結構、圖狀結構或網狀結構。存儲結構是邏輯結構在存儲器中的映象,它包含數據元素的映象和關系的映象。存儲結構在計算機中有兩種,即順序存儲結構和鏈式存儲結構??梢姡壿嫿Y構和存儲結構不是一一對應的。因此,選項C的說法是錯誤的。
有時人們?yōu)榱颂岣咚惴ǖ臅r間復雜度,而以犧牲空間復雜度為代價。但是,這兩者之間沒有必然的聯系。因此,選項D的說法是錯誤的。
47.A解析:題面中各變量定義后,指針變量p指向了變量n2所在的存儲單元,指針變量q指向了變量n1所在的存儲單元,要使得n1的值賦n2,可用指針變量q所指向的存儲單元的值賦給指針變量p所指向的存儲單元,即*p=*q。
48.D解析:要正確計算函數f=n!,由n!的數學定義可知n!=n*(n-1)*(n-2)*……*1。在選項A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=O,所以選項A)不正確。在選項B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B)不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。
49.B解析:一個函數可以帶回一個整型值、字符值、實型值等,但也可以帶回指針型數據,即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數。
50.C2(n-1)
=2(5-1)=16
51.C解析:在于函數fun中,s1為字符串w的起始地址,s2為字符串的結束地址(字符\'\\0\'除外),當執(zhí)行循環(huán)結束循環(huán),w='1711717'。
52.A解析:B項錯在越界,下標最大的元素只到a[3][2];C項錯在a[1]只表示第2行;*(p+4)[1]的錯誤也在于越界,p+4相當于a[4],實際上是不存在的。
53.B解析:C語言規(guī)定else總是和離它最近的if語句配對。故第一個else和第一個if配對,第二個else和第二個if配對。首先計算第一個if后面的表達式“a>b>c”,表達式“a>b”是為1,表達式“1>c”為0,所以執(zhí)行else后面的語句。先執(zhí)行if后面的表達式,“c-1>d”為真,值為1?!?==1”為真,執(zhí)行printf語句。
54.A解析:本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②C語言中沒有字符串變量,只能用字符數組來存儲字符串。
選項A)中一個單引號內放了若干個字符是錯誤的;選項B)和選項D)中將一個字符串賦值給一個字符數組是允許的。
55.C解析:棧是一種后進先出表,選項C中,先出棧的是3,說明此時棧內必然有1,2,由于1先于2進淺,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
56.AA)【解析】軟件生命周期的主要活動階段為:可行性研究和計劃制定、需求分析、軟件設計、軟件實現、軟件測試、運行和維護。其中需求分析是對開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能,編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。
57.B
58.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數為7,但其中出現'9',','是字符逗號;選項D中,'\n'表示的是換行。
59.B解析:本題考查帶參數的宏的定義及相關運算:S=m+n+m+n*k=1+2+1+2*3=10。
60.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實現數據元素的前后件關系。
61.Afun函數將第二個字符串輸出,所以輸出Aftemoon,答案選擇A)。
62.D插入排序是指將無序子序列中的一個或幾個記錄插入到有序序列中,從而增加記錄的有序子序列的長度。在最壞的情況下,當插入第一個元素時,需要比較的次數為0,插入第二個元素時,需要比較一次,插入第n個元素時,需要比較n-1次。那么直到將n個元素都插入序列中,需要比較次數的總和為0+1+2+…+n-1。因此,在最壞情況下,插入排序需要比較的次數為n(n-1)/2。
快速排序的基本思想是通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,則可以分別對這兩部分記錄繼續(xù)進行排序,以達到整個序列有序。它在最壞情況下,需要比較的次數也為n(n-1)/2。因此,本題的正確答案選D。
63.C內聚按強度從低到高有以下幾種類型:
(1)偶然內聚,如果一個模塊的各成分之間毫無關系,則稱為偶然內聚,也就是說模塊完成一組任務,這些任務之間的關系松散,實際上沒有什么聯系。(2)邏輯內聚,幾個邏輯上相關的功能被放在同一模塊中,則稱為邏輯內聚。如一個模塊讀取各種不同類型外設的輸入。盡管邏輯內聚比偶然內聚合理一些,但邏輯內聚的模塊各成分在功能上并無關系,即使局部功能的修改有時也會影響全局,因此這類模塊的修改也比較困難。(3)時間內聚,如果一個模塊完成的功能必須在同一時間內執(zhí)行(如系統(tǒng)初始化),但這些功能只是因為時間因素關聯在一起,則稱為時間內聚。
(4)過程內聚,如果一個模塊內部的處理成分是相關的,而且這些處理必須以特定的次序執(zhí)行,則稱為過程內聚。
64.Breturn語句又稱為返回語句。該語句的格式如下:“return;”和“return(<表達式>);”。其中,return是關鍵字。該語句有兩種格式:不帶返回值格式和帶返回值格式。該語句用在被調用函數中,在被調用函數中執(zhí)行到該語句時,將結束對被調用函數的執(zhí)行,并把控制權返回給調用函數,繼續(xù)執(zhí)行調用函數后邊的語句。在帶有返回值的情況下,將return語句所帶的表達武的值返回給調用函數,作為被調用函數的值。在被調用函數中,可以用return語句,也可以不用return語句。如果要求被調用函數有返回值,則一定要用return語句,采用return(<表達式>);格式。如果被調用函數不需要返回值,并且當被調用函數的所有語句執(zhí)行完后進行返回,則被調用函數可以不用return語句。
65.A賦值運算符的左邊只能是變量,而不能是常量或表達式。
66.A解析:本題考查的重點是typedef的理解運用。C語言允許通過typedef為數據類型定義新名字,但是,它并非是生成新的數據類型,因此選項A是錯誤的。
67.C選項A“對于float類型數組,不可以直接用數組名完成對數組進行整體輸入或輸出”,是正確的。C語言中規(guī)定,只有字符型的數組才可以用數組名完成對數組進行整體輸入或輸出,主要是因為沒有字符串型的變量,通常用一個字符數組來存放字符串。采用字符串方式后,便可用數組名對數組進行整體輸入和輸出。
選項B“數組名代表的是數組所占存儲區(qū)的首地址,其值是常量,是不可改變的”,是正確的。數組名本身是沒有方括號和下標的,它實際上是表示數組起始的地址,該地址在數組初始化時由系統(tǒng)分配。
選項C“當程序執(zhí)行中,數組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出‘下標越界’的出錯信息”,是錯誤的。在某些編程語言中,下標的取值是不允許超出數組定義中所設的界限的。但是在C和C++中,編譯器不對下標的范圍進行檢查。不檢查下標范圍的目的有兩個,一個是提高運行效率,不檢查下標,程序編譯耗費時間少。另一個是能夠方便指針的使用,數組名并沒有包含該數組長度的信息,只包含地址信息,可以看成是一個指針,若檢查下標,將限制數組名的使用功能。
選項D“可以通過賦初值的方式確定數組元素的個數”是正確的。C語言規(guī)定,如果對數組中所有的元素賦初值,可以省略定義元素的個數。
68.A首先n=fun(3),3被當作參數傳遞進去,進行了第一次調用,3被當作參數傳進去后,程序會執(zhí)行語句elseretllnlfun(k—1)+1;進行第二次調用,而參數是3"1也就是2。2被當作參數傳進去后,程序會執(zhí)行語句elsereturnfun(1[一l)+1;進行第三次調用,而參數是2一l也就是1。l被當作參數傳進去后。程序會執(zhí)行語句elseif(k==1)returnl;不再遞歸調用,因此最終結果為3次,選項A)正確。
69.AA)選項structord(intx;inty;intz;}structorda;錯誤,不能在定義結構體的同時,又用結構體類型名定義變量,應該寫成B)選項或者D)選項的格式。
70.B解析:數據庫管理系統(tǒng)是數據庫系統(tǒng)的核心,是負責數據庫的建立、使用和維護的軟件。數據庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數據庫的統(tǒng)一管理和控制。用戶使用的各種數據庫命令以及應用程序的執(zhí)行,最終都必須通過數據庫管理系統(tǒng)。另外,數據庫管理系統(tǒng)還承擔著數據庫的安全保護工作,按照數據庫管理員所規(guī)定的要求,保證數據庫的完整性和安全性。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級上冊數學教案-角的初步認識 (6)-西師大版
- 2025年寵物領養(yǎng)合同模板電子版
- 三年級下冊數學教案-1.1 兩位數乘整十數的口算-蘇教版
- 薪酬培訓服務協議書(2篇)
- 2023年生麻生產投資申請報告
- 2024年局域網安全系統(tǒng)項目資金申請報告
- 2025年惠州城市職業(yè)學院單招職業(yè)傾向性測試題庫學生專用
- 2025年廣東省安全員B證考試題庫及答案
- 2025年湖北省咸寧市單招職業(yè)傾向性測試題庫一套
- 二零二五年度煤炭開采居間合同與智能化礦山建設協議
- 牙周牙髓聯合病變治療
- 機場食品配送應急處理方案
- 醫(yī)院培訓課件:《黃帝內針臨床運用》
- 語文新課標“整本書閱讀”深度解讀及案例
- 地質隊安全培訓
- 2024至2030年中國毛絨玩具數據監(jiān)測研究報告
- 建筑復工復產安全培訓
- GB 21258-2024燃煤發(fā)電機組單位產品能源消耗限額
- 八年級上學期語文12月月考試卷
- 醛固酮增多癥與原發(fā)性醛固酮增多癥概述
- 廣東省2024年普通高中學業(yè)水平合格性考試語文仿真模擬卷01(解析版)
評論
0/150
提交評論