![2021年內(nèi)蒙古工業(yè)大學(xué)C語言程序設(shè)計(jì)樣卷(十二套試卷)及答案_第1頁](http://file4.renrendoc.com/view/abe669f2ddeb67c1cb7d72318770ff6c/abe669f2ddeb67c1cb7d72318770ff6c1.gif)
![2021年內(nèi)蒙古工業(yè)大學(xué)C語言程序設(shè)計(jì)樣卷(十二套試卷)及答案_第2頁](http://file4.renrendoc.com/view/abe669f2ddeb67c1cb7d72318770ff6c/abe669f2ddeb67c1cb7d72318770ff6c2.gif)
![2021年內(nèi)蒙古工業(yè)大學(xué)C語言程序設(shè)計(jì)樣卷(十二套試卷)及答案_第3頁](http://file4.renrendoc.com/view/abe669f2ddeb67c1cb7d72318770ff6c/abe669f2ddeb67c1cb7d72318770ff6c3.gif)
![2021年內(nèi)蒙古工業(yè)大學(xué)C語言程序設(shè)計(jì)樣卷(十二套試卷)及答案_第4頁](http://file4.renrendoc.com/view/abe669f2ddeb67c1cb7d72318770ff6c/abe669f2ddeb67c1cb7d72318770ff6c4.gif)
![2021年內(nèi)蒙古工業(yè)大學(xué)C語言程序設(shè)計(jì)樣卷(十二套試卷)及答案_第5頁](http://file4.renrendoc.com/view/abe669f2ddeb67c1cb7d72318770ff6c/abe669f2ddeb67c1cb7d72318770ff6c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)精選樣卷(一)得分評(píng)卷人得分評(píng)卷人一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、在以下給出的表達(dá)式中,與while()中的(e)不等價(jià)的表達(dá)式是A、(!E==0)B、(E>0IIE<0)(E==0)(E!=0)()2、若需要利用形參直接訪問實(shí)參,則應(yīng)把形參變量說明為()參數(shù)。A、指針B、引用C、傳值D、常值()3、若a的值為3時(shí),下列程序段被執(zhí)行后,c的值是。intc=1;if(a>0)if(a>3)c=2;elsec=3;elsec=4;A、1B、2C、3D、4()4、定義如下變量:intn=10;則下列循環(huán)的輸出結(jié)果是。while(n>7){n——;printfC'%d'',n);)A、1098B、987109879876l、IK口洪砂二日帖旦\ 7 kAI,J出心用叭口17£oA、實(shí)參數(shù)可以與形參個(gè)數(shù)不一致。B、C程序中,函數(shù)可以直接或間接地調(diào)用自己。C、函數(shù)調(diào)用時(shí),函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致D、函數(shù)聲明語句中的類型必須與函數(shù)返回值得類型一致。()6、語句城110(他);中的條件!e等價(jià)于oe==0e!=le!=0D、?e()7、下列選項(xiàng)中合法的數(shù)組定義是oA、intaD="string”;inta[5]-{0,1,2,3,4,5);chara="sting”;chara[]={0,1,2,3,4)()8、不合法的字符常量是oA、B、“A”'a''\x32'()9、下列關(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ù)類型()10、合法的數(shù)組定義是.A,inta[6]={"string"};B、inta[5]={0,1,2,3,4,5);chara={"string"};D、chara[]={0,1,2,3,4,5};()11、設(shè)有以下語句:c以rstrH]="string”,str2[8],*str3,*str4="string”;則下列選項(xiàng)第2/132頁中,不是對(duì)庫函數(shù)strcpy的正確調(diào)用,此庫函數(shù)用來復(fù)制字符串。A、strcpy(strl/HELLOD;B、strcpy(str2,"HELL02");C、strcpy(str3,“HELL03");D、strcpy(str4,"HELLOS);()12、若變量均已正確定義并賦值,以下合法的c語言賦值語句是。x=n/2.5;x==5;x+n=I;5=x=4+l;()13、語句int(*ptr)();的含義是OA、ptr是指向一維數(shù)組的指針變量B、ptr是指向int型數(shù)據(jù)的指針變量C、ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)D、ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針()14、有如下定義structperson(charname[9];intage;)structpersonclass[10]={"john",17,"paul",19,"mary",18,"adam”,16};根據(jù)上述定義,能輸出字母a的語句是。A、printf("%c\n",class[3],name);B、printf(*%c\n*?class[3].name[0]);C、printf("%c\n",class[4].name[l]);D、printf(“枇\n",class[4].name[0]);()15、下面程序的輸出結(jié)果是。main()(intnum=0;while(num<=2){num++;printf("%d\n",num);A、1234B、123C、12D、1()16、設(shè)有以下程序段:intk=0;while(k=l)k-;則以下敘述中正確的是0A、while循環(huán)執(zhí)行一次B、該循環(huán)是無限循環(huán)C、循環(huán)體語句一次也不執(zhí)行D、該循環(huán)有語法錯(cuò)誤()17、以下scanf函數(shù)調(diào)用語句中不正確的是structpupil(charname[20];intage;intsex;)pup[5],*p=pup;A、scanfpup[0].name);B、scanf&pup[0].age);C、scanf('%d”,p->age);D、scanf&(p->sex));()18、以下程序的正確運(yùn)行結(jié)果是omain()(intk=4,m=l,p;p=func(k,m);printfp);p=func(k,m);printf(“肌l\n",p);)func(inta,intb)(staticintm=0,i=2;i+=m+l;m=i+a+b;return(m);)A、8,16B、8,17C、8,20D、8,8()19、設(shè)inta[10],*p=a;數(shù)組元素a[4]的正確引用是A、*(p+4)B、p+4C、*p+4D、a+4()20、以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是otypedefstructaa(intn;floatm;}AA;AAtdl;BnttdefineAAstructaaAA{intn;floatm;}tdl;struct{intn;floatm;}aa;structaatdl;struct{intn;floatm,}tdl;得分評(píng)卷人
得分評(píng)卷人得分評(píng)卷人二、填空題(共10題,每題2分,共計(jì)20分)1、intx=l,y=l,z=l;x+=y+=z;則表達(dá)式x〈y?y:x的值為。2、若有語句doublex=17;inty;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值是.3、c語言的標(biāo)識(shí)符只能由大小寫字母,數(shù)字和下劃線三種字符組成,而且第一個(gè)字符必須為4、c語言的預(yù)處理語句以開頭。5、下列程序段的運(yùn)行結(jié)果是omain()(intn,s=0;for(n=l;n<=5;n++)(if(n%2==0)continue;s=s+n;}printf("%d\n",s);)6、下面程序的運(yùn)行結(jié)果是:intf(inta[],intn)(if(n>l)returna[0]+f(&a[l],n-1);elsereturna[0];)main(){intaa[3]={l,2,3},s;s=f(&aa[0],3);printf("%d\n",s);)7、在c語言中,格式輸入庫函數(shù)為,格式輸出庫函數(shù)為。8、設(shè)有如下的類型說明:inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;*(p+5)=o9、以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為:hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回null。請(qǐng)?zhí)羁?。char*fun(char*str,charc)(intn=0;char*p=str;if(p!=null)while(p[n]!=c&&p[n]!='\0')n++;
if(p[n]='\0')returnnull;return();)10、以下程序運(yùn)行后的輸出結(jié)果是Sinclude<stdio.h>main(){inta-1,b=7;do(b=b/2;a+=b;}while(b>1):printf(*%d\n*,a);)得分評(píng)卷人得分評(píng)卷人三、編程題(共3題,每題分值不等,共計(jì)40分)1、編程將L..100間能被2、3、5分別整除的數(shù)的和求出來并輸出。注意,在判斷時(shí)要按照2、3、5的先后次序來確定優(yōu)先順序,如6既能被2整除,又能被3整除,則只算到能被2整除的這種情況里。(本題10分)2、編寫程序:從鍵盤上輸入一個(gè)百分制成績score,按下列原則輸出其等級(jí):score^90,等級(jí)為A;80^score<90,等級(jí)為B;70^score<80,等級(jí)為C;60^score<70,等級(jí)為D;score<60,等級(jí)為E。(本題14分)3、有一包含職工編號(hào)、年齡和性別的單向鏈表,分別使用函數(shù)完成以下功能建立鏈表。分別統(tǒng)計(jì)男女職工的人數(shù)。在鏈表尾部插入新職工。刪除指定編號(hào)的職工。刪除60歲以上的男職工和55歲以上的女職工被刪除的結(jié)點(diǎn)保存到另一個(gè)鏈表中。在主函數(shù)中設(shè)計(jì)簡單的菜單去調(diào)用上述函數(shù)。(本題16分)【C語言程序設(shè)計(jì)精選樣卷(一)參考答案】一、單項(xiàng)選擇題1、c2、B【解析】在進(jìn)行參數(shù)傳遞時(shí),引用參數(shù)是利用形參直接訪問實(shí)參,形參的變化直接影響實(shí)參的變化,而傳值參數(shù)不會(huì)影響實(shí)參變量。3、C【解析】此題主要考查if-else的使用,當(dāng)if語句中的條件為真時(shí)執(zhí)行后的語句,并跳過else執(zhí)行下面的語句;當(dāng)條件為假時(shí)執(zhí)行else后的語句。4、A5、A6、A7、A8、B9、D10、D11、C12、A13、C14、B15、C16、B【解析】請(qǐng)仔細(xì)閱讀交規(guī)難度:簡單17、C18、B19、A20、C二、填空題1、32、13、['字母或下劃線']4、號(hào)」5、96、67、[9\xaOscanf\xaOJ,'\xaOprintf\xaO,]8、_6_9、['p+n']10、5三、編程題1、ttinclude<stdio.h>voidmain(){inti,s2=0,s3=0,s5=0;for(i=l;i<=100;i++)if(i%2==0)s2+=i;elseif(i%3==0)s3+=i;elseif(i%5==0)s5+=i;printf(〃\nl—100中能被2、3、5分別整除的數(shù)的和分別為:%d%d%d\n",s2,s3,s5);)2、ttinclude<stdio.h>voidmain(){intdata;chargrade;printf(*Pleaseenterthescore:");scanf("%d”,&data);switch(data/10)(case10:case9:grade='A';break;case8:grade=9B'; break;case7:grade='C'; break;case6:grade=,D';break;default:grade=,E';)printf("thegradeis%c”,grade);)3、#include<stdlib.h>ttinclude<stdio.h>structnode{longNo;intage;charsex;structnode*next;};node*establish()(structnode*h,*p,*q;longnum;h=(structnode*)malloc(sizeof(structnode));P=q=h;printf("請(qǐng)輸入職工編號(hào)(輸入0退出輸入)!\n");scanf&num);while(num!=0)(p=(structnode*)malloc(sizeof(structnode));p->No=num;printf(“請(qǐng)輸入職工年齡和性別\n〃);scanf("%d,&p->age,&p->sex);q->next=p;q=P;printf("請(qǐng)輸入職工編號(hào)(輸入。退出輸入)!\n〃);scanf&num);)p->next=NULL;returnh;)voidcount(node*phead)(intm=0,f=0;structnode*p;p=phead->next;while(p!=NULL)(if(p->sex==,M'||p->sex==,m,)m++;elsef++;p=p->next;}printf("男職工的人數(shù)為:%d\n女職工的人數(shù)為:%d\n”,m,f);)voidaddnew(node*phead)structnode*p,*q;printf(〃請(qǐng)輸入新職工編號(hào)年齡和性別!\n");p=(structnode*)malloc(sizeof(structnode));scanf%d,%c”,&p->No,&p->age,&p->sex);q=phead->next;while(q->next!=NULL)q=q->next;q->next=p;p->next=NULL;)voiddel(structnode*phead,longnum)(structnode*p,*q;if(phead->next=NULL)(printf(^Listisnull.\n");return;)p=phead->next;q=phead;while(p!=NULL&&p->No!=num)(Q=P;p=p->next;}if(p==NULL)return;if(q!=NULL)(p=q->next;q->next=p->next;free(p);})node*delToOther(node*phead)(structnode*h,*p,*q,*r;h=(structnode*)malloc(sizeof(structnode));q=phead;p=phead->next;r=h;while(p!=NULL)(if(((p->sex==,||p->sex=,m,)&&p->age>=60)||((p->sex==,||p->sex==,f,)&&p->age>=55))q->next=p->next;r->next=p;r=p;r->next=NULL;p=p->next;)else{q=P;p=p->next;)}returnh;)intmain()(charch;longnum;structnode*phead,*prest;printfCl.創(chuàng)建鏈表.\n2.統(tǒng)計(jì)男女職工人數(shù).\n3.添加新員工.\n4.刪除指定編號(hào)的職工.\n5.刪除60歲以上的男員工和55歲以上的女員工.\nEnteryourchoice:12345");scanf&ch);while(ch!=0)(switch(ch){case1:phead=establish();break;case2:count(prest);break;case3:addnew(phead);break;case4:printf("請(qǐng)輸入要?jiǎng)h除的員工的編號(hào):\n");scanf&num);del(phead,num);break;case5:prest=delToOther(phead);break;default:break;)printfC\nl.創(chuàng)建鏈表.\n2.統(tǒng)計(jì)男女職工人數(shù).\n3.添加新員工.\n4.刪除指定編號(hào)的職工.\n5.刪除60歲以上的男員工和55歲以上的女員工.\nEnteryourchoice:12345!");scanf&ch);C語言程序設(shè)計(jì)精選樣卷(二)得益評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、以下c語言用戶標(biāo)識(shí)符中,不合法的是OA、_1BnAaBcC、abD、a--b()2、設(shè)有如下定義:strucksk(inta;floatb;}data;int*p;若要使P指向data中的a域,正確的賦值語句是。A、p=&a;B、p=data.a;C、p=&data.a;D、*p=data.a;()3、在c語言中,if語句后的一對(duì)原括號(hào)中,用以決定分支的流程的表達(dá)式0A、只能用邏輯表達(dá)式B、只能用關(guān)系表達(dá)式C、只能用邏輯表達(dá)式或關(guān)系表達(dá)式D、可用任意表達(dá)式()4、c語言中while和do-while循環(huán)的主要區(qū)別是 。A、do-while的循環(huán)體至少無條件執(zhí)行一次B、while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格C、do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)D、do-while的循環(huán)體不能是復(fù)合語句()5、要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,下列語句中錯(cuò)誤的是.A、intx[3]=0>0,0;B、intx[]=0;C、staticintx[3]=0;D、intx[]=()6、下列程序段的輸出結(jié)果為ofloatx=213.82631;printf("%3d",(int)x);A、213.82B、213.83C、213D、3.8()7、若有以下定義和語句:intw[2][3],(*pw)[3];pw=w;則對(duì)w數(shù)組元素非法引用是*(w[0]+2)*(pw+1)[2]pw[0][0]*(pw[l]+2)()8、若變量均已正確定義并賦值,以下合法的c語言賦值語句是。A、x=y==5;B、X=n%2.5:x+n=i;x=5-4+l:()9、下列關(guān)于串的敘述中,哪一條是正確的()A、串是由至少1個(gè)字符組成的有限序列B、串中字符的數(shù)目就是串的長度C、空串就是由空格構(gòu)成的串D、串只能順序存儲(chǔ)()10、有數(shù)組:chara[]="thisisanegg";。請(qǐng)問該數(shù)組到底占了幾個(gè)字節(jié)?A、11B、12C、14D、15()11、設(shè)有語句:p設(shè)ntf(句2d\n”,2010);,則以下敘述正確的是。A、程序運(yùn)行時(shí)輸出20B、程序運(yùn)行時(shí)輸出10C、程序運(yùn)行時(shí)輸出2010D、指定的輸出寬度不夠,編譯出錯(cuò)()12、先用語句定義字符型變量c,然后要將字符a賦給c,則下列語句中正確的是。A>c-a,;c-*a*;c="97";D、C='97'()13、若二維數(shù)組a有m列,則計(jì)算任一元素在數(shù)組中相對(duì)位置的公式為(假設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上)oi*m+jj*m+Ii*m+j-li*m+j+l()14、設(shè)有如下枚舉類型定義:enumlanguage(basic=3,assembly,ada=100,cobol,fortran};枚舉量fortran的值為。A、4B、7C、102D、103()15、閱讀下面的程序#include<stdio.h>main()(charcl,c2;cl-getchar();c2=cl+3;printfC%c,%d\n*,c2,c2);)已知'a'的ascii的值為65,如果從鍵盤上輸入dV回車〉則程序的運(yùn)行結(jié)果是。A、D,68B、'G',68C、D,71D、G,71()16、在下列敘述中,正確的一條是oA、if(表達(dá)式)語句中,表達(dá)式的類型只限于邏輯表達(dá)式B、語句"got。12;”是合法的C、for(;;)語句相當(dāng)于while(1)語句D、break語句可用于程序的任何地方,以終止程序的執(zhí)行()17、以下敘述中正確的是-A、使用typedef定義新類型名后,新類型名與原類型名實(shí)際上是等價(jià)的B、結(jié)構(gòu)體類型中的各個(gè)成分均不能是數(shù)組或指針C,結(jié)構(gòu)體類型的變量,不能在聲明結(jié)構(gòu)體類型組成時(shí)一起定義D、元素為結(jié)構(gòu)體類型的數(shù)組,只能在聲明過結(jié)構(gòu)體類型之后,單獨(dú)進(jìn)行定義()18、有以下程序:main()(chara-a',b;printf(*%c,++a);printf('%c\n*,b=a++):)程序運(yùn)行后的輸出結(jié)果是。A、b,bB、b,cC、a,bD、a,c()19、下列關(guān)于字符串的說法中錯(cuò)誤的是oA、在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志B、’'0'作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長度C、在表示字符串常量的時(shí)候不需要人為在其末尾加入''0'D、在C語言中,字符串常量隱含處理成以'\0'結(jié)尾()20、當(dāng)定義一個(gè)結(jié)構(gòu)體變量時(shí),系統(tǒng)為它分配的內(nèi)存空間是oA、結(jié)構(gòu)中一個(gè)成員所需的內(nèi)存容量B、結(jié)構(gòu)中第一個(gè)成員所需的內(nèi)存容量C、結(jié)構(gòu)體中占內(nèi)存容量最大者所需的容量D、結(jié)構(gòu)中各成員所需內(nèi)存容量之和得分 評(píng)卷入二、填空題(共10題,每題2分,共計(jì)20分)得分 評(píng)卷人1、若要定義一個(gè)單精度實(shí)型變量f,則應(yīng)該使用的定義語句為。2、數(shù)字'0'的ascii碼值為多少()3、已知"floatx-0.5;inty=13;",則算術(shù)表達(dá)式"x+y/5”的值是。4、在c語言中,以開頭的常量代表的是八進(jìn)制數(shù)。5、僅由順序、選擇(分支)和重復(fù)(循環(huán))結(jié)構(gòu)構(gòu)成的程序是程序。6、程序結(jié)果:voidmain()(inta,b,sum;a=123;b=456;sum-a+b;printf(^sumis%d\n*,sum);)7、c語言規(guī)定,可執(zhí)行程序的開始執(zhí)行點(diǎn)是o8、在c語言中,一個(gè)函數(shù)一般由兩個(gè)部分組成,它們是【1】和【2】。9、以下程序輸出的結(jié)果是。intff(intn)(staticintf=l;f=f*n;returnf;)main()(inti;for(i-1;i<=5;i++)printf ff(i));10、請(qǐng)閱讀下面的程序,當(dāng)用戶從鍵盤輸入hell。world時(shí),分析程序是否能編繹通過并正確運(yùn)行,如果不能,說明原因;如果能,請(qǐng)寫出運(yùn)行結(jié)果。voidmain()(charstr[256];scanf( );printf( );
得分評(píng)卷人hello得分評(píng)卷人hello三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:編一程序每個(gè)月根據(jù)每個(gè)月上網(wǎng)時(shí)間計(jì)算上網(wǎng)費(fèi)用:費(fèi)用計(jì)算規(guī)則如下:1)小于等于10小時(shí) 30元2)10?50小時(shí) 每小時(shí)3元3)大于等于50小時(shí) 每小時(shí)2.5元要求當(dāng)輸入每月上網(wǎng)小時(shí)數(shù),顯示該月總的上網(wǎng)費(fèi)用(本題10分)2、編寫程序:假設(shè)獎(jiǎng)金稅率如下(a代表獎(jiǎng)金,1?代表稅率)500<=a<1000r=5%1000<=a<2000r=8%2000<=a<3000r=10%3000V=ar=15%輸入的一個(gè)獎(jiǎng)金數(shù),求稅率和應(yīng)繳稅款以及實(shí)得的獎(jiǎng)金數(shù)(扣除獎(jiǎng)金稅后)。(本題14分)3、編寫程序:編程實(shí)現(xiàn)輸入5個(gè)學(xué)生的學(xué)號(hào)、計(jì)算他們的期中和期末成績,然后計(jì)算其平均成績,并輸出成績表(本題16分)【C語言程序設(shè)計(jì)精選樣卷(二)參考答案】一、單項(xiàng)選擇題1、D2、C3、D4、A5、D【解析】選項(xiàng)D中整型數(shù)組x的第一個(gè)元素是NULL不是0,故選D。6、C7、B8、A9、B【解析】串(或字符串)是由零個(gè)或多個(gè)字符組成的有限序列,零個(gè)字符的串是空串,串中字符的數(shù)目就是串的長度,串的存儲(chǔ)方式有順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩種。串的基本運(yùn)算有連接、賦值、求長度、全等比較、求子串、找子串位置以及替換等。10、D11、C【解析】printf函數(shù)格式化字符串的一般形式為:[標(biāo)志][輸出最小寬度][精度][長度]類型。對(duì)表示結(jié)果以十進(jìn)制形式輸出帶符號(hào)的整數(shù),數(shù)字2表示輸出的最小寬度為2,若實(shí)際位數(shù)多于2,則按實(shí)際位數(shù)輸出,所以程序輸出2010,答案選Co12、A13、A14、C15、D16、C17、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)中可以一起定義。18、A【解析】程序中的第一條輸出語句輸出表達(dá)式++a的值,即輸出a+1的值,而此時(shí)a的值為'a',所以第一條輸出語句輸出的值為'b';第二條輸出語句中輸出表達(dá)式b=a++的值,即輸出a的值,而此時(shí)a的值為'b',所以第二條輸出語句輸出的值也為'b'。故選項(xiàng)A符合題意。19、B【解析】'\0'作為標(biāo)志占用存儲(chǔ)空間,但是不計(jì)入串的實(shí)際長度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。20、D二、填空題1、floatf2、483、2.5#2.5000004、05、「結(jié)構(gòu)化']6、sumis579o7、main函數(shù)8、【1】函數(shù)聲明【2】函數(shù)體9、1262412010、|"%s",str|"%s\n”,str【解析】輸入hell。world時(shí),中間的空格對(duì)scanf()函數(shù)來說是終止符,后面的內(nèi)容無法讀取。三、編程題1、ttinclude<stdio.h>voidmain(){inthour;floatfee;printf("pleaseinputhour:\nw;scanf( ,&hour);if(hour<=10)fee=30;elseif(hour>=10&&hour<=50)fee=3*hour;elsefee=hour*2.5;printf("Thetotalfeeis%fw,fee);)2、題中r代表稅率,t代表稅款,b代表實(shí)得獎(jiǎng)金數(shù)。此為分段稅率,用switch...case語句方便計(jì)算。當(dāng)輸入a后,利用整除的特性,把獎(jiǎng)金a的值除以500取商作為switch語句的判斷條件。#include<stdio.h>main()floata,r,t,b;intc;scanf("%f",&a);if(a>=3000)c=6elsec=a/500;switch(c)(case0:r=0;break;case1:r=0.05;break;case2:case3:r=0.08;break;case4:case5:r=0.1;break;case6:r=0.15;break;)t=a*r;b=a-t;printf(*r=%f,t=%f,b=%f”,r,t,b);)3、^include<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");scanfstu[i].num);printf("pleaseinputmid_examscore:\n");scanf("%f”,&stu[i].score_mid);printf("pleaseinputfinal_examscore:\n");scanfscore_final);)for(i=0;i<5;i++)(sum_mid+=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 stu[i].num);printf("%g\t",stu[i].score_mid);printf("%g\t",stu[i].score_final);printf("\n");)printf("期中平均分:%g\n",ave_mid);printf("期末平均分:%g\n*,ave_final);return0;C語言程序設(shè)計(jì)精選樣卷(三)得益評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于.A、操作數(shù)乘以2B、操作數(shù)除以2C、操作數(shù)除以4D、操作數(shù)乘以4()2、若d為double型變量,則表達(dá)式d=l,d+5,d++的值是.A、1B、6)0C、2)0D、1)0()3、在嵌套使用if語句時(shí),c語言規(guī)定else總是。A、和之前與其具有相同縮進(jìn)位置的if配對(duì)B、和之前與其最近的if配對(duì)C、和之前與其最近的且不帶else的if配對(duì)D、和之前的第一個(gè)if配對(duì)()4、下述for循環(huán)語句。inti,k;for(i=0,k=-l:k=l;i++,k++)printf("****");A、判斷循環(huán)結(jié)束的條件非法B、是無限循環(huán)C、只循環(huán)一次D、一次也不循環(huán)()5、對(duì)于if(表達(dá)式)語句,以下說法正確的是.A、“表達(dá)式”的值只能是整數(shù)值B、在“表達(dá)式”中不能調(diào)用返回整數(shù)的函數(shù)C、在“表達(dá)式”中不能含有函數(shù)調(diào)用D、“表達(dá)式”可以是算術(shù)表達(dá)式在Alrlte山j(luò)田—甘心二五上177日附日)o>I、外承1十后,RJT而jnj彳木另出他用TR|/|、|RJHJ7E。A、if(a)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf(rt%d\nw,y);elseprintf("%d\n",x);C、if(a!=O)printf(“%d\n”,x);elseprintf("%d\n",y);D>if(a==0)printf(rt%d\nw,x):elseprintf("%d\n",y);()7、有以下程序main()(inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;for(i=0;iV3;i++)for(k=i+l;k<4;k++)if(a[i][i]<a[k][k])(t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}for(i=0;i<4;i++)printf(*%d,*,a[O][i]);)程序運(yùn)行后的輸出結(jié)果是.TOC\o"1-5"\h\z6, 2, 1, 1,6, 4, 3, 2,1, 1, 2, 6,D、2, 3, 4, 6,()8、關(guān)于程序中的注釋,以下敘述正確的是oA、注釋的內(nèi)容必須放在/*和*/之間B、注釋必須置于所說明的語句前或語句后C、注釋中間可以嵌套另一個(gè)注釋D、注釋內(nèi)容錯(cuò)誤會(huì)導(dǎo)致編譯出錯(cuò)()9、有以下程序voidfun(chars[][10],intn)(chart;inti,j;for(i=0;i<N-l;I++)for(j=i+l,jVN;J++)}/*比較字符串的首字符大小,并交換字符串的首字符*/if(s[i][O])>S[j][O]){t=s[i][O];s[i][O]=s[j][0];)main()(charss[5][10]={"bcc","bbccw,"xy","aaaacc","aabcc”);fun(ss,5);printf(w%s,%s”,ss[O],ss[4]);)程序運(yùn)行結(jié)果是。xy,aaaaccaaaacc,xyXCC,aabccace,xabcc()10、下面程序的運(yùn)行結(jié)果是#include<stdio.h>main()(staticchara[]="languagef",b口="programe”;char*pl,*p2;intk;pl=a;p2=b;for(k-0;k<=7;k++)if(*(pl+k)=*(p2+k))printf ;)A、gaeB、gaC、LanSuageD、有語法錯(cuò)()11、以下錯(cuò)誤的描述是:函數(shù)調(diào)用可以oA、出現(xiàn)在執(zhí)行語句中B、出現(xiàn)在一個(gè)表達(dá)式中C、做為一個(gè)函數(shù)的實(shí)參D、做為一個(gè)函數(shù)的形參()12、c語言的編譯系統(tǒng)對(duì)宏定義的處理是oa、伍任rr任及tj也[」叫B、在程序運(yùn)行時(shí)進(jìn)行的C、在對(duì)源程序中的其它語句進(jìn)行編譯前進(jìn)行的D、和C程序中的其它語句同時(shí)進(jìn)行編譯的()13、有字符數(shù)組a[80]和b[80],則正確的輸出語句是。A、puts(a,b);B、printf(*%s,%s*,a[],b[]);C、putchar(a,b);D、puts(a),puts(b);()14、若有以下說明語句: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)體成員名()15、有以下程序main()(inta,b,d=25:a=d/10%9;b=a&&(-l);printf(*%d,%d”,a,b);)程序運(yùn)行后的輸出結(jié)果是。A、6,1B、2,1C、6,0D、2,0()16、從循環(huán)體內(nèi)某一層跳出,繼續(xù)執(zhí)行循環(huán)外的語句是:,A、break語句B、return語句C、continue語句D、空語句。()17、有以下程序#include<stdlib.h>structnode(intnum;structnode*next;};main()(structnode*p,*q,*r;intsum=0;p=(structnode*)malloc(sizeof(structnode));q=(structnode*)malloc(sizeof(structnode));r=(structnode*)malloc(sizeof(structnode));p->num=l;q->num=2;r->num=3;p->next=q;q->next=r;r->next=null;sum+=q->next->num;sum+=p->num;printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是.A、3B、4C、5D、6()18、有以下程序#include<stdio.h>mainO(intx,y,z:x=y=l;z=x++,y++,++y:printf("%d,%d,%d\n*,x,y,z);)
程序運(yùn)行后的輸出結(jié)果是OA、2,3,1B、2,3,2C、2,3,3D、2,2,1()19、以下正確的定義語句是.A、intintA[8,3];intA[][9];intA[5];()20、c語言中用于定義類的關(guān)鍵字是。classstructdefault得分評(píng)卷人sizeof二、填空題(共10題,每題2分,共計(jì)20分)1、表達(dá)式5%(-3)的值是,表達(dá)式-5%(-3)的值是 。2、在C語言的表達(dá)式中,x=x+5用復(fù)合運(yùn)算符可以寫成o3、c語言約定用作為字符串的結(jié)束標(biāo)志。4、在c語言中,標(biāo)識(shí)符是由()、數(shù)字、下劃線組成的。5、main()(inta,b;for(a=l,b-1;a<=100;a++)(if(b>=20)break;if(b%3==l)(b+=3;continue;)b-=5;
程序的輸出結(jié)果a的值為。6、程序運(yùn)行結(jié)果是.voidswap(inta[2])(intt;t=a[0];a[0]=a[l];a[l]=t;)voidmain()(intx[2]={5,8};swap(x);printf(*x[0]=%d,x[l]=%d\n",x[0],x[l]);)7、在c語言中,將字符串中小寫字母轉(zhuǎn)換成大寫字母的函數(shù)是 68、C標(biāo)準(zhǔn)庫函數(shù)中,字符串的處理函數(shù)包含在頭文件中,數(shù)學(xué)函數(shù)包含在math.h頭文件中。9、以下程序運(yùn)行結(jié)果是。voidswap2(int*x,int*y)(intt;t=*x;*x=*y;*y=t;)voidmain()(inta=100,b=200;swap2(&a,&b);printf("%d,%d”,a,b);)10、有定義inta=T;則pirntf("%d,a")的輸出結(jié)果是o得分評(píng)卷入得分評(píng)卷入三、編程題(共3題,每題分值不等,共計(jì)40分)1、輸出Fibonacci數(shù)列的前40項(xiàng)(本題10分)2、編寫程序:在第一個(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è)元素(本題14分)3、若有以下銀行卡信息:structcard{intid;〃銀行卡號(hào)intbonus:〃金額);請(qǐng)編寫程序,從鍵盤輸入5條銀行卡記錄,使用結(jié)構(gòu)體數(shù)組存儲(chǔ)這些數(shù)據(jù),并按金額升序排序,輸出排序后的結(jié)果?!据斎胄问健?條銀行卡記錄分行輸入,每行數(shù)據(jù)用空格間隔【輸出形式】分5行輸出數(shù)據(jù),每行數(shù)據(jù)均使用空格間隔【輸入樣例】100120100280100350100410100640【輸出樣例】100410100120100640100350100280(本題16分)[C語言程序設(shè)計(jì)精選樣卷(三)參考答案】一、單項(xiàng)選擇題1、D2、D3、C4、B5、D【解析】C語言規(guī)定,if(表達(dá)式)語句中的“表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式,甚至是數(shù)值表達(dá)式,允許函數(shù)調(diào)用,但調(diào)用函數(shù)的返回值必須符合要求,因此選項(xiàng)ABC錯(cuò)誤,選項(xiàng)D正確;本題答案為D6、D7、B【解析】本題使用選擇法對(duì)二維數(shù)組對(duì)角線上的元素按從大到小的順序進(jìn)行排列。最后輸出數(shù)組第一行的數(shù)據(jù)。故本題答案為B)。8、A9、D10、A【解析】考查用指針來引用字符數(shù)組元素的方法。[解題要點(diǎn)]指針pl+k相當(dāng)于指針pl向后移動(dòng)了k個(gè)字符的位置,指針p2同理。11、D12、C【解析】所謂“編譯預(yù)處理”就是在C編譯程序?qū)源程序進(jìn)行編譯前,由編譯預(yù)處理程序?qū)@些編譯預(yù)處理命令進(jìn)行處理的過程。宏定義屬于預(yù)處理命令,在對(duì)源程序中的其它語句進(jìn)行編譯前進(jìn)行的。本題答案為C選項(xiàng)。13、D14、C15、B16、A17、B18、A【解析】對(duì)于表達(dá)式“z=x++,y++,++y;",因?yàn)橘x值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符的優(yōu)先級(jí),所以可以將上式改成“(z=x++),(y++),(++y)”。然后從左向右先計(jì)算表達(dá)式z=x++,因?yàn)閤++先使用后自增,所以z的值為1,x的值為2。再計(jì)算逗號(hào)表達(dá)式第二個(gè)表達(dá)式y(tǒng)++,此時(shí)y的值為1,y++的值第31/132頁為2o最后計(jì)算第三個(gè)表達(dá)式++y,y的值為3。故本題答案為A。19、D【解析】本題主要考查的知識(shí)點(diǎn)為數(shù)組的定義。[要點(diǎn)透析]一維數(shù)組的定義格式為;數(shù)據(jù)類型數(shù)組名[長度];二維數(shù)組定義格式為:數(shù)據(jù)類型數(shù)組名[行長度][列長度];其中長度、行長度、列長度均為“整型常量表達(dá)式”,通常為整型常量,故A、B項(xiàng)錯(cuò)誤。在二維數(shù)組中,若給所有元素賦初值,則行長度可以省略,故C項(xiàng)錯(cuò)誤。20、A【解析】C中類定義的關(guān)鍵字是class。class不能大寫。二、填空題1、['2','-2']2、x+=53、''0'#\04、英文字母#字母5、86、x[0]=8,x[l]=57^strupr#strupr()#strupr(字符串)string.h200,10010、['-1,177777']三、編程題1、ftincludevoidmain()(inta[40]={l,1}:inti;printf(*%12d%12d*,a[0],a[l]);for(i=2;i<40;i++)(if(i%4==0)printf("\n");a[i]=a[i-l]+a[i-2];printf(*%12d*,a[i]);)printf('\n");2、ttinclude<stdio.h>main()(inti,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('\n");)3、ttinclude<stdio.h>ttinclude<stdlib.h>structcard(intid;〃銀行卡號(hào)intbonus;〃金額}a[5],tamp;intmain()(inti,j:for(i=0;i<5;i++)scanf("%d%d”,&a[i].id,bonus);for(i=1;i<5;i++)(for(j=0;j<5-i;j++)(if(a[j].bonus>a[j+l].bonus)(tamp=a[j];a[j]=a[j+l];a[j+l]=tamp;}))for(j=0;j<5:j++)printf("%d%d\n",a[j].id,a[j].bonus):C語言程序設(shè)計(jì)精選樣卷(四)得分評(píng)卷人得分評(píng)卷人一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、C語言中的標(biāo)識(shí)符第一個(gè)字符。A、必須為字母B、必須為下劃線C、必須為字母或下劃線D、可以是字母,數(shù)字和下劃線中任一種字符()2、設(shè)a為整型變量,下列選項(xiàng)中不能正確表達(dá)數(shù)學(xué)關(guān)系:10VaV15.A、10<a<15B、a==ll||a==12C、a>10&&a<15D、!(a<=10)&&!(a>=15)()3^設(shè)a、b、e、d、m、n均為int型變量,且a=5、b=6>c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值是.A、0B、1C、2D、3()4、有以下程序ttinclude<stdio.h>mainO(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\n”,a,b);)程序的運(yùn)行結(jié)果是oa=l,b=0a=2,b=2C>a=l,b=la=2,b=l()5、下列程序的輸出結(jié)果是ovoidf(int*x,int*y)(intt;t=*x,*x=*y;*y=t;)main()(inta[8]={l,2,3,4,5,6,7,8},i,*p,*q;P=a;q=&a[7];while(p<q)(f(P,q);P++;q-;)for(i=0;i<8;i+)printf(w%d,",a[i]):)A、8,2,3,4,5,6,7,1B、5,6,7,8,1,2,3,4C、1,2,3,4,5,6,7,8D、8,7,6,5,4,3,2,1()6、以下選項(xiàng)中合法的c語言賦值語句是++i;a=b=34C、a=3,b-9D、k-int(a+b);()7、若有定義:inta[2][3];以下選項(xiàng)中對(duì)a數(shù)組元素正確引用的是。A、a[2][!l]B、a[2][3]C、a[0][3]D、a[l>2][!1]()8、下列不是合法的c語言語句是oA、a=5B、inti;i++;C、;D、;()9、宏定義是最常用的預(yù)處理功能之一,它用于將一個(gè)標(biāo)識(shí)符定義為一個(gè)A、單精度數(shù)B、雙精度數(shù)C、常量D、字符串()10、有如下程序#include<stdio.h>voidmain()(charch[80]="123abcdefg*&”;intj;longs-0;puts(ch);for(j=0;ch[j]>'\0';j++)if(ch[j]>="a&&ch[j]<=,z)ch[j]=ch[j]+,e'->e*;puts(ch);)該程序的功能是?A、測字符數(shù)組ch的長度B、將數(shù)字字符串ch轉(zhuǎn)換成十進(jìn)制數(shù)C、將字符數(shù)組ch中的小寫字母轉(zhuǎn)換成大寫D、將字符數(shù)組ch中的大寫字母轉(zhuǎn)換成小寫()11、以下敘述中正確的是OA、函數(shù)既可以直接調(diào)用自己,也可以間接調(diào)用自己B、任何情況下都不能用函數(shù)名作為實(shí)參C、函數(shù)的遞歸調(diào)用不需要額外開銷,所以效率很高D、簡單遞歸不需要明確的結(jié)束遞歸的條件()12、以下是不正確的轉(zhuǎn)義字符。A、’7B、'\'C、D、'\0'()13、以下程序的輸出結(jié)果為。main()(inta=l,b=2,c=3,d=4,e=5;printf(飛d\n”,func((a+b,b+c,c+a),(d+e)));)intfunc(intx,inty)(return(x+y);)A、15B、13C、9D、函數(shù)調(diào)用出錯(cuò)()14、c語言中,定義結(jié)構(gòu)體的保留字是?unionstructenumtypedef()15、以下程序段運(yùn)行結(jié)果是.intx=l,y=l,z=-l;x+=y+=z;printf(飛d'n”,xVy?y:x);A、1B、2C、4D、不確定的值()16、循環(huán)語句"for(i=l;i<0;i++)i++;”的循環(huán)次數(shù)是。A、無限循環(huán)B、2次C、1次D、0次()17、有以下結(jié)構(gòu)體說明、變量定義和賦值語句structstd(charname[10];intage:charsex;)s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語句中錯(cuò)誤引用結(jié)構(gòu)體變量成員的是.A、scanfS[0].name):B>scanf("%d”,&s[0].age);C、scanf("%C”,&(ps->sex));D>scanf("%d”,ps->age);()18、下列程序段運(yùn)行后從鍵盤輸入一個(gè)大寫字母q,輸出結(jié)果是charch;ch=getchar();ch=ch-'a'+'a';putchar(ch);A、QB、qC、AD、a()19、數(shù)組a[L.5,1..6]的每個(gè)元素占5個(gè)單元,將其按行優(yōu)先順序存儲(chǔ)在起始地址為1000的連續(xù)的內(nèi)存單元中,則元素a[5,5]的地址為(15).1140114511201125()20、定義共用體的關(guān)鍵字是。unionenumstructtypedef得分評(píng)卷人am
得分評(píng)卷人二、艱至題(吳得分評(píng)卷人二、艱至題(吳1。題,母題Z分,變1TZ&ZN1、局部變量的作用域是從定義的位置起,到結(jié)束止。2、執(zhí)行下面程序段后,k值是。intk=l,n=263;do(k*=n%10;n/=10;)while(n);3、算術(shù)表達(dá)式a=b+3中,a、b稱為變量,3稱為 量,=、+稱為運(yùn)算符。4、C程序的運(yùn)行需要經(jīng)過和鏈接兩步進(jìn)行。5、符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和。6、下列程序段的運(yùn)行結(jié)果是。intb=20,*q;q=&b;printf*q);7、將arr傳參到子函數(shù),接受處。內(nèi)函數(shù)定義該怎么寫?8、在定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名稱為。9、下面程序的運(yùn)行結(jié)果是。#include<stdio.h>main()(inti,t,sum=O;for(t=i-l;i<=10;)(sum+=t;++i;if(i%3==0)t=-i;elset-i;)printf("sum=%d”,sum);)10、以下程序運(yùn)行結(jié)果是。#include<stdio.h>voidmain()(intx,y=l;if(y!=O)x=5;printf(*\t%d\n*,x);
if(y==0)x=4;elsex=5;printf("\t%d\n',x);x=l;if(y<0)if(y>0)x=4;elsex=5;printf("\t%d\n”,x);得分評(píng)卷人得分評(píng)卷人三、編程題(共3題,每題分值不等,共計(jì)40分)1、編寫程序:實(shí)現(xiàn)求1-1000之間的所有奇數(shù)的和并輸出。(本題10分)2、編寫程序,將從鍵盤輸入的10個(gè)整數(shù)按升序排列輸出。(本題14分)3、編寫input。和output。函數(shù),輸入輸出5個(gè)學(xué)生記錄,每個(gè)記錄包括num、name、score[3],使用結(jié)構(gòu)體實(shí)現(xiàn)。(本題16分)【C語言程序設(shè)計(jì)精選樣卷(四)參考答案】一、單項(xiàng)選擇題1、c2、B【解析】B選項(xiàng)中得到的a值不能使10VaV15成立。3、C4、D5、D【解析】函數(shù)f()的功能是對(duì)兩個(gè)數(shù)據(jù)互換。在主函數(shù)中指針變量P和q分別指向數(shù)組a[8]的首和尾,在while循環(huán)中實(shí)現(xiàn)從首尾開始數(shù)組元素的互換操作。6、A【解析】賦值語句是在賦值表達(dá)式末尾加上分號(hào)構(gòu)成的。B、C選項(xiàng)缺少分號(hào),不是合法語句。D選項(xiàng)為強(qiáng)制類型轉(zhuǎn)換賦值語句,但是int缺少括號(hào),是非法語句。++i相當(dāng)于i=i+l:,是合法賦值語句,A選項(xiàng)正確。7、D8、A【解析】選項(xiàng)A)是一個(gè)表達(dá)式,它后面沒有分號(hào)結(jié)尾(C語言中規(guī)定語句必須以分號(hào)結(jié)束),所以它不是語句;選項(xiàng)B)用一個(gè)花括號(hào)把幾條語句括起來了,這是一個(gè)復(fù)合語句;選項(xiàng)C)中只有一個(gè)分號(hào),是一個(gè)空語句;選項(xiàng)D)是個(gè)復(fù)合語句,也是一個(gè)空語句。9、D【解析】宏定義是最常用的預(yù)處理功能之一,它用于將一個(gè)標(biāo)識(shí)符定義為一個(gè)字符串。這樣,在源程序被編譯器處理之前,預(yù)處理器會(huì)將標(biāo)識(shí)符替換成所定義的字符串。10、D11、A【解析】函數(shù)直接或間接調(diào)用自己,稱為遞歸調(diào)用,所以選擇A。12、C13、B14、B15、A16、D17、D【解析】在scanf函數(shù)中,第二個(gè)參數(shù)應(yīng)該表示為地址變量,而選項(xiàng)D)只是一個(gè)具體的值,而并不是一個(gè)地址值。18、B19、A【解析】注意是按行優(yōu)先順序存儲(chǔ)。20、A二、填空題1、函數(shù)2、「36']3、常4、編譯5、['順序結(jié)構(gòu)']6、207、int*arr8、形參sum=1910、515,1【解析】上程序中第三個(gè)if語句有嵌套,前兩個(gè)if語句沒有嵌套。前兩個(gè)if語句根據(jù)y=l便可得知輸出結(jié)果均為5;最后一個(gè)if語句,根據(jù)條件yVO便知不成立,后續(xù)語句無法執(zhí)行,只好輸出前一賦值語句x=l的值。三、編程題1、itinclude<stdio.h>voidmain(){inti,sum=0;for(i=l;i<1000;i=i+2)sum=sum+i;printf("thesumofoddis:%d",sum);)2、ttinclude<stdio.h>voidmain()(inta[10],i,j,t;printf("請(qǐng)輸入10個(gè)整數(shù)\n");for(i=0;i<10;i++)scanf("%d”,&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]>a[j+1])a[j]=a[j+1];a[j+1]=t;printf("排序結(jié)果:\n");for(i=0;i<10;i++)printfa[i]);)3、#include<stdio.h>structstudent{intnum;charname[20];intscore[3];}stu[5];voidinput(structstudent*pstu){intn,j;for(n=0;n<5;n++){printf("Inputstudentsnum:");scanf&pstu[n].num);printf('\n");printf("Inputstudentsname:");scanf&pstu[n].name);printf('\n");printf("Inputstudentsscore:");for(j=0;j<3;j++){scanf&pstu[n].score[j]);}printf('\n");))voidoutput(structstudentstu[]){inti=0,j;for(i;i<5;i++){printf("%d,%s”,stu[i].num,stu[i].name);for(j=0;j<3;j++){printf("%3d”,stu[i].score[j]);}printf("\n");))intmain(){voidinput(structstudent*pstu);voidoutput(structstudentstu[]);input(stu);output(stu);C語言程序設(shè)計(jì)精選樣卷(五)得益評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、變量的指針是.A、變量的值B、變量存儲(chǔ)單元的地址C、指針變量D、變量存儲(chǔ)單元的字節(jié)數(shù)()2、對(duì)于以下變量定義,正確的賦值是。int*p[3],a[3];A、p=a*p=a[0]p=&a[0]p[0]=&a[0]()3、能正確表示a210或aWO的關(guān)系表達(dá)式是.A、a>=10oraV=0B、a>=10||a<=0C、a>=10|aV=0D、a>=10&&a<=0()4、以下描述中正確的是。A、由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句B、do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式)后面不能寫分號(hào)C、在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷D>do-while循環(huán)中,根據(jù)情況可以省略while()5、下面各語句行中,能正確進(jìn)行給字符串賦值操作的語句行是ocharst[4][5]={*ABCDE*);B、chars[5]={'A','B','C','D','E'};char*s="ABCDE”;char*s;scanf("%s",*s);()6、若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12:A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)()7、若有以下的定義:intt[3][2]:能正確表示t數(shù)組元素地址的表達(dá)式是.&t[3][2]t[3]&t[l]t[2]()8、現(xiàn)代計(jì)算機(jī)中采用二進(jìn)制數(shù)制是因?yàn)槎M(jìn)制數(shù)的優(yōu)點(diǎn)是.A、代碼表示簡短,易讀B、物理上容易實(shí)現(xiàn)且簡單可靠;運(yùn)算規(guī)則簡單;適合邏輯運(yùn)算C、容易閱讀,不易出錯(cuò)D、只有0,1兩個(gè)符號(hào),容易書寫()9、以下選項(xiàng)中能表示合法常量的是<,A、整數(shù):1,200B、實(shí)數(shù):1.5E2.0C、字符斜杠:D、字符串:*\007*()10、下列說法正確的是.A、在c語言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù)定義元素個(gè)數(shù)可變的數(shù)組B、在C語言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)C、在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致D、在C語言中,定義一個(gè)數(shù)組后,就確定了它所容納的元素的個(gè)數(shù)()11、請(qǐng)選擇以下語句的輸出結(jié)果oprintf("%d\n",strlen("\t\"\065\xff'n"));A、5B、14C、8D、輸出項(xiàng)不合法,無正常輸出()12、如果將布爾常量值true賦值給一個(gè)整型變量,則整型變量的值為.A、0B、-1TrueFalse()13、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是1A、函數(shù)調(diào)用可以作為獨(dú)立的語句存在B、函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參C、函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D、函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參()14、設(shè)有以下語句typedefstructs(intg;charh;)t;則下面敘述中正確的是.A、可用S定義結(jié)構(gòu)體變量B、可以用T定義結(jié)構(gòu)體變量C、S是struct類型的變量D、T是structS類型的變量()15、以下程序的功能是進(jìn)行位運(yùn)算main()(unsignedchara,b:a=7-3;b=~4&3;printf(*%d%d\n*,a,b);)程序運(yùn)行后的輸出結(jié)果是.A>43B、73C、70D、40()16、下列關(guān)于continue和break的描述正確的是。A、continue只能用于循環(huán)體中B、break只能用于循環(huán)體中C、continue只是一個(gè)語句標(biāo)記D、break只能用于switch語句塊中()17、下列關(guān)于共用體類型變量的描述中,正確的是。A、可以對(duì)共用體變量直接賦值B、一個(gè)共用體變量可以同時(shí)存放其所有的成員C、一個(gè)共用體變量中不可以同時(shí)存放其所有的成員D、共用體類型定義中,不能出現(xiàn)結(jié)構(gòu)體類型的成員()18、要求下面的程序運(yùn)行后,顯示如下結(jié)果:21046152324785132則程序中的劃線處應(yīng)填入.#include<stdio.h>voidmain()(inta[4][4>{}inti,j;for(i-0;i<4;i++)(for(j=0;j<4;j++)printfa[i][j]);printf;A、(1,5,2,3},{2,4,7,8},{5,1,3,2)B、{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2)C、{5,1,3,2},{2,4,7,8},{5,2,3)D、(1,2,5},{10,5,4,1},{2,1,3},{3,8,2)()19、下面程序的輸出結(jié)果是#include<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()20、下列程序的輸出結(jié)果是#include<stdio.h>structabc(inta,b,c,s;);main()(structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0].a+s[1].b;printf(*%d\n*,t);)A、5B、6C、7得分評(píng)卷人D、8二、填空題(共10題,每題2分,共計(jì)20分)1、八進(jìn)制數(shù)37轉(zhuǎn)換成二進(jìn)制數(shù)是。2、全局的外部變量與函數(shù)體內(nèi)定義的局部變量同名時(shí),在函數(shù)體內(nèi),變量起作用。3^關(guān)系表達(dá)式x+y>5的相反表達(dá)式為。4、若a是int型變量,則計(jì)算下表達(dá)式a=25/3%3后,a的值為。5、在循環(huán)中,continue語句與break語句的區(qū)別是:continue語句是語句的區(qū)別是:continue語句是,break是。6、下面程序的運(yùn)行結(jié)果是。main()(intfor(i=2;i<10;i++)f[i]=f[i-2]+f[i-1];for(i-0;i<10;i++){if(i%4==0)printf(*\n*);printfr%3d\f[i]);})7、編譯預(yù)處理包括宏定義、文件包含、()等。8、在傳值調(diào)用中,實(shí)際是把實(shí)參的。9、下列程序段的運(yùn)行結(jié)果是omain()(intm-1,t=l;for(;;)(m^m+t;t++;if(m>9)break;)printf("%d\n〃,m);)10、以下程序的功能是計(jì)算:s=l+12+123+1234+12345。請(qǐng)?zhí)羁?。main()(intt=0,s=0,i;for(i=l;i<=5;i++){t=i+;s=s+t;}printf("s=%d\n”,s);三、編程題(共3題,每題分值不等,共計(jì)40分)1、輸入一行字符,將所有的小寫字母轉(zhuǎn)換成大寫字母,(本題io分)2、編寫程序輸入三位數(shù)(100—999),然后按數(shù)字逆序輸出。(例:輸入123/,輸出321)。(本題14分)3、編寫程序求解約瑟夫問題,有n個(gè)小孩圍成一圈,給他們從1開始編號(hào)?,F(xiàn)指定從第w個(gè)小孩開始報(bào)數(shù),報(bào)到s時(shí)出列然后從下個(gè)小孩開始重新報(bào)數(shù),報(bào)到s時(shí)出列如此重復(fù)下去直到所有的小孩都出列。求小孩出列的順序,使用結(jié)構(gòu)體實(shí)現(xiàn)。(本題16分)【C語言程序設(shè)計(jì)精選樣卷(五)參考答案】一、單項(xiàng)選擇題1、B2、D3、B4、C【解析】dowhile語句的一般形式為:do循環(huán)體語句while(表達(dá)式);,其中循環(huán)體語句可以是復(fù)合型語句,但必須用花括號(hào)括起來。while后必須要有分號(hào)作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。5、C6、D【解析】考查表達(dá)式的優(yōu)先級(jí)與結(jié)合性。[解題要點(diǎn)]運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識(shí)點(diǎn)是:x%=k,等價(jià)于x=x%k。[考點(diǎn)鏈接]強(qiáng)制類型轉(zhuǎn)換表達(dá)式。7、D8、B【解析】二進(jìn)制數(shù)只用“0”和“1”來存儲(chǔ),因此物理上容易實(shí)現(xiàn)且簡單可靠,運(yùn)算規(guī)則簡單,適合邏輯運(yùn)算。但不容易閱讀,易出錯(cuò)。9、D10、D11、A【解析】本題考查用strlen函數(shù)計(jì)算字符串長度的方法。該字符串中包含的字符是:"\t"(跳格符)、*\*"(雙引號(hào))、"\065+(ASCII值為八進(jìn)制065,也即十進(jìn)制為53的字符)、"\xff”(ASCII值為十六進(jìn)制ff,也即十進(jìn)制為255的字符)、〃\n”(換行符)。12、B13、D14、A15、A16、A17、C18、B19、C【解析】此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符“*”的優(yōu)先級(jí)高于“+”,所以輸出結(jié)果為P指向的元素1,然后加9,值為10。20、B【解析】在本題中,s[O].a=l,s[l].b=5,所以輸出結(jié)果為6。二、填空題1、111112、函數(shù)體內(nèi)定義的局部3、x+y!>54、25、['結(jié)束本次循環(huán),進(jìn)入下一次循環(huán)‘,’結(jié)束循環(huán)']6、參考答案:112358132134557、條件編譯8、地址傳給形參9、1110、三、編程題1、大寫字母轉(zhuǎn)換成小寫字母,其余字符不變。輸出轉(zhuǎn)變后的這行字符。#include"stdio.h"voidmain()(chara[n];inti;scanfa);printf("大寫為:”);for(i=0;i<=n;i++)(if(a<=,z'&&a>=,a)a-a-32;printf("枇",a);)printf("\n小寫為:”);for(i=0;i<=3;i++)(a=a+32;printfa);2^ttinclude<stdio.h>voidmain(){intn,ge,shi,bai;printf("請(qǐng)輸入一個(gè)三位正整數(shù):”);scanf&n);if((n<100)||(n>999))printf("輸入數(shù)據(jù)有誤!\n");else{ ge=n%10;shi=n/10%10;bai=n/100;printf("此數(shù)的逆序輸出結(jié)果為:%d%d%d\n”,ge,shi,bai);))3、#include<stdio.h>#include<stdlib.h>ttdefineN20#defineW2#defineS7structnode{intnum;/*編號(hào)*/structnode*next;};intmain()(structnode*head,*p,*q;inti;/*建立鏈表,共有N個(gè)結(jié)點(diǎn)*/p=q=head=(structnode*)malloc(sizeof(structnode));for(i=0;i<N;i++)(p->num=i+l;p=(structnode*)malloc(sizeof(structnode));if(i==N-l)continue;q->next=p;q=P;)/*鏈表頭和鏈表尾相連,形成單向循環(huán)鏈表*/q->next=head;p=head;while(p->num!=W)/*p指向第W個(gè)小孩,q指向p的前一個(gè)結(jié)點(diǎn)*/q=p;p=p->next;}printf(飛d個(gè)小孩的從第%d個(gè)開始報(bào)數(shù),報(bào)到%d時(shí)出列。出列順序?yàn)?\n”,N,W,S);while(p!=p->next)for(i=l;i<S;i++)(Q=P;p=p->next;)printf("%-4d”,p->num);q->next=p->next;/*p結(jié)點(diǎn)出隊(duì)列*/free(p);p=q->next;}printf("%-4d\n”,p->num);free(p);)C語言程序設(shè)計(jì)精選樣卷(六)得益評(píng)卷入 一、單項(xiàng)選擇題(共20題,每題2分,共計(jì)40分)()1、按照運(yùn)算符功能的劃分,運(yùn)算符==屬于。A、擴(kuò)展賦值運(yùn)算符B、二元運(yùn)算符C、算術(shù)運(yùn)算符D、關(guān)系運(yùn)算符()2、設(shè)有以下宏定義:#defineN3ttdefineY(n)((N+l)*n)則執(zhí)行語句:z=2*(N+Y(5+1));后,z的值為.A、出錯(cuò)B、42C、48D、54()3、若x和y是程序中的兩個(gè)整型變量,則下列if語句中正確的是.if(x==0)y=l;elsey=2:if(x—0)theny=lelsey=2;if(x==0)y=lelsey=2;ifx==0y=l;elsey=2:()4、若有程序段:x=99;while(x-2)x—;則循環(huán)結(jié)束時(shí),x=.A、99B、2C、1D、0()5、以下關(guān)于宏的敘述中正確的是oA、宏名必須用大寫字母表示B、宏定義必須位于源程序中所有語句之前C、宏替換沒有數(shù)據(jù)類型限制D、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間()6、下列語句中符合c語言語法的賦值語句是.a=7+b+c=a+7;a=7+b++=a+7;C、a=7+b,b++,a+7a=7+b,c=a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球電子鎮(zhèn)痛泵行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國正照式CMOS制冷相機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球生活用紙頭膠行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國奧美沙坦酯氫氯噻嗪片行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球帆布繪畫套件行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國防靜電HPL架空地板行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球ADAS清洗系統(tǒng)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國TGV激光微孔設(shè)備行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國導(dǎo)熱平臺(tái)和導(dǎo)熱板行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國13C-尿素呼氣測試試劑盒行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 醫(yī)療器械經(jīng)營規(guī)范培訓(xùn)
- 2024拳擊比賽計(jì)劃書
- 管道直飲水系統(tǒng)技術(shù)和方案
- 婦產(chǎn)科國家臨床重點(diǎn)??乞?yàn)收匯報(bào)
- 行政處罰-行政處罰種類和設(shè)定(行政法課件)
- 柔性機(jī)械臂的振動(dòng)控制
- DB34T 4510-2023 靜脈用藥調(diào)配中心潔凈區(qū)管理規(guī)范
- 【課件】免疫系統(tǒng)組成和功能(人教版2019選擇性必修1)
- 土力學(xué)與地基基礎(chǔ)(課件)
- IT系統(tǒng)災(zāi)備和容災(zāi)解決方案項(xiàng)目設(shè)計(jì)方案
- 青島版二年級(jí)數(shù)學(xué)下冊(cè)(六三制)全冊(cè)課件【完整版】
評(píng)論
0/150
提交評(píng)論