




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年貴州省畢節(jié)地區(qū)全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序(注:字符a的ASCIl碼值為97)#include<stdio.h>main(){char*s={"abc")do{printf("%d",*S%10");++S;}while(*s);}隉序運行后的輸出結(jié)果是()。A.abcB.789C.7890D.979899
2.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
3.下列定義數(shù)組的語句中,正確的是()。A.#defineN10?intx[N];
B.intN=10;int[N];
C.intx0..10];
D.Intx[];.
4.已知一算術(shù)表達(dá)式的中綴形式為A+B*C–D/E,后綴形式為ABC*+DE/–,其前綴形式為()。
A.–A+B*C/DEB.–A+B*CD/EC.–+*ABC/DED.–+A*BC/DE
5.下列定義數(shù)組的語句中錯誤的是()。
A.intx[2][3]={1,2,3,4,5,6};
B.intx[][3]={0};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]={{1,2},{3,4},{5,6}};
6.在關(guān)系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是()。
A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表
7.判斷有向圖是否存在回路,利用()方法最佳。
A.求關(guān)鍵路徑B.求最短路徑C.拓?fù)渑判駾.廣度優(yōu)先遍歷
8.以下描述中正確的是
A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句
B.do-while循環(huán)由d。開始,用while結(jié)束,在while(表達(dá)式)后面不能寫分號
C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷
D.do-while循環(huán)中,根據(jù)情況可以省略while
9.在有序雙向鏈表中定位刪除一個元素的平均時間復(fù)雜度為()
A.O(1)B.O(N)C.O(logN)D.O(N*logN)
10.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運行后的輸出結(jié)果是()。A.AB.aC.HD.h
11.遞歸式的先序遍歷一個n節(jié)點,深度為d的二叉樹,則需要??臻g的大小為()
A.O(logn)B.O(nlogn)C.O(n)D.O(d)
12.數(shù)組A[5][6]的每個元素占五個字節(jié),將其按列優(yōu)先次序存儲在起始地址為1000的內(nèi)存單元中,下標(biāo)從1開始,則元素A[5][5]的地址是()。
A.1175B.1180C.1205D.1120
13.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}執(zhí)行后輸出結(jié)果是
A.58B.56C.45D.24
14.若有定義“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。
A.1B.1.9C.2D.2.4
15.下列描述中不正確的是()。
A.字符型數(shù)組中可能存放字符串。
B.可以對字符型數(shù)組進(jìn)行整體輸入、輸出。
C.可以對整型數(shù)組進(jìn)行整體輸入、輸出。
D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進(jìn)行整體賦值。
16.有以下程序
#include<stdio.h>
voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/
{intt,i,j;
for(i=0;i<n-1;j++)
for(j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{intc[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的運行結(jié)果是
A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
17.請選出以下程序的輸出結(jié)果()#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
18.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
19.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
20.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而強(qiáng)調(diào)概念
二、2.填空題(20題)21.本程序用改進(jìn)冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
22.以下程序的運行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
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.在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接碟塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
25.函數(shù)ssbc叩()的功能是對兩個字符申進(jìn)行比較。當(dāng)s所指字符串和t所指字符申相等時,返回值為0;當(dāng)s所指字符串大于t所指字符串時,返回值大于0;當(dāng)s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>
#include<stdio.h>
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==)
{s++;t++;}
return
}
26.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
27.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
28.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
29.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
30.以下程序建立了一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸人數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next=NULL).
#include<stdio.h>
structlist{intdatd;structlist*next;};
【】creatlist()
{structlist*p,*q,*ph;
inta;
ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;
printf("Inputanintegernumber,enter-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{
p=(structlist*)malloc(sizeof(structlist));
p->data=a;
q->next=p;
【】=p;
scanf("%d",&a);
}
p->next='\0';
return(ph);
}
main()
{
structlisthead;
head=creatlist();
}
31.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,s<t時返回負(fù)值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
32.算法的執(zhí)行過程中,所需要的存儲空間稱為算法的【】。
33.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊列屬于______。
34.以卜函數(shù)sstrcat()的功能是實現(xiàn)寧符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:s所指字符串為abcd,t所指字符申為efgh,函數(shù)調(diào)用后s所指字符串為abcdefgh。請?zhí)羁铡?/p>
#include<string.h>
voidsstrcat(char*s,char*t)
{intn;
n=strlen(s);
while(*(s+n)=){s++;t++;}
}
35.測試的目的是暴露錯誤,評價程序的可靠性;而______得目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
36.【】是指一個數(shù)據(jù)對象中的各個數(shù)據(jù)元素之間存在的聯(lián)系。
37.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
fun()
{staticinta=0;
a+=2;printf("%d",a);}
main()
{intcc;
for(cc=1;CC<4;CC++)fun();
printf("\n");}
38.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61),*p=w;
39.在兩種基本測試方法中,()測試的原則之一是保證所測模塊中每一個獨立路徑至少執(zhí)行一次。
40.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。
三、1.選擇題(20題)41.在位運算中,操作數(shù)右移一位,其結(jié)果相當(dāng)于
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)乘以4D.操作數(shù)除以4
42.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的。號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
43.設(shè)int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。
A.0~65535B.-3276~32767C.1~65536D.0~32767
44.判斷char型變量c1是否為大寫字母的正確表達(dá)式是
A.'A'<=c1<='Z'
B.(c1>=A)&&(c1<=Z)
C.('A'>=c1)‖('Z'<=c1)
D.(c1>='A')&&(c1<='Z')
45.下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*P;P=a="china"
46.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調(diào)用。strcpy庫函數(shù)用于復(fù)制一個字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.languageB.lnugC.有語法錯誤D.lang
47.以下敘述正確的是()。
A.C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
B.打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第一個數(shù)據(jù)
D.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
48.在16位IBM-PC機(jī)上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是
A.1B.2C.7D.11
49.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率
50.以下程序的輸出結(jié)果是______。main(){chsrst[20]="bello\0\t\\";print("%d%f\n",strlen(st),sizeof(st));}
A.99B.520C.1320D.2020
51.下面關(guān)于對象概念的描述中,錯誤的是
A.對象就是C語言中的結(jié)構(gòu)體變量
B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體
C.對象是一個狀態(tài)和操作(或方法)的封裝體
D.對象之間的信息傳遞是通過消息進(jìn)行的
52.有以下程序:main(){chara='a',b;printf("%c,",++a);printf("%c\n",b=a++);程序運行后的輸出結(jié)果是______。
A.b,bB.a,bC.b,cD.a,c
53.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。
A.3B.4C.5D.不定
54.下面不屬于軟件設(shè)計原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
55.設(shè)有以下語句:charx=3,y=6,z;z=xy<<2;則z的二進(jìn)制值是()。
A.10100B.11011C.11100D.11000
56.若有定義語句:inta[2][3],*p[33;,則以下語句中正確的是()。
A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a
57.以下選項中,值為1的表達(dá)式是()。
A.1-'0'B.1-'\0'C.'1'-0D.'\0'-'0'
58.計算機(jī)病毒不能破壞()中的軟件。
A.ROMB.RAMC.軟盤D.硬盤
59.有以下程序
#include<stdio.h>
main()
{intc;
while((c=getchar())!=′\n)
{switch(c-′2′)
{case0:
case1:putchar(c+4);
case2:putchar(c+4);break;
case3:putchar(c+3);
case4:putchar(c+3);break;}}
printf("\n")}
從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。
2743<CR>
程序的輸出結(jié)果是
A.66877B.668966C.6677877D.6688766
60.下列程序段的運行結(jié)果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
四、選擇題(20題)61.若執(zhí)行下面的程序時,從鍵盤輸入6和2,則輸出結(jié)果是()。
A.5B.3C.2D.0
62.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)
63.
64.
65.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
66.設(shè)有圖書(圖書編號,書名,第一作者,出版社.、讀者(借書證號,姓名,單位,職稱.和借閱(借書證號,圖書編號,借書日期,還書日期.三張表,則表借閱的關(guān)鍵字(鍵或碼.為()。
A.借書證號,圖書編號
B.圖書編號,借書日期
C.借書日期,還書日期
D.借書證號,借書日期
67.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
68.有以下程序:
在VC6.0平臺上編譯運行,程序運行后的輸出結(jié)果是()。
A.10,6B.4,4C.2,4D.4。8
69.
70.
71.
72.以下程序運行后的輸出結(jié)果是()。
A.2011B.99C.209D.1111
73.有以下程序
#include<string.h>
structSTU
{intnum;
floatTotalScore;};
voidf(structSTUp)
{structSTUs[2]={{1047,530},{1048,531}};
p.num=s[1].num;p.TotalScore=s[1].TotalScore;
}
main()
{structSTUs[2]={{2041,730},{2042,731}};
f(s[0]);
printf("%d,%3.0f\n",s[0].num,s[0].TotalScore);
}
程序的運行結(jié)果是
A.1047,530
B.1048,531
C.2041,730
D.2042,731
74.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系
75.
76.
77.以下選項中,當(dāng)x為大于l的奇數(shù)時,值為0的表達(dá)式是()。
78.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指針變量p的地址
B.*p表示的是變量a的值,而不是變量a的地址
C.*p表示的是指針變量p的值
D.*p只能用來說明p是一個指針變量
79.下列敘述中正確的是()。
A.軟件交付使用后還需要進(jìn)行維護(hù)
B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)
C.軟件交付使用后其生命周期就結(jié)束
D.軟件維護(hù)是指修復(fù)程序中被破壞的指令
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:計算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,當(dāng)x的值為1,y的值為2,z的值為3時,函數(shù)值為2.O0。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}
參考答案
1.B程序中的*s%10是求余運算,分別是a、b、C的ASCIl碼值對10進(jìn)行求余運算然后輸出,所以輸出的答案為789。r
2.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應(yīng)用。在使用一個指針變量之前,先要用聲明語句對其進(jìn)行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關(guān)指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。
3.A數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。
4.D
5.DD選項中“x[2][3]”定義的是一個2行3列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了3行,所以錯誤。故本題答案為D選項。
6.D單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實世界的實體以及實體間的各種關(guān)系。
7.C
8.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達(dá)式);,其中循環(huán)體語句可以是復(fù)合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。
9.B
10.D多元運算符問號前面表達(dá)式為真,所以(a-A+a)賦值給a,括號里的運算是把大寫字母變成小寫字母,所以答案應(yīng)為選項D。
11.D
12.D
13.D解析:在主函數(shù)中首先定義了一個數(shù)組p并初始化,在while后面括號里的表達(dá)式中,i初值為0,當(dāng)p[i]為偶數(shù)時,P[i]%2等于0,根據(jù)“&&”運算符的規(guī)則,其表達(dá)式為假退出循環(huán),顯然當(dāng)i=2時,p[i]=14為偶數(shù),此時while后面括號里的表達(dá)式的值為假,退出循環(huán),此時k=p[0]+p[1],即k=11+13。所以最后輸出k為24。
14.A在表達(dá)式“z=0.9+x/y”中,先計算“3.6-2”,結(jié)果為1;再計算“0.9+1”,結(jié)果為1.9。因為變量z為整型,所以z的值為1。故本題答案為A選項。
15.C
16.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進(jìn)行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進(jìn)行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。
17.B
18.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
19.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應(yīng)該是第一參數(shù),選項A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項。
20.C\n面向?qū)ο蟮脑O(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
\n
21.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內(nèi)嵌for循環(huán)的雙層循環(huán)結(jié)構(gòu)來實現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標(biāo)的方式來引用的。
22.#&#&解析:剛開始時,switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達(dá)式b<0值為0,沒有與其匹配的語句,返回外層,因為外層沒有break語句,順序執(zhí)行case0后面的switch語句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因為外層沒有break語句,順序執(zhí)行default后的語句,輸出&。
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.程序設(shè)計的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試活動由兩部分組成,其一是根據(jù)錯誤的跡象確定程序中錯誤的確切性、原因和位置;其二是對程序進(jìn)行修改,排除這個錯誤。\r\n\r\n
25.*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]解析:本題考查的知識點是字符型指針變量作為函數(shù)的參數(shù)以及序符串大小的比較.函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應(yīng)的字符相等則接著比較下一個字符,一直到兩個字符串中對應(yīng)字符不等,或者有一個為'\\0',此對應(yīng)字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為'\\0'。且*s和*t相同,第一處應(yīng)填“*t”或其他等價形式。根據(jù)題意可知第二處應(yīng)填“*s-*t”或其等價形式。
26.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
27.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
28.str[i]或str+iistr[i]或str+i\r\ni
29.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。
30.structlist*q
31.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當(dāng)前字符的差返回,所以在空框處應(yīng)填入*s-*t,保證在s>t時,返回正值,當(dāng)s<t時,返回負(fù)值。
32.空間復(fù)雜度空間復(fù)雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復(fù)雜度。
33.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊列有且只有一個根結(jié)點,而且每一個結(jié)點最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。
34.*t*t解析:函數(shù)中首先讓n=stxlen(s)所以while循環(huán)的循環(huán)條件表達(dá)式中*(s+n)指向字符串s的結(jié)束標(biāo)志'0',處,而該處應(yīng)該等于字符串t的第1個字符,另外循環(huán)體中讓s和t指向下一個字符,即s+n和t同時被移動到下一個位置,所以該處應(yīng)該填*t,即t所指內(nèi)容.當(dāng)t指向字符串結(jié)束標(biāo)志'\\0'的時候,整個循環(huán)條件表達(dá)式的值也為0(“假”)了,循環(huán)結(jié)束.正好滿足將t所指字符串復(fù)制到s所指的字符串的尾部。
35.軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定;調(diào)試也稱排錯,它是一個與測試有聯(lián)系又有區(qū)別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。\r\n\r\n
36.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
37.246246解析:本題考查了for循環(huán)語句的使用,同時靜態(tài)局部變量的存儲和生存其特性也要注意。第一次執(zhí)行fun()函數(shù)時,a=0,所以a+=2=2;第二次執(zhí)行fun()函數(shù)時,a保留著上次制形式的結(jié)果2,所以a+=2=4;同理第三次執(zhí)行fun()函數(shù)時,a=6,所以輸出結(jié)果為246。
38.p[5]或*(p+5)p[5]或*(p+5)解析:98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種寫法:p[5]、*(p+5)。
39.白盒白盒解析:按功能劃分測試可分為白盒測試和黑盒測試。白盒測試的原則是保證所測試模塊中每一獨立路徑至少執(zhí)行一次;保證所測試模塊所有判斷的每一分支至少執(zhí)行一次:保證所測試模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
40.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。
41.B解析:右移運算符“>>”是雙目運算符。其功能是把“>>”左邊的運算數(shù)的各二進(jìn)位全部右移若干位,“>>”右邊的數(shù)指定移動的位數(shù)。例如:設(shè)a=15,a>>2表示把000001111右移為00000011(+進(jìn)制3)。應(yīng)該說明的是,對于有符號數(shù),在右移時,符號位將隨同移動。當(dāng)為正數(shù)時,最高位補(bǔ)0,而為負(fù)數(shù)時,符號位為1,最高位是補(bǔ)0或是補(bǔ)1取決于編譯系統(tǒng)的規(guī)定。TurboC和很多系統(tǒng)規(guī)定為補(bǔ)1,右移1位相當(dāng)于除以2。
42.A解析:C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的“*”結(jié)合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。
43.A解析:本題int型占2個字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(216(上標(biāo))-1),即0~65535。
44.D
45.D解析:C語言中操作一個字符串常量的方法有:①將字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,將其轉(zhuǎn)換成字符指針。
本題D)項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。
46.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。
47.D解析:C語言中的文件有兩種存取方式:順序存取和直接存取。文件打開之后,就可以進(jìn)行讀寫操作。讀寫操作函數(shù)可以指定文件使用方式。在使用完一個文件后應(yīng)關(guān)閉它,以防誤操作。
48.D解析:結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。
49.D解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是對數(shù)據(jù)元素之間的邏輯關(guān)系的描述,它可以用一個數(shù)據(jù)元素的集合和在此集合中定義的若干關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序、鏈接等存儲結(jié)構(gòu)。但是不同的存儲結(jié)構(gòu)的數(shù)據(jù)的處理效率不同。
50.B解析:C語言中字符串是以'\\0'字符結(jié)束的,且strlen()函數(shù)計算的是\\0字符前的所有字符的個數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof()函數(shù)是計算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。
51.A解析:對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接的對應(yīng)關(guān)系,對象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對象的思想廣泛應(yīng)用于C++、Java等語言中,因此A)錯誤。
52.A解析:本題同樣考查++運算的執(zhí)行次序。第一個prantf輸出的是'b',并且變量a='b';第二個printf輸出的是賦值語句b=a++最終的結(jié)果,該語句首先將a的值賦給b,然后a++,因此第二個printf輸出也是'b'。
53.C解析:for語句中的表達(dá)式可以部分或全部省略,但兩個“;”不能省略,若3個表達(dá)式均省略,會因為缺少條件判斷,導(dǎo)致循環(huán)無限執(zhí)行,而形成死循環(huán)。本題中當(dāng)i的值為5的時候,循環(huán)終止。
54.C解析:軟件設(shè)計遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。
55.B解析:本題考查兩個位運算符。按位異或運算符“^”是雙目運算符,其功能是參與運算的兩數(shù)對應(yīng)的二進(jìn)制位相異或,當(dāng)兩對應(yīng)的二進(jìn)制位相異時,結(jié)果為1。左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進(jìn)制位全部左移若干位,移動的位數(shù)由“<<”右邊的數(shù)指定,高位丟棄,低位補(bǔ)0。“<<”運算符的優(yōu)先級高于“^”。
56.B解析:本題考查的重點是指針數(shù)組與二維數(shù)組的關(guān)系。因為*p[3]定義成指針數(shù)組,從而指針數(shù)組中的任何元素都是一個地址,因此,選項B是正確的。
57.B解析:在ASCII碼中,字符串結(jié)束符'\\0'的ASCII碼為0,字符'0'的ASCII碼的值為48,字符'1'的ASCII碼的值為49。由此可見,選項A的值為-47;選項B的值為1;選項C的值為49;選項D的值為-48。故應(yīng)該選擇B。
58.A
59.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運算。
60.B解析:先定義了一個指向字符型數(shù)組str的指針p,指針p旨向數(shù)組str的首地址,p+3將指針指向str[3],又因為字符型數(shù)組在存放字符串時會自動在末尾加上'\\0',所以*(p+3)=0。
61.C本題考查簡單的if…else語句。先執(zhí)行條件if(a<b),顯然不成立,然后執(zhí)行else語句。
62.D解析:算法分析是指對一個算法的運行時間和占用空間做定量的分析,一般計算出相應(yīng)的數(shù)量級,常用時間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時間復(fù)雜度和空間復(fù)雜度;提高算法的執(zhí)行效。率。
63.B
64.A
65.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
66.A\n在二維表中凡能唯一標(biāo)識元組的最小屬性集稱為關(guān)鍵字,關(guān)鍵字具有標(biāo)識元組、建立元組間聯(lián)系等重要作用。此題中,(借書證號,圖書編號)是表借閱的主鍵,借書證號、圖書編號分別是外鍵,借書證號是讀者表的主關(guān)鍵字,圖書編號是圖書表的主關(guān)鍵字。
\n
67.C在計算(float)(a4-b)/2時,由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計算,得4.500000。在計算(int)x%(int)y時,先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運算,結(jié)果為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。類型轉(zhuǎn)換的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吊頂發(fā)霉施工方案
- 球類植物施工方案
- 2025至2030年中國保鮮小蔥數(shù)據(jù)監(jiān)測研究報告
- 圍欄現(xiàn)場施工方案
- 其他地區(qū)2025年新疆昌吉市自然資源局所屬事業(yè)單位引進(jìn)高水平專業(yè)技術(shù)人才筆試歷年參考題庫附帶答案詳解
- 其他地區(qū)2024年新疆烏蘇市教科系統(tǒng)選拔專任教師45人筆試歷年參考題庫附帶答案詳解
- 保山云南保山騰沖市消防救援局招收專職消防員文員招聘15人筆試歷年參考題庫附帶答案詳解
- 關(guān)于成立中醫(yī)院項目可行性研究報告(模板范文)
- 適用民間借貸的借款合同
- 二零二五山莊租賃合同范例
- 《疫苗管理法》法律法規(guī)解讀課件
- 自動跟隨行李箱系統(tǒng)設(shè)計
- 手動電葫蘆操作規(guī)程
- 創(chuàng)新方法論知到章節(jié)答案智慧樹2023年西安理工大學(xué)
- 《上海市奉賢區(qū)小區(qū)機(jī)動車停放管理工作調(diào)查報告》4300字
- 刑偵工作調(diào)研報告
- 火力發(fā)電廠鍋爐智能燃燒控制技術(shù)導(dǎo)則
- 國家開放大學(xué)《社會心理學(xué)》形考任務(wù)1-4參考答案
- 國家開放大學(xué)《現(xiàn)代漢語專題》章節(jié)自測參考答案
- 《工程制圖》期末考試試卷附答案
- 用乘法分配律進(jìn)行簡便計算市公開課一等獎省名師優(yōu)質(zhì)課賽課一等獎?wù)n件
評論
0/150
提交評論