版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
家二級(C語言)機(jī)試模擬試卷26
(共9套)
(共226題)
國家二級(C語言)機(jī)試模擬試卷第1
套
、選擇題(本題共39題,每題1.0分,共39分。)
1、軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:該圖是()。
A、N-S圖
B、PAD圖
C、程序流程圖
D、E-R圖
標(biāo)準(zhǔn)答案:c
知識點解析:程序流程圖基本圖符有3種:控制流[用箭頭表示)、加工步驟(用方框
表示)、邏輯條件(用菱形表示)??刂平Y(jié)構(gòu)有5種:①順序結(jié)構(gòu);②選擇結(jié)構(gòu);
③多分支選擇結(jié)構(gòu);④后判斷重復(fù)型結(jié)構(gòu);⑤先判斷重復(fù)型結(jié)構(gòu)。題目中是選
擇結(jié)構(gòu)的程序流程圖。
2、數(shù)據(jù)流圖中帶有箭頭的線段表示的足()。
A、控制流
B、事件驅(qū)動
C、模塊調(diào)用
D、數(shù)據(jù)流
標(biāo)準(zhǔn)答案:D
知識點解析:數(shù)據(jù)流圖基本符號的含義:①矩形表示數(shù)據(jù)的外部實體;②圓角的
矩形表示變換數(shù)據(jù)的處理邏輯;③表示數(shù)據(jù)的存儲;④箭頭表示數(shù)據(jù)流。
3、下列關(guān)于線性鏈表的描述中,正確的是()。I、只含有一個指針域來存放下一個
元素地址II、指針域中的指針用于指向該結(jié)點的前一個或后一個結(jié)點(即前件或后
件)111、結(jié)點由兩部分組成:數(shù)據(jù)域和指針域。
A、僅I、II
B、僅I、III
C、僅11、111
D、全部
標(biāo)準(zhǔn)答案:D
知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這
樣的鏈表為單鏈表或線性鏈表。在鏈?zhǔn)酱鎯Ψ绞街校竺總€結(jié)點由兩部分組成:
一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指針,稱為指針域。
其中指針用于指向該結(jié)點的前一個或后一個結(jié)點(即前件或后件)。
4、設(shè)有關(guān)鍵碼序列(66,13,51,76,81,26,57,69,23),要按關(guān)鍵碼值遞增
的次序排序,若采用快速排序法,并以第一個元素為劃分的基準(zhǔn),那么第一趟劃分
后的結(jié)果為()。
A、23,13,51,57,66,26,81,69,76
B、13,23,26,51,57,66,81,76,69
C、23,13,51,57,26,66,81,69,76
D、23,13,51,57,81,26,66,69,76
標(biāo)準(zhǔn)答案:A
知識點解析:快速排序是起泡排序的改進(jìn)。在快速排序中,任取一個記錄,以它為
基準(zhǔn)用交換的方法將所有的記錄分成兩部分,關(guān)鍵碼值比它小的在一部分,關(guān)鍵碼
值比它大的在另一部分,再分別對兩個部分實施卜述過程,一直重復(fù)到排序完成.
5、以下選項中不合法的標(biāo)識符是()。
A、&a
B、FOR
C、I3rint
D、_00
標(biāo)準(zhǔn)答案:A
知識點解析:C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下
劃線。另外,關(guān)鍵字不能作為標(biāo)識符。因為C語言中區(qū)分大小寫,所以B選項中
的“FOR”可以作為標(biāo)識符來用。A選項中含有非法字符&,所以選擇A。
6、下列敘述中錯誤的是()。
A、用戶所定義的標(biāo)識符允許使用關(guān)鍵字
B、用戶所定義的標(biāo)識符應(yīng)盡量做到“見名知意”
C、用戶所定義的標(biāo)識符必須以字母或下劃線開頭
D、用戶定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識
標(biāo)準(zhǔn)答案:A
知識點解析:在C語言中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字
和下劃線組成,并且第一個字符必須為字母或下劃線,凡是耍求標(biāo)識符的地方都必
須按此規(guī)則命名。在C語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為是兩個不同
的字符。在選擇標(biāo)識符時,應(yīng)注意做到“見名知義即選擇具有一定含義的英文單
詞或漢語拼音作為標(biāo)識符,以增加程序的可讀性。
7、下面程序段的輸出結(jié)果是()。#includc<stdio.h>main()(floatx=l.236547;
printf("tha",(int)(x*1000+0.5)/(float)1000);}
A、1.237000
B、輸出格式說明與輸出項不匹,輸出無定值
C、I.236000
D、1.24
標(biāo)準(zhǔn)答案:A
知識點解析:本題中,(im)(x*1000+0.5)的結(jié)果為1237,(float)lOOO是將1000強(qiáng)
制轉(zhuǎn)換成flat類型;整個表達(dá)式(int)(x*1000+0.5)/(float)1000的結(jié)果為
1.237000,再以實數(shù)(6位小數(shù))形式輸出。
8、語句"printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是()。
A、a\bhow\'are\'y\\bou
B、a\bhow\'are\'y\bou
C^how'are'you
D^ahow'are'y\hou
標(biāo)準(zhǔn)答案:C
知識點解析:“\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆
蓋.導(dǎo)致“\h”格式符前面的字母不能輸出:格式符表示輸出單引號字符:
“\\”格式符表示輸出反斜線字符。
9、下列敘述中正確的是()。
A、循環(huán)隊列中的元素個數(shù)隨隊頭指針與隊尾指針的變化而動態(tài)變化
B、循環(huán)隊列中的元素個數(shù)隨隊頭指針的變化而動態(tài)變化
C、循環(huán)隊列中的元素個數(shù)隨隊尾指針的變化而動態(tài)變化
D、以上說法都不對
標(biāo)準(zhǔn)答案:A
知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用隊頭指
針front指向隊頭元素的前一個位置。因此,從隊頭指針front指向的后一個位置直
到隊尾指針rear指向的位在之間所有的元素均為隊列中的元素。所以循環(huán)隊列中
的元素個數(shù)隨隊頭指針和隊尾指針的變化而變化。A正確。
10、下列二維數(shù)組初始叱語句中,正確且與語句數(shù)ta[][3]={l,2,3,4,5}等價的
是()。
A、inta[2][]={{l,2,3|,{4,5}};
B、inta[][3]={l,2,3,4,5,0);
C>inta[][3]={{l,0){,{2,0},{3,0));
D、inta[2][]={{l,2,3|,{4,5,6}};
標(biāo)準(zhǔn)答案:B
知識點解析:此題考查的是二維數(shù)組的初始化。題干中數(shù)組a的第二個下標(biāo)為3,
由此可知數(shù)組a是一個2行3列的數(shù)組,初始化時未賦初值的元素的值自動為0,
所以與選項B)是等價的,最后一個元素的值為0。
11、軟件詳細(xì)設(shè)計產(chǎn)生的圖如下:該圖是()。
A、N-S圖
B、PAD圖
C、程序流程圖
D、E-R圖
標(biāo)準(zhǔn)答案:C
知識點解析:程序流程圖基本圖符有3種:控制流〔用箭頭表示)、加工步驟(用方框
表示)、邏輯條件(用菱形表示)??刂平Y(jié)構(gòu)有5種:①順序結(jié)構(gòu);②選擇結(jié)構(gòu);③
多分支選擇結(jié)構(gòu);④后判斷重復(fù)型結(jié)構(gòu);⑤先判斷重復(fù)型結(jié)構(gòu)。題目中是選擇結(jié)
構(gòu)的程序流程圖。
12、定義結(jié)構(gòu)體數(shù)組structStu{intnum;charname[20]:x[5]={1,"ZHAO",2,
"QIAN",3,"SUN”,4,“LEE”,5,“ZHOU”};for(i=l;i<5;i++)printf("%d%
c",x[i].num,x[i].name[2]);程序執(zhí)行后的輸出結(jié)果是()。
A、2A3N4E5O
B、1H213U4E
C、1A2N3E4O
D、1A2N3E4O
標(biāo)準(zhǔn)答案:A
知識點解析:本題主要考查結(jié)構(gòu)體數(shù)組。x[i].num是結(jié)構(gòu)體x[i]中的num成員,
x[i].name[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。第一次循環(huán),i=l?輸出
x|11.num,x|l|.name[2]的值,即2A;第二次循環(huán),i=2,輸出x⑵.num,
x[2].name⑵的值,即3N;第三次循環(huán),i=3,輸出x[3].num,x[3].name⑵的
值,即4E:第四次循環(huán),i=4,輸出x[4].num,x|4].name[2]的值,即50。
13、fgets(str,n,fp)函數(shù)從文件中讀入一個字符串,以下錯誤的敘述是()。
A、字符串讀入后會自動加入
B、fp是指向該文件的文件型指針
C、fgels函數(shù)將從文件中最多讀入n個字符
D、fgets函數(shù)將從文件中最多讀入n-1個字符
標(biāo)準(zhǔn)答案:C
知識點解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgels(s,n,fp);s可以是一個
字符數(shù)組名,或是指向字符串的指針;n為要讀取的最多的字符個數(shù):fp是指向該
文件的文件型指針;字符串輸入函數(shù)的功能是:從fp所指向的文件中讀取長度不
超過n?l個字符的字符串,并將該字符串存放到字符數(shù)組s中。
14、設(shè)Y為整型變量,A=l,A的地址為EF01;B=2,B的地址為EF02:執(zhí)行語
句B=&A;Y=&b;后Y的值()。
A、1
B、2
C、EF01
D、EF02
標(biāo)準(zhǔn)答案:C
知識點解析:&是取地址運算符,Y=&B是將B的地址賦給Y,因此Y值為
EFOlo
15、設(shè)有定義:structcomplex{intreal,unreal:datal={1,8},data2;則以下賦
值語句中錯誤的是()。
A、data2=(2,6);
B、data2=datal;
C、data2=real=datal.real;
D、data2.real=datal.unreal;
標(biāo)準(zhǔn)答案:A
知識點解析:A選項中可以在聲明變量的同事為data2賦值,但是data2=(2,6);
應(yīng)寫作data2={2,6}。所以選擇A。
16^以下程序的輸出結(jié)果是()。#includemain()structst{p=aa;{intx;
int*y;}*p;printf(H%d\n",++(p->x));}intdt[4]={1,2,3,4);structst
aa[4]={2,&dt[O],3,&dt[O],4,&dt[O],5,&dt[O],};
A、1
B、2
C、3
D、4
標(biāo)準(zhǔn)答案:c
知識點露析:程序首先將指針P指向結(jié)構(gòu)體數(shù)組aa的首地址,通過p->x引用了結(jié)
構(gòu)體數(shù)組aa[O]的第一個成員2;++(p->x)是將p識的值加1,所以輸出結(jié)果為3。
17、可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是()。
A、voiddefineWORD
B、as_b3_123If
C、For_abccase
D、2cDOSIG
標(biāo)準(zhǔn)答案:B
知識點解析:C語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個
字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標(biāo)識符。
18、有以下程序:#includcmain(){inti,j;fdr(i=l;i<4;i++){for(j=i;j<4;
j++)printf("%d*%d=%d",i,j,i*j);prinlf—(“\n");}}程序運行后的輸出結(jié)
果是()。
A、1*1=11*2=21*3=32*2=42*3=63*3=9
B、1*1=11*2=21*3=32*1=22*1=2=43*1=3
C、1*1=11*2=22*2=41*3=32*3=63*3=9
D、1*1=12*1=22*2=43*1=33*2=63*3=9
標(biāo)準(zhǔn)答案:A
知識點解析:外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為1,打印I*I
=1;內(nèi)循環(huán)第二次j的值為2,打印1*2=2;內(nèi)循環(huán)第三次j的值為3,打印
1*3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的
初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2*3=6,打印回車換行,退
出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次i的初值為3,打印3*3=9,打
印回車換行,退出內(nèi)循環(huán)。
19>有以下程序#includc<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6);fp
=fopen("d2.dat","wH);fprintf(fp,"%d%d%d\n",a[0],a[l]X2]);fprintf(fp,
"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d,;
&k,&n);printf("%d%d\n",k,n);fclose(fp);)程序運行后的輸出結(jié)果是
A、12
B、I4
C、1234
D、123456
標(biāo)準(zhǔn)答案:D
知識點解析:fprinif()函數(shù)向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件或是相
當(dāng)于文件的設(shè)備上執(zhí)行兩次fprintf后文件中有123456,所以D選項正確。
20、設(shè)有下面的定義:structst(mta;floatb:)d;int*p,要使p指向結(jié)構(gòu)變量
d中的a成員,正確的賦值語句是()。
A、*p=d.a;
p=&a;
C^p=d.a;
D、p=&d.a;
標(biāo)準(zhǔn)答案:D
知識點解析:本題主要考查按結(jié)構(gòu)數(shù)組元素方式引用結(jié)構(gòu)成員。結(jié)構(gòu)體變量的成員
引用方法有3種:①結(jié)構(gòu)體變量名.成員名;②指針變量名一>成員名;③產(chǎn)指針
變量名).成員名。因為p是指針變量,所以應(yīng)該將地址值賦給p。
21、下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是()。
A、文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B、文件由二進(jìn)制數(shù)據(jù)片列組成,C語言只能讀寫二進(jìn)制文件
C、文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D、文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查的是數(shù)據(jù)文件的有關(guān)概念。文件由數(shù)據(jù)流的形式組成,可以
按數(shù)據(jù)存放的形式分為二進(jìn)制文件和文本文件,C溶言既能讀寫文本文件,又能讀
寫二進(jìn)制文件。
22、以下選項中與if(a==l)a++;elsea=b;語句功能不同的語句是()。
A、switch(a){case():a=b;break;default:a++;}
B、switch(a==l){case0:a++;default:a=b:}
C>switch(a){default:a=b;break;case1:a++:}
D、a=(a==l)?(a++):b
標(biāo)準(zhǔn)答案:B
知識點解析:ifelse語句的含義是,如果變量a的值等于1,變量a的值加1,否
則,則把變量b的值賦給變量a。在本題的4個選項中,與其含義不同的是選項
B.因為沒有break語句.當(dāng)a=l的時候,會順序執(zhí)行兩條語句,最終結(jié)果是將b
的值賦給ao
23、以下敘述中正確的是()。
A、調(diào)用函數(shù)時,函數(shù)名必須與被調(diào)用的函數(shù)名完全一致
B、函數(shù)調(diào)用時、不必區(qū)分函數(shù)名稱的大小寫
C、函數(shù)名允許用數(shù)字開頭
D、在函數(shù)體中只能出現(xiàn)一次return語句
標(biāo)準(zhǔn)答案:A
知識點解析:暫無解析
24、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{char
number|100];intage;floatp[6];};定義一個數(shù)組:structab|10|;假定文件已
正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。
A、ffead(b,sizeof(structa),10,fp);
B>for(i=0;i<10;i++)fread(b|i],sizeof(stmcta),1,fp);
C^for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);
D、for(i=0;i<5;i+=2)ffead(b+i>sezeof(structa),2,fp);
標(biāo)準(zhǔn)答案:B
知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用格式為:fread(buffer,size,count,fp),其
中:“buffer”是一個指釬,對于fread來說,它是讀入數(shù)據(jù)的存放地址。“size”是要
讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型
指針。選項B)中b[i]是一個數(shù)組,不是指針,需改為&b[i]。
25、數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指()。
A、數(shù)據(jù)與程序獨立存放
B、不同的數(shù)據(jù)被存放在不同的文件中
C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用
D、以上三種說法都不對
標(biāo)準(zhǔn)答案:D
知識點解析:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)
用程序而不依賴于應(yīng)用程序。所以選項A),選項B)和選項。都不正確。
26、有以下程序#include<stdio.h>structS{intn;inta[20];);voidf(int*a,intn)
{inti;for(i=0;i<n-l;i++)a[i]+=i;}main(){inti;structSs={10,
{2,3,1,6,8,7,5,4,10,9}};f(s.a,s.n);for(i=0;i<s.n;i++)printf("%d;\s.a[i]);)程序運行
后的輸出結(jié)果是
A、2,3,1,6,875,4,10,9,
B、3,4,2,7,9,8,6,5,11,10,
C、2,4,3,9,12,12,11,11,18,9,
D、1,2,3,6,875,4,10,9,
標(biāo)準(zhǔn)答案:C
知識點解析:題目中定義了一個結(jié)構(gòu)體類型然后定義了一個結(jié)構(gòu)體變量S并初
始化,執(zhí)行f函數(shù)后,將s中元素a的每個元素都加上i,i的值從0?9,這里需要
注意,最后一個元素沒有加i,所以最終答案為C選項。
27、以下敘述中錯誤的是()。
A、可以給指針變量賦一個整數(shù)作為地址值
B、函數(shù)可以返回地址值
C、改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D、當(dāng)在程序的開頭包含頭文件sidio.h時,可以給指針變量賦NULL
標(biāo)準(zhǔn)答案:A
知識點解析:不能將一個整數(shù)直接賦給指針變量作為地址,所以A選項是錯誤
的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實
參。
28、下列工具中,不屬于結(jié)構(gòu)化分析的常用工具的是()。
A、數(shù)據(jù)流圖
B、數(shù)據(jù)字典
C、判定樹
D、N-S圖
標(biāo)準(zhǔn)答案:D
知識點解析:結(jié)構(gòu)化分析?的常用工具有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹和判定表。
29、以下能夠?qū)崿F(xiàn)計算5!的程序段是()。
A、intfac=l,k=0:do(k++;fac*=k:}while(k<5);
13、inttac=O,k=l;do[tac*=k;k++;}whilc(k<5);
C>intfac=l,k=l;do[k++;fac*=k;)while(k<=5);
D、intfac=l,k=0:do(fac=k;k++;)while(k<5):
標(biāo)準(zhǔn)答案:A
知識點解析:do…while循環(huán)語句一般形式為:do{循環(huán)體}while(表達(dá)式),執(zhí)行過
程為:首先執(zhí)行循環(huán)體,之后判斷表達(dá)式,表達(dá)式成立(非0)則再一次執(zhí)行循環(huán)
體,不成立(0)則退出循環(huán)。A項,k=l,fac=l*l,判斷kV5,條件成立進(jìn)行下一
次循環(huán),直到k=5,fac=l*2*3*4*5,k<5不成立退出循環(huán),實現(xiàn)計算5!。B項,
fac從0開始,做乘法一直都是0,無法實現(xiàn)5!。C項,k=2,fac=l*2,循環(huán)條件
成立,直到k=6,fac=l*2*3*4*5*6才囚循環(huán)條件不成立退出循環(huán),實現(xiàn)61。D
項:k=0,fac=1*0=0,之后做乘法一直為0,無法實現(xiàn)5!。
30、以下程序段完全正確的是()。
A、int*p;8canf(“%d",&p);
B>int*p;seanf("%d”,P);
C、intk,*p=&k;scanR"%d",P);
D、intk,*P;*P:&k;scanfT%d”,P);
標(biāo)準(zhǔn)答案:C
知識點解析:A選項中錯在沒有對指針進(jìn)行初始化,是無效指針.并且在
scanf("%d”,&p)中無需再進(jìn)行取地址操作;B選項中沒有對指針進(jìn)行初始化,是
無效指針;D選項中語句*p=&k;的左端*p是指針?biāo)竷?nèi)存空間的值,&k是地
址,應(yīng)為p=&k。因此C選項正確。
31、以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=l;k<3;k++);
printf(”*");該程序段的輸出結(jié)果是()o
A、
B、****
C、**
D、斗:
標(biāo)準(zhǔn)答案:A
知識點解析:暫無解析
32、大學(xué)中每個年級有多個班,每個班有多名學(xué)生,則實體班級和實體學(xué)生之間的
聯(lián)系是()。
A、一對多
B、一對一
C、多對一
D、多對多
標(biāo)準(zhǔn)答案:A
知識點解析:實體集之間通過聯(lián)系來建立聯(lián)接關(guān)系分為三類:一對一聯(lián)系(1:1)、
一對多聯(lián)系(1:m)、多對多聯(lián)系(m:n)。每個班有多名學(xué)生,但每個學(xué)生只能在一
個班級里,故實體班級和實體學(xué)生之間的聯(lián)系是一對多,故A選項正確。
33有以下程序:#include#defineSUB(a)(a)-(a)main(){inta=2,b=3>c=5?d;
d=SUB(a+b)*c;printf("%d\n",d);}程序運行后的輸出結(jié)果是()。
A、0
B、-12
C、-20
D、10
標(biāo)準(zhǔn)答案:C
知火點解析:本題考查宏定義。宏定義只是做簡單的替換,所以本題中執(zhí)行語句
SUB(a+b)}c=(a+b-(a+b)*c=-20,故答案為C選項。
34、以下關(guān)于C語言文件的敘述中正確的是()。
A、文件南數(shù)據(jù)序列組成,其類型可以為二進(jìn)制文件或文本文件
B、文件由記錄序列組成,其類型可以為二進(jìn)制文件或文本文件
C、文件由字符序列組成,其類型可以為二進(jìn)制文件或文本文件
D、文件由數(shù)據(jù)序列組成,其類型只能是二進(jìn)制文件
標(biāo)準(zhǔn)答案:A
知識點解析:C語言文件是指一組相關(guān)數(shù)據(jù)的有序集合,從文件編碼的方式看.文
件可分為ASCH碼文件和二進(jìn)制文件兩種,其中ASCII文件也稱為文本文件,所
以文件由數(shù)據(jù)序列組成,類型可以為二進(jìn)制文件或文本文件,故選項A正確。
35、有以下程序:#include#includestruetA{inta;charb[10]:doublec:};
structAf(struetAt);main(){StruetAat={1001,"ZhangDa",1098.0);a=f(a);
printf("%d,%s,%6.lf\nM,a.a,a.b,a.c);}struetAf(struetAt)
{t.a=1002:strepy(t.b,"ChangRong");t.c=1202.0:returnt;}程序運行后
的輸出結(jié)果是()。
A、1002,ZhangDa,1202.0
B>1002,ChangRong,1202.0
C、1001,ChangRong,1098.0
D、1001,ZhangDa,1098.0
標(biāo)準(zhǔn)答案:B」
知識點解析:本題考查結(jié)構(gòu)體變量的引用以及作為函數(shù)參數(shù)的用法。題目雖然看似
復(fù)雜,其實比較容易,f函數(shù)的參數(shù)是結(jié)構(gòu)體變量,然后對參數(shù)重新賦值并返回,
所以該題目的答案為B選項。
36、有以下程序:#include<stdio.h>main(){intx=l,y=0,a=0,b=0;
switch(x){easel:switch(y){caseO:a++;break;case1:b++;break;)case2:
a++;b++;break;case3:a++;b++;)printf("a=%d?b=%d\n",a,b);)程
序的運行結(jié)果是()。
A、a=2,b=2
B、a=2)b=l
C、a=l,b=l
D、a=l,b=0
標(biāo)準(zhǔn)答案:B
知識點解析:C語言還提供了一種用于多分支選擇的swilch語句,計算表達(dá)式的
值。并逐個與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相
等時,即執(zhí)行其后語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后語句。如
表達(dá)式的值與所有case后的常量表達(dá)式均不相同時,則執(zhí)行default后的語句。
x=l;進(jìn)入第一層switch,y=0;進(jìn)入第二層switch。執(zhí)行a++;break;后a=l;在
進(jìn)入case2,(這里easel:沒有break,)執(zhí)行了a++.b+十,由于存在break,則跳出
switch,得到a=2.b=l,因此答案為B選項。
37、若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是
()。
A、intaE5+51;
B、intn=10?a[n];
C、#dcfincn5inta[2*n];
D、#defineN10inta[N];
標(biāo)準(zhǔn)答案:R
知識點解析:一維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達(dá)式];注意定義
數(shù)組時,元素個數(shù)不能是變量。因此應(yīng)該選B選項。
38、下列選項中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()。
A、數(shù)據(jù)類型
B、數(shù)據(jù)操作
C、數(shù)據(jù)結(jié)構(gòu)
D、數(shù)據(jù)約束
標(biāo)準(zhǔn)答案:A
知識點解析:數(shù)據(jù)模型芍述的內(nèi)容包含數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。
39、有以卜程序#include<stdio.h>main(){intx[]={8,2,6,12,5,15},fl,f2;int*p
=x;fl=f2=x[0];for(;p<=x+5;p++){if(fl<*p)fl=*p;if(f2>*p)f2=*p;)
printf("%d,%d\n",fl,f2):}程序的運行結(jié)果是
A、15,2
B、15,15
C、2,15
D、8,8
標(biāo)準(zhǔn)答案:A
知識點解析:本題的用意是求數(shù)組的最大值和最小值,首先把數(shù)組x首地址的值賦
給指針P,故*p初始值為8,而p是地址值,p+1相當(dāng)于數(shù)組中下一元素的地
在for循環(huán),是求數(shù)組x對應(yīng)的最大值和最小值,fl為最大值,f2為最小值。因此
輸出為15,2,答案為A選項。
二、程序填空題(本題共[題,每題7.0分,共7分0)
40、給定程序中,函數(shù)fun的功能是:在形參ss所指字符串?dāng)?shù)組中,刪除所有串
長超過k的字符串,函數(shù)返回所剩字符串的個數(shù)。ss所指字符串?dāng)?shù)組中共有N個
字符串,且串長小于M。請在程序的下劃線處填入正確的內(nèi)容并把下劃線刪除,
使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdio.h>#include<string.h
>#defineN5#defineM10inffun(char(*ss)[M].intk)(infi,j=0.len;/
**********found**********/for(i=0;i<1__;i++){len=strlen(ss[i]);/
**********Sund**********/if(len<=2)/**********Sund**********/
strcpy(ss[j++],3);}returnj;}main(){charx[N][M]=("Beijing",
"Shanghai","Tianjing","Nanjing","Wuhan"[;inti,f;printf("\nTheoriginal
string\n\n");for(i=0;i<N;i++)puts(x[i]);printf(H\n");f=fun(x,7);
printf("Thestringwitchlengthislessthanorequalto7:\n");for(i=0:i<f:
i++)puts(x[i]);printf(M\n");)
標(biāo)準(zhǔn)答案:(l)N(2)k(3)ss[i]
知識點解析?:本題中函數(shù)fun的功能是在形參ss所指字符串?dāng)?shù)組中,刪除所有串
長超過k的字符串,然后函數(shù)返回所剩字符串的個數(shù)。根據(jù)題意,在fun函數(shù)中,
利用for循環(huán)比較字符串長度是否小于k,然后利用sWcpy函數(shù)組成新的可用字符
串?dāng)?shù)組,將可用的字符串?dāng)?shù)組的長度值進(jìn)行返回,即為字符串的個數(shù)。第一空:
t€for(i=0;i<1;這一空部分出現(xiàn)在fun函數(shù)中的for循環(huán)條件中,在
定義了i之后i的條件。根據(jù)for后面的語句我們可以看出,這里是要進(jìn)行比較,
比較對象是ss所指字符串?dāng)?shù)組的所有字符串,所以這里循環(huán)要進(jìn)行整改字符串?dāng)?shù)
組的長度,相應(yīng)的,這里for循環(huán)的循環(huán)條件就要是i小于字符串長度,而字符串
長度開始就有定義,為N,所以這里應(yīng)該是i<N,這一空應(yīng)該填N。第二空:
4tif(lcn<=_2_f,這一空部分出現(xiàn)在fun函數(shù)中,是for循環(huán)中if條件語句的條
件,這根據(jù)if條件語句后面的語句我們可.以知道,這里的條件語句是后面strcpy的
執(zhí)行條件,而strcpy要執(zhí)行,根據(jù)題目給出的條件我們可以知道是耍字符串長度小
于等于k才能保留,所以這里的if條件語句中的條件應(yīng)該是字符串長度小于匕所
以這一空應(yīng)該填k。第三空:“strcpy(ss[j++]__3___);”這一空部分出現(xiàn)在strcpy
函數(shù)中,此函數(shù)為字符串復(fù)制函數(shù),是將后麗二不字符串復(fù)制到前面一個字符數(shù)
組中去,根據(jù)題意和前面的條件語句,這一行語句是要將符合條件的字符串重新組
成一個新的字符串?dāng)?shù)組,然后返回新數(shù)組的長度,這樣的話就能知道SS啪為新字
符串?dāng)?shù)組,而這里要復(fù)制的就是原字符串?dāng)?shù)組中符合條件的字符串,所以這里要填
就是前面符合條件的i所對應(yīng)的字符串,所以這一空應(yīng)該填ss[i]o
三、程序修改題(本題共[題,每題7.0分,共[分C)
41、給定程序M0DI1.C中函數(shù)fun的功能是:逐個比較p、q所指兩個字符串對
應(yīng)位置中的字符,把ASCH值大或相等的字符依次存放到c所指數(shù)組中,形成一個
新的字符串。例如,若主函數(shù)中a字符串為:aBCDeFgH,主函數(shù)中b字符串為:
ABcd,則C中的字符串應(yīng)為:aBcdeFgHo請改正程序中的錯誤,使它能得出正確
結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
#includc<stdio.h>#include<string.h>voidfun{char*p?char樂q,char*c){/
半亭半亭半亭半亭半亭tound半半半半半早亭半亭亭Iintk—1?I半半半半半率/半半率tound半字半半半半半半半半/
while(*p!=*q){if(*p<*q)c[k]=*q;elsec[k]=*p;if(*p)p++;if(*q)q++:k++;})
main。{chara"OL'aBCDeFgH”,b[10]="ABcdH,C[80]={'\0'};fun(a,b,c);
printf("Thestringa:");puts(a);printf(nThestringb:H);puts(b);prinlf("The
result:");pnts(c):}
標(biāo)準(zhǔn)答案:(I)intk=l改為intk=0;(2)(*p!二*q)改為(*pII*q);
知識點解析:本題中函數(shù)fun的功能是:逐個比較p、q所指兩個字符串對應(yīng)位置
中的字符,把ASCII值大或相等的字符依次存放到c所指數(shù)組中,形成一個新的字
符串。While循環(huán)為字符串比較的提供前提條件,然后再比較得到p、q兩個字符
串一一對應(yīng)的符合條件中可用的一個字符,最終合并得到新的字符串c。(1)第一
個錯誤在fun函數(shù)最開始定義的k的初始值。根據(jù)fun函數(shù)的功能我們可以知道這
里k是新字符串c各字符的位置,然后根據(jù)比較結(jié)果一一對應(yīng)新字符串個位置的字
符。這里犯了一個明顯的錯誤就是:從字符串的第一個字符比較,得到的第一個字
符在字符串中的位置不是c[l]而是c[01,所以k的初始值不是1,而是0。所以這
里第一個改錯是將1改為0。第二個錯誤在while循環(huán)的條件表達(dá)式,我們要知道
的是while循環(huán)條件和if循環(huán)條件的區(qū)別。if的條件為開始條件,即符合這條件開
始循環(huán),而這里while的循環(huán)條件則是為終止條件,意思是下面括號內(nèi)的循環(huán)進(jìn)行
到不符合while條件語句時終止,所以這里很明顯錯誤,如果是這種條件的只要兩
個字符串中出現(xiàn)相同的字符即終止,以例子來說就是到第二個字符比較久終止,很
明顯不符合題意。所以為了完全比較這兩個字符串,給出的終止條件應(yīng)該是到兩個
字符串都結(jié)束,即兩個字符串字符都為時終止,所以終止條件應(yīng)該為
“*pII*q,\
四、程序設(shè)計題(本題共I題,每題1.0分,共7分。)
42、假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了
字符串前導(dǎo)的*號之外,將串中其它“*”號全部刪除,在編寫函數(shù)時,不得使用C
語言提供的字符串函數(shù)。函數(shù)fun中給出的語句僅供參考,例如,字符串中的內(nèi)
容為:****A*BC*DEF*G*******,刪除后字符串中的內(nèi)容應(yīng)當(dāng)是:
****ABCDEFG。注意:部分源程序在文件PR0G1.C文件中。請勿改動主函數(shù)
main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
#include<stdio.h>voidfun(char*a){/*以下代碼僅供參考*/inti=0,k;
while(a[i]==,*')i++;k=i;while(a[i]!=>\05)/*以下程序段實現(xiàn)非*字符前移*/
{}a[k]=,\0\}main(){chars[81];voidNONO();printf("Enterastring:\n");
gets(s);fun(s);printfCThestringafterdeleted:\n");puts(s);NONO();}void
NONO。{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。
*/FILE*in,*out;inti;chars|81];in=fopen(Min.dat',,Hr");
out=fopen("out.dat","w");for(i=0:i<10:i++){fscanf(in,"%s",s);fun(s);
fprintf(out,n%s\n",s);)folkose(in);fclose(out);)
標(biāo)準(zhǔn)答案:voidfun(char*a)(inti=0>k;while(a[i]=**,)i++;k=i;while(a[i]!=,\
,,,,
09{if(a[i]!=*)a[k++]=a[i];i++;}a(k]=\0;)
知識點解析:本題所需要的功能是是處理一個輸入的只含字母和“*”的字符串,除
了字符串前導(dǎo)的“*”號之外,將串中其它“”號全部刪除。并且在編寫函數(shù)時,不得
使用C語言提供的字符串函數(shù)。這里根據(jù)題意,很快我們就知道需要使用循環(huán)語
句和條件語句來進(jìn)行功能的實現(xiàn)。第一步要自己輸入字符串,這就需要格式輸入函
數(shù);第二步就要進(jìn)行功能函數(shù)了,這里的就要一開始是否有“*”的存在,有多少個
“*”,這個是很重要的判斷。因為根據(jù)題意雖然是要刪除“*”,但是字符串前面的
“*”是不用刪除的,無論有多少個都不能刪除,然后當(dāng)沒有“*”或者跳過字符串前面
后,就要到達(dá)第一個字母了,字母保留,然后后面遇見“*”就刪除,依次循環(huán)進(jìn)
行下去,一直到字符串結(jié)束,這些功能的實現(xiàn)就需要條件語句和循環(huán)語句的使用
了;第三步將處理過后的字符串輸出,得到新的字符串,程序就可以結(jié)束了。本
題主函數(shù)中需要輸入一個字符串,然后進(jìn)入fun函數(shù)處理字符串,在fun函數(shù)中,
就要實現(xiàn)題目要求我們寫出的功能了。首先是判斷字符串的開始是否為“*”,這里
就用到while函數(shù)(這里因為有步驟的區(qū)別,所以這里用while比用if好),判斷開
始的字符是否為見程序第5?6行,這里需要順次進(jìn)行,因為開始無論有多少
個“*”都不用刪除,當(dāng)出現(xiàn)字母時,就開始下一步了,因為已經(jīng)出現(xiàn)了字母,所以
后面出現(xiàn)的一律刪除,而字母時不用管的,所以這里就又需要if條件語句來判
斷是否為然后賦值為空,見程序第9?12行,當(dāng)程序進(jìn)行到字符為空時代表字
符串結(jié)束,程序就終止,這里就要用到while條件語句進(jìn)行終止判斷,見程序第7
行。這樣循環(huán)進(jìn)行就能保留字符串前面的并且刪除后面出現(xiàn)的所有了,然后
fun函數(shù)執(zhí)行完成就可以轉(zhuǎn)到主函數(shù)中進(jìn)行新字符串的輸出了。
國家二級(C語言)機(jī)試模擬試卷第2
套
一、選擇題(本題共40題,每題1.0分,共40分。)
1、假定已建立以下數(shù)據(jù)鏈表結(jié)構(gòu),且指針p和q已指向如下圖所示的結(jié)點:
oext
kk則以下選項中可將q所指結(jié)點從鏈表中刪除
并釋放該結(jié)點的語句是()。
A、(*)p.next=(*q).next;free(p)
B、b=q—>next;free(q)
C^p=q;free(q)
D、p—>next=q—>next;free(q)
標(biāo)準(zhǔn)答案:D
知識點解析:要刪除結(jié)點q,應(yīng)首先由q的上一個結(jié)點p的指針域指向q的指針域
所指向的結(jié)點,即p—>next=q—>next;,然后才能釋放結(jié)點q,即free(q)。
2、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。
A、函數(shù)調(diào)用可以作為獨立的語句存在
B、函數(shù)調(diào)用可以作為一個函數(shù)的實參
C、函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
D、函數(shù)調(diào)用可以作為一個函數(shù)的形參
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查函數(shù)調(diào)用的有關(guān)知識點。函數(shù)調(diào)用①可以出現(xiàn)在表達(dá)式
中:②可以作為獨立的語句存在;③可以作為一個函數(shù)的實參。
3、以下數(shù)組定義中錯誤的是()。
A、intx[2][3]={l,2,3,4,5,6);
B、intx口[3]={0};
C、intx[|[3|={{l,2,3},{4,5,6));
Dsintx[2][3]={{l,2),{3,4),{5,6)};
標(biāo)準(zhǔn)答案:D
知識點解析:D選項中x[2]⑶定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元
素賦值時卻賦成了三行,所以錯誤。
4、請閱讀以下程序:#include#includcvoidfun(intb[])main(){staticinti=0;{int
k,a[5]={L3,5,4,9};Do{b[i]+=b[i+l];fun(a);}while(++i<2);}for(k=0;
k<5;k++)printf("%d",a[k]);}上面程序的輸出是()。
A、13579
B>48579
C、48549
D、48999
標(biāo)準(zhǔn)答案:C
知識點解析:本題考查的是for循環(huán)以及while循環(huán)。fun函數(shù)中定義了靜態(tài)變量
i=0,fim(a)使得a[0]=a[0]+a[l]=4,a[l]=a[l]+a[2]=8,此時i的值變?yōu)?,++i<2不
成立,所以do-while循環(huán)結(jié)束,輸出數(shù)組a的各元素即得到48549。
5、以下不正確的轉(zhuǎn)義字符是()。
A、
B、
C、
D、'088'
標(biāo)準(zhǔn)答案:D
知識點解析:是反斜線符,'\cT是整型變量轉(zhuǎn)義字符,'\s,是字符串型轉(zhuǎn)義
字符,C語言中沒有規(guī)定,088,為轉(zhuǎn)義字符。
6、若語句"t=fun(fun(x,y,a),(a+b,a+c),x+y+z);”對fun函數(shù)的調(diào)用正確,則
fun函數(shù)的形參個數(shù)為()。
A、3
B、4
C、5
D、6
標(biāo)準(zhǔn)答案:A
知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)個數(shù)。在函數(shù)調(diào)用時,實參必須和形參的
個數(shù)、類型一一對應(yīng),但函數(shù)的計算結(jié)果只有一個值,因而fun函數(shù)的參數(shù)個數(shù)為
3。
7、若x=2,y=3,則x&y的結(jié)果是()。
A、0
B、2
C、3
D、5
標(biāo)準(zhǔn)答案:B
知識點解析:本題主要考查按位與(&)運算的知識點。是對兩個運算量相應(yīng)的
位進(jìn)行邏輯與,的規(guī)則與邏輯與“&&”相同。x=2的二進(jìn)制為00000010,y=3
的二進(jìn)制為00000011,x&y=000000l0,轉(zhuǎn)化為十進(jìn)制即為2。
8、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{char
number[100];intage:floatp[6];};定義一個數(shù)沮:structanumber[10]:假定
文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。
A、fread(b,sizeof(struc(a),10,fp);
for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp);
C、for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);
D、for(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);
標(biāo)準(zhǔn)答案:B
知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,
fp)ofread函.數(shù)參數(shù)說明:“buffer”是一個指針,對fread來說,它是讀入數(shù)據(jù)的
存放地址。對fwrite來說,是要輸出數(shù)據(jù)的地址。“size”是要讀寫的字節(jié)數(shù);
“count”是要進(jìn)行讀寫多少個size字節(jié)的數(shù)據(jù)項;“用”是指文件型指針。選項B)中
b[i]是一個數(shù)組,不是指針,需改為&b[i].注意:完成一次讀操作(fread。)后,如
果沒有關(guān)閉流(fclosc()),則指針(FILE*fp)自動向后移動前一次讀寫的長度,不關(guān)閉
流則繼續(xù)下一次讀操作,接著上次的輸出繼續(xù)輸出。
9、檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A、確認(rèn)測試
B、需求測試
C、驗證測試
D、路徑測試
標(biāo)準(zhǔn)答案:A
知識點解析:確認(rèn)測試的任務(wù)是驗證軟件的功能和性能,以及其他特性是否滿足需
求規(guī)格說明中確定的各種需求。
10、有下列程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,
&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中
的值為123,n中的值為456,P中的值為789,則正確的輸入是()。
A、m=123n=456p=789
B、m=123n=456p=789
C、m=123,n=456,p=789
D、123456789
標(biāo)準(zhǔn)答案:A
知識點解析:scanf()函數(shù)中格式控制字符串是為了輸入數(shù)據(jù)用的,無論其中有什么
字符,在輸入數(shù)據(jù)時,按照一一對應(yīng)的位置原樣輸入這些字符。
11、當(dāng)a=4,b=5,c=7,d=6時,執(zhí)行下面一段程序:if(a<b)if(c<d)x=l;else
if(a<c)if(b<c)x=2;elsex=3;elsex=4;elsex=5;程序執(zhí)行后,x的值為()。
A、1
B、2
C、3
D、4
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查ifelse語句。第一個if語句,先判斷條件,aVb成立,則
執(zhí)行下面的語句:第二個if語句,先判斷條件,不成立,則執(zhí)行其對應(yīng)的
else語句:第三個if語句,先判斷條件,aVc成立,執(zhí)行其后語句;第四個if語
句,先判斷條件,bVc成立,執(zhí)行語句x=2。
12、在C涪言程序中,以下說法正確的足()。
A、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
B、函數(shù)的定義不可嵌套,但函數(shù)的調(diào)用可以嵌套
C、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
D、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查函數(shù)調(diào)用的基本概念。因為函數(shù)的結(jié)果是一個未知量,而函
數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但是函數(shù)調(diào)用可以嵌套。
13、以下關(guān)于宏的敘述中正確的是()。
A、宏替換沒有數(shù)據(jù)類型限制
B、宏定義必須位于源程序中所有語句之前
C、宏名必須用大寫字母表示
D、宏調(diào)用比函數(shù)淵用耗費時間
標(biāo)準(zhǔn)答案:A
知識點解析:宏定義寫在函數(shù)的花括號外邊,作用域為其后的程序,通常在文件的
最開頭,所以B選項中宏定義必須位于源程序中所有語句之前是錯誤的。宏名一
般用大寫,但不是必須用大寫,所以C選項錯誤。宏展開不占運行時間,只占編
譯時間,函數(shù)調(diào)用占運行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選
項錯誤。
14、若有“doublea;”,則正確的輸入語句是()。
A、scanR''%ir',a);
B、scanf(,,%f,,&a);
C、scanff'%ir',&a);
D、scaM''%le'',a);
標(biāo)準(zhǔn)答案:C
知識點解析:scanf函數(shù)的調(diào)用形式是:scanf(“格式字符串”,輸入項地址表)。其
中,”格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地
址.a是double型數(shù)據(jù).格式字符串可以用"%1R”%廿是浮點型.題中定義變量
a為雙精度型變量,雙精度變量的格式符為“%變量的地址用取地址符加
變量名表示,變量a的地址為
15、有如下程序#includemain(){char*pl=0;int*p2=0;double*p3=0;
printf("%d,%d,%d\n",sizeof(pl),sizeof(p2),sizeof(p3));)程序運行后的輸出結(jié)果是
()o
A、4,4,4
B、1,4,8
C、0,0,0
D、1,2,4
標(biāo)準(zhǔn)答案:A
知識點解析:不可以把一個in1型數(shù)據(jù)直接賦值給一個指針變量,只能用取地址運
算符“&”把該整型變量的地址賦值給該指針變量,選項A)錯誤;函數(shù)類型若為指
針類型則可以返回地址值,選項B)正確;函數(shù)傳參過程中,是把實參的數(shù)據(jù)復(fù)制
一份傳給形參,所以改變形參的值不會對實參造成影響,選項C)正確;NULL的
定義包含在頭文件stdio.h中,所以選項D)正確;所以答案選A)。
16、有以下程序:#includemain(){FILE*pf;char*sl-4China,\*s2-,Beijingv;
pf=fbpen(44abc.dat”,"wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指
針同到文件開頭*/fwrite(sl,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat
文件的內(nèi)容是()。
A、China
Chinang
C、ChinaBeijing
D、BeijingChina
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查文件操作函數(shù),fwritc和rewind函數(shù),題目中先是將s2字
符串寫入adc.dal中,然后將寫指針回到文件開頭,然后寫入si字符串,那么si
字符串就將前5個字符覆蓋,所以最終結(jié)果為Chinang,選項B正確。
17、下列敘述中正確的是()。
A、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與川頁序存儲結(jié)構(gòu)所需要的存儲空間是相同的
B、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要多于順序存儲結(jié)構(gòu)
C、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)所需要的存儲空間一般要少于順序存儲結(jié)構(gòu)
D、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)在存儲空間的需求上沒有可比性
標(biāo)準(zhǔn)答案:B
知識點解析:線性鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加
了存儲空間,所以一般要多于順序存儲結(jié)構(gòu)。
18、下列選項中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。
A、數(shù)據(jù)庫維護(hù)
B、數(shù)據(jù)庫設(shè)計
C、改善系統(tǒng)性能,提高系統(tǒng)效率
D、數(shù)據(jù)類型轉(zhuǎn)換
標(biāo)準(zhǔn)答案:D
知識點解析:數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、
設(shè)計、維護(hù)、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之
一是數(shù)據(jù)庫設(shè)計,具體地說是進(jìn)行數(shù)據(jù)模式的設(shè)計;數(shù)據(jù)庫維護(hù)。DBA必須對數(shù)
據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進(jìn)行實施與
維護(hù);改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不
斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。
19、若變量已正確定義,則以下語句的輸出結(jié)果是()。s=32:s八=32;printf;"%
d",s);
A、-1
B、0
C、I
D、32
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查邏輯異或運算。異或運算只有在兩個比較的位不同時其結(jié)果
是1,否則結(jié)果為0,題目中兩個值相同,所以結(jié)果為0。
20、以下選項中正確的語句組是()。
A、chads;S={"BOOK!”};
B、charts;s="BOOK!”;
C>charsUOJ;s='、BOOK!”;
D、chars[];s="BOOK!”;
標(biāo)準(zhǔn)答案:B
知識點解析:A選項去掉大括號就正確了;C選項和D選項應(yīng)在定義時賦初值。因
此B選項正確。
21、定義如下變量和數(shù)組:inti,x[3][3]={l,2,3,4,5,6,7,8,9);則下面
語句的輸出結(jié)果是()。for(i=0;i<3;i++)printf(,,%d,\x[i][2-ij);
A、159
B、147
C、357
D、369
標(biāo)準(zhǔn)答案:C
知識點解析:本題主要考查二維數(shù)組的使用。題中利用for循環(huán)來輸出x數(shù)組中的
指定元素:①當(dāng)i=0時,輸出x[0][2]=3;②當(dāng)i=l時,輸出x⑴[1]=5;③當(dāng)U2
時,輸出x[2][0]=7。
22>若有以下程序:#includemain(){inta=l?b=2>c=3,d=4?r=0;if(a!=l);
elser=I;if(b==2)r+=2;e]se;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\
n",r);}則程序的輸出結(jié)果是()。
A、10
B、7
C、6
D、3
標(biāo)準(zhǔn)答案:B
知識點解析:else總是和與之最近的if配對,執(zhí)行第一個if,判斷條件不成立,執(zhí)
行elser=l;語句。再執(zhí)行第二個if語句中的判斷條件,成立,左移執(zhí)行r+=2,r
的值為3,再執(zhí)行第三人if的判斷條件,不成立,執(zhí)行第7行else后面的空語句
再執(zhí)行第四個if的判斷條件d==4成立,執(zhí)行r+=4,r的值為7。然后打印
輸出。
23、若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是
()。
A、函數(shù)的形參和實參分別占用不同的存儲單元
B、形參只是形式上的存在,不占用具體存儲單元
C、同名的實參和形參占同一存儲單元
D、函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元
標(biāo)準(zhǔn)答案:A
知識點解析:本題重點考察的是函數(shù)的形參和實參。在定義函數(shù)時函數(shù)名后面括弧
中的變量名稱為“形式參數(shù)''(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后
面括弧中的參數(shù)(可以是一個表達(dá)式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實
參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不
能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。因此A
選項正確。
24、有以下程序:#includemain(){inta[4][4]={{1,4,3,2},{8,6,5,7),
{3,7,2,5},{4,8,6,1));inti,j,k,t;for(i=0;i<4;i++)fbr(j=O;
j<3;j++)for(k=j+l;k<4:k++)if(aU][i]>a[k][i]){t=aU][i];arj][i]=a[k]
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標(biāo)志物在藥物臨床試驗中的臨床試驗前沿進(jìn)展
- 生物支架引導(dǎo)的神經(jīng)再生策略
- 生物打印技術(shù)在急性肝損傷修復(fù)中的細(xì)胞移植
- 生物化學(xué)虛擬仿真實驗教學(xué)
- 生物制品穩(wěn)定性試驗聚集與沉淀分析
- 生物制劑失應(yīng)答的炎癥性腸病多中心臨床研究數(shù)據(jù)
- 深度解析(2026)《GBT 20081.3-2021氣動 減壓閥和過濾減壓閥 第3部分:測試減壓閥流量特性的可選方法》
- 京東物流經(jīng)理面試常見問題集
- 游戲引擎研發(fā)團(tuán)隊的項目經(jīng)理面試問題集
- 生殖基因編輯試驗的倫理邊界探討
- 2025廣東廣州黃埔區(qū)第二次招聘社區(qū)專職工作人員50人考試筆試備考題庫及答案解析
- 2026屆上海市青浦區(qū)高三一模數(shù)學(xué)試卷和答案
- 2026年重慶安全技術(shù)職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 環(huán)衛(wèi)設(shè)施設(shè)備采購項目投標(biāo)方案投標(biāo)文件(技術(shù)方案)
- 微創(chuàng)機(jī)器人手術(shù)基層普及路徑
- 24- 解析:吉林省長春市2024屆高三一模歷史試題(解析版)
- 2025年黑龍江省公務(wù)員《申論(行政執(zhí)法)》試題含答案
- 福建省福州市倉山區(qū)2024-2025學(xué)年三年級上學(xué)期期末數(shù)學(xué)試題
- 中醫(yī)特色護(hù)理在急診科的應(yīng)用
- 新安全生產(chǎn)法2025年版全文
- 在學(xué)校的一天記事并表達(dá)感情抒情作文7篇
評論
0/150
提交評論