版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
長春工程學(xué)院C語言程序設(shè)計(jì)專升本測試卷(一)總分:100分 考試時(shí)間:90分鐘注意事項(xiàng):>題目包括三大部分,單項(xiàng)選擇題,判斷題,編程題,請按要求在規(guī)定時(shí)間內(nèi)作答。>考試中途不能無端離場,否則視為放棄??荚囘^程中如遇問題請及時(shí)向監(jiān)考老師反饋。一、單項(xiàng)選擇題(每小題2分,共40分)1、以下說法錯(cuò)誤的是.A、C語言中的常量是指在程序運(yùn)行過程中經(jīng)常被用到的變量B、C語言中的常量是指在程序運(yùn)行過程中其值不能被改變的量C,C語言中的常量可以用一個(gè)符號名來代表D、C語言中的常量可以用宏來定義【答案】A【解析】C語言中的常量是指在程序運(yùn)行過程中其值不能被改變的量,它可以用宏來定義,用一個(gè)符號名代表,選項(xiàng)A錯(cuò)誤,選項(xiàng)BCD正確,本題答案A2,下列()是合法標(biāo)識(shí)符。_book5files+staticD、-3.14159【答案】A3、經(jīng)過以下語句定義后,表達(dá)式z+=x>y?++x:++y的值為。intx=l,y=2,z=3;A、2B、3C、6D、5【答案】c4、當(dāng)把以下四個(gè)表達(dá)式用作if語句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其它三個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是.A、k%2k%2==l(k%2)!=0!k%2==l【答案】D5、下列while循環(huán)的次數(shù)是owhile(inti=0)i―;A、0B、1C、5D、無限【答案】A6、與實(shí)際參數(shù)為實(shí)型數(shù)組名相對應(yīng)的形式參數(shù)不可以定義為.oA、floata[];float*a;floata;float(*a)[3];【答案】C7、設(shè)有定義:floata=2,b=4,h=3;以下c語言表達(dá)式與代數(shù)式l/2(a+b)計(jì)算結(jié)果不相符的是O(a+*h/2(l/2)*(a+*h(a+*h*l/2h/2*(a+【答案】D【解析】的運(yùn)算優(yōu)先級高于“/”的運(yùn)算優(yōu)先級,因此,在選項(xiàng)D)中,計(jì)算結(jié)果為0.25o8、以下程序的輸出結(jié)果是?charch[5]={'a','b','\0','c','\0'};printf(H%sM,ch);A、aB、bC、abD、abc【答案】c【解析】字符串總是以''0'作為串的結(jié)束符。有了'\0'標(biāo)志后,就不必再用字符數(shù)組的長度來判斷字符串的長度了。9、下面關(guān)于指針的說法中錯(cuò)誤的是?A、在指針定義的同時(shí)可以對其進(jìn)行初始化B、指針根據(jù)其所指向變量的類型的不同,所占用內(nèi)存大小也不同C、指針中存放的是內(nèi)存單元的地址D、相同類型的指針之間可以相互賦值【答案】B【解析】指針是一種用來存放其他變量地址的數(shù)據(jù)類型,它的聲明形式為:〈類型〉+〈變量名〉,可以在聲明的時(shí)候?qū)ζ溥M(jìn)行初始化。由于其存放的是內(nèi)存單元的地址,所以大小一般都是4個(gè)字節(jié)。10、以下正確的字符串常量是."\\"'abc'OlympicGamesD、'A'【答案】A11、以下程序的運(yùn)行結(jié)果是.#include<stdio.h>main()(inta[]={l,2,3,4,5,6,7,8,9,10,ll,12);int*p=a+5,*q=null;?q=8(p+5);printf(H%d%d\nw,*p,*q);)A、運(yùn)行后報(bào)錯(cuò)B、66C、611D、55【答案】A【解析】本題的考查點(diǎn)是通過指針引用數(shù)組元素。程序中沒有給q分配存儲(chǔ)單元,只是給它賦了一個(gè)NULL,所以程序的運(yùn)行結(jié)果是:611NULLpointerassignment,也就是運(yùn)行后報(bào)錯(cuò)。12、以下程序的輸出結(jié)果是o#include<stdio.h>intm=13;intfun(intx,inty){intm=2;return(x*y-m);)main()(inta=7,b=6;printf(h%dw,fun(a,b)/m);A、1B、3C、7D、10【答案】B【解析】本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)的作用域。在函數(shù)調(diào)用時(shí),當(dāng)全局變量和局部變量的名稱相同時(shí),在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7X6-2=40,而fun(a,b)/m值為40/13=3。13、結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是oA、程序的規(guī)模B、程序的易讀性C、程序的執(zhí)行效率D、程序的可移植性【答案】B14、以下正確的說法是oA、定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)B,return后邊的值不能為表達(dá)式C、如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)D、如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)【答案】C【解析】選項(xiàng)A)中定義函數(shù)時(shí),形參的類型說明應(yīng)該放在形參表列內(nèi)說明。老版本C語言中,對形參類型的聲明是放在函數(shù)定義的第2行,也就是不在第1行的括號內(nèi)指定形參的類型,而在括號外單獨(dú)指定。選項(xiàng)B)中return后面的值可以是一個(gè)表達(dá)式。選項(xiàng)D)中實(shí)參與形參的類型應(yīng)相同或賦值兼容。如果實(shí)參為整型而形參為實(shí)型,或者相反,則按不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換,以形參類型為準(zhǔn)。15、以下程序的輸出結(jié)果是。^include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf(w%dH,(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}A、11B、12C、13D、15【答案】B16、運(yùn)行下面程序時(shí),若從鍵盤輸入數(shù)據(jù)為"123",則輸出結(jié)果是.^include"stdio.hnvoidmain(){intnum,i,j,k,place;scanf(H%dM,&num);if(num>99)place=3;elseif(num>9)place=2;elseplace=l;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(place)case3:printf("%d%d%d\nw,k,j,i);break;case2:printf(M%d%d\nw,k,j);break;case1:printf(M%d\nM,k);A、123B、1,2,3C、321D、3,2,1【答案】c17、當(dāng)定義一個(gè)結(jié)構(gòu)體變量時(shí),系統(tǒng)分配給它的內(nèi)存是—A、各成員所需內(nèi)存量的總和B、結(jié)構(gòu)中第一個(gè)成員所需內(nèi)存量C、結(jié)構(gòu)中最后一個(gè)成員所需內(nèi)存量D、成員中占內(nèi)存量最大者所需的容量【答案】A18、閱讀下面的程序#include<stdio.h>voidmain()(inti,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d,,i,j,m,n);)程序的運(yùn)行結(jié)果是.A、8,10,8,10B、9,11,8,10C,9,11,9,10D,9,10,9,11【答案】C19、有語句charstrl[10],str2[10]={Mchinan};則能將字符串china賦給數(shù)組strl的正確語句是一 。strl={Mchinaw);strcpy(strl,str2);strl=str2;strcpy(str2,strl);【答案】B20、下列選項(xiàng)中屬于c語言構(gòu)造類型的是.A、指針類型B、空類型C、枚舉類型D、數(shù)組類型【答案】D【解析】構(gòu)造類型數(shù)據(jù)是由基本類型數(shù)據(jù)按一定規(guī)則組成的。C語言中的構(gòu)造類型數(shù)據(jù)只有3種,它們是數(shù)組類型、結(jié)構(gòu)體類型和共用體類型。故應(yīng)該選擇Do二、判斷題(每小題2分,共20分)()1、在標(biāo)準(zhǔn)C語言中,數(shù)組的下標(biāo)必須是常量,不允許是表達(dá)式?!敬鸢浮垮e(cuò)誤()2、變量被定義后,它不僅有一個(gè)確定的地址值,而且還會(huì)有一個(gè)確定的本身值。【答案】錯(cuò)誤()3,文件指針和位置指針都是隨著文件的讀寫操作在不斷改變。【答案】錯(cuò)誤()4、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句?!敬鸢浮垮e(cuò)誤()5、使用strcpy(字符數(shù)組,字符串)函數(shù)時(shí),字符數(shù)組長度沒有限制?!敬鸢浮垮e(cuò)誤()6,c程序是從函數(shù)開始執(zhí)行的?!敬鸢浮空_()7、數(shù)組定義后,數(shù)組名的值是一個(gè)地址,可以被修改?!敬鸢浮垮e(cuò)誤()8、若函數(shù)的返回值與return表達(dá)式類型不一致時(shí),以return表達(dá)式類型為準(zhǔn)?!敬鸢浮垮e(cuò)誤()9、若有說明語句char*p="itismine"則p變量中存放的是整個(gè)字符串【答案】錯(cuò)誤()10、c程序的執(zhí)行是從程序文件的第一個(gè)函數(shù)開始,到最后一個(gè)函數(shù)結(jié)束.()【答案】錯(cuò)誤三、編程題(每小題分,共40分)1、編寫程序:輸入一個(gè)圓半徑r,當(dāng)r>=0時(shí),計(jì)算并輸出圓的面積和周長,否則,輸出提示信息。(本題10分)【答案】Sinclude<stdio.h>ttdefinePI3.14intmain(void)(doubler,area,girth;printf(wpleaseinputr:\n,f);scanf(H%lfM,&r);if(r>=0){area=PI*r*r;girth=2*PI*r;printf(wtheareais%.2f\nw,area);printf(Hthegirthis%.2f\nw,girth);}elseprintf(HInputerror!\n'r);return0;2、編寫程序:從鍵盤上輸入兩個(gè)正整數(shù)x,y,求它們的最大公約數(shù)例如:如果從鍵盤上輸入24,36,程序的輸出應(yīng)為:maxis:12()(本題14分)【答案】#include<math.h>Winclude<conio.h>Sinclude<stdio.h>main()intx,y,t,i;printf("pleaseentertwonumbers:");scanfC%d,%d",&x,&y);if(x<y)(t=x;x=y;y=t;■t=x%y;while(t)(x=y;y=t;t=x%y;■printf("maxis:%d",y);)3、有以下學(xué)生信息,使用結(jié)構(gòu)體數(shù)組存儲(chǔ)這些信息structstudent{intnum;〃學(xué)號intcomputer;〃計(jì)算機(jī)成績}s[5]={{101,75},{103,80},{104,85},{106,90}};再輸入一條新記錄,插入到結(jié)構(gòu)體數(shù)組中,讓5條記錄按計(jì)算機(jī)成績升序有序?!据斎胄问健?個(gè)數(shù)據(jù)都使用空格分隔【輸出形式】分五行輸出數(shù)據(jù),每行數(shù)據(jù)均使用空格分隔【輸入樣例】10288【輸出樣例】每行數(shù)據(jù)均使用一個(gè)空格分隔,分五行輸出1017510380104851028810690(本題16分)【答案】^include<stdio.h>^include<stdlib.h>structstudent|intnum;〃學(xué)號intcomputer;〃計(jì)算機(jī)成績}s[5]={{101,75},{103,80},{104,85},{106,90}},tamp;intmain()迪_inti,j;scanf(w%d%dw,&s[4].num,&s[4].computer);ford=1;i<5;i++){|for(j=0;j<5-i;j++)if(s[j].computer>s[j+1].computer)tamp=s[j];s[j]=s[j+l];s[j+l]=tamp;for(j=0;j<5;j++)printf(H%d%d\nM,s[j].num,s[j].computer);長春工程學(xué)院C語言程序設(shè)計(jì)專升本測試卷(二)總分:100分 考試時(shí)間:90分鐘注意事項(xiàng):題目包括三大部分,單項(xiàng)選擇題,判斷題,編程題,請按要求在規(guī)定時(shí)間內(nèi)作答??荚囍型静荒軣o端離場,否則視為放棄??荚囘^程中如遇問題請及時(shí)向監(jiān)考老師反饋。一、單項(xiàng)選擇題(每小題2分,共40分)1、在C語言中,要求參加運(yùn)算的數(shù)必須時(shí)整數(shù)的運(yùn)算符是OA、/B、*C、%D、=【答案】C2、下面四個(gè)選項(xiàng)中,均是不合法的用戶標(biāo)識(shí)符的選項(xiàng)是oA、AP_0dofloatlaO _Ab-agoto int_123tempint【答案】C3、設(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【答案】D4、若a和b均是整型變量并已正確賦值,正確的switch語句是oA、switch(a+b); B、switch(a+b*3.0) C、switcha D、switch(a%b)【答案】D【解析】【命題目的】考查switch語句的用法。【解題要點(diǎn)】switch后的括號部分只能返回這幾種類型的值:int,byte,short和charo【錯(cuò)解分析】選項(xiàng)A)switch(a+b);中多了一個(gè)匕”號,注意觀察。選項(xiàng)switch(a+b*3.0)中括號的值不能為浮點(diǎn)型。選項(xiàng)C)switcha中switch后的判斷部分必須用括號括起來。5、定義如下變量:intn=10;則下列循環(huán)的輸出結(jié)果是while(n>7)printf(H%d\nn,n);}A、1098B、987C、10987D、9876【答案】B6、若定義語句:intb[]={1,2,3,4,5},*p=b;則表達(dá)式*p++的值是OA、1B、2C、b[0]的地址D、b[l]的地址【答案】A7、若有定義charw;intx;floaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為。floatcharC、intD、doub1e【答案】D8、有以下程序#include<string.h>main(){charp[]={'a','b','c'),q[10]={'a','b','c');printf("%d%d\n",strlen(p),strlen(q));)以下敘述中正確的是oA、在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長度都為3B、由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定,但q數(shù)組中字符串長度為3C、由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定,但p數(shù)組中字符串長度為3D、由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定【答案】A【解析】在給p和q數(shù)組賦初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,從題目中可以看出數(shù)組p和q都有3個(gè)字符,所以長度均為3。9,若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ù)不符,輸出為零值或不定值61,141,k=%dD,61,141,k=%12【答案】C10、下面描述正確的是OA,兩個(gè)字符串包含的字符個(gè)數(shù)相同時(shí),才能比較字符串B、字符個(gè)數(shù)多的字符串比字符個(gè)數(shù)少的字符串大C,字符串"STOP"與"STOP■"相等D、字符串"That"小于字符串"The"【答案】D11、設(shè)inta[10],*p=a;數(shù)組■元素a[4]的正確引用是A、*(p+4)B、p+4*p+4D、a+4【答案】A12、關(guān)于函數(shù)參數(shù),說法正確的是oA、實(shí)參與其對應(yīng)的形參各自占用獨(dú)立的內(nèi)存單元B、實(shí)參與其對應(yīng)的形參共同占用一個(gè)內(nèi)存單元C、只有當(dāng)形參與實(shí)參同名時(shí)才占用同一個(gè)內(nèi)存單元I)、形參是虛擬的,不占用內(nèi)存單元【答案】A13、將空格符賦給字符變量c,正確的賦值語句是c='\0'c=NULLC、c=0c=32【答案】D14、有以下程序^include<stdio.h>#include<stdlib.h>intfun(intn)(int*p;p=(int*)malloc(sizeof(int));*p=n;
return*p;main()inta;a=fun(10);printf("%d\n",a+fun(10));)程序的運(yùn)行結(jié)果是OA、B、10C、B、10C、D、20出錯(cuò)【答案】C15、有以下程序:fun(inta[],intm,intn){inti;for(i=m;i<n;i++)a[i+l]=a[i]+3;returna[i+l];}voidmain()inti,a[6]=2,4,6,8,10,12;fun(a,2,5);for(i=0;i<6;i++)printf(w%dw,a[i]);}程序運(yùn)行后輸出的結(jié)果是A、2469131524691215249121518249121415【答案】B16、下列4個(gè)關(guān)于c語言的結(jié)論中錯(cuò)誤的是.A、可以用dowhile語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)B,可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)C、可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)D,do-while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同【答案】D17、以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是。A、只能是整數(shù)?;?B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、可以是任意合法的表達(dá)式【答案】D【解析】本題考查的是邏輯運(yùn)算符。C語言中,邏輯運(yùn)算符的兩個(gè)運(yùn)算分量可以是任意合法的表達(dá)式。故本題應(yīng)該選擇D)。18、有以下程序#include<stdio.h>voidfun(char*a,char*b)(while(*a==,*')a++;while(*b=*a)(b++;a++;})main()(char*s="****a*b****”,t[80];fun(s,t);puts(t);)程序的運(yùn)行結(jié)果是oA、*****a*bB、a*bC、a*b****D、ab【答案】c19、設(shè)有數(shù)據(jù)定義語句"inta[200];",下列數(shù)組元素引用中下標(biāo)不越界的是。a[_l]a[201]a[0]a[200]【答案】C20、定義file*fp;則文件指針fp指向的是。A、文件在磁盤上的讀寫位置B、文件在緩沖區(qū)上的讀寫位置C、整個(gè)磁盤文件D、文件類型結(jié)構(gòu)體【答案】B二、判斷題(每小題2分,共20分)()1、表達(dá)式!(x>0y>0)等價(jià)于!(x>0)&&!(y>0).()【答案】正確()2、邏輯運(yùn)算符&& !的運(yùn)算順序是!優(yōu)先于&&優(yōu)先于||()【答案】正確()3、指向數(shù)組元素的指針只可指向數(shù)組的首元素【答案】錯(cuò)誤()4、以下程序段中,當(dāng)i大于10或者s大于20時(shí),循環(huán)結(jié)束?!敬鸢浮空_()5、字符常量與字符串是兩種不同的常量?!敬鸢浮空_()6,main函數(shù)是c語言的主函數(shù)?!敬鸢浮空_()7,對以下定義的二維數(shù)組table,其行下標(biāo)的取值范圍是[0,2],列下標(biāo)的取值范圍是[0,1],數(shù)組元素分別是:table[0][0]、table[0][l],table[l][0],table[1][1],table[2][0]和table[2][1],可以表示一個(gè)3行2列的矩陣。inttable[3][2];【答案】正確()8、函數(shù)定義在先、調(diào)用在后時(shí),vc++允許省略函數(shù)聲明。【答案】正確()9、數(shù)組定義中,數(shù)組名后是用方括號括起來的常量表達(dá)式,不能用圓括號?!敬鸢浮空_()10、要使用標(biāo)準(zhǔn)輸入、輸出函數(shù),正常情況下應(yīng)該在文件的開頭加上以下內(nèi)容:^include<stdio.h>或#include"stdio.h"o【答案】正確三、編程題(每小題分,共40分)1、編寫程序:輸出100?200之間既不能被3整除也不能被7整除的整數(shù)并統(tǒng)計(jì)這些整數(shù)的個(gè)數(shù),要求每行輸出8個(gè)數(shù)。(本題10分)【答案】#include<stdio.h>ttinclude<conio.h>ttinclude<stdlib.h>ttinclude<math.h>voidmain()(inti;/************foiind************/intn=0;for(i=100;i<=200;i++)(/************fourid************/if(i%3!=0&&i%7!=0)printf("%6d",i);n++;printf("\nNumbersare:%d\n",n);i '2、編寫程序:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?(本題14分)【答案】#include<stdio.h>intmain()(inti,j,k;printf(M\nw);for(i=l;i<5;i++){//以下為三重循環(huán)for(j=l;j<5;j++){for(k=l;k<5;k++){//確保i、j、k三位互不相同if(i!=k&&i!=j&&j!=k){printf("%d,%d,%d\n",i,j,k);【解析】有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?3、編寫程序:創(chuàng)建一個(gè)長度為n的鏈表,然后反向輸出該鏈表。(本題16分)【答案】#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedefstructLNode{int data;structLNode*next;}LNode,*LinkList;LinkListCreateList(intn);voidprint(LinkListh);intmain()|LinkListHead=NULL;intn;scanf("%d",&n);Head=CreateList(n);printf("剛剛建立的各個(gè)鏈表元素的值為:\ntt);print(Head);printf(M\n\nw);system(HpauseM);return0;)LinkListCreateList(intn)ILLinkListL,p,q;inti;L=(LNode*)malloc(sizeof(LNode));if(!L)return0;L->next=NULL;q=L;for(i=l;i<=n;i++)(p二(LinkList)malloc(sizeof(LNode));printf("請輸入第%d個(gè)元素的值:",i);scanf("%d",&(p->data));p->next=NULL;q->next=p;q=p;■returnL;)LinkListp=h->next;while(p!=NULL){printf(H%dM,p->data);p=p->next;長春工程學(xué)院C語言程序設(shè)計(jì)專升本測試卷(三)總分:100分 考試時(shí)間:90分鐘注意事項(xiàng):>題目包括三大部分,單項(xiàng)選擇題,判斷題,編程題,請按要求在規(guī)定時(shí)間內(nèi)作答。>考試中途不能無端離場,否則視為放棄。考試過程中如遇問題請及時(shí)向監(jiān)考老師反饋。一、單項(xiàng)選擇題(每小題2分,共40分)1、在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是0A、>B、++C、!=D、%【答案】D2、以下不能正確計(jì)算代數(shù)式值的c語言表達(dá)式是oA、l/3*sin(l/2)*sin(l/2)B、sin(0.5)*sin(0.5)/3C,pow(sin(0.5),2)/3D、1/3.0*pow(sin(1.0/2),2)【答案】A3、若有定義語句intb=2;則表達(dá)式(bVV2)/(3||b)的值是。A、4B、8C、0D、2【答案】B4、c語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是oA、0B、0或1C、1D、T或'F'【答案】B5,下述關(guān)于break語句的描述中,()是不正確的。A、break語句可用于循環(huán)體內(nèi),它將退出該重循環(huán)break語句可用于switch語句中,它將退出switch語句break語句可用于對體內(nèi),它將退出if語句D、break語句在一個(gè)循環(huán)體內(nèi)可以出現(xiàn)多次【答案】C6,若有定義:,inta[2][3];",則對a數(shù)組的第i行第j列元素的正確引用為()。A,*(*(a+i)+j)Bs(a+i)[j]C,*(a+j+j)*(a+i)+j【答案】A7、設(shè)整型變量a為5,使b不為2的表達(dá)式是ob=a/2b=6~(―a)b=a%2D、b=a>3?2:1【答案】C8、對于代碼charcl[8];scanf(M%sw,cl);printf(M\n%sM,cl);在程序運(yùn)行時(shí),輸入了"thisprettyboy”,則對應(yīng)的運(yùn)行輸出顯示結(jié)果是。thisprethisthisprettyboyD、數(shù)組越界,不能顯示【答案】B9、c程序中的宏展開是在oA、編譯時(shí)進(jìn)行的B,程序執(zhí)行時(shí)進(jìn)行的C、編譯前預(yù)處理時(shí)進(jìn)行的D、編輯時(shí)進(jìn)行的【答案】C10、下列關(guān)于boolean類型的敘述中,正確的是.A、可以將boolean類型的數(shù)值轉(zhuǎn)換為int類型的數(shù)值B、可以將boolean類型的數(shù)值轉(zhuǎn)換為字符串C、可以將boolean類型的數(shù)值轉(zhuǎn)換為char類型的數(shù)值D、不能將boolean類型的數(shù)值轉(zhuǎn)換為其他基本數(shù)據(jù)類型【答案】D11、以下關(guān)于數(shù)組的描述正確的是。A、數(shù)組的大小是固定的,但可以有不同的類型的數(shù)組元素。B、數(shù)組的大小是可變的,但所有數(shù)組元素的類型必須相同。C、數(shù)組的大小是固定的,但所有數(shù)組元素的類型必須相同。D、數(shù)組的大小是可變的,但可以有不同的類型的數(shù)組元素?!敬鸢浮緾12、以下描述錯(cuò)誤的是。A、實(shí)參數(shù)可以與形參個(gè)數(shù)不一致。B、C程序中,函數(shù)可以直接或間接地調(diào)用自己。C、函數(shù)調(diào)用時(shí),函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致D、函數(shù)聲明語句中的類型必須與函數(shù)返回值得類型一致?!敬鸢浮緼13、以下關(guān)于c語言的敘述中正確的是。A、C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間B、C語言中的變量可以再使用之前的任何位置進(jìn)行定義C、在C語言算術(shù)的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致D、C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示【答案】B14、以下敘述正確的是oA、函數(shù)可以嵌套定義但不能嵌套調(diào)用B、函數(shù)既可以嵌套調(diào)用也可以嵌套定義C、函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用D、函數(shù)可以嵌套調(diào)用但不可以嵌套定義【答案】D【解析】考查函數(shù)的定義及其調(diào)用。[解題要點(diǎn)]在C語言中,所有的函數(shù)都是平行的,即在定義函數(shù)時(shí)是互相獨(dú)立的,一個(gè)函數(shù)并不從屬于另一個(gè)函數(shù),即函數(shù)不能嵌套定義,但可以互相調(diào)用,但不能調(diào)用main函數(shù)。[錯(cuò)解分析]函數(shù)不能嵌套定義,但可以嵌套調(diào)用,故選項(xiàng)A)、B)和C)中的描述都錯(cuò)誤。15、以下程序的輸出結(jié)果是.^defineN10voidfun(inta[],intn,intra)(inti;for(i=m;i>=n;i―)A[i+l]=a[i];}main(){inti,a[N]={l,2,3,4,5,6,7};fun(a,2,6);for(i=0;i<4;i++)printf(M%dn,a[i]);}1223123312441234【答案】B16、下面程序段執(zhí)行后輸出的結(jié)果是#include<stdio.h>main(){inti;for(i=l;i<8;i++)if(i%3){printf("*");continue;})printf(B#n);}printf(H\nw);*#*?#**#**#**#**#*?#**I)、**#**【答案】B【解析】#include<stdio.h>main(){inti;for(i=l;i<8;i++)/*循環(huán)條件為i<8,步進(jìn)值為1*/{{if(i%3){TOC\o"1-5"\h\zprintf("*");continue;}}/*如果能被3整除打印輸出"*",并跳過后面的語句直接執(zhí)行下次徨*/printf("#");/*如果不能被3整除打印輸出"#"*/}printf("Xn"); }17、以下對枚舉類型名的定義中正確的是?enuma={one,two,three};enum a{one=9 , two=-l, three} ;enum a={"one" , "two" , "three"} ;enum a{"one" , "two" , "three"} ;【答案】B18、有以下程序段intm=0,n=0;charc=1a1;scanf(M%d%c%d",&m,&c,&n);printf(M%d,%c,%d\nw,m,c,n);若從鍵盤上輸入:20b20/,則輸出結(jié)果是A、20,B,20B、20,b,2020,b,020,B,0【答案】A19、以下能正確定義一維數(shù)組的選項(xiàng)是oA、inta[5]={0.1,2.3.4,5);B、chara[]={0,1,2,3,4,5);C、chara二{'A','B','C');D、inta[5]="0123”;【答案】B20、下面說法正確的是.A、文件指針變量的值是文件當(dāng)前正在處理的字節(jié)地址B、文件指針變量的值是文件中包含的字符個(gè)數(shù)C、文件指針的類型是一種指針類型D、文件指針的類型是結(jié)構(gòu)體類型【答案】C【解析】文件指針變量的值是文件所在的地址,選項(xiàng)AB錯(cuò)誤;文件指針也是一種指針,屬于指針類型不是結(jié)構(gòu)體類型,選項(xiàng)C正確,D錯(cuò)誤;本題答案為C二、判斷題(每小題2分,共20分)()1、在C語言中,當(dāng)一個(gè)邏輯表達(dá)式的值為"假"時(shí),該表達(dá)式的值一定是0()【答案】正確()2、for語句的一般形式如下,若表達(dá)式2的值為"真",則先執(zhí)行循環(huán)體語句,再計(jì)算表達(dá)式3,然后繼續(xù)循環(huán)。【答案】正確()3、c程序中如果對一維數(shù)組的全部元素都賦初值,則定義數(shù)組時(shí)不必指定數(shù)組長度?!敬鸢浮空_()4、break語句可以用來跳出整個(gè)循環(huán)語句【答案】正確()5、chars="CLanguage";表示s是一個(gè)指向字符串的指針變量,把字符串的首地址賦予s【答案】正確()6、在一個(gè)c語言源程序中,main函數(shù)的位置可以不位于最開始?!敬鸢浮空_()7、若有定義一維數(shù)組inta[4]的首地址為0078h,則a[l]元素的首地址是0079h(設(shè)int型數(shù)據(jù)占兩個(gè)字節(jié))?!敬鸢浮垮e(cuò)誤()8、輸入操作稱為寫操作,將輸入流中的信息存到內(nèi)存時(shí),使用寫函數(shù)。【答案】錯(cuò)誤()9、putchar函數(shù)可以向終端輸出一個(gè)字符串【答案】錯(cuò)誤()10、在c程序中,若鏈接過程沒有發(fā)現(xiàn)任何錯(cuò)誤則表示鏈接成功,會(huì)生成一個(gè)".obj”文件。【答案】錯(cuò)誤三、編程題(每小題分,共40分)1、編寫程序:在第一個(gè)循環(huán)中給a數(shù)組的前10個(gè)數(shù)組元素依次賦..9.10;在第二個(gè)循環(huán)中使a數(shù)組前10個(gè)元素中的值按逆序存放,變成..2.1;在最后一個(gè)循環(huán)中輸出逆序存放以后的a數(shù)組前10個(gè)元素(本題10分)【答案】#include<stdio.h>main()IFinti,a[10],t;for(i=0;i<10;i++)a[i]=i+l;for(i=0;i<5;i++)腐t=a[i];a[i]=a[i]=a[9-i]; =t;■for(i=0;i<10;i++)printf("%5d",a[i]);printf("Xn");)2、編寫一個(gè)函數(shù),從傳人的m個(gè)字符中找出最長的一個(gè)字符串,并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。注意:部分源程序給出如下。請勿改動(dòng)main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:char*proc(char(*a)[81],intnum){)voidmain()(charss[10][81],*max;intn,i=0;printf("輸入若干個(gè)字符串:");gets(ss[i]);puts(ss[i]);while(!strcmp(ss[i].*****")=0)(i++;gets(ssei]);puts(ss[i]);)n=i;max=proe(ss,n);printf("\nmax=%s\n”,max);)(本題14分)【答案】char*proc(char(*a)[81],intm)char*max;inti=0:max=a[0]:for(i=O;i<m;i++)if(strlen(max)<strlen(a[i]))〃找出最長的字符串max=a[i];returnmax;〃返回最長字符串的地址)3、題目描述有10個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、3門課程的成績。讀入這10個(gè)學(xué)生的數(shù)據(jù),要求輸出3門課程的總平均成績,以及個(gè)人平均分最高的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、3門課程成績、平均分?jǐn)?shù))。輸入共有10行,每行包含了一個(gè)學(xué)生的學(xué)號(整數(shù))、名字(長度不超過19的無空格字符串)和3門課程的成績(0至100之間的整數(shù)),用空格隔開。輸出第一行包含了3個(gè)實(shí)數(shù),分別表示3門課程的總平均成績,保留2位小數(shù),每個(gè)數(shù)之后輸出一個(gè)空格。第二行輸出個(gè)人平均分最高的學(xué)生的數(shù)據(jù),與輸入數(shù)據(jù)格式相同。如果有多位個(gè)人平均分最高的學(xué)生,輸出按照輸入順序第一個(gè)最高分的學(xué)生數(shù)據(jù)。請注意行尾輸出換行。樣例輸入樣例輸出85.6087.9090.40105EEE929394(本題16分)【答案】#include<stdio.h>#include<string.h>structpeople{intnum,a,b,c;charname[10];};intinput(structpeoplestu[]){for(inti=0;i<10;i++)scanf(M%d%s%d%d%dH,&stu[i].num,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);intprint(structpeoplestu[]){doub1ex=0,y=0,z=0;for(inti=0;i<10;i++){x=x+stu[i].a*l.0;y=y+stu[i].b*l.0;z=z+stu[i].c*l.0;)for(inti=0;i<10;i++){if((stu[i].a+stu[i].b+stu[i],c)>=(stu[i+l].a+stu[i+l].b+stu[i+l].c)){stu[i+l]?num=stu[i]?num;strcpy(stu[i+l].name,stu[i].name);stu[i+l].a=stu[i].a;stu[i+l].b=stu[i].b;stu[i+l].c=stu[i].c;))printf(H%.2f%.2f%.2f\nw,x/10.0,y/10.0,z/10.0);printf(H%d%s%d%d%d\nw,stu[9].num,stu[9].name,stu[9].a,stu[9].b,stu[9].c);}intmain(){structpeoplestu[10];input(stu);print(stu);return0;長春工程學(xué)院C語言程序設(shè)計(jì)專升本測試卷(四)總分:100分 考試時(shí)間:90分鐘注意事項(xiàng):>題目包括三大部分,單項(xiàng)選擇題,判斷題,編程題,請按要求在規(guī)定時(shí)間內(nèi)作答。>考試中途不能無端離場,否則視為放棄??荚囘^程中如遇問題請及時(shí)向監(jiān)考老師反饋。一、單項(xiàng)選擇題(每小題2分,共40分)1、C語言中的標(biāo)識(shí)符第一個(gè)字符。A、必須為字母B、必須為下劃線C、必須為字母或下劃線D、可以是字母,數(shù)字和下劃線中任一種字符【答案】C2、設(shè)有定義intx;floaty;則10+x+y值的數(shù)據(jù)類型是。A、intdoublefloatD、不確定【答案】c【解析】由算術(shù)運(yùn)算符組成的表達(dá)式中,若含有不同類型的操作數(shù),則系統(tǒng)隱含地將低類型轉(zhuǎn)化為高類型,由低至高的順序?yàn)閕nt-float-double。3、若有"doublea;",則正確的輸入語句是。A、scanf a);B、scanf &a);C、seanf(M%lfn,&a);D、scanf(wlew,&a);【答案】B4、以下程序的輸出結(jié)果是o#include<stdio.h>main()inta=l,b=3;if((++a<0)&&!(b--<=0))printf(w%d,%d\nM,a,b);elseprintf(n%d,%d\nM,b,a);A、2,2B、1,3C、3,2D、3,1【答案】c【解析】解答本題的關(guān)鍵在于讀懂if語句條件中的表達(dá)式。初始時(shí)a=l,b=3,所以++a=2>0,因此++aVO為假,因?yàn)槭沁M(jìn)行邏輯與(&&)運(yùn)算,在&&的第一個(gè)運(yùn)算對象為假的前提下不用判斷第二個(gè)運(yùn)算對象的真假,就可以直接得出整個(gè)表達(dá)式的值為邏輯0,所以直接執(zhí)行else語句。5、有以下程序:main()(intc=0,k;for(k=l;k<3;k++)switch(k)(default:c+=k;case2:c++;break;case4:c+=2;break;}printf(M%d\nn,c);}程序運(yùn)行后的輸出結(jié)果是oA、3B、5C、7D、9【答案】A6、下列說法不正確的是.A、一個(gè)C語言源程序可以由一個(gè)函數(shù)組成也可以由多個(gè)函數(shù)組成B、main。中的“()”是函數(shù)的參數(shù)部分,括號內(nèi)可為空,但括號不能省略C、C語言程序是以函數(shù)為基本單位的D、在C語言程序中,注釋行只能位于一條語句的后面【答案】D【解析】本題涉及C語言基本的3個(gè)知識(shí)點(diǎn):①C語言是以函數(shù)為基本單位的,每一個(gè)函數(shù)完成相對獨(dú)立的功能,一個(gè)程序可以包括多個(gè)函數(shù),但有且僅有一個(gè)主函數(shù);②主函數(shù)main。的圓括號內(nèi)是填寫參數(shù)的,可以沒有參數(shù),但括號不可以省略:③程序的注釋部分應(yīng)該在"/* */”之間,它允許出現(xiàn)在程序的任何位置。7、下面不是c語言整型常量的是oA、081B、01C,-327680x81【答案】A【解析】本題考核整型變量的3種表示形式,選項(xiàng)B是一個(gè)八進(jìn)制數(shù);選項(xiàng)C是一個(gè)十進(jìn)制數(shù);選項(xiàng)D是一個(gè)十六進(jìn)制數(shù);選項(xiàng)A以。開始沒有跟字母x,但后面的數(shù)字8并不是八進(jìn)制中使用的數(shù)符,故選項(xiàng)A不是C語言的整型變量。inta[10];合法的數(shù)組元素的最小下標(biāo)值為一A、10B、9C、1D、0【答案】D9、以下選項(xiàng)中合法的實(shí)型常數(shù)是一A、5E2.0B、E-3C、2E0D、1.3E【答案】C【解析】本題考查實(shí)型常數(shù)的指數(shù)表示法,可以肯定的是指數(shù)不能為小數(shù)即必須為整數(shù)。由于符號E前面必須有數(shù)字。D在指數(shù)符號后面沒有數(shù)字,是錯(cuò)誤的。10、按照c語言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是oA、大寫字母B、連接符C、數(shù)字字符D、下劃線【答案】B【解析】C語言的標(biāo)識(shí)符要符合以下規(guī)定:①標(biāo)識(shí)符是個(gè)以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符串:②標(biāo)識(shí)符不能與任意一個(gè)關(guān)鍵字同名:③標(biāo)識(shí)符中的字母區(qū)分大小寫。故本題應(yīng)該選擇B。11、在下面語句中,其含義為"p為指向含n個(gè)元素的一維數(shù)組的指針變量"的定義語句是intp[n]int*p();C、int*p(n);int(*p)[n]【答案】D12、以下敘述正確的是。A、在C程序中,主函數(shù)必須位于程序的最前面B、在C程序中,一行只能寫一條語句C、C程序的基本結(jié)構(gòu)是程序行D、C語句是完成某種程序功能的最小單位【答案】D13、以下選項(xiàng)中不合法的標(biāo)識(shí)是。A、&aB、FORC、printD、_00【答案】A14、有以下函數(shù)intfun(char*s)(char*t=s;while(*t++);return(t-s);)該函數(shù)的功能是oA、比較兩個(gè)字符串的大小B、計(jì)算S所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)C,計(jì)算S所指字符串的長度D、將S所指字符串復(fù)制到字符串t中【答案】B【解析】循環(huán)語句while(*t++);執(zhí)行完時(shí),指針變量t就指向了字符串結(jié)束符'\0’之后的位置,所以語句return(t-s);返回的就是字符串s所用內(nèi)存的字節(jié)個(gè)數(shù)。15、以下程序段運(yùn)行結(jié)果是.intx=l,y=l,z=-l;x+=y+=z;printf(M%d\nM,x<y?y:x);A、1B、2C、4D、不確定的值【答案】A16、以下for語句中不是死循環(huán)的是oA、for(inti=0;i<l;i++);for(inti=0;i++);C、for(inti=l;i>0;++i);D、for(;;);【答案】A【解析】考查循環(huán)語句for的使用。[解題要點(diǎn)]for循環(huán)的一般格式為for(初始化部分;終止條件判斷部分;迭代部分){循環(huán)體;}說明如下:for循環(huán)開始時(shí),首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。[錯(cuò)解分析]在for語句中,如果省略了終止條件判斷部分,開且在語句中沒有break,或者是終止條件判斷部分始終沒有終止,都將出現(xiàn)死循環(huán)。[考點(diǎn)鏈接]for循環(huán)語句可由while循環(huán)語句來代替。17、若有以下說明語句:structdate(intyear;intmonth;intday;}brithday;則下面的敘述不正確的是.A、struct是聲明結(jié)構(gòu)體類型時(shí)用的關(guān)鍵字B、structdate是用戶定義的結(jié)構(gòu)體類型名C、brithday是用戶定義的結(jié)構(gòu)體類型名D、year,day都是結(jié)構(gòu)體成員名【答案】C18、有以下程序:main(){chara,b,c,d;scanf("%c,%c,%d,%dw,&a,&b,&c,&d);printf(M%c,%c,%c,%c\nM,a,b,c,d);)若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66V回車>,則輸出結(jié)果是oA、6,5,A,BB、6,5,65,666,5,6,5D、6,5,6,6【答案】A【解析】char型數(shù)據(jù)類型以刎的形式輸入時(shí),輸入的是ASCH值。65是字符A的ASCII碼值,66是字符B的ASCII值。19、以下程序的輸出結(jié)果是typedefunion{longx[2];inty[4];charz[8];}mytype;mytypethem;main(){printf(,,%d\n,r,sizeof(them));)A、32B、16C、8D、24【答案】C【解析】共用體所占存儲(chǔ)空間的大小是所有成員所占存儲(chǔ)單元的和;共用體變量所占存儲(chǔ)單元的大小是所有成員中占據(jù)存儲(chǔ)空間最大的成員所占存儲(chǔ)空間的大小。本題中字符數(shù)組成員z占8個(gè)字節(jié)的長度,長度最長,所以共用體變量them用sizeof計(jì)算長度為8。20、下面程序的輸出是omain()(structcmplx(intx;inty;)cnum[2]={l,3,2,7};printf("%d\n",cnum[0].y/cnumEO].x*cnum[l].x);)A、0B、1C、3D、6【答案】D二、判斷題(每小題2分,共20分)()1、使用statick定義的變量屬于靜態(tài)變量【答案】正確()2,十六進(jìn)制數(shù)0x11的十進(jìn)制數(shù)是17。【答案】正確()3、指針數(shù)組的每一個(gè)元素都是指針變量,且都指向相同的數(shù)據(jù)類型?!敬鸢浮空_()4,在c語言的嵌套循環(huán)結(jié)構(gòu)中,任何一層循環(huán)中的brea語句都可以結(jié)束整個(gè)嵌套循環(huán)的執(zhí)行?!敬鸢浮垮e(cuò)誤()5、用字符串常量給數(shù)組賦初值時(shí),如果提供的字符個(gè)數(shù)大于數(shù)組長度,則系統(tǒng)報(bào)錯(cuò)。【答案】正確()6、若定義時(shí),函數(shù)返回值類型為void,函數(shù)仍然可有return帶回返回值?!敬鸢浮垮e(cuò)誤()7、在定義數(shù)組時(shí),有時(shí)可以將該數(shù)組的維數(shù)省略。()【答案】正確()8、數(shù)組元素可以作為函數(shù)參數(shù).【答案】正確()9、在標(biāo)準(zhǔn)c中,變量定義一定要出現(xiàn)在函數(shù)開始部分【答案】錯(cuò)誤()10、編寫c語言程序的流程是:新建項(xiàng)目、添加源文件、編寫代碼、運(yùn)行程序。()【答案】正確三、編程題(每小題分,共40分)1、請編寫函數(shù)proc(),其功能是:計(jì)算并輸出下列多項(xiàng)式值。s=(l-l/2)+(1/3-1/4)+-+(1/(2n-l)-l/2n)例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為s=0.680803。注意:部分源程序給出如下。請勿改動(dòng)main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:^include<stdio.h>doubleproc(intn)()voidmain()(intn;doubleslim;printf("\ninputn:");scanf("%d",&n);sum=proc(n)?printfC\ns=%f\n",sum);}(本題10分)【答案】1.:doubleproc(intn)inti;doubles=0.0;//s為其和的變量for(i=l;i<=n;i++)s=s+(l.0/(2*i-l)-l.o/(2*i));//計(jì)算s=(1-1/z)+(l/3-1/4)+??,+(l/(2nT)T/2n)returns;//最后把所得到的和返回到主函數(shù)中)2、編寫程序,將用戶輸入的字符串中刪除所有的數(shù)字,然后輸出剩余的字符。(本題14分)【答案】#includevoidmain()(inti,j,nl;chara[20];printf("請輸入字符串:");gets(a);nl=strlen(a);for(i=0;i='0'&&a[i]<='9')==0)printf("%c",a[i]);printfC\n");I3、輸入5位同學(xué)的一組信息,包括學(xué)號、姓名、數(shù)學(xué)成績、計(jì)算機(jī)成績,求得每位同學(xué)的平均分和總分,然后按照總分從高到低排序。(本題16分)【答案】ftinclude<stdio.h>structmesI.intsno;charsname[20];floatgrade1;floatgrade2;floatsum;floatavg;}student[5]; /?定義結(jié)構(gòu)體變量數(shù)組*/intmain()inti,j,k;structmestemp;printf("請輸入五位學(xué)生的信息\n");printf("學(xué)號\t姓名\t數(shù)學(xué)\t計(jì)算機(jī)\n");for(i=0;i<5;i++)scanf(M%d\t%s\t%f\t%fn,&student[i].sno,student[i].sname,&student[i].gradel,&student[i].grade2);student[i].sum=student[i].gradel+student[i].grade2;student[i].avg=student[i].sum/2;} /*輸入每位學(xué)生間隔的信息時(shí)運(yùn)用Tab鍵*/for(i=0;i<4;i++)(k=i;for(j=i+1;j<5;j++)if(student[kLsum<student[j].sum)k=j;temp=student[k];student[k]=studentEi];student[i]=temp;)printf("學(xué)生成績的排序結(jié)果為:\n");for(i=0;i<5;i++)(printf("學(xué)號:%d,姓名:%s,數(shù)學(xué)成績:%3.If,計(jì)算機(jī)成:%3.lf:%3.If,分:%3.lf\n”,student[i].sno,student[i].sname,student[i].gradel,student[i],grade2,student[i].avg,student[i].sum);} /*顯示五位同學(xué)的信息*/return(0);長春工程學(xué)院C語言程序設(shè)計(jì)專升本測試卷(五)總分:100分 考試時(shí)間:90分鐘注意事項(xiàng):題目包括三大部分,單項(xiàng)選擇題,判斷題,編程題,請按要求在規(guī)定時(shí)間內(nèi)作答??荚囍型静荒軣o端離場,否則視為放棄??荚囘^程中如遇問題請及時(shí)向監(jiān)考老師反饋。一、單項(xiàng)選擇題(每小題2分,共40分)1、對于條件表達(dá)式(k)(i++):(i--)來說,其中的表達(dá)式k等價(jià)于()k==0k==lk!=0k!=l【答案】C【解析】條件表達(dá)式ele2:e3的含義是el為真時(shí),取表達(dá)式e2的值,否則取表達(dá)式e3的值,“為真”的意思就是不等于0。2、已知x=43,ch='a',y=0;則表達(dá)式x=y&&ch<'b'&&!y的值是。A、0B、語法錯(cuò)C、1D、"假"【答案】A3、未指定存儲(chǔ)類別的變量,其隱含的存儲(chǔ)類別為.autostaticexternregister【答案】A4,有以下程序:main()inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf(w%dff,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。5,設(shè)i,j,k均為int型變量,則執(zhí)行完下面的for循環(huán)后,k的值為for(i=0,j=10;i<=j;i++,j-)k=i+j;A、12B、10C、11D、9【答案】B6、下列敘述中正確的是。A、定義函數(shù)時(shí),形參的類型說明可以放在函數(shù)體內(nèi)B、return后邊的值不能為表達(dá)式C、如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)D、如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)【答案】C【解析】定義函數(shù)時(shí),形參的類型說明放在形參表列內(nèi)說明,或放在函數(shù)定義的第二行,函數(shù)體花括號“{”之前,所以選項(xiàng)A錯(cuò)。recurn后面的值可以是一個(gè)表達(dá)式,故選項(xiàng)B錯(cuò)誤。實(shí)參與形參的類型應(yīng)相同或賦值兼容。如果實(shí)參為整型而形參為實(shí)型,或者相反,則按不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換,以形參類型為準(zhǔn),故選項(xiàng)D錯(cuò)誤。7、有定義intn=789;下列表達(dá)式結(jié)果為8的是。A,n/10%2B、(n-n%10)/100C、n%10D、n%100/10【答案】D【解析】/比%的優(yōu)先級要高。注意:n/10%2的結(jié)果應(yīng)是0,n/10結(jié)果為78,用78在除以2求余則得0;(n-n%10)/100的結(jié)果應(yīng)是7,n%10得9,780/100得7;n%10的結(jié)果顯而易見是9。8,對于int*pa[5];的描述,以下哪個(gè)選項(xiàng)是正確的A、pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是五個(gè)int類型的指針B、pa是一個(gè)具有五個(gè)元素的指針數(shù)組,每個(gè)元素都是一個(gè)int類型的指針C、pa[5]表示某個(gè)數(shù)的第五個(gè)元素的值D、pa是一個(gè)指向某個(gè)數(shù)組中第五個(gè)元素的指針,該元素是int類型的變量【答案】B9,以下選項(xiàng)中表示一個(gè)合法的常量是(說明:符號n表示空格)a、9n9n9B、OXabC,123E0.2D、2.7e【答案】B10、下面程序段輸出兩個(gè)字符串中對應(yīng)相等的字符。請分析程序填空。charx[]="programming";chary[]="fortran";inti=0;while(x[i]!='\0'44y[i]!='\0')if(x[i]==y[i])printf("%c",);elsei++;A,x[i++]y[++i]x[i]y[i]【答案】A11、有以下程序main()charp[]={'a','b','c'),q[10]={'a','b','c');printf("%d%d\n",strlen(p),strlen(q));)以下敘述中正確的是oA、在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長度都為3B、由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3C、由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但p數(shù)組中字符串長度為3D、由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定【答案】B12、下列說法正確的是。A、在C程序中,main。函數(shù)必須位于程序的最前面B、在C程序中,一條語句只能寫一行而不能寫多行C、C程序是以行為基本單位的D、C語言本身沒有輸入輸出語句【答案】D【解析】本題涉及C語言最基本的4個(gè)知識(shí)點(diǎn):①C語言程序是由函數(shù)構(gòu)成的,C程序的基本單位是函數(shù);②每個(gè)C程序有且只有一個(gè)主函數(shù)main。,且程序必須從mainO函數(shù)開始執(zhí)行,但是main()函數(shù)可以放在程序中的任意位置;③C語言的書寫格式是自由的,一行可以寫多條語句,一條語句也可以寫在不同的行上:④C語言本身不提供輸入輸出語句,可以通過函數(shù)來實(shí)現(xiàn)輸入和輸出操作。13、以下敘述中不正確的是。A、一個(gè)好的程序應(yīng)該有詳盡的注釋B、在C程序中,賦值運(yùn)算符的優(yōu)先級最低C、在C程序中,j++;是一條賦值語句D,C程序中的#include和#define均不是C語句【答案】B14、下面程序段的運(yùn)行結(jié)果是.char*format="%s,a=%d,b=%d\n";inta=ll,b=10;a+=b;printf(format,wa+=bM,a,b);for,Ma+=bw,abformat,"a+=b"a+=b,a=21,b=10D、以上結(jié)果都不對【答案】C【解析】字符串常量是由雙引號括起來的一串字符,每一個(gè)字符串常量都分別占用內(nèi)存中一串連續(xù)的存儲(chǔ)空間,這些連續(xù)的存儲(chǔ)空間實(shí)際上就是字符型一維數(shù)組。15、運(yùn)行下面程序后,輸出是.#include<stdio.h>voidmain()(intk="3;if(k<=0)printf(M****\nw);elseprintf(M####\nw)####****####****D、有語法錯(cuò)誤不能通過編譯【答案】D16、有下列程序:main()(intk=5,n=0;while(k>0)(switch(k)(default:break;case1:n=n+k;case2:case3:n+=k;)k一;}printf(M%d\ntt,n);程序運(yùn)行后的輸出結(jié)果足。A、0B、4C、667【答案】D17、以下關(guān)于c語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是oA、若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型B、若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型C、整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的D、若要處理“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型【答案】A18、以下程序的輸出結(jié)果為°#include<stdio.h>intmain()(inti=l,j=l;printf(H%d%d\ntt,i,j++);}A、11B、12C、21D、22【答案】A19、定義如下變量和數(shù)組:intk;inta[3][3]={9,8,7,6,5,4,3,2,11;則下面語句的輸出結(jié)果是Ofor(k=0;k<3;k++)printf('r%d,r,a[k][k]);A、753B、951C、963D、741【答案】B【解析】本題中二維數(shù)組的每個(gè)元素就是一個(gè)由三個(gè)元素構(gòu)成的一維數(shù)組,根據(jù)條件for(k=0;k<3;k++)和要求的a[k][k]可以得出本題的答案應(yīng)該是951o20、有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b。則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語句是structnodechardata;structnode*next;a,b,*p=&a,*q=&b;next=q;next二&b;C、p—>next=&b;(*p).next=q;【答案】B【解析】要把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后,必須把b的地址給a的next指針,選項(xiàng)A中,指針變量q保存的就是變量b的地址,選項(xiàng)B中的p是指針變量,應(yīng)該是p->next=&b;在選項(xiàng)D中,用*運(yùn)算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址,所以正確。二、判斷題(每小題2分,共20分)()1、C程序設(shè)計(jì)語言是結(jié)構(gòu)化語言。【答案】正確()2、c語言規(guī)定,函數(shù)返回值的類型是由retun語句中表達(dá)式類型所決定的。()【答案】錯(cuò)誤()3、若有intk=1;while(k=l)k++;則while循環(huán)執(zhí)行的次數(shù)是1次【答案】錯(cuò)誤()4、do-while語句的一般形式如下,第一次進(jìn)入循環(huán)時(shí),首先執(zhí)行循環(huán)體語句,然后再檢查循環(huán)控制條件,即計(jì)算表達(dá)式,若值為"真",繼續(xù)循環(huán),直到表達(dá)式的值為"假",循環(huán)結(jié)束,執(zhí)行do-while的下一條語句。do循環(huán)體語句while(表達(dá)式);【答案】正確()5、定義char*string="string?"是將字符串的值賦給指針變量string<)【答案】錯(cuò)誤()6、用puts和gets函數(shù)可以輸入或輸出多個(gè)字符串?!敬鸢浮垮e(cuò)誤()7、c語言中,字符串常量存放在字符數(shù)組中要有一個(gè)結(jié)束符,該結(jié)束符是0?!敬鸢浮垮e(cuò)誤()8、在c語言中函數(shù)不可以嵌套定義,但可以嵌套調(diào)用。【答案】正確()9、當(dāng)函數(shù)的類型為int型時(shí),vc++允許省略函數(shù)聲明?!敬鸢浮空_()10、文件是否打開是可以判斷的。【答案】正確三、編程題(每小題分,共40分)1、要求輸出國際象棋棋盤。(本題10分)【答案】程序分析:用i控制行,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,還是白方格。程序源代碼:#include"stdio.h"main()ELinti,j;for(i=0;i<8;i++)for(j=0;j<8;j++)if((i+j)%2==0)printf("%c%c",219,219);elseprintf(ww);printf(M\nw);2、某班綜合考評,根據(jù)參加集體活動(dòng)的次數(shù)加分,規(guī)則如下:參加1次及以下:加1分;參加2至3次:加2分;參加4至7次:參加幾次加幾分;參加8至10次:加8分;參加10次以上:加10分。程序運(yùn)行時(shí)輸入某人參加活動(dòng)的次數(shù),則輸出其應(yīng)該加的分?jǐn)?shù);如果輸入為負(fù)值,則給出相應(yīng)提示。(本題14分)【答案】#include<stdio.h>voidmain()intcs,jf;printf("請輸入?yún)⒓踊顒?dòng)次數(shù):");scanf("%d”,&cs);if(cs<0)printf("你所輸入的活動(dòng)次數(shù)有誤!\nn);else(if(cs<=l)jf=l;elseif(cs<=3)jf=2;elseif(cs<=7)jf=cs;elseif(cs<=10)jf=8;elseprintf("此人參加活動(dòng)%d次,按規(guī)定應(yīng)該加%d分!\n",cs,jf);3、輸入n個(gè)朋友的信息,包括姓名、生日、電話號碼,本題要求編寫程序,按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。輸入格式:輸入第一行給出正整數(shù)n(<10)。隨后n行,每行按照''姓名生日電話號碼”的格式給出一位朋友的信息,其中“姓名”是長度不超過10的英文字母組成的字符串,“生日”是yyyymmdd格式的日期,“電話號碼”是不超過17位的數(shù)字及+、-組成的字符串。輸出格式:按照年齡從大到小輸出朋友的信息,格式同輸出。輸入樣例:3zhang1985040313912345678wang19821020+86ian1984061913609876543輸出樣例:wang19821020+86ian1984061913609876543zhang1985040313912345678(本題16分)【答案】#include<stdio.h>structmessagecharnamel[30];charname2[30];charname3[30];doubleprice;structmessaged[10];intmain()intN;scanf("%d",&N);inti,j;for(i=0;i<N;i++)scanf(M%s%s%sw,d[i].namel,d[i].name2,d[i].name3);scanf(M%lfprice);)intt,r;doublemax,min;max=min=d[0].price;for(j=0;j<N;j++)Kif(min>d[j].price)(min=d[j].price;t=j;}if(max<d[j].price)(max=d[j].price;r=j;printf(H%.21f,%s%s%s\nM,max,d[r].namel,d[r].name2,d[r].name3);printf(n%.21f,%s%s%s\nw,min,d[t].namel,d[t].name2,d[t].name3);return0;長春工程學(xué)院C語言程序設(shè)計(jì)專升本測試卷(六)總分:100分 考試時(shí)間:90分鐘注意事項(xiàng):題目包括三大部分,單項(xiàng)選擇題,判斷題,編程題,請按要求在規(guī)定時(shí)間內(nèi)作答??荚囍型静荒軣o端離場,否則視為放棄??荚囘^程中如遇問題請及時(shí)向監(jiān)考老師反饋。一、單項(xiàng)選擇題(每小題2分,共40分)1、若x和y都是int型變量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果是.A,200B、100C,100200D、輸出格式符不夠,輸出不確定的值【答案】A2,經(jīng)下列語句定義后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微機(jī)上的值分別為charx=65;floaty=7.3;inta=100;doubleb=4.5;2,2,2,41,2,2,41,4,4,82,4,2,8【答案】c3、以下選項(xiàng)中正確的定義語句是.doublea;b;doubla=b=7;doublea=7,b=7;double,a,b;【答案】c【解析】C語言規(guī)定,每個(gè)語句和數(shù)據(jù)定義以分號結(jié)束,則說明選項(xiàng)A是兩條語句,前一條是對變量a作雙精度型定義的語句,而后一個(gè)“b;”是一個(gè)缺少類型的不正確的定義形式,如果是定義多個(gè)變量,則應(yīng)用逗號隔開;當(dāng)定義多個(gè)變量賦同一個(gè)值時(shí),不能用等式連寫的方式,如選項(xiàng)B的''doublea=b=7;”應(yīng)寫成“doublea=7,b=7;”所以選項(xiàng)B錯(cuò)誤,選項(xiàng)C正確;在定義語句時(shí),類型與變量名之間應(yīng)用空格分隔,而不是逗號,所以選項(xiàng)D錯(cuò)誤。4、與y=(x>0?l:x<0?-l:0);的功能相同的if語句是.A、if(x>0)y=l;elseif(x<0)y="l;elsey=0;B、if(x)if(x>0)y=l;elseif(x<0)y=-l;elsey=0;y=-lif(x)if(x>0)y=l;elseif(x==0)y=0;elsey=-l;y=0;if(x>=0)if(x>0)y=l;elsey=l;【答案】A5、以下描述正確的是.A、goto語句只能用于退出多層循環(huán)。B、switch語句中不能出現(xiàn)continue語句。C,只能用continue語句來中止本次循環(huán)。D、在循環(huán)中break語句不能獨(dú)立出現(xiàn)?!敬鸢浮緾6、下列各定義數(shù)組的語句中不正確的是.A、inta[l][3];B,intx[2][2]={1,2,3,4};C,intx[2][]={1,2,4,6};D、intm[][3]={1,2,3,4,5};【答案】C【解析】請仔細(xì)閱讀交規(guī)難度:簡單7,若有以下說明:inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達(dá)式是*p+6*(p+6)*p+=5D、p+5【答案】c【解析】選項(xiàng)A,*p+6,其值等于1+6=7;選項(xiàng)B,*(p+6),其值等于a[6]=7;選項(xiàng)C,*p+=5,其值等于*p=*p+5=l+5=6;選項(xiàng)D,p+5是個(gè)地址值。8,以下能正確定義二維數(shù)組的是.inta[][3];inta[][3]={2*3};inta[][3]={};inta[2][3]={{1},{2},{3,4});【答案】Bc語言中,double類型數(shù)據(jù)占。A、1個(gè)字節(jié)B、2個(gè)字節(jié)C、4個(gè)字節(jié)D、8個(gè)字節(jié)【答案】D10、下列四組字符串中都可以用作c語言程序中的標(biāo)識(shí)符的是.print_3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 苗木變更協(xié)議書
- 苗木采伐協(xié)議書
- 蔬菜回收協(xié)議書
- 融資托管協(xié)議書
- 設(shè)備分包協(xié)議書
- 設(shè)備租借協(xié)議書
- 設(shè)計(jì)保密協(xié)議書
- 試工工合同范本
- 請it的合同范本
- 平移土方合同范本
- 2025云南省人民檢察院招聘22人筆試考試備考題庫及答案解析
- 2026年安全生產(chǎn)管理培訓(xùn)課件與事故預(yù)防與應(yīng)急處理方案
- 2026年長沙民政職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫及答案詳解一套
- 俄羅斯進(jìn)口凍肉合同范本
- 奇異的仿生學(xué)智慧樹知到期末考試答案2024年
- 中心靜脈導(dǎo)管堵塞原因及預(yù)防 護(hù)理講課比賽
- ERAS理念在肝切除治療肝癌中的應(yīng)用
- 【超星爾雅學(xué)習(xí)通】日本近現(xiàn)代文學(xué)選讀網(wǎng)課章節(jié)答案
- GB/T 40047-2021個(gè)體防護(hù)裝備運(yùn)動(dòng)眼面部防護(hù)滑雪鏡
- 2020年新編市場營銷16版復(fù)習(xí)重點(diǎn)全書名師精品資料
- 獸藥營銷課程資源庫獸藥產(chǎn)品策略課件
評論
0/150
提交評論