版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.程序運行后的輸出結果是()。A.3B.4C.5D.6
2.以下程序的輸出結果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6
3.有以下程序:
程序運行后的輸出結果是()。A.1B.11C.7D.9
4.有下列程序:程序執(zhí)行后的輸出結果是()。A.Zhao,m,85,Zhao,m,85
B.Sun,f,90,Zhao,m,85
C.Zhao,m,85,Sun,f,90
D.Sun,f,90,Sun,f,90
5.在關系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是()。
A.網(wǎng)狀結構B.樹狀結構C.屬性D.二維表
6.以下敘述正確的是()。
A.表達式“sizeof(FILE*)==sizeof(int*)”的值為真
B.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)
C.文件指針的值是所指文件的當前讀取位置
D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符
7.
8.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細設計B.需求分析C.總體設計D.編程調(diào)試
9.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
10.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
11.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以哪種方式打開文件()。
A.wbB.wb+C.rb+D.rb
12.判斷一包含n個整數(shù)的數(shù)組a[]中是否存在i、j、k滿足a[i]+a[j]+a[k]=0的時間復雜度需要()
A.O(n^2)B.O(n^2logn)C.O(n^3)D.O(nlogn)
13.算術運算符和圓括號有不同的運算優(yōu)先級,對于表達式“a+b+c*(d+e)”,關于執(zhí)行順序,以下說法正確的是()。
A.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“a+b”得r1,最后執(zhí)行“r1+r3”得表達式最后結果
B.先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達式最后結果
C.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“b+r3”得r4,最后執(zhí)行“a+r4”得表達式最后結果
D.先執(zhí)行“a+b”得r1,再執(zhí)行“r1+c”得r5,再執(zhí)行“(d+e)”得r2,最后執(zhí)行“r5*r2”得表達式最后結果
14.當一個函數(shù)無返回值時,定義它的函數(shù)類型應是()。
A.voidB.intC.任意D.無
15.下列說法中錯誤的是A.A.只能在循環(huán)體內(nèi)使用break語句
B.在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結束本層循環(huán)
C.在while和do…while循環(huán)中,continue語句并沒有使整個循環(huán)終止
D.continue的作用是結束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)判斷
16.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序?qū)︻A處理命令行的處理是在程序執(zhí)行的過程中進行的
17.下列不屬于軟件調(diào)試技術的是______。A.強行排錯法B.集成測試法C.回溯法D.原因排除法
18.若有下列定義(設int類型變量占2個字節(jié)):
inti=8;
則下列語句:
printf("i=%08d",i);
輸出的結果是()。A.A.i=8B.i=00000008C.i=08D.8
19.下列敘述中錯誤的是()。
A.一個C語言程序只能實現(xiàn)一種算法
B.c程序可以由多個程序文件組成
C.C程序可以由一個或多個函數(shù)組成
D.一個c函數(shù)可以單獨作為一個C程序文件存在
20.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1);
num=num+n;printf("%d",num);
}
main()
{funo(3);func(4);printf("n");}
程序運行后的輸出結果是()。
A.48B.34C.35D.45
二、2.填空題(20題)21.設x、y、z均為int型變量,請寫出描述"x或y中至少有一個小于z"的表達式______。
22.以下程序的運行結果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printf("%d",a[i]);
}
23.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。
24.C語言用于結構化程序設計的3種基本結構是______、選擇結構和循環(huán)結構。
25.若變量n中的值為24,則函數(shù)共輸出【】行,最后一行有【】個數(shù)。
voidprint(intn,intaa)
{inti;
for(i=1;i<=n;i++)
{printf("%6d,aa[i]);
if(!(i%5))printf("\n");
}
printf("\n");
}
26.下列程序的輸出結果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
27.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
28.算法的復雜度主要包括時間復雜度和______復雜度。
29.以下程序運行后的輸出結果是【】。
main()
{
inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<4)
{
if(i==2||==4)continue;
j=0;
do
{
s+=a[i][j];
j++;
}while(j<4);
}
Printf("%d\n",s);
}
30.以下程序的輸出結果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}
31.一般來說,算法可以用順序、選擇和______三種基本控制結構組合而成。
32.用十六進制給存儲器中的字節(jié)地址進行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。
33.以下程序運行后的輸出結果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
34.面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚠_____。
35.以下程序運行后的輸出結果是()。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%%d\n",a,b,C);
}
36.實體聯(lián)系模型是一種常用的高級概念數(shù)據(jù)模型,而______是實體聯(lián)系模型中的核心。
37.數(shù)據(jù)流圖的類型有【】和事務型。
38.下列程序運行后的輸出結果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
39.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結果是______。
40.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
三、1.選擇題(20題)41.若運行時給變量x輸入12,則以下程序的運行結果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}
A.0B.22C.12D.10
42.若執(zhí)行下列的程序時,從鍵盤上輸入1和2,則輸出結果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
43.設x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
44.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&y
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
45.fgetc函數(shù)的作用是從指定文件讀入—個字符,該文件的打開方式必須是______。
A.只讀B.追加C.讀或讀寫D.以上均正確
46.設有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
47.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是
A.data的每個成員起始地址都相同
B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等
C.程序段:data.a=5;printf("%f\n",data.c);輸出結果為5.000000
D.data可以作為函數(shù)的實參
48.下列程序中函數(shù)reverse()的功能是將a所指數(shù)組中的內(nèi)容進行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[a-1-i];a[n-1-i]=t;}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}程序運行后的輸出結果是()。
A.27B.6C.25D.30
49.設a=3、b=4、c=5,則表達式!(a+b)+c-1&&b+c/2的值為______。
A.6.5B.6C.0D.1
50.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n".m);執(zhí)行后輸出結果是
A.0X0B.0x0C.0D.0XABC
51.當把以下四個表達式用作if語句的控制表達式時,有一個選項與其他三個選項含義不同,這個選項是______。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
52.以下程序的輸出結果是main(){charx=040;printf("%o\n",x<<1);}
A.100B.80C.64D.32
53.設a,b,c,d,m和n均為int型變量,且a=5,b=6,c=7,d=m=2,n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為()
A.0B.1C.2D.3
54.以下程序的運行結果為______。char*c[]={"ENTER","NEW","POINT","FIRST"};char**cp[]={c+3,c+2,c+1,c};char***cpp=cp;main(){printf("%s\n",**++cpp);}
A.ENTERB.NEWC.POINTD.FIRST
55.定義int*swap()指的是______。
A.—個返回整型值的函數(shù)swap()
B.—個返回指向整型值指針的函數(shù)swap()
C.—個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
56.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
57.已知p、p1為指針變量,a為數(shù)組名,i為整型變量,下列語句中,不正確的是______。
A.p=&i;B.p=a;C.p=&a[i];D.p=10;
58.以下對枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
59.以下敘述中錯誤的是A.gets函數(shù)用于從終端讀入字符串
B.getchar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
60.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
四、選擇題(20題)61.有以下函數(shù)intaaa(char*s){char*t=s;while(*t+t);t--:return(t-s);}以下關于aaa函數(shù)的功能敘述正確的是()。A.求字符串S的長度B.比較兩個串的大小C.將串S復制到串tD.求字符串S所占字節(jié)數(shù)
62.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。
A.fget(f0,ch);
B.foutc(ch,fo);
C.fprinff(fp,”%c”,ch);
D.fwrite(&ch,sizeof(ch),1,fp);
63.下列程序段的輸出結果是
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A.無輸出B.12,123.5,12345.5
C.1234,123.5,12345.5D.1234,123.4,12345.5
64.
65.
66.
67.下列程序執(zhí)行后的輸出結果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
68.有以下程序段以下關于程序段執(zhí)行情況的敘述,正確的是()。
A.當產(chǎn)生的隨機數(shù)n為0時,結束程序運行
B.當產(chǎn)生的隨機數(shù)n為4時,結束循環(huán)操作
C.當產(chǎn)生的隨機數(shù)n為l和2時,不做任何操作
D.細循環(huán)語句固定執(zhí)行8次
69.有以下程序:
程序運行后的輸出結果是()。
A.1,2B.1,0C.3,2D.0,0
70.有以下程序程序運行后的輸出結果是()
A.3,5,3,5B.3,5,5,3C.5,3,3,5D.5,3,5,3
71.設fun函數(shù)的定義形式為
voidfun(charch,floatx){…}
則下列對函數(shù)fun的調(diào)用語句中,正確的是()。A.A.fun("abc",3.0);B.t=fun('D'.16.5);
C.fun('65',2.8);
D.fun(32,32);
72.
執(zhí)行下述程序后,輸出的結果是()。
#include<stdio.h>
#defineS(X)X*X
voidmain
{inta=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf("%d",a);
}
A.1B.4C.9D.0
73.當變量c的值不為2、4、6時,值為“真”的表達式是()。
74.
75.
76.以下選項錯誤的是
77.
78.
79.以下數(shù)據(jù)結構中不屬于線性數(shù)據(jù)結構的是______。
A.隊列B.線性表C.二叉樹D.棧
80.(53)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()
A.cedba
B.acbed
C.decab
D.deabc
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤上輸入一個3行3列的矩陣的各個元素的值,然后輸出主對角線元素之和。請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應當是“ABCDEFG”。注意:部分源程序給出如下。請勿改動maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(chara){voidmain{chars[81];print{("Enterastring:\n");gets(s):fun(S);printf("Thestringafterdeleted:\n");puts(s);}
參考答案
1.B[解析]&按位與,如果兩個相應的二進制位都為1.則該位的結果值為1.否則為0.按位或兩個相應的二進制位中只要有一個為1.該位的結果值為1.2的二進制為0000010.4的二進制為000000所以做或運算結果為0000110.該數(shù)與5即00000101做與操作結果為0000100.即4.
2.B當b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。
3.D題干中,函數(shù)fun的功能是將二維數(shù)組p的行下標為1、列下標為1的元素(p[1][1])的值賦給二維地址s指向的*s所指向的存儲單元。main函數(shù)中定義了整型指針p,動態(tài)分配了整型長度的內(nèi)存空間,調(diào)用函數(shù)fun將數(shù)組元素a[1][1],即9賦給p所指向的空間。本題答案為D選項。
4.D程序定義結構體類型STU,main函數(shù)定義結構體STU變量b,并將b的地址賦給指針變量a。調(diào)用函數(shù)f,傳入a。在函數(shù)f中,定義了STU變量c,并將c的地址賦給d,再用d指向的值賦給a指向的地址,接著輸出a指向的值,也就是c的值:Sun,f,90。由于函數(shù)f的調(diào)用通過指針參數(shù)a修改了變量b的值,因此a指向的值也就是b的值等價于c:Sun,f,90。本題答案為D選項。
5.D單一的數(shù)據(jù)結構——關系,現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示。數(shù)據(jù)的邏輯結構——二維表,從用戶角度,關系模型中數(shù)據(jù)的邏輯結構是一張二維表。但是關系模型的這種簡單的數(shù)據(jù)結構能夠表達豐富的語義,描述出現(xiàn)實世界的實體以及實體間的各種關系。
6.A“sizeof(FILE*)=4”,因為“file*”為指針,指針變量占用字節(jié)數(shù)為4,所以“sizeof(int*)=4”,選項A正確。文件指針的值是地址,是一個十六進制數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項B錯誤。文件指針是所指文件的當前讀取位置,而不是文件指針的值,因此選項C錯誤?!癷ntfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函數(shù)可以向任意類型的文件寫入任意數(shù)量的數(shù)據(jù)(不能超過系統(tǒng)的緩沖區(qū)),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項D錯誤。故本題答案為A選項。
7.D
8.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調(diào)用關系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。
9.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標)4)H=352H。
10.B運算符“%”為二元運算符,具有左結合性,參與運算的量均為整型。B選項中的變量a是double型,不符合規(guī)定。故本題答案為B選項。
11.B解析:本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件:方式“rb”為輸入打開一個二進制文件。
12.A
13.B題干表達式中,圓括號的優(yōu)先級最高,乘法運算符次之,加法運算符最低。同優(yōu)先級中,加法運算符的結合性從左向右結合,所以題干中的表達式執(zhí)行順序是:先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達式最后結果。故本題答案為B選項。
14.A
15.A解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句,當break出現(xiàn)在循環(huán)體中的switch語句體時,其作用是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體中時,則在執(zhí)行break后,跳出本層循環(huán)體。continue語句的作用是,跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。
16.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結束,以區(qū)別于C語句、定義和說明語句。選項C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預處理是在編譯程序?qū)源程序進行編譯前執(zhí)行的.當然也在程序執(zhí)行之前執(zhí)行,因此選項D是錯誤的。
17.B解析:我們嚴格區(qū)分調(diào)試與測試,調(diào)試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認測試、系統(tǒng)測試。比如我們在進行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。
18.B解析:本題考查printf函數(shù)的格式。“%08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時,在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。
19.A答案A
解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。
20.A\n第一調(diào)用func函數(shù)時輸出4,第二次調(diào)用func函數(shù)時num的值并不會釋放,仍然是上次修改后的值4,第二次調(diào)用結果為8,所以輸出結果是48。
\n
21.X<Z||y<zX<Z||y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即X<Z或y<z,是“或”的關系。
22.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結果為'1,2,3,0,0,1,2,3,0,0,'。
23.軟件開發(fā)
24.順序結構順序結構解析:結構化程序有3種摹本結構,即順序結構、選擇結構(包括if語句和switch語句)和循環(huán)結構(包括for語句、while語句、do…while語句)。
25.54
26.88解析:本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數(shù)8賦給了變量c。
27.外模式外模式解析:外模式由概念模式推導而出,給出了每個用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。
28.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
29.9292解析:主函數(shù)中首先定義了一個4行4列的二維數(shù)組,然后執(zhí)行一個while循環(huán),該循環(huán)中又嵌套了一個do-while循環(huán)?,F(xiàn)看while循環(huán),該循環(huán)通過i++的值來判斷是否結束循環(huán)當i++的值為4的時候結束循環(huán),當i=0時,執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓i=0,然后執(zhí)行do-while循環(huán)體,我們不難看出do-whilo循環(huán)的功能是將第i+1行的所有元素加起來,所以這時s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3)=26,當i=1時,i+1=2,uf后面括號里的表達式的值為真執(zhí)行后面的continue語句,結束該次循環(huán);當i=2時,i加1變?yōu)?,把第3+1行的所有元素的加到s上,此時s=s+a[2][0]+a[2][1]+a[2][2]+a[2][3]=92,當i=3時,3+1=4,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結束該次循環(huán),當i=3時,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結束該次循環(huán)當i=4時while循環(huán)結束,所以最后輸出的s的值為92。
30.3691236912解析:本題考查最基本的for循環(huán)。for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3,即每次a的值增加3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。
31.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結構組合而成。
32.64KB
33.220220解析:根據(jù)賦值運算符“自右至左”的結合順序,程序中賦值表達式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。
34.類類
35.1020010200解析:a的初值為10,b的初值為20,因此“a%b”結果為10,“(a%b<1)”為假,“a/b”的結果為0,“(a/b>1)”為假,所以“(a%b<1)||(a/b>1)”的值為0(假),c的值為0。
36.實體聯(lián)系圖或E-R圖實體聯(lián)系圖或E-R圖解析:實體聯(lián)系圖(B-R圖)是實體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲及其之間的關系,因此它是數(shù)據(jù)庫觀念設計的最常用的工具。
37.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務。
38.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。
39.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進行比較。如果s1<s2,則返回負數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
40.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結構,從而大大減少了程序中的冗余,提高軟件的可重用性。
41.A解析:本題考查的是三目運算符的用法,三目運算符的形式為(表達式1)?(表達式2):(表達式3)。當(表達式1)的值為真時,求(表達式2)的值為整個表達式的值;如果(表達式1)的值為假,則求(表達式3)的值為整個表達式的值。題中,表達式x>12的結果為假,所以執(zhí)行的語句是x-12,最終y的值應該是0。
42.B解析:本題考查if語句。scanf函數(shù)通過鍵盤讀入a、b的值,a=1,b=2。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。
43.D解析:該題考查邏輯與'&&'和邏輯或'||'以及邏輯非'!'符號的用法。選項A)即3&&4為真;選項B)即3<=4為真;選項C)是一個邏輯或與邏輯與的混合運算,只要執(zhí)行了邏輯或左半部分,程序?qū)⒅苯油V箞?zhí)行邏輯或右半部分程序,因為x的值為真;此時選項C)變?yōu)?&&-1為真。選項D)不用計算,括號內(nèi)邏輯或右邊的值為1,因而括號內(nèi)的值為1,再進行邏輯非運算得0。
44.D解析:本題考查邏輯運算符的使用。當“&&”的兩個運算對象都足邏輯1時,表達式才返回值是1;當“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值是1。選項A)中,x和y都是邏輯1,所以返回值是1;選項B)中,x=4<=y(tǒng)=6為邏輯1,所以返回值是1;選項C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達式4||14&&-2的值不為0;選項D)中,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
45.D解析:fgetc函數(shù)是指從指定的文件讀入—個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。
46.C解析:A、D選項是關系運算表達式,在C語言中,只要關系運算符兩邊是合法的表達式就可以了。C選項中,%只能對整型進行運算,其中對f進行了強制類型轉(zhuǎn)換,但是轉(zhuǎn)換的表達式錯了,應為:(int)(f)。
47.D解析:選項A),共用體的每個成員的起始地址都相同;選項B),共用體變量所占的內(nèi)存長度等于最長的成員的長度;選項C)因為每個成員的起始地址相同,所以整型數(shù)5以浮點型輸出時為5.000000;選項D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。
48.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞.函數(shù)reverse將數(shù)組b進行了逆置,此時的b[10]=(10,9,8,7,6,5,4,3,2,1},后面for語句的功能是將b中的前3個數(shù)累加,將結果放在s中,最后將s輸出,結果s=10+9+8=27。
49.D
50.C解析:本題考核的知識點是C語言中的自反賦值運算符。“m-=n”相當于“m=m-n”,兩個相等的數(shù)相減,其值為0。所以,C選項為所選。
51.D解析:本題考查的是判斷奇偶數(shù)。選項A、B和c中都是當k是奇數(shù)時表達式的值為1,否則為0。而選項D中因為邏輯非!運算符的優(yōu)先級最高,所以當k為0的時候,k的值為1,整個表達式的值也就是1,而當k為非。的時候!k的值為0,整個表達式的值為0。所以本題應該選擇D。
52.A解析:本題考核的知識點是位運算符的應用.首先將八進制040轉(zhuǎn)換成二進制數(shù)000100000,在將此;進制數(shù)左移一位為001000000,輸出時轉(zhuǎn)換成八進制數(shù)100。所以,4個選項中A為所選。
53.C
54.C
55.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。
56.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
57.D
58.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。
59.B其中B選項的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項。
60.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。
61.A在while循環(huán)開始前,指針t和s都指向字符串的起始位置。while循環(huán)的判斷條件中,判斷t所指位置是否為字符串的結束標志,同時讓t右移一位。當while循環(huán)結束時,t自減1,此時t指向的位置是字符串的結束標志,故t-s的值是字符串的長度。
62.A函數(shù)fgete()從文件讀入一個字符到指定變量。函數(shù)fputc()將指定字符寫入審文件中,函數(shù)fprinff(),fwrite()均是寫入文件操作函數(shù)。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度消防水泵房改造與維護合同協(xié)議書3篇
- 工作計劃表模板(共6篇)
- 2024年員工三級安全培訓考試題含答案下載
- 巖溶泉水化學特征研究-第2篇-洞察分析
- 語言習得與認知負荷-洞察分析
- 魚池養(yǎng)殖產(chǎn)業(yè)鏈協(xié)同-洞察分析
- 裝飾工程關鍵工序的施工方法及確保質(zhì)量的技術措施
- 施工方案及組織計劃
- 03 完形填空20篇(15空名校名題)-2023-2024學年七年級英語上學期期中熱點題型專練(原卷版)
- 土工布鋪設施工方案與技術措施
- 中國特色大國外交和推動構建人類命運共同體
- 《風電場項目經(jīng)濟評價規(guī)范》(NB-T 31085-2016)
- 粗粒土和巨粒土最大干密度記錄表及報告
- 愛麗絲夢游仙境話劇中英文劇本(共6頁)
- 書法少年宮活動記錄
- 表冷器性能計算書
- 走遍德國 A1(課堂PPT)
- 照明公司個人工作總結范文
- 熱控專業(yè)施工質(zhì)量驗收范圍劃分表
- 2022年sppb簡易體能狀況量表
- 各類傳染病個案調(diào)查表集
評論
0/150
提交評論