2021年呼倫貝爾某學(xué)院C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(十二套試卷)及答案_第1頁(yè)
2021年呼倫貝爾某學(xué)院C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(十二套試卷)及答案_第2頁(yè)
2021年呼倫貝爾某學(xué)院C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(十二套試卷)及答案_第3頁(yè)
2021年呼倫貝爾某學(xué)院C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(十二套試卷)及答案_第4頁(yè)
2021年呼倫貝爾某學(xué)院C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(十二套試卷)及答案_第5頁(yè)
已閱讀5頁(yè),還剩130頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(一)得益評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、下述C語(yǔ)言轉(zhuǎn)義符中()是非法的。A、'\b'B、''037'C、'\0xf'D、,\,,()2、若要對(duì)a進(jìn)行++運(yùn)算,則a應(yīng)具有下面說(shuō)明A、inta[3][2];char*a[]*12*,"ab";char(*a)[3];intb[10],*a=b;()3、下列if語(yǔ)句中,不正確的是.A、if(x>y);if(x==y)x+=y:if(x!=y)scanf&x)elsex=l;if(x()4、以下程序的輸出結(jié)果是o#include<stdio.h>main()(inti;for(i=l;i<5;i++){if(i%2)printf;elsecontinue;printf)printfC1$\n'');)+-+-+-$-+-+-+$+-+-$D、T—I-$()5、下列對(duì)c語(yǔ)言字符數(shù)組的描述中正確的是oA、任何一個(gè)一維數(shù)組的元素在引用時(shí),其下標(biāo)可以是整型、實(shí)型或字符型常量B、一維數(shù)組的元素實(shí)質(zhì)上就是一個(gè)變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元C、如果要引用數(shù)組中的每一個(gè)元素,則直接使用該數(shù)組名稱即使D、以上都不對(duì)()6、兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和4,則輸出結(jié)果是o#include<stdio.h>voidmain()(intx;scanf&x);if(x++>5)printf,x);elseprintf(飛d\n”,x—);)A、7和5B、6和3C、7和4D、6和4()7、下列關(guān)于字符串的說(shuō)法中錯(cuò)誤的是oA、在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,并規(guī)定以字符''0'作為字符串結(jié)束志B、’\0’作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長(zhǎng)度C、在表示字符串常量的時(shí)候不需要人為在其末尾加入''0'D、在C語(yǔ)言中,字符串常量隱含處理成以''0'結(jié)尾()8、下列描述中,正確的是。A、每個(gè)C程序必須在開頭使用預(yù)處理命令B、預(yù)處理命令必須位于C程序的開頭C、在C語(yǔ)言中,預(yù)處理命令都以〈開頭D、語(yǔ)言的預(yù)處理命令只能實(shí)現(xiàn)宏定義和條件編譯的功能()9、下列字符串中可以用作c標(biāo)識(shí)符的是o2009vargotoC、test-2009D、-123()10、在c語(yǔ)言中對(duì)一維整型數(shù)組的正確定義為oA、inta(10);B、intn=10,a[n];C^intn;a[n];D>ttdefineN10inta[N];()11、下面程序的輸出結(jié)果是.#include<stdio.h>intx=l;voidmain()(intx=2;printf("%d,",x);if(x==l)(intx=4;printf(*%d,*,x++);}printfx++);)A、2,21,1,22,4,3D、2,3()12、結(jié)構(gòu)化程序沒計(jì)主要強(qiáng)調(diào)的是.A、程序的規(guī)模B、程序的效率C、程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D、程序的易讀性()13、若有以下定義intx[10],*pt=x;則對(duì)x數(shù)組元素的正確引用是A、*&x[10]B、*(x+3)*(pt+10)pt+3()14、設(shè)有如下說(shuō)明typedefstructstlonga;intb;charc[2];new;則下面敘述中正確的是oA、以上的說(shuō)明形式非法B、ST是一個(gè)結(jié)構(gòu)體類型C、NEW是一個(gè)結(jié)構(gòu)體類型D、NEW是一個(gè)結(jié)構(gòu)體變量()15、有以下程序#include<stdio.h>main()(intx-1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printfy);)程序運(yùn)行后的輸出結(jié)果是。A、0B、2C、1D、3()16、設(shè)有以下代碼其中,循環(huán)體a與循環(huán)體b相同,以下敘述正確的是A、循環(huán)體A與循環(huán)體B的執(zhí)行次數(shù)相同B、循環(huán)體A比循環(huán)體B的執(zhí)行次數(shù)多一次C、循環(huán)體A比循環(huán)體B的執(zhí)行次數(shù)少一次D、循環(huán)體A與循環(huán)體B的執(zhí)行次數(shù)不確定()17、設(shè)有結(jié)構(gòu)體的定義如下:structdata(charcl;charc2;)則sizeof(structdata)的值是B、3C、4D、5()18、有以下程序main()(inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p:p=q;q=r:printf("%d,%d,%d,%d\n”,*p,*q,a,b):)程序運(yùn)行后的輸出結(jié)果是.A、8,7,8,7B、7,8,7,8C、8,7,7,8D、7,8,8,7()19、若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0:i<3:i)p[i]=&a[i*4];pp=p則對(duì)數(shù)組元素的錯(cuò)誤引用是。pp[0][1]a[10]C、p[3][l]D>*(*(p+2)+2)()20、有以下程序typedefstruct(intb,p:)a;voidf(ac) /*注意:c是結(jié)構(gòu)變量名*/intj;c.b+=l;c.p+-2;)main()(inti;aa={l,2);f(a);printf("%d,%d\n”,a.b,a.p):)程序運(yùn)行后的輸出結(jié)果是。A、2,3B、2,4C、1,4D、1,2」__二、填空題(共I。題,每題2分,共計(jì)20分)1、C程序中的變量按其定義位置及作用域可分為兩種。2、寫一個(gè)表達(dá)式表示n既能被3整除又能被5整除3、設(shè)x為int型變量,請(qǐng)寫出一個(gè)關(guān)系表達(dá)式,用以判斷x同時(shí)為3和7的倍數(shù)時(shí),關(guān)系表達(dá)式的值為真。4、共用體類型變量的定義關(guān)鍵字是。5、break語(yǔ)句通常用于中。6、以下程序段的定義語(yǔ)句中,x[l]的初值是,程序運(yùn)行后輸出的內(nèi)容是。#include<stdio.h>main()(intx[]={l,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+l];printf("%d)printf("\n");)7、c語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由 來(lái)實(shí)現(xiàn)的。8、如果一個(gè)函數(shù)無(wú)返回值,定義它時(shí)函數(shù)類型應(yīng)是。

