版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言專升本測試卷(一)(總分100分,考試時長90分鐘)一、單項選擇題(每小題2分,共40分)1、若程序中有宏定義行:#defineN100,則以下敘述中正確的是.A、宏定義行中定義了標識符N的值為整數(shù)100B、在編譯程序?qū)源程序進行預處理時用100替換標識符NC、對C源程序進行編譯時用100替換標識符ND、在運行時用100替換標識符N2、有如下程序段int*p,a=l,b=2;p=&b;a=*p+a;執(zhí)行該程序段后,a的值為A、2B、3C、4D、編譯出錯3、下列賦值語句錯誤的是。A、Ai==0;i=i+l:i+=l:4、有以下程序main()(inti;for(i=0;i<3;i++)switch(i)(printfi);printfi);printfi);執(zhí)行后輸出的結(jié)果是—011122B、012C、012020D、1205、可以作為自定義標識符的是oA、2xbreakC、m-nD、m_n6、若各選項中所有變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是oA、main() { x=fun(2,10); } floatfun(intA,intb){……}TOC\o"1-5"\h\zB、floatfun(intA,intb){ }main(){ x=fun(i,j); }C、floatfun(intint);main(){ x=fun(2,10); } floatfun(intA,intb){ }D、main(){floatfun(inti,intj); x=fun(i, j); }floatfun(intA,intb){……}7、能正確表示邏輯關系〃a>=10或aV=0〃的c語言表達式是。A、a>=10ora=10B、a>=0|a<=10C、a>=10&&a<=0D、a>=10||a<=08、已知3個字符為:a、z和8,按它們的ascii碼值升序排序,結(jié)果是。A、8,a,ZB、a,8,ZC、a,Z,8D、8,Z,a9、程序必須在有限的步驟、有限的時間內(nèi)執(zhí)行完畢,指的是算法的()特點A、確定性B、有窮性C、可行性D、輸入10、下面關于編譯預處理命令,正確的是oA、#definecharCHARB、#DefineE0.0000034##defineFALSE0#defineDIM2611、設inta[10],*p=a;數(shù)組元素a[4]的正確引用是。*(p+4)B、p+4C、*p+4D、a+412、關于strcmpO函數(shù),下列描述中錯誤的是。A、strcmpO函數(shù)用于比較兩個字符串的內(nèi)容是否相等B、如果兩個字符串的內(nèi)容相同,strcmpO函數(shù)返回0C、strcmpO函數(shù)是可變參數(shù)的函數(shù)D、strcmpO函數(shù)只能接收字符指針作為參數(shù),并不接收單個字符13、對于存儲同樣一組數(shù)據(jù)元素而言,oA、順序結(jié)構(gòu)比鏈接結(jié)構(gòu)多占存儲空間B、順序結(jié)構(gòu)與鏈接結(jié)構(gòu)相比,更有利于對元素的插入、刪除運算C、順序結(jié)構(gòu)比鏈接結(jié)構(gòu)易于擴充空間D、順序結(jié)構(gòu)占用整塊空間而鏈接結(jié)構(gòu)不要求整塊空間14、下列說法正確的是oA、main函數(shù)必須放在C程序的最后面B、main函數(shù)必須放在C程序的最前面C、main函數(shù)可以放在C程序的中間部分,但在執(zhí)行C程序時是從程序開頭執(zhí)行的D、main函數(shù)可以放在C程序的中間部分,但在執(zhí)行C程序時是從main函數(shù)開始的15、下列程序的輸出結(jié)果是.char *pl="abcd”, *p2="abcd", str[50]="xyz";strcpy(str+2,strcat(pl+2,p2+l));printfstr);A^xyabcABabcABzABabczxycdBCD16、下面程序段的輸出結(jié)果是.x=3;doy二x一;if(1y){printf(〃*");continue;}printf("#");)while(x=2);A、##B,##*C、死循環(huán)D、輸出錯誤信息17、設有以下說明語句:typedefstructstu(inta;floatb;}stutype;則下面敘述中錯誤的是。A、struct是結(jié)構(gòu)類型的關鍵字B、structstu是用戶定義的結(jié)構(gòu)類型C、a和b都是結(jié)構(gòu)成員名D、stutype是用戶定義的結(jié)構(gòu)體變量名18、下面程序的輸出是#include<stdio.h>voidmain(){intk=l1;printf("k=%d,k=%o,k=M\n”,k,k,k);)A,k=ll,k=12,k=llB、k=ll,k=13,k=13C、k=ll,k=013,k=0xbD、k=ll,k=13,k=b19、下列關于字符串的說法中錯誤的是oA、在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標志B、''0'作為標志占用存儲空間,計入串的實際長度C、在表示字符串常量的時候不需要人為在其末尾加入''0'D、在C語言中,字符串常量隱含處理成以'\0'結(jié)尾20、有以下程序#include<studio.h>Sinclude<string.h>structa(inta;charb[10];doublec;);voidf(structat);main()(structaa={1001,Hzhangda”,1098.0};f(a);pringt("%d,%s,%6.lf\nn,a.a,a.b,a.c);)voidf(structat)(t.a=1002;strcpy(t.b,"changrong");t.c=1202.0;)程序運行后的輸出結(jié)果是OA^1001,ZhangDa,1098.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1002,ZhangDa,1202.0二、判斷題(每小題2分,共20分)()1、若有定義intx=1,y=2;則表達式x==y是將y的值賦值給x。()()2、函數(shù)若無返回值,則它一定無形參。()3、函數(shù)的實參傳遞到形參有兩種方式:值傳遞和地址傳遞。()4、在循環(huán)中使用break語句或者continue語句,其作用是相同的。()5、字符串常量是由一對雙引號括起來的字符序列。()6、當多個函數(shù)發(fā)生多層嵌套調(diào)用時,最后被調(diào)用的函數(shù)卻最先結(jié)束。()7、用字符串常量給數(shù)組賦初值時,如果提供的字符個數(shù)大于數(shù)組長度,則系統(tǒng)報錯。()8、c語言中sizeof是函數(shù),而不是運算符。()9、符號"a"和'a'的區(qū)別是"a"是字符串常量,占2個字節(jié);而'a'是字符常量,占1個字節(jié)。()()10、要使用標準輸入、輸出函數(shù),正常情況下應該在文件的開頭加上以下內(nèi)容:#include<graphics.h>或#include'graphics.h"。三、編程題(每小題分,共40分)1、編寫程序:從鍵盤上輸入a與n的值,計算sum=a+aa+aaa+aaaa+ (共n項)的和。例a=2,n=4,則sum=2+22+222+2222。(本題10分)2、編寫程序:計算sum=l-l/3+l/5T/7+…+1/19(本題14分)3、統(tǒng)計結(jié)構(gòu)體數(shù)組中性別(sex)為'M'的變量的個數(shù)。要求:①數(shù)組元素依次賦初值為:{1,"Andy",'M'}、{2,"Mike",'F'}、{3,"Rose",'M'}。②結(jié)構(gòu)體定義如下:structStudent{intnum;charname[30];charsex;};(本題16分)參考答案一、單項選擇題1、B2、B3、B4、A【解析】當執(zhí)行switch語句時,首先計算緊跟其后一對括號中的值,然后在語句體內(nèi)尋找與該值吻合的case標號。若相等,則執(zhí)行該標號后開始的各語句,包括在其后的所有case和default后的語句,直到switch語句體結(jié)束。5、D【解析】主要考查的知識點為自定義標識符。[要點透析]A項以數(shù)字開頭,B項為保留字,C項含有非字母、數(shù)字、下劃線的字符,只有D項是正確的。6、A7、D【解析】在C語言中,邏輯運算符有與&&、或||、非!,關系運算符有大于〉、小于V、大于等于>=、小于等于<=、等于==,根據(jù)邏輯關系很容易看出,符合條件的選項為D。8、D【解析】在ASCII碼袁中,根據(jù)碼值由小到大的排列順序是:控制符、數(shù)字符、大寫英文字母、小寫英文字母。9、B10、D【解析】無參宏定義的一般格式中define標識符語言符號字符串,其中:“define”為宏定義命令;”標識符為所定義的宏名,通常用大寫字母表示,以便于與變量區(qū)別;“語言符號字符串”可以是常數(shù)、表達式、格式串(格式串是用雙引號括起來的字符串)等,選項ABC錯誤,選項D正確;本題答案為Do11、A12、C【解析】strcmpO函數(shù)的參數(shù)是兩個字符串13、D【解析】順序結(jié)構(gòu)的存儲空間就是存放數(shù)據(jù)信息的空間,不需要附加空間,而鏈接結(jié)構(gòu)節(jié)點(即元素)的存儲空間包括兩部分:一部分存放數(shù)據(jù)信息,一部分存放指針信息,因此A選項是錯誤的:在順序結(jié)構(gòu)中,要插入、刪除元素需移動其他元素;而在鏈接結(jié)構(gòu)中,插入、刪除元素不需要移動其他元素。因此,選擇項B是錯誤的;順序結(jié)構(gòu)中,存儲空間必須事先定義,在運算過程中難以擴充:鏈接結(jié)構(gòu)中,元素之間通過指針鏈接,空間易于擴充。因此選擇項C也是錯誤的;順序結(jié)構(gòu)中,元素之間的關系通過存儲單元的鄰接關系來表示,其存儲空間必須占用整塊空間:鏈接結(jié)構(gòu)中,節(jié)點之間的關系通過指針來表示,不要求整塊空間。因此,D是正確答案。14、D【解析】每個C程序有且只有一個主函數(shù)(main),且程序必須從main。函數(shù)開始執(zhí)行。別外main()函數(shù)可以放在程序中的任意位置。15、D16、C17、C18、D19、B【解析】'\0'作為標志占用存儲空間,但是不計入串的實際長度。當給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。20、A二、判斷題1、錯誤2、錯誤3、正確4、錯誤5、正確6、正確1、正確8、錯誤9、正確10、錯誤三、編程題1、#include"stdio.h"main()(inta,ncount=l,sn=0,tn=0;scanf("%d%d//,&a,&n);while(count<=n)tn=tn+a;sn=sn+tn;a=a*10;++count;)printf("%d〃,sn);)2、#include<stdio.h>main()(inti;floatsum=0,k=-l;for(i=l;i<=19;i=i+2){sum=sum+l.0/i*k;k=-k;)printfsum);getchO;)3、#include<stdio.h>structStudent{intnum;charname[30];charsex;);intFun(structStudent*s,intn)(intnum=0;inti;for(i=0;i<n;i++)(if(s[i].sex=='M')(num++;intmain()(structStudents[3]={1,〃Andy〃,'M',2, 'F',3,〃Rose〃,'M'};printf(*%d,z,Fun(s,3));return0;C語言專升本測試卷(二)(總分100分,考試時長90分鐘)一、單項選擇題(每小題2分,共40分)1、下面程序段的功能是ttinclude<stdio.h>main()(charsi;sl=putc(getc(stdin),stdout);)A、從鍵盤輸入一個字符給字符變量siB、從鍵盤輸入一個字符,然后再輸出到屏幕C、從鍵盤輸入一個字符,然后在輸出到屏幕的同時賦給變量siD、在屏幕上輸出stdout的值2、在c中,合法的字符常量是o'084''\x43''ah'D、“0”3、現(xiàn)有定義inta;doubleb;floatc;chark;則表達式a/b+c-k值的類型為A、intdoublefloatchar4、設a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=3則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為。A、0B、1C、2D、35、以下程序中,while循環(huán)的循環(huán)次數(shù)是main()(inti=0;while(i<10)if(i<l)continue;if(i==5)break;i++;)A、1B、10C、6D,死循環(huán),不能確定次數(shù)6、有以下程序:fun(intx,inty){staticintm=0,i=2;i+=m+l;m=i+x+y;returnm;)main()(intj=l,ni=l,k;k=fun(j,m);printf("%d,'k);k=fun(j,m);printf("%d'n",k);)執(zhí)行后的輸出結(jié)果是=A,5,5B、5,1111,1111,57、下列選項中不會引起二義性的宏定義是oA、#defineS(x)X*xB、#defineS(x)(x)*(x)#defineS(x)(x*x)#defineS(x)((x)*(x))8、有數(shù)組:chara[]="thisisanegg”;。請問該數(shù)組到底占了幾個字節(jié)?A,11B、12C、14D、159、以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是oA、x%2==lB、x/2x%2!=0x%2==010、執(zhí)行下列程序時輸入:123〈空格>456〈空格>789V回車),輸出結(jié)果是main()(chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s”,s);printf("%c,%d,%s\n*,c,i,s);A、1,456,789B、1,23,456C、1,23,456,789D、123,456,78911、以下敘述中正確的是oA、字符串數(shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組B、charca[3][4]={"A","BB","CCC"};是不合語法的C、charca[][5]={〃A","BB","CCC"};是不合語法的D、char*ca[3]={"A",〃BB","CCC"};是不合語法的12、以下程序中函數(shù)f的功能是將n個字符串,按由大到小的順序進行排序。Sinclude〈string.h>voidf(charp[][10],intn)(chart[20];inti,j;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(strcmp(pEi],p[j])<0)(strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);main()(charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf(,z%d\n/z,strlen(p[O]));)程序運行后的輸出結(jié)果是oA、6B、4C、5D、313、運行以下程序后,如果從鍵盤上輸入chinaA、2,0B、5,0C、5,5D、2,514>有如下程序段int*p,a=6,b=2;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為A、6B、8C、7D、編譯出錯15、有以下程序:#include<stdio.h>main()(charcl=,T,c2=,2';cl=getchar();c2=getchar();putchar(cl);putchar(c2);)當程序運行時輸入aV回車)后,下列敘述中正確的是—A、變量cl被賦予字符a,c2被賦予回車符B、程序?qū)⒌却脩糨斎氲?個字符C、變量cl被賦予字符a,c2中仍是原有字符2D、變量cl被賦予字符a,c2中將無確定值16、下面程序段的運行結(jié)果是.for(i=l;i<=5;)printfi);i++;123451234C、15D、無限循環(huán)17、若有以下說明語句:structdate(intyear;intmonth;intday;}brithday;則下面的敘述不正確的是.A、struct是聲明結(jié)構(gòu)體類型時用的關鍵字B、structdate是用戶定義的結(jié)構(gòu)體類型名C、brithday是用戶定義的結(jié)構(gòu)體類型名D、year,day都是結(jié)構(gòu)體成員名18、下列程序段輸出結(jié)果是oa=l;b=10;do(b-=a;a++;)while(b--<0);printf(""a,b=%d,a,b);A、a,b=7,5B、a,b=2,8C、a,b=2,2D、a,b=81219、下列對字符數(shù)組進行初始化的語句中,是正確的。A、chars1[]="abed";B>chars2[3]="xyz”;C>chars3[][3]={ ,‘x','y'}D、chars3口[3]={"xyz","mnp"};20、若有定義:structkeyword{charkey[20];intid;)kw[]={"void",1,"char",2,"int",3,"float”,4,"double”,5};則printf("%c,%d\n”,kw[3].key[0],kw[3].id);語句的輸出結(jié)果為oA、i3B、n3C、f4D、14二、判斷題(每小題2分,共20分)()1、如果在共用體中有若干個不同類型的成員,在每一瞬間只有一個成員起作用,實際上是最后一個存放成員起作用。()2、在同一種類型中,變量值越大,它所占內(nèi)存的字節(jié)數(shù)越多。()()3、指針數(shù)組的每一個元素都是指針變量,且都指向相同的數(shù)據(jù)類型。()4、在循環(huán)過程中,使用break語句和continue語句的作用是一樣的()5、字符串可以存儲在字符數(shù)組中,也可以存儲在字符型指針變量中()6、函數(shù)定義在先、調(diào)用在后時,vc++允許省略函數(shù)聲明。()7、如果指針變量p已指向數(shù)組中的一個元素,則p+1指向同一數(shù)組中的下一個元素。()8、在標準c語言中,所有函數(shù)在調(diào)用之前都要進行聲明。()9、在標準c語言中,函數(shù)的定義和調(diào)用一樣都是不可以嵌套的。()10、若不希望其他源文件引用本文件中定義的全局變量,可在定義全局變量時加上statico三、編程題(每小題分,共40分)1、編程計算1*2*3+3*4*5+5*6*7+...+99*100*101的值。(本題10分)2、編寫程序輸入三位數(shù)(100—999),然后按數(shù)字逆序輸出。(例:輸入123/,輸出321)o(本題14分)3、題目描述完成一個對候選人得票的統(tǒng)計程序。假設有3個候選人,名字分別為Li,Zhang和Fun。使用結(jié)構(gòu)體存儲每一個候選人的名字和得票數(shù)。記錄每一張選票的得票人名,輸出每個候選人最終的得票數(shù)。結(jié)構(gòu)體可以定義成如下的格式:structperson{charname[20];intcount;}leader[3]={“Li”,0,“Zhang”,0,“Fun”,0);輸入第一行有一個整數(shù)n,表示以下有n張選票信息將會輸入。保證n不大于100。以后的n行中,每一行包含一個人名,為選票的得票人。保證每一個人名都是Li,Zhang和Fun中的某一個。輸出有三行,分別為Li,Zhang和Fun每人的得票數(shù)。格式為首先輸出人名,其后輸出一個冒號,最后輸出候選人的得票數(shù)。請注意行尾輸出換行。樣例輸入10LiLiFunZhangZhangFunLiFunZhangLi樣例輸出Li:4Zhang:3Fun:3(本題16分)參考答案一、單項選擇題1、C2、B3、B【解析】雙目運算中兩邊運算量類型轉(zhuǎn)換規(guī)律: 在a/b的時候,a、b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double*-float04、D5、D6、B【解析】本題的fun()函數(shù)中定義的變量m和i是靜態(tài)局部變量,第1次調(diào)用fun()函數(shù)時m=0、i=2,執(zhí)行i+=m+l后,i的值變?yōu)?,再執(zhí)行m=i+x+y后,m的值變?yōu)?,所以第1次輸出的整數(shù)是5。第2次調(diào)用fun()函數(shù)時m=5、i=3,執(zhí)行i+=m+l,i變?yōu)?,再執(zhí)行m=i+x+y,m變?yōu)?1,所以第2次輸出的整數(shù)是11。故本題應該選擇B。7、D8、D9、D【解析】因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項A)、C)中表達式的結(jié)果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結(jié)果為假,即等于0。10、B【解析】第一個輸入語句只接收一個字符'1';第二個輸入語句接收一個整數(shù)23,遇到空格停止;第三個輸入語句接收一個字符串"456'',遇到空格停止。11、A【解析】本題考查字符串數(shù)組的相關知識,選項BCD都是合語法的。12、C13、C【解析】輸入“c”時,運行default和case'0'的代碼;輸入“h”時,運行case'h'、default和case'0'的代碼;輸入"i"時,運行default和case'。的代碼;輸入“n”時,運行default和case'。的代碼;輸入“a”時,運行case'a'、case'h'、default和case'O'的代碼。14、B15、A16、D17、C18、B19、A【解析】BCD選項都不合字符數(shù)組的定義。20、C【解析】kw[3].Key[0]是第4個元素中key數(shù)組的第1個字符即f;kw[3].ID是第4個元素中成員ID值;二、判斷題1、正確2、錯誤3、正確4、錯誤5、錯誤6、正確7、正確8、錯誤9、錯誤10、正確三、編程題1、#includevoidmain()(inti,sum=0;for(i=l;i<=99;i=i+2)sum=sum+i*(i+1)*(i+2);printf(,z%d\n/z,sum);)2、#include<stdio.h>voidmain(){intn,ge,shi,bai;printf("請輸入一個三位正整數(shù):”);scanf("%d",&n);if((n<100)||(n>999))printf("輸入數(shù)據(jù)有誤!\n");else{ ge=n%10;shi=n/10%10;bai=n/100;printf("此數(shù)的逆序輸出結(jié)果為:%d%d%d\nz/,ge,shi,bai);))#include<stdio.h>#include<string.h>structperson{charname[20];intcount;}leader[3]={"Li",0,"Zhang”,0,"Fun”,0);intmain(){inti,j,n;charleader_name[20];scanf&n);for(i=1;i<=n;i++){scanf(〃%s〃,leader_name);for(j=0;j<3;j++)if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;)for(i=0;i<3;i++)printf(/z%s:%d\nz/,leader[i].name,leader[i].count);returnO;C語言專升本測試卷(三)(總分100分,考試時長90分鐘)一、單項選擇題(每小題2分,共40分)1、下列選項中,不能正確定義c語言整型常量是?A、32LB、51000C、-1.2D、5672、表示關系xV=yV=z的c語言表達式為oA、(x<=y)&&(y<=z)B、(x<=y)and(y<=z)C、(x<=y<=z)D、(x<=y)&(y<=z)3、有如下定義類型語句,若從鍵盤輸入數(shù)據(jù),正確的輸入語句是ointx;chary;charz[20];A、scanfC%d%c%c",&x,&y,&z);B、scanf("%d%c%s”,&x,&y,&z);C、scanf(*%d%c%c*,&x,&y,z);D、scanf(*%d%c%s*,&x,&y,z);4、if語句的基本形式為:if(表達式)語句,其中"表達式"oA、可以是任意合法的表達式B、必須是邏輯表達式C、必須是邏輯表達式或關系表達式D、必須是關系表達式5、若有程序段:x=99;while(x-2)x—;則循環(huán)結(jié)束時,x=。A、99B、2C、1D、06、以下函數(shù)調(diào)用語句中實參的個數(shù)為。exce((vl,v2),(v3,v4,v5),v6);A、3B、4C、5D、67、以下各標識符中,合法的是。A、A&M_sumfloatD、2x18、有字符數(shù)組a[80]和b[80],則正確的輸出語句是oA^puts(a,b);B、printf("%s,%s”,a口,b口);C、putchar(a,b);D、puts(a),puts(b);9、以下標識符中,不能作為合法的c用戶定義標識符的是oA、ForprintfWORDsizeof10、下列合法的字符型常量是oA、'\xl3'B、'\081'C、’65'D、"\n\11、設pl和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是oA、k=*pl+*p2B、p2=k;C、pl=p2;D、k=*pl*(*p2);12、關于函數(shù)返回值類型和返回值表達式的類型的描述中,錯誤的是。A、函數(shù)返回值類型決定了返回值表達式的類型B、函數(shù)返回值的類型是在定義函數(shù)時確定的,在函數(shù)調(diào)用時不能改變C、函數(shù)返回值的類型就是返回值表達式的類型D、函數(shù)返回值表達式類型與返回值類型不同時,函數(shù)表達式類型應轉(zhuǎn)換成函數(shù)返回值類型13、若以下選項中的變量已正確定義,則正確的賦值語句是oA、xl=26.8%3;l+2=x2;C、x3=0xl2;D、x4=1+2=3;14、定義如下變量和數(shù)組:inti,x[3]定]={1,2,3,4,5,6,7,8,9};則下面語句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的輸出結(jié)果是A、159B,147C、357D、36915、有以下程序main(){inta=l,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);〃短路問題printf("%d,%d\n”,k,m);)程序運行后的輸出結(jié)果是OA、0,0B、0,1C、1,0D、1,116、有如下程序main()(intx=3;do(printf("刎",x―);)while(!x);)該程序的執(zhí)行結(jié)果是oA、321B、3C、不輸出任何內(nèi)容D、陷入死循環(huán)17、定義共用體的關鍵字是.unionenumstructtypedef18、下述程序段的運行結(jié)果是omain()(staticinta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intb[3][2],i,j;for(i=0;i<3;i++)(for(j=0;j<3;j++)(b[i][j]=a[j][i]+a[i][j];printfC'%5d'',b[i][j]);)printf(''\n'');2472610181410182319、若定義staticinta[2][2]={1,2,3,4},則a數(shù)組的各數(shù)組元素分別為A、a[0][0]=ka[0][l]=2,at[l][0]=3,a[l][1]=4B、a[0][0]=Ka[0][1]=3,a[l][0]=2,a[l][l]=4C、a[0][0]=4,a[0][1]=3>a[l][0]=2,s[l][l]=lD、a[0][0]=4,a[0][l]=2、a[l][0]=3>a[l][l]=l20、以下敘述中正確的是oA、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的B、結(jié)構(gòu)體類型中的各個成分均不能是數(shù)組或指針C、結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時一起定義D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過結(jié)構(gòu)體類型之后,單獨進行定義二、判斷題(每小題2分,共20分)()1、模運算符%,僅用于整型變量或整型常量。()2、將int型變量x轉(zhuǎn)換為float型應:float(x);()3、函數(shù)返回值的類型是由在定義函數(shù)時所指定的函數(shù)類型()4、while語句的一般形式如下,當表達式的值為"真"時,循環(huán)執(zhí)行,直到表達式的值為"假”,循環(huán)中止并繼續(xù)執(zhí)行while的下一條語句。()5、使用strcpy(字符數(shù)組,字符串)函數(shù)時,字符數(shù)組長度必須足夠大。()6、c程序是從函數(shù)開始執(zhí)行的。()7、二維數(shù)組元素在內(nèi)存中的存放順序是按列主順序存放()8、當函數(shù)的實參與形參同名時,它們將共占內(nèi)存單元。()()9、在標準c語言中,使用函數(shù)strcpy時可以將'0'一起復制到目標串中()10、在一個文件中定義的全局變量其作用域還可以擴展到其他文件。三、編程題(每小題分,共40分)1、編寫程序:判斷輸入字符的字母的個數(shù),以*結(jié)束輸出。(本題10分)2、輸出9*9乘法表。(本題14分)3、計算n名學生成績的平均分并通過函數(shù)返回。要求:結(jié)構(gòu)體代碼如下:structStudentScore{doublescore;);(本題16分)參考答案一、單項選擇題1、C2、A【解析】C語言中沒有關鍵詞and,邏輯與運算符是&&,不是and,因此,選項B是錯誤的;而&是c語言的按位與運算,因此選項D是錯誤的:選項C是數(shù)學表達式,也是不對的。3、D4、A【解析】本題考查if表達式。if(表達式)中的表達式可以為任何合法的表達式,一般情況下為邏輯、條件表達式,需要注意的是,當?shù)忍?==)誤寫為賦值號(=)時不會報錯的,但是其值恒為1。5、B6、A7、B8、D9、D10、A【解析】C語言的字符常量是用單引號(')括起來的一個字符,也可以用以一個“\”開頭的字符序列來表示字符常量。其中形式\ddd表示1到3位8進制數(shù)所代表的字符;形式\xhh表示1到2位16進制數(shù)所代表的字符。在本題中'\xl3'表示回車符,是一個字符常量;而'\081'用8進制數(shù)所代表的字符形式不正確,因為8進制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8";’65'單引號(即撇號)括起來的不是一個字符,而是一個十進制數(shù)字;"\n"是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。11、B12、C13、C14、C15、C16、B【解析】本題x賦初值為3,當執(zhí)行printf("%d”,x-);時,由于x-的作用是先運算x,再將x的值減1,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。17、A18、B19、A20、A【解析】本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,結(jié)構(gòu)體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結(jié)構(gòu)體類型的變量可以在聲明結(jié)構(gòu)體的時候一起定義,C選項錯誤,D選項中可以一起定義。二、判斷題1、正確2、錯誤3、正確4、正確5、正確6、正確7、錯誤8、錯誤9、正確10、正確三、編程題1、#include<stdio.h>main(){charch;inti=0;ch=getchar();while(ch!='*')if(ch>=,a&&ch<=,z>||ch>=,a*&&ch<=,z){i++;ch=getchar();)printf(〃%d\n”,i);)2、#include<stdio.h>voidmain()(inti=l;for(i;i<=9;i++)(intj=l;for(j;j<=i;j++)printfC%d*%d=%d”,i,j,i*j);)printf('\n");))3、doubleFun(structStudentScore*a,intn){inti;doublesum=0.0;for(i=0;i<n;i++)(sum+=a[i].score;)returnsum/n;)intmain()(structStudentScorea[100];intn;〃學生數(shù)量inti;printf(〃請輸入學生數(shù)量:”);scanf("%d",&n);for(i=0;i<n;i++)(printf("請輸入第%d個學生的成績:”,i+1);scanf&a[i].score);}printfFun(a,n));return0;)請輸入學生數(shù)量:3請輸入第1個學生的成績:90請輸入第2個學生的成績:100.0請輸入第3個學生的成績:8090.000000C語言專升本測試卷(四)(總分100分,考試時長90分鐘)一、單項選擇題(每小題2分,共40分)1、下列屬于條件運算符的是。A、:B,&&C、>>D、+2、下列()是合法標識符。A、_bookB、5filesC,+staticD、-3.141593、以下選項中屬于c語言數(shù)據(jù)類型的是oA、復數(shù)型B、邏輯型C、雙精度型D、集合型4、有如下程序main(){intx=l,a=5,b=5;switch(x)(case0:b一一;a—;a一一;)printfC'a=%d,b二%d\n”,a,b);}該程序的輸出結(jié)果是OA>a=3,b=4B>a=3,b=3C、a=4,b=5D>a=4,b=45、下列for循環(huán)語句的執(zhí)行次數(shù)是ofor(intx=0,y=0;(y!=0)&&(x<4);x++)A、無限次B、一次也不執(zhí)行C、執(zhí)行一次D、執(zhí)行三次6、c語言源程序的基本單位是oA、過程B、函數(shù)C、子程序D、標識符7、運行下面程序后,輸出是.#include<stdio.h>voidmain()(intk=-3;if(k<=0)printf("****\n");elseprintf}####****C,####****D、有語法錯誤不能通過編譯8、c語言中,數(shù)組名代表oA、數(shù)組全部元素的值B、數(shù)組首地址C、數(shù)組第一個元素的值D、數(shù)組元素的個數(shù)9、在c語言中,數(shù)字029是一個()A、八進制數(shù)B、十進制數(shù)C、十六進制數(shù)D、非法數(shù)10、以下不能正確進行字符串賦初值的語句是A、charstr[5]="good!”;B、charstr[kgood!”;char*str="good!”;D、charstr[5]={'g','o','o','d'};11、若二維數(shù)組a有m行n歹U,則下面能夠正確引用元素a[i][j]的為—*(a+j*n+i)*(a+i*n+j)C、*(*(a+i)+j)D、*(*a+i)+j12、已定義以下函數(shù)intfun(int*p)(return*p;)則fun函數(shù)返回值足A、不確定的值B、一個整數(shù)C、形參p中存放的值D、形參p的地址值13、設c語言中,int類型數(shù)據(jù)占2個字節(jié),則long類型數(shù)據(jù)占—A、1個字節(jié)B、2個字節(jié)C、4個字節(jié)D、8個字節(jié)14>有以下函數(shù)intfun(char*s)(char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是oA、比較兩個字符串的大小B、計算S所指字符串占用內(nèi)存字節(jié)的個數(shù)C、計算S所指字符串的長度D、將S所指字符串復制到字符串t中15、以下程序運行后的輸出結(jié)果是main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf(縱d%f\n”,n,x);)A,220.000000B、100,20.000000240.00000010040.00000016、有以下程序:#include<stdio.h>mainO{intx=8;for(;x>0;x一)(if(x%3)(printf("%d,",x一);continue:)printf(z/%d,",-x):})程序的運行結(jié)果是OA、7,4,2B、8,7,5,2C、9,7,6,4D、8,5,4,217、在c語言中,系統(tǒng)為一個結(jié)構(gòu)體變量分配的內(nèi)存是—A、各成員所需內(nèi)存量的總和B、結(jié)構(gòu)體第一個成員所需的內(nèi)存量C、成員中占內(nèi)存量最大者所需的容量的整數(shù)倍D、結(jié)構(gòu)體中最后一個成員所需的內(nèi)存量18、以下程序的輸出結(jié)果是。main()(intx=3,y=0,z=0;if(x=y+z)printf(',*** ;elseprintf1####'');)####****C、1D、419、以下對二維數(shù)組a的正確說明是A、inta[3][]B、floata(3,4)C^doublea[l][4]D、floata(3)(4)20、若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是structstu(inti;intname;}St,*p;p=&st;A、siB、*i(*.iD、p->i二、判斷題(每小題2分,共20分)()1、C語言在判斷一個表達式是否為真時,以非0值代表"真",以0值代表”假〃()2、在c語言的數(shù)據(jù)類型中,float的含義是單精度浮點型,double的含義是雙精度浮點型。()3、預處理命令不是c語言的組成部分。()4、break語句只能用在循環(huán)語句中。()5、c語言約定''0'計入字符串的長度。()6、c語言規(guī)定,函數(shù)返回值的類型是由return語句中表達式類型所決定的。()()7、一個數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的,指針變量就是這塊連續(xù)內(nèi)存單元的首地址()8、用strcat(字符串1,字符串2)連接兩個字符串函數(shù)時,將字符串1后面的''0'取消,只在新串的最后保留一個‘\0'。()9、當函數(shù)定義在后、調(diào)用在先時,vc++允許省略函數(shù)聲明。()10、fseek函數(shù)一般用于文本文件。三、編程題(每小題分,共40分)1、編寫程序,使用循環(huán)結(jié)構(gòu)輸出下列圖形:(本題10分)2、編寫程序:刪除一個字符串中的指定字母,如:字符串"aca”,刪除其中的a字母。(本題14分)3、編寫程序:用結(jié)構(gòu)體數(shù)組,學生信息由學號、姓名,成績組成,數(shù)據(jù)如下:201513135157張三901)使用結(jié)構(gòu)體數(shù)組,將學生的數(shù)據(jù)按成績從高到低排序顯示到屏幕上2)將學生中不及格學生的姓名顯示出來3)寫一個函數(shù),獲取成績低于平均分的學生記錄并返回低于平均分的學生人數(shù)(本題16分)參考答案一、單項選擇題1、A【解析】:為條件運算符;&&為布爾邏輯運算符;>>為位運算符;+為算術運算符。2、A3、C【解析】C語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類,其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種。4、A5、B6、B7、D8、B9、D10、A11、C12、D13、C14、B【解析】循環(huán)語句while(*t++);執(zhí)行完時,指針變量t就指向了字符串結(jié)束符'\0'之后的位置,所以語句return(t-s);返回的就是字符串s所用內(nèi)存的字節(jié)個數(shù)。15、A【解析】對于C語言中的賦值運算符,必須遵循以下規(guī)則:賦值運算符的優(yōu)先級別只高于逗號運算符,比其他任何運算符的優(yōu)先級都低,并且具有自右向左的結(jié)合性。因此先得到變量c的值為50,變量n經(jīng)過計算結(jié)果為2,最后通過變量f的值10和n的值2相乘得到變量x的值,為20.000000o因此選項A)正確。16、D【解析】本題考查for循環(huán)語句。x=8,for循環(huán)條件為真,8%3=2,不等于0,則if條件表達式為真,執(zhí)行第一個輸出語句,先輸出x的值8,然后將x的值減1,此時x=7。然后執(zhí)行continue語句結(jié)束本次循環(huán)。執(zhí)行x—表示式,得x=6,for循環(huán)條件為真.6%3=0,則if條件表達式為假,執(zhí)行第二個輸出語句,先將x的值減1得x=5,然后輸出x的值5。執(zhí)行x—表示式,得x=4,for循環(huán)條件為真,4%3=1,不等于0,則if條件表達式為真,執(zhí)行第一個輸出語句,先輸出X的值4,然后將X的值減1,此時x=3。然后執(zhí)行continue語句結(jié)束本次循環(huán)。執(zhí)行x—表示式,得x=2,for循環(huán)條件為真,2%3=2,不等于0,則if條件表達式為真,執(zhí)行第一個輸出語句,先輸出x的值2,然后將x的值減1,此時x=l。執(zhí)行X—表示式,得x=0,for■循環(huán)條件為假,循環(huán)結(jié)束。17、C18、A19、C20、B【解析】本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式即(*p).i和p->i。二、判斷題1、正確2、正確3、正確4、錯誤5、錯誤6、錯誤7、錯誤8、正確9、錯誤10、錯誤三、編程題1、****************ttincludevoidmain()inti,j,k;for(i=0;i<5;i++)(for(j=0;j<4-i;j++)printf("");for(k=0;k<4;k++)printf("*");printf("\n〃);)printf("\n");)2、#include<stdio.h>#include<stdlib.h>#include<string.h>//刪除字符串中指定字母函數(shù)char*deleteCharacters(char*str,char*charSet)(inthash[256];if(NULL==charSet)returnstr;for(inti=0;i<256;i++)hash[i]=0;for(inti=0;i<strlen(charSet);i++)hash[charSet[i]]=1;intcurrentindex=0;for(inti=0;i<strlen(str);i++)(if(!hash[str[i]])str[currentIndex++]=str[i];)str[currentIndex]='\0';returnstr;)intmain()(chars[2]= //要刪除的字母chars2[5]=〃aca";//目標字符串printf(,z%s\n,z,deleteCharacters(s2,s));return0;)3、ttinclude<stdio.h>ttdefineNUM3structstudentchar*sno=newchar[20];char*name=newchar[20];intscore;boolfail=false;);voidstuSort(student*stu)(studenttmp;for(inti=0;i<NUM;i++)(for(intj=0;j<NUM;j++){if(stu[j].score<stu[i].score){=stu[j].name;tmp.sno=stu[j].sno;tmp.score=stu[j].score;stu[j].name=stu[i].name;stu[j].sno=stu[i].sno;stu[j].score=stu[i].score;stu[i].name=;stu[i].sno=tmp.sno;stu[i].score=tmp.score;for(inti=0;i<NUM;i++)(printf(/z%s%s%d\n,z,stu[i].sno,stu[i].name,stu[i].score);}voidstuFail(student*stu)intnumOfStu=0;for(inti=0;i<NUM;i++)(if(stu[i].fail==true){printfstu[i],name);)else(numOfStu++;))if(numOfStu==NUM)(printf“nofail");))voidstuAvg(student*stu){intstuScore=0;doublestuAvg=0;intent=0;for(inti=0;i<NUM;i++)(stuScore+=stu[i].score;)stuAvg=stuScore/NUM;for(inti=0;i<NUM;i++)(if(stu[i].score<stuAvg)(ent++;printf(,z%d\n/z,ent);intmain()student*stu=newstudent[NUM];for(inti=0;i<NUM;++i)(printf(〃輸入學號:〃);scanf(〃%s〃,stu[i].sno);printf(〃輸入姓名:〃);scanfstu[i].name);printf(〃輸入功課成績:〃);scanf&stu[i].score);}stuSort(stu);stuFail(stu);stuAvg(stu);delete[]stu;stu=NULL;return0;C語言專升本測試卷(五)(總分100分,考試時長90分鐘)一、單項選擇題(每小題2分,共40分)1、以下敘述中錯誤的是oA、算法正確的程序最終一定會結(jié)束B、算法正確的程序可以有零個輸出C、算法正確的程序可以有零個輸入D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果t=a*=a>b?a:b;2、下列程序段的輸出結(jié)果為。inta=7,b=9,tprintf(飛d”,t);t=a*=a>b?a:b;A、7B、9C、63D,493、以下不正確的if語句形式是oif(x>y&&x!=y);if(x==y)x+=y;C、if(x!=y)scanf&x)elsescanf&y);D,if(x<y){x++;y++;}4、以下程序的輸出結(jié)果是o#include<stdio.h>main()(inta=4,b=3,c=2,d=l;printfa<b?a:d<c?d:b);)A、1B、3C、2D、45、有以下程序#include<stdio.h>main()inti,j;for(i=3;i>=-l;i-)for(i=l;j<=2;j++)printfi+j);printf;})程序的運行結(jié)果是oA,234345B、432543C,233445D、4534236、有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t-=l;return(t-s):)以下關于aaa函數(shù)的功能敘述正確的是。A、求字符串s的長度B、比較兩個串的大小C、將串s復制到串tD、求字符串S所占字節(jié)數(shù)7、若有說明:int*pl,*p2,m=5,n;以下均是正確賦值語句的選項是opl=&m;pl=&m;p2=&n;*pl=*p2;pl=&m;p2=pl;pl=&m;*p2=*pl;8、若有以下說明:charsl[]={"tree"},s2[]={"flower”};,則以下對數(shù)組元素或數(shù)組的輸出語句中,正確的是A,printf(/,%s%s,/,si[5],s2[7]);B、printf("%c%c”,si,s2);C、puts(si);puts(s2);D、puts(si,s2);9、當代計算機之所以能自動地連續(xù)進行數(shù)據(jù)處理,主要是由于A、采用了開關電路B、采用了半導體器件C、具有存儲程序的功能D、采用了二進制數(shù)10、下列關于串的敘述中,哪一條是正確的()A、串是由至少1個字符組成的有限序列B、串中字符的數(shù)目就是串的長度C、空串就是由空格構(gòu)成的串D、串只能順序存儲11、有以下程序main(){charp[]={'a','b','c'},q[10]={,a,'b','c};printf(/z%d%d\n”,strlen(p),strlen(q));)以下敘述中正確的是oA、在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3B、由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3C、由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但p數(shù)組中字符串長度為3D、由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定12、printf函數(shù)中用到格式符%-6s,其中數(shù)字6表示輸出的字符串占用6歹U。如果字符串長度小于6,則輸出按方式.A、從左起輸出該字符串,右補空格B、從右起輸出該字符串,左補空格C、0D、輸出錯誤信息13、若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的表達式為()。A、p+1B、a+1C、a++D、++p14、下面程序輸出數(shù)組中的最大值,由s指針指向該元素.voidmain()inta[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;for(p=a,s=a;p-a<10;p++)if()s=p;printf("themax:%d”,*s):)則在if語句中的判斷表達式應該是。A、p>sB、*p>*sC、a[p]>a[s]D、p-a>p-s15、閱讀以下程序:main()(intx;scanf&x);if(x—<5)printf("%d"'x);elseprintfx++);)程序運行后,如果從鍵盤上輸人5,則輸出結(jié)果是oA、3B、4C、5D、616、若變量已正確定義,以下while循環(huán)正常結(jié)束時,累加到pi的最后一項item的值滿足。A、item的絕對值小于0.0001B、item的絕對值大于0.0001C、item的絕對值大于等于0.0001D、item的絕對值小于等于0.000117、若有以下語句:typedefstructs(intg;charh;}t;以下敘述中正確的是。A、可用S定義結(jié)構(gòu)體變量B、可用T定義結(jié)構(gòu)體變量C、S是struct類型的變量D、T是structS類型的變量18、有以下程序:voidfun(charc)(if(c>'x')fun(c-l);printf("枇",c);)main()(fun('z');)程序運行后的輸出結(jié)果是oA、xyzwxyzC、xzyD、zvx19、以下對一維數(shù)組c進行正確的定義初始化的語句是oint c [10] =0;int c [10] ={0}*10;C、int c [1] ={0,0,0,0,0,0,0);D^ int c [10] ={0};20、相同結(jié)構(gòu)體類型的變量之間,可以oA、相加B、賦值C、比較大小D、地址相同二、判斷題(每小題2分,共20分)()1、表達式語句和表達式?jīng)]有什么區(qū)別。()2、標準格式輸入函數(shù)scanf()可以從鍵盤上接收不同數(shù)據(jù)類型的數(shù)據(jù)項。()3、實參向形參進行數(shù)值傳遞時,數(shù)值傳遞的方向是單向的,即形參變量值的改變不影響實參變量的值。()4、do-while語句的一般形式如下,第一次進入循環(huán)時,首先執(zhí)行循環(huán)體語句,然后再檢查循環(huán)控制條件,即計算表達式,若值為"真〃,繼續(xù)循環(huán),直到表達式的值為"假",循環(huán)結(jié)束,執(zhí)行do-while的下一條語句。do循環(huán)體語句)while(表達式);()5、c語言標準輸出操作中,putchar()函數(shù)可以輸出顯示一個字符串。()6、在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。()7、指針變量可以指向數(shù)組,但不允許指向數(shù)組元素。()8、c語言每個函數(shù)的返回值都是int型的。()9、字符常量與字符串是兩種不同的常量。()10、文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件。三、編程題(每小題分,共40分)1、從鍵盤輸入圓的半徑,計算并輸出圓面積與周長,要求結(jié)果保留兩位小數(shù)。(本題10分)2、編寫程序:求0—7所能組成的奇數(shù)個數(shù)。比如:1位數(shù)為奇數(shù)的個數(shù)42位數(shù)為奇數(shù)的個數(shù)283位數(shù)為奇數(shù)的個數(shù)224 (本題14分)3、給定N個職員的信息,包括姓名、基本工資、浮動工資和支出,要求編寫程序順序輸出每位職員的姓名和實發(fā)工資(實發(fā)工資=基本工資+浮動工資-支出)。輸入格式:輸入在一行中給出正整數(shù)N。隨后N行,每行給出一位職員的信息,格式為“姓名基本工資浮動工資支出”,中間以空格分隔。其中“姓名”為長度小于10的不包含空白字符的非空字符串,其他輸入、輸出保證在單精度范圍內(nèi)。輸出格式:按照輸入順序,每行輸出一位職員的姓名和實發(fā)工資,間隔一個空格,工資保留2位小數(shù)。輸入樣例:3zhao24040075qian36012050zhou56015080輸出樣例:zhao565.00qian430.00zhou630.00(本題16分)參考答案一、單項選擇題1、B2、C3、C4、A【解析】條件表達式的格式為:"ab:c",它的功能是:當a為真時,表達式的值等于b的值;當a為假時,表達式的值等于c的值。因為條件運算符的結(jié)合方向為“自右向左”。因此,當表達式中嵌套使用條件表達式時,應先計算右邊的條件表達式,再計算左邊的條件表達式。題中應先計算“dVcd:b”的“dVc”關系表達式的值,因為d-lVc=2為真,所以取第一個表達式的值,即d的值作為整個表達式的值。接著計算“aVba:d",a=4Vb=3為似,取第二個表達式的值,即d的值作為整個表達式的值。5、D【解析】本題考查的是for循環(huán)的嵌套。外層循環(huán)變量i從3遞減到1,內(nèi)層循環(huán)變量j從1遞增到2,具體運行過程如下:i-3:j=l,滿足條件jV=2,輸出i+j=3+l=4;j=2,滿足條件j<=2,輸出i+j=3+2=5;j=3,不滿足條件jV=2,退出內(nèi)層循環(huán),執(zhí)行“printf("\n");"語句,換行。執(zhí)行『-,此時i=2,滿足條件i>=l;i=2:j=l,滿足條件jV=2,輸出i+j-2+l=3:j=2,滿足條件j<=2,輸出i+j=2+2=4;j=3,不滿足條件jV=2,退出內(nèi)層循環(huán),執(zhí)行“ptintf("\n");"語句,換行。執(zhí)行i-,此則i=L滿足條件i>=l;i=l:j=l.滿足條件jV=2,輸出i+j=l+l=2;j=2,滿足條件jV=2,輸出i+j=l+2=3;j=3,不滿足條件jV=2,退出內(nèi)層循環(huán),執(zhí)行"printf("\n");”語句,換行。執(zhí)行i",此時i=0,不滿足條件i>=l,結(jié)束外層循環(huán)。6、A7、C8、C9、C【解析】計算機是一種智能機器,是因為它采用了存儲程序原理,能自動執(zhí)行程序完成算術運算和信息處理。10、B【解析】串(或字符串)是由零個或多個字符組成的有限序列,零個字符的串是空串,串中字符的數(shù)目就是串的長度,串的存儲方式有順序存儲和鏈式存儲兩種。串的基本運算有連接、賦值、求長度、全等比較、求子串、找子串位置以及替換等。11、B12、A
二、二、BABADB判斷題錯誤正確正確正確錯誤正確錯誤錯誤正確10、正確三、編程題1、#includevoidmain()intr;floatpi=3.14159;floatc,s;printf(“請輸入半徑r:");scanf("%d”,&r);s=pi*r*r;c二2*pi*r;printf("面積二%.2f,周長=%.2f\n〃,s,c);2、#include<stdio.h>intmain(intagrc,char*agrv[])longsum=4,s=4;〃sum的初始值為4表示,只有一位數(shù)字組成的奇數(shù)個數(shù)為4個intj;for(j=2;j<=8;j++)(printf("%d位數(shù)為奇數(shù)的個數(shù)%ld\n”,j-1,s);if(j<=2)s*=7;elses*=8;sum+=s;)printfC/%d位數(shù)為奇數(shù)的個數(shù)%ld\n”,j-1,s);printf("奇數(shù)的總個數(shù)為:%ld\n,z,sum);//system("pause");return0;)3、ttinclude<stdio.h>structmessage(chara[9];doublebasic;doublefu;doubleoutput;);structmessaged[100];intmainO(intN;doublef[100];scanf(〃%d〃,&N);for(inti=0;i<N;i++)(scanf(z,%s%lf%lf%lf,z,d[i].a,basic,fu,output);f[i]=d[i].basic+d[i].fu-d[i].output;)for(inti=0;i<N;i++)printf("%s%.2f\n〃,d[i].a,f[i]);return0;)C語言專升本測試卷(六)(總分100分,考試時長90分鐘)一、單項選擇題(每小題2分,共40分)1、將十進制257轉(zhuǎn)換成十六進制數(shù)是oA、11B、101C、F1D、FF2、下面判斷正確的是oA、char*a="china";等價于char*a;*a="china”;B^charstr[5]=*china,z;等價于charstr[]=*chinazz;C、char*S=*china*;等價于char*S;S="china”;D^charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]=*abc*;3、在下面關于指針的說法中,錯誤的一條是.A、變量的指針就是變量的地址B、可以將一個整型量或任何其他非地址類型的數(shù)據(jù)賦給一個指針變量C、一個指針變量只能指向同一個類型的變量D、指針變量中只能存放地址(指針)4、設a、b、e、d、m>n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值是。A、0B、1C、2D、35、以下敘述中錯誤的是oA、C語言是一種結(jié)構(gòu)化程序設計語言B、結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成C、使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題D、結(jié)構(gòu)化程序設計提倡模塊化的設計方法6、以下函數(shù)調(diào)用語句中含有實參個數(shù)為.func((expl,exp2),(exp3,exp4,exp5));A、1個B、2個C、4個D、5個7、在下面的條件語句中(其中si個s2表示c語言語句),只有0在功能上與其他三個語句不等價。if(a)SIelseS2if(a==0)S2elseSIif(a!=0)SIelseS2if(a==0)SIelseS28、下面程序的輸出結(jié)果是omain()(inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23);int(*p)L4]=a,i,j,k=0;for(i=0;i<3;i++)for(j=0;j<2;j++)k=p[i][j];printf("%d\n",k);)A、17B、18C、19D、239、以下敘述中錯誤的是oA、用戶所定義的標識符允許使用關鍵字B、用戶所定義的標識符應盡量做到"見名知意”C、用戶所定義的標識符必須以字母或下劃線開頭D、用戶定義的標識符中,大、小寫字母代表不同標識10、以下不能將s所指字符串正確復制到t所指存儲空間的是owhile(*t=*s){t++;s++;)B、for(i=0;t[i]=s[i];i++);C、do{*t++=*s++;)while(*s);D、for(i=0,j=o;t[i++]=s[j++];);11、已知p,pl為指針變量,a為數(shù)組名,j為整型變量,下列賦值語句中不正確的是。A、p=&j,p=pl;p=a;p=&a[j];p=10;12、c語言程序的三種基本結(jié)構(gòu)是。A、循環(huán)結(jié)構(gòu)轉(zhuǎn)移結(jié)構(gòu)順序結(jié)構(gòu)B、遞歸結(jié)構(gòu)循環(huán)結(jié)構(gòu)轉(zhuǎn)移結(jié)構(gòu)C、嵌套結(jié)構(gòu)遞歸結(jié)構(gòu)順序結(jié)構(gòu)D、順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)13、以下運算符中優(yōu)先級最低的是。A、&&B、&C、IID、I14、若有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,當調(diào)用該函數(shù)時,正確的賦值方法是o(*p)max(a,b)*pmax(a,b)C、p=max(a,b)D,*p=max(a,15、下面程序運行時,輸入12345678回車,結(jié)果0main()(inta,b;scanf(級2d%*2d%2d”,&a,&b);printf(a+b);}A,46B、5768D、出錯16、若i、j已定義為int型,則以下程序段中內(nèi)循環(huán)的總的執(zhí)行次數(shù)是一for(i=5;i>0;i-)for(j=0;j<4;j++)A、20B、24C、25D、3017、若有下面的說明和定義,則sizeof(structaa)的值是。structaa{intrl;doubler2;floatr3;unionuu{charul[5];longu2[2];}ua;}mya;A、30B、29C、24D、2218、以下程序的輸出的結(jié)果是intx=3;main()(inti;for(i=l;i<x;i++)incre();}increO(staicintx=l;x*=x+l;printf("%d",x);)A、33B、22C、26D、2519、以下定義:int(*p)[4]中,標識符p是=A、一個指向整型變量的指針B、一個指針數(shù)組名C、一個指針,它指向一個含有4個整型元素的一維數(shù)組D、說明不合法20、表達式*((int*)(p+l)+2)的值時.staticstruct(intx,y[3];)a[3]={{1,2,3,4),{5,6,7,8),{9,10,11,12}},*p;p=a+1;A、3B、7C、10D、11二、判斷題(每小題2分,共20分)()1、c語言中浮點型常量指數(shù)表示形式中,字母e或e之前必須有數(shù)字。()2、在C語言程序中,凡是沒有出現(xiàn)存儲類說明符的變量都是自動類的。()3、當#include后面的文件名用雙引號””括起,僅搜索當前目錄。()4、選擇結(jié)構(gòu)(if語句)和循環(huán)結(jié)構(gòu)都可以使用嵌套形式()5、比較兩個字符串是否相等不能通過條件運算符“==〃。()6、局部變量只有當它所在的函數(shù)被調(diào)用時才會被使用,當函數(shù)調(diào)用結(jié)束時局部變量還會一直存在。()7、對以下定義的二維數(shù)組table,其行下標的取值范圍是[0,2],列下標的取值范圍是[0,1],數(shù)組元素分別是:table[0][0]、table tabletable[1][1]>table[2][0]和table[2][1],可以表示一個3行2列的矩陣。inttable[3][2];()8、c語言函數(shù)返回類型的默認定義類型是voido()9、c程序中如果對一維數(shù)組的全部元素都賦初值,則定義數(shù)組時必須指定數(shù)組長度。()10、fseek函數(shù)一般用于文本文件。三、編程題(每小題分,共40分)1、請編一個函數(shù)intfun(inta),它的功能是:判斷a是否是素數(shù),若a是素數(shù),返回1;若不是素數(shù),返回0oa的值由主函數(shù)從鍵盤讀入。(本題10分)2、請編寫一個函數(shù)proc(),它的功能是:求出1?m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。例如,若傳給m的值為70,則程序輸出:7111421222833354244495556636670注意:部分源程序給出如下。請勿改動mainO函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:^defineN100voidproc(intm,int*a,int*n)voidmainO(intarr[N],n,k;system("cls");proc(70,arr,&n);for(k=0;k<N;K++)i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼琴音樂制品音樂教室?guī)熧Y合作合同
- 城市更新項目回遷房買賣
- 創(chuàng)業(yè)公司對賭協(xié)議范本
- 酒肉朋友的虛偽與險惡
- 購銷合同范本及注意事項
- 個人勞務分包合同協(xié)議書樣式
- 瓷磚代購銷合同
- 工廠搬運吊裝勞務合作
- 苗木購銷協(xié)議
- 深入了解勞動合同與勞動協(xié)議的差異
- 配網(wǎng)規(guī)劃建設匯報
- 大學生個人職業(yè)生涯規(guī)劃課件模板
- 中國稅制學習通超星期末考試答案章節(jié)答案2024年
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
- 期末 (試題) -2024-2025學年教科版(廣州)英語四年級上冊
- 2024消防維保投標文件模板
- 高級流行病學與醫(yī)學統(tǒng)計學智慧樹知到期末考試答案章節(jié)答案2024年浙江中醫(yī)藥大學
- 設計創(chuàng)意生活智慧樹知到期末考試答案2024年
- 北京市西城區(qū)2023-2024學年八年級上學期期末數(shù)學檢測卷(含答案)
- 道路運輸企業(yè)兩類人員安全考核題庫題庫(1020道)
- 【機械畢業(yè)論文】便攜式電火花小孔機結(jié)構(gòu)設計
評論
0/150
提交評論