國家二級(C語言)筆試模擬試卷5(共469題)_第1頁
國家二級(C語言)筆試模擬試卷5(共469題)_第2頁
國家二級(C語言)筆試模擬試卷5(共469題)_第3頁
國家二級(C語言)筆試模擬試卷5(共469題)_第4頁
國家二級(C語言)筆試模擬試卷5(共469題)_第5頁
已閱讀5頁,還剩110頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

國家二級(C語言)筆試模擬試卷5(共9套)(共469題)國家二級(C語言)筆試模擬試卷第1套一、選擇題(2分)(本題共29題,每題1.0分,共29分。)1、以下敘述錯誤的是()。A、C語言區(qū)分大小寫B(tài)、C程序中的一個變量,代表內存中一個相應的存儲單元,變量的值可以根據(jù)需要隨時修改C、整數(shù)和實數(shù)都能用C語言準確無誤地表示出來D、在C程序中,正整數(shù)可以用十進制、八進制和十六進制的形式來表示標準答案:C知識點解析:本題涉及C語言最基本的3個概念:①C語言是區(qū)分大小寫的,q和Q是兩個不同的變量;②變量的實質就是在內存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值,變量的值可以根據(jù)需要進行修改;③整數(shù)在允許的范圍內可以準確的表示出來,但不可能表示無限度的實數(shù)。正整數(shù)可用二進制、十進制、八進制和十六進制表示。2、以下不正確的轉義字符是()。A、’\\’B、’\t’C、’\n’D、’088’標準答案:D知識點解析:’\\’是反斜線轉義字符;’\t’是水平跳格轉義字符;’\n’是換行轉義字符;C語言中沒有規(guī)定’088’是轉義字符。3、可在C程序中用作用戶標識符的一組標識符是()。A、voiddefineWORDB、as_b3_123IfC、For-abccaseD、2cDOSIG標準答案:B知識點解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線,關鍵字不能用作用戶標識符。4、若變量已正確定義并賦值,則以下符合C語言語法的表達式是()。A、a=a+7;B、a=7+b+c,a++C、int(12.3%4)D、a=a+7=c+b標準答案:B知識點解析:暫無解析5、有以下程序段charch;intk;ch=’a’;k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結果是()。A、因變量類型與格式描述符的類型不匹配輸出無定值B、輸出項與格式描述符個數(shù)不符,輸出為零值或不定值C、a,97,12k=12D、a,97,k=12標準答案:D知識點解析:在用基本輸出函數(shù)printf時,格式說明與輸出項的個數(shù)應該相同。如果格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。6、下列敘述中錯誤的是()。A、計算機不能直接執(zhí)行用C語言編寫的源程序B、C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件C、后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件D、后綴為.obj和.exe的二進制文件都可以直接運行標準答案:D知識點解析:暫無解析7、有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序運行后的輸出結果是()。A、4,6B、2,5C、3,5D、2,6標準答案:B知識點解析:暫無解析8、若有代數(shù)式(其中P僅代表自然對數(shù)的底數(shù),不是變量),則下列能夠正確表示該代數(shù)式的C語言表達式是()。A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))標準答案:C知識點解析:n和e的x冪次方,要分別調用C語言的數(shù)學庫函數(shù)doublepow(n,x)和doubleexp(x),因為這兩個函數(shù)的返回值都為double型,對兩者的和計算絕對值,調用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對值,再調用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計算出的結果就是題干中表達式的值。9、設有定義:intk=0;,下列選項的4個表達式中與其他3個表達式的值不相同的是()。A、k++B、k+=1C、#NAME?D、k+1標準答案:A知識點解析:暫無解析10、有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/printf("%u\n",x);}程序運行后的輸出結果是()。A、-1B、65535C、32767D、0xFFFF標準答案:B知識點解析:“%u”格式符表示以十進制形式輸出無符號整形變最。本題中無符號整形變量x=0xFFFF表示的是十六進制無符號整型變量的最大值65535,所以最后輸出的結果為65535。11、下面程序的運行結果是()。for(i=3;i<7;i++)printf((i%2)?("**%d\a"):("##%d\n"),i);A、**3##4**5**6B、##3**4##5**6C、##3**4##5##6D、**3##4**5##6標準答案:D知識點解析:本題考查printf函數(shù)的輸出格式和條件表達式“?:”的使用。①printf函數(shù)輸出時“**%d\n”和“##%d\n”中的“##”和“**”都是直接輸出。②條件表達式的基本格式為:“a?b:c”。它的運算規(guī)則為:當a為非0時,整個表達式的值取b的值,當a為0時,整個表達式取c的值。12、設有語句:if(a==1)b=2;c=3;,以下語句中與之等價的是()。A、if(a==1){b=2;c=3;}B、if(a!=1){;}else{b=2;c=3;}C、if(a=1)c=3;b=2;D、(a==1)?b=2:a:=a;c=3;標準答案:D知識點解析:暫無解析13、運行下列程序時,若輸入數(shù)據(jù)為“321”,則輸出結果是()。main(){intnum,i,j,k,s;scanf("%d",&num);if(num>99)s=3;elseif(num>9)s=2;elses=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(s){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);case1:printf("%d\n",k);}}A、123B、1,2,3C、321D、3,2,1標準答案:A知識點解析:本題考查if-else語句和switch語句。scan函數(shù)通過鍵盤讀入nUm的值。因為num=321>99,所以s=3,i=3,i=2k=1。因為s=3,所以執(zhí)行case3,輸出k,j,i的值,然后通過breed結束程序。14、判斷char型變量c1是否為小寫字母的正確表達式為()。A、’a’<=c1<=’z’B、(c1>=A)&&(c1<=z)C、(’a’>=c1||(’z’<=c1)D、(c1>=’a’)&&(c1<=’z’)標準答案:D知識點解析:暫無解析15、設有定義:chars[10];inti=0;,以下不能將一行(不超過100個字符)帶有空格的字符串正確讀入的語句或語句組是()。A、gets(s);B、scanf("%s",s);C、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;D、do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’\0’;標準答案:B知識點解析:本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()數(shù)接收字符串時的結束標志為回車或者空格。因此選巧16、下面4個關于C語言的結論中錯誤的是()。A、可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)B、可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)C、可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)D、do…while語句與while語句的區(qū)別僅是關鍵字“while”出現(xiàn)的位置不同標準答案:D知識點解析:本題考查幾個循環(huán)語句的關系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次,再判斷循環(huán)條件,while語句是先判斷條件再執(zhí)行。17、若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。A、(p++)->mB、*(p++)->mC、(*p).mD、*(++p)->m標準答案:D知識點解析:暫無解析18、下列程序的運行結果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4;*y=s[0];m++;}voidmain(){inta[]={1,2,3,4,5},k;intx;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}A、1,1,1,1,1,B、1,2,3,4,5,C、0,0,0,0,0,D、4,4,4,4,4,標準答案:A知識點解析:本題中sub(int*s,int*y)函數(shù)的參數(shù)是兩個指針型變量,在函數(shù)體內將數(shù)組s的第一個元素賦給y。主程序內,首先定義了一維數(shù)組并賦初值,然后通過for循環(huán),5次調用sub(a,&x)函數(shù),每一次調用都是將數(shù)組a的第一個元素1賦給x,并輸出。19、有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運行后的輸出結果是()。A、3B、6C、8D、12標準答案:B知識點解析:暫無解析20、C語言中規(guī)定,程序中各函數(shù)之間()。A、既允許直接遞歸調用也允許間接遞歸調用B、不允許直接遞歸調用也不允許間接遞歸調用C、允許直接遞歸調用不允許間接遞歸調用D、不允許直接遞歸調用允許間接遞歸調用標準答案:A知識點解析:本題考查函數(shù)調用的基本概念。在函數(shù)調用時,只要符合函數(shù)的使用,程序中的各個函數(shù)間既可以直接調用其他函數(shù),也可以遞歸調用其自身。21、以下程序的輸出結果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a[j][j]];printf("%d\n",s);}A、3B、4C、1D、9標準答案:B知識點解析:當外層循環(huán)為i時,內層循環(huán)i只能取j=i,所以s+=a[i][a[j][j]],其實就是s+=a[i][a[i][i]],當i=0時,s=s+a[0][a[01[0]]=s+a[0][0]=1,當i=1時,s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,當i=2時,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。22、有以下程序:#include<stdio.h>#defineX5+6main(){inta=2,c;C=X*2:printf("%d",C);}程序運行后的輸出結果是()。A、17B、22C、16D、11標準答案:A知識點解析:暫無解析23、當用“#defineF37.5f”定義后,下列敘述正確的是()。A、F是float型數(shù)B、F是char型數(shù)C、F無類型D、F是字符串標準答案:D知識點解析:字符替換定義格式為:#define標識符(形參表)形參表達式。題中F是代表形參表達式的標識符(字符串)。24、在一介C源程序文件中,要定義一個只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使削的存儲類別是()。A、autoB、registerC、externD、static標準答案:D知識點解析:“auto”類定義的自動變:鞋實質上是一個函數(shù)內部的局部變量,作用域是在所說明的函數(shù)中;“register”說明只能用于說明函數(shù)中的變量和參數(shù)中的形參,因此不允許將外部變量或靜態(tài)變量說明為register;“extern”是定義在所有函數(shù)之外的全局變量,它可以被所有的函數(shù)訪問,在所有函數(shù)體的內部是有效的,所以函數(shù)之間可以通過外部變量直接傳遞數(shù)據(jù);“static”為允許本源文件中所有函數(shù)使用的全局變量。25、以下說法正確的是()。A、宏定義是C語句,要在行末加分號B、可以使用#undefine提前結束宏名的使用C、在進行宏定義時,宏定義不能嵌套D、雙引號中出現(xiàn)的宏名也要進行替換標準答案:B知識點解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標識符字符串,行末不加分號;②雙引號中出現(xiàn)的宏名不替換;③如果提前結束宏名的使用,程序中可以使用#ndefine;④在進行宏定義時,宏定義能層層置換,能夠嵌套。26、下面程序的輸出結果是()。typedefunion{longx[1];inty[4];charz[10];}M;Mt;main(){printf("%d\n",sizeof(t));}A、32B、26C、10D、4標準答案:C知識點解析:“聯(lián)合體”所占用的內存空間為最長的成員所占用的空間。題中聯(lián)合體的z[10]成員聯(lián)合體中占空間最長的成員。27、以下程序中函數(shù)sort的功能足對a數(shù)組中的數(shù)據(jù)進行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結果是()。A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2,1,C、1,2,3,8,7,6,5,4,9,10,D、1,2,10,9,8,7,6,5,4,3,標準答案:C知識點解析:程序中sort函數(shù)的功能是對數(shù)組中的數(shù)據(jù)進行從大到小的排序。主函數(shù)main中調用函數(shù)sort(&aa[3],51;,使得數(shù)組aa中從第4個元素開始的5個元素進行從大到小的排序,數(shù)組aa中的元素變?yōu)椋?,2,3,8,7,6,5,4,9,10。并輸出這些元素。28、設x=061,y=016,則z=x|y的值是()。A、1111B、1.11111e+007C、111111D、1.1e+007標準答案:C知識點解析:本題主要考查按位或運算,x=061(二進制為00110001),y=016(二進制為00001110),進行或運算后結果為00111111。29、函數(shù)rewind(fp))的作用是()。A、使fp指定的文件的位置指針重新定位到文件的開始位置B、將fp指定的文件的位置指針指向文件中所要求的特定位置C、使fp指定的文件的位置指針向文件的末尾D、使fp指定的文件的位置指針自動移至下一個字符位置標準答案:A知識點解析:位置指針重返文件頭函數(shù)rewind()的調用形式為:rewind(fp)。其中,“fp”是指向文件的文件型指針。rewind(fp)的功能是:使fp指定的文件的位置指針重新定位到文件的開始位置。二、填空題(本題共15題,每題1.0分,共15分。)30、已知“inta=2,b=2,c=3;”,則執(zhí)行完語句“a*=18+(b++)-(++C);”后,a的值是()。標準答案:32知識點解析:暫無解析31、執(zhí)行以下“for(i=1;i++<=4;i++);”語句后,變量i的值是()。標準答案:6知識點解析:暫無解析32、若從鍵盤輸入24,則以下程序輸出的結果是()。#include<stdio.h>main(){inta;scanf("%d",&A);if(a>20)printf("%d",A);if(a>10)printf("%d",A);if(a>5)printf("%d",A);}標準答案:242424知識點解析:暫無解析33、下面程序的功能是:計算1~20之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁帐钩绦蚬δ芡暾?include<stdio.h>main(){inta=0,b=0,c=0,i;for(i=0;i<=20;i+=2){a+=i;();c+=b;}printf("偶數(shù)之和=%d\n",A);printf("奇數(shù)之和=%d\n",c-21);}標準答案:b=i+1知識點解析:分析for循環(huán)條件,i=0說明循環(huán)從0開始判斷,i+=2是間隔為2的數(shù),i<=20就是控制數(shù)是20之內的a+=i,就是所有偶數(shù)的和,如果從1開始(b=i+1)間隔為2的數(shù)(1,3,5,7,9,11,13,15,17,19)相加就是所有奇數(shù)的和。34、設有以下程序:main(){inti,sum=0;for(i=2;i<10;i++){if((i%2)==0)continue;sum+=i;}printf("%d\n",sum);}程序執(zhí)行后的輸出結果是()。標準答案:24知識點解析:continue語句功能:結束本次循環(huán)(注:不是終止整個循環(huán)),即跳過循環(huán)體中continue語句后面的語句,開始下一次循環(huán)。35、下面程序的功能是:從輸入的正整數(shù)中選3個數(shù)進行輸出,要求這些數(shù)都是2的倍數(shù),請?zhí)羁铡ain(){inta,i=0;scanf("%d",&A);do{if(a>0&&a%2==0){printf("%d\n",A);i++;}if(i!=3){scanf("%d",&A);}}while(());}標準答案:i<3知識點解析:暫無解析36、以下程序的輸出結果是()。#include<stdio.h>fun(){inta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<=4;cc++)fun();printf("\n");}標準答案:3333知識點解析:本題考查for循環(huán),for(cc=1;cc<=4;cc++)表示循環(huán)4次,a+=3表示每次a的值增加3,但是子函數(shù)中沒有將變量a定義為static類型,所以每次調用完子函數(shù)之后,變量a所做的改變都不能保存,這樣在下一次調用子函數(shù)時,a的初值仍是0,所以不管調用多少次,子函數(shù)輸出始終是3。37、以下程序的輸出結果是()。#inciude<stdio.h>main(){chars[]="ABCabc";s[5]=’\0’;printf("%s\n",s);}標準答案:ABCab知識點解析:本題中字符數(shù)組的初值是“ABCabc”,s[5]=’c’,然后通過s[5]=’\0’重新給s[5]賦值,在C語言中’\0’是字符串結束標志,執(zhí)行s[5]=’\0’,其實是將s[5]的值去掉只保留前面的字符。38、下面程序的運行結果是()。#include<stdio.h>#defineSlZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]=’A’+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}標準答案:abcdelkjihgf知識點解析:本題先給字符型數(shù)組s的12個元素賦值a到1共12個字母,函數(shù)sub(char*a,intt1,intt2)的功能是將數(shù)組a的從第t1+1個元素到t2+1個元素進行逆置,在主函數(shù)中調用sub(s,5,SIZE-1)函數(shù),是將數(shù)組s的第6個元素到第12個元素進行逆置,其他元素位置不變。39、已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結果是()。#include<ctype.h>#include<string.h>voidfun(chars[]){inti,j;for(i=0,j=0;s[i];i++)s[j]=’\0’;}main(){charss[80]="goodmorning";fun(ss);printf("%s",ss);}標準答案:goodmorning知識點解析:子函數(shù)fun(chars[])的作用是將字符數(shù)組s中除去字母以外的所有其他字符都去掉,然后將字母仍按原來的順序存在數(shù)組s中。在主函數(shù)中調用fun(ss),是將“goodmorning”中所有的非字母去掉,在這里就是去掉空格,然后輸出ss。40、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、()和處理過程。標準答案:數(shù)據(jù)存儲知識點解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項,是數(shù)據(jù)的最小單位;數(shù)據(jù)結構,是若干數(shù)據(jù)項有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結構,表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲,處理過程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機文件。41、()的目的是分析數(shù)據(jù)間內在語義關聯(lián),在此基礎上建立一個數(shù)據(jù)的抽象模型。標準答案:數(shù)據(jù)庫概念設計知識點解析:數(shù)據(jù)庫概念設計的目的是分析數(shù)據(jù)間內在語義關聯(lián),在此基礎上建立一個數(shù)據(jù)的抽象模型。42、下列軟件系統(tǒng)結構圖的寬度為()。標準答案:3知識點解析:軟件系統(tǒng)結構圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。43、在兩種基本測試方法中,()測試的原則之。一是保證所測模塊中每一個獨立路徑至少要執(zhí)行一次。標準答案:白盒知識點解析:白盒測試的基本原則是:保證所測模塊中每一獨立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在邊界條件下至少執(zhí)行一次;驗證所有內部數(shù)據(jù)結構的有效性。44、數(shù)據(jù)結構分為線性結構和非線性結構,帶鏈的隊列屬于()。標準答案:線性結構知識點解析:一個數(shù)據(jù)結構是線性結構還是非線性結構。判斷依據(jù)是數(shù)據(jù)結構前后件關系的復雜程度,而與其所使用的存儲結構是沒有關系的。在一個非空的隊列中,每一個元素只有一個前件和后件,因此它屬于線性結構。國家二級(C語言)筆試模擬試卷第2套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、順序查找一個具有n個元素的線性表,二分查找一個具有n個元素的有序表,其時間復雜性為______。A、O(n)B、O(log2n)C、O(n2)D、O(nlog2n)標準答案:2知識點解析:暫無解析2、已知—個有序表為(12,18,24,35,47,50,62,83,90,115,134),當二分查找值為47的元素時,經(jīng)過______次比較后查找成功。A、1B、2C、3D、4標準答案:8知識點解析:暫無解析3、在軟件質量因素中,軟件在異常情況下仍能運行的能力稱為軟件的______。A、可用性B、可靠性C、安全性D、健壯性標準答案:8知識點解析:暫無解析4、軟件的可靠性主要表現(xiàn)在______。A、能夠安裝多次B、能夠在不同類型的計算機系統(tǒng)上安裝和使用C、軟件的正確性和健壯性D、前面都正確標準答案:4知識點解析:暫無解析5、程序的3種基本控制結構的共同點是______。A、不能嵌套使用B、只能用宋寫簡單的程序C、已經(jīng)用硬件實現(xiàn)D、只有一個入口和一個出口標準答案:8知識點解析:暫無解析6、—個數(shù)據(jù)庫系統(tǒng)一般由三級模式組成,其中的模式(也稱邏輯模式或概念模式)指的是______。A、用戶使用的數(shù)據(jù)視圖B、所有用戶的公共數(shù)據(jù)視圖C、對數(shù)據(jù)物理結構和存儲結構的描述D、一種局部的邏輯數(shù)據(jù)視圖標準答案:2知識點解析:暫無解析7、下列數(shù)組說明中,正確的是______。A、intarray[][4];B、intarray[][];C、intmarray[][][5];D、intarray[3][];標準答案:1知識點解析:暫無解析8、若x和y都是血型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));,則輸出結果是______。A、200B、100C、100200D、輸出格式符不夠,輸出不確定的值標準答案:1知識點解析:暫無解析9、下面結構體的定義語句中,不正確的是______。A、structdate{intmonth;intday;intyear;}Structdatedatel;B、stmctdate{intmonth;intday;intyear;}datel;C、struct{intmonth;intday;intyear;}date1;D、#defineDATEstmctdateDATE{intmonth;intday;intyear;}datel;標準答案:1知識點解析:暫無解析10、下列敘述中,正確的一條是______。A、C語言的整型變量可以分為int、short、long、unsignedint、unsignedshort、unsignedlong等幾種類型,因此整型常量也可以分為這幾種類型B、C語言的字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值C、若對字符型變量的定義為:charc;可使用語句c="a",對變量c賦值D、已知x為float型,執(zhí)行語句(int)x后,x為int型標準答案:2知識點解析:暫無解析二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、能將高級語言程序轉換成目標語言程序的是______。A、調試程序B、解釋程序C、編譯程序D、編輯程序標準答案:4知識點解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由0和1組成的二進制指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。12、______是構成C語言程序的基本單位。A、函數(shù)B、過程C、子程序D、子例程標準答案:1知識點解析:C程序是由函數(shù)構成的。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù),因此,函數(shù)是C程序的基本單位。13、可以在C語言中用做用戶標識符的是______。A、voiddefineWORDB、asb3_123IfC、for-abccasD、2cDoSIG標準答案:2知識點解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關鍵字不能作標識符。選項A中void,C中for都為關鍵字,D中2c以字母開頭。14、下面語句的輸出結果是______。printf("/od\n",strlen("\t\"\065\xff\n"))A、14B、8C、5D、輸出項不合法,無正常輸出標準答案:4知識點解析:在C語言中,以“\”開頭的字符均為轉義字符,其中“\”后可跟1~3位八進制數(shù)或在“\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。15、下列程序的輸出結果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);A、2500B、2050C、4D、0標準答案:1知識點解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內,如果i是偶數(shù),則執(zhí)行continue,跳過這依次循環(huán),執(zhí)行下一次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。16、下列程序的輸出結果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}A、0B、3C、OKD、沒有任何輸出標準答案:8知識點解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強行退出switch語句,所以,本題沒有任何輸出。17、下列程序執(zhí)行后的輸出結果是______。main(){intm[][3]={1,4.7,6,5,8,3,6,9};inti,k=2for(i=0,i<3;i++){printf("%d",m[k][i];}}A、456B、258C、369D、789標準答案:4知識點解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。18、已知字母A的ASCII參政值是65,字母a的ASCII碼值是97,以下程序列______。main(){chara=’A’;intb=20;printf("%d,%o",(a=a+a,a+b,b),a+’a’+’A’,b);}A、表達式非法,輸出零或不確定值B、因輸出項過多,無輸出或輸出不確定值C、輸出結果為20,141D、輸出結果為20,141,20標準答案:4知識點解析:本題中首先輸出逗號表達式“a=a+a,a+b,b”的值,即20。然后以八進制的形式輸出a+’a’-’A’的值為97對應的八進制數(shù)141,由于最后一個表達式b沒有對應輸出格式的輸出項表列就不會輸出。19、下列程序執(zhí)行后輸出的結果是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta3;fun(a);d+=a++;printf("%d\n",d);}A、8,12B、9,13C、8,4D、9,5標準答案:4知識點解析:本題執(zhí)行過程如下:首先調用fun函敗,使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8;返回主函數(shù)執(zhí)行“d+=a++”,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。20、已知下面的程序段,正確的判斷是______#defineA3#defineB(A)((A+1)*a)X=3*(A+B(7));X=3*(A+B(7);A、程序錯誤,不允許嵌套定義B、X=93C、X=81D、程序錯誤,宏定義不允許有參數(shù)標準答案:4知識點解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、下列程序的運行結果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}A、2B、3C、5D、4標準答案:4知識點解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。22、在下列給出的表達式中,與while(E)中的(E)不等價的表達式是()。A、(!E==0)B、(E>0‖E<0)C、(E==0)D、(E!=0)標準答案:2知識點解析:在while(E)中,表達式E可以是C語言中任意合法的條件表達式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項B)中表達式E>0‖E<0是一個邏輯表達式。23、有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結果是()。A、0,7B、7,7C、0,6D、1,6標準答案:1知識點解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達式中加1,在循環(huán)體內減1,所以總的y值不變,且控制條件++y永遠非零。當x加到7時不滿足循環(huán)條件,結束循環(huán)。24、有下列程序:main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結果是()。A、輸出字符a的ASCII碼B、輸出字符c的ASCII碼C、輸出字符cD、程序出錯標準答案:8知識點解析:因為字符數(shù)組s[]中的數(shù)組名s表示的是一個地址常量。所以語句“s+=2;”不能將指針在當前位置的基礎上再向后移動兩位.因而程序編譯時出錯。25、下列選項中非法的字符常量是()。A、’\t’B、’\039’C、’,’D、’\n’標準答案:2知識點解析:選項A)中,’\t’表示的是橫向跳若干格;選項B)中,’039’錯誤,’\039’是八進制形式表示的字符,但其中出現(xiàn)了’9’,所以錯誤;選項C)中,’,’是字符逗號;選項D)中,’\n’表示的是回車換行。26、下列敘述中正確的是()。A、break語句只能用于swish語句B、在switch語句中必須使用defaultC、break語句必須與switch語句中的case配對使用D、在switch語句中,不一定使用break語句標準答案:8知識點解析:break為C語言關鍵字,又稱間斷語句。break語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default是關鍵字,起標號的作用,代表所有case標號之外的那些標號。default標號可以出現(xiàn)在語句體中任何標號位置上。在switch語句體中也可以沒有default標號.27、下列敘述中,錯誤的是()。A、在同一C程序文件中,不同函數(shù)中可以使用名字相同的變量B、在main()函數(shù)體內定義的變量是全局變量C、形參是局部變量,函數(shù)調用完成即失去意義D、若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內不起作用標準答案:2知識點解析:本題考查函數(shù)調用時變量的作用域。形參是局部變量,函數(shù)調用完就失去意義了,所以在同一個C程序文件中,不同的函數(shù)體中可以使用名字相同的局部變量。注意:在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為:從定義變量的位置開始到本源文件結束.28、C語言規(guī)定,調用一個函數(shù)時,實參變量和形參變量之間的數(shù)據(jù)傳遞是()。A、地址傳遞B、值傳遞C、由實參傳給形參,并由形參傳回給實參D、由用戶指定傳遞方式標準答案:2知識點解析:本題考查函數(shù)調用時的參數(shù)傳遞。在函數(shù)調用時,實參和其所對應的形參分別占用不同的存儲單元,彼此之間只是實參將值傳遞給形參.29、設q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。A、k=*q1+*q2;B、q1=k;C、q1=q2;D、k=*q1*(*q2);標準答案:2知識點解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。30、若有說明:int*p1,*p2,n=8,m;下列均是正確賦值語句的選項是()。A、p1=&n;p2=&p1;B、p1=n;C、p1=&n;*p2=p1;D、p1=&n;p2=p1;標準答案:8知識點解析:本題考查指針變量的賦值。選項A)中,p1、p2本身都是地址變量,不能再將p1取地址賦給p2;選項B)中,不能將整型數(shù)據(jù)直接賦值給指針型數(shù)據(jù);選項C)中,*p2代表了一個整型變量,而*p2=p1這個語句試圖把一個地址值放入一個整型變量中是錯誤的:選項D)中指針間的賦值是正確的。31、若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main(){inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A、i=1;i<4;++iB、i=1;i<3;++iC、i=4;i>2;i--D、i=2;i<4;++i標準答案:8知識點解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。32、若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。A、2B、3C、4D、無確定值標準答案:2知識點解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。孩诋敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。33、若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。A、i*m+j-1B、i*m+jC、j*m+1D、i*m+i+1標準答案:2知識點解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。34、函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()。A、將字符串str1復制到字符串str2中后再連接到字符串str3之后B、將字符串str1連接到字符串str2之后再復制到字符串str3之后C、將字符串str2復制到字符串sir1中后再將字符串str3連接到字符串str1之后D、將字符串str2連接到字符串str1之后再將字符串str1復制到字符串str3中標準答案:4知識點解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制給s1字符串,要保證s1能容納下連接或復制后的字符串。35、下列程序的輸出結果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}A、4B、7C、6D、5標準答案:8知識點解析:本題考查靜態(tài)變量的使用方法和for循環(huán)。在函數(shù)調用時,static變量在函數(shù)調用結束后所作的所有變化均不保持,所以當i=1時,第2次進入f函數(shù)時c=5,所以最終main函數(shù)中c的值為5。36、#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。A、#definef(x)5*x*x+5*x+5B、#definef5*x*x+5*x+5C、#definef(A)(5*a*a+5*a+5)D、#define(5*x*x+5*x+5)f(x)標準答案:4知識點解析:帶參數(shù)宏的格式為:#define標識符(形參表)形參表達式。其功能是:在預處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。37、定義結構體數(shù)組:structstu{intnum;charname[20];}x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結果為()。A、2A3N4A5UB、1I2A3H4IC、1A2N3A4UD、2H3A4H5I標準答案:1知識點解析:本題主要考查結構體數(shù)組的使用。x[i].num為結構體x[i]中的num成員,x[i].name[2]是結構體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N:第3次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。38、若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結果是()。structst{chara[15];intb;doublec;};printf("%d",sizcof(structst));A、15B、8C、25D、2標準答案:4知識點解析:本題主要考查結構體的內存使用:對結構體而言,結構中不同的成員分別使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空間大小的總和,結構中每個成員相互獨立。題中intb占2個字節(jié),chara[15]占15個字節(jié),doublec占8個字節(jié),所以共25個字節(jié)。39、設intx=7,則~x的值是()。A、-8B、-7C、-1D、1標準答案:1知識點解析:本題主要考查按位求反運算和C語言中正負數(shù)的表示,“0”代表正數(shù),“1”代表負數(shù);x=7的二進制為00111,第一個0代表正數(shù),~x為11000,第一個1代表負數(shù),值為8。40、函數(shù)ftell(fp)的作用是()。A、得到fp所指向文件的當前讀寫位置B、初始化流式文件的位置指針C、移動流式文件的位置指針D、以上答案均正確標準答案:1知識點解析:位置指針當前值函數(shù)ftell()的基本調用格式為:ftell(fp)。ftell()函數(shù)的參數(shù)說明:“fp”是指向文件的文件型指引。ftell函數(shù)的功能;得到fp所指向文件的當前讀寫位置,即位置指針的當前值,如果函數(shù)的返回值為-1L,表示出錯。四、公共基礎填空題(本題共5題,每題1.0分,共5分。)41、數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。標準答案:邏輯知識點解析:數(shù)據(jù)的邏輯結構主要是反映數(shù)據(jù)之間的邏輯關系,而存儲結構是用來反映數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式。循環(huán)隊列主要是強調數(shù)據(jù)之間的關系,因此屬于邏輯結構。42、隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。標準答案:隊尾知識點解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。43、在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。標準答案:31知識點解析:設隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。44、一棵二叉樹第6層(根結點為第一層)的結點最多為______個。標準答案:32知識點解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結點最多數(shù)”和“某一層的結點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結點。45、度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。標準答案:45知識點解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。五、填空題(本題共11題,每題1.0分,共11分。)46、以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為’e’,則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁?。char*fun(char*str,charc){intn=0;char*p=str;if(p!=NULL)while(P[n]!=c&&p[n]!=’\0’)n++;if(p[n]==’\0’)retumNULL;return(【】);}標準答案:str+n或p+n知識點解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結果用str+n或p+n表示。47、以下程序的輸出結果是【】。#include<stdio.h>main()inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];pfintf("%d\n",s);標準答案:30知識點解析:當i=0時,s=0+a[0][0]+a[0][2]=10;i=1時,s=10+a[1][1]+a[1][1]=18;i=2時,s=18+a[2][2]+a[2][0]=30。48、下面程序的運行結果是【】。#include<stdio.h>fun(intt[],intn){inti,m;if(n==1)returnt[0];elseif(n>=2)|m:fun(t,n-1);returnm;}}main(){inta[]={11,4,6,3,8,2,3,5,9,2};printf("%d\n",fun(a,10));標準答案:11知識點解析:main函數(shù)調用fun函數(shù)時,將10賦給n,形參數(shù)組t與實參數(shù)組a共用一段內存空間。執(zhí)行if-else語句時,n=10,所以執(zhí)行else子句。由于n>=2成立,執(zhí)行m=fun(t[0],9),遞歸調用fun函數(shù),m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),當n=1時滿足if(n=1)的條件,執(zhí)行return語句,返回數(shù)組首地址指向的值t[0],所以答案為11。49、有兩個C程序文件T18.c和myfun.c同在VC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:#include<stdio.h>#include"myfun.c"main(){fun();prinff("\n");}myfun.c文件如下:voidfun(){chars[80],c;intn=0;while((c=getchar())!:’\n’)s[n++]=c;n--;while(n>=0)prinff("%c",s[n--]);}當編譯連接通過后,運行程序T18時,輸入"Thank!”,則輸出結果是【】。標準答案:!knahT知識點解析:程序中myfun.c被包含在T18.c中進行編譯。fun函數(shù)中用getehar函數(shù)輸入字符并賦給數(shù)組s,每輸入一個字符,數(shù)組下標n加1,直到遇到回車鍵時輸入結束。while(n>=0)循環(huán)反序輸出字符中。所以myfun.c文件用于實現(xiàn)字符串反序的功能。50、若變量a,b已定義為int類型并分別賦值21和55,要求用printf函數(shù)以a=21,b=55的形式輸出,請寫出完整的輸出語句行:【】。標準答案:printf("a=%d,b=%d",a,b);知識點解析:根據(jù)printf函數(shù)的格式可知輸出語句應該為:printf("a=%d,b=%d",a,b);51、當運行以下程序時,輸入abcd,程序的輸出結果是【】。insert(charstr[]){inti;i=stolen(str);while(i>0){str[2*i]=str[i];str[2*i-1]=’*’;i--;}printf("%s\n",sir);}main(){charstr[40];seanf("%s",str);insert(str);}標準答案:a*b*c*d*知識點解析:程序中的變量i用于存放字符串str的長度,執(zhí)行while語句,通過分析可知,字符串第2*i項的值可由第i項的值得到;第2*i-1項直接賦值為。號,i減1,如此反復直到不滿足i>0的條件時,輸出運行后的字符串。52、以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?include<stdio.h>main(){floata,b,c;scanf("%f%f%f",&a,&b,&c);if(【】)printf("YES\n");/*a.b.c能構成三角形*/elseprinff("NO\n");/*a.b.c不能構成三解形*/}標準答案:(a+b>c)&&(a+c>b)&&(b+c>a)知識點解析:根據(jù)構成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。53、以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結果如下:ABCDEFCHIJKLMNO請?zhí)羁胀瓿稍摮绦颉?include<stdio.h>main()inti.j,n;charch=’A’;scanf("%d",&n);if(n<11)for(i=1;i<=n;i++)for(j=1;j<=n-i+1;j++){printf("%2c",ch);【】;}【】;}elseprintf("nistoolarge!\n");prinff("\n");}標準答案:ch++或ch=ch+1或++ch,printf("\n")或prinff("\015")知識點解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內循環(huán)的作用是控制每行的列數(shù),在內循環(huán)中首先輸出當前字符(從’A’開始),[6]中應填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€字符。每輸出一行就需換一次行,所以[7]處應填pfintf("\n")。54、以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),如果是素數(shù),函數(shù)返回1,否則返回0。intisprime(inta)inti;for(i=2;i<=a/2;i++)if(a%i==0)【】;【】;}標準答案:return0或return(0)return1或return(1)知識點解析:素數(shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語句,若形參a對i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。55、以下程序的功能是:輸出100以內(不含100)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?include<stdio.h>main(){inti,jfor(i=0;【】;i++){j=i*10+6;if(【】)continue:Printf("%d”",j);}}標準答案:i<10或i<9j%3!=0或j%3知識點解析:程序中的j用于存放符合條件的整數(shù),j=i,10+6;求得個位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10,所以[15]處填i<10。然后通過if語句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以[16]處填j%3!=0。56、以下程序中函數(shù)fun()的功能是構成一個如圖所示的帶頭結點的單向鏈表,在結點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單向鏈表中所有結點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。#include<atdio.h>typedefstructnode/*鏈表結點結構*/{charsub[3];structnode*next;}NodeNode~un(chars)/*建立鏈表*/{......}voiddisp(Node*h){Node*Psp=h->next;while(【】){printf("%s\n",p->suh);p=【】;}}main(){Node*hd;hd=fun();disp(hd);prinff("\n");標準答案:p!=NULL或P或p!=0或p!=’0’p->next或(*p).next知識點解析:程序中定義了一個結構體類型名Node,其中定義了一個指向結點類型的指針next。接下來用Node定義了頭結點指針變量h和指向第一個結點的指針變量p,在滿足p未指向最后一個結點的空指針時(即為NULL),輸出p所指向結點的字符串,所以第一處應填p!=NULL,然后將p指向下一個非空結點,所以第二處應填P->next或與其等效的形式,反復執(zhí)行直到所有的結點都輸出。國家二級(C語言)筆試模擬試卷第3套一、公共基礎選擇題(本題共10題,每題1.0分,共10分。)1、待排序的關鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關鍵碼值遞增的順序排序,采取以第一個關鍵碼為基準元素的快速排序法,第一趟排序后關鍵碼33被放到第()個位置。A、3B、5C、7D、9標準答案:B知識點解析:快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。2、有三個關系R、S和T如下:由關系R和S通過運算得到關系T,則所使用的運算為A、并B、自然連接C、笛卡爾積D、交標準答案:A知識點解析:暫無解析3、下列不屬于軟件工程的3個要素的是A、工具B、過程C、方法D、環(huán)境標準答案:D知識點解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。4、表達式’5’-’1’的值是()。A、整數(shù)4B、字符4C、表達式不合法D、字符6標準答案:A知識點解析:在C語言中,字符都是變?yōu)槠鋵腁SCII碼值來參加算術運算的,但字符間的相對位置關系還是不變的,字符5和字符1的ASCII碼值相差仍是4。5、下列描述中正確的是()。A、程序就是軟件B、軟件開發(fā)不受計算機系統(tǒng)的限制C、軟件既是邏輯實體,又是物理實體D、軟件是程序、數(shù)據(jù)和相關文檔的集合標準答案:8知識點解析:軟件是運行在計算機硬件之上的邏輯實體,包括程序,數(shù)據(jù)和相關的文檔。軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制。6、信息隱蔽的概念與下述______概念直接相關。A、軟件結構定義B、模塊獨立性C、模塊類型劃分D、模擬耦合度標準答案:2知識點解析:信息隱蔽是指在一個模塊內包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件模塊獨立性的度量標準是耦合性和內聚性。一個模塊的內聚性越強,則該模塊的模塊獨立性越強。而內聚性是信息隱蔽和局部化概念的自然擴長。7、下列關于棧的敘述正確的是()。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進先出的線性表D、棧是先進后出的線性表標準答案:8知識點解析:棧是一種特殊的線性表,其插入與刪除運算都只在線性表的一端進行。在這種線性表的結構中,一端封閉,不允許插入與刪除元素:另一端開口,允許插入與刪除元素。在棧中不僅能插入數(shù)據(jù),也能刪除數(shù)據(jù),選項A與選項B都錯。棧是后進先出的線性表,而不是先進先出的線性表,選項C的說法錯誤,選項D正確。8、應用數(shù)據(jù)庫的主要目的是為了()A、解決數(shù)據(jù)的保密問題B、解決數(shù)據(jù)的共享問題C、解決數(shù)據(jù)量大的問題D、解決數(shù)據(jù)的完整性問題標準答案:8知識點解析:暫無解析9、系統(tǒng)軟件中最重要的是()A、操作系統(tǒng)B、語言處理程序C、工具軟件D、數(shù)據(jù)庫管理系統(tǒng)標準答案:1知識點解析:暫無解析10、棧和隊列的共同點是()。A、都是先進先出B、都是先進后出C、只允許在端點處插入和刪除元素D、沒有共同特點標準答案:4知識點解析:棧和隊列都是操作受限制的線性表,只允許在端點插入和刪除。不同點是:棧只允許在表的一端進行插入和刪除操作,而隊列允許在表的—端進行插入操作,而在另一端進行刪除操作。二、選擇題(1分)(本題共11題,每題1.0分,共11分。)11、有下列程序:main(){intt,a=1,b=5,c=-2;while(a>b>C){t=a;a=b;b=t;c++;}printf("%d,%d,%d",a,b,c);}程序的輸出結果是()。A、1,5,0B、1,5,-2C、5,1,-1D、5,1,-2標準答案:A知識點解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。12、判斷char型變量cl是否為小寫字母的正確表達式為()。A、‘a’<=cl<=‘z’B、(cl>=a)&&(cl<=z)C、(‘a’>=cl∣∣(‘z’<=cl)D、(cl>=‘a’)&&(cl<=‘z’)標準答案:D知識點解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。首先判斷c1是否為小寫字母的主要條件c1>=‘a’和c1<=‘z’是邏輯與關系,其次選項A的這種形式C語言中沒有,所以選項D正確。13、設變量x和Y均已正確定義并賦值,以下if語句中,在編譯時將產生錯誤信息的是()。A、if(x++);B、if(x>y&&y!=0);C、if(x>y)x--elsey++;D、if(y<0){;}elsex++;標準答案:C知識點解析:選項C中,if(x>y)后面的“x--”是一個表達式而不是一個語句,所以在編譯時會產生錯誤信息。14、當變量c的值不為2、4、6時,值也為“真”的表達式是A、(c==2)||(c==4)||(c==6)B、(c>=2&&c<=6)||(c!=3)||(c!=5)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)&&(c%2!=1)標準答案:B知識點解析:滿足表達13式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,表達式B)都為“真”。15、下列關于線性鏈表的描述中,正確的是()。Ⅰ、只含有一個指針域來存放下一個元素地址Ⅱ、指針域中的指針用于指向該結點的前一個或后一個結點(即前件或后件)Ⅲ、結點由兩部分組成:數(shù)據(jù)域和指針域。A、僅Ⅰ、ⅡB、僅Ⅰ、ⅢC、僅Ⅱ、ⅢD、全部標準答案:D知識點解析:在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用于存放數(shù)據(jù)元素值,稱為數(shù)據(jù)域;另一部分用于存放指針,稱為指針域。其中指針用于指向該結點的前一個或后一個結點(即前件或后件)。16、若以下選項中的變量已正確定義,則正確的賦值語句是()。A、x1=26.8%3;B、1+2=x2;C、x3=0x12;D、x4=1+2=3;標準答案:4知識點解析:正確的賦值語句的左值不能為常量或表達式。選項A)中右值的表達式錯;選項B)的左值為表達式,錯誤;選項D)的表達式x4=1+2=3,是先執(zhí)行賦值表達式1+2=3,這本身就是錯誤的,1+2不是變量,不能賦值。17、以下程序的輸出結果是______。main(){inta=3;printf("%\n",(a+=a-=a*a));}A、{B、1C、2D、-12標準答案:8知識點解析:賦值運算符的結合方向是自右至左,所以表達式a+a-=a*a先運算最右邊的a*a得9,再運算a=a-9,即a=3-9,所以此時a的值由3變成了-6,最后運算a=a+(-6),即a-(-6)+(-6)=-12。18、有以下程序:main(){inta=666,b=888;printf("%d\n",a,b);}程序運行后的輸出結果是()。A、錯誤信息B、666C、888D、666,888標準答案:2知識點解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個%d,而輸出成員列表卻有兩個成員a和b,在這里將只輸出第一個成員a值為666,所以,4個選項中選項B符合題意。19、設int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。A、0~65535B、-3276~32767C、1~65536D、0~32767標準答案:1知識點解析:本題int型占2個字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(216(上標)-1),即0~65535。20、以下不合法的字符常量是______。A、’\018’B、’\’’’C、’\\’D、’\xcc’標準答案:A知識點解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。如’a’,’A’,’?’,’$’等都是字符常量。注意:’a’和’A’是不同的字符常量。除了以上形式的字符常量外,C還允許用—個"\"開頭的字符序列。如’\ddd’表示1到3位八進制數(shù)所代表的字符,而八進制是由0到7這幾個數(shù)字組成的,所以選項A是不合法的字符常量。21、以下關于C語言的敘述中正確的是A、C語言中的注釋不可以夾在變量名或關鍵字的中間B、C語言中的變量可以在使用之前的任何位置進行定義C、在C語言算術表達式的書寫中,運算符兩側的運算數(shù)類型必須一致D、C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示標準答案:B知識點解析:暫無解析三、選擇題(2分)(本題共19題,每題1.0分,共19分。)22、若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\h",i);其輸出結果是()。A、0,0B、0,1C、1,1D、程序進入無限循環(huán)標準答案:B知識點解析:do

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論