9、請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。double,double);main()(doublex,y;scanf&x,&y);printf("%lf\n”,max(x,y));)doublemax(doublea,doubleb)(return(a>b?a:b);)10、以下程序運(yùn)行的結(jié)果為o^include<stdio.h>intd=1;fun(intp)(intd=5;d+=p++;printf("%d,”,d);)voidmain()(inta=3;fun(a);d+=a++;printf("%d\n”,d);得分評(píng)卷人得分評(píng)卷人三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:輸入三角形的邊長(zhǎng),求三角形面積(面積=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)o (本題10分)2、編寫程序:從鍵盤上輸入9個(gè)數(shù),按3行3列的格式輸出。(本題14分)3、編寫程序:編程實(shí)現(xiàn)輸入5個(gè)學(xué)生的學(xué)號(hào)、計(jì)算他們的期中和期末成績(jī),然后計(jì)算其平均成績(jī),并輸出成績(jī)表(本題16分)[C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(一)參考答案】一、單項(xiàng)選擇題1、D2、A【解析】左移1位,相當(dāng)于乘以2,題中的x的值是一個(gè)八進(jìn)制,轉(zhuǎn)換為+進(jìn)制數(shù)是32,再乘以2,x的值為64,以%。八進(jìn)制形式輸出,顯示為100。3、C4、C5、B【解析】本題考查了字符數(shù)組的基本概念。選項(xiàng)A,因?yàn)閿?shù)組元素的下標(biāo)只能為整數(shù),所以選項(xiàng)A錯(cuò)誤。選項(xiàng)3引用數(shù)組中的元素,可以通過(guò)數(shù)組名和下標(biāo)的方式來(lái)引用,只使用數(shù)組名不可以。6、A【解析】x++和x—作為表達(dá)式時(shí)總是先取出x的值,然后再修改x的值。例如:if(x++>5)這個(gè)語(yǔ)句是先之行(x>5)再執(zhí)行(x=x+l)的;同樣printf("%d\rT,x-)是先輸出來(lái)x再進(jìn)行x=xT;因此輸入6時(shí)先判斷6>5正確然后再進(jìn)行6+1=7運(yùn)算;輸入4時(shí),先判斷4>5錯(cuò)誤,然后輸出x再進(jìn)行4-1=3運(yùn)算。7、B【解析】'\0'作為標(biāo)志占用存儲(chǔ)空間,但是不計(jì)入串的實(shí)際長(zhǎng)度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。8、C9、D【解析】在C中,變量標(biāo)識(shí)符必須以大小寫字母或下畫線開始,是由數(shù)字或者字母下畫線等組成的一個(gè)字符串,其中C++關(guān)鍵字不能作為標(biāo)識(shí)符,不能包含-、+、*、/等運(yùn)算符號(hào)。C++變量區(qū)分大小寫。10、D11、A【解析】雖然全局變量的作用域是整個(gè)程序,但如果某個(gè)函數(shù)或語(yǔ)句塊中又聲明了同名的局部變量,則全局變量被屏蔽,在該函數(shù)或語(yǔ)句塊中所用到的該變量都是那個(gè)同名的局部變量。所以,本題程序第二行定義的全局變量intx=l;可完全忽略,故程序輸出結(jié)果為2,2,故應(yīng)該選擇A。12、D13、B14、C【解析】typedef關(guān)鍵字用于聲明一個(gè)新的類型名代替已有的類型名。本題中如果沒有用typedef進(jìn)行定義的話,則structST為結(jié)構(gòu)體類型,現(xiàn)在用typedef定義后,相當(dāng)于用NEW代表了第8/137頁(yè)structST這一結(jié)構(gòu)體類型,故NEW為結(jié)構(gòu)體類型。15、A【解析】(!x)為假,然后判斷(x==0),為假,最后就執(zhí)行輸出語(yǔ)句,y的值仍為初始值,答案選擇A。16、A【解析】while循環(huán)語(yǔ)句一般形為:while(表達(dá)式){循環(huán)體},執(zhí)行過(guò)程為:首先判斷表達(dá)式,成立(非0)則執(zhí)行循環(huán)體,不成立(0)則退出循環(huán)。Dowhile循環(huán)語(yǔ)句一般形式為:d。{循環(huán)體}(while表達(dá)式),執(zhí)行過(guò)程為:首先執(zhí)行循環(huán)體,之后判斷表達(dá)式,成立(非0)則再一次執(zhí)行循環(huán)體,不成立(0)則退出循環(huán)。假設(shè)表達(dá)式1與表達(dá)式2成立次數(shù)為nl與n2o若nl>n2,則循環(huán)體A執(zhí)行次數(shù)為n2+l,B執(zhí)行次數(shù)n2+l;若nlVn2,則循環(huán)體A執(zhí)行次數(shù)為nl,B執(zhí)行次數(shù)nl,A選項(xiàng)正確。17、A18、C【解析】程序中a,b的值都沒有改變,所以最后兩個(gè)輸出值分別為7、8,程序中第三條語(yǔ)句執(zhí)行了p和q的值的改變,即將P、q中的值互換。19、C【解析】考查指向數(shù)組的指針。[解題要點(diǎn)]本題綜合考查一維數(shù)組和多維數(shù)組指針變量的表示方法。在C語(yǔ)言中,引用數(shù)組元素的方法有兩種,即:下標(biāo)法和指針法。下標(biāo)法如a[i]形式;指針法如*(a+i)或*(p+l)。其中a是數(shù)組名,p是指向數(shù)組的指針變量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意語(yǔ)句中指針型數(shù)組的書寫格式,不能寫成“(*數(shù)組名)[長(zhǎng)度]”,因?yàn)檫@是定義指向含有“長(zhǎng)度”個(gè)元素的一維數(shù)組的指針變量。例如有定義語(yǔ)句“inta,b,c,c,*P[3]={&a,&b,&c};",它定義了一個(gè)名為p的指針型數(shù)組,其3個(gè)元素p[0],p[1],p[2]分別指向B個(gè)整型變量a,b,co[考點(diǎn)鏈接]數(shù)組元素的引用方法。20、D二、填空題1、['全局變量和局部變量']2、n%3==0&&n%5==03、['(x%3==0)&&(x%7==0)']4、union5、switch//循環(huán)6、['2','2468']7、['函數(shù)']8、void9、['doublemax(或externdoublemax)']三、編程題1、#include<stdio.h>#include<math>voidmain()(floata,b,c,s,area;printf("請(qǐng)輸入邊長(zhǎng):");scanf &a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("面積=%8.3f”,area);}2、^include"stdio.h"main()(inta[3][3],i,j,s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d”,&a[i][j]);for(i=0;i<3;i++)(for(j=0;j<3;j++)printf(*%d a[i][j]);printf('\n");})3、ttinclude<stdio.h>intmain()(structstud_str{charnum[10];floatscore_mid;floatscore_final;}stu[5];floatsum_mid=0;floatsum_final=0;floatave_mid=0;floatave_final=0;inti=0;for(i=0;i<5;i++)printf("plaseinputid:\n");scanf("%s",stu[i].num);printf("pleaseinputmid_examscore:\n");scanf&stu[i].score_mid);printf(^pleaseinputfinal_examscore:\n");scanf&stu[i].score_final);)for(i=0;i<5;i++)(summid+=stu[i].score_mid;sum_final+=stu[i].score_final;)ave_mid=sum_mid/5;ave_final=sum_final/5;printf(〃學(xué)號(hào)期中分?jǐn)?shù)期末分?jǐn)?shù)\t\n〃);for(i=0;i<5;i++){printf("版\t",stu[i].num);printf stu[i].score_mid);printf stu[i].score_final);printf('\n");)printf(“期中平均分:%g\nzz,ave_mid);printf("期末平均分:%g\n^,ave_final);return0;)C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(二)得分評(píng)卷人得分評(píng)卷人一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、在c語(yǔ)言中,'a'和"a"存儲(chǔ)所占用的字節(jié)數(shù)分別是A、1,1B、1,2C、2,1D、2,2()2、有以下程序#defineP3voidF(intx)(return(P*x*x):)mainO(printf("%d\n”,F(3+5));)程序運(yùn)行后的輸出結(jié)果是。A、192B、29C,25D、編譯出錯(cuò)()3、下列敘述中正確的是oA、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上三種說(shuō)法都不對(duì)()4、有以下程序段:intx=3;do(printf(M%3dM,x-=2);)while(!(―x));程序段的輸出結(jié)果是oA、B、30C、1-2D、死循環(huán)()5、關(guān)于函數(shù)的返回值,正確的是.A、由return語(yǔ)句返回時(shí),只帶回一值,其類型在函數(shù)定義時(shí)確定B、其類型由調(diào)用表達(dá)式?jīng)Q定C、函數(shù)可以沒有返回值,這時(shí)在函數(shù)定義中,函數(shù)的類型說(shuō)明就沒必要了D、函數(shù)調(diào)用就要有返回值,否則調(diào)用就沒有意義了()6、表示關(guān)系aWbWc的c語(yǔ)言表達(dá)式為.A、(a<=b)&&(b<=c)B>(aV=b)and(bV=c)C、(aV=bV=c)D>(a<=b)&(b<=()7、下列選項(xiàng)中,能夠正確定義數(shù)組的語(yǔ)句是.A>intnum[O..2008];B、intnum[];intN=2008;#defineN2008intnum[N]; intnum[N]()8、下列敘述中正確的是.A、在賦值表達(dá)式中,賦值號(hào)的左邊既可以是變量,也可以是任意表達(dá)式B、實(shí)型變量中允許存放整型數(shù)C、若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變D、在C程序中,求取余運(yùn)算符“%”兩邊的類型相同時(shí)才能進(jìn)行運(yùn)算()9、下面各語(yǔ)句行中,能正確進(jìn)行字符串賦值操作的語(yǔ)句是ocharST[5]={"ABCDE”};B、charS[5]={'A','B','C','D','E'};char*S;S="ABCDE”;char*S;scanf("%S",S);()10、有以下程序ttinclude<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/chart[10];inti,j;for(i=0;i<n-l;i++)for(j=i+l:j<n:j++)if(strcmp(p[i],p[j])>0)(strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t):})mainO(charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};f(P,5);printf("%d\n",strlen(p[0]));)程序運(yùn)行后的輸出結(jié)果是.A、2B、4C、6D、3()11、下列關(guān)于形參的說(shuō)法,正確的是oA、函數(shù)的形參是必須的B、函數(shù)的形參可以是表達(dá)式C、函數(shù)在定義時(shí),形參是不占用存儲(chǔ)空間的,只是在被調(diào)用時(shí)才會(huì)占,調(diào)用完畢也就被釋放了D、形參的名稱、類型、數(shù)量、順序必須與實(shí)參都相同,否則實(shí)參不會(huì)把信息正確地傳遞給形參()12、以下表達(dá)式中,其值不等于數(shù)值3的是.A、0+'3'B、‘D'-'A'C、D、'd'-a'()13、在c語(yǔ)言程序中A、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套B、函數(shù)的定義和調(diào)用均可以嵌套C、函數(shù)的定義和調(diào)用均不可以嵌套D、函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套()14、以下程序運(yùn)行后的輸出結(jié)果是#include<stdio.h>structst(intx,y;}data[2]={{1,10},{2,20}};main()(structst*p=data;printf("%d,”,p->y);printf("%d\n”,(++p)->x);)10,120,110,220,2()15、下列程序段的執(zhí)行結(jié)果是輸出 .x=3:do(printf(*%2d*,x-);}while(!x);A>321B、3C、21D>210()16、用在switch語(yǔ)句的關(guān)鍵字沒有哪個(gè)?continuebreakdefaultD、if()17、以下關(guān)于c語(yǔ)言數(shù)據(jù)類型的敘述中正確的是.A、C基本數(shù)據(jù)類型包括:分為整型、實(shí)型、浮點(diǎn)型、字符型四種B、實(shí)型常量的表達(dá)方式包括十進(jìn)制形式、十六進(jìn)制形式、二進(jìn)制形式、八進(jìn)制形式、指數(shù)形式C、若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型D、若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型

