




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列關(guān)于return語句的敘述中正確的是()。
A.—個(gè)自定義函數(shù)中必須有一條return語句
B.—個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
2.有定義語句:inta=1,b=2,c=3,x;,則以下選項(xiàng)中各程序段執(zhí)行后,x的值不為3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;
B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
3.
4.以下哪種操作最適合先進(jìn)行排序處理()
A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值
5.考慮下圖中的程序段,①號語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'
6.有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s",*p);}main{char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的運(yùn)行結(jié)果是()。A.AfternoonB.fternoonC.MorningD.orning
7.用單鏈表表示的鏈?zhǔn)疥?duì)列,隊(duì)頭在鏈表的()位置。
A.鏈頭B.鏈尾C.鏈中D.可以由自己確定
8.
9.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
10.有以下程序:
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);
printf("%s,%s\n",ss,aa);
}
程序運(yùn)行結(jié)果是A.A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
11.若有定義“charch;inta;doubled;”,當(dāng)輸入為12345678910.36時(shí),以下選項(xiàng)中能給各個(gè)變量正確賦值的是()。
A.scanf(“%d%c%lf”,&a,&ch,&d);
B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);
C.scanf(“%d%c%lf”,a,ch,d);
D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);
12.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx
13.有以下程序:#include<stdio.h>main(){inta[3][3]={{1,3,5,},{7,9,11,},{13,15,17}};int(*p)[3]=a,i,j,n=0;for(i=0;i<3;i++)for(j=0;j<2;j++)n+=*(*(p+i)+j);printf(“%d\n”,n);}程序運(yùn)行后的輸出結(jié)果是()。
A.54B.60C.36D.48
14.有下列程序:main{intk=5,n=0;while(k>0){switch(k){dcfault:break;case1:n=n+k;case2:case3:n+=k;}k--;}printf("%d\n".n);}程序運(yùn)行后的輸出結(jié)果足()。A.0B.4C.6D.7
15.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,2.0.1.2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9
16.以下程序段中,輸出信息不能正確反映變量大小關(guān)系的是()。
A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);
B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);
C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);
D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);
17.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是()。
A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)
C.不允許使用GOT0語句
D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
18.
19.數(shù)組A中,每個(gè)元素的長度為3個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A[8][5]的起始地址為()。
A.SA+141B.SA+144C.SA+222D.SA+225
20.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
二、2.填空題(20題)21.有以下程序:
voidfun(int*a,inti,intj)
{intt;
if(i<j)
{t=a[i];a[i]=a[j];a[j]=t;
i++;j--;
fun(a,i,j);
}
}
main()
{intx[]=(2,6,1,8),i;
fun(x,0,3);
for(i=0;i<4;i++)printf("%2d",x[i]);
}
程序運(yùn)行后的輸出結(jié)果是【】。
22.下列程序中的函數(shù)stropy2()實(shí)現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個(gè)新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
23.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
24.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運(yùn)行后的輸出結(jié)果是()。
25.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
26.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptrl=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
printf("%c",*(ptrl+k));}
27.若要使指針p指向一個(gè)double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>
p=【】malloc(sizeof(double));
28.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。
29.下列程序的輸出結(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(11));
}
30.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
31.以下程序的輸出結(jié)果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
32.如果輸入'1'、'2'、'3'、'4',則以下程序的運(yùn)行結(jié)果為【】。
#include<stdio.h>
main()
{charc;
inti,k;
k=0;
for(i=0;i<4;i++)
{while(1)
{c=getchar();
if(c>='0'&&c<='9')break;
}
k=k*10+c-'0';
}
printf("k=%d\n",k);
}
33.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
34.若用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);}
35.最簡單的交換排序方法是______。
36.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個(gè)二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
37.若變量n中的值為24,則print函數(shù)共輸出【】行,最后一行有【】個(gè)數(shù)。
voidprint(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if(!(i%5))
printf("\n");
}
printf("\n");
}
38.下列程序的運(yùn)行結(jié)果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
39.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
40.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行結(jié)果是()。t4.h的源程序?yàn)椋?/p>
#defineN10
#definef2(x)(x*N)
t4.c的源程序?yàn)椋?/p>
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf("%d%d\n",i,j);
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
42.若變量a是int類型,并執(zhí)行了語句:a='A'+1.6;則正確的敘述是
A.a的值是字符CB.a的值是浮點(diǎn)型C.不允許字符型和浮點(diǎn)型相加D.a的值是字符'A'的ASCII值加上1。
43.多媒體計(jì)算機(jī)系統(tǒng)的兩大組成部分是()
A.多媒體功能卡和多媒體主機(jī)
B.多媒體通信羅件和多媒體開發(fā)工具
C.多媒體輸入設(shè)備和多媒體輸出設(shè)備
D.多媒體計(jì)算機(jī)硬件系統(tǒng)和多媒體計(jì)算機(jī)軟件系統(tǒng)
44.以下敘述不正確的是______。
A.分號是C語言的必要組成部分
B.C程序的注釋可以寫在句的后面
C.函數(shù)是C程序的基本單位
D.主函數(shù)的名字不一定用main表示
45.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。
A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE
46.請選出以下程序的輸出結(jié)果()。#include<stdio.h>#defineMIN(x,y)(x<y)?x:ymain(){inti,j,k;i=10;j=15;k=10*MIN(i,j);printf("%d\n",k);}
A.15B.100C.10D.150
47.下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)為:ttomeetme<回車>
則程序輸出的結(jié)果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正確
48.設(shè)inti=2,j=1,k=3,則表達(dá)式i&&(i+j)&k|i+j的值是_______。
A.0B.2C.1D.3
49.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有下列if語句
if(a<B)
if(c==D)y=0;
elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
50.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是
A.線性鏈表B.棧C.循環(huán)鏈表D.順序表
51.在E-R圖中,用()來表示實(shí)體之間聯(lián)系。
A.矩形B.菱形C.橢圓形D.正方形
52.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL
53.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有語法錯(cuò)誤D.lang
54.下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>main(){stmctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}
A.8B.6C.10D.12
55.若有下列說明和語句,已知int型數(shù)據(jù)占2個(gè)字節(jié),則下列語句的輸出結(jié)果是()。
stmctst
{chara[15];
intb;
doublec;
};
printf("%d",sizeof(structst));
A.15B.8C.25D.2
56.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
57.經(jīng)過下面的語句定義后:inti,a[10],*p;下列語句中,合法的是______。
A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;
58.下列程序中c的二過值是()。chara=2,b=4,c;c=a^b>>2;
A.11B.10100C.11100D.11000
59.若a是float型變量,b是unsigned型變量,以下輸入語句合法的是()
A.scanf("%6.2f%d",&a,&b);
B.scanf("%f%n",&a,&b);
C.scanf("%f%30",&a,&b);
D.scanf("%f%d",&a,&b);
60.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用敘述中錯(cuò)誤的是
A.函數(shù)調(diào)用可以作為獨(dú)立的語句存在
B.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參
C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
D.函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參
四、選擇題(20題)61.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
62.
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9,1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
64.以下敘述中正確的是()。
A.C程序中注釋部分只能放在程序最后
B.花括號“{“和”}”可以作為函數(shù)體的定界符,也可以作為復(fù)合語句的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號不是語句的一部分,是C語句之間的分隔符
65.以下程序的輸出結(jié)果是()。main(){inti,a[4][4]={{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0]);}A.0650B.1470C.5430D.輸出值不定
66.以下程序的輸出結(jié)果是()。
A.1B.7C.9D.13
67.以下關(guān)于字符串的敘述中正確的是()。
A.C語言中有字符串類型的常量和變量
B.兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較
C.可以用關(guān)系運(yùn)算符對字符串的大小進(jìn)行比較
D.空串一定比空格打頭的字符串小
68.下面敘述正確的是_______。
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止
D.算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間
69.(46)面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考
70.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.存儲在外存中的數(shù)據(jù)
B.數(shù)據(jù)所占的存儲空間
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式
D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
71.
72.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.并C.交D.差
73.下列變量聲明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
74.以下選項(xiàng)中正確的定義語句是()。
A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;
75.
76.軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
77.下列程序的輸出結(jié)果是()。
inta[5]={2,4,6,8,10},*P,**k;
p=a;k=&p;
printf("%d",*(p++));
printf("%d\n",**k);
A.44B.22C.24D.46
78.負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
79.
80.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個(gè)新數(shù)存放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為7654321時(shí),t中的數(shù)為7531。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<;stdi0.h>;
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,輸入字符為l,則輸出3。
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考答案
1.B在函數(shù)中允許有多個(gè)return語句,但每次調(diào)用只能有一個(gè)return語句被執(zhí)行,因此只能返回一個(gè)函數(shù)值,A選項(xiàng)描述錯(cuò)誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項(xiàng)描述錯(cuò)誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,D選項(xiàng)描述錯(cuò)誤。故本題答案為B選項(xiàng)。
2.C解析:選項(xiàng)A),B)考查了多分支結(jié)構(gòu)的用法,選項(xiàng)A)中的程序段執(zhí)行時(shí),c<a,b<a條件均不成立,故執(zhí)行else后的語句,x值為3;選項(xiàng)B)中a<3條件成立,執(zhí)行x=3;而選項(xiàng)C),D)是單分支結(jié)構(gòu)的用法,選項(xiàng)C)中程序段執(zhí)行時(shí),a<3條件成立,x=3,但條件a<2也成立,此時(shí)執(zhí)行x=2,下一個(gè)條件不成立,不再執(zhí)行其后的語句。
3.A
4.C
5.D
6.A執(zhí)行fun(a)語句時(shí),P指向的是字符串?dāng)?shù)組a的第一個(gè)字符串“Morning”,p自加1之后,p指向字符串?dāng)?shù)組a的第2個(gè)字符串“Afternoon”。
7.A
8.B
9.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
10.D
11.Ascanf是格式輸入函數(shù),其中雙引號之間的內(nèi)容是格式控制字符串,后面是輸入?yún)?shù)列表。輸入?yún)?shù)列表中各項(xiàng)都必須是變量地址,所以選項(xiàng)C錯(cuò)誤;在scanf函數(shù)的格式字符前,可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實(shí)數(shù)指定小數(shù)位的寬度,所以選項(xiàng)B、D錯(cuò)誤。選項(xiàng)A是正確的,按照A的輸入格式,12345賦值給變量a,空格賦值給變量ch,678910.36賦值給變量d。故本題答案為A選項(xiàng)。
12.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
13.D題目中,for循環(huán)的作用是求數(shù)組各行前兩列的數(shù)字之和。已知“*(*(P+i)+j)=p[i][j]”,則變量n=1+3+7+9+13+15=48。故本題答案為D選項(xiàng)。
14.D本題主要考查while循環(huán)語句和switchcase語句的使用方法。其執(zhí)行步驟為:k=5時(shí),跳出switch語句,然后k自減1;當(dāng)k=4時(shí),跳出switch語句,然后k自減1;當(dāng)k=3時(shí),n=13+k=0+3=3,跳出switch語句,然后k自減1;當(dāng)k=2時(shí)n=n+k=3+2=5,跳出switch語句,然后k自減l;當(dāng)k=1時(shí),case1:n=n+k一5+1=6,沒有break繼續(xù)執(zhí)行CaSe3;n=n+k=6+1=7,跳出switch語句,然后k自減1;當(dāng)k=0時(shí),退出循環(huán),所以輸出結(jié)果為7。
15.B
16.A選項(xiàng)A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項(xiàng)A錯(cuò)誤,其他選項(xiàng)都正確。故本題答案為A選項(xiàng)。
17.C結(jié)構(gòu)化程序設(shè)計(jì)的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用G0T0語句。其他三項(xiàng)為結(jié)構(gòu)化程序設(shè)計(jì)的原則。
18.B
19.C
20.A本題考查了雙重三目運(yùn)算符的用法。例如:表達(dá)式a>b?c:d可以看成,當(dāng)a>b時(shí)取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當(dāng)b>c時(shí)為真,則k=a>b?1:0。當(dāng)bb?0:0。也就是說,當(dāng)a>b并且b>C時(shí),k=1,否則k=0。所以A選項(xiàng)符合題意。
21.81628162解析:第一次調(diào)用函數(shù)fun時(shí),x[0]=2、xL1]=6、x[2]=1、x[3]=8,執(zhí)行完函數(shù)fun后,x[0]與x[3]的值互換,即x[0]=8、x[1]=6、x[2]=1、x[3]=2;第二次調(diào)用函數(shù)fun時(shí),i=1、j=2,故將x[1]與x[2]的值互換,即得x[0]=8、x[1]=1、x[2]=6、x[3]=2。
22.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進(jìn)入第1個(gè)while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運(yùn)算符的優(yōu)先級相同,但他們的結(jié)合性為從右至左,而“=”運(yùn)算符優(yōu)先級比較低,所以原表達(dá)式等價(jià)于(*s++)=(*(t++)),即將t當(dāng)前所指內(nèi)容復(fù)制到s當(dāng)前所指地址中,然后讓s和t同時(shí)往后移動一位,整個(gè)表達(dá)式返回的是復(fù)制給s的值。所以,當(dāng)t所指內(nèi)容是字符串結(jié)束符'\\0',時(shí),while循環(huán)結(jié)束,原先t所指的整個(gè)字符串也就復(fù)制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會讓s和t往后移動一位,即此時(shí)s指向了字符串結(jié)束符'\\0'的后一位。所以第2次復(fù)制字符串之前,應(yīng)先將s指針往回移動一位,故前一空應(yīng)該填入s-1或其他等價(jià)形式。接下來的while循環(huán)實(shí)現(xiàn)第二次復(fù)制,照抄第1次的while循環(huán)就行,故后一空應(yīng)填入*s++。
23.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
24.23
25.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。
26.gaga解析:用字符指針處理字符串,首先要使指針指向這個(gè)字符串,即題中的ptr1=a和ptr2=b。然后就是通過指針的移動可以引用到字符串中的每一個(gè)字符。題中的*(ptr1+k)是使指針ptr1向后移動k個(gè)位置,然后取出指向的字符。注意:用字符數(shù)組作為字符串和用指針指向的一個(gè)字符串之間的區(qū)別。
27.(double*)(double*)解析:一般用malloc函數(shù)為變量分配存儲單元時(shí),要在前面用強(qiáng)制類型轉(zhuǎn)換符說明該存儲單元中數(shù)據(jù)的類型。本題要為指向雙精度浮點(diǎn)型數(shù)據(jù)的指針變量p分配存儲單元,因此用(double*)說明。
28.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實(shí)際運(yùn)行軟件。
29.44解析:本題考查函數(shù)的遞歸調(diào)用.在主函數(shù)中第1次調(diào)用于函數(shù)是調(diào)用的fun(11),返回11-fun(9);第2次調(diào)用于函數(shù)是調(diào)用的fun(9),返回9-fun(7);第3次調(diào)用于函數(shù)是調(diào)用的fun(7),返回7-fun(5):第4次調(diào)用子函數(shù)是調(diào)用的fun(5),返回5-fun(3):第5次調(diào)用于函數(shù)是調(diào)用的fun(3),返回3-fun(1):第6次調(diào)用于函數(shù)是調(diào)用的fun(1),返回3??偟姆祷刂凳牵?1-(9-(7-(5-(3-3))))=4.
30.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
31.2468
32.k=1234
33.1343113431解析:初始化時(shí),指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[0].k=1,m[4].k=1,此時(shí)i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[1].k=3,k=3,此時(shí)i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。
34.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ù)相同。
35.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。
36.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個(gè)二維數(shù)組,的行和列元素互換后存放到另一個(gè)二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。
37.54
38.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項(xiàng)的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個(gè)的形式輸出。
39.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
40.16111611解析:本題主要考查宏定義的兩種形式,不帶參數(shù)的宏定義:“#define宏名替換文本”;帶參數(shù)的宏定義:“#define宏名(形參表)替換文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。
41.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。
42.D解析:在C語言中規(guī)定允許不同類型的量進(jìn)行運(yùn)算,但在運(yùn)算時(shí)需轉(zhuǎn)換成高級的類型進(jìn)行運(yùn)算。在表達(dá)式中有字符型和實(shí)型參加運(yùn)算時(shí),統(tǒng)一轉(zhuǎn)換為實(shí)型再運(yùn)算,當(dāng)運(yùn)算結(jié)果存入變量時(shí)再轉(zhuǎn)換為該變量的類型。
43.D
44.D解析:C語言的程序是由主函數(shù)main()開始運(yùn)行,由主函數(shù)來調(diào)用其他函數(shù),所以D是錯(cuò)誤的。
45.B解析:對二又樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左,右子樹時(shí),注意依舊按照“左子樹—根結(jié)點(diǎn)—右于樹”的順序。
46.C解析:本題考查宏定義。在C語言中,宏是直接替換的,所以表達(dá)式k=10*MIN(i,j)被直接替換為k=10*(i<j)?i:j,在這個(gè)表達(dá)式中,10*(i<j)的值為非零,所以整個(gè)表達(dá)式的值應(yīng)為i的值,即為10。
47.B解析:argc中存入的是命令行中字符串的個(gè)數(shù)。argv是一個(gè)指向字符型的指針數(shù)組的指針。
48.Ci+j=3,運(yùn)算符的優(yōu)先級為數(shù)學(xué)運(yùn)算符,位運(yùn)算符,邏輯運(yùn)算符,因此,首先計(jì)算最右邊的i+j=3,然后計(jì)算(i+j)&k|3=9,最后計(jì)算i&&9=1
49.C解析:語句if(c==d)y=0;elsey=1;是if(a<b)語句的一個(gè)子句。所以整個(gè)C語句表達(dá)式的意思是:在a<b的情況下,如果c=d則y=0,否則y=1。所以,選項(xiàng)C)為正確答案。
50.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。
51.B\nB)【解析】在E.R圖中用矩形表示實(shí)體集,在矩形內(nèi)寫上該實(shí)體集的名字,用橢圓形表示屬性,在橢圓形內(nèi)寫上該屬性的名稱,用菱形表示聯(lián)系,菱形內(nèi)寫上聯(lián)系名。
\n
52.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。
53.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。
54.B解析:解答本題需要注意兩個(gè)知識點(diǎn):①結(jié)構(gòu)體變量的長度是其內(nèi)部成員長度的總和,本題中,stmctdate中包含year、month、day這3個(gè)整型變量,一個(gè)整型變量占2個(gè)字節(jié):②sizeof是求所占字節(jié)數(shù)的運(yùn)算符。
55.C解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立。題中intb占2個(gè)字節(jié),chara[15]占15個(gè)字節(jié),doublec占8個(gè)字節(jié),所以共25個(gè)字節(jié)。
56.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對自動變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
57.D
58.A解析:本題主要考查按位異或和右移運(yùn)算。b=4的二進(jìn)制為00000100,b>>2后為00000001,a=2的二進(jìn)制為00000010,兩者異或?yàn)?0000011。
59.C
60.D解析:在c語言中規(guī)定,無返回值的函數(shù)調(diào)用,可以作為表達(dá)式或表達(dá)式的一部分,也可以作為一條語句;而有返回值的函數(shù)調(diào)用只能作為一個(gè)函數(shù)的實(shí)參(即將其返回值傳給相
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公用品銷售折扣及定制服務(wù)合同
- 二零二五年度燃料研發(fā)與專利許可合同
- 二零二五年度股權(quán)代持合同:包含企業(yè)資產(chǎn)重組的綜合性協(xié)議
- 2025年度環(huán)保設(shè)施勞務(wù)分包安全責(zé)任協(xié)議
- 二零二五年度頂管施工安全教育與應(yīng)急預(yù)案制定合同
- 二零二五年度合資企業(yè)股份代持與清算協(xié)議
- 二零二五年度特色餐飲服務(wù)人員勞動合同范本
- 二零二五年度地質(zhì)鉆孔施工環(huán)境保護(hù)協(xié)議
- 二零二五年度集體勞動合同在民營企業(yè)中的創(chuàng)新
- 二零二五年度企業(yè)產(chǎn)品售后服務(wù)宣傳片委托協(xié)議
- 【獨(dú)立儲能】山西省獨(dú)立儲能政策及收益分析-中國能建
- 2024內(nèi)蒙古中考數(shù)學(xué)二輪專題復(fù)習(xí) 二次函數(shù)與幾何綜合題 類型二 面積問題(課件)
- DL-T5796-2019水電工程邊坡安全監(jiān)測技術(shù)規(guī)范
- 高等數(shù)學(xué)教案第四章不定積分
- 2024年高考時(shí)事政治考試題庫(134題)
- 安全生產(chǎn)責(zé)任制考試試卷及答案
- 擠壓模具拋光培訓(xùn)課件
- 大學(xué)生寒假回訪母校社會實(shí)踐報(bào)告
- 2023年跨境電商年度總結(jié)報(bào)告
- 水磨鉆成本分析
- 2023-2024學(xué)年外研版(三起)英語六年級下冊期末測試卷含答案
評論
0/150
提交評論