




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年遼寧省錦州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.二維數(shù)組A的元素都是6個字符組成的串,行下標i的范圍從0到8,列下標j的范圈從1到10,則存放A至少需要()個字節(jié)。
A.90B.180C.240D.270
2.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf(“%d”,a,b,c);
B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%d”,p);
D.scanf(“%d”,&p);
3.下列敘述中正確的是()。
A.在賦值表達式中,賦值號的左邊既可以是變量,也可以是任意表達式
B.實型變量中允許存放整型數(shù)
C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變
D.在C程序中,求余算符“%”兩邊的類型相同時才能進行運算
4.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結果是
A.1267B.1256C.1278D.1245
5.下列選項中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;
B.if(s1===s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(s1,s2==0)ST;
6.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
7.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
8.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()
A.2和4B.1和5C.4和2D.5和1
9.若有定義“inta=5,b=7;”,則表達式a%-(b%2)運算后,a的值為()。
A.0B.1C.11D.3
10.以下關于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
11.設一組初始記錄關鍵字序列(5,2,6,3,8),以第一個記錄關鍵字5為基準進行一趟快速排序的結果為()。
A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8
12.以下敘述中正確的是()。
A.C語言編譯系統(tǒng)對標識符的長度沒有規(guī)定
B.C語言標識符的規(guī)定長度因系統(tǒng)而異
C.C語言規(guī)定標識符長度最多允許16個字符,超長報錯
D.C語言規(guī)定以下劃線開頭的標識符長度必須大于1
13.具有10個葉子結點的二叉樹中有()個度為2的結點。
A.8B.9C.10D.11
14.設S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)
15.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
16.有以下函數(shù)定義:
voidfun(intn,doublex){……}
若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調用語句是A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
17.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內(nèi),可被各個應用程序所共享。
A.視圖B.消息C.數(shù)據(jù)D.關系
18.下列敘述中正確的是:()A.C語言程序總是從第一個定義的函數(shù)開始執(zhí)行
B.C語言程序中,函數(shù)類型必須進行顯式聲明
C.C語言程序中,return語句必須放在函數(shù)的最后
D.C語言程序中,return語句中表達式的類型應該與函數(shù)的類型一致
19.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
20.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()
A.78,45,57,25,41,89
B.89,78,57,25,41,45
C.89,78,25,45,41,57
D.89,45,78,41,57,25
二、2.填空題(20題)21.在具有n個單元、順序存儲的循環(huán)隊列中,隊滿時,共有【】個元素。
22.設一棵完全二叉樹共有500個結點,則在該二叉樹中有【】個葉子結點。
23.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
24.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
25.以下程序運行后的輸出結果是______。
main()
inta.b,c;
a=10;b=20;c=(a%b<)||{a/b>1);
printf("%d%d%dn",a,b,c);
}
26.若有如下結構體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。
【】t[20]
27.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。
28.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
29.當運行以下程序時,輸入abcd,程序的輸出結果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
30.以下程序運行后的輸出結果是【】。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
31.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。
32.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>
doublerun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++)
{【】;
fac=fac/k;
s=s+fac;
}
}
33.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。
34.在一棵二叉樹中,度為0的結點的個數(shù)為n0,度為2的結點的個數(shù)為n2,則有n0=【】。
35.以下程序的功能是:從鍵盤上輸入若干學生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數(shù)結束輸入。填空。
main()
{floatx[1000],sum,=0.0,avea;
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(【】)frintf("%f\n",x[i]);
}
36.設有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
37.以下程序的功能是調用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>
#include<stdio.h>
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;f=【】;}
returnm;
}
main()
{printf("m=%d\n",【】);}
38.在樹形結構中,樹根結點沒有______。
39.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
40.計算機網(wǎng)絡按通信距離來劃分可以分為【】。
三、1.選擇題(20題)41.數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程
42.信息隱蔽的概念與下述哪一種概念直接相關?
A.軟件結構定義B.模塊獨立性C.模塊類型的劃分D.模塊耦合度
43.有以下程序;voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運行后的輸出結果是()。
A.ABCDDEFEDBDB.abeDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
44.若有以下說明和定義typedefint*INTEGER;INTEGERp,*q;以下敘述正確的是A.p是int型變量
B.p是基類型為int的指針變量
C.q是基類型為int的指針變量
D.程序中可用INTEGER代替int類型名
45.下列敘述中,正確的一條是()
A.語句"goto12;"是合法的
B.for(;;)語句相當于while(1)語句
C.if(表達式)語句中,表達式的類型只限于邏輯表達式
D.break語句可用于程序的任何地方,以終止程序的執(zhí)行
46.以下能正確進行字符串賦值操作的是______。
A.char*sss;*sss="hello!";
B.char*sss;sss="hello!";
C.charsss[8];sss="hello!";
D.charsss[8];*sss="hello!";
47.若有定義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
48.有以下程序:mian(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結果是()。
A.1*1=11*2=21*3=3
B.1*1=11*2=21*3=32*1=22*2=42*2=42*3=63*1=33*3=9
C.1*1=1
D.1*1=11*2=22*2=42*1=22*2=41*3=32*3=63*3=93*1=33*2=63*3=9
49.在數(shù)據(jù)結構中,從邏輯結構上看可以分成______。
A.動態(tài)結構和靜態(tài)結構B.線性結構和非線性結構C.內(nèi)部結構和外部結構D.緊湊結構和非緊湊結構
50.對于下列字符串,說明表達式strlen(s)值的是()
chars[10]=('a','\n','a','b','\t','c'};
A.10B.1C.6D.7
51.在下列選項中,沒有構成死循環(huán)的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
52.若有如下程序:main(){intx=3,y=4,z;z=(x+(y-=X*X));printf("%d,%d\n",y,z);}則程序執(zhí)行后的輸出結果是()。
A.-4,2B.-5,-2C.-5,-1D.4,-2
53.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其輸出結果為______。
A.10B.5C.6D.編譯錯誤
54.有以下程序:#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=0);elseif(x!=5)printf("%d\n",x);}程序運行時,輸入的值在哪個范圍才會有輸出結果()。
A.不等于5的整數(shù)B.大于0且不等5的整數(shù)C.大于0或等于5的整數(shù)D.小于5的整數(shù)
55.若要對a進行++運算,則a應具有下面說明
A.inta[3][2];
B.char*a[]{"12","ab"};
C.char(*a)[3];
D.intb[10],*a=b;
56.待排序的關鍵碼序列為15,20,9,30,67,65,45,90,要按關鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關鍵碼15被放到第()個位置。
A.2B.3C.4D.5
57.有以下程序main(){inta[][3]=({1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n".a(chǎn)[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結果是
A.7B.6C.8D.無確定值
58.對于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;
A.變量x所占內(nèi)存的長度等于成員c的長度
B.變量x的地址和它的各成員地址都是相同的
C.可以在定義時對x初始化
D.不能對變量x賦值,故x=y非法
59.有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個連續(xù)節(jié)點。structnode{intdata;structnode*next;}*P,*q,*r;現(xiàn)要將q所指節(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),
以下不能完成指定操作的語句是()。
A.p->next=q->next;
B.p->next=P->next->next;
C.p->next=r;
D.p=q->next;
60.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
四、選擇題(20題)61.
62.下列有關數(shù)據(jù)庫的描述,正確的是A.數(shù)據(jù)處理是將信息轉化為數(shù)據(jù)的過程
B.數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的邏輯結構改變時,數(shù)據(jù)的存儲結構不變
C.關系中的每一列稱為元組,一個元組就是一個字段
D.如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字
63.下列關于棧的描述錯誤的是()。
A.棧按“先進后出”組織數(shù)據(jù)B.棧是特殊的線性表,只能在一端插入或刪除數(shù)據(jù)C.棧具有記憶功能D.棧只能順序存儲
64.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
65.下列是用戶自定義標識符的是()。
A._wlB.3_xyC.intD.LINE-3
66.最初的計算機編程語言是()。
A.機器語言B.匯編語言C.高級語言D.低級語言
67.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
68.以下是正確C語言實型常量的是()。
A..e—1B.e一1C.一1eD.1e一1
69.有以下程序:
程序的運行結果是()。
A.1,2,3,4,B.1,0,7,0,C.1,4,5,9,D.3,4,8,10,
70.有以下程序段:
以下選項中表達式的值為11的是()。
A.
B.
C.
D.
71.
72.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.
73.有以下程序
#include"stdio.h"
main()
{structdate
{intyear,month,day;}today;
printf("%d\n",sizeof(structdate));
}
程序的運行結果是
A.6B.8
C.12D.10
74.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)是()。
A.seanf
B.getchar
C.gets
D.getc
75.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
76.
77.在以下選項中,能IE確聲明數(shù)組并進行初始化的語句是()。
A.str=newDimension(1,2,3);
B.str=newdimension(1,2,3);
C.str:newArray(1,2,3);
D.str=newarray(1,2,3);
78.讀出以下語句的輸出結果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
79.若有定義“inta=5,b=7;”,則表達式a%-(b%2)運算后,a的值為()。
A.0B.1C.11D.3
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:求兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若nmnl和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸也的最大公約數(shù)為27。請改正程序中的錯誤,使它能得出正確結果。注意:不要改動main函數(shù),不得增行或硼行,也不得更改程序的結構!試題程序:
六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.A
2.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個選項中,C選項符合要求。故本題答案為C選項。
3.D選項A,在賦值表達式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達式,不能是任意表達式,右邊也不得出現(xiàn)表達式;選項8中,整型變量中只能存放整型數(shù),但實型變量中能存放實型數(shù),也能存放整型數(shù);選項C,表達式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項D,要求取余運算符"%"兩邊的類型均為整型。
4.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。
5.A解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCⅡ表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,s1)=0)ST,若s2等于s1,則返回值0,0等于0,所以邏輯表達式strcmp(s2,s1)=0為真執(zhí)行ST。
6.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤(注:數(shù)組元素下標從0開始);B中,*a+1指的是將數(shù)組a的第一個元素加1;選項C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
7.C解析:在C語言中,字符串以'\\0'作為結束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
8.A
9.A本題考查“%”運算符的使用。運算符“%”是整數(shù)除法的余數(shù)。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
10.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。
11.C
12.B對于標識符的長度(即一個標識符允許的字符個數(shù)),C語言編譯系統(tǒng)是有規(guī)定的,即標識符的前若干個字符有效,超過的字符將不被識別。不同的C語言編譯系統(tǒng)所規(guī)定的標識符有效長度是不同的。故本題答案為B選項。
13.B
14.D
15.C棧是先進后出的數(shù)據(jù)結構,在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
16.C解析:選項A中應將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型一個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調用函數(shù)時,不應該再聲明其返回類型,故迭項D不正確.所以,4個選項中選項C符合題意。
17.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構造復雜的數(shù)據(jù)結構,以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復雜的關系-故答案為C。
18.DC程序程序總是從main函數(shù)開始執(zhí)行。C程序中如果沒有對函數(shù)類型進行說明,則該函數(shù)默認為int類型。return語句可以放在函數(shù)任意位置,但是return之后的語句不會被執(zhí)行。
19.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)
20.B
21.n-1
22.250250解析:所謂完全二叉樹是指除最后一層外,每—層上的結點數(shù)均達到最大值;在最后—層上只缺少右邊的若干結點。具有n個結點的完全二叉樹,其父結點數(shù)為int(n/2),而葉子結點數(shù)等于總結點數(shù)減去父結點數(shù)。本題n=500,故父結點數(shù)等于int(500/2)=250,葉子結點數(shù)等于500-25=250。
23.調試調試
24.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
25.1020010200解析:本題的關鍵在于求表達式(a%b<1)‖a/b>1)的值。已知a=10,b=20,所以a%b=10,因此(a%b<1)為“假”。而a/b=0,因此(a/b>1)亦為“假”。,D運算的兩邊同時為“假”,所以整個表達式的值為。“假”,即c等于0。所以,本題最終輸出為:10200。
26.strudctSTRUstrudctSTRU解析:結構件類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結構體類型的定義:
struct結構體類型名
{
成員項表;
};
定義結構體變量的的形式為:
struct結構體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
27.2525解析:#NAME?
28.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內(nèi)部結構和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。
29.a*b*c*d*a*b*c*d*解析:程序中的變量i用于存放字符串str的長度,執(zhí)行while語句,通過分析可知,字符串第2*i項的值可由第i項的值得到;第2*i-1項直接賦值為。號,i減1,如此反復直到不滿足i>0的條件時,輸出運行后的字符串。
30.1371513715解析:本題中,定義了個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
31.-16-16解析:將賦值運算符右側的“表達式”的值賦給左側的變量,并且賦值運算符按照“自右而左”的結合順序,本題表達式應先算m的值為10,再運算y的值為8,最后計算y=y+(-8)=-8+(-8)=-16。
32.k=k*ik=k*i解析:本題小通過for循環(huán)求s表達式中每一項的和,表達式“fac=fac/k;”求的是每一項的值,所以k的值應為n!,在求n!的時候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故木題填k=k*i。
33.4.0或44.0或4
34.n2+1
35.aasum/n或sum/(float)n或sum/(double)nx[i]<sve或!(x[i]>=sve)或sve>x[i]a\r\na\r\nsum/n或sum/(float)n或sum/(double)n\r\nx[i]<sve或!(x[i]>=sve)或sve>x[i]
36.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
37.(-1)*ffun(10)(-1)*f\r\nfun(10)解析:本題利用一個fun函數(shù)來完成題目要求的計算。程序中變量f起的作用是控制i*f的符號,偶數(shù)位都為負值,第一處填(-1)*f。在main函數(shù)中要輸出fun函數(shù)返回的m值,因此第二處填fun(10),實參10傳給形參n。
38.前件前件
39.44解析:在主函數(shù)中,語句p=a;p++使用指針p指向數(shù)組a[1],所以輸出結果為4。
40.局域網(wǎng)和廣域網(wǎng)局域網(wǎng)和廣域網(wǎng)
41.B解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。
42.B解析:采用信息隱蔽的目的就是為了確保每個模塊的獨立性。
43.B解析:本題中的函數(shù)ss()有兩個參數(shù),一個是字符型指針變量s,另一個是字符型變量t。在函數(shù)中通過一個while循環(huán),在循環(huán)中一次取出s指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“*s=t-'a'+'A';”(若是小寫字母,則把它轉換成大寫字母)語句。在主函數(shù)中執(zhí)行函數(shù)調用ss(str1,c),很顯然是把str1數(shù)組中所有字符“d”變成大寫字母,其他字符不變。所以4個選項中B正確。
44.B解析:語句typedef\u3000int\u3000*\u3000INTEGER;定義了一個新類型名INTEGER,因此語句INTEGERp,*\u3000q;就相當于int\u3000*\u3000p,*\u3000*\u3000q;。
45.B
46.B
47.C解析:“p”是指針變量,指向一個地址:“*p”,為p指針所指向地址的內(nèi)容。
48.B解析:在一個循環(huán)體內(nèi)又完整地包含了另一個循環(huán)體的,稱為循環(huán)嵌套,外循環(huán)的i值分別為1、2、3,當i=1時,內(nèi)循環(huán)j=1時,輸出1*1=1;當內(nèi)循環(huán)j=2時,輸出1*2=2;當內(nèi)循環(huán)j=3時,輸出1*3=3;當i=2時,內(nèi)循環(huán)j=2時,輸出2*2=4;當內(nèi)循環(huán)j=3時,輸出2*3=6;當i=1,內(nèi)循環(huán)j=3時,輸出3*3=9。
49.B
50.C解析:strlen(s)返回s字符串中字符的個數(shù),若s是個數(shù)組,則返回數(shù)組元素的個數(shù)。
51.C
52.B解析:因為x的初始值為3,所以x*x=9,而y的初始值為4,所以y-=9后,y為-5,z=(x+(y-=x*x))=3+(-5)=-2。故程序執(zhí)行后的輸出結果是-5,-2,選項B正確。
53.B解析:在C語言中,宏定義是直接替換的,所以在c+a>b?a:b這個條件表達式中,c+a>b為真,所以用a的值作為整個表達式的值,而a的值為5,所以整個表達式的值為5。
54.B解析:題目中,雖然else和第二個if不在同一行上,但等價于在同一行上,因此,程序的意思是當x大于0且不等于5時將其打印出來。
55.A解析:左移1位,相當于乘以2,題中的x的值是一個八進制,轉換為+進制數(shù)是32,再乘以2,x的值為64,以%。八進制形式輸出,顯示為100。
56.A解析:選擇排序的基本思想是掃描整個線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個位置,元素15則放在第二個位置。
57.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1][1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項為所選。
58.C解析:本題主要考查的知識點是聯(lián)合體的內(nèi)存使用。聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,各個成員分量全部是從低地址方向開始使用內(nèi)存單元。不能在定義共用體變量時對它初始化。
59.D解析:本題的考點是鏈表的指針操作。要想將q所指節(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),從圖上看,應該將p->next=r,由于q->next、p->next->next都指向r,因此p->next=q->next、p->next=p->next->next同樣可以實現(xiàn)指定的操作。因此選項A、B、C都能完成指定操作。而選項D“p=q->next”只是將指針p指向了r,不能完成指定的操作。因此正確選項是D。
60.C解析:選項A中定義了一個字符型數(shù)組并賦初值,故選項A正確;選項B定義了一個字符型數(shù)組t并初始化,然后定義了一個指針變量s并讓它指向t,故選項B正確;選項C先定義?一個長度為10的字符型數(shù)組,然后在給它賦值,這時應該分別給數(shù)組中的每個元素賦值,故選項C不正確;選項D中先定義了一個長度為10的字符型數(shù)組s,然后通過字符串拷貝函數(shù)將字符串“abedefs”賦值給它,選項D正確。所以,4個選項中選項C符合題意。
61.D
62.D數(shù)據(jù)處理是指將數(shù)據(jù)轉換成信息的過程,故選項A敘述錯誤。數(shù)據(jù)的物理獨立性是指數(shù)據(jù)的物理結構的改變,不會影響數(shù)據(jù)庫的邏輯結構,故選項B敘述錯誤。關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故選項C敘述錯誤。所以本題選D。
63.B\n棧是限定在一端進行插入與刪除的線性表,允許插入和刪除元素的一端稱為棧頂,另一端為棧底。棧頂元素是最后被插入的元素,也是最先被刪除的元素,即棧是按照”先進后出”的原則組織數(shù)據(jù)的。棧具有記憶功能,帶鏈的棧的結點存儲順序與其邏輯順序可以不一致。
\n
64.D本題考查C語言中變量類型的轉換。
C語言中若參與運算的變量的數(shù)據(jù)類型不同,則先轉換成同一類型,然后進行運算。轉換數(shù)據(jù)始終往長度增加的方向進行,以確保精確度,如int和long運算,則將int轉換為long再運算,所有的浮點運算都是以雙精度(double)進行的。
題目中x、y都為double型數(shù)據(jù),而表達式3/2為兩個整型變量之間的計算,計算結果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結果為1。后面變?yōu)橛嬎銀=x+1,這時都需要變?yōu)閐ouble型數(shù)據(jù),結果為3.000000。
65.Ac語言規(guī)定用戶標識符由英文字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,由此可見選項S),D)是錯的;此外,C語言不允許用戶將關鍵字作為標識符,而選項c)中的int是c語言的關鍵字。
66.A計算機編程語言有三類,機器語言,匯編語言,高級語言。最初的編程語言是機器語言。
67.D選項A中“\\\”為轉義字符,故選項A錯誤,選項B和C顯然不是字符串常量。選項D是一個字符串常量,稱為空串。
68.D所謂常量是指在程序運行過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。實型常量有兩種表示形式:十進制小數(shù)形式、指數(shù)形式。指數(shù)形式中e后面的指數(shù)必須是整數(shù),階碼標志e之前需要有數(shù)字,由此可知選項A,B,C錯誤。答案為D選項
69.B該題目中fun函數(shù)的功能是將二維數(shù)組
a中符合條件的值賦給一維數(shù)組的符合條件的元素。主函數(shù)
的功能是將符合條件的一維數(shù)組的元素進行輸出。
70.C→的運算優(yōu)先級比++高,此時,pt→x=10,執(zhí)行自加運算后為11。
71.C
72.C”anf(”%c”,&c),輸入的字符,題目中輸入了0,字符0,對應于ASCIl碼為48,因此for循環(huán)中,i的范圍從0~5,均小于48,if條件不成立,直接執(zhí)行下一條語句,執(zhí)行語句prinff,因此得到的結果是0,1,2,3,4。故答案為C選項。
73.A本題考查結構體類型所占用的內(nèi)存字節(jié)數(shù)。結構體占用的內(nèi)存字節(jié)數(shù)為各個成員變量所占內(nèi)存字節(jié)數(shù)的總和。題目中給出了一個結構體date,里面包括3個整型的成員變量,在TurboC中,每個整型變量占用2個字節(jié)的內(nèi)存,這3個整型變量總共占用6個字節(jié)的內(nèi)存。sizeof函數(shù)是返回對象所占內(nèi)存的大小。要注意,對于不同的編譯器,同樣類型的變量所占的內(nèi)存字節(jié)數(shù)不同,C語言的默認編譯器為TurboC。
74.C本題綜合考查了輸入函數(shù)的使用。scanf函數(shù)會將空格視為分隔符,getchar函數(shù)只能輸入單個字符,getc函數(shù)是文件操作函數(shù),顯然都不符合題意。通過gets函數(shù)輸入字符串時,輸入的空格被認為是字符串的一個字符。
75.A解析:理解復雜定義要掌握兩點:一、右結合原則.本題中的定義char*line[5];等價于char*(line[5]);;二、自外向內(nèi)分解成typedef語句。char*(line[5]);等價于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應該被分解成typedefcharB[5];B*line;其中B被定義成包含5個元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號不能省略。故本題應該選擇A。
76.C
77.C
78.D
79.A本題考查“%”運算符的使用。運算符“%”是整數(shù)除法的余數(shù)。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
80.B
81.
82.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通過P的移動來達\n\n\n\t到使P指向第一個不是*號的字符\n\n\n\tfor(;*p!=\0
;p++,str++)//把從第一個\n\n\n\t不是*號的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0
;//最后用\0作為字符串結束標志\n\n\n\t}\n\n\n\t【解析】題目中要求將字符串中的前導*號全部刪除首先將指針p移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結束符。\n2022-2023年遼寧省錦州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.二維數(shù)組A的元素都是6個字符組成的串,行下標i的范圍從0到8,列下標j的范圈從1到10,則存放A至少需要()個字節(jié)。
A.90B.180C.240D.270
2.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf(“%d”,a,b,c);
B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%d”,p);
D.scanf(“%d”,&p);
3.下列敘述中正確的是()。
A.在賦值表達式中,賦值號的左邊既可以是變量,也可以是任意表達式
B.實型變量中允許存放整型數(shù)
C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變
D.在C程序中,求余算符“%”兩邊的類型相同時才能進行運算
4.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結果是
A.1267B.1256C.1278D.1245
5.下列選項中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;
B.if(s1===s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(s1,s2==0)ST;
6.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
7.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
8.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()
A.2和4B.1和5C.4和2D.5和1
9.若有定義“inta=5,b=7;”,則表達式a%-(b%2)運算后,a的值為()。
A.0B.1C.11D.3
10.以下關于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
11.設一組初始記錄關鍵字序列(5,2,6,3,8),以第一個記錄關鍵字5為基準進行一趟快速排序的結果為()。
A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8
12.以下敘述中正確的是()。
A.C語言編譯系統(tǒng)對標識符的長度沒有規(guī)定
B.C語言標識符的規(guī)定長度因系統(tǒng)而異
C.C語言規(guī)定標識符長度最多允許16個字符,超長報錯
D.C語言規(guī)定以下劃線開頭的標識符長度必須大于1
13.具有10個葉子結點的二叉樹中有()個度為2的結點。
A.8B.9C.10D.11
14.設S為C語言的語句,計算機執(zhí)行下面算法時,算法的時間復雜度為()。A.n2B.O(nlgn)C.O(n)D.O(n2)
15.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
16.有以下函數(shù)定義:
voidfun(intn,doublex){……}
若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調用語句是A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
17.數(shù)據(jù)庫是______的集合,它具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內(nèi),可被各個應用程序所共享。
A.視圖B.消息C.數(shù)據(jù)D.關系
18.下列敘述中正確的是:()A.C語言程序總是從第一個定義的函數(shù)開始執(zhí)行
B.C語言程序中,函數(shù)類型必須進行顯式聲明
C.C語言程序中,return語句必須放在函數(shù)的最后
D.C語言程序中,return語句中表達式的類型應該與函數(shù)的類型一致
19.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
20.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()
A.78,45,57,25,41,89
B.89,78,57,25,41,45
C.89,78,25,45,41,57
D.89,45,78,41,57,25
二、2.填空題(20題)21.在具有n個單元、順序存儲的循環(huán)隊列中,隊滿時,共有【】個元素。
22.設一棵完全二叉樹共有500個結點,則在該二叉樹中有【】個葉子結點。
23.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
24.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
25.以下程序運行后的輸出結果是______。
main()
inta.b,c;
a=10;b=20;c=(a%b<)||{a/b>1);
printf("%d%d%dn",a,b,c);
}
26.若有如下結構體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。
【】t[20]
27.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。
28.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
29.當運行以下程序時,輸入abcd,程序的輸出結果是【】。
insert(charstr[])
{inti;
i=stolen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",sir);
}
main()
{charstr[40];
seanf("%s",str);insert(str);
}
30.以下程序運行后的輸出結果是【】。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
31.若有定義intm=5,y=2,則執(zhí)行表達式y(tǒng)+=y-=m*=y后,y的值為【】。
32.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>
doublerun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++)
{【】;
fac=fac/k;
s=s+fac;
}
}
33.設x和y均為int型變量,且x=1,y=2,則表達式2.0+y/x的值為【】。
34.在一棵二叉樹中,度為0的結點的個數(shù)為n0,度為2的結點的個數(shù)為n2,則有n0=【】。
35.以下程序的功能是:從鍵盤上輸入若干學生的成績,統(tǒng)計計算出平均成績,并輸出低于平均分的學生成績,用輸入負數(shù)結束輸入。填空。
main()
{floatx[1000],sum,=0.0,avea;
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(【】)frintf("%f\n",x[i]);
}
36.設有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
37.以下程序的功能是調用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>
#include<stdio.h>
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;f=【】;}
returnm;
}
main()
{printf("m=%d\n",【】);}
38.在樹形結構中,樹根結點沒有______。
39.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
40.計算機網(wǎng)絡按通信距離來劃分可以分為【】。
三、1.選擇題(20題)41.數(shù)據(jù)庫系統(tǒng)的核心是()
A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.模擬模型D.軟件工程
42.信息隱蔽的概念與下述哪一種概念直接相關?
A.軟件結構定義B.模塊獨立性C.模塊類型的劃分D.模塊耦合度
43.有以下程序;voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運行后的輸出結果是()。
A.ABCDDEFEDBDB.abeDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
44.若有以下說明和定義typedefint*INTEGER;INTEGERp,*q;以下敘述正確的是A.p是int型變量
B.p是基類型為int的指針變量
C.q是基類型為int的指針變量
D.程序中可用INTEGER代替int類型名
45.下列敘述中,正確的一條是()
A.語句"goto12;"是合法的
B.for(;;)語句相當于while(1)語句
C.if(表達式)語句中,表達式的類型只限于邏輯表達式
D.break語句可用于程序的任何地方,以終止程序的執(zhí)行
46.以下能正確進行字符串賦值操作的是______。
A.char*sss;*sss="hello!";
B.char*sss;sss="hello!";
C.charsss[8];sss="hello!";
D.charsss[8];*sss="hello!";
47.若有定義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
48.有以下程序:mian(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結果是()。
A.1*1=11*2=21*3=3
B.1*1=11*2=21*3=32*1=22*2=42*2=42*3=63*1=33*3=9
C.1*1=1
D.1*1=11*2=22*2=42*1=22*2=41*3=32*3=63*3=93*1=33*2=63*3=9
49.在數(shù)據(jù)結構中,從邏輯結構上看可以分成______。
A.動態(tài)結構和靜態(tài)結構B.線性結構和非線性結構C.內(nèi)部結構和外部結構D.緊湊結構和非緊湊結構
50.對于下列字符串,說明表達式strlen(s)值的是()
chars[10]=('a','\n','a','b','\t','c'};
A.10B.1C.6D.7
51.在下列選項中,沒有構成死循環(huán)的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
52.若有如下程序:main(){intx=3,y=4,z;z=(x+(y-=X*X));printf("%d,%d\n",y,z);}則程序執(zhí)行后的輸出結果是()。
A.-4,2B.-5,-2C.-5,-1D.4,-2
53.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其輸出結果為______。
A.10B.5C.6D.編譯錯誤
54.有以下程序:#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=0);elseif(x!=5)printf("%d\n",x);}程序運行時,輸入的值在哪個范圍才會有輸出結果()。
A.不等于5的整數(shù)B.大于0且不等5的整數(shù)C.大于0或等于5的整數(shù)D.小于5的整數(shù)
55.若要對a進行++運算,則a應具有下面說明
A.inta[3][2];
B.char*a[]{"12","ab"};
C.char(*a)[3];
D.intb[10],*a=b;
56.待排序的關鍵碼序列為15,20,9,30,67,65,45,90,要按關鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關鍵碼15被放到第()個位置。
A.2B.3C.4D.5
57.有以下程序main(){inta[][3]=({1,2,3},{4,5,0}},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n".a(chǎn)[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結果是
A.7B.6C.8D.無確定值
58.對于下列定義,不正確的敘述是()。uniondata{inta;charb;doublec;}x=y;
A.變量x所占內(nèi)存的長度等于成員c的長度
B.變量x的地址和它的各成員地址都是相同的
C.可以在定義時對x初始化
D.不能對變量x賦值,故x=y非法
59.有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個連續(xù)節(jié)點。structnode{intdata;structnode*next;}*P,*q,*r;現(xiàn)要將q所指節(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),
以下不能完成指定操作的語句是()。
A.p->next=q->next;
B.p->next=P->next->next;
C.p->next=r;
D.p=q->next;
60.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
四、選擇題(20題)61.
62.下列有關數(shù)據(jù)庫的描述,正確的是A.數(shù)據(jù)處理是將信息轉化為數(shù)據(jù)的過程
B.數(shù)據(jù)的物理獨立性是指當數(shù)據(jù)的邏輯結構改變時,數(shù)據(jù)的存儲結構不變
C.關系中的每一列稱為元組,一個元組就是一個字段
D.如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字
63.下列關于棧的描述錯誤的是()。
A.棧按“先進后出”組織數(shù)據(jù)B.棧是特殊的線性表,只能在一端插入或刪除數(shù)據(jù)C.棧具有記憶功能D.棧只能順序存儲
64.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
65.下列是用戶自定義標識符的是()。
A._wlB.3_xyC.intD.LINE-3
66.最初的計算機編程語言是()。
A.機器語言B.匯編語言C.高級語言D.低級語言
67.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
68.以下是正確C語言實型常量的是()。
A..e—1B.e一1C.一1eD.1e一1
69.有以下程序:
程序的運行結果是()。
A.1,2,3,4,B.1,0,7,0,C.1,4,5,9,D.3,4,8,10,
70.有以下程序段:
以下選項中表達式的值為11的是()。
A.
B.
C.
D.
71.
72.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.
73.有以下程序
#include"stdio.h"
main()
{structdate
{intyear,month,day;}today;
printf("%d\n",sizeof(structdate));
}
程序的運行結果是
A.6B.8
C.12D.10
74.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)是()。
A.seanf
B.getchar
C.gets
D.getc
75.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
76.
77.在以下選項中,能IE確聲明數(shù)組并進行初始化的語句是()。
A.str=newDimension(1,2,3);
B.str=newdimension(1,2,3);
C.str:newArray(1,2,3);
D.str=newarray(1,2,3);
78.讀出以下語句的輸出結果是()。
intx=10,y=10;
printf(“%d%d\n”,x--,--y);
A.1010B.99C.910D.109
79.若有定義“inta=5,b=7;”,則表達式a%-(b%2)運算后,a的值為()。
A.0B.1C.11D.3
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:求兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若nmnl和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸也的最大公約數(shù)為27。請改正程序中的錯誤,使它能得出正確結果。注意:不要改動main函數(shù),不得增行或硼行,也不得更改程序的結構!試題程序:
六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.A
2.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個選項中,C選項符合要求。故本題答案為C選項。
3.D選項A,在賦值表達式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達式,不能是任意表達式,右邊也不得出現(xiàn)表達式;選項8中,整型變量中只能存放整型數(shù),但實型變量中能存放實型數(shù),也能存放整型數(shù);選項C,表達式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項D,要求取余運算符"%"兩邊的類型均為整型。
4.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。
5.A解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCⅡ表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,s1)=0)ST,若s2等于s1,則返回值0,0等于0,所以邏輯表達式strcmp(s2,s1)=0為真執(zhí)行ST。
6.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤(注:數(shù)組元素下標從0開始);B中,*a+1指的是將數(shù)組a的第一個元素加1;選項C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
7.C解析:在C語言中,字符串以'\\0'作為結束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
8.A
9.A本題考查“%”運算符的使用。運算符“%”是整數(shù)除法的余數(shù)。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
10.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。
11.C
12.B對于標識符的長度(即一個標識符允許的字符個數(shù)),C語言編譯系統(tǒng)是有規(guī)定的,即標識符的前若干個字符有效,超過的字符將不被識別。不同的C語言編譯系統(tǒng)所規(guī)定的標識符有效長度是不同的。故本題答案為B選項。
13.B
14.D
15.C棧是先進后出的數(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省實驗中學廣州市天河區(qū)附屬實驗學校2021-2022學年八年級下學期期中物理試題(含答案)
- 基層中醫(yī)藥知識培訓課件
- (一模)哈三中2025屆高三第一次模擬考試 英語試題(含答案)
- 物業(yè)管理服務委托及管理費支付協(xié)議
- 安東尼奇妙的冒險故事讀后感
- 項目執(zhí)行工作計劃書與時間表安排
- 山西省晉中市太谷區(qū)職業(yè)中學校2024-2025學年高一上學期期末考試生物試題
- 企業(yè)文件保密制度表格化處理記錄
- 三農(nóng)問題社會調查方法與技術指導書
- 離職員工知識產(chǎn)權保密協(xié)議
- DB3410T 34-2024特定地域單元生態(tài)產(chǎn)品價值核算規(guī)范
- 無人機操控技術 課件全套 項目1-6 緒論-無人機自動機場
- 江蘇紅豆實業(yè)股份有限公司償債能力分析
- 青島中石化輸油管道爆炸事故調查報告
- 2024年蘇州職業(yè)大學高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 充電樁采購安裝投標方案(技術方案)
- 教科版小學科學六年級下冊單元練習試題及答案(全冊)
- 《Java程序設計》電子課件
- 乳腺癌患者的疼痛護理課件
- 研課標說教材修改版 八年級下冊
- 江西宜春城市文化介紹
評論
0/150
提交評論