版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年湖北省孝感市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(12題)1.檢查軟件產品是否符合需求定義的過程稱為______。
A.確認測試B.集成測試C.驗證測試D.驗收測試
2.若長度為n的線性表采用順序存儲結構,在其第i個位置插入一個新元素的算法的時間復雜度為()。
A.O(0)B.O(1)C.O(n)D.O(n2)
3.設有宏定義“#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整除
4.設有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時,若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
5.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
6.有以下程序(strcat函數用于連接兩個字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的運行結果是()。
A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
7.將數組a[0,1,…,m-1]作為循環(huán)隊列SQ的存儲空間,f為隊頭指示,r為隊尾指示,則執(zhí)行出隊操作的語句為()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)
8.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序運行后的輸出結果是()。A.6B.10C.11D.15
9.
10.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結果是
A.A.331
B.41
C.2
D.1
11.C語言的基本單位是()。
A.函數B.過程C.子程序D.子函數
12.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內容為hello,則運行以上程序后,文件filea.txt中的內容為()。
A.abcloB.abcC.helloabcD.abchello
二、2.填空題(12題)13.執(zhí)行以下程序后的輸出結果是()。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",A);
14.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次放到該文
件中,用井作為結束輸入的標志。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenameoffile\n");
gets(fname);
if((fp=【】)==NULL)
{printf("Cannotope\n");exit(O);}
printf("Enterdata\n");
while((ch=getchar())!='#')
fputc(【】,fp);
fclose(fp);
}
15.下列程序的字符串中各單詞之間有一個空格,則程序的輸出結果是【】。
#include<stdio.h>
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
16.在計算機領域中,通常用英文單詞“Byte'’表示【】。
17.用鏈表表示線性表的突出優(yōu)點是______。
18.下列二維數組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價的是
19.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。
20.以下程序的輸出結果是______。
main()
{chars[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
21.以下定義的結構體類型擬包含兩個成員,其中成員變量info用來存入整形數據;成員變量link是指向自身結構體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
22.將代數式轉換成程序設計中的表達式為【】。
23.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
24.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
三、3.程序設計題(10題)25.請編寫函數fun(),該函數的功能是:移動字符串中的內容,移動的規(guī)則是把第1到第m個字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
例如,字符串中原有的內容為ABCDEFGHIJK,m的值為3,移動后,字符串中的內容應該是DEFGHIJKABC。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<string.h>
#defineN80
voidfun(char*w,intm)
{
}
main()
{
chara[N]="ABCDEFGHIJK";
intm;
printf("Theoriginastring:\n");
puts(a);
printf("\n\nEnterm:");
scanf("%d",&m);
fun(a,m);
printf("\nThestringaftermoving:\n");
puts(a);
printf("\n\n");
}
26.請編寫一個函數voidfun(char*ss),其功能是:將字符串ss中所有下標為偶數位置上的字母轉化為大寫(若該位置上不是字母,則不轉換)。
例如,若輸入abc4Efg,則應輸出AbC4EfG。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(char*ss)
{
}
main()
{
chartt[51];
clrscr();
printf("Pleaseenterancharacterstring
within50characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
%s",tt);
fun(tt);
printf("\nbecomes\n\%s",tt);
}
27.函數fun的功能是:將a、b中的兩個兩位正整數合并形成一個新的整數放在c中。合并的方式是:將a中的十位和個位數依次放在變量c的十位和千位上,b中的十位和個位數依次放在變量c的個位和百位上。
例如,當a=45,b=12。調用該函數后,c=5241。
注意:部分源程序存在文件.PROGl.C中。數據文件IN.DAT中的數據不得修改。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
28.請編寫一個函數unsignedfun(unsignedw),w是一個大于10的無符號整數,若w是n(n≥2)位的整數,則函數求出w的后n-1位的數作為函數值返回。
例如:w值為5923,則函數返回923;若w值為923,則函數返回23。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
unsignedfun(unsignedw)
{
}
main()
{
unsignedx;
clrscr();
printf("Enteraunsignedinteger
number:");
scanf("%u",&x);
printf("Theoriginaldatais:%u\n",x);
if(x<10)
printf("Dataerror!");
else
printf("Theresult:%u\n",fun(x));
}
29.學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun(),該函數的功能是:把高于等于平均分的學生數據放在b所指的數組中,低于平均分的學生數據放在c所指的數組中,高于等于平均分的學生人數通過形參n傳回,低于平均分的學生人數通過形參m傳回,平均分通過函數值返回。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN12
typedefstruct
{charnum[10];
doubleS;
}STREC;
doublefun(STREC*a,STREC*b,STREC*C,int*n,int*m)
{
}
main()
{
STRECs[N]={{“GA05”,65},{“GA03”,86},
{“GA02”,76},{“GA04”,95},{“GA01”,93},
{“GA07”,78},{“GA08”,68},{“GA06”,88},
{“GA09”,60},{“GAll”,54},{“GAl2”,56},
{“GAl0”,98}};
STRECh[N],l[N],t;
FILE*out;
inti,j,m,n;
doubleave;
ave=fun(S,h,l,&n,&m);
printf("The%dstudentdatawhichishigherthan%7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s%4.lf\n",h[i].num,
h[i].s);
printf("\n");
printf("The%dStudentdatawhichiSlowerthan%7.3f:\n",m,ave);
for(i=0;i<m;i++)
printf("%s%4.1f\n",l[i].num,l[i].s);
printf("\n");
ut=fopen("out26.dat","w");
fprintf(out,"%d\n%7.3f\n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+1;i<n;j++)
if(h[i].s<h[j].s)
{t=h[i];h[i]=h[i];h[j]=t;}
/*分數從現到低排列*/
for(i=0;i<n;i++)
fprintf(out,“%4.1f\n",h[i].s);
fprintf(out,"%d\n%7.3f\n",m,ave);
for(i=0;i<m-1;i++)
for(j=i+1;i<m;j++)
if(l[i].s<l[j].s)
{t=l[i];l[i]=l[j];l[j]=t;}
/*分數從高到低排列*/
for(i=0;i<m;i++)
fprintf(out,"%4.1f\n",l[i].s);
fclose(out);
}
30.函數fun的功能是:將a、b中的兩個兩位正整數合并形成一個新的整數放在c中。合并的方式是:將a中的十位和個位數依次放在變量c的千位和十位上,b中的十位和個位數依次放在變量c的個位和百位上。
例如,當a=45,b=12。調用該函數后,c=4251。
注意:部分源程序存在文件PROGl.C中。數據文件IN.DAT中的數據不得修改。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
31.學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun(),它的功能是:按分數的高低排列學生的記錄,高分在前。
注意:部分源程序給出如下.
請勿改動主函數main和其他函數中的任何內容,僅在函數fum的花括號中填入所編寫的若啡:語句。
試題程序:
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STRECa[])
{
}
main()
{
STRECsIN]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",91},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},
{"GA014",91},{"GA011",66},{"GA017",64},
{"GA018",64},{"GA016",72}};
inti;
FILE*out;
fun(s);
printf("Thedataaftersorted:In");
for(i=0;i<N;i++)
{if((i)%4=-0)
/*每行輸出4個學生記錄*/
printf("\n");
printf("%s%4d",s[i].num,s[i].s);
}
printf("\n");
out=fopen("out16.dat","w");
for(i=0;i<N;i++);
{if((i)%4==0&&i)
fprintf(out,"\n");
fprintf(out,"%4d",s[i].s);
}
fprintf(out,"\n");
fclose(out);
}
32.請編寫函數fun(),它的功能是計算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2
s作為函數值返回。
在C語言中可調用log(n)函數求In(n)。log函數的引用說明是doublelog(doublex)。
例如,若m的值為15,則fun()函數值為723.570801。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(intm)
{
}
main()
{
clrscr();
printf("%f\n",fun(15));
}
33.已知學生的記錄由學號和學習成績構成,N名學生的數據已存入a結構體數組中。請編寫函數fun(),該函數的功能是;找出成績最高的學生記錄,通過形參返回主函數(規(guī)定只有一個最高分)。已給出函數的首部,請完成該函數。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#defineN10
typedefstructss/*定義結構體*/
{charnum[10];
ints;
}STU;
fun(STUa[],STU*s)
{
}
main()
{
STUa[N]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80},{"A10",71}},m;
inti;
clrscr();
printf("*****Theoriginaldata*****");
for(i=0;i<N;i++)
printf("No=%sMark=%d\n",a[i].hum,
a[i].s);
fun(a,&m);
printf("*****THERESULT*****\n");
printf("Thetop:%s,%d\n",m.num,m.s);
}
34.編寫函數intfun(intlim,intaa[MAX]),該函數的功能是求出小于或等于lim的所有素數并放在aa數組中,該函數返回所求出的素數的個數。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineMAX100
intfun(intlim,intse[MAX])
{
}
main()
{
intlimit,i,sum;
intaa[MAX];
clrscr();
printf("輸入一個整數");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)/*每行輸出10個數*/
printf("\n");
printf("%5d",aa[i]);
}
}
四、單選題(0題)35.有以下程序: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,
五、單選題(0題)36.
六、單選題(0題)37.當調用函數時,實參是一個數組名,則向函數傳送的是______。
A.數組的長度B.數組的首地址C.數組每一個元素的地址D.數組每個元素中的值
參考答案
1.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現與接口有關的問題。集成測試可以發(fā)現概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數據進行測試,測試數據通過用戶接口輸入。
(4)系統(tǒng)測試是將已經通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現問題定義時犯下的錯誤。
2.C
3.B邏輯與運算兩邊運算對象的值都為真時,結果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項。
4.Ascanf函數中,在格式字符前加入一個整數可以指定輸入數據所占的寬度,所以賦值時會將87賦給變量a,把6.0賦給float型變量b。故本題答案為A選項。
5.C解析:選項A),B)考查了多分支結構的用法,選項A)中的程序段執(zhí)行時,c<a,b<a條件均不成立,故執(zhí)行else后的語句,x值為3;選項B)中a<3條件成立,執(zhí)行x=3;而選項C),D)是單分支結構的用法,選項C)中程序段執(zhí)行時,a<3條件成立,x=3,但條件a<2也成立,此時執(zhí)行x=2,下一個條件不成立,不再執(zhí)行其后的語句。
6.C字符數組a中包含兩個‘\\0’。遇到第1個‘\\0’時就表示字符串a結束。字符串處理函數strcat(字符數組a,字符數組b),功能是連接兩個字符串,把字符串b連接到字符串a的后面,結果放在字符數組a中。連接時將字符串a后的‘\\0’取消,只在新串最后保留一個‘\\0’。本題相當于將“ABCD”和“IJK”連接。故本題答案為C選項。
7.B
8.C本題考查數組的使用。本題定義了兩個數組,注意數組的下標是從0開始的,進行第1次for循環(huán):當i=0時,b[0]為數組b中第l個元素,結果為0,那么a[0]也是數組a中第l個元素,結果為1,所以S的值為1。第2次循環(huán):i此時自加為l,b[1]為數組的第2個元素,值為2,所以可求出a[2](數組中的第3個元素)的值為3,s=s+3,所以S的值為4。進入第3次for循環(huán),依此類推,第3次for循環(huán)結束時s的值為6。第4次for循環(huán),s的值變?yōu)閘0。第5次for循環(huán)時,此時i的值為4,s的值變?yōu)閘l,i=5不符合題意,所以跳出循環(huán),輸出結果,所以本題答案為C。
9.A
10.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導條件為“真”時執(zhí)行的操作;由else引導條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進行x++操作。x的初始值為1,輸出結果為1。
11.AA?!窘馕觥緾語言是函數式的語言。它的基本組成單位是函數,在C語言中任何程序都是由一個或者多個函數組成的。
12.B執(zhí)行“fprintf(f,“abc”);”后,f文件原有內容被“abc”覆蓋。故本題答案為B選項。
13.a=14a=14解析:在“逗號表達式(表達式1,表達式2)”中,其運算方法是先求表達式1的值,然后求表達式2的值,整個逗號表達式的值是表達式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運算結果為14。
14.fopen(fname:"w")
15.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的長度,結果為13,然后除以2結果為6。strcpy函數是把字符串“esshe”拷貝到str1后的第6個字符后面,也就是說,拷貝后的結果是“Howdoesshe”。
16.字節(jié)字節(jié)
17.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數據元素的缺點,引入了鏈式存儲結構。鏈表表示線性表的突出優(yōu)點是插入和刪除操作方便,不必移動數據元素,執(zhí)行效率高。
18.B
19.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數最多是26-1=32。注意區(qū)別“二叉樹的結點最多數”和“某一層的結點最多數”。前者的計算是深度為m的二叉樹最多有2m-1個結點。
20.abcabc解析:字符串的結束標記'\\0',當輸出一個存放在字符數組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數據。本題給字符數組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。
21.structnode*structnode*解析:本題中的結構類型名為structnode,所以空白處應填:structnode*。即定義一個指向自身的結構體指針。
22.SQRT(x2+y2)/(a+b)
23.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
24.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結束。故該空格處應該填132。
25.voidfun(char*wintm){intij;chart;for(i=1;i<=m;i++)/*進行m次的循環(huán)左移*/{t=w[0];for(j=1/w[j]!='\0';j++)/*從第2個字符開始以后的每個字符都依次前移一個字符*/w[j-1]=w[j];w[j-1]=t;/*將第1個字符放到最后一個字符中*/}}voidfun(char*w,intm)\r\n{\r\ninti,j;\r\nchart;\r\nfor(i=1;i<=m;i++)/*進行m次的循環(huán)左移*/\r\n{t=w[0];\r\nfor(j=1/w[j]!='\\0';j++)/*從第2個字符開始以后的每個字符都依次前移一個字符*/\r\nw[j-1]=w[j];\r\nw[j-1]=t;/*將第1個字符放到最后一個字符中*/\r\n}\r\n}解析:我們在學習C語言的時候,應該廣泛地應用到循環(huán)的方法,本題應采用“循環(huán)左移”的算法。即從第2個字符開始以后的每個字符都依次前移一個字符,而原來的第1個字符放在串中的最后一個字符。當要平移m個字符時,則要進行m次的循環(huán)左移。內嵌的循環(huán)的作用是完成從第2個字符開始以后的每個字符都依次前移一個字符,w[j-1]=t的作用是將第1個字符放到最后一個字符中。
26.voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++){if(i%2==0&&ss[i]>='a'&&ss[i]<='z')/*將ss所指字符串中所有下標為偶數位置的字母轉換成大寫*/ss[i]==ss[i]-32;}/*大寫字母比相應的小寫字母的ASCII碼值小32*/}voidfun(char*ss)\r\n{inti;\r\nfor(i=0;ss[i]!='\\0';i++){\r\nif(i%2==0&&ss[i]>='a'&&ss[i]<='z')/*將ss所指字符串中所有下標為偶數位置的字母轉換成大寫*/\r\nss[i]==ss[i]-32;}/*大寫字母比相應的小寫字母的ASCII碼值小32*/\r\n}解析:從C語言的學習中我們知道,只要將小寫字母減去32則轉換成大寫字母,將大寫字母加上32則轉成小寫字母,該程序使用if語句實現該功能轉換的。
27.
解析:該程序功能是將兩個正整數合并形成一個整數的題型。本題類型首先要考慮整數的位數分離,然后要進行位數合成。也就是先將數字的各位數拆開,改變排列順序后,再組合成新的數字。
28.unsignedfun(unsignedw){if(w>=10000)returnw%10000;/*求出n位整數w的后n-1位的數*/if(w>=1000)returnw%1000;if(w>=100)returnw%100;if(w>=10)returnw%10;}unsignedfun(unsignedw)\r\n{\r\nif(w>=10000)\r\nreturnw%10000;/*求出n位整數w的后n-1位的數*/\r\nif(w>=1000)\r\nreturnw%1000;\r\nif(w>=100)\r\nreturnw%100;\r\nif(w>=10)\r\nreturnw%10;\r\n}解析:我們首先應該明白無符號整數的定義形式,若它大于10000(5位)時,將10000對它求余則結果為后4位;當它大于1000(4位)時,將1000對它求余則結果為后3位,花此類推。特別注意這里所有if()的順序不能顛倒。
29.doublefun(STREC*aSTREC*bSTREC*Cint*nint*m){inti;doubleav=0.0;*n=0;*m=0;for(i=0;i<N;i++)av=av+a[i].S;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){b[*n]=a[i];/*將高于等于平均分的學生存從所指存儲單元中并統(tǒng)計人數*/*n=*n+l;}else{c[*m]=a[i];/*將低于平均分的學生存入c所指存儲單元中并統(tǒng)計人數*/*m=*m+1;}returnav;/*返回平均分*/}doublefun(STREC\u3000*a,STREC*b,STREC*C,int*n,int*m)\r\n{\r\ninti;\r\ndoubleav=0.0;\r\n*n=0;\r\n*m=0;\r\nfor(i=0;i<N;i++)\r\nav=av+a[i].S;\r\nav=av/N;/*求平均值*/\r\nfor(i=0;i<N;i++)\r\nif(av<=a[i].s)\r\n{\r\nb[*n]=a[i];/*將高于等于平均分的學生存從所指存儲單元中,并統(tǒng)計人數*/\r\n*n=*n+l;\r\n}\r\nelse\r\n{\r\nc[*m]=a[i];/*將低于平均分的學生存入c所指存儲單元中,并統(tǒng)計人數*/\r\n*m=*m+1;\r\n}\r\nreturnav;/*返回平均分*/\r\n}解析:本題中第1個循環(huán)的作用求出所有分數的總和,只有進行了av=av/N后才得到平均值(我們在前面的程序中碰到過類似問題)。第2個循環(huán)的作用是將高于等于平均分的學生存/kb所指存儲單元中,將低于平均分的學生存入c所指存儲單元中。同一結構體變量之間可以互相賦值。
本程序中直接用*n,*m來分別表示b,c的下標,注意開始時要給*n,*m賦0,且使用時不能少*號。因為單獨的n,m是一個指針變量,而我們要用的是它所指向的那個存儲單元中的值。
30.*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);解析:該程序功能是將正整數a、b合并形成一個新整數。本題類型首先要考慮整數的位數分離,然后要進行位數合成。也就是先將數字的各位數拆開,改變排列順序后,再組合成新的數字。
31.intfun(STRECa[]){intij;STRECt;for(i=1;i<N;i++)/*用冒泡法進行排序進行N-1次比較*/for(j=0;j<N-1;j++)/*在每一次比較中要進行N-1次兩兩比較*/if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;}/*按分數的高低排列學生的記錄高分在前*/}intfun(STRECa[])\r\n{\r\ninti,j;\r\nSTRECt;\r\nfor(i=1;i<N;i++)/*用冒泡法進行排序,進行N-1次比較*/\r\nfor(j=0;j<N-1;j++)/*在每一次比較中要進行N-1次兩兩比較*/\r\nif(a[j].s<a[j+1].s)\r\n{t=a[j];a[j]=a[j+1];a[j+1]=t;}/*按分數的高低排列學生的記錄,高分在前*/\r\n}解析:冒泡法算法思路:如果有N個數,則要進行N-1次比較,在每一次比較中要進行N-1次兩兩比較(這種算法較好理解但不是最精的)。所謂兩兩比較就是從頭到尾依次將相鄰兩個數進行比較并將其中大的數放在前或在后(若要求從小到大排序,則大的數要放在后。反之則對調),即兩兩比較后這兩個數要形成題中所要求的順序。由于總是從頭到尾進行比較,所以第1次比較結束后,最大(或最小)數肯定在最后,第2次比較結束后,次最大(或次最小)數肯定在倒數的第2個數,依次類推,所以進行第一次比較時必須比較到最后一個數,而進行第2次比較時只要比較到倒數的第2個數即可,所以進行第i次比較時只需比較N-i次即可(這種算法較難理解,但它是最好的)。
選擇法算法思路:如果有N個數則從頭到倒數的第2個數一個一個往后走動,每走動1個數總是將這個數與其后的所有數進行比較并找出它們的最大(或最小)數,找出最大(或最小)數后再將所得的最大(或最小)數與該數進行交換,交換后再走到下一個數依次交換到結束。此外,選擇法還可用如下思路:如果有N個數,則從頭到倒數的第2個數—個一個往后走動,每走動一個數總是將這個數與其后的所有數進行兩兩比較,在比較時按順序將進行比較的這兩個數排序(即交換)。
插入法算法思路:先對頭兩個數進行排序。然后把第3個數插入到前兩個數中,插入后前3個數依然有序;再把第4個數插入到前3個數中,插入后前4個數依然有序;依次插完所有的數。具體執(zhí)行方式(假設從小到大排序):從第2個數開始往后一個一個走動直到最后。每走到1個數總是將該數(先將其存到1個臨時變量中)與其前面的數進行比較(比較的順序總是從后往前進行),在比較時只要發(fā)現該數比被比較的數小,就將被比較的數往后移1位,然后該數還要冉與前1個數進行比較,亢到發(fā)現該數比被比較的數大或己比較到頭(即第1個數的前面),并將該數存入當前被比較數的后1位(存儲空間)。
如果有整型一維數組a其有N個元素,要求將其按從小到大排序。注意元素下標是從0始的。
冒泡法:
for(i=1;i<N;i++)
for(j=0;N-1;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=a[j];}
選擇法
for(i=0i<N-1;i++)
{p=i;
for(ji+1;j<N;j++)
if(a[p]>a[j])p=j;
if{p!=i)
t=a[i];a[i]=a[p];a[p]=t;
}
插入法
for{i=1;i<N;i++}
{t=a[i];
for{j=i-1;a[j]>t&&j>=0;j--)
a[j+1]=a[j];
a[j+1]=t;
}
32.doublefun(intm){inti;doubles=1.0;for(i=1;i<=m;i++)s=s-log(i);/*計算s=l-In(1)-In(2)-In(3)-…-In(m)*/return(s*s);/*對s求平方并返回*/}doublefun(intm)\r\n{\r\n\u3000inti;\r\ndoubles=1.0;\r\nfor(i=1;i<=m;i++)\r\ns=s-log(i);/*計算s=l-In(1)-In(2)-In(3)-…-In(m)*/\r\nreturn(s*s);/*對s求平方并返回*/\r\n}解析:首先,題目要求計算1依次減去1到M的對數,可用從1到M的循環(huán),每次循環(huán)都減一個數的對數。該題需要注意,log()函數的形式參數應浩如煙海double型變量,用于循環(huán)的基數變量為整數,需要進行強制轉換。最后在返回的時求平方。
33.fun(STUa[]STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*找出成績最高的學生記錄*/\r\nif(s->s<a[i].s)\r\n*s==a[i];\r\n}fun(STUa[],STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*找出成績最高的學生記錄*/\r\nif(s->s<a[i].s)\r\n*s==a[i];\r\n}解析:本題的流程是這樣的,先使s指向第1個學生,我們的題干目的是找出分數最高的學生,所以if語句的條件是s->s<a[i].s。此外,在做本題時,我們應該熟練掌握“指向運算符”和“成員運算符”的相關知識。題中“s->s”也可換成“(*s).s”。
34.intfun(intlimintaa[MAX]){intijk=0;for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數*/{for(j=2;j<i;j++)if(i%j==0)break;if(j>=i)aa[k++]=i;;/*將求出的素數放入數組aa中*/}returnk;/*返回所求出的素數的個數*/}intfun(intlim,intaa[MAX])\r\n{\r\ninti,j,k=0;\r\nfor(i=2;i<=lim;i++)/*求出小于或等于lim的全部素數*/\r\n{for(j=2;j<i;j++)\r\nif(i%j==0)break;\r\nif(j>=i)\r\naa[k++]=i;;/*將求出的素數放入數組aa中*/\r\n}\r\nreturnk;/*返回所求出的素數的個數*/\r\n}解析:在做這道題時,我們只需掌握素數的基本算法就可以了,一般表示素數的方法如下:
for(j=2;j<i;j++)
if(i%j==0)break;
if(j>=i)
35.C解析:本題考核的知識點是程序中算法的基本分析。sort()函數作用是將數組aa中的下標為偶數的元素按大到小排序.主函數中首先定義了一個長度為10的數組并賦值,然后調用sort()函數,將數組aa中奇數個元素的值按大到小排序,因此執(zhí)行完該函數后,數組中奇數個元素的值為9,7、5、3和1,故主函數中最后通過一個for循環(huán)輸出數組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個選項中選項C符合題意。
36.B
37.B解析:當調用函數時,實參是一個數組名,則向函數傳送的是數組的首地址,函數中的形參可定義成以下三種形式:
①形參定義成數組;
②形參定義成可變長數組:
③形參定義為指針變量。2021年湖北省孝感市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(12題)1.檢查軟件產品是否符合需求定義的過程稱為______。
A.確認測試B.集成測試C.驗證測試D.驗收測試
2.若長度為n的線性表采用順序存儲結構,在其第i個位置插入一個新元素的算法的時間復雜度為()。
A.O(0)B.O(1)C.O(n)D.O(n2)
3.設有宏定義“#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整除
4.設有定義“inta;floatb;”,執(zhí)行“scanf(“%2d%f”,&a,&b);”語句時,若從鍵盤輸入876543.0并按<Enter>鍵,則a和b的值分別是()。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
5.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
6.有以下程序(strcat函數用于連接兩個字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的運行結果是()。
A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
7.將數組a[0,1,…,m-1]作為循環(huán)隊列SQ的存儲空間,f為隊頭指示,r為隊尾指示,則執(zhí)行出隊操作的語句為()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)
8.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序運行后的輸出結果是()。A.6B.10C.11D.15
9.
10.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結果是
A.A.331
B.41
C.2
D.1
11.C語言的基本單位是()。
A.函數B.過程C.子程序D.子函數
12.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內容為hello,則運行以上程序后,文件filea.txt中的內容為()。
A.abcloB.abcC.helloabcD.abchello
二、2.填空題(12題)13.執(zhí)行以下程序后的輸出結果是()。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",A);
14.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符依次放到該文
件中,用井作為結束輸入的標志。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenameoffile\n");
gets(fname);
if((fp=【】)==NULL)
{printf("Cannotope\n");exit(O);}
printf("Enterdata\n");
while((ch=getchar())!='#')
fputc(【】,fp);
fclose(fp);
}
15.下列程序的字符串中各單詞之間有一個空格,則程序的輸出結果是【】。
#include<stdio.h>
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
16.在計算機領域中,通常用英文單詞“Byte'’表示【】。
17.用鏈表表示線性表的突出優(yōu)點是______。
18.下列二維數組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價的是
19.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。
20.以下程序的輸出結果是______。
main()
{chars[]="abcdef";
s[3]='\0';
printf("%s\n",s);
}
21.以下定義的結構體類型擬包含兩個成員,其中成員變量info用來存入整形數據;成員變量link是指向自身結構體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
22.將代數式轉換成程序設計中的表達式為【】。
23.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
24.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
三、3.程序設計題(10題)25.請編寫函數fun(),該函數的功能是:移動字符串中的內容,移動的規(guī)則是把第1到第m個字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
例如,字符串中原有的內容為ABCDEFGHIJK,m的值為3,移動后,字符串中的內容應該是DEFGHIJKABC。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<string.h>
#defineN80
voidfun(char*w,intm)
{
}
main()
{
chara[N]="ABCDEFGHIJK";
intm;
printf("Theoriginastring:\n");
puts(a);
printf("\n\nEnterm:");
scanf("%d",&m);
fun(a,m);
printf("\nThestringaftermoving:\n");
puts(a);
printf("\n\n");
}
26.請編寫一個函數voidfun(char*ss),其功能是:將字符串ss中所有下標為偶數位置上的字母轉化為大寫(若該位置上不是字母,則不轉換)。
例如,若輸入abc4Efg,則應輸出AbC4EfG。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(char*ss)
{
}
main()
{
chartt[51];
clrscr();
printf("Pleaseenterancharacterstring
within50characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n
%s",tt);
fun(tt);
printf("\nbecomes\n\%s",tt);
}
27.函數fun的功能是:將a、b中的兩個兩位正整數合并形成一個新的整數放在c中。合并的方式是:將a中的十位和個位數依次放在變量c的十位和千位上,b中的十位和個位數依次放在變量c的個位和百位上。
例如,當a=45,b=12。調用該函數后,c=5241。
注意:部分源程序存在文件.PROGl.C中。數據文件IN.DAT中的數據不得修改。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
28.請編寫一個函數unsignedfun(unsignedw),w是一個大于10的無符號整數,若w是n(n≥2)位的整數,則函數求出w的后n-1位的數作為函數值返回。
例如:w值為5923,則函數返回923;若w值為923,則函數返回23。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
unsignedfun(unsignedw)
{
}
main()
{
unsignedx;
clrscr();
printf("Enteraunsignedinteger
number:");
scanf("%u",&x);
printf("Theoriginaldatais:%u\n",x);
if(x<10)
printf("Dataerror!");
else
printf("Theresult:%u\n",fun(x));
}
29.學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun(),該函數的功能是:把高于等于平均分的學生數據放在b所指的數組中,低于平均分的學生數據放在c所指的數組中,高于等于平均分的學生人數通過形參n傳回,低于平均分的學生人數通過形參m傳回,平均分通過函數值返回。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN12
typedefstruct
{charnum[10];
doubleS;
}STREC;
doublefun(STREC*a,STREC*b,STREC*C,int*n,int*m)
{
}
main()
{
STRECs[N]={{“GA05”,65},{“GA03”,86},
{“GA02”,76},{“GA04”,95},{“GA01”,93},
{“GA07”,78},{“GA08”,68},{“GA06”,88},
{“GA09”,60},{“GAll”,54},{“GAl2”,56},
{“GAl0”,98}};
STRECh[N],l[N],t;
FILE*out;
inti,j,m,n;
doubleave;
ave=fun(S,h,l,&n,&m);
printf("The%dstudentdatawhichishigherthan%7.3f:\n",n,ave);
for(i=0;i<n;i++)
printf("%s%4.lf\n",h[i].num,
h[i].s);
printf("\n");
printf("The%dStudentdatawhichiSlowerthan%7.3f:\n",m,ave);
for(i=0;i<m;i++)
printf("%s%4.1f\n",l[i].num,l[i].s);
printf("\n");
ut=fopen("out26.dat","w");
fprintf(out,"%d\n%7.3f\n",n,ave);
for(i=0;i<n-1;i++)
for(j=i+1;i<n;j++)
if(h[i].s<h[j].s)
{t=h[i];h[i]=h[i];h[j]=t;}
/*分數從現到低排列*/
for(i=0;i<n;i++)
fprintf(out,“%4.1f\n",h[i].s);
fprintf(out,"%d\n%7.3f\n",m,ave);
for(i=0;i<m-1;i++)
for(j=i+1;i<m;j++)
if(l[i].s<l[j].s)
{t=l[i];l[i]=l[j];l[j]=t;}
/*分數從高到低排列*/
for(i=0;i<m;i++)
fprintf(out,"%4.1f\n",l[i].s);
fclose(out);
}
30.函數fun的功能是:將a、b中的兩個兩位正整數合并形成一個新的整數放在c中。合并的方式是:將a中的十位和個位數依次放在變量c的千位和十位上,b中的十位和個位數依次放在變量c的個位和百位上。
例如,當a=45,b=12。調用該函數后,c=4251。
注意:部分源程序存在文件PROGl.C中。數據文件IN.DAT中的數據不得修改。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
31.學生的記錄由學號和成績組成,N名學生的數據已在主函數中放入結構體數組s中,請編寫函數fun(),它的功能是:按分數的高低排列學生的記錄,高分在前。
注意:部分源程序給出如下.
請勿改動主函數main和其他函數中的任何內容,僅在函數fum的花括號中填入所編寫的若啡:語句。
試題程序:
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STRECa[])
{
}
main()
{
STRECsIN]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",91},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},
{"GA014",91},{"GA011",66},{"GA017",64},
{"GA018",64},{"GA016",72}};
inti;
FILE*out;
fun(s);
printf("Thedataaftersorted:In");
for(i=0;i<N;i++)
{if((i)%4=-0)
/*每行輸出4個學生記錄*/
printf("\n");
printf("%s%4d",s[i].num,s[i].s);
}
printf("\n");
out=fopen("out16.dat","w");
for(i=0;i<N;i++);
{if((i)%4==0&&i)
fprintf(out,"\n");
fprintf(out,"%4d",s[i].s);
}
fprintf(out,"\n");
fclose(out);
}
32.請編寫函數fun(),它的功能是計算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2
s作為函數值返回。
在C語言中可調用log(n)函數求In(n)。log函數的引用說明是doublelog(doublex)。
例如,若m的值為15,則fun()函數值為723.570801。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(intm)
{
}
main()
{
clrscr();
printf("%f\n",fun(15));
}
33.已知學生的記錄由學號和學習成績構成,N名學生的數據已存入a結構體數組中。請編寫函數fun(),該函數的功能是;找出成績最高的學生記錄,通過形參返回主函數(規(guī)定只有一個最高分)。已給出函數的首部,請完成該函數。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#defineN10
typedefstructss/*定義結構體*/
{charnum[10];
ints;
}STU;
fun(STUa[],STU*s)
{
}
main()
{
STUa[N]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80},{"A10",71}},m;
inti;
clrscr();
printf("*****Theoriginaldata*****");
for(i=0;i<N;i++)
printf("No=%sMark=%d\n",a[i].hum,
a[i].s);
fun(a,&m);
printf("*****THERESULT*****\n");
printf("Thetop:%s,%d\n",m.num,m.s);
}
34.編寫函數intfun(intlim,intaa[MAX]),該函數的功能是求出小于或等于lim的所有素數并放在aa數組中,該函數返回所求出的素數的個數。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineMAX100
intfun(intlim,intse[MAX])
{
}
main()
{
intlimit,i,sum;
intaa[MAX];
clrscr();
printf("輸入一個整數");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i<sum;i++)
{
if(i%10==0&&i!=0)/*每行輸出10個數*/
printf("\n");
printf("%5d",aa[i]);
}
}
四、單選題(0題)35.有以下程序: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,
五、單選題(0題)36.
六、單選題(0題)37.當調用函數時,實參是一個數組名,則向函數傳送的是______。
A.數組的長度B.數組的首地址C.數組每一個元素的地址D.數組每個元素中的值
參考答案
1.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現與接口有關的問題。集成測試可以發(fā)現概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數據進行測試,測試數據通過用戶接口輸入。
(4)系統(tǒng)測試是將已經通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現問題定義時犯下的錯誤。
2.C
3.B邏輯與運算兩邊運算對象的值都為真時,結果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項。
4.Ascanf函數中,在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧現代服務職業(yè)技術學院《生物學教學藝術與教學設計》2023-2024學年第一學期期末試卷
- 蘭州工商學院《半導體器件制造及測試技術》2023-2024學年第一學期期末試卷
- 吉林藝術學院《結構穩(wěn)定》2023-2024學年第一學期期末試卷
- 湖南稅務高等??茖W校《風景區(qū)規(guī)劃與設計》2023-2024學年第一學期期末試卷
- 湖南電子科技職業(yè)學院《城市修建性詳細規(guī)劃》2023-2024學年第一學期期末試卷
- 黑龍江生態(tài)工程職業(yè)學院《園林植物生物技術》2023-2024學年第一學期期末試卷
- 重慶藝術工程職業(yè)學院《影視動畫制作》2023-2024學年第一學期期末試卷
- 重慶機電職業(yè)技術大學《機器學習與模式識別II(雙語)》2023-2024學年第一學期期末試卷
- 中央司法警官學院《建筑空間生活》2023-2024學年第一學期期末試卷
- 浙江農林大學《社區(qū)管理與服務》2023-2024學年第一學期期末試卷
- 派克比例閥中文說明書
- 高一學生心理素質描述【6篇】
- 給男友的道歉信10000字(十二篇)
- 2020年高級統(tǒng)計實務與案例分析真題及答案
- 全面質量管理(TQM)基本知識
- 練字本方格模板
- 產品供貨質量保障措施
- 電力電纜高頻局放試驗報告
- JJG 517-2016出租汽車計價器
- JJF 1914-2021金相顯微鏡校準規(guī)范
- GB/T 32045-2015節(jié)能量測量和驗證實施指南
評論
0/150
提交評論