




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年廣東省清遠市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序的輸出結果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
2.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
3.若有定義語句“chars[10]=“1234567\0\0”;”,則Strlen(s)的值是()。
A.7B.8C.9D.10
4.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
5.
6.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員,從職員到部門的聯(lián)系類型是()
A.多對多B.一對一C.多對一D.一對多
7.廣告系統(tǒng)為了做地理位置定向,將IPV4分割為627672個區(qū)間,并標識了地理位置信息,區(qū)間之間無重疊,用二分查找將IP地址映射到地理位置信息,請問在最壞的情況下,需要查找多少次?()
A.17B.18C.19D.20
8.有以下程序:#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen(“myfile.dat”,“w”);fputs(“abc”,fp);fclose(fp);fp=fopen(“myfile.dat”,“a+”);fprintf(fp,“%d”,28);rewind(fp);fscanf(fp,“%s”,str);puts(str);fclose(fp);}程序的運行結果是()。
A.abcB.28cC.abc28D.因類型不一致而出錯
9.以下敘述中正確的是()。
A.結構體變量中的成員可以是簡單變量、數(shù)組或指針變量
B.不同結構體的成員名不能相同
C.結構體定義時,其成員的數(shù)據(jù)類型可以是本結構體類型
D.結構體定義時,類型不同的成員項之間可以用逗號隔開
10.現(xiàn)有以下結構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續(xù)的3個結點。structnode{hardata;structnode*next;)*P,*q,*r;現(xiàn)要將q和r所指結點交換前后位置,同時要保持鏈表的結構,下列不能完成此操作的語句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
11.下列關于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對
12.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
13.健壯的算法不會因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)()
A.對B.錯
14.若有語句“typedefstructS{intg;charh;}T;”,則下列敘述中正確的是()。
A.可用S定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量
15.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a)printf("%dn",x);elseprint[("%d\n",y)
B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)
C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)
D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)
16.
17.
18.下列敘述中正確的是()。
A.在switch語句中不一定使用break語句
B.在switch語句中必須使用default語句
C.break語句必須與switch語句中的case配對使用
D.break語句只能用于switch語句
19.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};
B.floata[3][]={{1},{2},{3}};
C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};
D.doublea[][3]={O);
20.有下列程序:程序執(zhí)行后的輸出結果是()。
A.hAppychristmAs
B.happychristmas
C.HAppyCHrIstmAs
D.HAPPYCHRISTMAS
二、2.填空題(20題)21.設有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內容,請將語句補充完整。
scanf(“%d”,______);
printf(“%d\n”,______);
22.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
23.某二義樹中度為2的結點有18個,則該二叉樹中有______個葉子結點。
24.以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。請按題意,完成填空。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
for(i=1;i<x;i+=2)
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
clrscr();
printf("\nPleasenteranintegernumber:\n");scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("\n");
}
25.假定變量x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關系表達式【】。
26.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產生的結果。
27.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回值0,否則返回值1,請?zhí)羁铡?/p>
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
28.在E-R圖中,矩形表示【】。
29.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
30.以下程序運行后的輸出結果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
31.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
32.下列程序的輸出結果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
如:dp=x*-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
33.有以下程序:
#include<stdio.h>
main()
{intn=0,m=1,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后的輸出結果是【】。
34.模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊(樁模塊)。其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產生的結果。
35.以下程序的運行結果為【】。
#include<stdio.h>
main()
{staticintb[2][3]={{1,2,3},{4,5,6}};
staticint*pb[]={b[0],b[1]};
inti,j;
i=0;
for(j=0;j<3;j++)
printf("b[%d][%d]=%d",i,j,*(pb[i]+j));
printf("\n");
}
36.若有定義:intk;,以下程序段的輸出結果是______。for(k=2;k<6;k++,k++)printf("##%d",k);
37.以下程序的輸出結果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
38.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產生的結果。
39.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內部級模式與外部級模式。
40.以下程序的運行結果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的
B.線性鏈表的頭元素一定存儲在其他元素的前面
C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
42.若已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97";C.c=97;D.c="a";
43.在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為A.概念模式B.外模式C.內模式D.物理模式
44.有以下程序main(){inta[3][2]={0},(*ptr)[2],i,i;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr+++;}for(i=0;i<3;i++){foil(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}若運行時輸入:123<回車>,則輸出結果為
A.產生錯誤信息B.102000C.123000D.102030
45.下述對C語言字符數(shù)組的描述中錯誤的是()
A.字符數(shù)組可以存放字符串
B.字符數(shù)組中的字符串可以整體輸入、輸出
C.可以在賦值語句中通過賦值運算符“=”對字符數(shù)組整體賦值
D.不可以用關系運算符對字符數(shù)組中的字符串進行比較
46.若有程序fun(inta,intb){staticintc=0;c+=a+b;rerurnc;}main(){intx=5,y=3,z=7,r;r=fun(y,x+y),z);r=fun(x,y);printf("%d\n",r);}上面程序的輸出結果是______。
A.23B.15C.19D.18
47.有以下程序;intf1(doubleA){returna*a;}intf2(doublex,doubley){doublea,b;a=n(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);┇}變量w中的值是()
A.5.21B.5C.5D.0
48.下面判斷正確的是
A.char*a="china";等價于char*a;*a="china";
B.charstr[5]={"china"};等價于charstr[]={"china"};
C.char*s="china";等價于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";
49.以下敘述中正確的是()。
A.預處理命令行必須位于C源程序的起始位置
B.在C語言中,預處理命令行都以“#”開頭
C.每個C程序必須在開頭包含預處理命令行:#include<stdio.h>
D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能
50.以下程序的功能是:按順序讀入10名學生4門課程的成績,計算出每位學生的平均分并輸出,程序如下:main(){intn.k;floatscore.sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("NO%d:%f\n",n,ave);}}上述程序運行后結果不正確,調試中發(fā)現(xiàn)有—條語句出現(xiàn)在程序中的位置不正確。這條語句是
A.sum=0.0;
B.sum+=score;
C.ave=sun/4.0;
D.printf("NO%d:%f\n",n,ave);
51.在下面的語句中,賦值語句錯誤的是_______。
A.a=(b=(c=2,d=3));B.i++;C.a=a/b=2;D.a=a<a+1;
52.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}此函數(shù)的功能是()。
A.將P1所指字符串復制到p2所指內存空間,
B.將p1所指字符串的地址賦給指針p2
C.對p1和p2兩個指針所指字符串進行比較
D.檢查p1和p2兩個指針所指字符串中是否有'\0'
53.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉換為對應小寫字母的語句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
54.用鏈表表示線性表的優(yōu)點是()。
A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序和邏輯順序相同
55.若有以下定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
56.對于n個結點的單向鏈表(無表頭結點),需要指針單元的個數(shù)至少為______。
A.n-1B.nC.n+1D.2n
57.對于白箱(盒)測試用例的各設計準則,下列敘述中正確的是()。
A.分支覆蓋準則比語句覆蓋準則嚴密
B.條件覆蓋要比分支覆蓋優(yōu)越。因此,條件覆蓋能完全滿足分支覆蓋
C.組合條件覆蓋準則既能滿足分支覆蓋準則,也能滿足條件覆蓋準則。因此,組合條件覆蓋準則是一種完全測試
D.上述說法都不對
58.以下程序的輸出結果是______。main(){charstr[12]={'s','t','r','i','n','g'};printf("%d/n",strlen(str));}
A.6B.7C.11D.12
59.以下程序的輸出結果是main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}
A.1B.0C.非0的數(shù)D.-1
60.有以下程序main(){intx=10,y=10;printf("%d%d\n",x--,--y);}程序運行后的輸出結果是()
A.1010B.99C.910D.109
四、選擇題(20題)61.(57)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是______。
A.便于用戶、開發(fā)人員進行理解和交流
B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
62.
以下程序的輸出結果是()。
main
{inti,k,a[10],p[3];
k=5;
for(i=0:i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k、;
}
A.20B.21C.22D.23
63.有以下程序:
程序運行后的輸出結果是()。
A.3B.4C.lD.9
64.以下選項中與
65.
66.有以下程序程序的運行結果是()。
A.852B.963C.741D.875421
67.
下列程序的輸出結果是()。
#include<stdio.h>
main
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.1C.6D.8
68.
69.
70.設有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯誤的是()。A.變量demo與成員d2所占的內存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
71.假定已建立以下鏈表結構,且指針P和q已指向如圖所示的結點:
則以下選項中可將q所指結點從鏈表中刪除并釋放該結點的語句組是()。
A.p一>next=q一>next;flee(q);
B.p=q一>next;free(q);
C.p=q;free(q);
D.(*p).next=(幸q).next;ffee(p);
72.對于一個正常運行的C程序,以下敘述中正確的是()。A.程序的執(zhí)行總是從main函數(shù)開始
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結束
D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結束
73.
74.下列定義變量的語句中錯誤的是()。
75.以下選項中關于C語言常量的敘述錯誤的是()。
A.經常被使用的變量可以定義成常量
B.常量分為整型常量、實型常量、字符常量和字符串常量
C.常量可分為數(shù)值型常量和非數(shù)值型常量.
D.所謂常量,是指在程序運行過程中,其值不能被改變的量
76.
77.對如下二叉樹進行后序遍歷的結果為()。
A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
78.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。
A.3B.4C.1D.2
79.若有以下說明和語句:
sturctst
{intn;char*ch;};
structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;
則值為6的表達式是()。
A)p++->nB)p->n++
C)(*p).n++D)++p->n
80.在E—R圖中,用來表示實體聯(lián)系的圖形是()。
A.橢圓形B.矩形C.菱形D.三角形
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m
各位上數(shù)字的平方和。例如,輸入498,則輸出應該是161。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,已知學生的記錄由學號和學習成績構成,N名學生的數(shù)據(jù)已存入a結構體數(shù)組中。請編寫函數(shù)fun(),該函數(shù)的功能是找出成績最低的學生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個最低分)。已給出函數(shù)的首部,請完成該函數(shù)。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<stdio.h>2#include<string.h>3#include<conio.h>4#include<stdlib.h>5#defineN106typedefstructss7{charnum[10];8ints;9}STU;10fun(STUa[],STU*s)11{1213}14voidmain()15{16FILE*wf;17STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m18inti;19system("CLS");20printf("*****Theoriginaldata*****\n");21for(i=0;i<N;i++)22printf("No=%sMark=%d\n",a[i],num,a[i].s);23fun(a,&m);24printf("****TheResult****\n");25printf("Thelowest:%s,%d\n",m.num,m.s);26/*************************/27wf=fopen("out.dat'*,"w");28fprintf(wf,"%s,%d",m.num,m.s);29fclose(wf);30/*************************/
參考答案
1.D本題可以寫成:a+a+(a-(a*a)),所以*的優(yōu)先級最高,其次是-=的,+的優(yōu)先級最低,因此先求a-=a*a=9,表達式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項。
2.B選項A為表達式,因此不正確,選項C中a++本身就是表達式,無需再賦值,選項D中,在強制類型轉換時,類型名應用括號括起來,故選擇8選項。
3.Astrlen函數(shù)計算字符串長度時,遇到結束標識為止,且長度不包括結束標識。本題中的字符串從第1個字符開始,遇到第1個結束標識‘\\0’為止,注意不占字符串長度,所以字符串長度為7。故本題答案為A選項。
4.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。
5.D
6.C解析:該題考查的是實體間的聯(lián)系。多對多聯(lián)系(m:n):如果對于實體集A中的每個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每個實體,實體集A中有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體集B之間是多對多聯(lián)系,記作m:n。一對一聯(lián)系(1:1):如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之有聯(lián)系,反之亦然,則稱實體集A與實體集B之間是一對一聯(lián)系,記作1:1。一對多聯(lián)系(1:n):如果對于實體集A中每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B之間是一對多聯(lián)系,記作1:n。那么根據(jù)題意可知是多對一聯(lián)系。所以選項C是正確的。
7.D
8.Cfprintf函數(shù)將內容寫入硬盤的文件,fputs函數(shù)將字符串寫入文件,最終文件的內容為abc28。故本題答案為C選項。
9.A結構體變量中的成員可以是簡單變量、數(shù)組、指針變量或者結構體變量,選項A正確;不同結構體成員名可以相同,選項B錯誤;結構體定義時,其成員的數(shù)據(jù)類型不能是本結構體類型,選項C錯誤;結構體定義時,類型不同的成員項之間使用分號隔開,選項D錯誤。本題答案為A選項。
10.D由題目中線性鏈表的定義可知,要將q和r所指的結點交換前后位置,只要使q指向r的后一個結點,P指向r結點,r指向q結點即可。而在選項D中,r->next=q,這時r指向的節(jié)點為q;p->next=r,這時P指向的節(jié)點為r;q->next:r->next,因為r節(jié)點已經指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。
11.B棧是先進后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
12.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)
13.A
14.BT為結構體類型名,可以用來定義結構體變量。故本題答案為B選項。
15.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結論可知,輸出結果不同的為D選項。
16.B本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時的結束標志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。
17.B
18.Adefault語句在switch語句中可以省略,所以B選項錯誤;switch語句中并非每個case后都需要使用break語句,所以C選項錯誤;break語句還可以用于for等循環(huán)結構中,所以D選項錯誤。故本題答案為A選項。
19.D本題考查的是如何對二維數(shù)組進行賦值。選項A)中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B)中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式而不可以省略第二個方括號中的常量表達式:選項c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D)中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。
20.C程序定義一個字符數(shù)組b和一個字符變量k。for循環(huán)通過循環(huán)變量k,遍歷數(shù)組b中的各個字符,通過if語句判斷當前下標為k的字符的ASCII值與字符'm'的ASCII值的大小,ASCII值小于‘m’的ASCII值的字符改成大寫字母(b[k]=b[k]-'a'+'A'),然后輸出b[k]。在字符串“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所以程序輸出:HAppyCHrIstmAs。本題答案為C選項。
21.k*kk*k解析:本題考查的知識點是scarf()函數(shù)和printf()函數(shù)的用法。scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第;個空位于printf()函數(shù)的第二個參數(shù)處,所以應該填*K。
22.從定義到本源文件結束從定義到本源文件結束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結束。
23.1919解析:二叉樹具有如下性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。根據(jù)題意,度為2的節(jié)點為18個,那么,葉子結點就應當是19個。
24.*n=j*n=j解析:本題題干信息是能整除x且不是偶數(shù)的所有整數(shù)之和。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),*n=j;語句是記錄能夠符合題意的各個整數(shù)的各數(shù)。
25.x==0
26.驅動模塊驅動模塊解析:在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊(樁模塊)。其中,驅動模塊相當于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結果。承接模塊通常用于代替被測試模塊調用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
27.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
28.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。
29.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
30.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
31.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結果為12,具體分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
32.7979解析:因為在調用子函數(shù)時進行的是數(shù)值傳遞,調用子函數(shù)并不能改變實參的值,所以經過調用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。
33.-4-4解析:因為n=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。
34.在進行單元測試時,要用一些輔助模塊去模擬與被測模塊相聯(lián)系的其他模塊,即為被測模塊設計和搭建驅動模塊和樁模塊。其中,驅動模塊相當于被測模塊的主程序,它接收測試數(shù)據(jù),并傳給被測模塊,輸出實際測試結果;而樁模塊是模擬其他被調用模塊,不必將子模塊的所有功能帶入。\r\n\r\n
35.b[0][0]=1b[0][1]=2b[0][2]=3
36.本題主要考查for循環(huán)語句。for循環(huán)的增量表達式為逗號表達式,相當于k+=2;,即每次循環(huán)后k增加2。第一次循環(huán)時,k=2,因此輸出##2;第二次循環(huán)時k=4,輸出##4。此后k=6,不滿足循環(huán)條件。\r\n\r\n
37.246
38.驅動模塊驅動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調用或驅動,同時被測試模塊還要去調用其他模塊,前者稱為驅動模塊,后者稱為承接模塊。其中驅動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產生的結果;承接模塊的作用是代替被測模塊,調用其他模塊。
39.概念(或概念級)概念(或概念級)
40.a=2b=1a=2,b=1解析:本題考查了switch結構的內容。C語言中,程序執(zhí)行完一個case標號的內容后,如果沒有break語句,控制結構會轉移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內部switch結構后,繼續(xù)執(zhí)行了外部switch結構的case2:分支,最后a和b的值分別為2和1。
41.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實現(xiàn)數(shù)據(jù)元素的前后件關系。
42.C解析:C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個字符數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出,所以把整型數(shù)據(jù)賦給字符型變量,直接用c=97即可,所以選項C)正確。由于題目要求選出正確的語句,選項A)少分號,不能構成語句,因此錯誤。B)、D)是將一個字符串賦給一個字符變量,所以錯誤。
43.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結構由外模式、模式和內模式組成。外模式也稱子模式或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結構,是用戶看到的數(shù)據(jù)視圖。模式也稱邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結構和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。內模式也稱存儲模式或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內的存儲介質上的表示,即對數(shù)據(jù)的物理結構和存取方法的描述。根據(jù)上述介紹可知,數(shù)據(jù)庫系統(tǒng)中用戶所見到的數(shù)據(jù)模式為外模式。因此,本題的正確答案是B。
44.D解析:本題主要考查的是scanf()函數(shù)的輸入原理。scanf()函數(shù)執(zhí)行時,先從鍵盤緩沖區(qū)中讀取用戶輸入的數(shù)據(jù),若緩沖區(qū)為空或輸入數(shù)據(jù)少于所需數(shù)據(jù),則暫停程序等待用戶的輸入,直到用戶敲入回車,scanf()將繼續(xù)到鍵盤緩沖區(qū)中讀取輸入,如此反復直到滿足scanf()函數(shù)所需數(shù)據(jù),程序才繼續(xù)執(zhí)行下面的語句,而scanf()沒有取完的數(shù)據(jù)仍然會保存在鍵盤緩沖區(qū)內,到程序結束時還沒取完就會被釋放掉,不會影響其他的程序運行。另外,scanf()函數(shù)將取到的數(shù)據(jù)匹配給第2個及其后面的指針參數(shù)所指的內存地址中去,而不檢查該參數(shù)的類型是否匹配。所以在本題中考生不要被指針ptr的定義所迷惑,它所做的只不過是臨時保存一下a+i的值,然后送到scanf()函數(shù)中去。題目首先定義了一個二維數(shù)組a[3][2]并用{0}初始化之,因為當所賦初值少于所定義數(shù)組的元素個數(shù)時,將自動給后面的元素樸以初值0,所以數(shù)組a[3][2]中所有的元素都被初始化為0了。在主程序的第一個for循環(huán)體中有三條語句,該循環(huán)體會被執(zhí)行兩次,每次執(zhí)行時i的值分別為0和1。第1條語句讓ptr的值分別為a+0(即元素a[0])[0])的地址)和a+1(即元素a[1][0]的地址);第2條語句是一條輸入語句,它每次接受一個十進制整數(shù)存入到ptr所指的內存地址中,題目要求輸入的數(shù)據(jù)為“123<回車>”,所以兩次scanf()函數(shù)的調用使a[0][0]和a[1][0]分別被賦為1和2。笫3條語句讓ptr自增1在這里沒有起到任何作用,因為每次進入循環(huán)體ptr都會被重新賦值。最后,程序用一個兩重循環(huán)按行列輸出二維數(shù)組a中的所有元素。所以,選項B符合題意。
45.C
46.A解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用。用static來聲明—個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調用第—個fun,其兩個實參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結束返回15。第二次調用fun時,由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。
47.C
48.C解析:選項A)char*a;*a=“china”應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。
49.B解析:選項B)正確,預處理命令行之前都有一個“#”符號。C語言提供三種預處理:宏替換,文件包含,條件編譯。
50.A解析:程序中使用了兩層for循環(huán),外層循環(huán)的作用是控制人數(shù),循環(huán)一次是求一個人的成績和,然后除以4得到平均成績。每個人的成績總和一開始時都必須清0,否則就會出現(xiàn)后面人的總成績越來越大。“sum=0.0”;應在外層循環(huán)中。選項A正確。
51.C解析:①C語言中的賦值號“=”是—個運算符;②賦值語句是由賦值表達式加上一個分號構成。賦值表達式的左側不能為常量或表達式。
52.A解析:本題中的while((*p2=*p1)!='\\0')語句首先進行賦值*p2=*p1,即把p1所指存儲單元的字符逐一復制到p2所指存儲單元中,然后判斷p1所指單元內容是否為'\\0',若判斷條件成立,則指針p1和p2依次指向下一個字符,繼續(xù)執(zhí)行循環(huán)體語句,否則循環(huán)終止。
53.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項C)能將大寫字符c的ASCII代碼轉換為小寫字符c的ASCⅡ代碼;選項A)和C)左側的表達式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項D)中應該是加上'a',而不是減去'a'。
54.C【解析】在鏈表中因為除了存放數(shù)據(jù)元素之外,還要存放指針,所以鏈表花費的存儲空間要比順序表還要多,在插入和刪除數(shù)據(jù)元素時,只需要移動相應的記錄指針即可,在鏈表中,數(shù)據(jù)的物理結構與邏輯結構不一定相同,因為是靠指針來實現(xiàn)對數(shù)據(jù)的指定的,所以不能進行隨機存取。
55.A解析:本題中定義了3個指向整型的指針變量p、q、w,并讓P指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整型變量指針的定義可知,可以給整型指針指向的變量賦一個常數(shù)值(表達式);可以給指針變量賦一個同種類型的指針變量(或地址值);選項A因為q不指向任何變量,給一個空指針指向的單元賦值是錯誤的。
56.C解析:在n個結點的單向鏈表(無表頭結點)中,每個結點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。
57.A解析:白箱(盒)測試是根據(jù)對程序內部邏輯結構的分析來選取測試用例的。白箱(盒)測試用例的設計準則有:語句覆蓋、分支覆蓋、條件覆蓋和組合條件覆蓋。分支覆蓋通過足夠多的測試用例,使程序中的每個分支至少通過一次。分支覆蓋準則比語句覆蓋準則嚴密一些,選項A正確;條件覆蓋通過執(zhí)行足夠多的測試用例,使每個判定中的每個條件都能取到兩種不同的結果(“真”與“假”)。雖然條件覆蓋要比分支覆蓋優(yōu)越,但、并不能完全滿足分支覆蓋,選項B錯誤;組合條件覆蓋要求通過足夠多的測試用例,使每個判定中各條件的各種可能組合至少出現(xiàn)一次,它既能滿足分支覆蓋準則,也能滿足條件覆蓋準則,但也不是完全測試,選項C錯誤。
58.A解析:在C語言中,字符串的長度是其首字符到NULL(不含)字符的總字符個數(shù)。本題定義字符數(shù)組str的同時,對第7個元素,由系統(tǒng)自動添加上“\\0”,故字符串的長度為6。
59.A解析:本題考核的知識點是邏輯運算符的運用。由于單目運算符優(yōu)先級高于“&&”和“‖”、運算,所以先計算!a、!b和!c分別為“假”、“假”、“真”,然后是&&運算和“‖”運算,原表達式就等價于“假”&&“假”‖“真”又由于“&&”的優(yōu)先級高于“‖”運算符,所以先計算“假”&&“假”,還是為假,最后是“假”‖,“真”為真。因此最后d被賦值為1,故最后輸出為1。所以,4個選項中A為所選。
60.D
61.D
62.B
\n第一個循環(huán)的作用是把從0~9的數(shù)賦
\n給a數(shù)組;第二個循環(huán)的作用是把
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心電監(jiān)護的理論知識
- 年度綜合部個人工作總結
- 中考數(shù)學高頻考點專項練習:專題13 考點28 特殊三角形 (3)及答案
- 護理安全及風險管理課件
- 2025年私募股權投資項目合作計劃書
- 心血管科入科教育
- 初中考高中的知識點總結
- 2025屆湖北省鄂東南省級示范高中教育教學改革聯(lián)盟學校高三下第一次測試化學試題含解析
- 工程項目的安全管理
- 2025屆廣東省江門市普通高中高三壓軸卷化學試卷含解析
- 2023年江蘇省中考語文現(xiàn)代文閱讀之記敘文閱讀9篇
- 員工積分制管理實施方案細則
- 水利水電樞紐工程畢業(yè)設計
- 指南針英文介紹
- 社區(qū)康復學期末考試附有答案
- Reprimo-SDC2-TCF4基因甲基化檢測試劑盒(PCR-熒光探針法)(CSZ2100221)
- 壓縮天然氣加氣機檢定規(guī)程
- 湖南省建設工程竣工驗收備案表
- 畢業(yè)設計(論文)-錘片式秸稈粉碎機設計
- 手術室穿脫手術衣小講課
- 硫酸安全技術使用說明書
評論
0/150
提交評論