()18、有以下程序voidchange(intk[])(k[0]=k[5];)mainO(intx[10]={l,2,3,4,5,6,7,8,9,10},n=0;while(n<=4)(change(&x[n]);n++;}for(n=0;n<5;n++)printf(*%d”,x[n]);printf;)程序運(yùn)行后輸出的結(jié)果是。A>678910B、13579C、12345D>62345()19、對(duì)于代碼charcl[8];scanfcl);printf('\n%s",cl);在程序運(yùn)行時(shí),輸入了"thisprettyboy",則對(duì)應(yīng)的運(yùn)行輸出顯示結(jié)果是thisprethisthisprettyboyD、數(shù)組越界,不能顯示()20、下列選項(xiàng)中屬于c語(yǔ)言構(gòu)造類型的是.A、指針類型B、空類型C、枚舉類型D、數(shù)組類型得分評(píng)卷人二、填空題(共10題,每題2分,共計(jì)20分)1、在C語(yǔ)言中,一個(gè)char型數(shù)據(jù)在內(nèi)存中占個(gè)字節(jié)。2、若定義了inta[10],將數(shù)組元素中最后一個(gè)元素”賦值為10"語(yǔ)句是。3、設(shè)inta-5,b=6;則表達(dá)式(++a==b-)?++a:—b的值是■>4、已知a=5,則表達(dá)式"a+=a*-3"的值是。5、下列程序段的運(yùn)行結(jié)果是。main()(intn,s=0;for(n=l;n<-5;n++)(if(n%2!=0)continue;s=s+i;}printf(*%d\n*,n);)6、語(yǔ)句putcharCa'+2);的輸出結(jié)果是。7、已知函數(shù)定義為:intstat(inta,float*p),則此函數(shù)的兩個(gè)參數(shù)類型分別是、浮點(diǎn)型。8、在傳值調(diào)用中,實(shí)際是把實(shí)參的。9、下列程序段的運(yùn)行結(jié)果是-voidsun()(intb=5;)main()(intb=l;sun();printf("b=%d",b);)10、有以下程序#include<stdio.h>main(){intn[2],i,j;for(i=0;i<2;i++)n[i]-0;for(i=0;i<2;i++)for(j=0;j<2;j++)n[j]=n[i]+l;printf("%d\n",n[l]);}程序運(yùn)行后的輸出結(jié)果是。得分評(píng)卷入三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:輸入io個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)高于平均分的人數(shù)(本題10分)2、今年父親30歲,兒子6歲,問(wèn)多少年后父親的年齡是兒子年齡的2倍?(本題14分)3、編寫程序:有五個(gè)學(xué)生,每個(gè)學(xué)生有3門課的成績(jī),從鍵盤輸入以上數(shù)據(jù)(包括學(xué)生號(hào),姓名,三門課成績(jī)),計(jì)算出平均成績(jī),況原有的數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件"stud”中。功能如下:請(qǐng)輸入5個(gè)同學(xué)的信息:學(xué)生號(hào),姓名,3門成績(jī):1a6070802b6080903c5939894e5688985d438878打開stud文件,內(nèi)容如下1a607080702b608090763c593989624e568898805d43887869(本題16分)[C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(二)參考答案】一、單項(xiàng)選擇題1、B2、D3、A【解析】程序執(zhí)行的實(shí)際計(jì)算工作量不僅與程序的控制結(jié)構(gòu)有一定的關(guān)系,還與處理的數(shù)據(jù)量有關(guān),與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)。所以,選項(xiàng)A正確,選項(xiàng)B和C錯(cuò)誤。所以,本題的正確答案為A。4、C5、A【解析】選項(xiàng)B函數(shù)返回值類型在函數(shù)定義時(shí)就確定了;選項(xiàng)C沒有返回值用void標(biāo)示;函數(shù)是完成特定功能的程序段,可以沒有返回值。6、A【解析】本題考查邏輯與運(yùn)算符在C語(yǔ)言中使用運(yùn)算符“&&”連接兩個(gè)表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語(yǔ)言中不允許出現(xiàn)aV=bV=c這種格式。7、D8、D9、C10、C11、C【解析】函數(shù)可以沒有形參。表達(dá)式是一個(gè)值,不是變量,不能接受信息、。12、A【解析】字符3的ASC碼值是51,所以選項(xiàng)A的值是1;字符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,本題答案為Ao13、D【解析】本題考查函數(shù)的定義,調(diào)用及其嵌套之間的關(guān)系。14、C【解析】正確地給結(jié)構(gòu)體數(shù)組賦初值,data[0].x=l、data[0].y=10>data[l].x=2>data[l].y=20;首先,p指向data[0],第一條打印語(yǔ)句輸出p->y,即data[0].y的值10;(++p)->x含義是先++p,此時(shí)p指向data[l],第二條打印語(yǔ)句輸出(++p)->x,即dala[l].x的值2。15、B17、C【解析】C基本數(shù)據(jù)類型包括:分為整型、實(shí)型、枚舉型、字符型四種,實(shí)型就是浮點(diǎn)型,實(shí)型數(shù)據(jù)只有十進(jìn)制,沒有2,8,16進(jìn)制表達(dá),在C語(yǔ)言中沒有定義邏輯類型,而是一般用0代表假,用非零代表真。18、A19、B20、D【解析】構(gòu)造類型數(shù)據(jù)是由基本類型數(shù)據(jù)按一定規(guī)則組成的。C語(yǔ)言中的構(gòu)造類型數(shù)據(jù)只有3種,它們是數(shù)組類型、結(jié)構(gòu)體類型和共用體類型。故應(yīng)該選擇D。二、填空題1、12、a[9]=103、74、305、66、結(jié)果是c7、整形8、地址傳給形參9、b=l10、3三、編程題1、#include<stdio.h>main()(floata[10],avg,sum=0;intn=0,i;for(i=0;i<=9;i++)(scanf("%d”,&a[i]);sum=sum+a[i];}avg=sum/10.0;for(i=0;i<=9;i++)if(a[i]>avg)n++;printfn);getch();2、ttinclude<stdio.h>voidmain()(intfather=30,son=6,year=0;while((father+year)!=(son+year)*2)year++;printf("經(jīng)過(guò)%d年后父親年齡為兒子的兩倍!\n”,year):)3、#include<stdio.h>#include<stdlib.h>typedefstruct{intID;intmath;intEnglish;intC;intavargrade;charname[20];}Stu;intmain()(FILE*fp;Stustu[5];inti,avargrade=0;printf(〃請(qǐng)輸入5個(gè)同學(xué)的信息:學(xué)生號(hào),姓名,3門成績(jī):\n〃);for(i=0;i<5;i++)(scanf%s%d%d%d/z,&(stu[i].ID),stu[i].name,&(stu[i].math),&(stu[i].English),&(stu[i].C));stu[i].avargrade=(stu[i].math+stu[i].English+stu[i].C)/3;)if((fp=fopen("stud","w"))=NULL)(printf("error:cannotopenfile!\n");exit(0);}for(i=0;i<5;i++)fprintf(fp,*%d%s%d%d%d%d\n”,stu[i].ID,stu[i].name,stu[i].math,stu[i].English,stu[i].C,stu[i].avargrade);fclose(fp);//system("pause");return0;C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(三)得分評(píng)卷人得分評(píng)卷人一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、有以下程序main()(charal=,m',a2-m,;printf("機(jī)\n”,(al,a2));}以下敘述中正確的是OA、程序輸出大寫字母MB、程序輸出小寫字母mC、格式說(shuō)明符不足,編譯出錯(cuò)D、程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息()2、c語(yǔ)言提供的基本數(shù)據(jù)類型關(guān)鍵字是integerFLOATunsignedD>Double3、有如下程序mainO(intx=l,a=5,b=5;switch(x)case0:b—case1:a——case2:a——b——;)printf("a=%d,b=%d\n”,a,b);)該程序的輸出結(jié)果是。A、a=3,b=4B、a=3,b=3D、a=4,b=4()4、下面for語(yǔ)句的循環(huán)次數(shù)為( )ofor(x=l,y=0;(y!=19)&&(xV6);x++);A、是無(wú)限循環(huán)B、循環(huán)次數(shù)不定C、最多執(zhí)行6次D、最多執(zhí)行5次()5、請(qǐng)選擇以下語(yǔ)句的輸出結(jié)果。printf("%d\n",strlen("\t\"\065\xff'n"));A、5B、14C、8D、輸出項(xiàng)不合法,無(wú)正常輸出()6、設(shè)charsL10]=〃abcde",t[]="12345";貝!Is和t在內(nèi)存中分配的字節(jié)數(shù)分別是A、6和5B、6和610和510和6()7、數(shù)組a[0…5,0…6]每個(gè)元素占5個(gè)單元,將其按列優(yōu)先次序存儲(chǔ)在起始地址為1000的連續(xù)內(nèi)存單元中,則元素a[5][5]的地址為。1175118012051210()8、以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的c語(yǔ)言表達(dá)式是。x/y*zB、x*(l/(y*z))C>x/y*l/zD、x/y/z()9、下列合法的字符型常量是。A、'\xl3'B、'\081'C、'65'D、"\n\()10、已知p,pl為指針變量,a為數(shù)組名,j為整型變量,下列賦值語(yǔ)句中不正確的是A、p=&j,p=pl;p=a;C^p=&a[j];D、p=10;()11、若使用一維數(shù)組名作函數(shù)實(shí)參,則以下正確的說(shuō)法是。A、必須在主調(diào)函數(shù)中說(shuō)明此數(shù)組的大小B、實(shí)參數(shù)組類型與形參數(shù)組類型可以不匹配C、在被調(diào)用函數(shù)中,不需要考慮形參數(shù)組的大小D、實(shí)參數(shù)組名與形參數(shù)組名必須一致()12、若x是整型變量,pb是類型為整型的指針變量,則正確的賦值表達(dá)式是opb=&x;pb=x:*pb=&x;D>*pb=*x()13、有以下程序main()(inta[3][3],*p,i;p=&a[O][0];for(i=0;i<9;i++)p[i]=i;for(i=0:i<3;i++)printfa[l][i]);)程序運(yùn)行后的輸出結(jié)果是.A、012B、123C、234D、345()14、以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的敘述中正確的是。A、只能是整數(shù)0或1B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、可以是任意合法的表達(dá)式( )1b,卜列諾切物出結(jié)果是。mt1=6bb3b;printf("%d",i):A、65535B、0C、-1D、語(yǔ)法錯(cuò)()16、有下列程序:main()(intk-5,n=0;while(k>0)(switch(k)(default:break;case1:n=n+k;case2:case3:n+=k;}k-;)printf("%d\n",n);)程序運(yùn)行后的輸出結(jié)果足。A、0B、4C、6D、7()17、已知有如下結(jié)構(gòu)體:structsk(inta;floatb;}data,*p;若有p=&data,則對(duì)data的成員a引用正確的是(*p).data,a(*p).a;C、p->data.aD、P.data,a

