版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年吉林省吉林市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是()A.intn,*p=NULL;
B.*p=&n;.
C.scanf("%d",&p)
D.printf("%d\n",p);
2.
3.C語言中邏輯表達(dá)式的值為()
A.0或1B.非零值或者零值C.ture或falseD.'ture'或者'false'
4.二維數(shù)組M的元素是4個(gè)字符(每個(gè)字符占一個(gè)存儲單元)組成的串,行下標(biāo)i的范圍從0到4,列下標(biāo)j的范圍從0到5,M按行存儲時(shí)元素M[3][5]的起始地址與M按列存儲時(shí)元素()的起始地址相同。
A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4]
5.
6.設(shè)變量n為f1oat類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五人運(yùn)算的表達(dá)式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
7.對于哈希函數(shù)H(key)=key%13,被稱為同義詞的關(guān)鍵字是_______
A.35和41B.23和39C.15和44D.25和51
8.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
9.
10.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
11.以下不正確的敘述是A.A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低
B.在C程序中,APH和aph是兩個(gè)不同的變量
C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對于整型變量只能輸入整型數(shù)值,對于實(shí)型變量只能輸入實(shí)型數(shù)值
12.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
13.
14.若有定義“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);
15.目前以比較為基礎(chǔ)的內(nèi)部排序方法中,其比較次數(shù)與待排序的記錄的初始排列狀態(tài)無關(guān)的是()
A.插入排序B.快速排序C.二分插入排序D.冒泡排序
16.排序的算法很多,若排序的穩(wěn)定性和不穩(wěn)定性分類,則()是不穩(wěn)定排序。
A.冒泡排序B.歸并排序C.直接插入排序D.希爾排序
17.設(shè)順序表的長度為n,則順序查找的平均比較次數(shù)為()
A.nB.n/2C.(n+1)/2D.(n-1)/2
18.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975
19.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
20.下列敘述中錯(cuò)誤的是()。
A.用戶定義的函數(shù)中可以沒有return語句
B.用戶定義的函數(shù)中可以有多個(gè)return語句,以便調(diào)用一次返回多個(gè)函數(shù)值
C.用戶定義的函數(shù)中若沒有return語句,則應(yīng)當(dāng)定義函數(shù)為void類型
D.函數(shù)的return語句中可以沒有表達(dá)式
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
main()
{inta=0;
a+=(a=8);
printf(“%d\n”,A);
}
22.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
23.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{inta=1,b=2,c=3;
if(c=A)printf("%d\n",C);
elseprintf("%d\n",B);
}
24.開發(fā)軟件所需要的高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象被人們稱之為【】。
25.棧的3種基本運(yùn)算是:入棧、退棧和______。
26.下面程序的執(zhí)行結(jié)果是【】。
main()
{
inta=5,b=4,c=9;
printf("###%d",(a<C)?c*b:a*B);
}
27.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
28.匯編程序和編譯程序翻譯的目標(biāo)程序需經(jīng)【】連接成可執(zhí)行的程序。
29.棧的基本運(yùn)算有三種:入棧、退棧和【】。
30.以下定義的結(jié)構(gòu)體類型擬包括兩個(gè)成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義比沖完整
structnode
{intinfo;
______link;};
31.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
32.關(guān)系操作的特點(diǎn)是______操作。
33.下列程序的輸出結(jié)果是()。
intt(intx,inty,intcp,intdp)
{cp=x%y+y*y;
dp=x+x-y*y;
}
main()
{ima=4,b=3,c=9,d=8;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
34.若采用直接插入法對字母序列(W,S,E,L,X,G,I)進(jìn)行排序,使字母按升序排列,那么第一次排序的結(jié)果為【】。
35.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。
36.軟件危機(jī)的核心問題是【】和軟件開發(fā)效率低。
37.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
38.在面向?qū)ο蟮姆椒ㄖ校琠_____描述的是具有相似屬性與操作的一組對象。
39.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個(gè)具有structnode類型的動(dòng)態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
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.如果需要打開一個(gè)已經(jīng)存在的非空文件“FILE”并進(jìn)行修改,正確的語句是()。
A.fp=fopen("FILE","r");
B.fp=fopen("FILE","a+");
C.fp=fopen("FILE","w+");
D.fp=fopen("FILE","r+");
42.有以下程序#include<stdio.h>main(){int*p,j;p=NULLp=fun();for(j=0;j<4;j+){printf("%d",*p);p++;}}int*fun(){inta[4],k;for(k=0;k<4;k++)a[k]=k;return(A);}程序運(yùn)行后的輸出結(jié)果是()
A.程序有錯(cuò)不能運(yùn)行B.輸出4個(gè)NULLC.輸出0123D.輸出1111
43.關(guān)于語句“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)”,下面說法中錯(cuò)誤的是()。
A.for語句中的三個(gè)表達(dá)式不可以同時(shí)省略
B.for語句可以用于循環(huán)次數(shù)不確定的情況
C.for語句中表達(dá)式2可以是關(guān)系表達(dá)式或邏輯表達(dá)式
D.for語句中表達(dá)式1和表達(dá)式3可以是逗號表達(dá)式
44.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()。
A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項(xiàng)管理
45.為了將所有擴(kuò)展名為.PAS的文件改成擴(kuò)展名為.P,應(yīng)使用命令()
A.REN*.PAS.?ASB.RENPASPC.REN*.PAS*.PD.REN*.PAS*.P??
46.c語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置()。
A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后
47.下列關(guān)于線性鏈表的描述中,正確的是()。Ⅰ、只含有一個(gè)指針域來存放下一個(gè)元素地址Ⅱ、指針域中的指針用于指向該結(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn)(即前件或后件)Ⅲ、結(jié)點(diǎn)由兩部分組成:數(shù)據(jù)域和指針域。
A.僅Ⅰ、ⅡB.僅Ⅰ、ⅢC.僅Ⅱ、ⅢD.全部
48.若有以下定義和語句: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
49.設(shè)在C語言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。
A.1B.2C.8D.4
50.以下程序段的輸出結(jié)果是______。intx=5;do{ptintf("%2d\n",x--);}while(!x);
A.5B.無任何輸出C.4D.陷入死循環(huán)
51.若變量已正確定義,要求通過scanf("%c%d%c%d",&c1,&a,&c2,&B)語句給變量a和b分別賦32和45,給變量c1和c2分別賦字符A和B;下列選項(xiàng)中數(shù)據(jù)從第1列開始輸入,正確的輸入形式是()。
A.A32<CR>B45<CR>B.A45<CR>B32<CR>C.A32B45<CR>D.A32B45<CR>
52.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個(gè)元素都有一個(gè)直接前件和直接后件
B.線性表中至少要有一個(gè)元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件
53.下列程序的運(yùn)行結(jié)果是______。voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}
A.63B.36C.編譯出錯(cuò)D.0
54.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的3個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;structnode*next;}*p,*q,*r;
現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),以下不能完成指定操作的語句是
A.p->next=q->next;
B.p-next=p->next->next;
C.p->next=r;
D.p=q->enxt;
55.若有以下定義和語句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達(dá)式是______。
A.*pB.a[10]C.*aD.a[p-a]
56.以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=pprintf("%d,d");retumd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.9C.61515D.6615
57.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調(diào)用。strcpy庫函數(shù)用于復(fù)制一個(gè)字符串:char*strl="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.languageB.lnugC.有語法錯(cuò)誤D.lang
58.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>voiddel(char*s){inti,j;char*a;a=s;for(i=0,j=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}}main(){chars[]="aa89gggh";del(s);printf("\n%s",s);}
A.aaB.89C.ggghD.aa89gggh
59.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
60.以下程序的輸出結(jié)果是______。main(){union{chari[2];intk;}r;r.i[0]=2;r.i[1]=0;printf("%d\n"r.k);}
A.2B.1C.0D.不確定
四、選擇題(20題)61.
62.有以下程序
#include<stdio.h>
main()
{chara[3O],b[30];
scanf("%S",a);
gets(b);
printf("%s\n%s\\n",a,b);
}
程序運(yùn)行時(shí)若輸入:
howareyou?Iamfine<回車>
則輸出結(jié)果是()。
A.howareyou?Iamfine
B.howareyou?Iamfine
C.howareyou?Iamfine
D.howareyou?
63.下列選項(xiàng)中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行sT”要求的是()。
A.
B.
C.
64.以下不能正確定義二維數(shù)組的選項(xiàng)是()。
A.
B.
C.
D.
65.在黑盒測試方法中,設(shè)計(jì)測試用例的主要根據(jù)是()。
A.程序內(nèi)部邏輯B.程序外部功能C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
66.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。
A.帶鏈隊(duì)列B.循環(huán)隊(duì)列C.帶鏈棧D.二叉樹
67.
68.
69.有定義語句:intm=1,n=2,P=5,x;,則以下選項(xiàng)中各程序段執(zhí)行后,x的值不等于5的是()。
A.
B.
C.
D.
70.
71.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標(biāo)識符,用以命名任意一個(gè)函數(shù)作為主函數(shù)
72.有以下程序
73.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)
74.
程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
75.
76.若有定義語句:doublea,*P=&a;以下敘述中錯(cuò)誤的是()。
A.定義語句中的*號是-個(gè)間址運(yùn)算符
B.定義語句中的木號是-個(gè)說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P
77.
78.
79.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
B.算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
C.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
D.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
80.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.2,3,1B.2,3,2C.2,3,3D.2,2,1
五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:計(jì)算并輸出k以內(nèi)最大的10個(gè)能被15或18整除的自然數(shù)之和,k的值由主函數(shù)傳人。若k的值為800,則函數(shù)的值為7605。
請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)該為333333334444444455555555。注意:部分源程序在文件prog1.c中。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A[解析]選項(xiàng)B)的正確寫法應(yīng)為p=&n;選項(xiàng)C)的正確寫法應(yīng)為scanf("%d",p);選項(xiàng)D)的正確寫法應(yīng)為printf("%d\\n",*p)。
2.C
3.A
4.B
5.D
6.B
7.D
8.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的物理實(shí)現(xiàn),有時(shí)也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學(xué)關(guān)系。存儲結(jié)構(gòu)則涉及到如何在計(jì)算機(jī)中通過對數(shù)據(jù)的物理存儲進(jìn)行組織來表達(dá)數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達(dá)線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈?zhǔn)酱鎯χ惺峭ㄟ^指針域構(gòu)成的邏輯鏈條來表達(dá)數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對應(yīng)的物理實(shí)現(xiàn),即數(shù)據(jù)的存儲結(jié)構(gòu)不止一種。因此選項(xiàng)D正確。
9.B
10.B第一個(gè)for循環(huán)的作用是讓p指向每行的首地址,第二個(gè)for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。
11.D解析:在C語言所有的運(yùn)算符中,逗號運(yùn)算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個(gè)不同的變量。賦值表達(dá)式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計(jì)算機(jī)輸入允許的任何類型的數(shù)據(jù)。選項(xiàng)D)中當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對于整型變量可以輸入整型數(shù)值和字符,對于實(shí)型變量可以輸入實(shí)型數(shù)值和整型數(shù)值等。
12.A解析:本題考核的知識點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。
13.D
14.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)。
15.C
16.D
17.C
18.D執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=\o來判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒有到達(dá),繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-\o)除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行第2次循環(huán)體。對字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。
19.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。
20.B函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。函數(shù)中允許有多個(gè)return語句,但每次只能調(diào)用一個(gè)return語句,因此只能返回一個(gè)函數(shù)值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為void。故本題答案為B選項(xiàng)。
21.1616解析:在程序中首先將8賦值給變量a,然后再進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
22.1371513715解析:本題中,定義了一個(gè)整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時(shí),n[1]=n[0]*2+1=0+1=1,pnntf函數(shù)輸出1,然后i的值加1,比較i<4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
23.11解析:本題是一個(gè)陷阱題。在if語句的判斷表達(dá)式中,使用的不是邏輯運(yùn)算符==而是賦值運(yùn)算符=,使該表達(dá)式返回的結(jié)果正好相反。如果是c==a,則結(jié)果為假。但是c=a則是將a賦給c,且表達(dá)式的結(jié)果是賦值之后的c的值,因此結(jié)果為1是真.故最后輸出c的值1。
24.軟件危機(jī)軟件危機(jī)
25.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個(gè)新的元素;退棧是指取出棧頂元素并賦值給一個(gè)變量;讀棧頂元素是將棧頂元素賦值給一個(gè)指定的變量,不刪除棧頂元素。
26.###36
27.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。
28.裝配程序裝配程序
29.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有三種:入棧、退棧和讀棧頂元素。
入棧運(yùn)算是指在棧頂位置插入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂指針進(jìn)一(即top加1),然后將新元素插入到棧頂指針指向的位置。
退棧運(yùn)算是指取出棧頂元素并賦給一個(gè)指定的變量。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個(gè)指定的變量,然后將棧頂指針退一(即top減1)。
讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量。這個(gè)運(yùn)算不刪除棧頂元素,只是將它的值賦給一個(gè)變量。
30.解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*,即定義一個(gè)指向自身的結(jié)構(gòu)體指針。
31.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個(gè)元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。
32.集合集合
33.9898解析:本題的考查點(diǎn)是函數(shù)的調(diào)用。本題中a,b,c,d是實(shí)參,x,y,cp,dp是形參。C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲單元,并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是98。
34.SWELXGI
35.非0非0解析:邏輯運(yùn)算中,非0表示邏輯“真”,用。表示邏輯“假”。
36.軟件質(zhì)量差軟件質(zhì)量差解析:大約在20世紀(jì)60年代末人們在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中,遇到了一系列嚴(yán)重問題,從而認(rèn)識到軟件危機(jī)的存在。軟件危機(jī)的核心問題是軟件開發(fā)的質(zhì)量太差和軟件系統(tǒng)開發(fā)的效率太低。
37.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個(gè)循環(huán)不會被執(zhí)行。
38.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實(shí)例。
39.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個(gè)長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。
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.D解析:本題考查打開文件函數(shù)fopen(),打開文件函數(shù)fopen()的調(diào)用形式為:fp=fopen(文件名,文件使用方式)。“文件使用方式”說明:方式“r”為以輸入方式打開一個(gè)文本文件;方式“a+”為以讀/寫方式打開一個(gè)文本文件,保留文件中原有的數(shù)據(jù);方式“w+”為以讀/寫方式建立一個(gè)新的文本文件:方式“r+”為以讀/寫方式打開一個(gè)文本文件。
42.A
43.A解析:for語句中的3個(gè)表達(dá)式可以同時(shí)省略,但兩個(gè);不能省略。所以選項(xiàng)A的說法錯(cuò)誤。
44.A在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復(fù)雜的數(shù)據(jù),有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。
45.C
46.C解析:不論main函數(shù)在整個(gè)過程中的位置如何,一個(gè)C程序總是從main函數(shù)開始執(zhí)行的。
47.D解析:在定義的鏈表中,若只含育一個(gè)指針域來存放下一個(gè)元素地址,稱這樣的鏈表為單鏈表或線性鏈表。在鏈?zhǔn)酱鎯Ψ绞街?,要求每個(gè)結(jié)點(diǎn)由兩部分組成:一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域:另一部分用于存放指針,稱為指針域。其中指針用于指向該結(jié)點(diǎn)的前一個(gè)或后一個(gè)結(jié)點(diǎn)(即前件或后件)。
48.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。
49.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個(gè)字節(jié),則float類型數(shù)據(jù)占4個(gè)字節(jié),double類型數(shù)據(jù)占8個(gè)字節(jié)。
\n
50.A解析:本題考查循環(huán)語句do-while語句的執(zhí)行情況。首先五條件執(zhí)行循環(huán)體,表達(dá)式x--的值為5,然后檢查條件。
51.D解析:本題考查scanf函數(shù)的基本格式。當(dāng)需要從鍵盤上輸入數(shù)據(jù)時(shí),輸入的數(shù)值之間需要有間隔符(空格符號、制表符號、回車符號),間隔符號的使用數(shù)量不限。直到按下回車鍵,scanf函數(shù)才會接受從鍵盤輸入的數(shù)據(jù)。
52.D解析:線性表可以為空表,排除選項(xiàng)B。第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。
53.B解析:本題中主函數(shù)里的x、y,fun函數(shù)里的a、b、k,這些都是指針,fun函數(shù)中只是將a、b這兩個(gè)指針交換了位置,而并沒有改變主函數(shù)中變量a、b的值。
54.D解析:本題考查鏈表結(jié)點(diǎn)的刪除。q->next中存放的是r所指結(jié)點(diǎn)的首地址,將r所指結(jié)點(diǎn)的首地址存于p->next中,則實(shí)現(xiàn)刪除q所指結(jié)點(diǎn)的功能,并保持鏈表連續(xù),p所指結(jié)點(diǎn)與r所指結(jié)點(diǎn)相連。
55.B解析:程序中定義了數(shù)組a[10],則其元素的下標(biāo)范圍為0~9,而B選項(xiàng)中的a[10]所表示的元素已經(jīng)超出a數(shù)組元素的范圍,故應(yīng)該選擇B。
56.C解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值—次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對自動(dòng)變量賦初值,不是在編譯時(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.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)。
58.B解析:本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入s數(shù)組中的字符,如果遇到數(shù)字,則將其重新存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應(yīng)該是字符串s中的所有數(shù)字。
59.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。
60.A解析:根據(jù)共用體的定義可知:共用體r的成員k和成員i[2]是共用同—段內(nèi)存空間,所以,當(dāng)程序給r.i[0]賦值后,實(shí)際上,共用體成員k的值也確定了,為2。所以打印輸出的結(jié)果應(yīng)當(dāng)為2。
61.C
62.B\n此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。
\n
63.A函數(shù)strcmp(s2,s1)的作用是比較字符串的大小,函數(shù)strcpy(s1,s2)的作用是進(jìn)行字符串復(fù)制,所以選擇A)選項(xiàng)。B)和D)都是比較的字符串s1與s2的地址是否一致而不是比較字符串內(nèi)容是否一致。
64.D本題的考查點(diǎn)是二維數(shù)組的定義和初始化。
選項(xiàng)A)定義的數(shù)組中各元素實(shí)際上是這樣的:
1,0
2.O
選項(xiàng)B)定義的數(shù)組中各元素實(shí)際上是這樣的:
1,2
3.4
選項(xiàng)c)定義的數(shù)組中各元素實(shí)際上是這樣的:
1,0
2.3
選項(xiàng)D)錯(cuò)在省略了第2維的長度。C中在對數(shù)組進(jìn)行初始化時(shí),如果對全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時(shí)對第一維的長度可以不指定,但第二維的長度不能省。
65.B黑盒測試法指的是根據(jù)程序的外部功能,把程序本身看成一個(gè)黑盒子,設(shè)計(jì)測試用例來
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年石屏縣緊密型醫(yī)共體龍武分院(龍武鎮(zhèn)衛(wèi)生院)關(guān)于招聘編外人員的備考題庫及參考答案詳解
- 2026年鄭州新華醫(yī)院招聘備考題庫及參考答案詳解一套
- 2026年西北工業(yè)大學(xué)自動(dòng)化學(xué)院非事業(yè)編人員招聘備考題庫附答案詳解
- 2026年藥品配給員招聘備考題庫完整答案詳解
- 2026年浙江工商大學(xué)杭州商學(xué)院公開招聘教學(xué)科研管理崗(教學(xué)秘書)備考題庫及1套完整答案詳解
- 臺州職業(yè)技術(shù)學(xué)院2025年下半年公開招聘編外人員備考題庫及一套答案詳解
- 設(shè)計(jì)院生產(chǎn)制度
- 化工裝置生產(chǎn)異常制度
- 堆垛機(jī)生產(chǎn)管理制度
- pc生產(chǎn)管理制度
- IPC7711C7721C-2017(CN)電子組件的返工修改和維修(完整版)
- 氧氣理化特性表
- 物資、百貨、五金采購 投標(biāo)技術(shù)方案技術(shù)標(biāo)
- 區(qū)域地質(zhì)調(diào)查及填圖方法
- 安全生產(chǎn)投入臺賬(模板)
- 新能源的發(fā)展與城市能源轉(zhuǎn)型與升級
- 《醫(yī)務(wù)人員醫(yī)德規(guī)范》課件
- 兒童吸入性肺炎護(hù)理查房課件
- 生理學(xué)期中考試試題及答案
- 呂國泰《電子技術(shù)》
- 哈薩克族主要部落及其歷史
評論
0/150
提交評論