




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年四川省瀘州市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.設有6個結點的無向圖,該圖至少應有()條邊才能確保是一個連通圖。
A.5B.6C.7D.8
2.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序運行后的輸出結果是()。
A.1B.2C.4D.死循環
3.下面描述中,不屬于軟件危機表現的是()A.軟件過程不規范B.軟件開發生產率低C.軟件質量難以控制D.軟件成本不斷提高
4.以下選項中合法的實型常數是()。
A.5E2.0B.E-3C.2E0D.1.3E
5.
6.下面排序算法中,初始數據集的排列順序對算法的性能無影響的是()
A.堆排序B.插入排序C.冒泡排序D.快速排序
7.若以下選項中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
8.若有定義“doublex,y,*px,*py;”,執行了“px=&x;py=&y;”之后,正確的輸入語句是()。
A.scanf(“%lf%le”,px,py);
B.scanf(“%f%f”,&x,&y);
C.scanf(“%f%f”,x,y);
D.scanf(“%lf%lf”,x,y);
9.算法分析的兩個主要方面是()。
A.空間復雜性和時間復雜性B.正確性和簡明性C.可讀性和文檔性D.數據復雜性和程序復雜性
10.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是A.O(n)
B.O(n2)
C.O(log2n)
D.O(nlog2n)
11.有以下程序:#includeintfun(intx,inty){if(x!=y)return(x+y)/2);elsereturn(x);}Main(){Inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c));}A.6B.3C.8D.12
12.下列描述中正確的是______。A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產品的生產率問題
C.軟件工程的主要思想是強調在軟件開發過程中需要應用工程化原則
D.軟件工程只是解決軟件開發中的技術問題
13.
14.設有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()
A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;
15.設有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調用“IsDIV(m,5)&&IsDIV(m,7)”為真時所要表達的是()。
A.判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余1
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
16.設有以下函數:
voidfun(intn,char*$s){……}
則下面對函數指針的定義和賦值均正確的是A.void(*pf)();pf=fun;
B.void*Pf();pf=fun;
C.void*pf();*pf=fun;
D.void(*pf)(int,char);nf=&fun;
17.算法分析的目的是()。
A.找出數據結構的合理性B.研究算法中的輸入和輸出的關系C.分析算法的效率以求改進D.分析算法的易懂性和文檔性
18.下列選項中,不是一個算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報
19.下列程序的輸出結果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
20.有以下程序:#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,j;for(i=0;i<=3;i++){a[i]=*P;p++;}printf("oAd\n",a[2]);}程序運行后的輸出結果是()。A.30B.40C.10D.20
二、2.填空題(20題)21.下列程序執行后輸出的結果是【】。
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);
22.實現算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
23.請在以下程序第一行的下劃線處填寫適當內容,使程序能正確運行。
______(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x.&y);
printf("%lf\n…,max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a=B);}
24.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請填空以實現拷貝。(注:不使用逗號表達式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
25.以下程序的運行結果是【】。
#include<stdio.h>
main()
{inta=1,b=2,c;
c=max(a,b);
printf("maxis%d\n",c);}
max(intx,inty)
{intz;
z=(x>y)?x:y;
return(z);}
26.以下程序的輸出結果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
27.設在主函數中有以下定義和函數調用語句,且fun函數為void類型;請寫出fun函數的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
28.按照邏輯結構分類,數據結構可分為線性結構和非線性結構,二叉樹屬于______。
29.下面程序的運行結果是【】。
#include<stdio.h>
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
30.下列程序執行后輸出的結果是【】。
main()
{intarr[10],i,k=0);
fot(i=0;i<10;i++)art[i]=i;
for(i=1:i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
31.以下fun函數的功能是:累加數組元素中的值,n為數組中元素的個數。累加的和值放入x所指的存儲單元中。補足所缺語句。
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0;k<n;k++)r=【】;
【】=r;
}
32.在Windows環境下,可以將窗口最小化為【】。
33.以下程序輸出的結果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
34.以下程序的功能是:從鍵盤上輸入若干個學生的成績,統計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數結束輸入。
main()
{floatx[1000],sum=0,ave,a;
intn=0,i;
printf("Entermark:\n");scanf("%f",&a);
while(a>=0.0&&n<1000)
{sum+【】;x[n]=【】;
n++;scanf("%f",&a);
}
ave=【】;
printf("Output:\n");
printf('ave=%f\n",ave);
for(i=0;i<n;i++)
if(【】)printf("%t\n",x[i]);
}
35.在結構化分析使用的數據流圖中,使()解釋其中的圖形元素。
36.下列程序段中循環體的執行次數是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
37.在算法正確的前提下,評價一個算法的兩個標準是【】。
38.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
39.以下程序的功能是計算:s=1+12+123+1234+12345。請填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
40.以下程序運行后的輸出結果是【】。
main()
{intx,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;
printf("%d\n",x);
}
三、1.選擇題(20題)41.下列程序的輸出結果是______。#includemain(){charb[30],*chp;strcpy(&b[0],"CH");strcpy(6b[1],"DEF");strcpy(6b[2],"ABC");printf("%s\n",b);}
A.CHDEFB.DEFABCC.CDABCD.CHABC
42.有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x>10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
該程序的輸出結果是
A.0.000000B.0.250000C.0.500000D.1.000000
43.下面關于完全二叉樹的敘述中,錯誤的是______。A.A.除了最后一層外,每一層上的結點數均達到最大值
B.可能缺少若干個左右葉子結點
C.完全二叉樹一般不是滿二叉樹
D.具有結點的完全二叉樹的深度為[log2n]+1
44.下面程序段的運行結果是()。chara[]="abcdefgh";char*p=a;p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
45.下面函數調用語句含有實參的個數為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
46.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序將等待用戶輸入第二個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
47.在C語言中,形參的缺省存儲類是
A.autoB.registerC.staticD.extern
48.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表可以是空表
49.下面程序段的輸出結果是()。#include<stdio.h>main(){floatx=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}
A.1.237000B.輸出格式說明與輸出項不匹配,輸出無定值C.1.236000D.1.24
50.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是
A.data的每個成員起始地址都相同
B.變量data所占內存字節數與成員c所占字節數相等
C.程序段:data.a=5;printf("%f\n",data.c);輸出結果為5.000000
D.data可以作為函數的實參
51.有以下程序floatfl(floatn){returnn*n;}floatf2(floatn){return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,Y2;p1=f1;p2=f2;y1=p2(p1(2.O));t=p1;p1=p2;p2=t;y2=p2(pl(2.0));printf("%3.0f,%3,Of\n",y1,y2);}程序運行后的輸出結果是
A.8,16B.8,8C.16,16D.4,8
52.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
53.對以下程序段的描述,正確的是()。x=-1;do{x=x*x;}while(!x);
A.是死循環B.循環執行兩次C.循環執行一次D.有語法錯誤
54.下列關于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
55.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]=(1,2,3,4,5,6,7,8,9,10),i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結果是______。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2.,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
56.運行下列程序時,若輸入的數據為“1,2,3”,則輸出結果是()。main(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;)printf("%f\n%f\n%f\n",a,b,c);}
A.1
B.1.002.003.003.002.00
C.1
D.3.00000032.00000021.000000
57.下面描述中,符合結構化程序設計風格的是()。
A.使用順序、選擇和重復(循環)3種基本控制結構表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執行效率
D.不使用goto語句
58.有下列程序: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>O&&n<5);}程序運行后的輸出結果是()。
A.235B.0235C.02356D.2356
59.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發現程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
60.下列敘述中,不屬于軟件需求規格說明書的作用的是()
A.便于用戶,開發人員進行理解和交流
B.反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據
C.作為確認測試和驗收的依據
D.便于開發人員進行需求分析
四、選擇題(20題)61.
有以下程序:
viodfun(inta,intb,intc)
{a=456:b=567;c=678;}
main
{intx=10,y=20,z=30;
fun(x,y,z):
printf("%d,%d,%d\n",x,y,z);
}
輸出的結果是()。
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
62.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序運行后的輸出結果是(,)。
A.2,4,8,
B.3,6,9,
C.3,5,7,
D.1,3,5,
63.下列關于線性鏈表的敘述中,正確的是()。
A.各數據結點的存儲空間可以不連續,但它們的存儲順序與邏輯順序必須一致
B.各數據結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續
C.進行插入與刪除時,不需要移動表中的元素
D.以上說法均不正確
64.以下程序運行后的輸出結果是()。
A.1B.2C.4D.8
65.
66.
67.
68.(6)在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發階段是()
A.可行性分析
B.需求分析
C.詳細設計
D.程序編碼
69.有以下定義:
70.
71.
72.下列選項中不屬于結構化程序設計原則的是()。
A.可封裝B.自頂向下C.模塊化D.逐步求精
73.有以下程序程序的運行結果是()。
74.表示關系M<=N<=P的C語言表達式為()。
A.(M<=N.AND(N<=P.
B.(M<=N.&&(N<=P.
C.(M<=N<=P.
D.(M<=N.&(N<=P.
75.設有定義:
則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
76.
77.
有以下程序:
intfun(intn)
{if(n==l)returnl;
elsereturn(n+fun(n一1)):
}
main
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",
x):
}
執行程序時,給變量X輸入10,程序的輸出結果是()。
A.55B.54C.65D.45
78.若有定義:intX=0,*P=&x;,則語句printf(”%d\n”,*P.的輸出結果是()。
A.隨機值B.0C.X的地址D.P的地址
79.有以下程序:
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);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.內類型不一致而出錯
80.下列關于C語言文件的敘述中正確的是()。
A.文件由一系列數據依次排列組成,只能構成二進制文件
B.文件由結構序列組成,可以構成二進制文件或文本文件
C.文件由數據序列組成,可以構成二進制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結果是:“abbdbkw”。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.編寫函數fun,其功能是:求ss所指字符串中指定字符的個數,并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。
注意:部分源程序在文件PROCl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填人你編寫的若干語句。
參考答案
1.A:在一個無向圖G中,若從頂點Vi到頂點Vj有路徑相連,則稱Vi和Vj是連通的。連通圖是指任意兩個結點之間都有一個路徑相連。6個節點的無向圖,至少要5個邊才能確保是任意兩個節點之間都有路徑相連。下圖是一種可能的連接方式:故本題選A。
2.A“--k”是先自減再使用,所以第1次判斷條件即while(4),條件為真輸出k的值,k=4-3,結果為1;第2次判斷條件即while(0),條件為假,結束循環,輸出回車換行符。故本題答案為A選項。
3.A軟件危機主要表現在:軟件需求的增長得不到滿足;軟件開發成本和進度無法控制;軟件質量難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發生產率的提高趕不上硬件的發展和應用需求的增長。所以選擇A。
4.C解析:在C語言中,實數有兩種表示形式:十進制數形式與指數形式。
一般形式的實數:小數形式的實數由整數部分、小數點和小數部分組成(必須要有小數點),
指數形式的小數;指數形式的實數由尾數部分、e(E)和指數部分組成(字母e或E的前后必須要有數字,且其后面的指數必須為整數)。
選項A中,5E2.0中E后面的2.0不是整數;選項B中,E前面沒有數字:選項D中,E后面沒有數字。最終可以判斷選項C正確。
5.B
6.A
7.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數,而選項A中26.8不為整數,故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。
8.A因為x和y都是double型數據,輸入時的格式字符應為%lf,B、C選項錯誤。D選項中的“scanf(“%lf%lf”,x,y);”應為“scanf(“%lf%lf”,&x,&y);”。故本題答案為A選項。
9.A
10.C解析:二分查找法也稱為折半查找法。它的基本思想是:將n個元素分成個數大致相同的兩半,取a[n/2]與欲查找的x作比較,如果x=a[n/2],則找到x,算法終止;如果x<a[n/2],則只要在數組a的左半部繼續搜索x(這里假設數組元素呈升序排列);如果x>a[n/2],則只要在數組a的右半部繼續搜索x。每次余下n/(2i)個元素待比較,當最后剩下一個時,即n/(2i)=1。故n=2i;所以i=log2n。
11.A本題中第一次調用為fun(8,fun(5,6)),因為fun(5,6)返回值為5,所以第二次調用為fun(8,5)=6。所以選擇A)。
12.C\r\n軟件工程是試圖用工程、科學和數學的原理與方法研制、維護計算機軟件的有關技術及管理方法。軟件工程的主要思想是強調在軟件開發工程中需要應用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發成本和進度無法控制、軟件質量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發生產率的提高趕不上硬件的發展和應用需求的增長。軟件項目的管理、軟件產品的生產率、軟件開發中的技術都是軟件工程需要解決的部分問題。因此選項C正確。
13.C
14.C解析:data是—結構體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應該是:p=&data.a。選項A,將a的地址直接賦給了p,而忽略了a為結構體內部的一個成員,而不是一單獨的變量,故選項A不正確;選項B在p=data.a表達式中右邊為一個結構體變量的成員不是地址,而左邊為一指針應該將一地址賦給它,故選項B不正確;選項D表達式*p=data.a是將結構體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項D不正確:4個選項中只有C正確。
15.B邏輯與運算兩邊運算對象的值都為真時,結果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項。
16.A解析:函數指針的定義形式是:數據類型標識符(*指針變量名)()。void(*pf)()定義了一個沒有返回值的函數指針pf,在給函數指針變量賦值時,只需給出函數名而不必給出參數。所以給pf賦值時,只把函數名fun賦給pf即可。所以正確答案為選項A)。
17.C
18.A解析:作為一個算法,一般應該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內做完;(4)擁有足夠的情報。
19.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執行下列的++c。
20.AFor循環結束后,數組a的值并沒有變化,由于數組是由0開始,所以a[2]的值是30。
21.1212解析:本題的第一個for循環用于給數組arr賦初值,第二個for循環用于求和運算。由于第二個for循環初始值為1,而循環條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。
22.空間復雜度和時間復雜度算法的復雜性是指對一個在有限步驟內終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。
23.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數聲明是對所用到的函數的特征進行必要的聲明,編譯系統以函數聲明中給出的信息為依據,對調用表達式進行檢測,以保證調用表達式與函數之間的參數正確傳遞.函數聲明的一般格式為:類型標識符函數名(類型標識符形參,…);這些信息就是函數定義中的第一行的內容。本題中main()函數需要調用max()函數,在main()之前就需要聲明函數max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數,所以,填寫doublemax(或externdoublemax)。
24.s[i++]s[i++]解析:本題中為了能實現字符串的拷貝,需要使字符數組s從頭到尾依次遍歷其所有元素。本題應使用i的自增后置來實現。
25.maxis2maxis2解析:函數通過參數來傳遞數據是單向的,只能由實參傳給形參而不能由形參傳給實參,但是可以通過函數的返回值將函數中的數據帶回。注意:函數的兩種調用方式及函數調用的語法要求。
26.aa解析:'z'的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。
27.
28.非線性結構非線性結構解析:對于一個非空的數據結構,如果同時滿足下列兩個條件,即1)有且只有一個根結點;2)每一個結點最多有一個前件,也最多有一個后件;即為線性結構,而二叉樹的結點可能存在兩個后件,所以是非線性結構。
29.100010100010解析:對于define宏定義語句,系統在編譯前進行如下替換:
i1=1000/s(N)i1=1000/s(10)i1=1000/10*10
i2=1000/f(N))i2=1000/f(10)i2=1000/(10*10)
30.1212解析:本題的第一個for循環用于給數組arr賦初值,第二個for循環用于求和運算。由于第二個for循環初始值為1,而循環條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。
31.r+b[k]或b[k]+r或r+*(b+k)或*(b+k)+r*xr+b[k]或b[k]+r或r+*(b+k)或*(b+k)+r\r\n*x
32.圖標或按鈕圖標或按鈕
33.D
34.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用來存放學生成績總和的,a是輸入的成績,ave存放平均成績,n既是循環變量,又表示學生人數,x[n]保存第n個學生的成績。sum用來累加每個同學的成績,因此有sum+=a;把新輸入的學生成績保存在數組中,因此有x[n]=a;ave是所有同學的平均成績,因此有ave=sum/n;逐個把學生成績和平均成績比較,因此有if(x[i]<ave)。
35.數據字典數據字典解析:數據字典的作用是對數據流圖中出現的披命名的圖形元素進行確切解釋。通常數據字典包含的信心有名稱、別名、何處使用/如何使用、內容描述、補充信息等。
36.33解析:本題考查do…while語句形式:
do循環體
while表達式
首先執行循環體語句,然后檢測循環控制條件表達式的值,若為真,則重復執行循環體語句,否則退出循環。第1次循環:b+=2,b=2,a-=2+b,a=11;第2次循環:b=4,a=5;第3次循環:b=6,a=-3,此時再判斷循環條件不滿足,退出循環。
37.時間復雜度和空間復雜度時間復雜度和空間復雜度
38.概念設計階段(數據庫概念設計階段)概念設計階段(數據庫概念設計階段)
39.t*10或10*tt*10或10*t解析:本題要求累加一系列有規律的數,從輸出結果來看,s保存的是最終結果,而s在循環體中,每次累加一個t,則說明t在5次循環中分別等于1.12、123、1234、12345;而t每次循環等于“填空內容”加上循環變量i,又因為i在5次循環中分別等于1、2、3、4,5,所以t每次循環要加的“填空內容”應分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內容”應是t*10。
40.11解析:因為在條件表達式(a<b)?a:b中,比較表達式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達式中的比較表達式都為真,所以最終x的值等于1。
41.C
42.D解析:本題考查if語句中的一種表達方式,即:if卐lseif叀
該表達式的語句是:
if(表達式1)
語句1
elseif(表達式2)
語句2
elseif(表達式3)
語句3
else
語句4
厖
本題執行elsey=1.0,并且以'%f'輸出。
43.B解析:這里考察完全二叉樹與滿二叉樹的定義及二叉樹的性質。滿二叉樹指除最后一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最后一層外,每一層上的結點數均達到最大值,在最后一層上只缺少右邊的若干子結點(葉子結點)的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二叉樹,而完全二叉樹一般不是滿二叉樹,因此選項C是正確的敘述。選項D即二叉樹性質(5),也是正確的。
44.C解析:p被定義為指針型變量,指向字符數組a的首地址。執行p+=3;指針后移3位,指向d。strcpy(p,'ABCD')將字符串'ABCD'(連同\'\\0\')復制到p所指向的地址單元中,strlen()函數計算p所指向的字符串的長度,返回字符串中字符的個數(不計\'\\0\'),返回值為字符串'ABCD'中字符的個數4。
45.B解析:函數調用的一般形式為:函數名(形參表)若函數無形參,調用形式為:函數名(),當所調用的函數用于求出某個值時,函數的調用可作為表達式出現在允許表達式出現的任何地方,本題中調用語句的參數個數為2個。
46.A解析:函數getchar()的作用是從終端(或系統隱含指定的輸入設備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
47.A解析:本題考核的知識點是定義函數時形參的缺省存儲類。在C語言中,形參的缺省存儲類為auto。
48.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。
49.A
50.D解析:選項A),共用體的每個成員的起始地址都相同;選項B),共用體變量所占的內存長度等于最長的成員的長度;選項C)因為每個成員的起始地址相同,所以整型數5以浮點型輸出時為5.000000;選項D)C語言規定,不能把共用體變量作為函數的參數。
51.A解析:題目一開始定義了兩個函數,f1()實現的是返回參數的平方;f2()實現的是返回參數的2倍。接下來在主函數中定義了三個函數指針p1,p2,t。語句p1=f1;p2=f2;讓指針p1指向函數n(),指針p2指向函數9()。然后調用p2(p1(2.0)),即讓2先平方再乘以2,結果為8并賦給y1。然后語句序列t=p1;p1=p2;p2=t;交換了p1和p2的值,即p1指向f2(),p2指向f1()。再調用p2(p1(2.0)),讓2先乘以2再平方,結果為16賦給y2.最后輸出y1,y2的值為8和16,應該選擇A。
52.D解析:需求分析常用的工具有數據流圖(DFD)、數據字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設計的常用工具,不是需求分析的工具。
53.C解析:do-while語句的執行過程是:首先執行循環體語句,再判斷表達式值的真假。在本題中,表達式的值為假,因此循環體只執行一次。
54.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。棧可以采用順序存儲,也可以采用鏈式存儲。
55.C解析:函數sort的功能是將a[0]、a[2]、a[4]、a[6]和a[8]按照由大到小的次序排序,其他元素值不變。正確答案為C。
56.D解析:本題考查if語句。第1個if語句,實現如果a<b,則交換a、b值的功能;第2個if語句,實現如果a<c,則交換a、c的值的功能;第3個if語句,實現如果b<c,則交換b、c的值的功能。3個if語句結合起來實現的功能就是將a、b、c按從大到小排序。
57.A解析:符合結構化程序設計風格中,應該選擇只有一個入口和一個出口的模塊,故選項B錯誤;首先要保證程序正確,然后才要求提高效率,故選項C錯誤;嚴格控制使用goto語句,必要時可以使用,故選項D錯誤。
58.B解析:因為變量的初始值分別為k=5,n=0,所以程序第1次進入循環時,執行default語句,輸出0,k減1;這時n=0,k=4,程序進行第2次循環,執行case4:這個分支,結果是n=2,k=3,打印出2;這時n=2,k=-3,程序進行第3次循環,執行case3:這個分支,結果是n=3,k=2,打印出3;這時n=3,k=2,程序然后進行第4次循環,執行case2:case4:這個分支,結果是n=5,k=1,打印出5,這時因為n=5不滿足n<5的循環條件,因此退出循環,程序運行結束。所以在屏幕上打印
59.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發現錯誤而執行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發現的錯誤的用例;一個成功的測試是發現了至今尚未發現的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發現程序中的錯誤。本題答案為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東中醫藥高等??茖W?!豆糯膶W論文選題與寫作》2023-2024學年第一學期期末試卷
- 河南工業貿易職業學院《公文寫作》2023-2024學年第一學期期末試卷
- 衡陽科技職業學院《工程造價專業英語》2023-2024學年第一學期期末試卷
- 郴州思科職業學院《土木程施》2023-2024學年第一學期期末試卷
- 上海電子信息職業技術學院《巖土工程施工》2023-2024學年第一學期期末試卷
- 福州黎明職業技術學院《可再生能源轉換原理與技術》2023-2024學年第一學期期末試卷
- 重慶化工職業學院《醫學多媒體技術》2023-2024學年第一學期期末試卷
- 現代農業科技園區廠房短期出租協議
- 永州師范高等??茖W?!锻聊竟こ淌┕ぜ夹g(建工)》2023-2024學年第一學期期末試卷
- 展覽館內展品陳列與維護服務合同
- 建筑工程管理考試模擬題及答案
- 2025年 老年人能力評估師三級考試模擬試卷附答案
- 浙江省“桐浦富興”教研聯盟2024-2025學年高一下學期6月學考模擬化學試卷(含答案)
- 北京市2025學年高二(上)第一次普通高中學業水平合格性考試物理試題(原卷版)
- 2025年浙江省學考歷史總復習模擬卷(二)(原卷版)
- 2025年高考河北卷物理高考真題+解析(參考版)
- 中醫老人保健講座課件
- -2024-2025學年統編版語文二年級下冊 期末復習練習題(含答案)
- 2025至2030中國室內滑雪場行業項目調研及市場前景預測評估報告
- 2025四川綿陽市平武縣興幫農業發展集團有限公司招聘10人筆試參考題庫附帶答案詳解
- 西南林業大學《算法分析與設計》2023-2024學年第二學期期末試卷
評論
0/150
提交評論