()18、下列程序的運(yùn)行結(jié)果是omain()(inta=2,b=3,c=4;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);)A、2B、3C、5D、4()19、要定義整型數(shù)組x,使之包括初值為O的三個(gè)元素,下列語(yǔ)句中錯(cuò)誤的是A、intx[3]=0,0,0;B、intx[]=0;staticintx[3]=0;D、intx[]=()20、下面賦值表達(dá)式不正確的是.structstudent(longnum;charname[20];}stl,st2={101,"tom"},*p=&stl;A、stl=st2B、p->C>p->num=st2.num*p=st2得分評(píng)卷人得分評(píng)卷人二、填空題(共10題,每題2分,共計(jì)20分)1、設(shè)有變量定義:inta=10,c=9;則表達(dá)式(一a!=c++)?―a:++c的值是2、標(biāo)識(shí)符只能由。組成且開頭不能為3、C語(yǔ)言提供的三種邏輯運(yùn)算符是。4、函數(shù)的形參在未被調(diào)用前不分配空間,函數(shù)形參的數(shù)據(jù)類型要和實(shí)參相同。5、下面程序的運(yùn)行結(jié)果是o#include<stdio.h>main()inti;for(i=l:i<=5;i++)switch(i%2){case0:i++;printf;break;case1:i+=2;printf("*〃);default:printf;6、以下程序運(yùn)行后的輸出結(jié)果是ochar*ss(char*s)(char*p,t;P=s+1;t=*s;while(*p)(*(p-l)=*P;p++:)*(p-l)=t:returns;}main()(char*p,str[10]=*abcdefghw;p=ss(str);printf("%s\n",p);)7、有一輸入函數(shù)scanfk);則不能使用float變量k得到正確數(shù)值的原因是和。scanf語(yǔ)句的正確形式應(yīng)該是:.8、在c語(yǔ)言中,數(shù)組元素的下標(biāo)從開始的。9、下列程序段的運(yùn)行結(jié)果是ocharsi[20]="abcdef",s2[5]="abc";

