版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年山東省淄博市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是
A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>
2.已有定義:chara[]="xyz",b[]={'x','y','z'};,以下敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.以述說法都不對
3.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
4.有以下程序:
程序運行時,輸入的值在哪個范圍才會有輸出結果()。
A.不等于10的整數(shù)
B.大于3且不等于l0的整數(shù)
C.大于3或等于l0的整數(shù)
D.小于3的整數(shù)
5.下列數(shù)據(jù)模型中,具有堅實理論基礎的是()。
A.層次模型B.網(wǎng)狀模型C.關系模型D.以上3個都是
6.以下敘述中正確的是
A.語句inta[8]={0};是合法的
B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小
C.語句chara[2]={"A","BII};是合法的,定義了一個包含兩個字符的數(shù)組
D.語句chara[3];a="AB";是合法的,因為數(shù)組有三個字符空間的容量,可以保存兩個字符
7.假設把整數(shù)關鍵碼K散列到有N個槽的散列表,以下哪些散列函數(shù)是好的散列函數(shù)()
A.h(K)=KmodN
B.h(K)=1
C.h(K)=K/N
D.h(K)=(K+rand(N))modN,rand(N)返回一個0到N-1的整數(shù)
8.
9.
10.依次讀入數(shù)據(jù)元素序列{a,b,c,d,e,f,g}進棧,每進一個元素,機器可要求下一個元素進?;驈棗#绱诉M行,則棧空時彈出的元素構成的序列是以下哪些序列?
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,b,c,a}
D.{c,d,b,e,f,a,g}
11.
12.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
13.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是()
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch(int(x)){case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case1+2:printf("**\n");}
D.switch(a+B){case1:printf("*\n");casec:printf("**\n");}
14.若有定義語句:“intx=10;”,則表達式x-=x+x的值為()。
A.-20B.-l0C.0D.10
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.有以下程序:#include<stdio.h>main(){inti,j=0;chara[]=“ab123c4d56ef7gh89”;for(i=0;a[i];i++)if(a[i]>=‘0’&&a[i]<=‘9’)a[j++]=a[i];a[j]=‘\0’;printf(“%s”,a);}程序運行后的輸出結果是()。
A.123456789abcdefgh
B.abcdefgh
C.123456789
D.1234567896ef7gh89
17.下面程序的輸出結果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
18.若有定義“inta,b,c;”以下程序段的輸出結果是()。a=11;b=3;c=0;printf(“%d\n”,c=(a/b,a%b));
A.2B.0C.3D.1
19.對一個滿二叉樹,m個葉子,n個結點,深度為h,則()。
A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1
20.假設下圖中每個正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14
二、2.填空題(20題)21.若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;則對數(shù)組元素的錯誤引用是
22.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。
23.下列程序的輸出結果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
24.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。
25.設有以下定義
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下圖所示鏈表結構:
請寫出刪除結點y的賦值語句【】。
26.以下程序運行后的輸出結果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
27.下面程序是把從終端讀入的20個字符作為字符串放在字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;chars[21],*p;
for(i=0;i<20;i++)
s[i]=getchar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
28.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。
29.在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結構的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應修改應用程序,稱為______。
30.以下程序的輸出結果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
31.以下程序運行后的輸出結果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
32.函數(shù)ssbc叩()的功能是對兩個字符申進行比較。當s所指字符串和t所指字符申相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>
#include<stdio.h>
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==)
{s++;t++;}
return
}
33.數(shù)據(jù)管理技術發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)這3個階段,其中數(shù)據(jù)獨立性最高的階段是【】。
34.下述程序的輸出結果是【】。
#include<stdio.h>
voidmain()
{
charc1[20]="1234";
charc2[20]="5678";
char*p1,*p2;
p1=c1;
p2=c2;
while(*p1++)
while(*p1++=*p2++);
printf("%s,c1);
}
35.下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>
#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;j+=2;)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);printf("\n");
}
36.結構化程序設計的三種基本邏輯結構為順序、選擇和【】。
37.以下程序運行后的輸出結果是【】。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=Y;Y=t;
printf(“%d,%d\n”,x,y);
}
38.在最壞情況下,冒泡排序的時間復雜度為【】。
39.【】是數(shù)據(jù)庫設計的核心。
40.若x為int類型,請寫出與!x等價的C語言表達式______。
三、1.選擇題(20題)41.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()
A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結構特性設計和行為特性設計
42.CPU處理數(shù)據(jù)基本單位為字,一個字的字長()
A.為8個二進制位B.為16個二進制位C.為32個二進制位D.與CPU芯片的型號有關
43.有以下程序:#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");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運行后的輸出結果是()。
A.2030B.2050C.3050D.3020
44.下列程序的運行結果是______。main(){inta[6],i;for(i=2;i<6;i++){a[i]=4*(i-2*(i>3))%5;printf("%2d",a[i]);}}
A.2323B.1212C.3232D.2222
45.下列模式中,能夠給出數(shù)據(jù)庫物理存儲結構與物理存取方法的是A.內(nèi)模式B.外模式C.概念模式D.邏輯模式
46.以下敘述中正確的是()。
A.周部變量說明為static存儲類,其生存期將礙到延長
B.全局變量說明為static存儲類,其作用域將被擴大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
47.下列程序的運行結果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正數(shù)B.負數(shù)C.零D.不確定的值
48.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結果是()。
A.10011000B.10001100C.10101000D.10110000
49.有以下程序:#includo<stdio.h>main(){inty=10;while(y--)printf("y=%d\n",y);}程序執(zhí)行后的輸出結果是()。
A.y=0B.y=-1C.y=1D.while構成無限循環(huán)
50.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dat","w+");for(i=1;i<6;i++){fprimtf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運行后的輸出結果是()。
A.00B.12345C.14D.12
51.若有定義:inta[4][10];,則以下選項中對數(shù)組元素a[i][j]引用錯誤的是______。(o<=i<4,0<=j<=10
A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)
52.有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)pfintf("%d",i);}printf("\n");}執(zhí)行后的輸出結果是
A.5B.24C.32D.40
53.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的()。
A.存儲問題B.共享問題C.安全問題D.保護問題
54.下列選項中,合法的C語言關鍵字是______。
A.VARB.cherC.integerD.default
55.以下敘述中錯誤的是
A.在程序中凡是以"#"開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的
56.有以下程序:int*f(int*x,int*y){if(*<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
57.下面四個選項中,均是不合法的用戶標識符的選項是()。
A.AP_0doB.floatla0_AC.b-agotointD._123tempint
58.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
59.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當程序執(zhí)行過程中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
60.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結果是()。
A.22B.76C.72D.62
四、選擇題(20題)61.
62.
63.下面程序的輸出結果是()。
main()
{inta,b;
scanf("%2d%3d",&a,&b);
printf("a=%db=%d\n",a,b);
}
A.a(chǎn)=12b=34
B.a(chǎn)=123b=45
C.a(chǎn)=12b=345
D.語句有錯誤
64.有以下程序
65.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
66.概要設計中要完成的事情是()。
A.系統(tǒng)結構和數(shù)據(jù)結構的設計B.系統(tǒng)結構和過程的設計C.過程和接口的設計D.數(shù)據(jù)結構和過程的設計
67.下列選項不符合良好程序設計風格的是()。
A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計原則是高耦合、高內(nèi)聚
68.以下數(shù)組定義中錯誤的是()。
A.
B.
C.
D.
69.
70.下列敘述中錯誤的是()。
A.數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的核心
B.數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員三部分組成
C.數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段
D.數(shù)據(jù)庫中的數(shù)據(jù)獨立于應用程序而不依賴于應用程序
71.數(shù)據(jù)的存儲結構是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結構在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
72.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6
73.有以下程序:
程序運行后的結果是()。
A.6,4,3,2,1
B.6,5,4,3,2
C.5,4,3,2,1
D.10,4,3,2,l
74.以下程序段中,與語句:k=a>;b?(b>;c?1:O):0;功能相同的是()。
75.閱讀以下程序:
#include<stdio.h>
main()
{intcase;floatprintF;
printf("請輸人2個數(shù):");
scanf("%d%fl"&case,&printF);
printf("%dofof\n",case,printF);
}
該程序在編譯時產(chǎn)生錯誤,其出錯原因是()。
A.定義語句出錯,case是關鍵字,不能用做用戶自定義標識符
B.定義語句出錯,printF不能用做用戶自定義標識符
C.定義語句無錯,scanf不能作為輸入函數(shù)使用
D.定義語句無錯,printf不能輸出case的值
76.下列關于線性鏈表的敘述中,正確的是()。
A.各數(shù)據(jù)結點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致
B.各數(shù)據(jù)結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)
C.進行插入與刪除時,不需要移動表中的元素
D.以上說法均不正確
77.有以下程序:
#include<stdio.h>
main
{shortC=124;
C=C_;
printf("%d\n",c);
}
若要使程序的運行結果為248,應在下劃線處填入的是()。
A.>>2
B.|248
C.&0248
D.<<1
78.
79.
80.
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:為一個偶數(shù)尋找兩個素數(shù),這兩個素數(shù)之和等于該偶數(shù),并將這兩個素數(shù)通過形參指針傳回主函數(shù)。
請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是刪除一維數(shù)組中所有相同的元素,使之只剩一個。數(shù)組中的元素已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中元素的個數(shù)。例如,若一維數(shù)組中的元素是2223445666677899101010刪除后,數(shù)組中的元素應該是2345678910注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80intfun(inta[],intn){}voidmain(){ inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf(“Theoriginaldata:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(n%3d”,a[i]); n=fun(a,n); printf(“\n\nThedataafterdeleted:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(“%3d”,a[i]); printf(“\n\n”);}
參考答案
1.A解析:本題考核的知識點是scanf()函數(shù)的運用。seanf()函數(shù)有兩個參數(shù),第一個參數(shù)為輸入格式字符串,第二個參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時數(shù)據(jù)的間隔,輸入時必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時必須原樣輸入。所以4個選項中選項A符合題意。
2.C解析:對字符型一維數(shù)組在定義時初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會自動在結尾添加\'\\0\',字符做結束標志,所以用字符串常量的初始化列表項個數(shù)是字符串的長度加1。因此題目中的chara[]='xyz';等價于chara[]={\'x\',\'y\',\'z\',\'\\0\');,所以a數(shù)組長度大于b數(shù)組長度,應該選C。
3.C解析:要計算一個復雜的表達式時,首先要弄明白表達式中所有運算符的優(yōu)先級與結合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結構體的成員指針變量y所指向的內(nèi)容。從前面的程序段不難看出,pt指向結構體數(shù)組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數(shù)組a的首地址,即指向數(shù)組a的第1個元素。故選項A中的表達式的值為a[0],也就是1。選項B中表達式的值就是c[0].x,即10。根據(jù)優(yōu)先級和結合性,選項C中的表達式等價于++(pt->x),由于是前綴++,所以整個表達式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應該選擇C。
4.Bif-else控制結構中,else總是與最近的未配對的if匹配。本題的執(zhí)行過程為:如果輸入整數(shù)小于3則不進行任何操作,否則判斷該整數(shù)是否不等于l0,若為真則進行輸出。因此程序輸出的數(shù)據(jù)為大于3且不等于l0的整數(shù)。
5.C在數(shù)據(jù)庫設計中,目前常用的數(shù)據(jù)模型主要有三種,分別是層次模型、網(wǎng)狀模型和關系模型。
層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。我們通常把滿足以下兩個條件的數(shù)據(jù)模型稱為層次模型。
(1)有且僅有一個結點無雙親,這個結點稱為根結點。
(2)其他結點有且僅有一個雙親。
層次模型用樹形結構來表示各實體與實體間的聯(lián)系。實體是數(shù)據(jù)庫中數(shù)據(jù)描述的對象,可以是一個人、一種商品等。在層次模型中,每個結點表示一個記錄類型,記錄之間的聯(lián)系用結點之間的連線表示,這種聯(lián)系是父子之間一對多的聯(lián)系。記錄就是描述實體的相關數(shù)據(jù)。
如果取消層次模型中的兩個限制,即允許一個以上的結點無雙親,則每一個結點可以有多個父結點,便形成了網(wǎng)狀。我們把網(wǎng)狀表示實體之間聯(lián)系的模型稱為網(wǎng)狀模型。
關系模型用表格形式表示實體類型及其實體間的聯(lián)系。關系模型是目前最重要的一種模型,它是建立在嚴格的數(shù)學概念的基礎上的,具有最堅實的理論基礎。關系模型的基本數(shù)據(jù)結構是二維表,每一張二維表稱為一個關系。
6.AB選項中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個數(shù);C選項中,chara[2]={"","B"};不合法,應為chara[2]={′A′,′B′};;D選項中,字符數(shù)組只能在定義的時候可以用字符串常量來初始化,但不能夠先定義字符數(shù)組,然后再用字符串常量進行賦值。因此A選項正確。
7.A
8.C
9.D
10.A
11.D
12.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時,盡管Y的類型是float.x的類型是double,但是因為函數(shù)定義時沒有指定類型說明,系統(tǒng)默認函數(shù)值的類型為int型,所以計算后Y的類型是int型。
13.C
14.B表達式x-=x+X可以寫成x=x-(x+x),所以X的值為-l0。
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.C題干中定義了字符數(shù)組a,它包含數(shù)字字符和字母字符。通過for循環(huán),將a中所有的數(shù)字字符前移,舍去其他字符,并在數(shù)字字符后添加字符串結束符‘\\0’,for循環(huán)結束后,字符串a(chǎn)的值為:123456789。故本題答案為C選項。
17.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
18.AC語言中,逗號運算符可以把兩個以上(包含兩個)的表達式連接成一個表達式。逗號運算符的優(yōu)先級是所有運算符中級別最低的,逗號運算符保證左邊的子表達式運算結束后才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有子表達式運算都結束后,才對其右邊的子表達式進行運算,并以最右邊表達式的值作為整個逗號表達式的值。因此c的值為“a%b”,即“11%3=2”。故本題答案為A選項。
19.D
20.C
21.C
22.4.0或44.0或4
23.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調(diào)用PRINT(4),P(4)輸出4,theend。
24.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用以及維護等活動。
25.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:鏈表中結點的刪除,要刪除結點y,只需要讓結點x的指針域指向y結點的指針域所指向的后續(xù)結點就可,因此只需把結點z的地址賦給x的指針域就可以了,即讓結點x的指針域指向結點z。而結點z的地址保存在結點y的指針域中,因此只需把結點y的指針域賦值給結點x的指針域即可。
26.09182736450918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符‘0’和‘9’,然后每次循環(huán)結束給c1增1、c2減l,循環(huán)條件為c1<c2,即讓c1的值依次為‘0’、‘1’、‘2’…,c2的值依次為‘9’、‘8’、‘7’…,直到兩個數(shù)相遇時結束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值。所以最終的輸出結果為:0918273645。
27.\0's*p++\\0'\r\ns\r\n*p++解析:本題先通過for循環(huán)從鍵盤接收20個字符,然后在串尾賦一空值'\\0'作為串結束標志。再使指針p指向串的首地址。最后通過while循環(huán)對字符串進行掃描并輸出。
28.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。
29.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)庫總體邏輯結構改變,而不需要相應修改應用程序叫做邏輯獨立性。
30.99解析:本題的字符串中共有9個字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結果為9。
31.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
32.*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]解析:本題考查的知識點是字符型指針變量作為函數(shù)的參數(shù)以及序符串大小的比較.函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為'\\0',此對應字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為'\\0'。且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填“*s-*t”或其等價形式。
33.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)解析:在數(shù)據(jù)庫系統(tǒng)管理階段,通過系統(tǒng)提供的映像功能,數(shù)據(jù)具有兩方面的獨立性:一是物理獨立性,二是邏輯獨立性。數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)階段;
34.1567815678解析:本題使用了雙重while循環(huán),外循環(huán)的循環(huán)條件是*p1++,即每次循環(huán)時讓p1指向其后面的一個元素,而p1自增之前所指內(nèi)容為0時循環(huán)結束。內(nèi)循環(huán)的循環(huán)條件是*p1++=*p2++,即每次循環(huán)時讓p1和p2指向其后面的一個元素,而將p2自增之前所指的元素復制到p1自增之前所指的地址中去,直到p2自增之前所指內(nèi)容為0時循環(huán)結束。p1本來一開始是指向c1[0],由于外循環(huán)判斷條件時讓p1自增了,所以進入內(nèi)循環(huán)時p1指向c1[1],而內(nèi)循環(huán)將p2所指字符串復制到p1所指位置,所以內(nèi)循環(huán)的結果是c1[1]、c1[2]、c1[3]、c1[4]、c1[5]分別被c2[0]、c2[1]、c2[2]、c2[3]、c2[4]改寫成'5'、'6'、'7'、'8'、'\\0'。故程序輸出的結果為15678。
35.a[I]>a[j]a[I]>a[j]解析:本題中的嵌套的循環(huán)結構用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求出下標值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2,最后通過條件a[i]>a[j]對元素大小進行判斷并交換。
36.重復(或循環(huán))重復(或循環(huán))
37.20020,0解析:在主函數(shù)中首先定義了三個整型變量x、y、t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句x=Y;Y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
38.
解析:冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
39.數(shù)據(jù)模型數(shù)據(jù)模型
40.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
41.A解析:模式設計和內(nèi)模式設計是概念設計的兩種方法。物理設計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
42.D
43.A解析:本題主要考查有關文件操作的函數(shù)的應用,其中:
①函數(shù)fopen的功能是打開一個文件,調(diào)用方式是:FILE*fp;
fp=fopen(文件名,使用文件方式);
②函數(shù)fprintf的功能是將格式化數(shù)據(jù)輸出到一個文件中,調(diào)用方式是:
fprintf(文件指針,格式字符串,輸出表列);
③函數(shù)fclose的功能是關閉一個文件,調(diào)用方式是:
fclose(文件指針);
④函數(shù)fscanf的功能是從磁盤文件執(zhí)行格式化輸入,調(diào)用方式是:
fscanf(文件指針,格式字符串,輸入表列)。
44.C解析:本題程序的功能是對數(shù)組元素賦值,難點是對表達式4*(i-2*(i>3))%5的分析。
45.A數(shù)據(jù)庫管理系統(tǒng)的三級模式結構由外模式、模式和內(nèi)模式組成。
外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結構,是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結構和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一一部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質上的表示,即對數(shù)據(jù)的物理結構和存取方式的描述。
46.A解析:靜態(tài)局部變量的生存期將一直延長到程序運行結束。故選項A正確;而全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結束,故選項B不正確;未賦初值的auto型變量的初值是隨機的,未賦初值的static型變量的初值是0(故選項C和選項D不正確)。所以,4個選項中選項A符合題意。
47.A解析:本題考查字符串比較函數(shù)和兩個字符串比較的原則兩個知識點,①原則是依次比較兩個字符串同一位置的對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大。②strcmp(s1,s2)的返回值,當str1<str2時,返回值<0;當str1=str2時,返回值為0;當str1>str2,返回值>0。
48.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結果是10011010,~3的結果是11111100,二者邏輯與得10011000。
49.B解析:程序首先判斷y值是否非0,顯然y=10滿足條件,y自減1,再次執(zhí)行while語句,判斷y為9的值是否滿足條件,滿足條件,y自減1,……,直到y(tǒng)為0,條件不成立,結束循環(huán),y自減1后變?yōu)?1,所以輸出結果為y=-1。
50.D解析:語句“fprintf(fp,”%d”,i);”的作用是將變量i的值直接按“%d”的格式輸出到文件fp指向的文件上;“rewind(fp)”的作用是使指針重新返回文件的開頭;“fscanf(fp,'%d%d',&k,&n);”的作用是將磁盤文件中的數(shù)據(jù)傳送給變量k和n。
51.B解析:本題中選項B是錯誤的引用,*(a+i)+j只代表了a[i][j]的地址。
52.C解析:當for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經(jīng)過兩次自加1運算,值變?yōu)?2,能被8整除,故此時第一次執(zhí)行“printf('%d',i);”語句,即輸出32。
53.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計算機的應用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對數(shù)據(jù)共享的要求越來越高。共享的含義是多個用戶、多種語言、多個應用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術,以便對數(shù)據(jù)庫進行管理。因此,數(shù)據(jù)庫技術的根本目標就是解決數(shù)據(jù)的共享問題。故選項B正確。
54.D解析:選項A中的VAR不是C語言中關鍵字,故選項A不正確:選項B中cher,應改char,char才是C語言中的關鍵字,故選項B不正確;選項C中integer在C語言中簡化為int,這里應該將integer改為int,int才是C語言中的關鍵字,選項D中default為C語言中默認的關鍵字,故選項D正確。所以,4個選項中選項D符合題意。
55.D解析:C語言中的預處理命令以符號#開頭,這些命令是在程序編譯之前進行處理的,選項D)的描述錯誤。
56.B解析:f函數(shù)的功能是返回地址為x,y的兩個數(shù)中值較的數(shù)的地址,本題輸出結果是7,8,7。
57.C解析:C語言規(guī)定的標識符只能由字母、數(shù)字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關鍵字作為標識符。選項C)中goto和int是關鍵字,b-a中'-'不是組成標識符的3種字符之一;選項D)中int是關鍵字,所以,均是不合法用戶標識符的選項是C)。
58.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。
59.C解析:在c語言中,如果出現(xiàn)下標越界的情況,系統(tǒng)不管在編譯還是執(zhí)行時都不會給出“下標越界”的錯誤提示。
60.C解析:C語言.中以,'\\0'作為字符串的結束符,且strlen函數(shù)計算的是,'\\0',字符前的所有字符的個數(shù),故本題中strlen(a)應為2。數(shù)組定義以后系統(tǒng)就為其分配相應大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof運算符是計算變量或數(shù)組所分配到的內(nèi)存空間的大小,所以本題的sizeof(a)為7。
61.B
62.B
63.C嚴格按照格式進行輸入和輸出。%2d%3d,a是兩位輸入,b是三位,輸出時亦是這個格式。
64.Amain函數(shù)輸出字符串第6個元素對應的數(shù)據(jù),所以答案
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《鶴壁市??h順河村傳統(tǒng)村落空間設計研究》
- 商業(yè)思維在小學教育中的應用與探索
- 小學生德育教育中語文教學的特殊使命
- 2024版網(wǎng)絡安全防護安裝安全協(xié)議3篇
- 閩建安法律單選練習試題及答案
- 《良附滴丸治療胃脘痛(寒凝氣滯證)的臨床研究》
- 《電腦音樂技術在高中音樂課堂創(chuàng)作環(huán)節(jié)的實踐研究》
- 《水閘液壓啟閉設備電氣控制系統(tǒng)的研究》
- 二零二五年度半導體產(chǎn)業(yè)競業(yè)限制補償金執(zhí)行細則3篇
- 家庭教育對青少年情感成長的作用
- 17J008擋土墻(重力式、衡重式、懸臂式)圖示圖集
- 2025年濟南鐵路局招聘筆試參考題庫含答案解析
- 2024至2030年中國大顆粒尿素行業(yè)投資前景及策略咨詢研究報告
- 《長方體和正方體》復習(教案)
- 超聲技術報告范文
- 思想道德與法治(同濟大學)知到智慧樹章節(jié)答案
- 小學語文閱讀理解24個萬能答題公式
- 湖南省懷化市2023-2024學年七年級上學期語文期末試卷(含答案)
- 《廊坊市綠色建筑專項規(guī)劃(2020-2025)》
- 2024-2030年中國濕巾行業(yè)發(fā)展趨勢及競爭策略分析報告
- 2023-2024學年全國小學二年級上語文人教版期末試卷(含答案解析)
評論
0/150
提交評論