版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年廣東省汕尾市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列敘述中錯(cuò)誤的是()。
A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動(dòng)存儲類別
D.在C語言中,函數(shù)形參的存儲類型是自動(dòng)(auto)類型的變量
2.依次插入序列(50,72,43,85,75,20,34,45,65,30)后建立的二叉搜索樹中,查找元素30要進(jìn)行()次元素間的比較。
A.4B.5C.7D.10
3.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對
4.閱讀以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("請輸人2個(gè)數(shù):");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是()。A.定義語句出錯(cuò),case是關(guān)鍵字,不能用做用戶自定義標(biāo)識符
B.定義語句出錯(cuò),printF不能用做用戶自定義標(biāo)識符
C.定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用
D.定義語句無錯(cuò),printf不能輸出case的值
5.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
6.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
7.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。
A.實(shí)現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫D.以上答案均正確
8.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
9.以下哪種操作最適合先進(jìn)行排序處理()
A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值
10.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21
11.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
12.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結(jié)果是A.A.0X0
B.0x0
C.0
D.0xABC
13.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
14.公司中有多個(gè)部門和多名職員,每個(gè)職員只能屬于一個(gè)部門,一個(gè)部門可以有多名職員。則實(shí)體部門和職員間的聯(lián)系是()。
A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系
15.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
16.下面程序的輸出結(jié)果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)
A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA
17.軟件生命周期是指()。
A.軟件的定義和開發(fā)階段
B.軟件的需求分析、設(shè)計(jì)與實(shí)現(xiàn)階段
C.軟件的開發(fā)階段
D.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
18.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
19.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運(yùn)行后的輸出結(jié)果是()。
A.CBB.BCAC.CCBBD.CDBCA
20.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
二、2.填空題(20題)21.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
22.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。
23.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
24.有以下程序:
#include<stclio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:Y?N?<回車>,則輸出結(jié)果為【】。
25.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
26.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-h,a+b));
printf("%d\n",a-b?a-b:a+b);
}
27.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
28.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
29.以下程序的輸出結(jié)果是【】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",A);
}
30.下列程序的字符串中各單詞之間有一個(gè)空格,則程序的輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
31.
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1;i<=n;i++)
{fac=fac【】;
s=s+fac;
}
returns;
}
32.實(shí)體—聯(lián)系模型是一種常用的高級概念數(shù)據(jù)模型,而【】是實(shí)體—模型中的核心。
33.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個(gè)最大值中的最小的那個(gè)數(shù)作為函數(shù)值返回。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN100
intfun(int(*a)[N])
{
introw,col,max,min;
for(row=0;row<N;row++
{
for(max=a[row][0],col=1;col<N;col++)
if(【】)max=a[row][col];
if(row==0)min=max;
elseif(【】)min=max;
}
returnmin;
}
34.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
35.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
37.strcmp函數(shù)的功能是【】。
38.以下程序中函數(shù)fun的功能是:構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
39.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
40.下面程序的運(yùn)行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
三、1.選擇題(20題)41.有以下程序:voidswap(char*x,char*y){chart;t=*x,*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。
A.123,abcB.abc,123C.1bc,a23D.321,cba
42.下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf("%d,",*(p++));printf("%d",**q);}
A.2,2B.1,1C.3,4D.1,2
43.下列選項(xiàng)中錯(cuò)誤的說明語句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
44.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是
A.錯(cuò)誤信息B.666C.888D.666,888
45.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()
A.程序中第一條可執(zhí)行語言B.程序中第一個(gè)函數(shù)C.程序中的main函數(shù)D.包含文件中的第一個(gè)函數(shù)
46.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fp=fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是
A.2030B.2050C.3050D.3020
47.下列程序的輸出結(jié)果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
48.若有如下語句:structa{charx[10]inty;}s,*t;t=&s;則對結(jié)構(gòu)體變量s中的成員y的正確引用是()
A.a.y;B.t->y;C.t.y,D.*t->y;
49.以下數(shù)組定義中錯(cuò)誤的是A.intx[][3]={0};
B.intx[2][3]={{l,2},{3,4},{5,6}};
C.intx[][3]={{l,2,3},{4,5,6}};
D.intx[2][3]={l,2,3,4,5,6};
50.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
51.執(zhí)行以下程序后輸出的結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
52.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是_______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳給形,再由形參傳回實(shí)參D.傳遞方式由用戶指定
53.若有以下程序段intm=0xabc,n=0xabc;m-=n;printf("%X\n".m);執(zhí)行后輸出結(jié)果是
A.0X0B.0x0C.0D.0XABC
54.若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。
A.4B.16C.32D.52
55.若有程序fun(inta,intb}{staticintc=0;c+=a+b;returnc;}main(){intx=5,y=3,z=7,r,r=fun(y,x+y),z);r=fun(xy);printf("%d\n",r);}上面程序的輸出結(jié)果是_____。
A.23B.15C.19D.18
56.打印當(dāng)前屏幕內(nèi)容應(yīng)使用的控制鍵是()
A.Scroll-LockB.Num-LockC.PgDnD.PrtSc(PrintScreen)
57.下面程序的功能是輸出以下形式的金字塔圖案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下劃線處應(yīng)填入的是()。
A.iB.2*-1C.2*i+1D.i+2
58.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);}執(zhí)行后輸出的結(jié)果是
A.16B.12C.28D.21
59.
A.3*xn(2*x-1)
B.3*x**n(2*X-1)
C.3*pow(x,n)*(1/(2*x-1))
D.3*pow(n,x)/(2*x-1)
60.字符型數(shù)據(jù)在機(jī)器中用ASCII碼表示,字符“5”和“7”在機(jī)器中表示為()。
A.10100011和01110111
B.01000101和01100011
C.00110101和00110111
D.01100101和01100111
四、選擇題(20題)61.以下程序的輸出結(jié)果是()。
#definef(x)x*x
main
{inta=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A.9B.6C.36D.18
62.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
63.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main
{inta=0,i;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
A.19B.1C.6D.8
64.
65.
66.
67.在ASP.NET中采用CodeBehind代碼隱藏技術(shù)分離HTML顯示代碼和業(yè)務(wù)邏輯代碼,在PHP中采用的技術(shù)是()。
A.模板技術(shù)B.靜態(tài)緩存技術(shù)C.PHP引擎技術(shù)D.后臺編譯技術(shù)
68.
69.下面敘述中,正確的是
A.C語言編譯時(shí)不檢查語法B.C語言的子程序有過程和函數(shù)兩種
C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用
70.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)次序的是()。
A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上
71.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.8B.4C.6D.2
72.
73.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是______。
A.22B.76C.72D.62
74.下列程序的輸出結(jié)果是
intb=2;
intfunc(int*a)
{b+=*a;return(b);}
main()
{inta=2,res=2;
res+=func(&a);
printf("%d\n",res);
}
A.2
B.4C.6
D.8
75.
76.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()。
A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項(xiàng)管理
77.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.9B.10C.8D.7
78.設(shè)有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數(shù)組元素a【1】【2】的表達(dá)式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
79.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.02B.13C.57D.12
80.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
五、程序改錯(cuò)題(1題)81.假如整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。下列給定的程序中,函數(shù)proc()的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素的個(gè)數(shù)。請修改程序中的錯(cuò)誤,使它能夠得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫一個(gè)函數(shù)fun(),它的功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4Efg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序在文件prog1.c中。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲類別。
2.B
3.C解析:對字符型一維數(shù)組在定義時(shí)初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會自動(dòng)在結(jié)尾添加\'\\0\',字符做結(jié)束標(biāo)志,所以用字符串常量的初始化列表項(xiàng)個(gè)數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價(jià)于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應(yīng)該選C。
4.A本題中定義了整形變量case,但case是關(guān)鍵字,關(guān)鍵字不能用做標(biāo)識符。單精度printF不是關(guān)鍵字,因?yàn)闃?biāo)識符區(qū)分大小寫。所以A不正確。
5.D解析:將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
6.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。
7.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫;③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫。
8.C本題考查邏輯與(&&)和邏輯或(||)運(yùn)算符的使用。x值在[1,10]之間,C語言中可以寫成x值在[100,11O]之間,C語言表達(dá)式應(yīng)寫成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]滿足任意條件就可以,所以是邏輯或的關(guān)系,因此只要將前兩個(gè)表達(dá)式用邏輯或運(yùn)算符連接起來即可,所以最后的表達(dá)式:(x>=1)&&(x<=10)&&(x<=110)。
9.C
10.D考查結(jié)構(gòu)體的應(yīng)用,答案為21。
11.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標(biāo)來從頭逐個(gè)地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時(shí),就去掉這個(gè)字符,所以程序結(jié)束后,字符串item中就只剩下和兩個(gè)字符了。
12.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個(gè)整型變量m、n,對這兩個(gè)變量賦值,輸入的數(shù)值為十六進(jìn)制整數(shù),并且有m=n。進(jìn)行m-n運(yùn)算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進(jìn)制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進(jìn)制的標(biāo)志,輸出數(shù)據(jù)時(shí),數(shù)據(jù)前面不會自動(dòng)加上進(jìn)制的標(biāo)志。
13.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計(jì)表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
14.A部門到職員是一對多的,職員到部門是多對一的,因此,實(shí)體部門和職員間的聯(lián)系是l:m聯(lián)系。
15.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
16.A解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數(shù)組s的首地址,輸出字符串'ABCD'。p++,第二次循環(huán),p的值為字符數(shù)組s的首地址加1,輸出字符串'BCD'。p++,第三次循環(huán),p的值為字符數(shù)組s的首地址加2,輸出字符串'CD'。p++,第4次循環(huán),p的值為字符數(shù)組s的首地址加3,輸出字符串\'D'。
17.D通常把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過程稱為軟件生命周期。選項(xiàng)A、B、C選項(xiàng)均為生命周期的一部分。故選D選項(xiàng)。
18.D
19.Dputchar函數(shù)的功能是輸出一個(gè)字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項(xiàng)。
20.D解析:本題中首先定義一個(gè)字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個(gè)字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時(shí)輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時(shí)輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時(shí)輸出的p所指的字符串的值為D。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
21.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。
22.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
23.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
24.XX解析:主函數(shù)中首先定義了一個(gè)字符型變量c,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個(gè)字符Y并給賦給字符變量c,賦值表達(dá)式的值不為'?',執(zhí)行輸出語句,輸出字符X。接著判斷while中的循環(huán)條件,讀入一個(gè)字符'?'并賦值給c,賦值表達(dá)式的值為'?'循環(huán)條件不再滿足,退出循環(huán)。
25.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
26.11371,13,7解析:本題考查3個(gè)知識點(diǎn):①余數(shù)的計(jì)算,題中的a=10,b=3,a%b=1:②(表達(dá)式1,表達(dá)式2)形式的結(jié)果為最后一個(gè)表達(dá)式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運(yùn)算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
27.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動(dòng)。
28.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計(jì)算逗號表達(dá)式時(shí),從左到右計(jì)算由逗號分隔各表達(dá)式的值,整個(gè)逗號表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。
29.1616解析:在程序中首先將8賦值給變量a,然后在進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
30.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的長度,結(jié)果為13,然后除以2結(jié)果為6。strcpy函數(shù)是把字符串“esshe”拷貝到str1后的第6個(gè)字符后面,也就是說,拷貝后的結(jié)果是“Howdoesshe”。
31./i或*1.O/i或*1或*(1.O/i)或/(double)i/i或*1.O/i或*1或*(1.O/i)或/(double)i解析:主函數(shù)中首先定義了兩個(gè)double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項(xiàng)的值。通過分析可知,第i項(xiàng)的值可以由第i-1項(xiàng)的值得到,即第i項(xiàng)是第i-1項(xiàng)的值除以i。可見橫線處應(yīng)添/i或與它等價(jià)的表達(dá)式。
32.實(shí)體-聯(lián)系圖(E-R圖)實(shí)體-聯(lián)系圖(E-R圖)解析:實(shí)體-聯(lián)系圖(E-R圖)是實(shí)體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲及其之間的關(guān)系,因此它是數(shù)據(jù)庫概念設(shè)計(jì)的最常用的工具。
33.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量row、col、max和min,其中row用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值,min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進(jìn)行比較。如果大于max則將其值賦給max,當(dāng)每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個(gè)空應(yīng)該填a[row][col]>max或a[row][col]>=max。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時(shí),將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時(shí),將min和每行的max比較,如果大于max,則將max值賦min,所以第二個(gè)空應(yīng)該填max>min或mm>max,當(dāng)退出外循環(huán)時(shí),min為所有行中的最大值的最小值。
34.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
35.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
36.存儲結(jié)構(gòu)
37.字符串的比較strcmp函數(shù)的原型是intstrcmp(char*s1,char*s2);功能是對s1和s2所指字符串進(jìn)行比較,若s1<s2返回負(fù)數(shù),若s1==s2返回0,若s1>s2返回正數(shù)。
38.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個(gè)節(jié)點(diǎn)的地址賦給p,這樣循環(huán),節(jié)點(diǎn)可以依次向后取值。
39.99解析:本題的字符串中共有9個(gè)字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結(jié)果為9。
40.x=11x=11解析:在對無符號數(shù)的右移是高位補(bǔ)0。
41.C解析:首先看swap()函數(shù),函數(shù)中定義了一個(gè)臨時(shí)字符變量t,然后將形參指針x所指內(nèi)容存入t,再將形參指針y所指內(nèi)容存入到x所指內(nèi)容中,最后將臨時(shí)變量t的內(nèi)容存入到y(tǒng)所指內(nèi)容中。所以該函數(shù)實(shí)現(xiàn)的是:交換兩個(gè)字符指針?biāo)赶虻膬?nèi)容。在主函數(shù)中,首先定義了兩個(gè)字符指針s1和s2,同時(shí)用字符串'abc'和'123”來初始化它們,此時(shí)它們指向的是兩個(gè)字符串的第1個(gè)字符。所以,在調(diào)用完swap()函數(shù)后,彼此交換了兩個(gè)字符串的第1個(gè)字符,最后輸出結(jié)果為1bc,a23。故應(yīng)該選擇C。
42.D解析:題干中,*(p++)就是數(shù)組元素a[0],輸出a[0],之后指針p的值加1,**q即是數(shù)組元素a[1]。
43.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時(shí)直接賦字符串常量。選項(xiàng)B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動(dòng)在字符串的結(jié)尾處加上一個(gè)字符'\\0'作為串的結(jié)束標(biāo)記。
44.B解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個(gè)%d,而輸出成員列表卻有兩個(gè)成員a和b,在這里將只輸出第一個(gè)成員a值為666,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
45.C
46.A解析:本題考查的知識點(diǎn)是文件的綜應(yīng)用。本題首先以創(chuàng)建方式打開文件“d1.dat”,兩次調(diào)用fprintf()把i和i的值寫到文件“d1.dar”中,文件“d1.dat的內(nèi)容為20<回車>30<回車,后把該文件關(guān)閉再以讀的方式打開,文件位置指針指向文件頭,在通過fscanf()函數(shù)從中讀取兩個(gè)整數(shù)到k和n中,由于格式符無間隔,因此輸入數(shù)據(jù)可以用回車隔開,故輸入的k值為20,n的值為30.所以4個(gè)選項(xiàng)中A正確。
47.C解析:本題考查ifelse語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復(fù)合語句,得c=a*b=20,b、a的值不變。
48.B解析:本題中的a是結(jié)構(gòu)體名,s是結(jié)構(gòu)體a的變量,t是結(jié)構(gòu)體a的指針。通過變量直接訪問結(jié)構(gòu)體成員應(yīng)該使用“.”運(yùn)算符,而通過指針間接訪問結(jié)構(gòu)體成員應(yīng)該使用“->”運(yùn)算符。故本題的正確答案為B。
49.B(16)B)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化。②不分行的初始化。③部分?jǐn)?shù)組元素初始化。④省略第一維的定義,不省略第二維的定義。選項(xiàng)B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。
50.C解析:帶參數(shù)的宏定義命令行形式如下:
#define宏名(形參表)替換文本
在編譯的時(shí)候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計(jì)算,將計(jì)算的結(jié)果賦給a。注意,宏替換是在編譯時(shí)由預(yù)處理程序完成的,宏替換不占用運(yùn)行的時(shí)間,而函數(shù)調(diào)用是在程序運(yùn)行時(shí)進(jìn)行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時(shí)間。
51.D解析:do-while語句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立,當(dāng)循環(huán)條件的值為0時(shí)循環(huán)結(jié)束。當(dāng)y=0時(shí)循環(huán)結(jié)束,printf('%d\\n',y-)語句是先輸出y再自減,所以輸出結(jié)果為0。
52.B解析:C語言函數(shù)中的參數(shù)傳遞方式有傳值與傳址兩種方式,傳值方式是指將實(shí)參的值復(fù)制一份傳遞給形參,而傳址方式是指將實(shí)參的變量地址傳遞給形參,也就是實(shí)參的引用。
53.C解析:本題考核的知識點(diǎn)是C語言中的自反賦值運(yùn)算符。“m-=n”相當(dāng)于“m=m-n”,兩個(gè)相等的數(shù)相減,其值為0。所以,C選項(xiàng)為所選。
54.C本題主要考查逗號表達(dá)式。逗號是一個(gè)特殊的運(yùn)算符,它具有所有運(yùn)算符中最低的優(yōu)先級。在C語言中,用它可以將兩個(gè)表達(dá)式連接起來,逗號表達(dá)式的一般表現(xiàn)形式為:
表達(dá)式1,表達(dá)式2,…,表達(dá)式n
逗號表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,依次往后計(jì)算,整個(gè)逗號表達(dá)式的值是最后一個(gè)表達(dá)式的值,如“3+5,5+6”的值是11。
在本題中,逗號表達(dá)式為i=4,j=16,k=32,根據(jù)上面的分析,計(jì)算逗號表達(dá)式得到的結(jié)果為k=32,最后將逗號表達(dá)式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。
55.A解析:static聲明的外部變量只限于彼本文件引用,而不能被其他文件引用。用static來聲明一個(gè)變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個(gè)程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。調(diào)用第一個(gè)fun,其兩個(gè)實(shí)參的值為(3,5+3)與7即8與7,在函數(shù)fun執(zhí)行結(jié)束返回15。第二次調(diào)用fun時(shí),由于static為靜態(tài)類型,其值保留,執(zhí)行fun(5,3)后,其返回值為23,故選A。
56.D
57.B解析:觀察可知圖形共4行,主函數(shù)中通過一個(gè)for5循環(huán)循環(huán)4次,輸出4行。第1行輸出3個(gè)空格和1個(gè)*,第2行輸出2個(gè)空格和3個(gè)*,第3行輸出1個(gè)空格和5個(gè)*,第4行輸出7個(gè)*,主函數(shù)中通過第2個(gè)循環(huán)控制每行的輸出空格數(shù),第3個(gè)for循環(huán)控制輸出*的個(gè)數(shù),總結(jié)規(guī)律:每行輸出*的個(gè)數(shù),總比前一行的多2個(gè),且第1行的個(gè)數(shù)為1,可以斷定每行輸出*的個(gè)數(shù)組成了一個(gè)公差為2的等差數(shù)列,所以每行輸出。的個(gè)數(shù)即該等差數(shù)列的通項(xiàng),故該空白處應(yīng)該填寫2*i-1,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
58.A解析:在循環(huán)體中有一條if語句,其后面表達(dá)式為“i%2”,當(dāng)i的值為奇數(shù)時(shí),其值為真,執(zhí)行其后面的語句,i的值加1,重新開始循環(huán),當(dāng)i的值為偶數(shù)時(shí),“i%2”為假,執(zhí)行“i++;s+1”。在循環(huán)中i為偶數(shù)時(shí)的值分別為0、2、4、6,加1過后的值分別為1、3、5、7,s中存放的是它們的和,值為16.所以,A選項(xiàng)為所選。
59.C解析:在該題中,x的n次方應(yīng)該調(diào)用函數(shù)pow(x,n)計(jì)算,故排除選項(xiàng)A、B。在選項(xiàng)D中,pow(n,x)的參數(shù)寫反了,故選項(xiàng)C正確。
60.C解析:字符“5”和“7”的ASCII碼值分別為53和55,其二進(jìn)制形式分別為00110101和00110111。
61.C
62.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。
63.A
\n本題考查switch語句。當(dāng)i一1時(shí),執(zhí)行case1,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆]有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a—a+2—13,a—a+3一l6:當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
64.A
65.B
66.B
67.A
68.A
69.D本題主要考查我們對C語言一些基礎(chǔ)知識的掌握情況。下面分別分析本題的四個(gè)選項(xiàng)。
C語言程序在編譯時(shí)的主要任務(wù)就是檢查程序的語法是否符合規(guī)定,因此選項(xiàng)A的描述不正確。
一個(gè)程序一般都是從主函數(shù)開始運(yùn)行,之后主程序調(diào)用的其他程序段叫子程序。由于C語言的程序段都是以函數(shù)形式存在的,所以除了主程序ma
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北孝感美珈職業(yè)學(xué)院《小學(xué)教師語技能》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度物業(yè)服務(wù)合同范本涵蓋社區(qū)消防安全教育培訓(xùn)3篇
- 2025年技術(shù)升級與改進(jìn)合同2篇
- 2025年建筑貼壁布施工監(jiān)理合同范本3篇
- 2025年度能源供應(yīng)與需求租賃合同2篇
- 2025年度:國際合作項(xiàng)目變更合同范本3篇
- 普洱2025年云南普洱思茅區(qū)消防救援大隊(duì)政府專職消防員招聘10人筆試歷年參考題庫附帶答案詳解
- 2025年房產(chǎn)按揭借款合同3篇
- 2025年河北滄州渤海新區(qū)北方人力資源開發(fā)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年安徽黃山市祁門經(jīng)濟(jì)開發(fā)區(qū)投資有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 2025年1月 浙江首考英語試卷
- 資本金管理制度文件模板
- 2025年急診科護(hù)理工作計(jì)劃
- 高中家長會 高二寒假線上家長會課件
- 2024-2025學(xué)年山東省聊城市高一上學(xué)期期末數(shù)學(xué)教學(xué)質(zhì)量檢測試題(附解析)
- 違規(guī)行為與處罰管理制度
- 個(gè)人教師述職報(bào)告錦集10篇
- 四川省等八省2025年普通高中學(xué)業(yè)水平選擇性考試適應(yīng)性演練歷史試題(含答案)
- 《內(nèi)部培訓(xùn)師培訓(xùn)》課件
- 《雷達(dá)原理》課件-3.3.3教學(xué)課件:相控陣?yán)走_(dá)
- 2024年中國醫(yī)藥研發(fā)藍(lán)皮書
評論
0/150
提交評論