




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.已知有如下結構體:structsk{inta;floatb;}data,*p;若有P=&data,則對data的成員a引用正確的是()。A.(*p).data.aB.(*p).a;C.p->data.aD.p.data.a
2.有以下程序:#include<stdio.h>#include<string.h>main(){charv[4][10]={“efg”,“abcd”,“mnopq”,“hijkl”},*p[4],*t;inti,j;for(i=0;i<4;i++)p[i]=v[i];for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=p[j];p[j]=t}for(i=0;i<4;i++) printf(“%s”,p[i]);}程序運行后的輸出結果是()。
A.efgabcdhijklmnopq
B.abcdefghijklmnopq
C.mnopqhijklefgabcd
D.efgabcdmnopqhijkl
3.有兩個關系R和T如下:
則由關系R得到關系T的操作是()。A.選擇B.投影C.交D.并
4.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
5.數據結構主要研究的是數據的邏輯結構、數據的運算和()。A.數據的方法B.數據的存儲結構C.數據的對象D.數據的邏輯存儲
6.設變量已正確定義,則以下能正確計算n!的程序段是______。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
7.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結果是()。
A.10011000B.10001100C.10101000D.10110000
8.有以下定義
#include<stdio.h>
chara[10],*b=a;
不能給a數組輸入字符串的語句是
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);
9.
10.有以下程序
#include<stdio.h>
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序運行后的輸出結果是()。A.1B.2C.4D.8
11.若輸入“abcdef”、“abdef”,以下程序的輸出結果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
12.線性表的順序存儲結構是一種()。
A.隨機存取的存儲結構B.順序存取的存儲結構C.索引存取的存儲結構D.Hash存取的存儲結構
13.下列描述中,不是線性表順序存儲結構特征的是
A.不便于插入和刪除B.需要連續的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系
14.下列對于線性鏈表的描述中正確的是()
A.存儲空間不一定是連續,且各元素的存儲順序是任意的
B.存儲空間不一定是連續,且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續,且前件元素一定存儲在后件元素的前面
D.存儲空間必須連續,且各元素的存儲順序是任意的
15.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時編譯器提示錯誤信息,你認為出錯的語句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;
16.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);
C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);
17.關于指針,以下說法正確的是()。A.可以直接向指針中寫入數據
B.若指針指向變量,則可以向指針所指內存單元寫入數據
C.指針可以指向內存中任何位置,并寫入數據
D.兩個指針可以通過加運算求和,形成一個功能更強大的指針
18.以下不能定義為用戶標識符的是()。
A.scanfB.VoidC.3comD.int
19.以下敘述中不正確的是
A.預處理命令行都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預處理命令行
C.宏替換不占用運行時間,只占編譯時間
D.在以下定義是正確的:#definePI3.1415926;
20.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
二、2.填空題(20題)21.以下程序的運行結果是【】。
#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);
}
22.以下程序的功能是輸入任意整數給n后,輸出n行從大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數5時(注意:n不得大于10),程序運行結果如下:
ABCDE
FCHI
JKL
MN
O
請填空完成該程序。
#include<stdio.h>
main()
inti.j,n;charch='A';
scanf("%d",&n);
if(n<11)
for(i=1;i<=n;i++)
for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
23.請在以下程序第一行的下劃線處填寫適當內容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
24.下面程序的輸出結果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
25.數據庫系統中實現各種數據管理功能的核心軟件稱為【】。
26.已定義charch="$";inti=1,j;執行j=!ch&&i++以后,i的值為()。
27.下面的程序實現的是指針p所指向的地址的n個數中,求出最大的和最小的數據,請填空。
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
28.下列程序的輸出結果是16.00,請填空:
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
29.已知字符A的ACSII碼值為65,以下語句的輸出結果是______。
charch='B';
printf("%c%d\n",ch,ch);
30.以下程序段打開文件后,先利用fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度。請填空。
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
31.下面程序的運行結果是______。
#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);
}
32.若輸入tc,則程序的運行結果為【】。
#include<stdio.h>
main()
{charstr[40];
fscanf(stdin,"%s",str);
fprintf(stdout,"%s\n",str);
}
33.數據結構分為邏輯結構和存儲結構,循環隊列屬于______結構。
34.在軟件測試中,動態測試和靜態測試手段只能發現程序中的錯誤,而不能證明程序中不存在錯誤,只有【】證明才有可能證明程序的正確性。
35.以下程序的輸出結果是______。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n".s);
}
36.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%dln",a,b,c);
}
執行后輸出結果為______。
37.與表達式a+=b等價的另一書寫形式是______。
38.有以下程序:
floatf1(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.0));
t=P1;p1=p2;p2=t;
y2=p2(p1(2.0));
printf("%3.0f,%3.0f\n",y1,y2);
}
程序運行后的輸出結果是【】。
39.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數據傳送給被測試的模塊,并顯示被測試模塊所產生的結果。
40.在關系模型中,二維表的行稱為______。
三、1.選擇題(20題)41.有以下程序段:intk=0;while(k=1)k++;while循環執行的次數是______。
A.無限次B.有語法錯,不能執行C.一次也不執行D.執行1次
42.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
43.組成計算機網絡的最大好處是()
A.進行通話聯系B.資源共享C.發送電子郵件D.能使用更多軟件
44.若指針p已正確定義,要使p指向兩個連續的整型動態存儲單元,則正確的語句是()。
A.p=2*(int*)malloc(sixeof(int))
B.p=(int*)calloc(2*sixeof(int))
C.p=(int*)malloc(2*sizeof(int))
D.p=2*(int*)calloc(sizeof(int))
45.下列選項中不屬于C語言的數據類型是()。
A.復數型B.邏輯型C.雙精度型D.集合型
46.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為9的表達式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
47.下列選項中,當x為大于1的奇數時,值為0的表達式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
48.下列敘述中正確的是()。
A.軟件就是程序清單B.軟件就是存放在計算機中的文件C.軟件應包括程序清單以及運行結果D.軟件包括程序、數據和文檔
49.C語言規定,程序中各函數之間()
A.既允許直接遞歸調用也允許間接遞歸調用
B.不允許直接遞歸調用也不允許間接遞歸調用
C.允許直接遞歸調用不允許間接遞歸調用
D.不允許直接遞歸調用允許間接遞歸調用
50.下列程序的輸出結果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
51.設有數組定義:chararray[]="China";則數組array所占的空間是()。
A.4個字節B.5個字節C.6個字節D.7個字節
52.下列敘述中錯誤的是()。
A.一種數據的邏輯結構可以有多種存儲結構
B.數據的存儲結構與數據處理的效率無關
C.數據的存儲結構與數據處理的效率密切相關
D.數據的存儲結構在計算機中所占的空間不一定是連續的
53.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
54.若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。
A.兩個語句都是將變量a的值賦予變量p
B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p
C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a
D.兩個語句都是使p指向變量a
55.結構化程序設計的核心和基礎是()。
A.結構化分析方法B.結構化設計方法C.結構化設計理論D.結構化編程方法
56.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性
57.使計算機病毒傳播范圍最廣的媒介是________
A.硬磁盤B.軟磁盤C.內部存儲器D.互聯網
58.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表可以是空表
59.以下程序的輸出結果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}
A.16B.2C.9D.1
60.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(!(--x));}程序的輸出結果是()。
A.1B.20C.14D.死循環
四、選擇題(20題)61.
62.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發不受計算機系統的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數據和相關文檔的集合
63.
64.有三個關系R、S和T如下:
則由關系R和s得到關系T的操作是()。
A.自然連接B.并C.交D.差
65.
66.下列關于信息系統的敘述中,錯誤的是()。
A.廣播電視是一種雙向的、點到多點的信息交互系自
B.網絡聊天是一種雙向的,以信息交互為主要目的系統
C.電話是一種雙向的、點對點的、以信息交互為主要的的系統
D.雷達是一種以感測和識別為主要目的的系統
67.以下選項中,當x為大于l的奇數時,值為0的表達式是()。
68.若輸入“abcdef”“abdef”,下述程序的輸出結果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"
69.
有以下程序:
#include<stdio.1l>
voidWriteStr(char*fn.char*str)
{FILE*fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}
main
{WriteStr("tl.dat","start");
WriteStr("t1.dat","end");)
程序運行后,文件t1.dat中的內容是()。
A.startB.endC.startendD.endrt
70.
71.下列哪個屬性是用來定義內聯樣式的?()
A.fontB.classC.stylesD.style.
72.
73.以下敘述中正確的是
A.用C程序實現的算法必須要有輸入和輸出操作
B.用C程序實現的算法可以沒有輸出但必須要有輸入
C.用C程序實現的算法可以沒有輸入但必須要有輸出
D.用C程序實現的算法可以既沒有輸入也沒有輸出
74.
75.
76.
77.設有以下語句
charchl,ch2;scanf("%c%C",&chl,&ch2);
若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應該是()。
A.A和B之間用逗號間隔
B.A和B之間不能有任何間隔符
C.A和B之間可以用回車間隔
D.A和B之間用空格間隔
78.
79.有以下程序:
程序運行后的輸出結果是()。
A.61B.70C.63D.71
80.下列敘述中正確的是()。
A.循環隊列是隊列的一種鏈式存儲結構
B.循環隊列是隊列的一種順序存儲結構
C.循環隊列是非線性結構
D.循環隊列是一種邏輯結構
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:根據形參m(2≤m≤9)的值,在m行m列的二維數組中存放如下所示的數據,由main()函數輸出。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,定義了NxN的二維數組,并在主函數中自動賦值。請編寫函數fun(),該函數的功能是使數組上三角元素中的值乘以m。若m的值為2,a數組中的值為197238456則返回主程序后a數組中的值應為2181426164512注意:部分源程序在文件prog1.c中。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/
參考答案
1.B本題主要考查結構指針:P=&data,訪問結構體的成員。它可以通過結構變量訪問,即data,可以用等價的指針形式:(*p).a和P->a來訪問結構體變量中的成員。
2.Bmain函數中定義一個二維數組v,另外還定義一個指針數組p。通過for循環,將v的各個行(字符串的首地址)賦給P的對應下標的元素。然后通過嵌套的for循環,為該二維數組中存放的各個字符串進行排序。strcmp函數返回值大于0時(p[i]>p[j])交換兩個字符串,所以每一輪內嵌的for循環,都將下標為i的字符串放在最終的排序位置上,即排序規則是按字符串升序排列。字符串排序時,是將兩個字符串自左向右逐個字符比較(按字符的ASCII值大小),直到出現不同的字符或遇到‘\\0’為止。排序后,再將v中各個排序后的字符串輸出。所以程序輸出結果為:abcdefghijklmnopq。故本題答案為B選項。
3.A
4.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(某字符的ASCII碼值)。選項C定義的初始值表達式中出現了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數形式的指數部分必須為整數,這里的2.5非法。
5.B詳細解答:
數據結構是研究數據元素及其之間的相互關系和數據運算的一門學科,它包含3個方面的內容,即數據的邏輯結構、存儲結構和數據的運算。
6.D解析:A選項,將f賦值為0,結果得到0,因為0乘任何數都為0;B選項,i<n,計算的是(n-1)!,C選項將陷入死循環。
7.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結果是10011010,~3的結果是11111100,二者邏輯與得10011000。
8.B解析:函數gets()的調用形式為gets(str_adr);str_adr是存放字符串的起始地址。可以是字符數組名、字符指針或字符數組元素的地址。gets函數用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。換行符讀入后,不作為字符串的內容。本題中定義一個長度為10的字符數組,和一個指針變量b,并且通過賦值讓它指向數組a。gets函數的參數a[0]不能表示數組a的首地址。
9.B
10.D解析:本題考查函數返回值作參數,最初n=1,f(n)=f(1)=2,將f(n)的結果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
11.A
12.A
13.D解析:線性表的順序存儲是用一片連續的空間來存放數據元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數據元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。
14.A本題考查的是線性單鏈表、雙向鏈表與循環鏈表的結構及其基本運算。\n在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點的存儲順序與數據元素之間的邏輯關系可以不一致,而數據元素之間的邏輯關系是由指針域來確定的。故本題答案為A。
15.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進行賦值時沒有錯誤。a=/*p+m賦值,在c語言中"/*"表示的注釋,所以答案選擇A。
16.CA、B、D選項的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項的含義是:a的值為0時輸出x的值,不為0時輸出y的值,與其他選項正好相反。故本題答案為C選項。
17.BC語言中指針就是變量的地址,它必須有確定的基類型。當指針指向某個變量時,才能向其中寫入數據,選項A錯誤,選項B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時不能寫入數據,另外指針必須有基類型,只能指向基類型相同的變量,選項C錯誤;指針只能與一個整數進行運算,即移動指針,兩個指針不能運算,選項D錯誤。本題答案為B選項。
18.D解析:標識符是C語言中用來表示變量名、數組名、函數名、指針名、結構名、聯合名、枚舉常數名、用戶定義的數據類型名、語句標號等用途的字符序列。標識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數字或下劃線。標識符不能與C關鍵字相同,并區分大小寫。選項D)錯誤,因為int是C語言中的關鍵字。
19.D解析:帶參數的宏定義如下:#define宏名(參數)字符串。本題中,宏定義的作用是指定用標識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。
20.C解析:數組名s1是代表s1數組首地址的地址常量,而不是變量,因為“=”左邊不能出現常量,因此sl='ABCDE'的方法是錯誤的。
21.a=2b=1a=2,b=1解析:本題考查了switch結構的內容。C語言中,程序執行完一個case標號的內容后,如果沒有break語句,控制結構會轉移到下一個case繼續執行,因為case常量表達式只是起語句標號作用,并不是在該處進行條件判斷。本題程序在執行完內部switch結構后,繼續執行了外部switch結構的case2分支,最后a和b的值分別為2和1。
22.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了兩層for循環,外循環的作用是控制行數,內循環的作用是控制每行的列數,在內循環中首先輸出當前字符(從\'A\'開始),[6]中應填ch++,使ch中的字符變為要輸出的下一個字符。每輸出一行就需換一次行,所以[7]處應填pfintf('\\n')。
23.doublemaxdoublemax解析:本題考查函數的聲明。C語言中函數聲明的一般形式為:
(1)函數類型函數名(參數類型1,參數類型2,…)
(2)函數類型函數名(參數類型1參數名1,參數類型2參數名2,…)
題目中函數類型是double。函數名是max。故答案是doublemax。
24.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。
25.數據庫管理系統數據庫管理系統(DBMS)
26.11解析:用“&&”連接兩個表達式時,若第1個表達式的值為“假”,則運算結果與第2個表達式無關,此時第2個表達式將不再進行計算。本題中第1個表達式“j=!ch”值為0,所以第2個表達式i++將不再進行計算,i的值為1。
27.q<p+nq<p+n解析:通過地址傳遞可以在被調函數中對調用函數中的變量進行引用。
解析:本題,已知結果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
29.B66B66解析:printf函數的功能是按照指定的格式,在標準輸出設備上輸出數據,它有兩種參數:格式控制參數和輸出項參數。本題中,printf('%c%d\\n',ch,ch)表示以字符格式和十進制整數格式輸出ch,B的ACSII碼值為66,即在計算機中B的十進制整數格式是66。所以,輸出為B66。
30.fopenfopen解析:函數fopen的原型為FILE*fopen(char*filename,char*mode),功能為以mode指定的方式打開名為filename的文件;函數fseek的原型為intfseek(FILE*fp,longoffset,intbase),功能為將fp所指向的文件的位置指針移到以base所指出的位置為基準,offset為位移量的位置;函數ftell的原型為longftell(FILE*fp),功能為返回fp所指向的文件中當前的讀寫位置;函數fclose的原型為intfclose(FILE*fp),功能為關閉fp所指的文件,釋放文件緩沖區。
31.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
32.tc
33.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間。供隊列循環使用。可知,循環隊列應當是物理結構。
34.程序正確性程序正確性
35.55解析:此程序中,for循環語句后面直接跟了一個“;”,表明循環體為空.輸出語句不在for循環體內,所以在循環執行完畢后才輸出s的值.s、i的初值分別為0和1,判斷循環條件,表達式“1<3”成立,執行“i++,s+=i”后,i和s的值分別為2和1,繼續判斷循環條件,表達式“2<3”成立,執行“i++,s+=i”后,i和s的值分別為3,再次判斷循環條件,表達式“3<3”不成立,循環結束。
36.503503解析:此處需注意的是:如果if后面的條件為真,只執行其后的一條語句或一條復合語句,如果if后面的條件為假,只執行else后面的一條語句或一條復合語句。先判斷表達式“a<b”為假,不執行“t=a”,但執行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達式“a<c”,值為真,所以執行后面的3條語句“t=a;a=c;c=t”,結果a的值為5,c的值為3,所以最后輸出的結果為5、0和3。
37.a=a+ba=a+b解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。
38.8168,16解析:float(*p1)(float)是定義p1為指向函數的float型的指針變量。因此p1=f1;p2=f2;表示p1指向函數f1,p2指向函數f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面將p1與p2互換,y2=f1(f2(2.0))=16。
39.驅動模塊驅動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調用或驅動,同時被測試模塊還要去調用其他模塊,前者稱為驅動模塊,后者稱為承接模塊。其中驅動模塊的作用是將測試數據傳送給被測試的模塊,并顯示被測試模塊所產生的結果;承接模塊的作用是代替被測模塊,調用其他模塊。
40.元組元組解析:在關系型數據庫中,用二維表來表示關系,二維表的表名即關系名,二維表的行稱為關系的元組,二維表的列,稱為關系的屬性。
41.A解析:注意本題有個陷阱,馬虎的考生將紛紛落馬。本來、while中的表達式應為k==1,而本題卻為k=1,是賦值表達式而不是邏輯表達式。因此,編譯器將其值一直認為是1,因此表達式一直為真,陷入無限次的循環。
42.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發現詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規格說明和集成測試分析報告。主要目標是發現與接口有關的問題。集成測試可以發現概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發現需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數據進行測試,測試數據通過用戶接口輸入。
(4)系統測試是將已經通過確認測試的軟件,作為整個計算機系統的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統測試的目的是通過與系統的需求定義做比較,發現軟件與系統的定義不符合的地方。系統測試可以發現問題定義時犯下的錯誤。
43.B
44.C解析:malloc函數的調用形式:malloc(size)。malloc函數用來分配size個字節的存儲區,返回一個指向存儲區首地址基類型為void的地址,可以利用強制類型轉換將其換成所需的類型,這里需轉換為整型(int*)。若不能確定數據類型所占的字節數,可使用sizeof運算符來求得,這里要求兩個連續的整型動態存儲單元即2*sizeof(int)。4個選項中只有C符合題意。
45.A解析:在C語言中,數據類型可分為基本數據類型、構造數據類型、指針類型、空類型4大類,其中基本類型;字符型、整型、實型(單精度型和雙精度型)、枚舉類型。構造類型:數組、結構體、公用體。選項B中的邏輯型和C中雙精度類型都屬于基本數據類型,選項D集合類型屬于構造類型;而選項A復數型不是C語言的數據類型。
46.B解析:在C語言的數組元素的引用方法,我們在前面已經講過了,比如數組元素a[0],可以用表達式*(p+0),即*p來引用,對于數組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數組元素a[2],則可以用表達式。(p+2)來引用…,對于數組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數組的起始地址時,若0≤i<10,則數組元素a[i]可以用*(p+i)來表示。
47.D解析:因為x的值為大于1的奇數,所以x除以2的余數等于1。所以選項D)等于關系表達式的結果為假,即等于0。
48.D解析:計算機軟件是計算機系統中與硬件相互依存的另一部分,包括程序、數據及相關文檔的完整集合。用一個等式表示,則為:軟件=程序+文檔+數據。選項A、選項B和選項C錯誤,正確答案是D。
49.A解析:C語言規定,程序中各函數之間既允許直接遞歸調用也允許間接遞歸調用。
50.C解析:本題中char*p=a+5;即相當于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。
51.C解析:在定義字符數組時,可以用一個字符串作為初值,對數組進行初始化。要注意的是,數組array的長度不是5,而是6,因為系統將自動在字符串常量的后面加上一個'\\0',因此,題干中的初始化語句與chararray[]={'C','h','i','n','9','\\0'};等價。
52.B解析:一種數據的邏輯結構根據需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接、索引等,選項A和選項D正確。采用不同的存儲結構,其數據處理的效率不同,因此,在進行數據處理時,選擇合適的存儲結構是很重要的,選項C正確,選項B錯誤,應為本題正確答案。
53.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。至此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。
54.C解析:“p”是指針變量,指向一個地址:“*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 火鍋餐飲行業2025年火鍋餐飲市場競爭力研究報告
- 智能家居系統集成項目在2025年智能家居租賃市場的應用可行性分析
- 老齡化趨勢下2025年老年長期照護服務模式與社區養老機構服務模式創新報告
- 食品添加劑在食品色澤改善中的安全性評估與合規性分析報告
- 2025年元宇宙社交平臺界面設計創新與實踐案例分析報告
- 醫療行業大數據隱私保護在2025年醫療數據安全風險評估與控制策略中的應用報告
- 有機食品市場細分領域投資機會與風險評估報告
- 2025年醫藥企業研發外包(CRO)與臨床試驗國際化合作報告001
- 2025年國際教育交流項目學生跨文化心理調適與心理健康研究報告
- 2025年北京市燕山區七下英語期中達標檢測試題含答案
- 園藝論文開題報告范文
- 數據質量管理實施手冊
- 林業工程開工申請
- 清華大學《大學物理》各章節習題庫及答案合集
- 《設備找正找平》課件
- 2024年度小紅書商業MCN機構經營洞察報告
- 寵物醫院服務行業可行性分析報告
- 輸液港的輸液與維護
- 口腔科護理人文關懷
- 高等教育信息化建設方案
- 人工神經網絡理論及應用課件第6章-反饋神經網絡
評論
0/150
提交評論