




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年山東省德州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.VC6.0中int類型變量所占字節(jié)數(shù)是()。
A.1B.2C.3D.4
2.在一個(gè)雙向鏈表中,q的前一個(gè)節(jié)點(diǎn)為p,q的后一個(gè)節(jié)點(diǎn)為n,刪除q所指向節(jié)點(diǎn),則執(zhí)行()
A.deleteq;
B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;
C.q->prev=p->next;p->next=p->prev;deleteq;
D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;
E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;
F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;
3.對(duì)于n個(gè)元素,下列哪種操作時(shí)間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
4.有以下程序#include<stdi0.h>main(){inta[]={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;casel:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.3344B.2050C.3040D.0304
5.對(duì)于"int*pa[5];"的描述中,正確的是()。
A.pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素
B.pa是一個(gè)指向某數(shù)組中第5個(gè)元素的指針,該元素是int型變量
C.pa[5]表示某個(gè)元素的第5個(gè)元素的值
D.pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針
6.軟件開發(fā)模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
7.算法的時(shí)間復(fù)雜度是指A.算法的執(zhí)行時(shí)間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
8.針對(duì)二分查找算法,假設(shè)一個(gè)有序數(shù)組有136個(gè)元素,那么要查找到第10個(gè)元素,需要比較的元素為()
A.68,34,17,9,13,11,10
B.68,34,17,8,12,10
C.69,35,18,10
D.68,34,18,9,13,11,10
9.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運(yùn)行時(shí)輸入10.23.5并按<Enter>鍵,則輸出結(jié)果為()。
A.x=10.200000y=-3.200000
B.x=6.700000y=-13.700000
C.x=7.000000y=-3.500000
D.x=13.400000y=-7.000000
10.信息隱蔽的概念與下述哪一種概念直接相關(guān)?
A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型的劃分D.模塊耦合度
11.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
12.已知8個(gè)數(shù)據(jù)元素為(34,76,45,18,26,54,92,65),按照依次插入結(jié)點(diǎn)的方法生成一棵二叉排序樹后,最后2層上的結(jié)點(diǎn)總數(shù)為______。
A.1B.2C.3D.4
13.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
14.若有定義“intk=7,x=12;”,則以下表達(dá)式值為3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
15.
16.下列說法中錯(cuò)誤的是A.A.只能在循環(huán)體內(nèi)使用break語句
B.在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)
C.在while和do…while循環(huán)中,continue語句并沒有使整個(gè)循環(huán)終止
D.continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)判斷
17.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
18.
19.下列程序的輸出結(jié)果是()structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0].a+s[1].b;printf("%d\n",t);}
A.3B.4C.5D.6
20.fgetc函數(shù)的作用是從指定文件讀入—個(gè)字符,該文件的打開方式必須是______。
A.只讀B.追加C.讀或讀寫D.以上均正確
二、2.填空題(20題)21.在算法的4個(gè)特性中,算法必須能在執(zhí)行有限個(gè)步驟之后終止指的是算法的______特性。
22.已知a為8位二進(jìn)制數(shù),要想通過ab運(yùn)算使a的低5位變反(即0變1,1變0),高3位不變,b的值應(yīng)為【】。
23.若有語句:
inti=-19,j=i%4;
printf("%d\n",j);
則輸出結(jié)果是【】。
24.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
25.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。
26.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
27.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
28.單元測(cè)試又稱模塊測(cè)試,一般采用【】測(cè)試。
29.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==O‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
30.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
Printf("%d",a);
}
31.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intp=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
32.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
33.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
34.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=Y;Y=t;
printf(“%d,%d\n”,x,y);
}
35.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
36.以下程序的運(yùn)行結(jié)果是:【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
37.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
38.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。
39.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為______。
40.需求分析的最終結(jié)果是產(chǎn)生【】。
三、1.選擇題(20題)41.若有定義floata=25,b,*p=&b;,則下列對(duì)賦值語句*p=a;和p=&a;的正確解釋為()。
A.兩個(gè)語句都是將變量a的值賦予變量p
B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p
C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a
D.兩個(gè)語句都是使p指向變量a
42.對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是()
A.程序應(yīng)簡(jiǎn)單、清晰、可讀性好B.符號(hào)名的命名只要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無
43.C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是______。
A.%=B./C.=D.<=
44.以下定義語句中正確的是()。
A.inta=b=0;
B.charA=65+1,b='b';
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
45.以下程序的輸出結(jié)果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,A);}
A.31B.13C.10D.20
46.若有以下定義和語句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達(dá)式是______。
A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p
47.計(jì)算機(jī)的軟件系統(tǒng)一般分為()
A.系統(tǒng)軟件、應(yīng)用軟件與各種字處理軟件
B.操作系統(tǒng)、用戶軟件與管理軟件
C.系統(tǒng)軟件與應(yīng)用軟件
D.操作系統(tǒng)、實(shí)時(shí)系統(tǒng)與分的系統(tǒng)
48.設(shè)int型占2個(gè)字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
49.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是()A._mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.intk_2_001
50.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是______。
A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好
51.以下敘述中正確的是______。A.預(yù)處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預(yù)處理命令
C.宏名必須用大寫字母表示
D.宏替換不占用程序的運(yùn)行時(shí)間
52.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
53.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;clrscr();printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s\n",str);}
A.asdafaaz67B.asdafaaz67C.asdD.z67
54.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間
55.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
56.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。
A.8B.16C.32D.15
57.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為______。
A.真B.假C.0D.1
58.設(shè)有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是
A.struct結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型名
59.設(shè)有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n"”,**k);}上述程序的輸出結(jié)果是______。
A.運(yùn)行錯(cuò)誤B.100C.i的地址D.j的地址
60.下列設(shè)備不是輸出設(shè)備的是______。
A.顯示器B.打印機(jī)C.繪圖儀D.掃描儀
四、選擇題(20題)61.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
62.
63.
64.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為Char的指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的*號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
65.
66.在長度為n的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)是
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
67.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
68.軟件測(cè)試的目的是()。
A.評(píng)估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯(cuò)誤C.改正程序中的錯(cuò)誤D.發(fā)現(xiàn)程序中的錯(cuò)誤
69.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序的運(yùn)行結(jié)果是
A.4B.3
C.2D.1
70.有以下程序:
程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。
A.小于3的整數(shù)B.不等于10的整數(shù)C.大于3或等于10的整數(shù)D.大于3且不等10的整數(shù)
71.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
72.以下程序運(yùn)行后的輸出結(jié)果是()。
f(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
A.789B.678C.567D.876
73.設(shè)已有定義:floatx;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;
74.
75.有以下程序:
#include<stdio.h>
main()
{inta,b,k,m,*pl,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*pl-m;b=*p1+*p2+6;
printf("%d",a);printf("%d\n",b);
}
編譯時(shí)編譯器提示錯(cuò)誤信息,你認(rèn)為出錯(cuò)的語句是()。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
76.
77.在單鏈表中,增加頭結(jié)點(diǎn)的目的是()。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
78.若變量已正確說明為int類型,要通過語句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
79.若有定義語句:
charS[10]=”1234567\0\0”;則strlen(s)的值是()。
A.7B.8C.9D.10
80.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是
五、程序改錯(cuò)題(1題)81.寫出下列程序的運(yùn)行結(jié)果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)proc(),它的功能是求m以內(nèi)(不包括m)同時(shí)能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。
例如,m為100時(shí),函數(shù)值應(yīng)為s=7.416198。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。
試題程序:
參考答案
1.DVC6.0中基本整型int占4個(gè)字節(jié)。
2.E
3.C
4.C本題考查嵌套分支語句。共輸出4個(gè)值:當(dāng)i=0時(shí),i%2取余后還是0,則執(zhí)行ease0語句,繼續(xù)switch語句,此時(shí)i為0,數(shù)據(jù)的下標(biāo)是從0開始的,a[03的值為2,則a[0]%2=0,繼續(xù)執(zhí)行case0,數(shù)組a[0]++,值變?yōu)?,執(zhí)行break跳出第二重開關(guān)語句。出來后繼續(xù)執(zhí)行break,跳出第一重開關(guān)語句,繼續(xù)循環(huán);輸出第一個(gè)值為3。i++后值為1,i%2=1%2取余后值為1,執(zhí)行casel,將0賦給a[l],退出開關(guān)語句,輸出第二個(gè)值為0。i++后值為2,i%2=2%2取余后值為0’a[2]的值為5,則a[2]%2=1,繼續(xù)執(zhí)行casel,數(shù)組a[2]--,值變?yōu)?,執(zhí)行break跳出第二重開關(guān)語句。出來后繼續(xù)執(zhí)行break,跳出第一重開關(guān)語句,繼續(xù)循環(huán);輸出第三個(gè)值為4。i++后值為3,i%2=3%2取余后值為1,執(zhí)行casel,將0賦給a[3],退出開關(guān)語句,輸出第四個(gè)值為0。結(jié)果為3040。
5.D
6.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。
7.DD。【解析】算法的時(shí)間復(fù)雜度是指算法需要消耗的時(shí)間資源。一般來說,計(jì)算機(jī)算法是問題規(guī)模。09函數(shù)fin),算法的時(shí)間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時(shí)間的增長率與f(n)的增長率正相關(guān),稱作漸進(jìn)時(shí)間復(fù)雜度(AsymptoticTimeComplexity)。簡(jiǎn)單來說就是算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。
8.B
9.Asub函數(shù)接收兩個(gè)參數(shù):double類型變量a,double指針變量pb。首先將a與pb指向的變量值相減,結(jié)果存放在a中;然后再將pb指向的變量值與a的新值相減,結(jié)果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會(huì)修改實(shí)參x的值,但會(huì)修改實(shí)參y的值。當(dāng)輸入10.23.5時(shí),實(shí)參x的值為10.2,y的值為3.5,執(zhí)行sub函數(shù)后,x的值不變,y的值變成-3.2。故本題答案為A選項(xiàng)。
10.B解析:采用信息隱蔽的目的就是為了確保每個(gè)模塊的獨(dú)立性。
11.D解析:本題主要考查左移、右移對(duì)數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。
12.B
13.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺(tái)之一——硬件平臺(tái)(硬件)、系統(tǒng)平臺(tái)之二——軟件平臺(tái)(軟件)。
14.A選項(xiàng)A中,表達(dá)式“x%=k”結(jié)果為5,表達(dá)式“k%=5”結(jié)果為2,5-2結(jié)果為3;選項(xiàng)B中,“k%=5”結(jié)果為2,“x%=2”結(jié)果為0;選項(xiàng)C中,“k%5”結(jié)果為2,“k-k%5”結(jié)果為5,“x%5”結(jié)果為2;選項(xiàng)D中,“k%5”結(jié)果為2,“k-k%5”結(jié)果為5,x%5結(jié)果為2。故本題答案為A選項(xiàng)。
15.A
16.A解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句,當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體時(shí),其作用是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體中時(shí),則在執(zhí)行break后,跳出本層循環(huán)體。continue語句的作用是,跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)的條件判定。
17.A循環(huán)的作用是求行下標(biāo)從1到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。
18.A
19.D
20.D解析:fgetc函數(shù)是指從指定的文件讀入—個(gè)字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。
21.有窮性有窮性解析:算法的4個(gè)基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報(bào),其中,算法的有窮性指的是算法必須在有限的時(shí)間內(nèi)完成,即算法必須在執(zhí)行有限個(gè)步驟之后終止。
22.1F1F解析:11=0,01=1,實(shí)現(xiàn)了按位的求反。
23.-3-3解析:%運(yùn)算符是求兩個(gè)數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號(hào)一致,本題中“-19%4”的值為“-3”。
24.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時(shí)候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。
25.x+=2
26.棧棧解析:考查考生對(duì)棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。
27.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;’僅AB,是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。
28.白盒法白盒法
29.本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時(shí),不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1=24。\r\n\r\n
30.2828解析:a*=16+(b++)-(++c)等價(jià)于a=a*(16+(b++)-(++c)),b++的值為3,++c的值為5,這里要注意前綴++和后綴++的用法。
31.33解析:條件表達(dá)式的一般形式為;表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值;若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/10,結(jié)果為3。
32.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時(shí),p[0]=&x[1],p[0][0]=2;當(dāng)i=1時(shí),p[1]=&x[3],p[1][0]=4;當(dāng)i=2時(shí),p[2]=&x[5],p[2][0]=6;當(dāng)i=3時(shí),p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
33.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
34.20020,0解析:在主函數(shù)中首先定義了三個(gè)整型變量x、y、t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號(hào)內(nèi)的條件表達(dá)式中,條件“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。
35.33解析:本題考查do…while語句形式:
do循環(huán)體
while表達(dá)式
首先執(zhí)行循環(huán)體語句,然后檢測(cè)循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時(shí)再判斷循環(huán)條件不滿足,退出循環(huán)。
36.efghefgh解析:函數(shù)*ss的作用是使字符串指針往后移strlen(s)/2個(gè)位置。形參指針a指向字符串'abcdefeh',調(diào)用函數(shù)*ss后,指針指向e,所以輸出為efgh。
37.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。
38.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。
39.繼承繼承
40.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。
41.C解析:“p”是指針變量,指向一個(gè)地址:“*p”,為p指針?biāo)赶虻刂返膬?nèi)容。
42.A解析:符號(hào)名的命名不僅要符合語法,而且符號(hào)名的命名應(yīng)具有一定實(shí)際含義,以便于對(duì)程序功能的理解。所以,選項(xiàng)B錯(cuò)誤。程序設(shè)計(jì)風(fēng)格強(qiáng)調(diào)“清晰第一,效率第二”,而不是效率第一。所以,選項(xiàng)C錯(cuò)誤。程序中的注釋部分雖然不是程序的功能,計(jì)算機(jī)在執(zhí)行程序時(shí)也不會(huì)執(zhí)行它,但在程序中加入正確的注釋能夠幫助讀者理解程序,注釋是提高程序可讀性的重要手段。所以,選項(xiàng)D錯(cuò)誤。本題的正確答案為A。
43.A解析:在C語言中,模運(yùn)算(即取余運(yùn)算%)的運(yùn)算對(duì)象必須是整型數(shù)據(jù)(常量、變量或表達(dá)式)。
44.B
45.A解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時(shí),就執(zhí)行該case分支的語句。如果在該語句的后面沒有break語句,則按順序繼續(xù)執(zhí)行下一個(gè)case分支,直到遇到break語句或switch多分支語句結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止switch語句的執(zhí)行。在本題中,因?yàn)槊總€(gè)case語句后面都沒有break語句,所以,第一輪循環(huán)(i==1)執(zhí)行過后a的值為8,第2輪(i==2)執(zhí)行過后a的值為16,第3輪(i==3)執(zhí)行過后a的值為26,第4輪(i==4)執(zhí)行過后a的值為31,然后執(zhí)行“i++”語句,這時(shí)循環(huán)條件為假,循環(huán)結(jié)束。
46.A解析:引用一個(gè)數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。
47.C
48.A解析:本題int型占2個(gè)字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(2(上標(biāo))16-1),即0~65535。
49.A解析:標(biāo)識(shí)符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列(例如,-max含非法字符-),并且用戶標(biāo)識(shí)符不能與C語言中的32個(gè)關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符)。選項(xiàng)B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項(xiàng)B不正確;選項(xiàng)C中3COM不是由字母或下劃線開頭,故選項(xiàng)C不正確;選項(xiàng)D中int為C語言中的關(guān)鍵字,故選項(xiàng)D不正確;選項(xiàng)A中全部為合法的標(biāo)識(shí)符,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
50.A解析:程序設(shè)計(jì)的風(fēng)格主要強(qiáng)調(diào)程序的簡(jiǎn)單、清晰和可理解性,以便讀者理解。因此選項(xiàng)A是正確答案。程序?yàn)E用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對(duì)程序的理解,不應(yīng)減少或取消;程序的長短要依照實(shí)際需要而定,并不是越短越好。因此選項(xiàng)B、C、D都是錯(cuò)誤的。
51.D本題主要考查宏的一些基本概念。通常,預(yù)處理命令位于源文件的開頭,但不一定必須位于開頭,也可以寫在函數(shù)與函數(shù)之間;由于預(yù)處理命令的末尾不加分號(hào),不以分號(hào)來區(qū)分一條宏命令,所以,不能在一行上寫多條預(yù)處理命令,只能寫一條,否則,系統(tǒng)處理時(shí)就會(huì)把它當(dāng)做一條命令處理;宏名一般習(xí)慣用大寫字母表示,以便與變量名相區(qū)別,這只是習(xí)慣用法,并不是C語言中有這樣的規(guī)定,宏的定義可用小寫字母;C語言中,宏的替換是在程序編譯時(shí)進(jìn)行,不占用程序運(yùn)行的時(shí)間,故本題答案為D。
52.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
53.A解析:本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于C語言中沒有直接刪除字符的操作,所以我們對(duì)于刪除字符的操作都是采用“留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動(dòng),每走到一個(gè)字符都判斷其是否為空格,若不是空格(注意在if()的單引號(hào)之間有一個(gè)空格),則將其保存str[j]中。注意j的下標(biāo)變化、初值及最后加串結(jié)束符'\\0'。
54.D解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
55.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。
56.B[答案]B
[考點(diǎn)]數(shù)據(jù)結(jié)構(gòu)與算法
[評(píng)析]依次從上到下,可得出:
第1層結(jié)點(diǎn)數(shù)為1;
第2層結(jié)點(diǎn)數(shù)為2*1=2;
第3層結(jié)點(diǎn)數(shù)為2*2=4;
第n層結(jié)點(diǎn)數(shù)為2的n-1次冪
57.D解析:a&&b的值為true,c<'B'的值也為true,所以(a&&b)&&(c<'B')的值為true。但x是int型變量,所以(a&&b)&&(c<'B')的值最后要從bool型轉(zhuǎn)換為int型賦給x。這樣x的值應(yīng)為1。
58.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。
59.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。
60.D解析:掃描儀屬于輸入設(shè)備。
61.C解析:C語言規(guī)定如果全局變量與局部變量同名,則在局部變量的作用域內(nèi)全局變量不起作用。程序開頭定義的變量x為全局變量,函數(shù)incre中定義的變量x是局部靜態(tài)變量,存放在靜態(tài)存儲(chǔ)區(qū),incre調(diào)用結(jié)束后不釋放x占據(jù)的存儲(chǔ)單元。main函數(shù)中使用的x是全局變量x=3,所以main函數(shù)中調(diào)用函數(shù)incre兩次。調(diào)用過程如下。第1次調(diào)用:x=x*(x+1)=1×(1+1)=2,printf函數(shù)輸出2;第2次調(diào)用:x=x*(x+1)=2×(2+1)=6,printf函數(shù)輸出6。
62.D
63.C
64.A解析:理解復(fù)雜定義要掌握兩點(diǎn):一、右結(jié)合原則.本題中的定義char*line[5];等價(jià)于char*(line[5]);;二、自外向內(nèi)分解成typedef語句。char*(line[5]);等價(jià)于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應(yīng)該被分解成typedefcharB[5];B*line;其中B被定義成包含5個(gè)元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個(gè)元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號(hào)不能省略。故本題應(yīng)該選擇A。
65.B
66.A在有序的線性表中進(jìn)行查找,最差的情況為從表頭查找到表尾都沒有所需要的值。長度為n的線性表從表頭開始每次取出一個(gè)值比較,若不符合,再取下一個(gè)值,依次比較,一直到最后一個(gè),需要比較n次。
67.A在本題中,程序首先定義一個(gè)返回類型為整型的函數(shù)fun,該函數(shù)帶有一個(gè)指針型的形參變量str,從主函數(shù)中對(duì)其調(diào)用時(shí)傳遞的參數(shù)我們可以知道,該指針指向的是一個(gè)數(shù)組,在該函數(shù)體中,首先定義兩個(gè)整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識(shí),即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結(jié)果為真,說明取到的當(dāng)前字符不是空字符,這時(shí)執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時(shí)不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識(shí)符,用來標(biāo)識(shí)字符串結(jié)束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。
在主函數(shù)中,首先定義了一個(gè)大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行g(shù)ets(str);語句,該語句的作用是從鍵盤輸入一個(gè)字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實(shí)參為str。通過上面對(duì)函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。
程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。
68.D軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能,也不是為了評(píng)估軟件或改正錯(cuò)誤,因此本題答案為D)。
69.B題目給出的程序包括兩個(gè)部分:main函數(shù)和f函數(shù)。main函數(shù)的運(yùn)行最后將變量j的值輸出,j的值為f(1)+f(2)。f函數(shù)只有一個(gè)實(shí)參n,當(dāng)n等于1時(shí),f(1)的值為1,當(dāng)n大于1時(shí),f的值為f(n-1)+1;若n=2,則f的值為f(1)+1=2,j的值為1+2=3。
70.D根據(jù)代碼可知如果x的值小于等于3,執(zhí)行空語句,不進(jìn)行打印操作。如果x的值大于3,再判斷x的值是否不等于l0,如果不等于l0就打印X的值,所以選擇D選項(xiàng)。
71.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤(注:數(shù)組元素下標(biāo)從0開始);B中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
72.Ai=0,f(a)=2+1+4=7,i=1,f(a)=2+1+5=8,i=3,f(a)=2+1+5=9;(c為靜態(tài)變量);
73.A指針是用來存放地址的變量,用(類型名*指針變量名)的形式定義。賦值時(shí)應(yīng)將某個(gè)變量地址即&x賦給指針變量,因此選擇A。
74.C
75.A\n本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對(duì)指針進(jìn)行賦值時(shí)沒有錯(cuò)誤。a=/*p+m賦值,在c語言中'/*'表示的注釋,所以答案選擇A。
\n
76.A
77.A根據(jù)單位鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。
78.B本題中,“%d%d%d”表示按整型數(shù)形式輸入數(shù)據(jù),輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可以用回車鍵或Tab鍵。選項(xiàng)B中不應(yīng)該使用逗號(hào)。
79.Astrlen()函數(shù)在計(jì)算字符串長度時(shí),遇到結(jié)束標(biāo)識(shí)為止,且長度不包括結(jié)束標(biāo)識(shí)。本題中字符串,從第一個(gè)字符開始,遇到第一個(gè)結(jié)束標(biāo)識(shí)‘\0’為止,注意‘\0’不占字符串長度,所以字符串長度為7。因此A選項(xiàng)正確。
80.C本題考查switch語句的使用。
switch語句是多分支選擇語句,有些教程上介紹說switch語句后面括弧里的表達(dá)式可以是任何類型,實(shí)際上,由于float型的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)會(huì)有誤差,絕大多數(shù)編譯器是不允許switch語句后面是float型的數(shù)據(jù)的。case后是常量表達(dá)式,只能是一個(gè)整數(shù)或整型常量表達(dá)式,也可以是一個(gè)字符常量或枚舉型常量,但不能是實(shí)型數(shù)據(jù)。
A選項(xiàng)中的case后面用的是實(shí)型常量,case語句后面不能跟實(shí)型常量。
B選項(xiàng)switch語句后面的語句是int(x),該表達(dá)式格式錯(cuò)誤,強(qiáng)制轉(zhuǎn)換為整型的語句應(yīng)該為(int)x。
C選項(xiàng)是正確的,switch后面的表達(dá)式和case后面的整型常量表達(dá)式都是規(guī)范的。
D選項(xiàng)的case語句后用到了變量,case后面是不允許用變量表達(dá)式的。
81.
82.
【解析】按照題目中要求求m以內(nèi)(不包括m)同時(shí)能被5與11整除的所有自然數(shù)之和的平方根s,需要判斷m以內(nèi)的所有整數(shù)是否能同時(shí)被5與11整除,首先求出同時(shí)能被5與
11整除的所有自然數(shù)之和,然后再求和的平方根,最后返回到主函數(shù)當(dāng)中。
2022-2023年山東省德州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.VC6.0中int類型變量所占字節(jié)數(shù)是()。
A.1B.2C.3D.4
2.在一個(gè)雙向鏈表中,q的前一個(gè)節(jié)點(diǎn)為p,q的后一個(gè)節(jié)點(diǎn)為n,刪除q所指向節(jié)點(diǎn),則執(zhí)行()
A.deleteq;
B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;
C.q->prev=p->next;p->next=p->prev;deleteq;
D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;
E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;
F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;
3.對(duì)于n個(gè)元素,下列哪種操作時(shí)間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
4.有以下程序#include<stdi0.h>main(){inta[]={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;casel:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.3344B.2050C.3040D.0304
5.對(duì)于"int*pa[5];"的描述中,正確的是()。
A.pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素
B.pa是一個(gè)指向某數(shù)組中第5個(gè)元素的指針,該元素是int型變量
C.pa[5]表示某個(gè)元素的第5個(gè)元素的值
D.pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針
6.軟件開發(fā)模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
7.算法的時(shí)間復(fù)雜度是指A.算法的執(zhí)行時(shí)間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
8.針對(duì)二分查找算法,假設(shè)一個(gè)有序數(shù)組有136個(gè)元素,那么要查找到第10個(gè)元素,需要比較的元素為()
A.68,34,17,9,13,11,10
B.68,34,17,8,12,10
C.69,35,18,10
D.68,34,18,9,13,11,10
9.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運(yùn)行時(shí)輸入10.23.5并按<Enter>鍵,則輸出結(jié)果為()。
A.x=10.200000y=-3.200000
B.x=6.700000y=-13.700000
C.x=7.000000y=-3.500000
D.x=13.400000y=-7.000000
10.信息隱蔽的概念與下述哪一種概念直接相關(guān)?
A.軟件結(jié)構(gòu)定義B.模塊獨(dú)立性C.模塊類型的劃分D.模塊耦合度
11.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
12.已知8個(gè)數(shù)據(jù)元素為(34,76,45,18,26,54,92,65),按照依次插入結(jié)點(diǎn)的方法生成一棵二叉排序樹后,最后2層上的結(jié)點(diǎn)總數(shù)為______。
A.1B.2C.3D.4
13.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
14.若有定義“intk=7,x=12;”,則以下表達(dá)式值為3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
15.
16.下列說法中錯(cuò)誤的是A.A.只能在循環(huán)體內(nèi)使用break語句
B.在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)
C.在while和do…while循環(huán)中,continue語句并沒有使整個(gè)循環(huán)終止
D.continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)判斷
17.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
18.
19.下列程序的輸出結(jié)果是()structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0].a+s[1].b;printf("%d\n",t);}
A.3B.4C.5D.6
20.fgetc函數(shù)的作用是從指定文件讀入—個(gè)字符,該文件的打開方式必須是______。
A.只讀B.追加C.讀或讀寫D.以上均正確
二、2.填空題(20題)21.在算法的4個(gè)特性中,算法必須能在執(zhí)行有限個(gè)步驟之后終止指的是算法的______特性。
22.已知a為8位二進(jìn)制數(shù),要想通過ab運(yùn)算使a的低5位變反(即0變1,1變0),高3位不變,b的值應(yīng)為【】。
23.若有語句:
inti=-19,j=i%4;
printf("%d\n",j);
則輸出結(jié)果是【】。
24.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
25.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。
26.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
27.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
28.單元測(cè)試又稱模塊測(cè)試,一般采用【】測(cè)試。
29.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==O‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
30.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
Printf("%d",a);
}
31.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intp=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
32.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
33.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
34.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=Y;Y=t;
printf(“%d,%d\n”,x,y);
}
35.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
36.以下程序的運(yùn)行結(jié)果是:【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
37.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
38.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。
39.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為______。
40.需求分析的最終結(jié)果是產(chǎn)生【】。
三、1.選擇題(20題)41.若有定義floata=25,b,*p=&b;,則下列對(duì)賦值語句*p=a;和p=&a;的正確解釋為()。
A.兩個(gè)語句都是將變量a的值賦予變量p
B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p
C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a
D.兩個(gè)語句都是使p指向變量a
42.對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是()
A.程序應(yīng)簡(jiǎn)單、清晰、可讀性好B.符號(hào)名的命名只要符合語法C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無
43.C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是______。
A.%=B./C.=D.<=
44.以下定義語句中正確的是()。
A.inta=b=0;
B.charA=65+1,b='b';
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
45.以下程序的輸出結(jié)果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(“%d\n”,A);}
A.31B.13C.10D.20
46.若有以下定義和語句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達(dá)式是______。
A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p
47.計(jì)算機(jī)的軟件系統(tǒng)一般分為()
A.系統(tǒng)軟件、應(yīng)用軟件與各種字處理軟件
B.操作系統(tǒng)、用戶軟件與管理軟件
C.系統(tǒng)軟件與應(yīng)用軟件
D.操作系統(tǒng)、實(shí)時(shí)系統(tǒng)與分的系統(tǒng)
48.設(shè)int型占2個(gè)字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
49.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是()A._mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.intk_2_001
50.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是______。
A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好
51.以下敘述中正確的是______。A.預(yù)處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預(yù)處理命令
C.宏名必須用大寫字母表示
D.宏替換不占用程序的運(yùn)行時(shí)間
52.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
53.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入asdafaaz67,則輸出為#include<stdio.h>#include<ctype.h>#include<string.h>intfun(char*str){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!='')str[j++]=str[i];str[j]='\0';}main(){charstr[81];intn;clrscr();printf("Inputastring:");gets(str);puts(str);fun(str);printf("%s\n",str);}
A.asdafaaz67B.asdafaaz67C.asdD.z67
54.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間
55.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
56.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。
A.8B.16C.32D.15
57.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為______。
A.真B.假C.0D.1
58.設(shè)有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是
A.struct結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型名
59.設(shè)有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n"”,**k);}上述程序的輸出結(jié)果是______。
A.運(yùn)行錯(cuò)誤B.100C.i的地址D.j的地址
60.下列設(shè)備不是輸出設(shè)備的是______。
A.顯示器B.打印機(jī)C.繪圖儀D.掃描儀
四、選擇題(20題)61.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
62.
63.
64.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為Char的指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語句中的*號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
65.
66.在長度為n的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)是
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
67.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
68.軟件測(cè)試的目的是()。
A.評(píng)估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯(cuò)誤C.改正程序中的錯(cuò)誤D.發(fā)現(xiàn)程序中的錯(cuò)誤
69.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序的運(yùn)行結(jié)果是
A.4B.3
C.2D.1
70.有以下程序:
程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。
A.小于3的整數(shù)B.不等于10的整數(shù)C.大于3或等于10的整數(shù)D.大于3且不等10的整數(shù)
71.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
72.以下程序運(yùn)行后的輸出結(jié)果是()。
f(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
A.789B.678C.567D.876
73.設(shè)已有定義:floatx;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語句中正確的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;
74.
75.有以下程序:
#include<stdio.h>
main()
{inta,b,k,m,*pl,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*pl-m;b=*p1+*p2+6;
printf("%d",a);printf("%d\n",b);
}
編譯時(shí)編譯器提示錯(cuò)誤信息,你認(rèn)為出錯(cuò)的語句是()。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
76.
77.在單鏈表中,增加頭結(jié)點(diǎn)的目的是()。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
78.若變量已正確說明為int類型,要通過語句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
79.若有定義語句:
charS[10]=”1234567\0\0”;則strlen(s)的值是()。
A.7B.8C.9D.10
80.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是
五、程序改錯(cuò)題(1題)81.寫出下列程序的運(yùn)行結(jié)果。
fun(inta,intb)
{if(a>b)return(a);
Elsereturn(b);}
main
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);printf(“%d\n”,r);}
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)proc(),它的功能是求m以內(nèi)(不包括m)同時(shí)能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。
例如,m為100時(shí),函數(shù)值應(yīng)為s=7.416198。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。
試題程序:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60794-2-20:2024 EN-FR Optical fibre cables - Part 2-20: Indoor cables - Family specification for multi-fibre optical cables
- 2025-2030年中國鋰電池負(fù)極材料市場(chǎng)運(yùn)行狀況與前景趨勢(shì)分析報(bào)告
- 2025-2030年中國鋼簾線市場(chǎng)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國西樂器制造市場(chǎng)十三五規(guī)劃及投資策略研究報(bào)告
- 2025-2030年中國茄尼醇行業(yè)風(fēng)險(xiǎn)評(píng)估規(guī)劃研究報(bào)告
- 2025-2030年中國紅花籽油市場(chǎng)運(yùn)行狀況及未來發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 貴州應(yīng)用技術(shù)職業(yè)學(xué)院《傳熱學(xué)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 伊犁師范大學(xué)《中學(xué)思想政治課程與教學(xué)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 撫州職業(yè)技術(shù)學(xué)院《無機(jī)非金屬材料機(jī)械設(shè)備》2023-2024學(xué)年第二學(xué)期期末試卷
- 貴州工程應(yīng)用技術(shù)學(xué)院《經(jīng)濟(jì)寫作》2023-2024學(xué)年第二學(xué)期期末試卷
- 法律文書寫作(第五版)PPT完整全套教學(xué)課件
- 半導(dǎo)體制造技術(shù)導(dǎo)論
- 人教版四年級(jí)數(shù)學(xué)下冊(cè)教材分析精講課件
- 7S目視化管理標(biāo)準(zhǔn)
- 酒店成本管理系統(tǒng)PICC
- 產(chǎn)品手繪設(shè)計(jì)表現(xiàn)技法PPT完整全套教學(xué)課件
- GA/T 1988-2022移動(dòng)警務(wù)即時(shí)通信系統(tǒng)功能及互聯(lián)互通技術(shù)要求
- 文科學(xué)術(shù)規(guī)范與學(xué)術(shù)論文寫作課件
- 人教版小學(xué)二年級(jí)體育下冊(cè)全冊(cè)教案
- 農(nóng)業(yè)政策學(xué)PPT完整全套教學(xué)課件
- 國家電網(wǎng)招聘之其他工學(xué)類復(fù)習(xí)資料大全
評(píng)論
0/150
提交評(píng)論