版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年陜西省寶雞市全國計算機等級考試C語言程序設(shè)計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并
2.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
3.若有定義“inta=0,b=1,c=1;”,關(guān)于邏輯表達式“a++||b++&&c++”中各個部分的執(zhí)行順序,以下說法正確的是()。
A.先執(zhí)行“b++”,再執(zhí)行“c++”,最后執(zhí)行“a++”
B.先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“c++”
C.先執(zhí)行“c++”,再執(zhí)行“b++”,最后執(zhí)行“a++”
D.先執(zhí)行“b++”,再執(zhí)行“a++”,最后執(zhí)行“c++”
4.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
5.對長度為n的無序線性表進行順序查找,則查找成功、不成功時的平均數(shù)據(jù)比較次數(shù)分別為()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
6.以下選項中不屬于c語言的類型的是()。
A.unsignedlongint
B.longshort
C.unsignedint
D.signedshortint
7.
8.用單鏈表方式存儲的線性表,存儲每個結(jié)點需要兩個域,一個數(shù)據(jù)域,另一個是()。
A.當前結(jié)點的所在地址B.后繼結(jié)點的所在地址C.空指針域D.空閑域
9.以下敘述中正確的是()。
A.結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組或指針變量
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時,其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型
D.結(jié)構(gòu)體定義時,類型不同的成員項之間可以用逗號隔開
10.程序運行后的輸出結(jié)果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3
11.C語言中邏輯表達式的值為()
A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'
12.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點p的直接后繼,則應執(zhí)行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
13.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應該是()。A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)
14.假設(shè)某算法的計算時間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時間復雜度為()
A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)
15.如有inta=11;則表達式(a++*1/3)的值是()。
A.0B.3C.4D.12
16.若有以下程序
則程序的輸出結(jié)果是
A.China!B.toChina!C.meyoutoChina!D.youtoChina!
17.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點:
則以下選項中司將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是______。A.(*p).next=(*q).next;free(p);
B.p=q->next;free(q);
C.p=q;free(q);
D.p->next=q->next;free(q);
18.在C語言中,退格符是
A.\nB.\tC.\fD.\b
19.微型計算機的運算器、控制器及內(nèi)存儲器組合在一起,稱之為()
A.ALUB.CPUC.MPUD.主機
20.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進性D.程序的易讀性
二、2.填空題(20題)21.以下程序的功能是從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。請?zhí)羁铡?/p>
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=【】;
sptr=str1
while(*sptr)putchar(*sptr【】);
}
22.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
23.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。
24.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
25.若已知a=10,b=20,則表達式!a<b的值為【】。
26.若有以下函數(shù)定義,函數(shù)返回值的類型是【】。
fun(doubleA)
{returna*a*a;}
27.按數(shù)據(jù)流的類型,結(jié)構(gòu)化設(shè)計方法有兩種設(shè)計策略,它們是變換分析設(shè)計和______。
28.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
29.以下程序的運行結(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=%51d\n",k);}
30.診斷和改正程序中錯誤的工作通常稱為【】。
31.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。
32.下面程序的輸出是【】。
main()
{enumern{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
33.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
34.若有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j-%d\n",i,j);
}
要求給i賦10,給j賦20,則應該從鍵盤輸入______。
35.軟件設(shè)計模塊化的目的是______。
36.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,【】給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)和物理存取方法。
37.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于[]。
38.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊列屬于______。
39.若有如下程序:
main()
{intx=20;
if(x>10)printf("%d",x-=5);
if(x>15)printf("%d",x);
}
則程序運行后的輸出結(jié)果是【】。
40.算法的復雜度主要包括時間復雜度和______復雜度。
三、1.選擇題(20題)41.
有以下程序:
main
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
42.已知inta=6;則執(zhí)行a+=a-=a*a;語句后,a的值為()。
A.36B.0C.-24D.-60
43.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
44.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
45.在C語言中,函數(shù)返回值的類型最終取決于()。
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型
D.函數(shù)定義時形參的類型
46.有以下定義#include<stdio.h>chara[10],*b=a;不能給數(shù)組a輸入字符串的語句是()A.gets(a)B.gets(a[0])C.gets(&a[0]);D.gets(b);
47.以下定義語句中正確的是
A.chara='A'b='B';
B.floata=b=10.0;
C.inta=10,*b=&a;
D.float*a,b=&a;
48.當運行以下程序時,從鍵盤輸入AhaMA(空格)Aha
#include
main()
{chars[80],c='a';
inti=0;
scanf("%s",s);
while(s[i]!='\n')
{if(s[i]==c)s[i]-32;
elseif(s[i]==c-32)s[i]=s[i]+32;
i++;}
puts(s);}
A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA
49.閱讀如下程序段#include"stdio.h"main(){intx,a,b;scanf("%d",&x);a=b=x;for(;x!=0;){if(x<b)b=x;if(x>a)a=x;scanf("%d",&x);}printf("a=%d,b=%d\n",a,b);}
輸入后輸出結(jié)果是
A.a=7569,b=789B.a=5,b=365C.a=7,b=789D.a=7569,b=5
50.下列不屬于算法特性的是
A.確定性B.可行性C.有輸出D.無窮性
51.下面的程序main(){intx=3,y=0,z=0;if(x=y+z)printf("***");elseprintf("####");}_______。
A.有語法錯誤不能通過編譯B.輸出****C.可以通過編譯,但是不能通過連接,因而不能運行D.輸出####
52.在標準C語言中,下列程序的輸出結(jié)果為______。main(){printf("%e",123.456);}
A.123.456B.123.4560C.1.23456e2D.1.234560e+002
53.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是
A.樹形結(jié)構(gòu)B.網(wǎng)狀結(jié)構(gòu)C.線性表D.二維表
54.若已定義:inta=25,b=14,c=19;執(zhí)行以下三目運算符(?:)所構(gòu)成的語句:a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);輸出結(jié)果是()。
A.***a=25,b=13,c=19
B.***a=26,b=14,c=19
C.###a=25,b=13,c=19
D.###a=26,b=14,c=19
55.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
56.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復雜的任務B.只能完成部分復雜的任務C.只能完成符合結(jié)構(gòu)化的任務D.只能完成一些簡單的任務
57.循環(huán)鏈表的主要優(yōu)點是______。
A.不再需要頭指針了
B.己知某個結(jié)點的位置后,能夠容易找到它的直接前驅(qū)
C.在進行插入、刪除運算時,能更好地保證鏈表不斷開
D.從表中任一結(jié)點出發(fā)都能掃描到整個鏈表
58.下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復用
59.下面語句的輸出結(jié)果是______。printf("/od\n",strlen("\t\"\065\xff\n"))
A.14B.8C.5D.輸出項不合法,無正常輸出
60.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是______。
A.程序的規(guī)模B.程序的易讀性C.程序的執(zhí)行效率D.程序的可移植性
四、選擇題(20題)61.下列關(guān)于棧敘述正確的是()。A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠不能被刪除D.棧底元素最先能被胍除
62.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
63.有定義語句:“int*p[4];”,以下選項中與此語句等價的是()。
A.intp[4];B.int**P;C.int*(p[4]);D.int(*p)[4];
64.以下程序運行后,輸出結(jié)果是()。
#include<stdio.h>
#definePT5.5
#defineS(x)PT*x*X
main
{inta=1,b=2:
printf("%4.1f\n",s(a+b));
}
A.49.5B.9.5C.22.0D.45.0
65.以下關(guān)于C語言的敘述中,不正確的是
A.C語言中的注釋可以夾在變量名或關(guān)鍵字的中間
B.C語言中使用變量必須是先定義后使用
C.C語言表達式運算符兩側(cè)的運算數(shù)類型必須一致
D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
66.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.log2nB.n2C.nD.n+1
67.
68.下列程序的運行結(jié)果是()。
A.6B.7C.8D.9
69.
70.
71.以下敘述中錯誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是-種結(jié)構(gòu)化程序設(shè)計語言
D.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
72.以下程序的輸出結(jié)果是()。
#definef(x)x*x
main
{inta=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A.9B.6C.36D.18
73.有以下程序:
程序運行后的輸出結(jié)果是()。
A.9B.8C.7D.10
74.有以下程序:
#include<stdiO.h>
main()
{FILE*fp;
intk,n,i,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w");
for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);
fclose(fp);
fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);
fclose(fp);
printf("%d\n,%d\n,k,n);
}
程序運行后的輸出結(jié)果是()。
A.1,2
B.3,4
C.5,6
D.123,456
75.以下敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應實參的值
D.當在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
76.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2B.1,0C.3,2D.0,0
77.若已定義inta=25,b=14,c=19;以下三目運算符(?:)所構(gòu)成的語句執(zhí)行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是
A.***a=25,b=13,c=19B.***a=26,b=14,c=19
C.###a=25,b=13,c=19D.###a=26,b=14,c=19
78.在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點的是A.一致性B.分類性C.多態(tài)性D.標識唯一性
79.有以下程序:
程序的運行結(jié)果是()。
A.1B.2C.3D.4
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是計算并輸出h以內(nèi)的素數(shù)之和。h由主函數(shù)傳給proc()函數(shù)。若h的值為80,則函數(shù)的值為791。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將a、b兩個兩位正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個位數(shù)依次放在變量c的百位和個位上,b中的十位數(shù)和個位數(shù)依次放在變量c的千位和十位上。例如,當a=45,b=12,調(diào)用該函數(shù)后c=1425。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}
參考答案
1.D
2.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
3.BC語言中運算符有優(yōu)先級和結(jié)合性。自增、自減運算符的優(yōu)先級高于邏輯運算符,邏輯運算符中邏輯與“&&”的優(yōu)先級比邏輯或“||”高,邏輯運算符的結(jié)合性自左向右。所以題干中表達式等價于“(a++)||((b++)&&(c++))”。運算順序為:首先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“C++”。故本題答案為B選項。
4.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。
5.C
6.Bc語言中整型變量分為4種,基本型int,短整型shortint,長整型longint和無符號型(unsignedint、un-signedshort、unsignedlong)。因此B)選項不屬于c語言的類型。
7.A
8.B
9.A結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組、指針變量或者結(jié)構(gòu)體變量,選項A正確;不同結(jié)構(gòu)體成員名可以相同,選項B錯誤;結(jié)構(gòu)體定義時,其成員的數(shù)據(jù)類型不能是本結(jié)構(gòu)體類型,選項C錯誤;結(jié)構(gòu)體定義時,類型不同的成員項之間使用分號隔開,選項D錯誤。本題答案為A選項。
10.D
11.A
12.A
13.D本題主要考查do—while循環(huán),因為變量t的初始值等于1,經(jīng)過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關(guān)系表達式t!=n是否成立,如果關(guān)系表達式成立,則執(zhí)行第二次循環(huán),如果關(guān)系表達式不成立,退出循環(huán)。由此可見,只要輸入變量n的值為負奇數(shù),則一定會使t==n成立,故退出do-while循環(huán)。
14.B
15.B
16.D該程序首先定義*a和b[],并進行初始化。主函數(shù)中通過外層for循環(huán)語句,遍歷字符數(shù)組b[],并且將符合if條件語句的字符賦給數(shù)組p;for內(nèi)層循環(huán)語句,遍歷字符數(shù)組a[]。再將符合if條件語句的結(jié)果輸出。因此D選項正確。
17.D解析:本題題面要求刪除q所指結(jié)點并釋放該結(jié)點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結(jié)點,而釋放的是p結(jié)點,所以選項A錯誤;選項B是將q的下一結(jié)點的地址賦值給指針變量p,這意味著p原來的成員變量內(nèi)容被q的下一結(jié)點的成員變量內(nèi)容所代替,即原p結(jié)點也被刪除了,所以選項B錯誤;選項C相當于將q的所有成員變量內(nèi)容代替了p的所有成員變量內(nèi)容,即p結(jié)點被刪除,所以錯誤;選項D是將q的下—結(jié)點的地址賦值給p的成員next\u3000(成員next用于存放一結(jié)點的地址),使得p的next成員不再指向q,而是指向q的下一結(jié)點,相當于刪除了q這個結(jié)點,同叫用free函數(shù)正確釋放了q這一結(jié)點,所以選項D正確。
18.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進制數(shù)所代表的字符,\\xhh1~2位表示十六進制數(shù)所代表的字符。
19.D
20.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風格應該強調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。
21.\0'++
22.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達式相當于2.0的3.0次方,結(jié)果為8.000000。
23.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。
24.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標準的調(diào)用形式應該寫成:
p(double*)malloc(sizeof(double));
25.11解析:計算表達式!a<b,先計算!a,因a的值為10,!a的值為0,而關(guān)系表達式0<20為真,所以表達式!a<b的值為1。
26.int類型int類型
27.事務分析設(shè)計事務分析設(shè)計解析:典型的數(shù)據(jù)流圖有兩種,即變換型和事務型。按照這兩種類型把設(shè)計方法分為兩類,即變換分析設(shè)計和事務分析設(shè)計。
28.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
29.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
30.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
31.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。
32.DDBBCCDDBBCC解析:c語言對枚舉的定義規(guī)定定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應當為“DDBBCC”。
33.fopenfopen解析:函數(shù)fopen的原型為FILE*fopen(char*filename,char*mode),功能為以mode指定的方式打開名為filename的文件;函數(shù)fseek的原型為intfseek(FILE*fp,longoffset,intbase),功能為將fp所指向的文件的位置指針移到以base所指出的位置為基準,offset為位移量的位置;函數(shù)ftell的原型為longftell(FILE*fp),功能為返回fp所指向的文件中當前的讀寫位置;函數(shù)fclose的原型為intfclose(FILE*fp),功能為關(guān)閉fp所指的文件,釋放文件緩沖區(qū)。
34.i=0j=20i=0j=20解析:本題考核的知識點是scanf()數(shù)的使用.該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應要輸入的變量,所以說本題中應該原樣輸入i=j=,后面分別給變量0和20,所以說空格處應該填入i=0,j=20。
35.降低復雜性降低復雜性
36.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
37.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結(jié)構(gòu)。
38.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊列有且只有一個根結(jié)點,而且每一個結(jié)點最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。
39.1515解析:本題首先定義了一個變量x并初始化為20。然后第一個if語句判斷x是否>10,結(jié)果為真,則執(zhí)行后面的輸出語句,輸出結(jié)果是賦值表達式X-=5的值,所以輸出15,同時x的值也變成15。第二個if語句再判斷x是否>15時條件為假,結(jié)束程序。所以程序運行后的輸出結(jié)果是15。
40.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
41.A解析:因為在while循環(huán)的循環(huán)條件中,一運算符是前綴形式,所以表達式—k的值是k自減之后的值。程序開始時,將k的值初始化為5,然后進入while循環(huán),因為—k的值為4(非零),所以執(zhí)行循環(huán)體輸出k-=3的值1,此時k的值也變?yōu)?。第2次執(zhí)行循環(huán)條件,—k的值為0,所以循環(huán)結(jié)束。因此最后輸出的結(jié)果是1,故應該選擇A。
42.D解析:此題考查的是賦值表達式。執(zhí)行語句“a+=a-=a*a;”時,首先執(zhí)行a=a-a*a=-30,然后執(zhí)行a=a+a=-60。
43.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串數(shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。
44.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進制整數(shù),每個整數(shù)域?qū)捠?。而在C語言中規(guī)定:當域?qū)捫∮趯嶋H寬度時域?qū)挷黄鹱饔?,按實際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進制整數(shù)12,等于十進制的10)。所以,4個選項中選項C符合題意。
45.A解析:在C語言中,應當在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準,由系統(tǒng)自動進行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。
46.B解析:本題考核的知識點是函數(shù)gets()的應用。函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址。可以是字符數(shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個長度為10的字符數(shù)組,和一個指針變量b,并且通過賦值讓它指向數(shù)組a;選項A。選項B。選項C和選項D中只有選項B中g(shù)ets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址,故選項B不正確。所以,4個選項中選項B符合題意。
47.C解析:選項A中定義兩個變量a和b,并賦初值,C語言中可以同時定義多個變量,但變量之間必須用“,”隔開,顯然,選項A中少了一個逗號“,”,故選項A不正確;選項B中定義變量時用了連續(xù)的賦值語句,這在定義變量是不正確的,故選項B不正確,選項D定義一個指針,然后定義了一個變量并讓這個變量的初值為該指針變量,顯然這這時的指針變量還沒初始化就被賦值給變量,是不對的,故選項D不正確,所以,4個選項中選項C符合題意。
48.A解析:本題主要考查的知識點是大寫字母比它對應的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進行算術(shù)運算等操作。
49.D解析:本題的功能是求出輸入序列的最大值和最小值,并打印輸出。
50.D解析:一個算法必須具有5個特性,即有窮性、確定性、可行性、有輸入、有輸出。其中有窮性是指算法必須總是在執(zhí)行完有窮步之后結(jié)束,而且每步都在有窮時間內(nèi)完成。
51.D解析:本題的考查點是運算符在表達式中的處理原則。本題中把y+z的值賦給x,由于y和z都等于0,所以x的值也為0,表達式值為false,輸出####。if語句中if后面的表達式—般為邏輯或關(guān)系表達式,但也可以是任意的數(shù)值類型。
52.D
53.D解析:數(shù)據(jù)庫中的關(guān)系模型是采用二維表來表示實體與實體之間的聯(lián)系。
54.C解析:此題綜合考查多種運算符的使用:首先計算表達式a<=25&&b--<=2&&c的值,很容易看出b--<=2的值為假,因此表達式為假;根據(jù)三目運算的特點,由于表達式為假,所以應該執(zhí)行printf('###a=%d,b=%d,c=%d\\n',a,b,c);這時a的值依然為25,b的值經(jīng)過b--運算后變?yōu)?3,而c的值仍為19。
55.A解析:關(guān)系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。
56.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復雜的C程序,即可以完成任何復雜的任務。
57.D
58.D解析:20世紀70年代以來,提出了許多軟件設(shè)計方法,主要有①逐步求精:對復雜的問題,應設(shè)計一些子目標作過渡,逐步細化;②自頂向下:程序設(shè)計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設(shè)計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向?qū)ο蟪绦蛟O(shè)計的一個優(yōu)點。
59.C解析:在C語言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進制數(shù)或在“\\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。
60.B解析:采用結(jié)構(gòu)化編程方法的好處主要在于:一是便于控制、降低程序的復雜性,因此便于編寫程序。二是程序清晰易讀,可理解性好。因此,結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是程序的易讀性,而不是程序的規(guī)模、程序的執(zhí)行效率和程序的可移植性。
61.A棧是先進后出的數(shù)據(jù)結(jié)構(gòu),因此棧頂元素最后入棧卻最先被刪除,棧底元素最先入棧卻最后被刪除,所以本題答案為A)。
62.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。
63.D本題int*p[4]的作用是聲明一個指針數(shù)組,每個元素都是int*型指針。
64.B本題考查函數(shù)調(diào)用,由于a+b沒有被括起來,所以s(a+b)=PT*a+b*a+b=5.5*1+2*1+2=9.5,故選擇B。
65.CA選項指出“C語言中的注釋可以夾在變量名或關(guān)鍵字的中間”,該選項是正確的。通常采用/*.....*/作為C語言里的注釋符,注釋符之間的內(nèi)容是方便他人理解程序而寫的,對編譯和運行不起作用。注釋可以在程序的任何位置。
B選項“C語言中使用變量必須是先定義后使用”,該選項是正確的。變量先定義后使用是編程語言的語法規(guī)則。這樣可以讓編譯器首先知道該定義變量的類型,可以事先為該變量安排好存儲空間,不至于最后編譯失敗。如果預先沒有定義,編譯器會因為不清楚該變量的類型而導致隨意分配內(nèi)存空間,這樣可能導致空間分配過大了浪費或因為空間過小無法存儲數(shù)據(jù)。
C選項“C語言表達式運算符兩側(cè)的運算數(shù)類型必須一致”,該選項是錯誤的。C語言允許整型、實型、字符型數(shù)據(jù)間進行混合運算。在運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算。
D選項“C語
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外探索課程設(shè)計意圖
- 邁達斯懸臂法課程設(shè)計
- 運籌學課課程設(shè)計搭配
- 轉(zhuǎn)向臂課程設(shè)計夾具CATIA圖紙
- 機械修理工操作規(guī)程(3篇)
- 船舶和海洋工程課程設(shè)計
- 2025版股權(quán)投資與退出機制協(xié)議書3篇
- 自動裝箱機課程設(shè)計
- 2025年度線下書店連鎖加盟合同協(xié)議3篇
- 2025年度濟南城市更新項目合作協(xié)議3篇
- 新版中國食物成分表
- 浙江省溫州市溫州中學2025屆數(shù)學高二上期末綜合測試試題含解析
- 2024河南鄭州市金水區(qū)事業(yè)單位招聘45人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 食物損失和浪費控制程序
- TCI 373-2024 中老年人免散瞳眼底疾病篩查規(guī)范
- 2024四川太陽能輻射量數(shù)據(jù)
- 石油鉆采專用設(shè)備制造考核試卷
- 法人變更股權(quán)轉(zhuǎn)讓協(xié)議書(2024版)
- 研究生中期考核匯報模板幻燈片
- 培訓機構(gòu)與學校合作協(xié)議書范本
- 留置導尿法操作評分標準
評論
0/150
提交評論