strcpy(si,s2);printf("%c",sl[O]);10、下列程序段的運(yùn)行結(jié)果是voidpig()(floata=3.0;)main()(floata=l.0;pig();printf("a=%f",a):)得分評(píng)卷人得分評(píng)卷人三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:輸入一個(gè)圓半徑r,當(dāng)r>=0時(shí),計(jì)算并輸出圓的面積和周長(zhǎng),否則,輸出提示信息。(本題10分)2、輸入一個(gè)正整數(shù),輸出它的階乘。(本題14分)3、每個(gè)PAT考生在參加考試時(shí)都會(huì)被分配兩個(gè)座位號(hào),一個(gè)是試機(jī)座位,一個(gè)是考試座位。正常情況下,考生在入場(chǎng)時(shí)先得到試機(jī)座位號(hào)碼,入座進(jìn)入試機(jī)狀態(tài)后,系統(tǒng)會(huì)顯示該考生的考試座位號(hào)碼,考試時(shí)考生需要換到考試座位就座。但有些考生遲到了,試機(jī)已經(jīng)結(jié)束,他們只能拿著領(lǐng)到的試機(jī)座位號(hào)碼求助于你,從后臺(tái)查出他們的考試座位號(hào)碼。輸入格式:輸入第一行給出一個(gè)正整數(shù)N(^1000),隨后N行,每行給出一個(gè)考生的信息、:準(zhǔn)考證號(hào)試機(jī)座位號(hào)考試座位號(hào)。其中準(zhǔn)考證號(hào)由16位數(shù)字組成,座位從1到N編號(hào)。輸入保證每個(gè)人的準(zhǔn)考證號(hào)都不同,并且任何時(shí)候都不會(huì)把兩個(gè)人分配到同一個(gè)座位上??忌畔⒅螅o出一個(gè)正整數(shù)M(WN),隨后一行中給出M個(gè)待查詢的試機(jī)座位號(hào)碼,以空格分隔。輸出格式:對(duì)應(yīng)每個(gè)需要查詢的試機(jī)座位號(hào)碼,在一行中輸出對(duì)應(yīng)考生的準(zhǔn)考證號(hào)和考試座位號(hào)碼,中間用1個(gè)空格分隔。輸入樣例:4331012015091223324331012015091211941331012015091212613331012015091200232234輸出樣例:3310120150912002233101201509121191(本題16分)【C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(三)參考答案】一、單項(xiàng)選擇題1、B2、C3、A4、D5、A【解析】本題考查用strlen函數(shù)計(jì)算字符串長(zhǎng)度的方法。該字符串中包含的字符是:"\t"(跳格符)、〃\""(雙引號(hào))、"\065"(ASCH值為八進(jìn)制065,也即十進(jìn)制為53的字符)、*\xff*(ASCH值為十六進(jìn)制ff,也即十進(jìn)制為255的字符)、"\n"(換行符)。6、D7、A【解析】本題主要考查的知識(shí)點(diǎn)是二維數(shù)組元素的地址計(jì)算。[要點(diǎn)透析]a[5][5]的地址是1000+(5X6+5)X5=1175.8、A【解析】按照自左向右的運(yùn)算邏輯,選項(xiàng)A是先做x/y,然后再乘以x,顯然與題意不符。9、A【解析】C語(yǔ)言的字符常量是用單引號(hào)(')括起來(lái)的一個(gè)字符,也可以用以一個(gè)“\”開頭的字符序列來(lái)表示字符常量。其中形式\ddd表示1到3位8進(jìn)制數(shù)所代表的字符;形式\xhh表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中‘\xl3'表示回車符,是一個(gè)字符常量;而'\081'用8進(jìn)制數(shù)所代表的字符形式不正確,因?yàn)?進(jìn)制數(shù)所表示的字符中不會(huì)出現(xiàn)數(shù)字“8";’65'單引號(hào)(即撇號(hào))括起來(lái)的不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;"\n"是用雙引號(hào)括起來(lái)的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。10、D11、A12、A13、D14、D【解析】本題考查的是邏輯運(yùn)算符。C語(yǔ)言中,邏輯運(yùn)算符的兩個(gè)運(yùn)算分量可以是任意合法的表達(dá)式。故本題應(yīng)該選擇D)。15、C16、D18、C19、D【解析】選項(xiàng)D中整型數(shù)組x的第一個(gè)元素是NULL不是0,故選D。20、B二、填空題1、112、數(shù)字,字母,下劃線|數(shù)字3、&,//,!4、5、*#6、['bcdefgha']7、未指明變量k的地址,格式控制符與變量類型不匹配,scanf("%f",&k);8、0#零9、A10、a=l.000000#a=l.0三、編程題1、ttinclude<stdio.h>ttdefinePI3.14intmain(void)(doubler,area,girth;printf(*pleaseinputr:\n");scanfC%lf&r);if(r>=0){area=PI*r*r;girth=2*PI*r;printf("theareais%.2f\n”,area);printf("thegirthis%.2f\n”,girth);}elseprintf("Inputerror!\n^);return0;)2、ttincludevoidmain()inti,J=l,n=10;printf(“請(qǐng)輸入一個(gè)正整數(shù):”);scanf(“%d”,&n);for(i=l;i〈=n;i++)J=J*i;printf(*%d的階乘是:%d\n",n,J);)3、ttinclude<stdio.h>structmessageIcharmember[18];〃之前定義的字符串?dāng)?shù)組空間為16個(gè)元素,而最后一位有/0,所設(shè)空間不夠大intshi:intkao;);structmessaged[100];intmain()(intN,i,j;scanf&N);for(i-0;i<N;i++)(scanf("%s%d%d*,d[i].member,shi,&d[i].kao);)inta;scanf("%d",&a);intm[10];for(i=0;i<a;i++){scanf("%d",&m[i]);〃輸入待查詢數(shù)組)for(i=0;i<a;i++)(for(j=0;j<N;j++)(if(m[i]==d[j].shi)printf(*%s%d\n*,d[j].member,d[j].kao);elsecontinue;))return0;)C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(四)得益 評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、在計(jì)算機(jī)中,用()位二進(jìn)制碼組成一個(gè)字節(jié)。A、8B、16C、32D、64.()2、下面合法的語(yǔ)句是 。A、inta=8,b;b=++a++;printf("%d,%d”,a,b++);inta;printf("\\"%d\\"",scanf("%d",&a));chara;scanf&a);charb=scanf("b=%c",&b);charc=getchar():putchar((int)c);()3、設(shè)a、b、c、d、m>n均為int型變量,且a=5、b=6>c=7、d=8、m=2、n=3則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為.A、0B、1C、2D、3()4、設(shè)i和x都是int類型,則for循環(huán)語(yǔ)句。for(i=0,x=0;iV=9&&x!=876;i++)scanf&x);A、最多執(zhí)行10次B、最多執(zhí)行9次C、是無(wú)限循環(huán)D、循環(huán)體一次也不執(zhí)行()5、以下定義語(yǔ)句中正確的是.A、chara-A'b='B';B、floata=b=10.0;Cninta=10,*b=&a;D、float*a,b=&a;()6、是不正確的c語(yǔ)言賦值語(yǔ)句。A、x=Ly=2B、x++C、x=y=5D>y=int(x);()7、一個(gè)int型變量,在程序中多次頻繁使用,最好定義它為autoregisterstaticextern()8、下列運(yùn)算符中優(yōu)先級(jí)最低的算符是。A、||B、!=C、V一D、十()9、以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是一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=ojt[i++]=s[j++];);()10、下述對(duì)c語(yǔ)言字符數(shù)組的描述中錯(cuò)誤的是。A、字符數(shù)組可以存放字符串.B、字符數(shù)組中的字符串可以整體輸入、輸出.C、可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符"="對(duì)字符數(shù)組整體賦值.D、不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較.func((f2vl,v2),(v3,v4,v5),()11、func((f2vl,v2),(v3,v4,v5),(v6,max(v7,v8)))A、3C、5D、8()12、已定義c為字符型變量,則下列語(yǔ)句中正確的是。A、c='97';c=”97";c=97;c="a";()13、以下敘述中正確的是oA,局部變量不能被說(shuō)明為staticB、只有全局變量才有自己的作用域,函數(shù)中的局部變量沒有作用域C、只有在函數(shù)內(nèi)部定義的變量才是局部變量D、只要是用戶定義的標(biāo)識(shí)符,都有一個(gè)有效的作用域()14、相同結(jié)構(gòu)體類型的變量之間,可以oA、相加B、賦值C、比較大小D、地址相同()15、執(zhí)行下面的程序后,a的值是。ttdefineSQR(X)X*Xmain()(inta=10,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A、10B、1C、9D,0()16、有如下程序#defineN3#defineMN+l#defineNUM2*M+1main()(inti;for(i=l;i<-NUM;i++)printf(w%d\nz,,i);)該程序中的for循環(huán)執(zhí)行的次數(shù)是oA、5B、8C、7D、6()17、下面哪個(gè)不是關(guān)鍵字?A、intstructC>defineD、continue()18、以下程序的輸出結(jié)果是。mainO(inta=100;printf("%d\n”,++a);)A、0B,100C、101D、無(wú)法確定()19、設(shè)inta[10],*p=a;數(shù)組元素a[4]的正確引用是A、*(p+4)B、p+4C、*p+4D、a+4()20、enuma(sum=9,mon=-l,tue}定義了.A、枚舉變量B、3個(gè)標(biāo)識(shí)符C、枚舉數(shù)據(jù)類型D、整數(shù)9和-1 二、填空題(共10題,每題2分,共計(jì)20分)1、在C語(yǔ)言中,用轉(zhuǎn)義字符\"表示。答題提示:雙引號(hào)/單引號(hào)/反斜線/橫向跳格/回車換行2、若有以下定義,intm=5,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=m*=y后y的值是【】。3、若有以下定義語(yǔ)句floatx[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}}則表達(dá)式"x[l]的值是[1].4、局部變量的作用域是從定義的位置起,到結(jié)束止。5、下列程序段的運(yùn)行結(jié)果是.main(){intm=l,t=l:for(;;)(m=m+t;t++;if(m>9)break;}printf(*%d\n*,m);)6、下面程序的運(yùn)行結(jié)果是o#include<stdio.h>main()(inti,j;for(i=4;i>=l;i-)|for(j=l;j<=i;j++)putcharC;for(j=l:j<=4-i:j++)putchar('*');putchar('\n');})7、字符讀寫函數(shù)是用于把一個(gè)字符寫入磁盤文件。8、C語(yǔ)言對(duì)數(shù)組下標(biāo)的引用一般從開始。9、下列給定程序中函數(shù)fun()的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第1項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為13。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main。函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:longfun(intg)(switch(g);(case0:return0;casel:case2:return1;)return(fun(g-1)+fun(g-2));)voidmain()(longfib;intn;printf("inputn:");scanf&n);printf(*n=%d\n*,n);fib=fun(n);printf("fib=%d\nkn”,fib);}10、請(qǐng)補(bǔ)充函數(shù)proc(),該函數(shù)的功能是:把從主函數(shù)中輸入的由數(shù)字字符組成的字符串轉(zhuǎn)換成一個(gè)無(wú)符號(hào)長(zhǎng)整數(shù),并且逆序輸出。結(jié)果由函數(shù)返回。例如,輸入:1234567,結(jié)果輸出:7654321。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填人所編寫的若干表達(dá)式或語(yǔ)句。試題程序:^include<stdio.h>unsignedlongproc(char*str)(unsignedlongt=0:intk:inti=0;i=str|en(str);for(;i>=0;i)(k=;t=;}returnt;)voidmain()(charstr[8];system("cls");printf("enterastringmadeupof'O'to'9'digitalcharacter:\n*);gets(str);printf("thestring,is:%s'n”,str);

