版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年吉林省四平市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有說明charc[7]={'s','t','r','i','n','g'};則對元素的非法引用是()。
A.c[0]B.c[9-6]C.c[4*2]D.c[2*3]
2.有下列程序:
main()
{inty=20;
do{y--;}while(--y);
phntf("%d\n",y--);
}
當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。
A.-1B.1C.4D.0
3.下列程序段的時(shí)間復(fù)雜度為()。A.O(n)B.O(n-1)C.O(n2)D.O(log2n)
4.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}其輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
5.設(shè)a=l,b=2,c=3,d=4,則表達(dá)式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.4B.3C.2D.1
6.就平均查找速度而言,下列查找速度從慢至快的關(guān)系是()
A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半
7.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序運(yùn)行后的輸出結(jié)果是()。A.2B.1C.0D.3
8.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
9.下列條件語句中,功能與其他語句不同的是()。
A.if(a)printf("%d\n",x);elseprintf("%d\n",y);
B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);
C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);
D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
10.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()
A.堆排序B.插入排序C.冒泡排序D.快速排序
11.關(guān)于指針,以下說法正確的是()。A.可以直接向指針中寫入數(shù)據(jù)
B.若指針指向變量,則可以向指針?biāo)竷?nèi)存單元寫入數(shù)據(jù)
C.指針可以指向內(nèi)存中任何位置,并寫入數(shù)據(jù)
D.兩個(gè)指針可以通過加運(yùn)算求和,形成一個(gè)功能更強(qiáng)大的指針
12.以下敘述正確的是()。
A.C語言程序是由過程和函數(shù)組成的
B.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))
C.C語言函數(shù)不可以單獨(dú)編譯
D.C語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在
13.
14.設(shè)森林F對應(yīng)的二叉樹為B,它有m個(gè)結(jié)點(diǎn),B的根為p,p的右子樹的結(jié)點(diǎn)個(gè)數(shù)為n,森林F中第一棵樹的結(jié)點(diǎn)的個(gè)數(shù)是()。
A.m-nB.m-n-1C.n+1D.不能確定
15.以下敘述中錯(cuò)誤的是()。
A.線性結(jié)構(gòu)也能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B.線性結(jié)構(gòu)一定能采用順序存儲(chǔ)結(jié)構(gòu)
C.有的非線性結(jié)構(gòu)也能采用順序存儲(chǔ)結(jié)構(gòu)
D.非線性結(jié)構(gòu)一定不能采用順序存儲(chǔ)結(jié)構(gòu)
16.有以下程序
#include<stdio.h>
main()
{ini,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j)>3)break;
m=i*j;
}
}
printf("m=%d\n",m);
}
程序運(yùn)行后的輸出結(jié)果是A.m=6B.m=2C.m=4D.m=5
17.若有說明語句:charc='\72'則變量c()。
A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說明不合法,c的值不確定
18.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}執(zhí)行程序時(shí),給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45
19.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新為defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
20.下列關(guān)于棧敘述正確的是A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠(yuǎn)不能被刪除D.上述三種說法都不對
二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
22.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
23.在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為【】。
24.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
25.下列程序的運(yùn)行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
26.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
27.以下程序的輸出結(jié)果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
28.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
29.下列程序段的運(yùn)行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
pfintf("%d,%d",y,x);
30.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c=′y′;}
31.若用0至9之間不同的三個(gè)數(shù)構(gòu)成一個(gè)三位數(shù),下面程序?qū)⒔y(tǒng)計(jì)出共有多少種方法。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j,k,count=0;
for(i=0;i<=9;i++)
for(j=0;i<=9;j++)
if(【】)continue;
elsefor(k=0;k<=9;k++)
if(【】)count++;
printf("%d",count);}
32.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
33.若有如下結(jié)構(gòu)體說明:
structSIRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。
【】t[20]
34.下列程序段的運(yùn)行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
35.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
36.以下函數(shù)用來求出2個(gè)整數(shù)之和,并通過形參將結(jié)果傳回。
voidfunc(intx,inty,【】z)
{*z=x+y;}
37.在______個(gè)容量為32的循環(huán)隊(duì)列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊(duì)列中共有______個(gè)元素。
38.下面的函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2拼接到字符串str1后面的功能。請?zhí)羁帐怪暾?/p>
char*strcat(str1,str2)
char*str1,*str2;
{char*t=str1;
while(【】)str1++;
while(【】);
return(t);}
39.設(shè)x、y、z為整型變量,且x=2,y=3,z=4,當(dāng)執(zhí)行以下語句后,x的值是______。
x*=(y++)+(--z);
40.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
三、1.選擇題(20題)41.有以下程序:main(){intx[]={1,3,5,7,2,4,6,0),i,j,k;for(i=0;i<3;i++)for(j=2;i>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。
A.7.53102e+007B.01234567C.7.63105e+007D.1.35702e+007
42.下列運(yùn)算符中,不屬于關(guān)系運(yùn)算符的是______。
A.+=B.!=C.<=D.==
43.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b);}
A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9
44.定義int*swap()指的是______。
A.—個(gè)返回整型值的函數(shù)swap()
B.—個(gè)返回指向整型值指針的函數(shù)swap()
C.—個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說法均錯(cuò)
45.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項(xiàng)中錯(cuò)誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
46.fprintf函數(shù)的一般調(diào)用方式是()
A.fprintf(格式字符串,文件指針,輸出表列);
B.fprintf(文件指針,格式字符串,輸出表列)
C.fprintf(文件指針,格式字符串,輸出表列);
D.fprintf(fp,格式字符串,輸出表列);
47.有以下程序:#include<stdio.h>#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);priatf("%d\n",i);}執(zhí)行后的輸出結(jié)果是()。
A.28B.22C.16D.4
48.有如下程序段:#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);}其輸出結(jié)果為______。
A.10B.5C.6D.編譯錯(cuò)誤
49.軟件需求分析階段的工作,可以分為四個(gè)方面需求獲取,需求分析,編寫需求規(guī)格說明書,以及()A.階段性報(bào)告B.需求評審C.總結(jié)D.以上都不正確
50.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試
51.已知形成鏈表的存儲(chǔ)結(jié)構(gòu)如下圖所示,則下述類型描述中的空白處應(yīng)填______。structlink{chardata;______;}node;
A.Structlinknext
B.link*next
C.structnextlink
D.Structlink*next
52.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A.9B.6C.11D.7
53.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
54.以下程序的輸出結(jié)果是()structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));}
A.10B.11C.51D.60
55.若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元,則應(yīng)填入()int*pp=_______malloc(sizeof(int));
A.intB.intC.(*int)D.(into*)
56.X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是______。
A.INPUTX,Y,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);
57.設(shè)有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.'\0'B.'0'C.不確定的值D.'0'的地址
58.以下不屬于對象的基本特點(diǎn)的是()
A.分類性B.多態(tài)性C.繼承性D.封裝性
59.有以下程序:#include<stdio,h>#include<string,h>struetSTU{intnam;floatTotalSeore;};voidf(strnctSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);}程序運(yùn)行后的輸出結(jié)果是()。
A.20045537B.20044550C.20042580D.20041703
60.下列關(guān)鍵字中,不屬于C語言變量存儲(chǔ)類別的是______。
A.registerB.autoC.externD.public
四、選擇題(20題)61.以下關(guān)于指針概念不正確的是()。
A.指針變量可以用整數(shù)賦值,但不可以用浮點(diǎn)數(shù)賦值
B.一個(gè)變量的地址稱為該變量的指針,一個(gè)指針變量只能指向同一類型的變量
C.只有同一類型的變量地址才能放到指向該類型變量的指針變量之中
D.只能將地址賦給指針變量
62.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是()。
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
63.下列敘述中錯(cuò)誤的是()。A.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致,
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫設(shè)計(jì)是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
64.
65.以下選項(xiàng)中,合法的是()。
A.charstr3[]={d,e,b,u,g,\0};
B.charstr4;str4="helloworld";
C.charname[10];name="china";
D.charstrl[5]="pass",str2[6];str2=strl;
66.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
67.
68.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫應(yīng)用系統(tǒng)
69.若有以下定義和語句
structa
{intn,m;};
structast[3]={{2,3},{4,5},{6,7}};
structa*p=st;
則以下錯(cuò)誤的引用是
A.(p++)->n;B.st[0].n;C.(*p).n;D.P=&st.m,
70.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。
A.0B.\0C.非0值D.NULL
71.(74)用鏈表表示線性表的優(yōu)點(diǎn)是()
A.便于插入和刪除操作
B.數(shù)據(jù)元素的物理順序與邏輯順序相同
C.花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少
D.便于隨機(jī)存取
72.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。A.A.(a<b)&&!c‖1
B.(!a==1)&&(!b==0)
C.a&&b
D.a||(b+b)&&(c-a)
73.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()
A.軟件結(jié)構(gòu)定義
B.模塊獨(dú)立性
C.模塊類型劃分
D.模擬耦合度
74.(43)下列關(guān)于隊(duì)列的敘述中正確的是______。
A.在隊(duì)列中只能插入數(shù)據(jù)
B.在隊(duì)列中只能刪除數(shù)據(jù)
C.隊(duì)列是先進(jìn)先出的線性表
D.隊(duì)列是先進(jìn)后出的線性表
75.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
76.有以下程序(注:字符a的ASCIl碼值為97)
#include<stdio.h>
main()
{char*s={"abc")
do
{printf("%d",*S%10");++S;}
while(*s);
}
隉序運(yùn)行后的輸出結(jié)果是()。
A.abcB.789C.7890D.979899
77.
78.以下敘述中正確的是()。
A.程序設(shè)計(jì)的任務(wù)就是編寫程序代碼并上機(jī)調(diào)試
B.程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計(jì)的任務(wù)就是確定所用算法
D.以上三種說法都不完整
79.若有定義語句:inta[21[3],*P[3];則以下語句中正確的是()。
A.p:a;B.p[0]=a;C.p[O]=&a[1][2];D.1a[1]=&a;
80.有以下程序:int*f(int*x,int*y){if(*x<*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);}程序運(yùn)行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<strin9.h>#include<stdi0.h>#defineM80voidproc(char*arr){inti,j,n;charch;n=strlen(arr):for(i=1;i<n;i++)//****found****{c=arr[i];j=i-1;while((j>=o)&&(ch<arr[j])){arr[j+1]=arr[j];j--;}arr[j+1]=ch;}}voidmain{chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf("Theoriginalstring:%s\n",a);proc(a);printf("Thestringaftersortin9:%s\n\n",a);}
六、程序設(shè)計(jì)題(1題)82.編程計(jì)算下列表達(dá)式:s=n!(n從鍵盤上輸入)
參考答案
1.C
2.D解析:本題考查do…while循環(huán)。當(dāng)--寸是0(即y是0)時(shí)結(jié)束循環(huán),輸出y--是先輸出y的值再將y的值減1。
3.B
4.C解析:本題考核的知識(shí)點(diǎn)是程序中算法的基本分析。sort()函數(shù)作用是將數(shù)組aa中的下標(biāo)為偶數(shù)的元素按大到小排序.主函數(shù)中首先定義了一個(gè)長度為10的數(shù)組并賦值,然后調(diào)用sort()函數(shù),將數(shù)組aa中奇數(shù)個(gè)元素的值按大到小排序,因此執(zhí)行完該函數(shù)后,數(shù)組中奇數(shù)個(gè)元素的值為9,7、5、3和1,故主函數(shù)中最后通過一個(gè)for循環(huán)輸出數(shù)組aa中各元素的值為9、2、7、4、5、6、3、8、1和10,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
5.D在三目運(yùn)算符中,優(yōu)先級相同,按從右到左的結(jié)合性計(jì)算,a<b?a:(c<d?a:d)c<d成立所以取值a,同理可得,選擇D選項(xiàng)
6.B
7.C在ifelse語句中else,總是與離它最近的配對。本題目中x勸1所以!x為0,所以執(zhí)行else齬句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1所以條件不成立,所以else部分的近.else語句不再執(zhí)行,所以y的值還是初始值0。
8.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計(jì)表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
9.D解析:選項(xiàng)A、選項(xiàng)B和選項(xiàng)C都是在a的值為0的時(shí)候輸出y,a不為0的時(shí)候輸出x,而選項(xiàng)D是在a為0的時(shí)候輸出x,a不為0的時(shí)候輸出y。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
10.A
11.BC語言中指針就是變量的地址,它必須有確定的基類型。當(dāng)指針指向某個(gè)變量時(shí),才能向其中寫入數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時(shí)不能寫入數(shù)據(jù),另外指針必須有基類型,只能指向基類型相同的變量,選項(xiàng)C錯(cuò)誤;指針只能與一個(gè)整數(shù)進(jìn)行運(yùn)算,即移動(dòng)指針,兩個(gè)指針不能運(yùn)算,選項(xiàng)D錯(cuò)誤。本題答案為B選項(xiàng)。
12.B解析:C語言中只有函數(shù)沒有過程,故選項(xiàng)A錯(cuò)誤;C語言可以嵌套調(diào)用,故選項(xiàng)B正確;C語言函數(shù)可以單獨(dú)編譯成.dll文件,故選項(xiàng)C錯(cuò)誤;C語言中除main函數(shù)以外,其他函數(shù)可作為單獨(dú)文件形式存在,故選項(xiàng)D也錯(cuò)誤。
13.D
14.A
15.D滿二叉樹與完全二叉樹均為非線性結(jié)構(gòu),但可以按照層次進(jìn)行順序存儲(chǔ)。本題答案為D選項(xiàng)。
16.A
17.A解析:C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)“\\”開頭的字符。其中,“\\ddd”表示用ASCII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的charc='\\72'H口表示占一個(gè)字符的變量c的ASCII碼值。
18.A函數(shù)intfun(intn)的功能是求1+2+…+n的值并返回。所以執(zhí)行程序時(shí),給變量x輸入10后,執(zhí)行語句“x=fun(x);”,X的值將變?yōu)?到10中10個(gè)整數(shù)的累加和,即55。
19.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。
20.A解析:在棧中,允許插人與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。故本題選A。
21.22解析:分析程序,a=2,b=-1,c=2時(shí),if語句的表達(dá)式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個(gè)程序中a、b、c的值沒做任何改變。
22.77解析:在C語言中,宏定義是直接替換的,所以在對表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。
在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。
23.63或26-163或26-1解析:在滿二叉樹中,每層結(jié)點(diǎn)都是滿的,即每層結(jié)點(diǎn)都具有最大結(jié)點(diǎn)數(shù)。深度為k的滿二叉樹,一共有2k-1個(gè)結(jié)點(diǎn),其中包括度為2的結(jié)點(diǎn)和葉子結(jié)點(diǎn)。因此,深度為7的滿二叉樹,一共有27-1個(gè)結(jié)點(diǎn),即127個(gè)結(jié)點(diǎn)。根據(jù)二叉樹的另一條性質(zhì),對任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。設(shè)深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為x,則改樹中葉子結(jié)點(diǎn)的個(gè)數(shù)為x+1。則應(yīng)滿足x+(x+1)=127,解該方程得到,x的值為63。結(jié)果上述分析可知,在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為63。
24.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語句的值應(yīng)當(dāng)為false,即為0。
25.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
26.21
27.1313解析:函數(shù)fun是一個(gè)遞歸函數(shù)。執(zhí)行fun(3);,x=3,x/2=1>0,又調(diào)用f(1),此時(shí),x=1,x/2=0,不滿足繼續(xù)遞歸調(diào)用的條件,輸出1,返回到fun(3)中,輸出3。所以本題的輸出結(jié)果為13。
28.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。
29.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8=20,此時(shí)y=8。
30.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調(diào)用函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
31.i==jk!i&&k!ji==j\r\nk!i&&k!j解析:本題用雙重for循環(huán)寫了一段0~9之間不同的3個(gè)數(shù)構(gòu)成一個(gè)三位數(shù)的程序,因?yàn)橐笕粩?shù)各個(gè)位數(shù)的數(shù)不能相同,所以第一個(gè)空if語句的條件應(yīng)為i==j,即當(dāng)兩個(gè)位數(shù)上的數(shù)相同的時(shí)候,不再執(zhí)行下面的操作,轉(zhuǎn)去執(zhí)行for循環(huán)的下一次循環(huán)。第二個(gè)空,需要判斷第三位上的數(shù)不能與其他兩位的數(shù)相同。
32.77解析:本題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。
33.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
定義結(jié)構(gòu)休變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,....
其中變量包括:一般變量、指針變量、數(shù)組變量等。
34.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。
35.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
36.int*
37.3131解析:設(shè)隊(duì)列容量為m,如果:rear>front,則隊(duì)列中元素個(gè)數(shù)為rear-front;如果rear<front,則隊(duì)列中元素個(gè)數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
38.*str1或*str1!='\0'或*str1!=0或*str1!=NUL*str1++=*str2++或*str1++=*str2*str2++*str1或*str1!='\\0'或*str1!=0或*str1!=NUL\r\n*str1++=*str2++或*str1++=*str2,*str2++解析:函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2連接到字符串str1后面,所以首先要找到字符串str1的串尾,根據(jù)C語言的語法規(guī)定,一個(gè)串的串尾—定是—個(gè)隱含字符“\\0”,而在程序中,對字符串中字符的訪問是通過兩個(gè)指針變量來完成的,因此要找到字符串str1的串尾,要判斷:str1是否為“\\0”,要找到字符串str2的串尾,要判斷*str2是否為“\\0”,程序中必須以使字符串中字符逐—順序體現(xiàn),所以在題中我們應(yīng)填寫“*str1”和“*str1++=*str2++”。
39.12。12。解析:表達(dá)式x*=(y++)+(--z)相當(dāng)于先進(jìn)行z的自減運(yùn)算,再執(zhí)行x=x*(y+z),最后y自加。因此,變量x的值為12,y和z的值分別是4和3。
40.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
41.A解析:主函數(shù)中定義了一個(gè)整型數(shù)組x,并初始化。接著執(zhí)行了一個(gè)二重for循環(huán),該二重循環(huán)的作用是將數(shù)組的前4個(gè)元素按從大到小排序,接著用了一個(gè)二重循環(huán)(也是冒泡算法)將數(shù)組的后4個(gè)元素按從小到大的順序排序,故最后依次輸出數(shù)組的元素值為75310246,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
42.A解析:+=是算術(shù)賦值運(yùn)算符。
43.B解析:本題考查兩個(gè)知識(shí)點(diǎn):自加自減運(yùn)算符和do-while循環(huán)語句。do-while循環(huán)條件是b--<0,所以循環(huán)體語句只執(zhí)行一次。
44.B解析:—個(gè)函數(shù)可以帶回—個(gè)整型值、字符值、實(shí)型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個(gè)返回整型指針的函數(shù)。
45.A解析:本題考核的知識(shí)點(diǎn)是指針變量的使用與空指針(NULL)基本概念.本題中定義了3個(gè)指向整型的指針變量p、q、w,并讓p指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整形變量指針的定義可知,可以給整型指針指向的變量賦一個(gè)常數(shù)值(表達(dá)式),故選項(xiàng)C和選項(xiàng)D是正確的;可以給指針變量賦一個(gè)同種類型的指針變量(或地址值),故選項(xiàng)B也是正確的;選項(xiàng)A錯(cuò)誤,因?yàn)閝不指向任何變量,給一個(gè)空指針指向的單元賦值是錯(cuò)誤的。所以,A選項(xiàng)為所選。
46.C
47.A解析:程序中的帶參宏定義,替換展開后為i=4+4*4+4/2+2*2+2=4+16+2+4+2=28。
48.B解析:在C語言中,宏定義是直接替換的,所以在c+a>b?a:b這個(gè)條件表達(dá)式中,c+a>b為真,所以用a的值作為整個(gè)表達(dá)式的值,而a的值為5,所以整個(gè)表達(dá)式的值為5。
49.B解析:需求分析階段的工作,可以概括為以下4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。本題的正確答案為選項(xiàng)B。
50.A本題主要考查軟件測試的基本知識(shí)。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個(gè)模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測試用例,多個(gè)模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時(shí)犯下的錯(cuò)誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個(gè)模塊連接起來,必須精心計(jì)劃,應(yīng)提交集成測試計(jì)劃、集成測試規(guī)格說明和集成測試分析報(bào)告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計(jì)時(shí)犯的錯(cuò)誤。
(3)確認(rèn)測試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時(shí)犯下的錯(cuò)誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計(jì)測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計(jì)測試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個(gè)計(jì)算機(jī)系統(tǒng)的元素與計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時(shí)犯下的錯(cuò)誤。
51.D解析:在單向鏈表中,由于每個(gè)結(jié)點(diǎn)需要存儲(chǔ)下一個(gè)結(jié)點(diǎn)的地址,且下一個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型與前一個(gè)結(jié)點(diǎn)的數(shù)據(jù)類型完全相同,故應(yīng)為structlink*next。
52.B解析:strcpy()函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開始的存儲(chǔ)單元,同時(shí)復(fù)制字符串結(jié)束標(biāo)志'\\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括'\\0'在內(nèi)的實(shí)際長度,故本題答案為B)
53.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
54.C
55.D
56.B解析:scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址。選項(xiàng)A不是C語言中的輸入語句,故選項(xiàng)A不正確;選項(xiàng)C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址,故選項(xiàng)C不正確;選項(xiàng)D不是C語言中的輸入語句,故選項(xiàng)D不正確:所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
57.A解析:本題涉及字符數(shù)組和指針兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上'\\0',所以題中數(shù)組str有11個(gè)元素;②ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。
58.C解析:對象的基本特點(diǎn)包括;標(biāo)識(shí)惟一性、分類性、多態(tài)性、封裝性和獨(dú)立性等。繼承性不屬于對象的基本特點(diǎn)。
59.D解析:函數(shù)f中定義了結(jié)構(gòu)體類型的變量P作為形參,在main函數(shù)中,將結(jié)構(gòu)體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內(nèi)容,但其改變對main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍然是main函數(shù)中初始化時(shí)的數(shù)據(jù)。
60.D解析:變量的存儲(chǔ)類別具體包含四種:自動(dòng)的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。
61.A指針是用來指示一個(gè)內(nèi)存地址的變量,因此只能將地址賦給指針變量,而不能是整數(shù)或浮點(diǎn)數(shù)。
62.D本題主要考查指針變量對數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個(gè)整型變量a,變量a的初值為4,然后是指針變量指向a,或者說將變量a所在存儲(chǔ)單元的地址值賦給指針變量。
在選項(xiàng)A中,很顯然,不全是地址,只有point表示地址,而*&a等價(jià)于*(&a),表示取一個(gè)數(shù)值。
在選項(xiàng)B中,也不都表示地址,其中*point表示數(shù)值,其他兩個(gè)表示地址。
在選項(xiàng)C中,與選項(xiàng)B類似,其中的*point表示數(shù)值。
在選項(xiàng)D中,都表示地址,是題目的選擇答案。
63.A解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識(shí)。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管其在計(jì)算機(jī)中的存儲(chǔ)方式。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)器里的實(shí)現(xiàn)。這兩者之間沒有必然的聯(lián)系。因此,選項(xiàng)A的說法是錯(cuò)誤
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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ǎng)老院入住老人家庭溝通與協(xié)作制度
- 企業(yè)品牌保護(hù)與維權(quán)制度
- 公共交通運(yùn)營安全管理責(zé)任制度
- 2026年云計(jì)算技術(shù)認(rèn)證試題全解
- 2026年環(huán)境工程師初級專業(yè)試題
- 2026年醫(yī)學(xué)考試臨床實(shí)踐與疾病診斷題集及解析
- 2026年委托腹帶合同
- 2026年微波消融治療同意書
- 2025年青島工程職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 檢驗(yàn)科廢棄物處理制度及流程
- 【《MMC-HVDC系統(tǒng)的仿真分析案例》1600字(論文)】
- 尼帕病毒病防治實(shí)戰(zhàn)
- 2025年全國國家版圖知識(shí)競賽(中小學(xué)組)題庫及參考答案詳解
- 2026年春季第二學(xué)期學(xué)校德育工作計(jì)劃及安排表:馳聘春程踐初心德育賦能強(qiáng)少年
- 2025年CFA真題及答案分享
- 話語體系構(gòu)建的文化外交策略課題申報(bào)書
- 飼料生產(chǎn)倉庫管理制度
- 《課程與教學(xué)論》教案
- 2旋挖鉆孔長護(hù)筒灌注樁專項(xiàng)施工方案
- WB/T 1066-2017貨架安裝及驗(yàn)收技術(shù)條件
- GB/T 5185-1985金屬焊接及釬焊方法在圖樣上的表示代號
評論
0/150
提交評論