![2022年山西省太原市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第1頁](http://file4.renrendoc.com/view/441f49801351ec8a5a48a1d6faa47a61/441f49801351ec8a5a48a1d6faa47a611.gif)
![2022年山西省太原市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第2頁](http://file4.renrendoc.com/view/441f49801351ec8a5a48a1d6faa47a61/441f49801351ec8a5a48a1d6faa47a612.gif)
![2022年山西省太原市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第3頁](http://file4.renrendoc.com/view/441f49801351ec8a5a48a1d6faa47a61/441f49801351ec8a5a48a1d6faa47a613.gif)
![2022年山西省太原市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第4頁](http://file4.renrendoc.com/view/441f49801351ec8a5a48a1d6faa47a61/441f49801351ec8a5a48a1d6faa47a614.gif)
![2022年山西省太原市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)_第5頁](http://file4.renrendoc.com/view/441f49801351ec8a5a48a1d6faa47a61/441f49801351ec8a5a48a1d6faa47a615.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2022年山西省太原市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.算法分析的兩個主要方面是()。
A.空間復(fù)雜性和時間復(fù)雜性B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性
2.若以“a+”方式打開一個已存在的文件,則下列敘述正確的是()。
A.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作
B.文件打開時,原有文件內(nèi)容不被刪除,只能進行讀操作
C.文件打開時,原有文件內(nèi)容被刪除,只能進行寫操作
D.以上三種說法都不正確
3.有以下語句,則對a數(shù)組元素的引用不正確的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.A.a[p-a]
B.*(&a[i])
C.p[i]
D.*(*(a+i))
4.若有運算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()
A.%、sizeof、>、<<、=
B.sizeof、%、>、=、<<
C.sizeof、<<、>、%、=
D.sizeof、%、<<、>、=
5.對于n個結(jié)點的單向鏈表(無表頭結(jié)點),需要指針單元的個數(shù)至少為______。
A.n-1B.nC.n+1D.2n
6.下面關(guān)于串的的敘述中,哪一個是不正確的()。
A.串是字符的有限序列
B.空串是由空格構(gòu)成的串
C.模式匹配是串的一種重要運算
D.串既可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯?/p>
7.c源程序中不能表示的數(shù)制是()。
A.二進制B.八進制C.十進制D.十六進制
8.
9.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
10.
11.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。
A.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
12.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
13.
14.下面屬于黑盒測試方法的是()。
A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋
15.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值
D.當(dāng)在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
16.在C語言中,函數(shù)返回值的類型最終取決于()。
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達(dá)式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型
D.函數(shù)定義時形參的類型
17.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
18.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i
19.作為信息處理熱點技術(shù)之一的“多媒體技術(shù)”中的媒體,強調(diào)的是()。
A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
20.為非法的字符串常量()。A.“case”B.“”C.”056”D.‘123’
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。
intf(inta[],intn)
{
if(n>=1)
returnf(a,n-1)+a[n-1];
else
return0;
}
main()
{
intaa[5]={1,2,3,4,5},s;
s=f(aa,5);
printf("%d\n",s);
}
22.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f=【】;
returnm;
}
main()
{printf("m=%d\n",【】);}
23.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細(xì)設(shè)計屬于______中的一個階段。
24.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。
25.若輸入字符串:abcde↓,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
26.下面的程序能求a:ab.c文件中最長行和它的位置。
#include<stdio.h>
main()
{intlin,i,j=0,k=0;
charc;
FILE*fp;
fp=(【】("a:ab.c","r");
rewind(fp);
while(fgetc(fp)!=EOF)
i=1;
【】
{i++;
j++;
if(i>=k){k=i;【】;}
}
printf("\n%d\t%d\n",k,lin);
【】;
}
27.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
28.以下程序?qū)?shù)組a的4個元素和數(shù)組b的6個元素寫到名為letter.dat的二進制文件中,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
chara[4]="1234",b[6]="abcdef";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
29.有以下程序:
#include<stdio.h>
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
30.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
31.以下程序運行后的輸出結(jié)果是【】。
main()
{inti,n[]=10,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
32.已知head指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結(jié)點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在下劃線內(nèi)填入正確內(nèi)容。
{intdata;structlink*next;}
main()
{structlink*head;
┆
sum(head);
┆}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
33.輸出若干學(xué)生3門課程的成績。
#include<stdio.h>
【】
structstudent
{intnum;
floatscore[3];
}
main()
{inti=0,n;
floata[3];
【】*ptr[200];
printf("請輸入學(xué)生學(xué)號和3門課成績,學(xué)號為0表示數(shù)據(jù)輸入結(jié)束\n");
do
{ptr[i]=(structstudent*)malloc(sizeof(structstudent));
scanf("%d%f%f%f",&ptr[i]->num,&a[O],&a[1],&a[2]);
ptr[i]->score[O]=a[O];
ptr[i]->score[1]=a[1];
ptr[i]->score[2]=a[2];
if(【】)break;
i++;
}while(1);
n=i-1;
【】;
for(i=O;i<=n;i++)
printf("%-6d%.1f%.1f%.1f\n",ptr[i]->num,ptr[i]->score[0],
ptr[i]->score[1],ptr[i]->score[2]);}
34.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
35.當(dāng)運行以下程序時,輸入abcd,程序的輸出結(jié)果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
36.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
37.在樹形結(jié)構(gòu)中,樹根結(jié)點沒有______。
38.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
39.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。
40.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
elseprintf("%d,%d\n",b,a);}
三、1.選擇題(20題)41.在下列敘述中,錯誤的是()。
A.C語言中,二維數(shù)組或多維數(shù)組是按行存放的
B.賦值表達(dá)式b[1][2]=a[2][3]是正確的
C.chara[1];a[0]='A'與inta[1];a[0]='A'等價
D.數(shù)組名后的方括號內(nèi)可以為常量表達(dá)式,也可以為變量
42.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
43.下列程序的輸出結(jié)果是______。unionun{inta[3];longb;charc[6];}un1,*p;main(){p=&un1;p->a[0]=0x37;p->a[1]=0x38;p->a[2]=0x39;printf("%c\n",p->c[4]);}
A.39B.9C.38D.8
44.以下所列的各函數(shù)首部中,正確的是______。
A.voidplay(vara:Integer,varb:Integer)
B.voidplay(inta,b)
C.voidplay(inta,intb)
D.Subplay(aasinteger,basinteger)
45.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
46.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
47.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點有且僅有一個前件和后件
D.線性表可以是空表
48.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則運算后,n的值為______。
A.0B.1C.2D.3
49.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
50.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
51.下列敘述中正確的是______。
A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方
B.花括號“{”和“}”只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的—部分
52.下列程序的運行結(jié)果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.angC.programD.有語法錯
53.以下程序的結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5;b=7fun();printf("%d%d\n",a,b);}
A.100200B.57C.200100D.75
54.下面程序的輸出結(jié)果是()main(){inti,x=023;printf("%d\n",--x);}
A.17B.18C.23D.24
55.下列說法正確的是()。
A.在C程序中,main()函數(shù)必須位于程序的最前面
B.在C程序中,一條語句只能寫一行而不能寫多行
C.C程序是以行為基本單位的
D.C語言本身沒有輸入輸出語句
56.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
57.以下程序的輸出結(jié)果是______。main(){intx=05;charz='a';printf("%d\n",(x&1)&&(z<'z'));}
A.0B.1C.2D.3
58.某二叉樹中有n個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)為()
A.n+1B.n-1C.2nD.n/2
59.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
60.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為A.32B.31C.16D.15
四、選擇題(20題)61.若某二叉樹中的所有結(jié)點值均大于其左子樹上的所有結(jié)點值,且小于右子樹上的所有結(jié)點值,則該二叉樹遍歷序列中有序的是()。
A.前序序列B.中序序列C.后序序列D.以上說法均可以
62.
63.
64.有以下程序:
程序運行后的輸出結(jié)果是()。
A.7,4B.4,10C.8,8D.10,10
65.
66.以下四個程序中,完全正確的是()。
67.有以下程序(注:字符a的ASCIl碼值為97)}程序運行后的輸出結(jié)果是()。
A.789B.abcC.7890D.979899
68.
69.表達(dá)式'5'-'1'的值是()。A.A.整數(shù)4B.字符4C.表達(dá)式不合法D.字符6
70.
71.有以下程序:
程序的運行結(jié)果是()。
A.0B.1C.2D.3
72.以下函數(shù)返回a所指數(shù)組中最小的值所在的下標(biāo)值:fun(int*a,intn){inti,j=0,P;p=j;for(i=j;i<n;i++)if(a[i]<a[j])____return(p);}在下劃線處應(yīng)填入的是()。A.i=PB.a[p]=a[i]C.p=jD.p=i
73.
74.軟件(程序)調(diào)試的任務(wù)是()。
A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現(xiàn)程序中的錯誤C.發(fā)現(xiàn)并改正程序中的所有錯誤D.確定程序中錯誤的性質(zhì)
75.HTTP協(xié)議的GET請求方法可以獲取()類型的數(shù)據(jù)。
A.HTML文檔B.圖片C.視頻D.以上都可以
76.
77.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,0B.0,1C.0,0D.1,1
78.閱讀以下程序及對程序功能的描述,其中正確的描述是
#include<stdio.h>
main()
{
FILE*in,*out;
charch,infile[10],outfile[10];
printf("Entertheinfilename:\n");
scanf("%s",infile);
printf("Entertheoutfilename:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{
printf("cannotopeninfile\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannotopenoutfile\n");
exit(0);
}
while(!feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個磁盤文件合二為一的功能
C.程序完成將一個磁盤文件復(fù)制到另一個磁盤文件中
D.程序完成將兩個磁盤文件合并后在屏幕上輸出
79.有以下程序:
intfun()
{staticints=0;
s+=1;
returns;
}
main(intargc,char*argv[])
{intn,i=0;
while(argv[1][i]!=’\0’)
{n=fun();i++;}
printf("%d\n",n*argc);
}
假設(shè)程序經(jīng)編譯、鏈接后生成可執(zhí)行文件exam.exe,若鍵入以下命令:exam123<回車>,則運行結(jié)果為()。
A.6B.8C.3D.4
80.
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進行排序。
例如,排序前的數(shù)據(jù)為:1132-5214
則排序后的數(shù)據(jù)為:-52111432
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*號都不刪除。形參m給出了字符串的長度,形參h給出了字符串中前*號的個數(shù),形參e給出了字符串中最后*號的個數(shù)。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A
2.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。
3.D
4.D解析:主要考查運算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。
5.C解析:在n個結(jié)點的單向鏈表(無表頭結(jié)點)中,每個結(jié)點都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。
6.B
7.AA。【解析】C語言源程序不能表示八進制,在C語言中,所有的數(shù)值型常量都帶有符號,所以整型數(shù)量只區(qū)別整型和長整型兩種形式,整型常量和長整型常量均可用十進制、二進制、十六進制3種形式表示,故A不正確。
8.D
9.B
10.B
11.C解析:結(jié)構(gòu)化程序設(shè)計是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,與具體的語句結(jié)構(gòu)無關(guān)。Goto語句的濫用會導(dǎo)致程序的可讀性降低。三種基本結(jié)構(gòu)構(gòu)成的程序依然可以解決大規(guī)模的問題,只是不利于復(fù)用。
12.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。
13.A
14.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗證。
15.C指針變量的值只能是存儲單元地址,而不能是一個整數(shù),故選項C錯誤。
16.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。
17.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
18.B本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。
19.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強調(diào)的是感覺媒體。
20.D
21.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。
22.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:調(diào)用fun()函數(shù)計算m的值,在主函數(shù)中的空格處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個形參n,為每次參加計算的值的個數(shù),故在主函數(shù)中的空格處應(yīng)該填fun(10),回到fun()函數(shù),函數(shù)用到了一個for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函數(shù)的空格處應(yīng)該填使f改變符號的語句,故應(yīng)填-f或f*-1或-1*f或f*(-1)或(-1)*f。
23.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼和測試)、軟件維護期(即運行維護階段)。
24.封裝封裝
25.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。
26.fopenwhile(fgetc(fp)!='\n')lin=jclose(fp)fopen\r\nwhile(fgetc(fp)!='\\n')\r\nlin=j\r\nclose(fp)
27.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關(guān)知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
28.letter.dat6*sizeof(char)letter.dat\r\n6*sizeof(char)解析:本題主要考查函數(shù)fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size個字節(jié)輸出到fp所指文件中。
29.00解析:本題是計算5*4*3*2*1*0的值,結(jié)果為0。
30.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
31.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
32.structlink*headstructlink*head解析:因為本題中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點逐個節(jié)點的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有個指向結(jié)構(gòu)體變量的指針依次指向各個節(jié)點,即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。注意:結(jié)構(gòu)體變量和共用體變量之間的區(qū)別為聯(lián)系。
33.#include<alloc.h>structstudentptr[i]->num==Ofree(ptr[i])#include<alloc.h>\r\nstructstudent\r\nptr[i]->num==O\r\nfree(ptr[i])
34.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
35.a*b*c*d*a*b*c*d*解析:程序中的變量i用于存放字符串str的長度,執(zhí)行while語句,通過分析可知,字符串第2*i項的值可由第i項的值得到;第2*i-1項直接賦值為。號,i減1,如此反復(fù)直到不滿足i>0的條件時,輸出運行后的字符串。
36.21
37.前件前件
38.55解析:分析程序,當(dāng)a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。
39.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。
40.101,0解析:與運算兩邊的語句必須同時為真時,結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時,a,b的值已經(jīng)發(fā)生了變化。
41.D解析:本題考查數(shù)組的4個知識點:①C語言中,二維數(shù)組或多維數(shù)組元素排列的順序是按行存放;②不同數(shù)組的元素之間可以相互賦值;③字符型數(shù)組中存放的是字符,int型數(shù)組中存放的是字符對應(yīng)的ASCII碼值,雖然在計算機內(nèi)部字符常量都是作為蹩型量來處理的,其對應(yīng)的整數(shù)值就是ASCII碼值,但兩者并不完全等價;④數(shù)組名后的方括號內(nèi)可以為常量,也可以為常量表達(dá)式,但不可以為變量。
42.D解析:函數(shù)scanf的地址列表應(yīng)由變量的地址組成。選項A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲單元中只能存放地址值,不能存放整型數(shù)據(jù)。選項B中*p相當(dāng)于變量n,所以不能正確讀入數(shù)據(jù);選項C不正確,因為n為變量名;選項D中p為指針變量,并且值為變量n的地址,所以選項D能夠正確讀入數(shù)據(jù)。D為所選。
43.B解析:共用體中的成員共同占用一段內(nèi)存單元,其中整型數(shù)組a中的數(shù)據(jù)存儲形式以及和字符數(shù)組的對應(yīng)關(guān)系如圖所示。
44.C解析:除選項C項外,其他各項都沒有按照C語言中的函數(shù)定義規(guī)則定義函數(shù)。
45.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
46.D[答案]D
[考點]軟件工程基礎(chǔ)
[評析]
面向?qū)ο?對象+類+繼承+通過消息的通信
對象:一組屬性及其上的操作的封裝體
類:一組有相同屬性和操作的對象的集合
繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復(fù)用
消息:對象間通信的手段
D是結(jié)構(gòu)化程序設(shè)計或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計語言兼容這種方式,但不是其特征,故最佳選項為D
47.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。
48.A解析:C語言中比較表式的運算結(jié)果為0或1。0代表不成立,1表示成立。
49.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。
50.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。
51.A解析:C程序中注釋部分用“/*”和“*/”括起來,可以出現(xiàn)在程序中任何合適的地方;花括號“{”和“}”不僅可作為函數(shù)體的定界符,也可作為復(fù)合語句的定界符;構(gòu)成C程序的基本單位是函數(shù);—個語句必須在最后出現(xiàn)分號,分號是C語句中不可缺少的部分。
52.A解析:本題考查指針的用法,if(*(p1+k)==*(p2+k))語句的功能是判斷兩個數(shù)組中的字符是否相同,如果相同則輸出。
53.B解析:全程變量是可以在子函數(shù)中對其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。
54.B
55.D解析:本題涉及C語言最基本的4個知識點:①C語言程序是由函數(shù)構(gòu)成的,C程序的基本單位是函數(shù);②每個C程序有且只有一個主函數(shù)main(),且程序必須從main()函數(shù)開始執(zhí)行,但是main()函數(shù)可以放在程序中的任意位置;③C語言的書寫格式是自由的,一行可以寫多條語句,一條語句也可以寫在不同的行上;④C語言本身不提供輸入輸出語句,可以通過函數(shù)來實現(xiàn)輸入和輸出操作。
56.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因為“&”和“*”兩個運算符的優(yōu)先級相同,按自右而左的方向結(jié)合,所以*&j運算選進行&j運算,得j的地址,再進行*運算,取所得地址里面的值,故*&j與j等價。
57.B解析:“&”是位運算符表示按位與運算,“&&”是邏輯運算符當(dāng)其兩邊的表達(dá)式都為真時返回真值。關(guān)系表達(dá)式(x&1)&&(z<'z'),(x&1)為真,(z<'z')也為真,兩者相與,自然也為真,以整型輸出,則輸出1。
58.A解析:本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 暑期教師培訓(xùn)學(xué)習(xí)計劃
- 2025年度家庭裝修石材加工及安裝服務(wù)合同范本
- 專業(yè)性合同范本
- 辦公裝飾合同范本
- 買賣攤位合同范本
- 2025年度生態(tài)農(nóng)業(yè)項目土地流轉(zhuǎn)合作合同
- 公司家具購買合同范本
- 會議營銷分成合同范本
- 關(guān)于解除兼職合同范本
- 法律盡職調(diào)查報告模板
- 胸腔積液護理查房-范本模板
- 水土保持方案中沉沙池的布設(shè)技術(shù)
- 安全生產(chǎn)技術(shù)規(guī)范 第25部分:城鎮(zhèn)天然氣經(jīng)營企業(yè)DB50-T 867.25-2021
- 現(xiàn)代企業(yè)管理 (全套完整課件)
- 走進本土項目化設(shè)計-讀《PBL項目化學(xué)習(xí)設(shè)計》有感
- 《網(wǎng)店運營與管理》整本書電子教案全套教學(xué)教案
- 教師信息技術(shù)能力提升培訓(xùn)課件希沃的課件
- 高端公寓住宅項目營銷策劃方案(項目定位 發(fā)展建議)
- 執(zhí)業(yè)獸醫(yī)師聘用協(xié)議(合同)書
- 第1本書出體旅程journeys out of the body精教版2003版
- 2022年肝動脈化療栓塞術(shù)(TACE)
評論
0/150
提交評論