if(strlen(str)>8)printf(^thestringistootong!");elseprintf("theresult:%lu'n”,proc(str));)得分評(píng)卷人得分評(píng)卷人三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫一個(gè)函數(shù),從傳人的m個(gè)字符中找出最長(zhǎng)的一個(gè)字符串,并通過(guò)形參指針max傳回該串地址(用****作為結(jié)束輸入的標(biāo)志)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main。函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語(yǔ)句。試題程序: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);}(本題10分)2、編寫程序:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。(本題14分)3、題描述某學(xué)校為勵(lì)學(xué)鍛煉體,要求學(xué)周到周五早晨在操場(chǎng)跑步,并進(jìn)刷卡記錄,作為期末評(píng)優(yōu)的依據(jù)。刷卡機(jī)器中記錄的數(shù)據(jù)格式為學(xué)號(hào)和刷卡時(shí)間,其中學(xué)號(hào)N為10位數(shù)字,時(shí)間T格式為yyyymmddhhmmss讀卡程序確保每天不會(huì)多次記錄同名學(xué)的晨跑刷卡時(shí)間要求:根據(jù)刷卡機(jī)器中記錄的學(xué)刷卡記錄,按照學(xué)號(hào)升序統(tǒng)計(jì)學(xué)晨跑次數(shù)輸輸格式為每?jī)蓚€(gè)數(shù)值,學(xué)號(hào)N與時(shí)間T之間有個(gè)空格。讀取輸直到輸結(jié)束(數(shù)據(jù)總量不超過(guò)1000)輸出輸出格式為每?jī)蓚€(gè)數(shù)值,學(xué)號(hào)以及相應(yīng)的晨跑次數(shù),兩者之間有個(gè)空格。樣例輸201501693220160311065532201501789020160409070156201501986020160329063051201501986020160305065217201501874520160305065656樣例輸出20150169321201501789012015018745120150198602(本題16分)【C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(四)參考答案】一、單項(xiàng)選擇題1、A【解析】在計(jì)算機(jī)中,8位二進(jìn)制碼組成一個(gè)字節(jié)。2、D3、D4、A5、C【解析】C語(yǔ)言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開,顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語(yǔ)句,這在定義變量是不正確的,故選項(xiàng)B不正確:選項(xiàng)D定義了一個(gè)float型指針a,然后定義了一個(gè)float型變量b,并。讓這個(gè)變量的初值為指針變量a的地址,顯然這是錯(cuò)誤的,除非b是指向float型指針變量的指針。故選項(xiàng)D不正確,所以選項(xiàng)C符合題意。6、D7、B【解析】寄存器類型變量常用于循環(huán)變量、數(shù)組下標(biāo)等頻繁使用的變量。將變量放入寄存器內(nèi),可以加快程序的運(yùn)行速度。8、A9、C10、C11、A12、C13、D【解析】本題考查局部變量和全局變作用域,B選項(xiàng)中局部變量也有作用域,C選項(xiàng)中,函數(shù)內(nèi)部定義的也可能是全局變量,A選項(xiàng)錯(cuò)誤,因?yàn)榭梢远x個(gè)靜態(tài)局部變量。14、B15、B16、B17、C18、C19、A20、C二、填空題1、雙引號(hào)2、-163、0.04、函數(shù)5、11#######*##**#***fputcttfputc()#putc#putc()8、09、(1)錯(cuò)誤:switch(g);正確:switch(g)(2)錯(cuò)誤:easel:case2:returnl:正確:easel;case2:returnl:10>―istrEi]-*0,t*10+k三、編程題1、char*proc(char(*a)[81],intm)(char*max;inti=0:max=a[0]:for(i=0:i<m:i++)if(strlen(inax)Vstrlen(a[i]))〃找出最長(zhǎng)的字符串max=a[i];returnmax;〃返回最長(zhǎng)字符串的地址)2、intmain()(chari,j,k;for(i=x;i<=z*;i++){for(j='x';jV='z';j++){if(i!=j){for(k='x';kV='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z'){printf("順序?yàn)椋篴一%c\tb一%c\tc-%c\n”,i,j,k);})3、#include<stdio.h>constintN=2000+5;typedefstructstudent{intnum;chartime[14];inttimes;intw;}STU;intmain(){inti,u,n,m=0;floataver,sum;STUstu[N];inta[N],b[N];while(scanf("%d%s”,&stu[i].num,stu[i].time)!=EOF){++i;}intq=i;for(into=0;o<i;o++){stu[o].w=1;stu[o].times=1;}for(intj=0;j<i;j++){for(intk=j+l;k<=i;k++){if(stu[j].num=stu[k].num){stu[j].times+=1;stu[k].times=0;stu[k].w=0;q-=1;})}for(intz=0;z<i+l;z++){if(stu[z].times>0&&stu[z].w>0){a[z]=stu[z].num;b[z]=stu[z].times;)}for(intr=0;r<i;r++){for(ints=0;s<i-r;s++){if(a[s]>a[s+1]){u=a[s];a[s]=a[s+1];a[s+1]=u;u=b[s];b[s]=b[s+1];b[s+1]=u;)))for(int1=0;l<i+1;1++){if(b[l]>0){printf(",%d%d\n",a[l],b[l]);))returnO;C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(五)得益評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、一個(gè)漢字的內(nèi)碼長(zhǎng)度為2個(gè)字節(jié),其每個(gè)字節(jié)的最高二進(jìn)制位的值依次分別是.A、0,0B、0,1C、1,0D、1,1()2、表達(dá)式10mod2的值為oA、0B、1C、2D、5()3、c語(yǔ)言對(duì)嵌套的if語(yǔ)句的規(guī)定是:else總是與配對(duì)。A、與之前最近的ifB、第一個(gè)ifC、縮進(jìn)位置相同的ifD、與之前最近的且尚未配對(duì)的if()4、有以下程序Sinclude<stdio.h>main()(inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2)(case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]一;)break;case1:a[i]=0;for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");)程序運(yùn)行后的輸出結(jié)果是。TOC\o"1-5"\h\zA、3 3 4 42 0 5 0C、3 0 4 0D、 0 3 0 4()5、以下語(yǔ)句或語(yǔ)句組中,能正確進(jìn)行字符串賦值的是。A^char*sp:*sp="right!”;B>chars[10];s="right!”;chars[10];*s=*right!*;D>char*sp="right!”;()6、下列四組常數(shù)中,均是合法整型常量的一組是.160Oxffff011TOC\o"1-5"\h\z-Oxcdf Ola Oxe-01 986,012 0668-0x48a 2e5 Ox()7、inta[10];合法的數(shù)組元素的最小下標(biāo)值為一A、10B、9C、1D、0()8、以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是:A、均占4個(gè)字節(jié)B、根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)C、由用戶自己定義D、由C語(yǔ)言編譯系統(tǒng)決定()9、宏定義用于將一個(gè)標(biāo)識(shí)符定義為一個(gè)A、常量B、字符串C、整數(shù)D、長(zhǎng)整數(shù)()10、下面程序的輸出結(jié)果是ttinclude<stdio.h>main()(inta[]=l,2,3,4,5,6,7,8,9,0,*p;P=a:printf("%d\n",*p+9);)A、0B、1C、10D、9()11、有以下程序:main()(intx[]={l,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j—)if(x[j+l]>x[j])(k=x[j]:x[j]=x[j+l];x[j+l]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+U){k=x[j];x[j]=x[j+l];x[j+l]=k;)for(i=0:i<8;i++)printfx[i]);printf('\n");)程序運(yùn)行后的輸出結(jié)果是.A、75310246012345677631046213570246()12、整型變量x和y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是A、X||YB、X|YC、X&YD、X*Y()13、請(qǐng)閱讀程序:#include<math.h>#include<stdio.h>main()(floata,b,c;scanf”,&a,&b);c=a/b;while(l){if(fabs(c)>1.6){a=b;b=c;c=a/b;)elsebreak;)printf("%f\n”,b);}若運(yùn)行時(shí)從鍵盤上輸入3.62.4V回車〉,則輸出結(jié)果是A、1.500000B、1.6000002.0000002.400000()14、設(shè)有如下定義:structsk(inta;floatb;)data,*p;若有p=&data;,則對(duì)data中的a域的正確引用是。(*p),data,a(*p).aC、p->data.aD、p.data,a)IS.有以下程岸mainO{char*s口={“one","two","three"},*p;P=s[l];printf("%c,%s\n”,*(p+1),s[0]);)執(zhí)行后輸出結(jié)果是。A、n,twoB、t,oneC、w,oneD>o,two()16、以下程序輸出結(jié)果是.main()(intx=l,y=0,a=0,b=0;switch(x)(case1:switch(y)(case0:a++;break;case1:b++;break;)case2:a++;b++;break;case3:a++;b++;)printf("a=%d,b=%d",a,b);)A、a=l,b=0B、a=2,b=lC>a=l,b=lD、a=2,b=2()17、以下結(jié)構(gòu)體類型說(shuō)明和變量定義中正確的是typedefstructintn;charc;REC;RECtl,t2;

