2022年內(nèi)蒙古某大學(xué)C語言程序設(shè)計(jì)專升本測試卷(十二套試卷)及答案_第1頁
2022年內(nèi)蒙古某大學(xué)C語言程序設(shè)計(jì)專升本測試卷(十二套試卷)及答案_第2頁
2022年內(nèi)蒙古某大學(xué)C語言程序設(shè)計(jì)專升本測試卷(十二套試卷)及答案_第3頁
2022年內(nèi)蒙古某大學(xué)C語言程序設(shè)計(jì)專升本測試卷(十二套試卷)及答案_第4頁
2022年內(nèi)蒙古某大學(xué)C語言程序設(shè)計(jì)專升本測試卷(十二套試卷)及答案_第5頁
已閱讀5頁,還剩181頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言程序設(shè)計(jì)專升本測試卷(一)一、單項(xiàng)選擇題(每小題2分,共100分)1、下列四個(gè)敘述中,錯(cuò)誤的是。A、C語言中的關(guān)鍵字必須小寫B(tài)、C語言中的標(biāo)識符必須全部由字母組成C、C語言不提供輸入輸出語句D、C語言中的注釋行可以出現(xiàn)在程序的任何位置【答案】B【解析】C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線。2、設(shè)ch是char型變量,其值為a,且有下面的表達(dá)式ch=(ch>=,a&&ch<=z,)?(ch+32):cho上面表達(dá)式的值是 oA、AB、aC、ZD、z【答案】B3、switch語句中表達(dá)式(expression)的值不允許用的類型是。A、byteB、intbooleanchar【答案】c【解析】switch語句用于多重選擇,其參數(shù)可以是字節(jié)型、整型或字符型;而布爾型只有兩個(gè)值(True、False),一般用于if語句。4、下列c語言程序段中關(guān)于while循環(huán)體正確的說法是inti=l;while(5)i++;if(i>3)break;A、三次循環(huán)B、四次循環(huán)C、五次循環(huán)D、六次循環(huán)【答案】A5、若有說明語句:double*p,a;則通過scanf語句正確給輸入項(xiàng)讀人數(shù)據(jù)的程序段是A、*p=&a;scanf("%If”,p);B>*p=&a;scanf('%f”,p);C、p=&a;scanf("%",*p);D、p=&a;scanf("%If”,p);【答案】D6、設(shè)有以下語句,則z的二進(jìn)制值是charx=3,y=6,z;z=x*y<<2:00010100000110110001110000011000【答案】B【解析】左移運(yùn)算符“VV”優(yōu)先級高于二進(jìn)制按位異或運(yùn)算符“一”。y的二進(jìn)制數(shù)為00000110,y〈V2的結(jié)果為00011000;x的二進(jìn)制數(shù)為00000011,x"y的結(jié)果為OOOllOUo7、定義如下變量和數(shù)組:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);則下面語句的輸出結(jié)果是.for(i=0;i<4;i++)printf(/z%3d*,x[i][3-i]);TOC\o"1-5"\h\zA. 1 5 9 13B> 1 6 11 16C> 4 7 10 13D、 4 8 12 16【答案】c8、判斷閉區(qū)間*判斷實(shí)數(shù)x屬于閉區(qū)間[a,b]的表達(dá)式為A、x<=[a,b]B、a<=x<=bC、a<=x&&x<=bD、aWx&&x《b【答案】c9、以下不能將s所指字符串正確復(fù)制到t所指存儲空間的是?A、while(*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++];);【答案】C10、設(shè)有定義:inta=l,b=2,c=3;,以下語句中執(zhí)行效果與其它三個(gè)不同的是。A、if(a>b)c=a,a=b,b=c;B、if(a>b){c=a,a=b,b=c;}C、if(a>b)c=a;a=b;b=c;D、if(a>b){c=a;a=b;b=c;}【答案】C11、下列函數(shù)中,能夠從鍵盤獲得一個(gè)字符數(shù)據(jù)的函數(shù)是OA、puts()B、putchar()C、getchar()D、getsO【答案】C12、若ch為char型變量,k為int型變量(已知字符a的ascii十進(jìn)制代碼為97),則以下程序段的執(zhí)行結(jié)果是och=a;k=12;printf(*%x,%o,”,ch,ch,k);printf(*k=%%d\n*,k);A、因變量類型與格式描述符的類型不匹配,輸出無定值B、輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值C、61,141,k=%dD、61,141,k=%12【答案】C13、在宏定義#definePI3.14159中,用宏名代替一個(gè)A、常量B、單精度數(shù)C、雙精度數(shù)D、字符串【答案】D14、若有以下說明和定義fun(int*c)main()(int(*a)()=fun,(*b)(),w[10],c;)在必要的賦值之后,對fun()函數(shù)的正確調(diào)用語句是A、a=a(w)B、(*a)(&c)C、b=*b(w);D^fun(b);【答案】B15、若有以下程序片段:charstr[]="ab\n\012\\\^;printfstrlen(str));上面程序片段的輸出結(jié)果是OA、3B、4C、6D、12【答案】c16、以下不構(gòu)成無限循環(huán)的語句或語句組是。n=0;do++n;while(n<=0);n=0;while(l)n++;n=10;while(n);D、for(n=0,i=l;;i++)n+=i;【答案】A【解析】while(l),條件永遠(yuǎn)為真,是無限循環(huán);while(n);循環(huán)體為空語句,是無限循環(huán);for循環(huán)中兩個(gè)分號之間為循環(huán)執(zhí)行條件,如果省略,則為條件永遠(yuǎn)成立,為無限循環(huán);所以答案選擇A。17、設(shè)voidfl(int*m,long&n);inta;longb;則以下調(diào)用合法的是.fl(a,b);fl(&a,b);fl(a,&b);fl(&a,&b);【答案】B【解析】如果調(diào)用合法,則只有B滿足兩個(gè)參數(shù)為指針和引用的條件。18、下面程序的輸出結(jié)果是。main()|intb[]={l,2,314,5,6,7,8,9,0},*q;q=b;printf("%d\n”,*(q+O));A、0B、1C、10D、9【答案】B19、下列字符數(shù)組長度為5的是oA、chara[]={,hJ,,a,,,b',,c',,d,};B、charb[]={'h','a','b','c','d','\0'};C、charc[10]={'h','a','b','c','d'};D、chard[6]={'h','a','b','c',''0'};【答案】A20、以下結(jié)構(gòu)體類型說明和變量定義中正確的是.typedefstructintn;charc;REC;RECtl,t2;struetREC;intn;charc;;RECtl,t2;typedefstructREC;intn=0;charc=,A*;tl,t2;RECtl,t2;structintn;charc;REC;【答案】A【解析】struct結(jié)構(gòu)體名后不能加號,所以選項(xiàng)B、C錯(cuò)誤,選項(xiàng)I)中應(yīng)為structtl,t2;選項(xiàng)A為正確的定義形式。21、運(yùn)行以下程序后,如果從鍵盤上輸入chinaA、2,0B、5,0C、5,5D、2,5【答案】C【解析】輸入%”時(shí),運(yùn)行default和case'0'的代碼;輸入“h”時(shí),運(yùn)行case'h'、default和case'0'的代碼;輸入"i"時(shí),運(yùn)行default和case'O'的代碼;輸入"n"時(shí),運(yùn)行default和case'O'的代碼;輸入"a"時(shí),運(yùn)行case'a'、case'h'、default和case'O'的代碼。22、有以下程序:main(){intk=-3:if(k<=0)printf(**?**\n*)elseprintf("&&&&\n");}程序的輸出結(jié)果是oA、輸出附##B、輸出&&&&C、輸出####&&&&D、有語法錯(cuò)不能通過編譯【答案】D23、結(jié)構(gòu)化程序設(shè)計(jì)的三種基本邏輯結(jié)構(gòu)是.A、選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)和嵌套結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)C、選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)和模塊結(jié)構(gòu)D、循環(huán)結(jié)構(gòu),遞歸結(jié)構(gòu)和循環(huán)結(jié)構(gòu)【答案】B24、設(shè)i和x都是int類型,則for循環(huán)語句。for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);A、最多執(zhí)行10次B、最多執(zhí)行9次C、是無限循環(huán)D、循環(huán)體一次也不執(zhí)行【答案】A25、字符串"xyz”在內(nèi)存占用的字節(jié)數(shù)是。A、3B、4C、6D、8【答案】B【解析】字符串中的每個(gè)字符占1個(gè)字節(jié),但C程序在存儲字符串時(shí),要在最后一個(gè)有效字符后面接上1個(gè)字符串結(jié)束的標(biāo)記符'\0'。這樣,存儲字符串常量”XyZ”需要4個(gè)字節(jié)。所以解答是B。26、在以下語句中存在語法錯(cuò)誤的是.A、charss[6][20];ss[l]=*right?*;B>charss[][20]={"right?”};C、char*ss[6];ss[l]="right?”;D、char*ss□={"right?”};【答案】A27、inta[10];合法的數(shù)組元素的最小下標(biāo)值為一A、10B、9C、1D、0【答案】D28、根據(jù)c語言的語法規(guī)則,下列個(gè)是不合法標(biāo)識符。A^doB、NameC、R5D、_exam【答案】A29、下列數(shù)據(jù)中屬于"字符串常量”的是.A、ABCB、"ABC"C、’ABC'D、’A'【答案】B30、文件中定義的全局變量的作用域?yàn)?。A、本程序全部范圍B、本文件全部范圍C、函數(shù)內(nèi)全部范圍D、從定義該變量的位置開始到本文件結(jié)束【答案】D31、對于一個(gè)正常運(yùn)行的c程序,以下敘述中正確的是.A、程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束D、程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束【答案】A32、下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是.A、>"&&"> >">="B、T>"/">">=">"&&"C、"!">"/">"&&">">="D、"/">"!">"&&">">="【答案】B33、指針變量p進(jìn)行自加運(yùn)算(即執(zhí)行p++;)后,地址偏移值為4,則其數(shù)據(jù)類型為—A、intfloatdoublechar【答案】A34、有以下程序structs(intx,y;}data[2]={10,100,20,200};main()structs*p=data;printf("%d\n",++(p->x));}程序運(yùn)行后的輸出結(jié)果是“A、10B、11C、20D、21【答案】Binta;intb=65536;a=b;35、執(zhí)行下面程序段后,輸出結(jié)果是printf("%d\rT,a)inta;intb=65536;a=b;A、65536B、0C、-1D、1【答案】A36、以下循環(huán)體的執(zhí)行次數(shù)是#include<stdio.h>voidmain()(inti,j;for(i=0,j=l;i<=j+l;i+=2,j—)printf(,z%d\n',i);}A、3B、2C、1D、0【答案】D37、若有說明:inti,j=7,*p=&i;則與i=j;等價(jià)的語句是—i=*p;*p=*&j;i=&j;i=**p;【答案】B38、要輸出下面的圖形,請完善程序。#include<stdio.h>main(){inti,j,k;for(i=l;i<=5;i++)(for(j=l;j<=20-3*i;j++)printfC");for(k=l;;k++)printf("%3d”,k);for(_ ;k>0;k++)printf("%3d”,k);printf('\n");A、k<=ik=iB、k<ik=i-lC、k<ik=iD、k<=ik=i-l【答案】D39、若有說明語句"inta[5],*p=a;",則對數(shù)組元素的正確引用是一a[p]p[a]C^*(p+2)D、p+2【答案】C40、設(shè)有如下枚舉類型定義:enumlanguage{basic=3,assembly,ada=100,cobol,fortran);枚舉量fortran的值為。A、4B、7C、102D、103【答案】C41、以下關(guān)于c/c語言指針變量的敘述中,正確的是oA、指針變量可以是全局變量也可以是局部變量B、必須為指針變量與指針?biāo)赶虻淖兞糠峙湎嗤笮〉拇鎯臻gC、對指針變量進(jìn)行算術(shù)運(yùn)算是沒有意義的D、指針變量必須由動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)對象來賦值【答案】A【解析】存放地址的變量稱為指針變量。指針變量是一種特殊的變量,它不同于一般的變量,一般變量存放的是數(shù)據(jù)本身,而指針變量存放的是數(shù)據(jù)的地址。選項(xiàng)A顯然是正確的。對于選項(xiàng)B,指針變量和指針?biāo)赶虻淖兞看娣诺膬?nèi)容是不一樣的,只要分配夠用就行了,不需要分配一樣大小的存儲空間。對于選項(xiàng)C,指針變量加1便指向下一個(gè)存儲單元,是有意義的。另外指針變量可以靜態(tài)地定義。42>有以下程序#defineP3voidF(intx){return(P*x*x);}main()(printf("%d\n”,F(3+5));}程序運(yùn)行后的輸出結(jié)果是.A、192B、29C、25D、編譯出錯(cuò)【答案】D43、若inti=10;執(zhí)行下列程序后,變量i的正確結(jié)果是switch(i)case0:i+=l;i+=l;i+=l;default:i+=l;)A、10B、11C、12D、13【答案】D44、以下敘述中正確的是。A、N-S流程圖只能描述簡單的順序結(jié)構(gòu)的程序B、程序的算法只能使用流程圖來描述C、結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)D、計(jì)算機(jī)可以直接處理C語言程序,不必進(jìn)行任何轉(zhuǎn)換【答案】C【解析】N-S流程圖是可以描述循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)等多種結(jié)構(gòu)的程序,所以A選項(xiàng)錯(cuò)誤。程序的算法可以用流程圖、偽代碼、N-S結(jié)構(gòu)圖等方法表示所以B選項(xiàng)錯(cuò)誤。計(jì)算機(jī)只能處理二進(jìn)制表示的目標(biāo)程序不能直接執(zhí)行由C語言編寫的源程序所以D選項(xiàng)錯(cuò)誤。45、如有定義語句inta[]={1,8,2,8,3,8,4,8,5,8};則數(shù)組a的大小是.A、10B、11C、8D、不定【答案】A46、下列關(guān)于實(shí)型變量書寫正確的是oA、E3B、2e0.3C、1.2e3D、1.2E0.3【答案】C47、若有以下定義,則對a數(shù)組元素的正確引用是ointa[5],*p=a;A、*&a[5]B^*a+l*(p+5)*(a+2)【答案】I)【解析】本題考查通過指針引用數(shù)組元素。選項(xiàng)A)、B),沒有這種引用形式;選項(xiàng)C),*(p+5)是引用數(shù)組的第6個(gè)元素,而數(shù)組一共有5個(gè)元素,出現(xiàn)越界:選項(xiàng)D),*(a+2)引用數(shù)組的第3個(gè)元素。48、數(shù)據(jù)的存儲結(jié)構(gòu)是指oA、存儲在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲空間量C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示【答案】I)【解析】數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu),所以選項(xiàng)D正確。49、下列變量定義中,錯(cuò)誤的是?intx=3;floatf;d;Strings="Hello!”;booleanb=true;【答案】B【解析】A選項(xiàng)定義了一個(gè)整型;C選項(xiàng)定義了一個(gè)字符串;D選項(xiàng)定義了一個(gè)布爾型變量:B選項(xiàng)中的f;d不符合標(biāo)識符規(guī)范,因而選B。50、函數(shù)調(diào)用語句:fseek(fp,-201,2);的含義是.A、將文件位置指針移到距離文件頭20個(gè)字節(jié)處B、將文件位置指針從當(dāng)前位置向后移動(dòng)20個(gè)字節(jié)C、將文件位置指針從文件末尾處退后20個(gè)字節(jié)D、將文件位置指針移到離當(dāng)前位置20個(gè)字節(jié)處【答案】CC語言程序設(shè)計(jì)專升本測試卷(二)一、單項(xiàng)選擇題(每小題2分,共100分)1、若X是整型變量,pb是類型為整型的指針變量,則正確的賦值表達(dá)式是一pb=&x;pb=x;*pb=&x;*pb=*x【答案】A2、以下不能正確賦值的是.charsl[10]B、chars2口={'t','e','s','t'}chars3[20]="test";chars4[4]={'t','e','s','t'}【答案】A3、選擇出合法的if語句(設(shè)intx,a,b,c;)0TOC\o"1-5"\h\zA、if(a=b) x++;B、if(a=<b) x++;C>if(a<>b) x++;D、if(a=>b) x++;【答案】A【解析】A雖然是賦值語句,但是在邏輯運(yùn)算中自動(dòng)將賦值語句的結(jié)果當(dāng)作邏輯值,方法是,如果賦值語句的結(jié)果是非零值則當(dāng)作邏輯真,否則當(dāng)作邏輯假。C語言中關(guān)系運(yùn)算符有V(小于)、>(大于)、>=(大于等于)、〈二(小于等于)、=(等于)、!■(不等于)等六種,可見其他的條件表達(dá)式中的關(guān)系符寫錯(cuò)To4、有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case0:prinft(z<%d/z,i);case2:prinft('%d”,i);default:prinft(z<%d/z,i);))程序運(yùn)行后的輸出結(jié)果是。022111021021000122D、012【答案】C【解析】本題考核的知識點(diǎn)是for循環(huán)和switch語句的混合應(yīng)用.程序中for循環(huán)了三次,第一次i=0,執(zhí)行switch語句中case。:分支,直到遇到default語句,退出switch,這里共執(zhí)行三個(gè)輸出語句分別輸出0,0,0,第二次循環(huán)i=l,switch語句中沒有匹配的分支,故只執(zhí)行default語句輸出1,退出switch語句;第三此循環(huán)i=2,從switch語句中的case2:開始執(zhí)行,共執(zhí)行了兩個(gè)輸出語句輸出2、20最后輸出的結(jié)果為000122.所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。5、下列表達(dá)式中,類型可以作為int型的是o“abe"+"efg”〃abc"+"efg"C、‘a(chǎn)'+'b'D、3+"4"【答案】c【解析】選項(xiàng)A的運(yùn)算結(jié)果為字符串類型;選項(xiàng)B語法錯(cuò)誤;選項(xiàng)D的運(yùn)算結(jié)果也是字符串;只有選項(xiàng)C可以看做是兩個(gè)字符的ASCII值相加,結(jié)果為int型。6、有定義:char**pl,*p2;則下列表達(dá)式中正確合理的是。pl/=5pl*=p2pl=&p2pl+=5【答案】c7、下面程序段的運(yùn)行結(jié)果是ochar*format="%s,a=%d,b=%d\n”;inta=l1,b=10;a+=b;printf(format,"a+=b",a,b);for,"a+二b",abformat,“a+二b〃a+=b,a=21,b=10D、以上結(jié)果都不對【答案】C【解析】字符串常量是由雙引號括起來的一串字符,每一個(gè)字符串常量都分別占用內(nèi)存中一串連續(xù)的存儲空間,這些連續(xù)的存儲空間實(shí)際上就是字符型一維數(shù)組。8、下列關(guān)于sizeof說法錯(cuò)誤的是.A、sizeof運(yùn)算符可以獲取某個(gè)類型所占字節(jié)數(shù)B、sizeof運(yùn)算符可以獲取某個(gè)變量所占的字節(jié)數(shù)C、sizeof運(yùn)算符獲取某個(gè)變量的字節(jié)數(shù)與該變量的類型有關(guān)D、sizeof運(yùn)算符獲取某個(gè)變量的字節(jié)數(shù)與該變量的類型無關(guān)【答案】D9、有以下程序voidfun(chars[][10],intn){chart;inti,j;for(i=0;i<N-l;I++)for(j=i+l,j<N;J++)}/*比較字符串的首字符大小,并交換字符串的首字符*/if(s[i][0])>s[j][0]){t=s[i][0];s[i][O]=s[j][0];s[j][O]=t;)main()(charss[5][10]={abccM,"bbcc","xy","aaaacc","aabcc”};fun(ss,5);printf(w%s.%s”,ss[0],ss[4]);}程序運(yùn)行結(jié)果是OA、xy,aaaaccaaaacc,xyXCC,aabccace,xabcc【答案】D10、以下能正確計(jì)算1X2X3X?X10的程序段是。A^do{i=l;s=l;s=s*i;i++;}while(i<=10);B、do{i=l;s=0;s=s*i;i++;}while(i<=10);i=l;s=l;do{s=s*i;i++;}while(i<=10);i=l;s=0;do{s=s*i;i++;}while(i<=10);【答案】cIk以下程序中函數(shù)scmp的功能是返回形參指針si和s2所指字符串中較小字符串的首地址#include<stdio.h>^include<string.h>char*scmp(char*sl,char*s2)(if(strcmp(sl,s2)<0)return(si);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[l]));/*庫函數(shù)strcpy對字符串進(jìn)行復(fù)制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);)若運(yùn)行時(shí)依次輸入:abed、abba和abc三個(gè)字符串,則輸出結(jié)果為abedabbaC、abcD、abca【答案】B12、計(jì)算機(jī)中的數(shù)有浮點(diǎn)和定點(diǎn)兩種表示,浮點(diǎn)表示的數(shù),通常由兩部分組成,即?A、指數(shù)和基數(shù)B、尾數(shù)和小數(shù)C、階碼和尾數(shù)D、整數(shù)和小數(shù)【答案】C【解析】在計(jì)算機(jī)中,帶小數(shù)點(diǎn)的數(shù)通常有兩種表示方法,即定點(diǎn)數(shù)和浮點(diǎn)數(shù)。所謂浮點(diǎn)數(shù),是指小數(shù)點(diǎn)位置可以浮動(dòng)的數(shù)。一個(gè)二進(jìn)制的浮點(diǎn)數(shù)可以用階碼和尾數(shù)來表示。13、關(guān)于宏定義命令,敘述正確的是?A、在程序編譯前進(jìn)行宏替換B、在程序編譯時(shí)進(jìn)行宏替換C、在程序編譯后進(jìn)行宏替換D、在程序運(yùn)行時(shí)進(jìn)行宏替換【答案】A【解析】宏定義命令的一般格式是:define宏名一串符號,在程序清單中可以出現(xiàn)已經(jīng)定義過的“宏名”,稱為“宏調(diào)用”;當(dāng)對源程序清單進(jìn)行編譯之前,將把所有的“宏名”替換成對應(yīng)的“一串符號”,稱為“巖替換”。14、有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++){b[i]=a[i][i]-a[i][N-l-i];voidmain() {intx[N][N]=l,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,y[N],i;fun(x,y);for(i=0;iVN;i++)printf("%d,",y[i]);printf(〃\n");程序運(yùn)行后的輸出結(jié)果是—A、-12,-3,0,0,B、-3,-1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,【答案】B【解析】fun函數(shù)的功能是求出二維數(shù)組a中第i行第i個(gè)元素與第N1-i元素的差,賦給b[i]。在主函數(shù)中,把實(shí)參二維數(shù)組x和一維數(shù)組y傳遞給形參a和b,最后輸出一維數(shù)組y中元素的值。15、下列程序執(zhí)行后的輸出結(jié)果是main()(intx=,f';printf(*%c\n",'a'+(x」a*+1));A、GB、HC、ID、J【答案】D16、下列敘述中正確的是oA、break語句只能用于switch語句B、在switch語句中必須使用defaultC、break語句必須與switch語句中的case配對使用D、在switch語句中,不一定使用break語句【答案】I)【解析】break語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default語句的功能是如果所有case后面的語句都不執(zhí)行的時(shí)候,就轉(zhuǎn)去執(zhí)行default后的語句,它可以省略不寫。前面我們說過,break語何可以出現(xiàn)在循環(huán)語句中,所以選項(xiàng)C)也是錯(cuò)誤的。17、以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是main()int*p,*q,a,b;p=&a;printf("inputa:〃);scanf("%d",*p);}A^*p表示的是指針變量p的地址B、*p表示的是變量a的值,而不是變量a的地址C、*p表示的是指針變量p的值D、*p只能用來說明p是一個(gè)指針變量【答案】B【解析】考查格式輸入語句scanf的使用。本題經(jīng)過定義語句和賦值后,p表示的是變量a的地址,*p表示的是變量a的值。18、下列程序的輸出結(jié)果為.mainO|intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+l/2;printf("%f\n”,x);}A、27.000000B、27.500000C、28.000000D、28.500000【答案】A19、對二維數(shù)組的正確定義是.A,inta[][]={1,2,3,4,5,6};B、inta[2][]={1,2,3,4,5,6};C,inta[][3]={1,2,3,4,5,6};D、inta[2,3]={1,2,3,4,5,6};【答案】C20、相同結(jié)構(gòu)體類型的變量之間,可以.A、相加B、賦值C、比較大小D、地址相同【答案】B21、在c語言程序中,注釋部分從哪開始,到哪結(jié)束?()A、從"("開始到")"結(jié)束B、從REM開始無結(jié)束標(biāo)志C、無起始標(biāo)志D、從"/*"開始,"*/"結(jié)束【答案】I)【解析】c語言中的多行注釋從從“/*”開始,“*/”結(jié)束22、以下合法的賦值語句是A、X=Y=100B、D—;X+Y;C=INT(A+B)【答案】B23、對于if(表達(dá)式)語句,以下說法正確的是一A、“表達(dá)式”的值只能是整數(shù)值B、在“表達(dá)式”中不能調(diào)用返回整數(shù)的函數(shù)C、在“表達(dá)式”中不能含有函數(shù)調(diào)用D、“表達(dá)式”可以是算術(shù)表達(dá)式【答案】I)【解析】C語言規(guī)定,if(表達(dá)式)語句中的“表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式,甚至是數(shù)值表達(dá)式,允許函數(shù)調(diào)用,但調(diào)用函數(shù)的返回值必須符合要求,因此選項(xiàng)ABC錯(cuò)誤,選項(xiàng)D正確;本題答案為D24、以下()循環(huán)并非重復(fù)5次?A、inti;for(i=l;i<6;i++){}B、inti;for(i=0;i<5;i++){}C、inti;for(i=0;i<=5;i++){}D、inti;for(i=l;i<=5;i++){}【答案】C25、下列函數(shù)的功能是ointfunl(char*x)(char*y=x;while(*y++);return(y-x-1);}A、求字符串的長度B、比較兩個(gè)字符串的大小C、將字符串X復(fù)制到字符串丫D、將字符串X連接到字符串丫后面【答案】A26、表達(dá)式k=l*3?2:0的值是。A、3B、2C、1D、0【答案】B27、以下程序段給數(shù)組所有元素輸入數(shù)據(jù):mainO(inta[10],i=0;while(i<10)scanf;}應(yīng)在下劃線處填入的是。A、a+(i++)B、&a[i+l]C、a+iD、&a[++i]【答案】A28、以下表達(dá)式中,其值不等于數(shù)值3的是.A、0+'3'B、‘D'-'A'C、’3'-'0'D、'd'-a'【答案】A【解析】字符3的ASC碼值是51,所以選項(xiàng)A的值是■字符DA的ASC碼值是68、65,選項(xiàng)B結(jié)果為3;字符3、的AC碼值是51、48,選項(xiàng)C結(jié)果為3;字符d'的ASC碼值為:100、97,選項(xiàng)D結(jié)果為3,本題答案為A。29、下面各語句行中,能正確進(jìn)行字符串賦值操作的語句是A、charST[5]={*ABCDE*};B、charS[5]={'A','B','C,'D','E'};char*S;S="ABCDE”;char*S;scanf( ,S);【答案】c30、c語言可執(zhí)行程序從什么地方開始執(zhí)行?()A、程序中第一條可執(zhí)行語句B、程序中第一個(gè)函數(shù)C、程序中的main。函數(shù)D、包含文件中的第一個(gè)函數(shù)【答案】C31、設(shè)有如下函數(shù)定義:intf(chars[])(inti=0;while(s[i++]!='\0');return(i-l);)則輸出結(jié)果為.如果在主程序中用下面的語句調(diào)用上述函數(shù)則輸出結(jié)果為.A,3B、6C、8D、9【答案】C32、若有條件表達(dá)式(exp)a++:b-,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是A、(exp==O)B、(exp!=O)C、(exp==l)D、(exp!=l)【答案】B【解析】條件運(yùn)算符要求有3個(gè)操作對象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。并且注意++、--的用法。printf(*%d(++p)->x);printf(*%d",++(*p->y));102020506021516021607031【答案】c【解析】初始化后,aa[0].x賦值為50,aa[0].y指向dt[0];aa[l].x賦值為60,aa[l].y指向dt[l];aa[2].x賦值為70,aa[2].y指向dt[2];aa[3].x賦值為80,aa[3].y指向dt[3]。++p->x是將aa[0].x自增1,返回51;(++p)->x返回aa[l].x的值,即60;++(*p->y)將aa[l].y指向的dt[l]的值自增1,返回21。35、下列程序的輸出結(jié)果是.main()(inta=l,b=2;printf("%d,%d\nzz,-a,++b);A、1,2B、1,3C、0,2D、0,3【答案】I)【解析】本題主要考查自加(++)、自減(~)運(yùn)算符的使用?!?+i,■”在使用i之前,先使i的值加1或者減1,然后再使用i此時(shí)的值參與運(yùn)算;“i++,i-”是在使用i參與表達(dá)式運(yùn)算之后,再使i的值加1或者減10本題中一a和++b是先執(zhí)行a減1和b加1操作,再輸出表達(dá)式的值。while(--y);printf("%d\n”,y―);)A、-1B、1C、8D、0【答案】Ainta[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語句中的判斷表達(dá)式應(yīng)該是oA、p>sB、*p>*sC、a[p]>a[s]D、p-a>p-s【答案】B40、設(shè)有以下說明語句:structstu{inta;floatb;)suttype;則下面敘述不正確的是.A、struct是結(jié)構(gòu)體類型的關(guān)鍵字B、structstu是用戶定義的結(jié)構(gòu)體類型C、suttype是用戶定義的結(jié)構(gòu)體類型名D、a和b都是結(jié)構(gòu)體成員【答案】B【解析】stu是結(jié)構(gòu)體類型,suttype是該類型的變量名41、若要求在if后一對圓括號中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為.A、a<>0B、!aC、a=0D、a【答案】D42、在c語言中(以16位pc機(jī)為例),五種基本數(shù)據(jù)類型存儲空間長度的排列順序是.A、char<int<longint<=float<doubleB、char=int<longint<=float<doubleC、char<int<longint=float=doubleD、char=int=longint<=float<double【答案】A43、有以下程序:main(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf('%d”,d+++1);elseprintf("%d”,++d+l);printf("%d\n",d);)程序運(yùn)行后的輸出結(jié)果是OA、2B、3C、43D、44【答案】A【解析】本題考查嵌套if語句中else的配對。本題中else和第二個(gè)if即if(b>c)配對。由于a>b不成立,因此整個(gè)程序只輸出printf("%d\n".d),即輸出2.44>設(shè)有聲明語句:inta=l,b=0;則執(zhí)行以下語句后輸出()switch(a)case1:switch(b)case0:printf("”**0**〃");break;printf("”**1**"");break;printf("〃**2**"");break;**0****0****2****o****i****2**D、有語法錯(cuò)誤【答案】B45、函數(shù)調(diào)用:strcat(strcpy(strl,str2),str3)的功能是 。A、將串strl復(fù)制到串str2中后再連接到串str3之后B、將串strl連接到串str2之后再復(fù)制到串str3之后C、將串str2連接到串strl之后再將串strl復(fù)制到串str3中D、將串str2復(fù)制到串strl中后再將串str3連接到串strl之后【答案】D46、以下定義語句中正確的是.A、inta=b=O;B>charA=65+l,b=,b*;C、floata=l,*b=&a,*c=&b;D、doublea=0.0,b=l.1;【答案】B47、設(shè)charstr[100];inti=5;則引用數(shù)組元素的錯(cuò)誤形式的是str[I+10]?(srr+(str+I-1)D、*(&(str++)+【答案】D48、下列正確的標(biāo)識符是—A、_doB、6aC、%yD、a+b【答案】A49、宏定義用于將一個(gè)標(biāo)識符定義為一個(gè)A、常量B、字符串C、整數(shù)D、長整數(shù)【答案】B【解析】宏定義用于將一個(gè)標(biāo)識符定義為一個(gè)字符串50、對于用"r”方式打開文件下列說法正確的是.A、用"r”方式打開的文件只輸入不能輸出B、用"r”方式打開的文件只能輸出,不能輸入C、用"r”方式可以打開任何文件D、以上均不對【答案】AC語言程序設(shè)計(jì)專升本測試卷(三)一、單項(xiàng)選擇題(每小題2分,共100分)1、已知大寫字母a的ascii碼是65,小寫字母a的ascii碼是97,以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是。A、c=(c'A')%26+'a'c=c+32C、c=c-A'+'a,D、c=('A'+c)%26」a'【答案】I)【解析】由97-65=32可知大寫字母對應(yīng)的小寫字母之間相差32,所以將大寫字母加上32就得到小寫字母,所以選項(xiàng)B和C是正確的。選項(xiàng)A中(c」A')%26可以求出變量c中的字母與字母A相差幾位,那么小寫字母a的ASCII碼向后移動(dòng)相差的位數(shù)就是對應(yīng)的小寫字母,所以選項(xiàng)A也是正確的。2、與十進(jìn)制數(shù)245等值的二進(jìn)制數(shù)是A、11111110B、11101111C、11111011D、11101110【答案】A【解析】十進(jìn)制向二進(jìn)制的轉(zhuǎn)換采用“除二取余”法,本題計(jì)算過程如下。3、與"y=(x>0?l:xV0?T:0)”;的功能相同的if語句是A、if(x>0)y=l;B、if(x)elseif(x>0)y=l;elsey=0;elseif(x%0)y=T;elsey=0;y=-ly=0;if(x)if(x>=0)if(x>0)y=l;if(xi>=0)y=l;elseif(x==0)y=0;elsey=-l;elsey="l;【答案】B4、下面程序的運(yùn)行結(jié)果是.^include<stdio.h>mainO{inta=l,b=10;do(b-=a;a++;}while(b--<0);printf(*a=%d,b=%d\n*>a,b);)a=3,b=lla=2,b=8a=l,b=-la=4,b=9【答案】B【解析】本題考查兩個(gè)知識點(diǎn):自加自減運(yùn)算符和do-while循環(huán)語句。do-while循環(huán)條件是b—V0,所以循環(huán)體語句只執(zhí)行一次。5、以下程序運(yùn)行后的輸出結(jié)果是ttinclude<stdio.h>voidfun(inta,intb){intt;t=a;a=b;b^t;)main(){intc[10]=l,2,3,4,5,6,7,8,9,0,i;for(i=0;i<10;i+=2)fun(c[i],c[i+l]);for(i=0;i<10;i++)prinff(*%d, c[i]);printf(〃\n");A、1,2,3,4,5,6,7,8,9,0TOC\o"1-5"\h\zB、2, 1, 4, 3, 6, 5, 8, 7, 0, 9C、0, 9, 8, 7, 6, 5, 4, 3, 2, 1D、0, 1, 2, 3, 4, 5, 6, 7, 8, 9【答案】A【解析】fu■函數(shù)無值返回.main函數(shù)調(diào)用時(shí)數(shù)組元素作實(shí)參,形參的改變不會影響實(shí)參。因此,循環(huán)調(diào)用結(jié)束后,C數(shù)組沒有任何改變。6、設(shè)a為int型變量,執(zhí)行下列賦值語句后,a的取值分別為()a=125.534;a=20.0/3;a=20%3;a=(int)125%521%4;a=5<<2;A、125,6.666666,2,1,1B、125,6,2,1,1C、125.534,6.666666,2,1,20D、125,6,2,1,20【答案】D7、下面說明不正確的是chara[10]=*china*;chara[10],*p=a;p="china”char*a;a="china”;chara[10],*P;P=a="china”【答案】D【解析】C語言中操作一個(gè)字符串常量的方法有:①將字符串常量存放在一個(gè)字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來防問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時(shí),根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,將其轉(zhuǎn)換成字符指針°本題D)項(xiàng)中錯(cuò)誤的關(guān)鍵是對數(shù)組初始化時(shí),可以在變量定義時(shí)整體賦初值,但不能在賦值語句中整體賦值.8、若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的表達(dá)式為()。A、p+1B、a+1C、a++D、++p【答案】C9、以下選項(xiàng)中關(guān)于c語言常量的敘述錯(cuò)誤的是.A、所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量B、常量分為整型常量、實(shí)型常量、字符常量和字符串常量C、常量可分為數(shù)值型常量和非數(shù)值常量D、經(jīng)常被使用的變量可以定義成常量【答案】D10、以下不正確的定義語句是—unsignedinta=-100u;longb=OL;shortc2=0123;intd=0x0;【答案】A11、c語言程序的基本單位是.A、程序行B、語句C、函數(shù)D、字符【答案】C12、c語言的編譯系統(tǒng)對宏定義的處理是oA、在程序連接時(shí)進(jìn)行的B、在程序運(yùn)行時(shí)進(jìn)行的C、在對源程序中的其它語句進(jìn)行編譯前進(jìn)行的D、和C程序中的其它語句同時(shí)進(jìn)行編譯的【答案】C【解析】所謂“編譯預(yù)處理”就是在C編譯程序?qū)源程序進(jìn)行編譯前,由編譯預(yù)處理程序?qū)@些編譯預(yù)處理命令進(jìn)行處理的過程。宏定義屬于預(yù)處理命令,在對源程序中的其它語句進(jìn)行編譯前進(jìn)行的。本題答案為C選項(xiàng)。13、設(shè)有如下函數(shù)定義:intfun(intk)if(k<l)return0;elseif(k-l)return1;elsereturnfun(k-l)+1:若執(zhí)行調(diào)用語句:"n=fun(3);”,則函數(shù)fun總共被訶用的次數(shù)是A、2B、3C、4D、5【答案】B14、設(shè)有以下程序段:inta[5]=0,*p,*q;p=a;q=a;則下列選項(xiàng)中,合法的運(yùn)算是A、p+qB、p-qC、p*qD、p%q【答案】B【解析】本題考核指針的運(yùn)算。C語言中,指向同一字符串的指針之間能且只能進(jìn)行減運(yùn)算,減運(yùn)算后返回的是一整型數(shù),表示指針之間的地址偏移量。15、有以下程序voidsum(int*a)(a[0]=a[l];}main(){intaa[10]-{l,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i一一)sum(&aa[i]);printfCz%d\nzz,aa[0]);}執(zhí)行后的輸出結(jié)果是OA、4B、3C、2D、1【答案】A16、若a和b均是整型變量并已正確賦值,正確的switch語句是—A、15B、50C、55D、5【答案】C【解析】仔細(xì)觀察case后的語句,每個(gè)都沒有用break關(guān)鍵字;在switch語句中,是通過break關(guān)鍵字來退出switch語句的。而在題目中,case8:k++;后沒有break,則繼續(xù)執(zhí)行k+=2;這時(shí)還沒有break語句,繼續(xù)執(zhí)行,這時(shí)的k的值是33;一直執(zhí)行完k+=3;這時(shí)k的值是36;default語句是當(dāng)表達(dá)式的值與任一case子句中的值都不匹配時(shí),程序執(zhí)行default后面的語句。在題目中,因?yàn)樵趫?zhí)行完case10:k+=3;后還沒有break,所以要執(zhí)行k=k/j得k的值是2。break語句是用來退出循環(huán),并從緊跟該循環(huán)語句的第17、若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:()A、p=q*p二*qC>n=*qD、p=n【答案】D18、有如下程序main()(inta[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j]];printf(線d\n”,s);)該程序的輸出結(jié)果是OA、18B、19C、36D、26【答案】D19、設(shè)floatf[10];則f數(shù)組中下標(biāo)最大的元素的正確表示為f[10]f[0]f[9]f(9)【答案】C20、下面哪個(gè)不是關(guān)鍵字?A、intstructdefinecontinue【答案】C21、關(guān)于二進(jìn)制的說法中,正確的是oA、所有的信息只能用二進(jìn)制代碼來表示B、計(jì)算機(jī)一般都使用二進(jìn)制代碼,用它的某種信息編碼方式來表示信息C、ASCII是計(jì)算機(jī)用來表示文字符號的唯一一種二進(jìn)制代碼D、漢字在計(jì)算機(jī)內(nèi)使用漢字國標(biāo)碼來表示,不使用二進(jìn)制編碼【答案】B【解析】計(jì)算機(jī)不只是能用二進(jìn)制,還有八進(jìn)制、十進(jìn)制、十六進(jìn)制。22、以下符合c語言語法的實(shí)型常量是。A、1.2E0.5B、3.14.159EC,.5E-3D、E15【答案】C23、若函數(shù)調(diào)用時(shí)參數(shù)為基本數(shù)據(jù)類型的變量(俗稱簡單變量),以下敘述正確的是A、實(shí)參與其對應(yīng)的形參共占存儲單元B、只有當(dāng)實(shí)參與對應(yīng)的形參同名時(shí)才共占存儲單元C、實(shí)參與其對應(yīng)的形參分別占用不同的存儲單元D、實(shí)參將數(shù)據(jù)傳遞給形參后,立即釋放原先占用的存儲單元【答案】C24、已知:inta,b;下列switch語句中,()是正確的。A、switch(a)casea:a++;break;caseb:b++;break:B>switch(a+b)case1:a+b;break;case1:a-bC、switch(a*a)case1,2:++a;case3,4:++b:D>switch(a/10+b)case5:a/5:break:default:a+b;【答案】D25、若有以下定義和語句,則輸出結(jié)果是.int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf*p,**pp);10,2010,1020,1020,20【答案】D26、c語言源程序名的后綴是oA、cB、cpC、objD、exe【答案】A27、以下二維數(shù)組c的定義形式是A、intc[3]B、floatc[3,4]C、doublec[3][4]D、floatc3)4)【答案】c28、若變量已正確定義,表達(dá)式(戶3,j++)的值是A、3B、4C、5D、6【答案】A29、以下選項(xiàng)中關(guān)于c語言常量的敘述錯(cuò)誤的是oA、經(jīng)常被使用的變量可以定義成常量B、常量分為整型常量、實(shí)型常量、字符常量和字符串常量C、所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量D、常量可分為數(shù)值型常量和非數(shù)值型常量【答案】A30、下列敘述中正確的是oA、每個(gè)C語言程序文件中都必須要有一個(gè)main。函數(shù)B、在C語言程序中main。函數(shù)的位置是固定的C、C語言程序中所有函數(shù)之間都可以相互調(diào)用,與函數(shù)所在位置無關(guān)D、在C語言程序的函數(shù)中不能定義另一個(gè)函數(shù)【答案】A【解析】mam函數(shù)是C語言程序的主函數(shù),可以出現(xiàn)在程序中的任何位置。函數(shù)是C語言程序的基本模塊,函數(shù)內(nèi)部可以再定義其他函數(shù)。但函數(shù)間可相互調(diào)用,被調(diào)用的既可以是C語言提供的庫函數(shù),也可以是用戶自定義的函數(shù)。31、以下關(guān)于字符串的敘述中正確的是。A、空串比空格打頭的字符串小B、兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較C、可以用關(guān)系運(yùn)算符對字符串的大小進(jìn)行比較D、C語言中有字符串類型的常量和變量【答案】A【解析】字符串比較大小是以第1個(gè)不相同字符的大小為標(biāo)準(zhǔn)的,跟長度沒有關(guān)系,B選項(xiàng)不正確;字符串比較大小除了使用庫函數(shù)strc3()以外,就只能靠自己寫代碼來實(shí)現(xiàn)了,而不能通過關(guān)系運(yùn)算符來比較大小。因?yàn)樽址诒磉_(dá)式中相當(dāng)于constchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運(yùn)算符會將兩個(gè)字符串的首地址值比較大小,這是毫無意義的。C選項(xiàng)不正確。C語言中只有字符串常量而沒有字符串變量,D選項(xiàng)描述不正確;空串的長度為0,而以空格打頭的字符串的長度至少為■因此A選項(xiàng)是正確。32、在下列給出的表達(dá)式中,與while(e)中的(e)不等價(jià)的表達(dá)式是.A、(!E=0)B、(E>0||E<0)C、(E=0)D、(E!=0)【答案】B33、以下正確的說法是.A、實(shí)參和與其對應(yīng)的形參各占用獨(dú)立的存儲單元B、實(shí)參和與其對應(yīng)的形參共用一個(gè)存儲單元C、只有當(dāng)實(shí)參和與其對應(yīng)的形參同名時(shí)才共用存儲單元D、型參是虛擬的,函數(shù)在沒有被調(diào)用時(shí),不占用存儲單元【答案】I)【解析】形參在個(gè)數(shù)和類型上要與實(shí)參匹配,形參在未被調(diào)用之前,不占用存儲單元。34、有以下程序structstu{charname[10];intnum;floattotalscore;);voidf(structstu*p)(structstus[2]={{*sundan*,20044,550},{*penghua*,20045,537}},*q=s;++P;++q;*p=*q;)mainO(structstus[3]={{"yangsan”,20041,703},{"lisiguo”,20042,580}};f(s);printfC%s%d%3.Of\nz,,s[l].name,s[l].num,s[l].totalscore);}程序運(yùn)行后的輸出結(jié)果是OSunDan20044550Penghua20045537LiSiGuo20042580SunDan20041703【答案】B35、閱讀下面的程序main()(inti,j;charch;scanf(*%d%c%f*?&i,&ch,&j);printfC%d%2c%7.2f”,i,ch,j);}如果從鍵盤上輸入123al23x.12V回車〉則程序的運(yùn)行結(jié)果是。A、123al23.00B、123a123.12C、123al23.12D、123a123.00【答案】D36、以下描述中正確的是.A、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句B、do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式)后面不能寫分號C、在do-while循環(huán)體中,一定要有能使while后面表達(dá)式的值變?yōu)榱?"假")的操作D,do-while循環(huán)中,根據(jù)情況可以省略while【答案】C37、有以下程序main()(char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++)(j=0;while(p[i][j]!='\0z)(if((p[i][j]-'O')%2)num=10*num+p[i][j]-'O'j+=2;)}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是 。A、35B、37C、39D、3975【答案】c38、有以下程序:main(){intaa[4][4]={{l,2,3,4},{5,6,7,8],{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是oA、11B、19C、13D、20【答案】B39、以下一維數(shù)組a的正確定義是—A、intn=10,a[n];intn;ttdefineSIZE10scanf&n);inta[SIZE];inta[n];inta(10);【答案】c40、設(shè)有以下語句typedefstructtt{charc;inta[4];}cin;則下面敘述中正確的是.A、可以用TT定義結(jié)構(gòu)體變量B、TT是struct類型的變量C、可以用CIN定義結(jié)構(gòu)體變量D、CIN是structTT類型的變量【答案】D41、下列不是合法的c語言語句是.A、a=5inti;i++;C、;D、;【答案】A【解析】選項(xiàng)A)是一個(gè)表達(dá)式,它后面沒有分號結(jié)尾(C語言中規(guī)定語句必須以分號結(jié)束),所以它不是語句;選項(xiàng)B)用一個(gè)花括號把幾條語句括起來了,這是一個(gè)復(fù)合語句;選項(xiàng)C)中只有一個(gè)分號,是一個(gè)空語句;選項(xiàng)D)是個(gè)復(fù)合語句,也是一個(gè)空語句。42、若已定義x和y為int類型,若x=l,y=x+3/2,則y的值是。A、1B、2C、2.0D、2.5【答案】B43、若a的值為3時(shí),下列程序段被執(zhí)行后,c的值是ointc=1;if(a>0)if(a>3)c=2;elsec=3;elsec=4;A、1B、2C、3D、4【答案】c【解析】此題主要考查if-else的使用,當(dāng)if語句中的條件為真時(shí)執(zhí)行后的語句,并跳過else執(zhí)行下面的語句;當(dāng)條件為假時(shí)執(zhí)行else后的語句。44、要求通過while循環(huán)不斷讀人字符,當(dāng)讀入字母n時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是oA、while((ch=getchar())!=,N*)printf(w%c”,ch);B>while(ch=getchar()!=,)printf(w%c”,ch);C>while(ch=getchar()=,N*)printf(w%c”,ch);D>while((chgetchar())==,N*)printf(w%c”,ch);【答案】A45、fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下劃線處應(yīng)填寫的是.ttdefineN5voidfun(intx[N]){intm;for(m=N-t;m>=0;m-)scanf ;)%&X[++m]&x[m+l]C、x+(m++)D、x+m【答案】D46、與數(shù)學(xué)式子3乘以x的n次方/(2xT)對應(yīng)的c語言表達(dá)式是—3*x*n/(2*x-l)3*x**n/(2*x-l)C、3*pow(x,n)*(1/(2*x-l))D、3*pow(n,x)/(2*x-l)【答案】c47、c語言中,數(shù)組名代表oA、數(shù)組全部元素的值B、數(shù)組首地址C、數(shù)組第一個(gè)元素的值D、數(shù)組元素的個(gè)數(shù)【答案】B48、在c語言中,字符型數(shù)據(jù)在內(nèi)存中以()形式存放。A、補(bǔ)碼ASCII碼C、反碼D、原碼【答案】B49、以下正確的字符串常量是.A、"\\"B、'abc"OlympicGamesD、'A'【答案】A50、main(intargc,char*argv[]){while(-argc>0)printf(z/%sz,,argv[argc]);printf("\n");假定以上程序經(jīng)編譯和連接后生成可執(zhí)行文件prog,exe,如果在此可執(zhí)行文件所在目錄的dos提示符下鍵入:progabcdefghijkl/,則輸出結(jié)果為ABCDEFGIJHLABCDEFGHIJKLIJKLABCDEFGH【答案】CC語言程序設(shè)計(jì)專升本測試卷(四)一、單項(xiàng)選擇題(每小題2分,共100分)1、在c語言中,要求運(yùn)算數(shù)必須是整數(shù)的運(yùn)算符是—A、<B、%C、/D、>【答案】B2、在c語言系統(tǒng)中,假設(shè)int類型數(shù)據(jù)占2個(gè)字節(jié),則double、long、unsignedint、char類型數(shù)據(jù)所占字節(jié)數(shù)分別多少()。A、8,2,4,1B、2,8,4,1C、4,2,8,1D、8,4,2,1【答案】D3、下列if語句中,不正確的是oA、if(x>y);B、if(x==y)x+=y;C、if(x!=y)scanf&x)elsex=l;D、if(x【答案】C4、有以下程序:mainO{ints=0.n;for(n=0;n<3;n++)(switch(s)(case0;easel:s+=l;case2:s+=2;break;case3:s+=3;default:s+=4;)printf(“%d,"s);})程序運(yùn)行后的輸出結(jié)果是o1,2,4,1,3,6,C>3,10,14,D、3,6,10,【答案】c5、c語言源程序的基本單位是0A、過程B、函數(shù)C,子程序1)、標(biāo)識符【答案】B6、若有定義inta-2;則執(zhí)行完語句a/=a*a;后,a的值是。A、0.5B、0C、1/2I)、1/4【答案】B7、設(shè)有下面的程序段:chars[]="china";char*p=s;則下列敘述正確的是A、數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等B、s和p完全相同C、s數(shù)組長度和p所指向的字符串長度相等D,*p與s[0]相等【答案】D8、算法的每一步都是可執(zhí)行的,都是可以實(shí)現(xiàn)的,指的是算法的()特點(diǎn)A、確定性B、有窮性C、可行性D、輸出【答案】C9、設(shè)有字符串a(chǎn)="hehas錢!",則該字符串的長度為(兀A、9B、10C、11D、8【答案】B10、已知:intn=10;在下列定義引用的語句中,正確的是.int&x=n;intx=&n;int&x;int&x=&n;【答案】A【解析】引用是個(gè)別名,建立引用后,引用即作為目標(biāo)的別名而使用,對引用的改動(dòng)實(shí)際上就是對目標(biāo)的改動(dòng)。要求引用的聲明語句要同時(shí)包括變量的數(shù)據(jù)類型、引用操作符“&”、引用名、賦值符號和目標(biāo)名。引用在聲明時(shí)必須進(jìn)行初始化,一旦初始化,便不能作為其他變量的引用而使用。11、若有以下定義和語句:char*sl="12345。*s2="1234";printf("%d\n",strlen(strcpy(si,s2)));則輸出結(jié)果是oA、4B、5C、9D、10【答案】A【解析】函數(shù)strcpy(sl,s2)的返回結(jié)果是指針si的新值"1234",因此求串長函數(shù)的結(jié)果為4。12>若已定義x和y是整型變量,x=2;,則表達(dá)式y(tǒng)=2.75+x/2的值是?A、5.5B、5C、3D、4.0【答案】C13、以下敘述中正確的是.A、不能用字符串常量對字符數(shù)組名進(jìn)行整體賦值操作B、字符串常量"Hell」會被隱含處理成一個(gè)無名字符型數(shù)組,它有5個(gè)元素C、charstr[7]="string!”;在語法上是合法的,運(yùn)行也是安全的D、char*str;str="Hello”;與charstr口;str="Hello”;效果是一樣的【答案】A【解析】字符數(shù)組在定義時(shí)可以用字符串賦初值,其后就不可以再用字符串常量進(jìn)行賦值。答案選擇A。14、以下程序有語法錯(cuò)誤,有關(guān)錯(cuò)誤原因的正確說法是mainO(intg=5,k;voidprt_char();k=prt_char(g);A、語句voidprt_char();有錯(cuò),它是函數(shù)調(diào)用語句,不能用void說明B、變量名不能使用大寫字母C、函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾D、函數(shù)名不能使用下劃線【答案】C【解析】在C語言中,對于返回值是其他類型的函數(shù),若把函數(shù)定 調(diào)用之后,應(yīng)該在調(diào)用之前對函數(shù)進(jìn)行說明,或稱為函數(shù)原型說明。函數(shù)說明句中的類型必須與函數(shù)返回類型一致,函數(shù)說明可以是一條獨(dú)立的語句,也可以與普通變量一起出現(xiàn)在同一個(gè)語句中。對于函數(shù)值為整型的函數(shù)的說明,prtchar中定義時(shí)是void類型,那天返回值與k=prtchar();矛盾。所以本題的錯(cuò)誤之處在于“函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾。”15、有以下程序^include<stdio.h>main()(inta=2,b=3,c=4;a*=16+(b++)-(++c);printf(*%d\n”,a);}程序運(yùn)行后的輸出結(jié)果是。A、28B、30C、15D>14【答案】A16、以下選項(xiàng)中哪些描述是不正確的?A、循環(huán)語句必須要有終止條件否則不能編譯B、break關(guān)鍵字用于跳出當(dāng)前循環(huán)C、continue用于終止本次循環(huán),執(zhí)行下一次循環(huán)D、switch條件語句中可以使用break【答案】A17、下面描述正確的是.A、兩個(gè)字符串包含的字符個(gè)數(shù)相同時(shí),才能比較字符串B、字符個(gè)數(shù)多的字符串比字符個(gè)數(shù)少的字符串大C、字符串"STOP"與"STOP■”相等D、字符串"That"小于字符串"The”【答案】D18>下面程序段的運(yùn)行結(jié)果是.intn=0;while(n++<=2);printfn);A、2B、3C、4D、有語法錯(cuò)【答案】C19、下面程序段的功能是?!璱nta[]={4,0,2,3,1),i,j,t;for(i=0;<5;i++){t-a[i];j=i;j—;)while(j>=O&&t>a[j])(a[j+l]=a[j]:J—;a[j+l]=t;}A、對數(shù)組a進(jìn)行插入排序(升序)B、對數(shù)組a進(jìn)行插入排序(降序)C、對數(shù)組a進(jìn)行選擇排序(升序)D、對數(shù)組a進(jìn)行選擇排序(降序)【答案】H【解析】本題考查數(shù)組的使用,注意插入排序方法。20、c語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,=A、所有成員一直駐留在內(nèi)存中B、沒有成員駐留在內(nèi)存中C、部分成員駐留在內(nèi)存中D、只有一個(gè)成員駐留在內(nèi)存中【答案】A21、若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是一A、-3B、9C、-12D、6【答案】C22、將十進(jìn)制數(shù)0.625轉(zhuǎn)換成二進(jìn)制數(shù)是。A、0.IllB、0.101C、0.5D、0.A【答案】B23、下面不正確的描述為oA、調(diào)用函數(shù)時(shí),實(shí)參可以是表達(dá)式B、調(diào)用函數(shù)時(shí),實(shí)參與形參可以共用內(nèi)存單元C、調(diào)用函數(shù)時(shí),將為形參分配內(nèi)存單元D、調(diào)用函數(shù)時(shí),實(shí)參與形參的類型必須一致【答案】B【解析】函數(shù)調(diào)用時(shí)用實(shí)參替換形參,如果實(shí)參為表達(dá)式,將為表達(dá)式的值創(chuàng)建一個(gè)臨時(shí)對象,然后將該實(shí)參替換形參。替換的實(shí)質(zhì)是變量間的拷貝當(dāng)然這種拷貝需要為形參分配內(nèi)存。需要注意的是:形參在編譯時(shí)不分配內(nèi)存,在運(yùn)行時(shí)才分配內(nèi)存。24、下面的程序mainO(inta=2;do(printf("%d\n”,a-=2);)while(!(一a));A、輸出的是0B、輸出的是0和-3C、輸出的是3和0D、是死循環(huán)【答案】A25、設(shè)有定義:intnl=0,n2,*p=&n2,*q=&nl;,以下賦值語句中與n2=nl;語句等價(jià)的是*p=*q;p=q;*p=&nl;p=*q;【答案】A26、下列定義不正確的是oA、#definePI3.141592#defineS345C、intmax(x,y);intx,y;{}D、staticcharc;【答案】c27、以下敘述中錯(cuò)誤的是.A、對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出B、數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變C、當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界”的出錯(cuò)信息D、可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)【答案】C28、關(guān)于c語言中數(shù)的表示,以下敘述中正確的是.A、只有整型數(shù)在允許范圍內(nèi)能精確無誤地表示,實(shí)型數(shù)會有誤差B、只要在允許范圍內(nèi)整型數(shù)和實(shí)型數(shù)都能精確地表示C、只有實(shí)型數(shù)在允許范圍內(nèi)能精確無誤地表示,整形數(shù)會有誤差D、只有用八進(jìn)制表示的數(shù)才不會有誤差【答案】A29、設(shè)有兩個(gè)字符串p和q,其中q是p的子串,把q在p中首次出現(xiàn)的位置作為子串q在p中位置的算法稱為(43)?A、求子串B、匹配C、連接D、求串長【答案】B【解析】本題考查對字符串進(jìn)行處理的算法。求子串是在一個(gè)主字符串中按一定的規(guī)則取出任意個(gè)連續(xù)的字符得到一個(gè)新■匹配是指求一個(gè)字符串是另一個(gè)字符串的子串,并返回子串首次出現(xiàn)的位連接是指把一個(gè)字符串的內(nèi)容連接到另一個(gè)足夠大的字符串的末尾。求串長就是統(tǒng)計(jì)字符串中有效字符的個(gè)數(shù)。30、設(shè)n=886,m=345,k='m+n,表達(dá)式l+&k的值是A、1232B、數(shù)據(jù)類型不匹配C、1+M+ND、346【答案】A【解析】[知識點(diǎn)]數(shù)據(jù)類型和主要文件類型也是一個(gè)宏替換命令,用來替換恢復(fù)所代表的內(nèi)容。所以表達(dá)式:1+&K也就變成了1+M+N,所以最后的結(jié)果應(yīng)該是:1232。經(jīng)過“&”運(yùn)算后,&K的值是1231,所以表達(dá)式的結(jié)果是1232。31、c語言中不可以嵌套的是—A、函數(shù)調(diào)用B、函數(shù)定義C、循環(huán)語句D、選擇語句【答案】B32、在標(biāo)準(zhǔn)ascii編碼表中,數(shù)字碼、小寫英文字母和大寫英文字母的前后次序是—A、數(shù)字、小寫英文字母、大寫英文亨母B、小寫英文字母、大寫英文字母、數(shù)字C、數(shù)字、大寫英文字母、小寫英文字母D、大寫英文字母、小寫英文字母、數(shù)字【答案】C【解析】在標(biāo)準(zhǔn)ASCH碼表中,數(shù)字碼、小寫英文字母和大寫英文字母的前后次序是:數(shù)字、大寫英文字母、小寫英文字母。33、下列函數(shù)中,用于向控制臺輸出信息的是?A、scanf()B、printfOC、sum()D、max()【答案】B34、有以程序#include<stdio.h>#include<string.h>typedefstruct(charname[9];charsex;floatscore[2];}stu;voidf(stua){stub={*zhao*,9m,,85.0,90.0};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}main(){stuc={"qian",'p',95.0,92.0};f(c);printf(*%s,%c,%2.Of,%2.0f\n”,,c.sex,c.score[0],c.score[1]);}程序的運(yùn)行結(jié)果是OA、Qian,f,95,92B、Qian,m,85,90C、Zhao,f,95,92D、Zhao,m,85,90【答案】A35、有以下程序:main(){intx=0,y=5,z=3;while(z―>0&&++x<5)y=y-l;printf("%d,%d,%d\n”,x,y,z);程序執(zhí)行后的輸出結(jié)果是。3,2,03o2.14,3,-15,2.-5【答案】B36、若有程序段:x=99;while(x-2)x—;則循環(huán)結(jié)束時(shí),x二oA、99B、2C、1D、0【答案】B37、設(shè)有定義:intx=0,*p;,立刻執(zhí)行以下語句,正確的語句是p=x;*p=x;p二NULL;*p=NULL;【答案】c38、下列程序的輸出結(jié)果是。#include<stdio.h>main()(union(intk;chari[2];)*s,a;s=&a;s->i[0]=0x39;s->i[l]=0x38;printf("%x\n”,s->k);38393938380039390038【答案】A39>設(shè)inta[10],*p=a;數(shù)組元素a[4]的正確引用是。A^*(p+4)B、p+4C^*p+4D、a+4【答案】A40、程序中有下面的說明和定義structabc(intx;chary;)structabcsi,s2;則會發(fā)生的情況是oA、編譯出錯(cuò)B、程序?qū)㈨樌幾g、連接、執(zhí)行C、能順利通過編譯、連接、但不能執(zhí)行D、能順利通過編譯、但連接出錯(cuò)【答案】A41,已知大寫字母a的ascii碼是65,小寫字母a的acsii碼是97。下列能將變量c中的大寫字

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論