版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年湖南省郴州市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
2.有以下程序(說明:字母A的ASCIl碼值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序運行后的輸出結(jié)果是()。A.BYB.BTC.YTD.YE
3.有如下嵌套的if語句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下選項中與上述if語句等價的語句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
4.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
5.一個算法應(yīng)當具有5個特性,以下敘述中正確的是()。
A.有窮性、確定性、復(fù)雜性、有零個或多個輸入、有一個或多個輸出
B.有窮性、確定性、可行性、有零個或多個輸入、有一個或多個輸出
C.有窮性、確定性、可行性、必須要有一個以上的輸入、有一個或多個輸出
D.有窮性、確定性、復(fù)雜性、有零個或多個輸入、必須要有多個輸出
6.設(shè)有定義“intm=1,n=2;”,則以下if語句中,編譯時會產(chǎn)生錯誤信息的是()。
A.if(m>n)m--elsen--;
B.if(m=n){m++;n++;}
C.if(m<0&&n<0){}
D.if(m>0);elsem++;
7.
8.若有定義語句:“inta=3,b=2,c=1;”,以下選項中錯誤的賦值表達式是()。
A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);
9.
10.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。
A.pw->year=1980;
B.w.year=1980;
C.w.s.year=1980;
D.*pw.year=1980;
11.關(guān)系R和關(guān)系S的并運算是______。
A.由關(guān)系R和關(guān)系S的所有元組合并組成的集合,再刪去重復(fù)的元組
B.由屬于R而不屬于S的所有元組組成的集合
C.由既屬于R又屬于S的元組組成的集合
D.由R和S的元組連接組成的集合
12.數(shù)組A中,每個元素的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A[8][5]的起始地址為()。
A.SA+141B.SA+144C.SA+222D.SA+225
13.若聲明一個浮點數(shù)數(shù)組如下:froataverage[]=newfloat[30];假設(shè)該數(shù)組的內(nèi)存起始位置為200,average[15]的內(nèi)存地址是()。A.A.214B.215C.260D.256
14.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
15.鏈表不具備的特點是()。
A.可隨機訪問任一結(jié)點B.插入刪除不需要移動元素C.不必事先估計存儲空間D.所需空間與其長度成正比
16.面向?qū)ο蠓椒ㄖ校^承是指()。
A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制
17.算法的時間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
18.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a(chǎn)’+‘A’);}程序運行后的輸出結(jié)果是()。
A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR
19.設(shè)有以下語句
charchl,ch2;scanf("%c%C",&chl,&ch2);
若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。
A.A和B之間用逗號間隔
B.A和B之間不能有任何間隔符
C.A和B之間可以用回車間隔
D.A和B之間用空格間隔
20.在下列幾種排序方法中,空間復(fù)雜度最高的是()
A.歸并排序B.快速排序C.插入排序D.選擇排序
二、2.填空題(20題)21.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。
22.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
23.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
24.以下程序運行后的輸出結(jié)果是______。
structNODE
{intk;
structNODE*link;
};
main()
structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q)
{p->k-++i;p++;
q->k-i++;q--;
}
q->k=i;
for(i-0;i<5;i++)
printf("%d",m[i].k);
printf("\n");
25.以下程序運行后的輸出結(jié)果是【】
#include<stdio.h>
main()
{chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{if(i%2==0)*p='*';
p++;i++;
}
puts(a);
}
26.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語句:t=b*2;t為血型變量后的值是______。
27.用鏈表表示線性表的突出優(yōu)點是______。
28.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的【】。
29.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。
30.下列程序的運行結(jié)果是【】。
#include<stdio.h>
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)a[j++]=i;
*n=j;
}
main()
{intaa[M],n,k;
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)printf("\n");
elseprintf("%4d",aa[k]);
printf("\n");
}
31.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結(jié)果是【】。
32.以下程序的功能是:從鍵盤上輸入若干個學(xué)生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學(xué)生成績,用輸入負數(shù)結(jié)束輸入。
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]);
}
33.執(zhí)行以下程序段后,s的值為【】。
staticcharch[]="600";
inta,s=0;
for(a=0;ch[a]>='0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'0';
34.若x和y都是buble型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
35.有以下程序:
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
執(zhí)行后的輸出結(jié)果是【】。
36.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
37.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結(jié)果是【】。
38.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
39.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
40.以下程序的運行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
三、1.選擇題(20題)41.下列程序的運行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}
A.500B.5C.4D.400
42.下列不屬于靜態(tài)測試方法的是()。A.A.代碼檢查B.白盒法C.靜態(tài)結(jié)構(gòu)分析D.代碼質(zhì)量度量
43.若有定義“doublea;”,則正確的輸入語句是()。
A.scanf("%1f,A);
B.scanf("%f,&A);
C.scanf("%1f,&A)
D.scanf("%1e",&A);
44.有以下程序main(){intn[3],i,j;for(i=0;i<3;i++)n[i]=0;for(i=0;i<2,i++)for(j=0;j<2;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}程序運行后的輸出結(jié)果是()
A.2B.1C.0D.3
45.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},(4,5,6}};intm,*p;p=&a[0][0];m=p[4];
A.4B.5C.3D.不確定
46.在一個C語言程序中A.main()函數(shù)必須出現(xiàn)在所有函數(shù)之前
B.main()函數(shù)可以在任何地方出現(xiàn)
C.main()函數(shù)必須出現(xiàn)在所有函數(shù)之后
D.main()函數(shù)必須出現(xiàn)在固定位置
47.有以下程序:voidsum(int*a){a[0]=a[1];)main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執(zhí)行后的輸出結(jié)果是()。
A.4B.3C.2D.1
48.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
49.執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是______。mein(){chars[100];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
50.對關(guān)系S和R進行集合運算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()
A.并運算B.交運算C.差運算D.積運算
51.有以下程序main(){unsignedinta;intb=-l;a=b;printf("%u",a);}程序運行后的輸出結(jié)果是
A.-1B.65535C.32767D.-32768
52.以下4個選項中,不能看成一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
53.下面四個選項中,均是不正確的八進制數(shù)或十六進制數(shù)的選項是
A.0160x8f018
B.0abc0170xa
C.010-0x110x16
D.0a127ff-123
54.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
55.以下程序運行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.Printf("%d%d\n",p,*z)
56.執(zhí)行以下程序段()x=-1;do{x=x*x;}while(!x);
A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤
57.數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程
58.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。
A.wbB.wb+C.rb+D.rb
59.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
60.在下列敘述中,錯誤的一條是()
A.關(guān)系表達式的值是一個邏輯值,即“真”或“假”,可賦給一個邏輯變量
B.數(shù)組必須先定義后使用,且只能逐個引用數(shù)組元素,不能一次引用整個數(shù)組
C.在C語言中,判斷一個量是否為“真”時,用。代表“假”,1代表“真”
D.將字符串常量賦給字符數(shù)組時,必須在字符串后加飛'\0',表示字符結(jié)束
四、選擇題(20題)61.
以下程序的輸出結(jié)果是()。
main()
{inti,a[4][4]一{{1,3,5),{2,4,6},{3,5,7}};
printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2]
[1],a[3][0];
}
A.0650B.1470C.5430D.輸出值不定
62.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。
A.PDLB.DFD圖C.PAD圖D.N—S圖
63.第
11
題
若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
64.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。
A.棧B.樹C.隊列D.二叉樹
65.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運行后的輸出結(jié)果是()。
A.-1B.65535C.32767D.-32768
66.
67.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
68.設(shè)有如下程序
#include<stdio.h>
main()
{
int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
上述程序的輸出結(jié)果是
A.運行錯誤B.100
C.i的地址D.j的地址
69.
70.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
71.
72.
73.
74.
75.以下程序的輸出結(jié)果是()。
f(intb[],intm,intn)
{inti,s=0;
for(i=m;i<n;i=i+2)s=s+b[i];
returns;
}
voidmain()
{intx,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}A.A.10
B.18
C.8
D.15
76.
77.(54)在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序
B.選擇排序
C.快速排序
D.歸并排序
78.(52)棧和隊列的共同點是()
A.都是先進后出B.都是先進先出
C.只允許在端點處插入和刪除元素
D.沒有共同點
79.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機結(jié)果*/}程序運行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。
例如,輸入opdye,則應(yīng)輸出deopy。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charc;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=c;
}
}
voidmain
{
charstr[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\n\nBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%s",str);
}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),用來求出數(shù)組中值最大的元素在數(shù)組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數(shù):876675896101301401980431451777則輸出結(jié)果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認測試和驗收的依據(jù)。
2.Dfun函數(shù)的意思是當*s%2==0的時候就輸出并且s自加l次,然后判斷。所以可知只有第2和第4個位置上的才符合要求,所以答案為D。
3.C條件運算符(?:)是C語言中唯一的一個三目運算符,它是對第一個表達式做真/假檢測,然后根據(jù)結(jié)果返回兩個表達式中的一個作為運算的結(jié)果。<表達式1>?<表達式2>:<表達式3>。在運算中,首先對第一個表達式進行檢驗,如果為真,則返回表達式2的值;如果為假,則返回表達式3的值。
4.BC語言是一種結(jié)構(gòu)化程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計是以模塊化設(shè)計為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。
5.B算法是指為解決某個特定問題而采取的確定且有限的步驟,一個算法應(yīng)當具有5個特征:有窮性、確定性、可行性、有雩個或多個輸入、有一個或多個輸出。本題答案為B選項。
6.A選項A中,if語句的語句塊“m--”后面少了分號,不合法,編譯會出錯。其他選項都是正確的。故本題答案為A選項。
7.B
8.A由等式的規(guī)則可知,A選項錯誤。先對括號的b進行等式運算,得出b=4,然后計算得出a=4=3,所以會導(dǎo)致錯誤。答案選擇A。
9.D
10.C題目中定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中成員又是一個結(jié)構(gòu)體,w為結(jié)構(gòu)體workers的變量。如果給內(nèi)層結(jié)構(gòu)體成員賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項。
11.A
12.C
13.C
14.B解析:scanf函數(shù)的一般格式是:
scanf(格式控制,地址表列)
該格式中,地址表列中應(yīng)是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。
15.A
16.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機制。
17.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。
18.C程序定義一個字符數(shù)組b,并使用字符串“happynewyeai”進行初始化。然后通過for循環(huán),遍歷字符數(shù)組b中的每個字符,再將b中的字符元素修改為大寫字母。程序輸出:HAPPYNEWYEAR。故本題答案為C選項。
19.B\nscanf輸入函數(shù)中,格式控制J必須嚴格按照函數(shù)中的要求進行輸入,在scanf('%c%c',&chl,&ch2)的格式控制語句中沒有任何字符進行間隔,所以在輸入時也不能使用任何字符進行間隔,所以答案選擇B。
\n
20.A
21.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應(yīng)用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應(yīng)用程序。而邏輯獨立性是指當邏輯結(jié)構(gòu)改變時,不需要修改應(yīng)用程序。
22.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[j+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。
23.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標準的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
24.1343113431解析:本題看似考查鏈表的知識,其實只是考查了結(jié)構(gòu)體數(shù)組。程序首先定義了一個結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個該結(jié)構(gòu)體的數(shù)組m[5]和兩個結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第一個元素);q指向m+4(指向數(shù)組的最后一個元素)。接下來定義并初始化一個整型變量i為0。然后用一個while循環(huán)。在p和q不相等的時候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個結(jié)構(gòu)體。i從0開始交替調(diào)用++i和i++,兩個表達式的值依次分別為1和1、3和3……。所以當p叫循環(huán)結(jié)束時,實際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。
25.*2*4*6*8**2*4*6*8*解析:程序中指針p指向數(shù)組a,while(*P)語句的循環(huán)條件是*p!=\'\\0\',在循環(huán)體中,當i=0,2,4,6,8時,i%2=0,執(zhí)行*p=\'*\',即a[i]=\'*\',繼續(xù)執(zhí)行p++;i++;使i為奇數(shù);當i=1,3,5,7時,i%2=1,繼續(xù)執(zhí)行p++;i++;使i為偶數(shù)??梢?,程序在字符串'123456789',的下標為偶數(shù)的位置上賦值\'*\',代替原字符串中的1,3,5,7,9。所以,程序輸出結(jié)果為*2*4*6*8*。
26.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運算。運算過程為:t=-B*2=A+3*2=2+3*2=8。
27.便于插入和刪除操作。便于插入和刪除操作。解析:為了克服順序表中插入和刪除時需要移動大量數(shù)據(jù)元素的缺點,引入了鏈式存儲結(jié)構(gòu)。鏈表表示線性表的突出優(yōu)點是插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高。
28.模式或邏輯模式或概念模式模式也稱邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項構(gòu)成,數(shù)據(jù)項的名字、類型、取值范圍等。
29.非線性結(jié)構(gòu)非線性結(jié)構(gòu)
30.77解析:程序中的if(i%7==0||i%11==0)是找出能被7或11整除的所有整數(shù),a[j++]=i是將滿足條件的數(shù)放到a數(shù)組中,變量j記錄了滿足條件的數(shù)據(jù)個數(shù),main函數(shù)通過變量n得到此數(shù)據(jù)個數(shù)。如果m的值為50,即表達式fun(10,aa,&n)為fun(50,aa,&n)時,輸出結(jié)果為:711142122283335424449
31.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。
32.=aasum/nx[i]<ave=a\r\na\r\nsum/n\r\nx[i]<ave解析:sum是用來存放學(xué)生成績總和的,a是輸入的成績,ave存放平均成績,n既是循環(huán)變量,又表示學(xué)生人數(shù),x[n]保存第n個學(xué)生的成績。sum用來累加每個同學(xué)的成績,因此有sum+=a;把新輸入的學(xué)生成績保存在數(shù)組中,因此有x[n]=a;ave是所有同學(xué)的平均成績,因此有ave=sum/n;逐個把學(xué)生成績和平均成績比較,因此有if(x[i]<ave)。
33.600600解析:程序中for循環(huán)的條件是當前字符大于或等于字符\'0\'且小于或等于字符\'9\'的ASCII碼值,則s=10*s+ch[a]-\'0\'。計算結(jié)果是將字符串'600'轉(zhuǎn)換為整型數(shù)600。
34.88解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達式相當于2.0的3.0次方,結(jié)果為8.000000。
35.2828解析:i=f(4+4)/f(2+2)=4+4×4+4/2+2×2+2=4+16+2+4+2=28。
36.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。
37.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。
38.x=11x=11解析:在對無符號數(shù)的右移是高位補0。
39.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
40.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價于(i>j?i:j)+1。因為6>8為假,則關(guān)系表達式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
41.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:(x)>(y)?(x):(y)是x>y時輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。
42.B解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析和代碼質(zhì)量度量等。其中白盒測試屬于動態(tài)測試。
43.D解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,例如變量a的地址為“&a”。
44.D
45.B解析:程序中定義了一個指向整型變量的指針變量,并對其賦值為二維整型數(shù)組a的首元素的地址。P[4]等價于*(p+4),即二維數(shù)組a中第四個元素的值,而a是一個2*3的二維數(shù)組,其第四個元素為a[1][1],即5。
46.B解析:本題考核的知識點是main()函數(shù)的位置。一個完整的C語言程序有且僅有一個主函數(shù)main()函數(shù)).程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時,通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項A、選項C和選項D均不正確。所以,B選項為所選。
47.A解析:主函數(shù)中定義一個長度為10的整型數(shù)組并賦初值,接著執(zhí)行一個for循環(huán),該循環(huán)共執(zhí)行了3次。當i=2時,調(diào)用函數(shù)sum(&aa[2]),主函數(shù)中將&aa[2]作為實參傳給行參a,所以此時形參a所指的數(shù)組第一個元素和第二個元素分別為aa[2]和aa[3],故執(zhí)行完該函數(shù)后將aa[3]的值賦給aa[2],即aa[2]=aa[3]=4,當i=1時,調(diào)用函數(shù)sam(&aa[1]),主函數(shù)中將&aa[1]作為實參傳給行參a,所以此時形參a所指的數(shù)組第一個元素和第二個元素分別為aa[1]和aa[2],故執(zhí)行完該函數(shù)后將aa[2]的值賦給aa[1],即aa[1]=aa[2]=4:當i=0時:調(diào)用函數(shù)sum(&aa[0]),主函數(shù)中將&aa[0]作為實參傳給行參a,所以此時形參a所指的數(shù)組第一個元素和第二個元素分別為aa[0]和aa[1],故執(zhí)行完該函數(shù)后將aa[1]的值賦給aa[0],即“aa[0]=aa[1]=4;”最后輸出的aa[0]的值為4,所以,4個選項中選項A符合題意。
48.C解析:第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個pfintf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。注意:本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進制和八進制無符號型輸出整型數(shù)據(jù)(不帶前導(dǎo)Ox或O):②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出:⑧格式說明與輸出項的個數(shù)也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。
49.D解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個scanf語句中,格式字符為“%c”,只能得到一個字符\'1\',第二個scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個scanf語句中格式字符為“%s”,遇到空格就自動結(jié)束,因此字符數(shù)組s得到的是'456\\0'。因而正確答案為選項D。
50.AA)【解析】關(guān)系的并運算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,新關(guān)系中包含兩個關(guān)系中的所有元組。
51.B解析:本題考核的知識點是無符號整型數(shù)據(jù)的簡單運用。程序中定義了一個無符號整型變量a和一個整型變量b,并且給它賦初值為-1,整型在計算機中都以二進制表示的,-1在二進制表示為1000000000000001,所以當表示為無符號整數(shù)時轉(zhuǎn)換為十進制為32767,故最后輸出的無符號型a的值為32767。所以,4個選項中選項B符合題意
52.D解析:選項D)為兩條語句。
53.D解析:八進制中,不可能包括8以上的數(shù)字,它的范圍只在07之間,以0開頭。同樣,十六進制是以0x開頭,數(shù)字在0~9和A~F之間。
54.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
55.B解析:可以使用函數(shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實參表列)。注意:調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞。
56.A
57.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。
58.B解析:本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件:方式“rb”為輸入打開一個二進制文件。
59.D
60.B
61.A
\n當所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。
\n
62.B常見的過程設(shè)計工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過程的工具。
63.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南曲靖經(jīng)濟技術(shù)開發(fā)區(qū)市場監(jiān)督管理局招聘城鎮(zhèn)公益性崗位人員1人備考題庫及一套完整答案詳解
- 2026廣西南寧職業(yè)技術(shù)大學(xué)招聘博士研究生備考題庫有完整答案詳解
- 2026四川成都軌道交通集團有限公司招聘3人備考題庫及一套完整答案詳解
- 2025廣東省輕工業(yè)技師學(xué)院招聘工作人員1人備考題庫及一套參考答案詳解
- 2026廣東廣州市天河區(qū)華南師范大學(xué)招聘教輔人員2人備考題庫及答案詳解(奪冠系列)
- 2026廣西河池市天峨縣人力資源和社會保障局招聘公益性崗位工作人員備考題庫及答案詳解參考
- 2025四川德陽市就業(yè)創(chuàng)業(yè)促進中心市本級公益性崗位招聘1人備考題庫及答案詳解(新)
- 2025廣東河源市連平縣退役軍人事務(wù)局招聘編外人員3人備考題庫附答案詳解
- 2026年1月四川內(nèi)江市東興區(qū)城鎮(zhèn)公益性崗位招聘5人備考題庫及答案詳解一套
- 2025年漯河市農(nóng)業(yè)科學(xué)院人才引進7名備考題庫參考答案詳解
- 復(fù)方蒲公英注射液在銀屑病中的應(yīng)用研究
- 住培中醫(yī)病例討論-面癱
- 設(shè)備安裝施工方案范本
- 衛(wèi)生院副院長先進事跡材料
- 復(fù)發(fā)性抑郁癥個案查房課件
- 網(wǎng)絡(luò)直播創(chuàng)業(yè)計劃書
- 人類學(xué)概論(第四版)課件 第1、2章 人類學(xué)要義第一節(jié)何為人類學(xué)、人類學(xué)的理論發(fā)展過程
- 《功能性食品學(xué)》第七章-輔助改善記憶的功能性食品
- 幕墻工程竣工驗收報告2-2
- 1、工程竣工決算財務(wù)審計服務(wù)項目投標技術(shù)方案
- 改進維持性血液透析患者貧血狀況PDCA
評論
0/150
提交評論