struetREC;intn;charc;;RECtl,t2;typedefstructREC;intn=0;charc='A';tl,t2;REC11,t2;structintn;charc;REC;()18、若希望下面的程序運(yùn)行后輸出45,程序空白處的正確選擇是.ttinclude<stdio.h>voidmain()(inti,j=10,a[]={1,3,5,7,9,11,13,15}:for()j+=a[i];printf(*%d\n*,j);)A、i=5;i>l;i―B、i=0;i<7:++iC、i=5;i>=l;—iD、i=2;i<6;++i()19、若有定義"intb[8],*p=b;",則p+6表示()(.A、數(shù)組元素b[6]的值B、數(shù)組元素b[6]的地址C、數(shù)組元素bE73的地址D、數(shù)組元素hE。]的值加上6()20、以下敘述中正確的是。A、使用typedef定義新類型名后,新類型名與原類型名實(shí)際上是等價(jià)的B、結(jié)構(gòu)體類型中的各個(gè)成分均不能是數(shù)組或指針C、結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時(shí)一起定義D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過(guò)結(jié)構(gòu)體類型之后,單獨(dú)進(jìn)行定義得分評(píng)卷人得分評(píng)卷人二、填空題(共10題,每題2分,共計(jì)20分)1、有定義charstr[]={'d','o','g',''0'};若執(zhí)行puts(str);則輸出結(jié)果為 。2、設(shè)c語(yǔ)言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占2各字節(jié),則int型數(shù)據(jù)的取值范圍為。3、函數(shù)swap(arr,n)可完成對(duì)arr數(shù)組從第一個(gè)元素到第n個(gè)元素兩兩交換。在運(yùn)行調(diào)用函數(shù)中的如下語(yǔ)句后,a[0]和a[l]的值分別為【1】,原因是【2】oa[O]=l,a[l]=2;swap(a,2);4、若有定義:floatx=3.5;intz=8;則表達(dá)式x+z%3/4的值為o5、在循環(huán)的過(guò)程中,有時(shí)要提前中止循環(huán),通常采用()語(yǔ)句。6、下面的程序是用dowhile語(yǔ)句求1至1000之間滿足一用3除余2;用5除余3;用7除余2”的數(shù),且一行只打印五個(gè)數(shù)。請(qǐng)分析程序填空。#include<stdio.h>main()(inti=l,j=0;do{if([1])(printf(*%4d*,i);j=j+l;if([21)printfC\nff);)i=i+l;)while(i<1000);)7、在c語(yǔ)言中,格式輸入庫(kù)函數(shù)為,格式輸出庫(kù)函數(shù)為。8、編譯預(yù)處理包括宏定義、文件包含、()等。9、下列程序的功能是計(jì)算圓的面積,將程序補(bǔ)充完整.ttdefinePI=3.14159main()(floatr,s;printf("Enteranumberr:");s=PI*r*r;)10、已知"floatx=0.5;inty=8;”,則算術(shù)表達(dá)式“(int)(x+y/5)”的值是。觴[躡]三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:根據(jù)考生成績(jī)(abed)分別輸出優(yōu)秀、良好、及格、不及格,用switch語(yǔ)句(本題10分)2、編寫程序:判斷輸入字符的字母的個(gè)數(shù),以*結(jié)束輸出。(本題14分)3、通過(guò)函數(shù)調(diào)實(shí)現(xiàn):講結(jié)構(gòu)體數(shù)組中的三個(gè)元素按num成員進(jìn)升序排列。要求:①數(shù)組元素依次賦初值為:{12,"sunny”,89.1}、{8,"henry”,73.5}、{21,"lucy”,91.7}。②結(jié)構(gòu)體定義如下:structs{intnum;charname[30];floatscore;};(本題16分)【C語(yǔ)言程序設(shè)計(jì)專升本預(yù)測(cè)卷(五)參考答案】一、單項(xiàng)選擇題1、D【解析】國(guó)標(biāo)碼是漢字信息交換的標(biāo)準(zhǔn)編碼,但因其前后字節(jié)的最高位為0,與ASCII碼發(fā)生沖突,于是,漢字的機(jī)內(nèi)碼采用變形國(guó)標(biāo)碼,其變換方法為:將國(guó)標(biāo)碼的每個(gè)字節(jié)都加上128,即將兩個(gè)字節(jié)的最高位由0改1,其余7位不變,因此機(jī)內(nèi)碼前后字節(jié)最高位都為1。2、A【解析】本題考查VBA中表達(dá)式運(yùn)算的知識(shí)。在VBA中Mod是取余數(shù)運(yùn)算,將返回左操作數(shù)整除右操作數(shù)后的余數(shù)。本題中10可以被2整除,所以余數(shù)為0。3、D4、C5、D【解析】本題考查了考生對(duì)字符串常量的理解。字符串常量是一段以雙引號(hào)括起來(lái)的字符序列,它既可以出現(xiàn)在對(duì)字符數(shù)組的初始化中,也可以出現(xiàn)在表達(dá)式中。當(dāng)它用于對(duì)字符數(shù)組的初始化時(shí),應(yīng)注意系統(tǒng)自動(dòng)為其添加的結(jié)束標(biāo)志'\0'。而當(dāng)它出現(xiàn)在表達(dá)式中時(shí),應(yīng)該將其看作一個(gè)constchar*類型的指針常量。在選項(xiàng)A中,首先定義了一個(gè)字符指針sp,然后將一個(gè)字符串賦給甲所指的地址,這是錯(cuò)誤的。因?yàn)閟p是一個(gè)未經(jīng)初始化的野指針,不知其指向哪兒,往一個(gè)不確定的地址中寫數(shù)據(jù)很容易讓程序出錯(cuò)。選項(xiàng)B首先定義了一個(gè)字符數(shù)組,然后將一個(gè)字符串賦給數(shù)組名,這是錯(cuò)誤的。因?yàn)閿?shù)組名是一個(gè)指針常量,不可以被改變。選項(xiàng)C首先定義了一個(gè)字符數(shù)組,然后將一個(gè)字符串賦給數(shù)組的第一個(gè)元素,這也是錯(cuò)誤的。因?yàn)樽址诒磉_(dá)式中相當(dāng)于一個(gè)常字符指針,將一個(gè)指針值賦給一個(gè)字符型變量是行不通的。選項(xiàng)D是定義一個(gè)字符指針sp,同時(shí)使其指向一個(gè)字符串常量,即將一個(gè)常字符型指針賦給sp。這是可行的。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合惠意。6、A7、D8、D9、B【解析】宏定義用于將一個(gè)標(biāo)識(shí)符定義為一個(gè)字符串10、C【解析】此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符“*”的優(yōu)先級(jí)高于“+”,所以輸出結(jié)果為P指向的元素1,然后加9,值為10。11、A【解析】主函數(shù)中定義了一個(gè)整型數(shù)組x,并初始化。接著執(zhí)行了一個(gè)二重for循環(huán),在該二重循環(huán)的作用是將數(shù)組的前4個(gè)元素按從大到小排序,接著用了一個(gè)二重循環(huán)(也是冒泡算法)將數(shù)組的后4個(gè)元素按從小到大的順序排序,故最后依次輸出數(shù)組的個(gè)元素的值為75310246,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。12、D【解析】“II”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式的值1。I是按位或,&是按位與,是按位異或,這三位運(yùn)算符是按值的二進(jìn)制位來(lái)比較的。13、D【解析】本題考查用break語(yǔ)句終止循環(huán)。程序中定義了兩個(gè)實(shí)型變量a、b,并給scanf()函數(shù)賦值,鍵盤輸入3.62.4V回車〉后,a=3.6,b=2.4,c=a/b=3.6/2.4=1.5,因?yàn)閏=L5V1.6,退出循環(huán),輸出b的原值。表面上看,while(1)條件恒為真,將會(huì)產(chǎn)生死循環(huán),但利用break語(yǔ)句可以終止循環(huán)。14、B15、C16、B17、A【解析】struct結(jié)構(gòu)體名后不能加";"號(hào),所以選項(xiàng)B、C錯(cuò)誤,選項(xiàng)D中應(yīng)為structtl,t2;選項(xiàng)A為正確的定義形式。18、C19、B20、A【解析】本題考查typedef的使用方法,typedef對(duì)已存在的類型使用一個(gè)新的名字,結(jié)構(gòu)體類型中的成分可以是數(shù)組和指針,所以B選項(xiàng)錯(cuò)誤,結(jié)構(gòu)體類型的變量可以在聲明結(jié)構(gòu)體的時(shí)候一起定義,C選項(xiàng)錯(cuò)誤,D選項(xiàng)中可以一起定義。二、填空題1、「dog,]2、-32768?327673、[1]2,1【2】地址傳遞對(duì)形參的改變能改變實(shí)參的值4、3.5break6、[1]i%3==2&&i%5==3&&i%7==2[

溫馨提示

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

評(píng)論

0/150

提交評(píng)論