![計算機語言C沖刺卷(八套試卷)及答案_第1頁](http://file4.renrendoc.com/view/129a1fcbae7868dc4477ce8d99f756ff/129a1fcbae7868dc4477ce8d99f756ff1.gif)
![計算機語言C沖刺卷(八套試卷)及答案_第2頁](http://file4.renrendoc.com/view/129a1fcbae7868dc4477ce8d99f756ff/129a1fcbae7868dc4477ce8d99f756ff2.gif)
![計算機語言C沖刺卷(八套試卷)及答案_第3頁](http://file4.renrendoc.com/view/129a1fcbae7868dc4477ce8d99f756ff/129a1fcbae7868dc4477ce8d99f756ff3.gif)
![計算機語言C沖刺卷(八套試卷)及答案_第4頁](http://file4.renrendoc.com/view/129a1fcbae7868dc4477ce8d99f756ff/129a1fcbae7868dc4477ce8d99f756ff4.gif)
![計算機語言C沖刺卷(八套試卷)及答案_第5頁](http://file4.renrendoc.com/view/129a1fcbae7868dc4477ce8d99f756ff/129a1fcbae7868dc4477ce8d99f756ff5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機語言C沖刺卷(一)
(考試時間90分鐘,總分100分)
準考證號:姓名:一、單項選擇題(共20題,每題2分,共計40分)()1、下列屬于C語言合法的字符常數是O''97'B、"A"'\t,*\0\【答案】C【解析】C語言中字符常數是單引號括住的單個字符或轉義字符,轉義字符為“\”后跟一個特定字符或八進制或十六進制的整數。八進制數前面可以加0也可以不加0,十六進制前面只能加Ox。所以本題中,首先可以排除選項B和選項D,由于選項A中,97不是一個正確的八進制數,也不是正確的十六進制數,而選項C是正確的字符常數,它代表的是字符制表符tab。()2、下述共同體變量x所占用內存字節(jié)數為ounionexp(inti;floatj;doublek;)X;A、16個B、12個C、8個D、隨機而定【答案】C【解析】共用體占內存大小是根據其成員最大占內存大小來決定的。()3、以下選項中非法的表達式是oA、0<=x<100i=j==0(char)(65+3)D>x+l=x+l【答案】D()4、設變量a、b、e、d和y都已正確定義并賦值。若有以下if語句:if(a<b)if(c==d)y=0;elsey=l;該語句所表示的含義是。y=0,ay=0,ay=l,a2by—1,a2b且cWdy=0,ay=0,ay=l,aVB且C#D y="1,cWd【答案】C()5、有以下程序:ttinclude<stdio.h>main()(inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=O;i<9;i+=2)s+=*(t+i);printf("%d\n",s);)A、45B、20C、25D、36【答案】C【解析】程序中的*(t+i)相當于t[i]。由于for循環(huán)變量的增量為2,因此i分別取值0,2,4,6,8,因為t[2]=3,t[4]=5,t[6]=7,t[8]=9,對其進行求和運算,結果為25。()6、若各選項中所有變量已正確定義,函數fun中通過return語句返回一個函數值,以下選項中錯誤的程序是oTOC\o"1-5"\h\zA、mainO { x=fun (2,10); } floatfun(intA,intb){ }B、floatfun(intA,intb){ }main(){ x=fun(i,j); }C、floatfun(intint);mainOx=fun(2,10);}floatfun(intA,intb){x=fun(2,10);D、main()floatfun(inti,intj)floatfun(inti,intj);x=fun(i,j);}floatfun(intA,intb){【答案】A()7、一個c語言程序在一臺32位機器上運行。程序中定義了三個變量x,y,z,其中x和z是int型,v為short型。當x=127,y=-9時,執(zhí)行賦值語句z=x+y后,x,y,z的值分別是。A、x=0000007FH,y=FFF9H,z=00000076HBA、x=0000007FH,y=FFF9H,z=00000076HB、x=0000007FH,y=FFF9H,z=FFFF0076HC、x=0000007FH,y=FFF7H,z=FFFF0076HD、x=0000007FH,y=FFF7H,z=00000076H【答案】D【解析】考察符號位的擴展。結合題干及選項可知,int為32位,short為16位;又c語言的數據在內存中為補碼形式,故x、y的機器數寫為0000007F、FFF7H;執(zhí)行z=x+y時,由于x是int型,y為short型,故需將y的類型強制轉換為int,在機器中通過符號位擴展實現(xiàn),由于y的符號位為1,故在y的前面添加16個1,即可將y強制轉換為int型,其十六進制形式為FFFFFFF7H;然后執(zhí)行加法,即0000007FH+FFFFFFF7H=00000076H,其中最高位的進位1自然丟棄。()8、下面程序的功能是將從鍵盤輸入的一對數,由小到大排序輸出。當輸入一對相等數時結束循環(huán),請選擇填空。#include<stdio.h>main()(inta,b,t;scanf("%d%d”,&a,&b);while(){if(a>b)(t=a;a=b;b=t;)printf("%d,%d\n”,a,b);scanf("%d%d”,&a,&b);A、!a=bB、a!=bC^a==bD、a=b【答案】B()9、設有intx,y;xisequal以下語句判斷x和y是否相等,正確的說法是該語句.if(x=y)printf("toy.;xisequalA、語法錯B、不能判斷x和y是否相等C、編譯出錯D、能判斷x和y是否相等【答案】B()10、在c語言中,以作為字符串結束標志A、'\n'B、,,C、'0'D、''0'【答案】D()11、合法的數組定義是oA^inta[]="string”;B、inta[5]=0,1,2,3,4,5;C^chara="string”;D、chara=0,1,2,3,4,5;【答案】D()12、以下敘述中錯誤的是oA,函數形參的值也可以傳回給對應的實參B、函數調用可以作為一個獨立的語句存在C、若函數有返回值,必須通過return語句返回D、C程序必須由一個或一個以上的函數組成【答案】A【解析】函涉參熱傳送星個不可逆的過程.形參不會杷侑傳回室參.所以A冼項錯誤。()13、現(xiàn)代計算機中采用二進制數制是因為二進制數的優(yōu)點是oA、代碼表示簡短,易讀B、物理上容易實現(xiàn)且簡單可靠;運算規(guī)則簡單;適合邏輯運算C、容易閱讀,不易出錯D、只有0,1兩個符號,容易書寫【答案】B【解析】二進制數只用“0”和“1”來存儲,因此物理上容易實現(xiàn)且簡單可靠,運算規(guī)則簡單,適合邏輯運算。但不容易閱讀,易出錯。()14、字符串"xyz”在內存占用的字節(jié)數是oA、3B、4C、6D、8【答案】B【解析】字符串中的每個字符占1個字節(jié),但C程序在存儲字符串時,要在最后一個有效字符后面接上1個字符串結束的標記符'\0'。這樣,存儲字符串常量"XyZ”需要4個字節(jié)。所以解答是B。()15、有以下程序#defineN5SdefineMN+l#definef(x)(x*M)main(){inti1,i2;il=f(2);i2=f(1+1);printf(*%d%d”,il,i2);)程序的運行結果是oA、1212B、117C、1111D、127【答案】B)16、下萬ll程序的鐲山結里層#include<stdio.h>main()(inti,a=O,b=O;for(i=l;i<10;i++)(if(i%2==0)(a++;continue;)b++;)printf("a=%d,b=%d”,a,b);)a=4,b=4a=4,b=5a=5,b=4a=5,b=5【答案】B【解析】continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結尾,進行i++,判斷循環(huán)條件。()17、設有如下說明:typedefstruct(intn;charc;doublex;)std;則以下選項:能正確定義結構體數組并賦初值的語句是oA、STDtt[2]={{l,,A,,62},{2,'B',75}};B、STDtt[2]={l,*A*,62,2,*B*,75};C^struettt[2]={{1,*A*}?{2,'B'}};D、structtt[2]={{1,*A*,62.5},{2,*B*,75.0}};【答案】A【解析】本題定義了一個結構體類型并白定義類型名為STD,用戶自定義類型后,就可以利用它進行變量與數組的定義。定義的方法,與C語言中其它類型的定義完全一樣,定義結構型數組并賦初值時,每個元素用一對“{”和“廠括起來,字符型元素用…”括起來,選項A、B、C、D中只有選項A符合條件。所以,A選項為所選。()18、有以下程序Sinclude<string.h>main()(charstr[][20]={"hello","beijing"},*p=str;printf("%d\n”,strlen(p+20));)程序運行后的輸出結果是oA、0B、5C、7D、20【答案】C()19、下面說法正確的是oA,char*x,y,**str同時定義了三個變量,符合語法規(guī)范B、數組說明符的一對方括號中只能使用常量數值C、單精度浮點值也可以作為數組下標D、若有定義floatarr[2]則printf("%2.If",array[0.5])是合法的語句【答案】A【解析】定義數組時,一對方括號內為整型數據類型,可以是變量也可以是常量,選項B錯誤;訪問數組時,數組下標為整型數據,選項C,D錯誤。在選項A中,定義了3個變量,類型為char的變量x,類型為char的變量y類型為char的變量str本題答案為A選項。()20、下列選項中不屬于c語言的數據類型是oA、復數型B、邏輯型C、雙精度型D、集合型【答案】A【解析】在C語言中,數據類型可分為基本數據類型、構造數據類型、指針類型、空類型4大類,其中基本類型;字符型、整型、實型(單精度型和雙精度型)、枚舉類型。構造類型:數組、結構體、公用體。選項B中的邏輯型和C中雙精度類型都屬于基本數據類型,選項D集合類型屬于構造類型;而選項A復數型不是C語言的數據類型。二、判斷題(共10題,每題2分,共計20分)()1、C語言程序中,出現(xiàn)非法字符時會發(fā)出錯誤信息?!敬鸢浮空_()2、c語言中逗號運算符不是所有運算符中級別最低的?!敬鸢浮垮e誤()3、通過return語句,函數可以帶回一個或一個以上的返回值?!敬鸢浮垮e誤()4、for語句只能用于循環(huán)次數已經確定的情況【答案】錯誤()5、字符串"that"小于字符串"the"。()【答案】正確()6、可以在一個函數中定義另一個函數?!敬鸢浮垮e誤()7、在定義數組之后,根據數組中元素的類型及個數,在內存中分配一段連續(xù)存儲單元用于存放數組中的各個元素?!敬鸢浮空_()8、c語言程序中可以有多個函數,但只能有一個主函數?!敬鸢浮空_()9、c語言允許用字符串的方式對數組作初始化賦值。【答案】正確()10、c語言對文件讀、寫之前必須先打開文件,在使用文件之后應關閉該文件?!敬鸢浮空_三、編程題(共3題,每題分值不等,共計40分)1、編寫程序:計算sum=lT/3+l/5T/7+…+1/19(本題10分)【答案】#include<stdio.h>main()(inti;floatsum=0,k=-l;for(i=l;i<=19;i=i+2)(sum=sum+l.0/i*k;k=-k;)printfsum);getchO;)2、將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。(本題14分)【答案】程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。(2)如果n〈>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n,重復執(zhí)行第一步。(3)如果n不能被k整除,則用k+1作為k的值,重復執(zhí)行第一步。程序源代碼:mainO(intn,i;printf("\npleaseinputanumber:\nzz);scanf&n);printf("%d=",n);for(i=2;i<=n;i++)(while(n!=i)(if(n%i==0){printfr%d*w,i);n=n/i;)elsebreak;))printfn);3、題描述輸n(3WnW30)個學的數據記錄,對于每個學,其記錄包含了學號、姓名、3門課程(程序設計基礎、計算機導論、 等數學)的成績共5項。要求查找程序設計基礎低于平均分的學,并輸出該的所有信息要求使結構體數組實現(xiàn),結構體中包括了每個學的5項記錄。輸共有5,每包含了個學的學號(整數)、姓名(長度不超過30的空格字符串)和程序設計基礎、計算機導論、 等數學等3門課程的成績(0100之間的整數),空格隔開。輸出輸出程序設計基礎低于平均分的學的所有信息;每個輸出占1;如果沒有找到的話,輸出“No”樣例輸32017010377chensiyuan9991902017010386wangling9493882017010436chenhui858890樣例輸出2017010436chenhui858890(本題16分)【答案】#include<stdio.h>constintN=30+5;typedefstructstudent{intnum;charname[30];intcxsjjc;intjsjdl;intgdsx;)STU;intmain(){intn,m=0;floataver,sum;scanf&n);STUstu[N];for(inti=0;i<n;i++){scanf("%d%s%d%d%d”,&stu[i].num,stu[i].name,&stu[i].cxsjjc,&stu[i].jsjdl,&stu[i].gdsx);)for(intj=0;j<n;j++){sum+=stu[j],cxsjjc*1.0;)aver=sum/(n*1.0);for(intk=0;k<n;k++){if(stu[k].cxsjjc<aver){m+=1;printf(,z%d%s%d%d%d\n”,stu[k].num,stu[k].name,stu[k].cxsjjc,stu[k].jsjdl,stu[k].gdsx);))if(m==0)printf(^No*);returnO;計算機語言C沖刺卷(二)
(考試時間90分鐘,總分100分)
準考證號:姓名:一、單項選擇題(共20題,每題2分,共計40分)()1、一個字長為8位的無符號二進制整數能表示的十進制數值范圍是oA、0-256B、0-255C、1~256D、1-255【答案】B【解析】無符號數,即自然數。8位無符號的二進制數的范圍是00000000?11111111,轉換成十進制就是0-255o()2、已知:intn=10;在下列定義引用的語句中,正確的是。A、int&x=n;Bnintx=&n;C>int&x;D、int&x二&n;【答案】A【解析】引用是個別名,建立引用后,引用即作為目標的別名而使用,對引用的改動實際上就是對目標的改動。要求引用的聲明語句要同時包括變量的數據類型、引用操作符“&”、引用名、賦值符號和目標名。引用在聲明時必須進行初始化,一旦初始化,便不能作為其他變量的引用而使用。()3、若t已經定義為int類型,則表達式:(t=l,t++,t+5)的值為oA、7B、7.0C、2.0D、1.0【答案】A【解析】t為double類型變量,經過一系列運算后其結果仍為double類型,該題中t先進行自增再進行t+5第12/85頁運算,結果為7.0d。()4、在c程序中,判邏輯值時,用”非0〃表示邏輯值“真",又用"0"表示邏輯值“假〃。在求邏輯值時,邏輯真和邏輯假可分別表示為A、10B、01C、非0非0D、11【答案】A【解析】在C程序中,判斷邏輯值時,用非0表示真,用0表示假。邏輯表達式計算時,邏輯表達式值為真是用1表示的,若邏輯表達式的值為假,則用0表示。()5、以下程序運行后的輸出結果是omain()(inti=0,s=l;for(;;)(if(i==5)break;i++;s+=i;}tprintf(〃%d\n〃,s);A、死循環(huán)B、16C、15D、11【答案】B()6、以下敘述中正確的是oA、每個數組包含一組具有同一類型的變量,這些變量在內存中占有連續(xù)的存儲單元B、一條語句只能定義一個數組C、數組說明符的一對方括號中只能使用整型常量,而不能使用表達式D、在引用數組元素時,下標表達式可以使用浮點數【答案】A【解析】數組的元素是同一類型,占用連續(xù)空間,所以選擇A。()7、下列關于表達式的描述中,錯誤的是oA、常量和變量都是表達式B、運算符類型對應表達式的類型C、每一個表達式都有自己的值D、表達式必須以分號結尾【答案】D【解析】語句必須以分號結尾,表達式不是必須以分號結尾,表達可以嵌套。()8、以下敘述中正確的是oA、不能用字符串常量對字符數組名進行整體賦值操作B、字符串常量"Hello”會被隱含處理成一個無名字符型數組,它有5個元素C^charstr[7]="string!”;在語法上是合法的,運行也是安全的D、char*str;str="Hello";與charstr[];str="Hello”;效果是一樣的【答案】A【解析】字符數組在定義時可以用字符串賦初值,其后就不可以再用字符串常量進行賦值。答案選擇A。()9、下列()表達式不滿足;當x的值為偶數時值為"真",為奇數時值為〃假”。x%2==0!x%2!=0x/2*2-x==0!(x%2)【答案】C()10、以下選項中關于c語言常量的敘述錯誤的是oA、經常被使用的變量可以定義成常量B、常量分為整型常量、實型常量、字符常量和字符串常量C、所謂常量,是指在程序運行過程中,其值不能被改變的量D、常量可分為數值型常量和非數值型常量【答案】A()11、有以下程序main()chars[]="\nl23\\";printf("%d,%d\n”,strlen(s),sizeof(s));執(zhí)行后輸出結果是oA、賦初值的字符串有錯B、6,7C、5,6D、6,6【答案】c【解析】本題在定義字符數組時沒有定義數組長度,但是給數組賦了初值,這時初值的個數即為數組的長度,故數組長度為6(包括'\0')。字符串的長度為有效字符的個數5。因此printf語句中輸出的結果為5,6o()12、下面函數的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;)A、求字符串的長度B、比較兩個字符串的大小C、將字符串strl復制到字符串str2中D、將字符串strl接續(xù)到字符串str2中【答案】C【解析】while語句的一般形式為:while(表達式)語句;其中表達式是循環(huán)條件,語句為循環(huán)體,while語句的語義是:計算表達式的值,當值為真(非0)時,執(zhí)行循環(huán)體語句。本題中邏輯與符號連接的表達式值為真,*str2++=*strl++語句是將strl的內容逐個復制到str2字符串。()13、以下說法錯誤的是?A、C語言中的常量是指在程序運行過程中經常被用到的變量B、C語言中的常量是指在程序運行過程中其值不能被改變的量C、C語言中的常量可以用一個符號名來代表D、C語言中的常量可以用宏來定義【答案】A【解析】C語言中的常量是指在程序運行過程中其值不能被改變的量,它可以用宏來定義,用一個符號名第15/85頁代表,選項A錯誤,選項BCD正確,本題答案A( )14、表達式sizeof(double)是。A、函數調用B、double型表達式C、int型表達式D、非法表達式【答案】C()15、以下程序的輸出結果是omain()(floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d\n”,x,i);)A、x=3.600000,i=4x=3,i=3C、x=3.600000,i=3D、x=3i=3.600000【答案】C()16、下面對do-while結構的描述中,不正確的是。A、循環(huán)體至少執(zhí)行一次B、屬于“直到型”循環(huán)C^與while語句執(zhí)行情況相同D、先執(zhí)行循環(huán)體,再計算終止條件,若結果為true,重復執(zhí)行循環(huán)體,直到布爾表達式的值為false。【答案】C【解析】while循環(huán)屬于“當型”循環(huán),可能一次也不執(zhí)行,是先判斷終止條件,為true則執(zhí)行循環(huán)體,否則退出循環(huán)。()17、遞歸算法的執(zhí)行過程一般來說可先后分成和兩個階段。A、試探B、遞推C、枚舉D、分析【答案】B【解析】遞歸是設計和描述算法的一種有力的工具。能采用遞歸描述的算法通常有這樣的特征:為求解規(guī)模為N的問題,設法將它分解成一些規(guī)模較小的問題,然后從這些小問題的解方便地構造出大問題的解,并且這些規(guī)模較小的問題也能采用同樣的分解和綜合方法,分解成規(guī)模更小的問題,并從這些更小問題的解構造出規(guī)模稍大問題的解。特別地,當規(guī)模N=1時,能直接得到解。遞推算法的執(zhí)行過程分遞推和回歸兩個階段。在遞推階段,把較復雜的問題的求解推到比原問題簡單一些的問題的求解;在回歸階段,當獲得最簡單情況的解后,逐級返回,依次獲得稍復雜問題的解。()18、若輸入"abcdef""abdef",下述程序的輸出結果為。main()(intn;charsi[20],s2[20],*pl,*p2;scanf("%s”,si);scanf("%s”,s2);pl=sl;p2=s2;n=strcmp(pl,p2);printf("vood\n",n);)A、-1B、0“abcdef”"abdef”【答案】D()19、下列定義數組的語句中,正確的是。intN=10;#defineN10intx[N]; intx[N];C、intx[0..10];D、intx[];【答案】B()20、若有下面的說明和定義,則sizeof(structaa)的值是.structaaintrl;doubler2;floatr3;)maya;A、20B、18C、14D、16【答案】D二、判斷題(共10題,每題2分,共計20分)()1、INT是非法表示符【答案】錯誤【解析】C語言關鍵字(都是小寫)不能為標識符(跟變量要求一致)MAIN可以是標識符,INT也可以是標識符(與小寫不一樣)()2、函數若無返回值,則它一定無形參?!敬鸢浮垮e誤()3、宏定義是用宏名來表示一個字符串,在宏代換時以該字符串取代宏名?!敬鸢浮空_()4、continue語句只能用于三個循環(huán)語句中。()【答案】正確()5、chars=UCLanguage";表示s是一個指向字符串的指針變量,把字符串的首地址賦予s【答案】正確()6、函數的實參和形參可以是相同的名字【答案】正確()7、對以下定義的二維數組table,其行下標的取值范圍是[0,2],列下標的取值范圍是[0,1],數組元素分別是:table[0][0]、table[0][1],table[1][0]-?table[1][1]>table[2][0]和table[2][1],可以表示一個3行2列的矩陣。inttable[3][2];【答案】正確)8、調用輸入輸出庫函數時,編譯預處理命令為ttinclude<stdio.h>?【答案】正確)9、在c語言中,字符數組可以存放字符串。()【答案】正確)10、全局靜態(tài)變量的作用域限制在定義它的源文件內,只能為該源文件內的函數公用?!敬鸢浮空_三、編程題(共3題,每題分值不等,共計40分)1、編程判斷輸入的字符串是否為“回文”。所謂“回文”是指順讀和倒讀都一樣,如abcba。(本題10分)【答案】#includevoidmainO(inti,n;chara[20];printf("請輸入字符串:”);gets(a);n=strlen(a);for(i=0;i=n)printf("是回文.\n");)2、編寫程序:輸出一維數組a中的最小值及其下標(本題14分)【答案】Sinclude<stdio.h>main()(inti,p=0,a[10];for(i=0;i<10;i++)scanf ;for(i=l;i<10;i++)if(a[i]<a[p])p=i;printf("%d,%d\n”,a[p],p);)3、編寫一個函數統(tǒng)計并打印所輸入的正文中的各個英文單詞出現(xiàn)的次數并按次數的遞減順序輸出,使用結構體實現(xiàn)。(本題16分)【答案】#include<stdio.h>#include<stdlib.h>#include<string.h>structlist{charwords[100];intnum;structlist*next;);typedefstructlistnode;typedefnode*link;voidcount(char*str){linkptr,head,ptrn,headnew;inti=0,j=0,prei=0;chartemp[20];ptr=(link)malloc(sizeof(node));head=ptr;ptr->next=NULL;do{if(*(str+i)=='*(str+i)='\0'){temp[j]=,\0';ptr=head;while(ptr->next!=NULL){if(strcmp(ptr->next->words,temp)==0){ptr->next->num++;break;}else{ptr=ptr->next;})if(ptr->next==NULL){ptr->next=(link)malloc(sizeof(node));strcpy(ptr->next->words,temp);ptr->next->num=l;ptr->next->next=NULL;)if(*(str+l)=='\0')break;j=0;i++;continue;)temp[j++]=str[i++];}while(l);ptrn=(1ink)mal1oc(sizeof(node));headnew=ptrn;ptrn->next=NULL;ptr=head->next;ptrn=headnew;while(head->next!=NULL){while(ptrn->next!=NULL&&ptrn->next->num>=ptr->num)ptrn=ptrn->next;head->next=ptr->next;ptr->next=ptrn->next;ptrn->next=ptr;ptr=head->next;ptrn=headnew;)ptr=headnew->next;while(ptr!=NULL){puts(ptr->words);printf(〃%d\n〃,ptr->num);ptr=ptr->next;))intmain(){charstr[500];gets(str);count(str);)計算機語言C沖刺卷(三)(考試時間90分鐘,總分100分)
準考證號:姓名:一、單項選擇題(共20題,每題2分,共計40分)()1、以下不符合C語言語法的賦值語句是。A、a=l,b=2++j;C>a=b=5;D、y=(a=3,6*5);【答案】A()2、若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:()A、p=qB>*p=*qn二*qD、p=n【答案】D()3、若有inta[][2]={{1,2},{2,3}};則*(a+l),*(*a+l)的含義分別為 。A、非法,2B、&a[l][0],2C、&a[0][l],3D、a[0][0],4【答案】B()4、c語言的switch語句中case后A、只能為常量B、只能為常量或常量表達式C、可為常量或表達式或有確定值的變量及表達式D、可為任何量或表達式【答案】B()5、下列標識符不是關鍵字的是uxe<iKB、charC>Swithreturn【答案】C()6、有以下程序main()(charch[]="uvwxyz〃,*pc;pc=ch;printf("%c\n〃,*(pc+5));}程序運行后的輸出結果是OA、zB、0C、元素ch[5]的地址D、字符y的地址【答案】A()7,表示關系*<=丫<=2的(:語言表達式為.A、(x<=y)&&(y<=z)B、(x<=y)and(y<=z)C、(x<=y<=z)D、(x<=y)&(y<=z)【答案】A【解析】C語言中沒有關鍵詞and,邏輯與運算符是&&,不是and,因此,選項B是錯誤的;而&是c語言的按位與運算,因此選項D是錯誤的:選項C是數學表達式,也是不對的。()8^對于代碼charcl[8];scanf('%s”,cl);printf("\n%s",cl);在程序運行時,輸入了"thisprettyboy”,則對應的運行輸出顯示結果是。thisprethisthisprettyboyD、數組越界,不能顯示【答案】B()9、下列運算符中是c語言關系運算符的是.A、~B、!C、&D、!=【答案】D()10、下面程序段的運行結果是char*s="abcde”;s+=2;printfs);A、cdeB、字符'c'C、字符'c'的地址D、無確定的輸出結果【答案】C【解析】對于字符串指針,其保留的是整個串的首地址,即第一個字符的起始地址;當該指針做算術運算時,就是該指針根據其類型向后移動相應的存儲空間。()11、若有以下說明:charsl[]={"tree"},s2[]={"flower"};,則以下對數組元素或數組的輸出語句中,正確的是.A、printf(*%s%s*,si[5],s2[7]);B、printf(*%c%c*,si,s2);puts(si);puts(s2);D、puts(si,s2);【答案】c()12、以下程序:#include<stdio.h>main(){charstr[10];scanf("%s”,&str);printf("%s\n",str);)運行上面的程序,輸入字符串howareyou,則程序的執(zhí)行結果是。A、howhowareyouC、hD、howareyou【答案】A【解析】當從鍵盤輸入bowareyou時,由于scanf輸入函數的特點是遇到空格時結束讀入字符,因此,該程序只將how這3個字符送到了字符數組str中,并在其后自動加上結束符“\0”。()13、下列形式的常數中,不符合c語言語法規(guī)范的是oA、.45B、±123C、25.6c-2D、4e3【答案】B【解析】C程序允許出現(xiàn)的常數為有一確定值的整數或實數(可用小數形式或指數形式)等。土123不是確定值,是不可以出現(xiàn)的。()14、以下程序中函數f的功能是:當flag為1時,進行由小到大排序;當flag為0時,進行由大到小排序。voidf(intb[],intn,intflag)(inti,j,t;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(flag?b[i]>b[j]:b[i]<b[j])(t=b[i];b[i]=b[j];b[j]=t;))main()(inta[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0);f(a,5,1);for(i=0;i<10;i++)printf(*%d,*,a[i]);)程序運行后的輸出結果是oA、1,2,3,4,5,6,7,8,9,10,B、3,4,5,6,7,2,1,8,9,10,C、5,4,3,2,1,6,7,8,9,10,D、10,9,8,7,6,5,4,3,2,1,【答案】B()15、有以下程序:main()(intx=10,y;if(x<20)y=100;if(x>4)y=55/x;elsey=10;printf("/d\n",y);)則輸出結果是OA、100B、5)5C、10D、5【答案】D()16、以下程序的輸出結果是main()(inti=0,s=0;for(;;)(if(i==6)break;i++;s+=i;)printf("/d\n”,s);)A、10B、15C、21D、死循環(huán)【答案】c()17、有以下程序#include<stdio.h>main()structstucharname[9];charsex;doublescore[2];)structstua={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};b=a;printf("%s,%c,%2.Of,%2.0f\n”,,b.sex,b.score[0],b.score[1]);)程序的運行結果是OA、Qian,f,95,92B、Qian,m,85,90C、Zhao,f,95,92D、Zhao,m,85,90【答案】D()18、己知x=2.5,a=7,y=4.7,則表達式x+a%3*(int)(x+y)%2/4的結果是A、2.4B、2.5C、2.75D、0【答案】B()19、以下對一維數組c進行正確的定義初始化的語句是oA、intc[10]=0;B、intc[10]={0}*10;C、intc[1]={0,0,0,0,0,0,0}D、intc[10]={0};【答案】D()20、下面定義結構變量的語句中錯誤的是—structstudent{intnum;charname[20];}s;struct{intnum;charname[20];C、structstudent{intnum;charname[20];};structstudents;D、structstudent{intnum;charname[20];);students;【答案】D二、判斷題(共10題,每題2分,共計20分)()1,有符號整型變量的取值范圍是:0-65536【答案】錯誤()2、c語言中,%為求模(求余)雙目運算符,它的兩個運算數(操作數)都必須是整型(如int、short、char等),不能是浮點型(如double、float)?!敬鸢浮空_()3、當說明一個共用體變量時系統(tǒng)分配給它的內存是最長的成員的長度【答案】正確()4、case語句后如沒有break,順序向下執(zhí)行。【答案】正確()5、用strcat(字符串1,字符串2)連接兩個字符串函數時,字符串1的存儲空間沒有限制。【答案】錯誤()6、c語言標準輸入操作中,gets()函數一次只可讀取一個字符。【答案】錯誤【解析】gets從標準輸入設備讀字符串函數,可以無限讀取,不會判斷上限()7、在標準c語言中,數組的下標必須是常量,不允許是表達式?!敬鸢浮垮e誤()8、用scanf()函數輸入實型數時,既可以指定寬度,又可以規(guī)定精度。st:口
L臺升/t日歡()9、c語言中簡單變量作為實參時,它和對應的形參之間的數據傳遞方式是雙向值傳遞?!敬鸢浮垮e誤()10、某文件中定義的靜態(tài)全局變量的作用域是本文件?!敬鸢浮空_三、編程題(共3題,每題分值不等,共計40分)1、編寫程序:企業(yè)發(fā)放的獎金根據利潤提成。利潤(D低于或等于io萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可提成5%;20萬到40萬之間時,高于20萬元的部分,可提成5%;40萬到60萬之間時高于40萬元的部分,可提成3%;60萬到100萬之間時,高于60萬元的部分,可提成1.5%;高于100萬元時,超過100萬元的部分按1%提成。從鍵盤輸入當月利潤I,求應發(fā)放獎金總數?(本題10分)【答案】#include<stdio.h>intmain()(doublei;doublebonus1,bonus2,bonus4,bonus6,bonuslO,bonus;printf(〃你的凈利潤是:\n〃);scanf&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.075;bonus4=bonus2+200000*0.05;bonus6=bonus4+200000*0.03;bonus10=bonus6+400000*0.015;if(i<=100000){bonus=i*0.1;}elseif(i<=200000){bonus=bonus1+(i-100000)*0.075;}elseif(i<=400000){bonus=bonus2+(i-200000)*0.05;}elseif(i<=600000){bonus=bonus4+(i-400000)*0.03;}elseif(i<=1000000){bonus=bonus6+(i-600000)*0.015;}elseif(i>1000000){
bonus=bonus10+(i-1000000)*0.01;)printf("提成為:bonus=%lf”,bonus);printf("\n");)【解析】請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。2、編寫程序:??=800*??+9*??其中??代表的兩位數,809*??為四位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??后的結果。打印如下形式,??代表一個數字:09*??=800*??+9*??(本題14分)【答案】Sinclude<stdio.h>voidoutput(longintb,longinti){printfC\n%ld=800*%ld+9*%ld\n”,b,i,i);intmain(){voidoutput(longintb,longinti);longinta,b,i;a=809;for(i=10;i<100;i++){b=i*a;if(b>=1000&&b<=10000&&8*i<100&&9*i>=100){output(b,i);))return0;)3、試利用指向結構體的指針編制一程序,實現(xiàn)輸入3個學生的學號、數學期中和期末考試成績。然后計算其平均成績并輸出成績表,使用結構體實現(xiàn)。(本題16分)【答案】#include<stdio.h>structstudent(longnumber;intscore[3];};voidinput(structstudent*stu)(inti;for(i=0;i<3;i++)(printf("num:");scanf&((stu+i)->number));printf(/zpleaseinputscore\nz,);scanf(-%d,%d”,&((stu+i)->score[0]),&((stu+i)->score[1]));(stu+i)->score[2]=((stu+i)->score[0]+(stu+i)->score[l])/2;printf('\n");})voidprint(structstudent*stu)(inti,j;printf(,z\nNo.ScolSco2Sco3\n,z);for(i=0;i<3;i++)(printf("%-6d〃,(stu+i)->number);for(j=0;j<3;j++)printf(,z%-8dz,,(stu+i)->score[j]);printf(,z\nzz);))intmain()(structstudentstu[3];input(stu);print(stu);計算機語言C沖刺卷(四)(考試時間90分鐘,總分100分)
準考證號:姓名:一、單項選擇題(共20題,每題2分,共計40分)()1,在下面的運算符中,不是算術運算符的是?A、++B、==C、%D、+【答案】B【解析】算術運算符包括:+、-、*、/、%,++、-O而選項B中的==屬于關系運算符。()2、有以下程序:floatfun(intx,inty)(return(x+y);}main()(inta=2,b=5,c=8;printf("%3,Of\n”,fun((int)fun(a+c,b),a-c));)程序運行后的輸出結果是OA、編譯出錯B、9C、21D、9.0【答案】B()3、對于數學式x/2a,下面正確的c語言表達式是oA、sqr(x)/2asqr(x)/2*asqrt(x)/(2*a)D>sqrt(x)/2*a【答案】D()4、若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語句是。TOC\o"1-5"\h\zA、switch(x) {case1.0:printf("*\n");case2.0:printf("**\n");)B、switch((int)x); {:printf("*\n");:printf("**\n");}switch(a+b) {case1:printf("*\n");case2+1:printf("**\n");)switch(a+b) {case1:printf('*\n");casec:printf("**\n");)【答案】C【解析】在C語言中,switch。后的一對圓括號中可以是整型表達式或字符表達式。case語句后面的常量表達式的類型必須與switch后圓括號中的表達式類型相同,備case語句標號的值應該互不相同。選項A)中case后面的常量表達式為實型,所以不正確;選項D)中case后面出現(xiàn)了變量表達式,所以選項D)錯誤。()5、已知#intt=0;while(t=l)}則以下敘述正確的是。A、循環(huán)控制表達式的值為0B、循環(huán)控制表達式的值為1C、循環(huán)控制表達式不合法D、以上說法都不對【答案】B【解析】t=l是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==l,注意“=”與"==”的用法。()6、有以下程序:#include<stdio.h>intf(intt[],intn);main(){inta[4]=l,2,3,4,s;s=f(a,2);printf("%d'n',s);)intf(intt[],intn){if((n>0)&&(n<5))returnt[n+l]+f(t,n-l);elsereturn0;)程序運行后的輸出結果是OA、4B、7C、10D、6【答案】B【解析】本題主要考查的是函數的遞歸調用,子函數f是一個遞歸函數,所以主函數中執(zhí)行f(a,2)時,其執(zhí)行過程是a[3]+f[a,D=a[3]+a[2[+f(a,0)=7。()7、設a=8、b=10、c=7、d=8、m=2、n=6,執(zhí)行(m=aVb)|(n=c>d)后n的值為<,A、1B、6C、3D、4【答案】B()8、設有以下語句,其中不是對a數組元素的正確引用的是:(其中0WiV10)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;a[i]B、*(&a[i])C^p[i]D、&(*(a+i))【答案】D()9、以下敘述中正確的是。A、程序必須包含所有三種基本結構才能成為一種算法B、當用我們所寫的每條C語句,經過編譯最終都將轉換成二進制的機器指令C、如果算法非常復雜,則需要使用三種基本結構之外的語句結構,才能準確表達D、只有簡單算法才能在有限的操作步驟之后結束【答案】B()10、null是指oA、0B、空格C、未知的值或無任何值D、空字符串【答案】C【解析】此題屬于記憶性的題目,NULL是指未知的值或無任何值。()11、設有以下語句,對a數組元素的引用中(其中0V=iV10)不正確的是inta[10]=(0,1,2,3,4,5,6,7,8,9},*p=a;A、a[p-a]B、*(&C、pD、*(*(a+)【答案】D【解析】本題考核數組與指針。A選項中,p為指針,數組名a代表數組的首地址,所以p-a就是指針到數組首地址的偏移量。B選項中,&a[i]是取數組a中第i個元素的地址,而對于*(&a[i]),由指針運算符*的運算規(guī)則可知,語句*(&a[i])就是返回地址&a[i]空間中存放的值,也即a[i]o0選項,由于指針p已指向數組a,所以p[i]就等于a[i]小這是常用的一種數組元素引用方式。D)選項是以指針方式對數組元素進行引用,由于a只是代表數組的首地址,并不是指針,所以表達式*(*(a+i))是錯誤的,正確的引用應該為:*(*(p+i))o()12、假設有語句sizeof(double),則它是.A、一個整型表達式B、一個雙精度浮點型表達式C、一種函數調用D、一種函數定義【答案】A【解析】sizeof(double)是C語言內部規(guī)定的一個計算參數(double)在計算機的內存中所占用的字節(jié)數量的函數,它返回一個整數值。()13、在7位ascii碼中,除了表示數字、英文大小寫字母外,還有幾個字符和符號A、63B、66C、80D、32【答案】B【解析】7位ASCII碼表中有10個數字,26個大寫字母,26個小寫字母,所以剩下的字符和符號的數目是:128-10-26-26=66o()14、若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的表達式為().A、p+1B、a+1C、a++D、++p【答案】C()15、以下程序輸出結果是main()(intm=5;if(m++>5)printf(*%d\n*?m);elseprintf("%d\n”,m—);)A、7B、6C、5D、4【答案】B()16、下面程序的運行結果是omain()(inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++)if(j%2)break;a++;)a++;)printf("%d'n”,a);)A,4B、5C、6D、7【答案】A()17、若有下面的說明和定義:structtest(intml;charm2;floatm3;unionuu(charul[5];intu2[2];)ua;)myaa;則sizeof(structtest)的值是。A、20B、16C、14D、9【答案】A【解析】共用體uu占8個字節(jié);因為結構體在內存中占位符的存在,所以結構體test中成員m2占4個字節(jié);結構體test占用內存的大小是sizeof(int)+sizeof(char)+3+sizeof(float)+sizeof(ua)=20。()18、以下程序的輸出結果是main()inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));A,5B、4C、6D、不確定【答案】Cinta[10]={()19、若有以下定義和語句,且0Wi<10則對數組元素的錯誤引用是—1,2,3,4,5,6,7,8,9,10},*p,i;p=ainta[10]={A、*(a+i)a[p-a]C^p+iD、*(&a[i])【答案】C()20、有以下程序#include<stdio.h>structtt(intx;structtt*y;)*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main()(inti;p=a;for(i=l;i<=2,i++){printf("%d,”,p->x);p=p->y;))程序的運行結果是OA、20,30,B、30,17C、15,30,D、20,15【答案】D二、判斷題(共10題,每題2分,共計20分)()1、寄存器變量只限于整型、字符型和指針型的局部變量。【答案】正確()2、在c語言中,引用數組元素時,數組下標的數據類型只能是整型常量。()【答案】錯誤()3、fseek函數一般用于二進制文件?!敬鸢浮空_()4、do-while循環(huán)的while后的分號可以省略。【答案】錯誤()5、使用strcpy(字符數組,字符串)函數時,連同字符串后面的'\0'一起拷貝到字符數組中。【答案】正確()6、當函數值類型缺省定義時,函數值隱含的類型是double型。()【答案】錯誤()7、指針數組的每個元素都是一個指針變量【答案】正確()8、c語言中簡單變量作為實參時,它和對應的形參之間的數據傳遞方式是單向值傳遞。【答案】正確()9、c語言中函數返回值的類型是由形參的數據類型決定的?!敬鸢浮垮e誤()10、在標準c中,使用所有輸入輸出函數必須包含"stdio.h”文件【答案】錯誤三、編程題(共3題,每題分值不等,共計40分)1、編寫程序:統(tǒng)計一維數組a中素數的個數例如:如果數組a的元素為:2,3,5,7,8,9,10,11,12,13,則程序的輸出應為:primenumber(s)is(are)(本題10分)【答案】#include<math.h>Sinclude<conio.h>#include<stdio.h>prinum(inta[])(intcount,i,j,k;count=0;for(i=0;i<10;i++)(k=a[i]T;for(j=2;jV=k;j++)if(a[i]%j==0)break;if(j>=k+1)count++;}return(count);)main()(inta[10]={2,3,5,7,8,9,10,11,12,13},n;n=prinum(a);printf(,zprimenumber(s)is(are):%d〃,n);)2、編寫程序:從鍵盤上輸入a與n的值,計算sum=a+aa+aaa+aaaa+ (共n項)的和。例a=2,n=4,則sum=2+22+222+2222。(本題14分)【答案】#include"stdio.h"main()(inta,ncount=l,sn=0,tn=0;scanf(〃%d &a,&n);while(count<=n)(tn=tn+a;sn=sn+tn;a=a*10;++count;)printf(線d”,sn);)
3、編寫程序:用結構體和函數處理學生成績,學生信息包括:學號姓名3門課成績平均分1)用input函數來輸入數據和求各學生的平均成績2)用max函數來找平均分最高的學生3)用print函數輸出成績最高學生的信息(本題16分)【答案】#include<stdio.h>#defineN3structStudent{#defineN3structStudent{intnum;charname[20];floatscore[3];floataver;}:〃建立結構體類型〃學號〃姓名〃3門課成績intmain()(voidinput(structStudentstu[]);structStudentmax(structStudentvoidprint(structStudentstud);intmain()(voidinput(structStudentstu[]);structStudentmax(structStudentvoidprint(structStudentstud);structStudentstu[N],*p=stu;input(p);print(max(p));〃函數聲明stu[]);〃函數聲明〃函數聲明〃定義結構體數組和結構體指針//調用函數return0;}voidinput(structStudentstu口)〃定義輸入函數(inti;printf("請輸入各個學生的信息:學號、姓名、3門課成績:\n");for(i=0;i<N;i++)(scanf(,z%d%s%f%f%f”,&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;〃根據輸入成績求平均分)}structStudentmax(structStudentstu[]){inti,m=0; //用m存放成績最高的學生在數組中的序號for(i=0;i<N;i++)if(stu[i].aver>stu[m].aver) 〃找出平均分最高的學生在數組中的序號m=i;returnstu[m]; 〃返回包含該生信息的結構體元素)voidprint(structStudentstud) 〃定義輸出函數(printfC\n成績最高的學生是:\n");printf("學號:%d\n姓名:%s\n三門課成績:%5.lf,%5.lf,%5.lf\n平均成績:%5.lf\n*,stud,num,stud,name,stud,score[0],stud,score[1],stud,score[2],stud,aver);計算機語言C沖刺卷(五)
(考試時間90分鐘,總分100分)
準考證號:姓名:一、單項選擇題(共20題,每題2分,共計40分)()1、若采用雙符號位判斷溢出,當結果的符號位為11時,表示(13)oA、結果為正溢出B、結果正,無溢出C、結果負溢出D、結果為負,無溢出【答案】D【解析】本題考查定點數加、減法溢出問題。定點數加、減時,若采用雙符號位法,即采用兩個符號位,如果兩個符號位相同,則沒有溢出;若不同,則表示出現(xiàn)溢出,而第一符號位才是真正的符號。即兩個符號位的高位為1表示負溢出,而高位為0、低位為1則表示正溢出。題目中給出的結果的符號位為11,根據上面的分析,第一個符號位才是真正的符號,那么此數是負數,但兩個符號位相同,表示沒有溢出。()2、設有定義:floata=2,b=4,h=3;,以下c語言表達式與代數式計算結果不相符的是(a+b)*h/2(l/2)*(a+b)*h(a+b)*h*l/2h/2*(a+b)【答案】B()3、以下不正確的定義語句是ounsignedinta=-100u;longb=OL;shortc2=0123;intd=0x0;【答案】A()4、以下敘述中正確的是oA、對于邏輯表達式:a++||b++,設a的值為1,則求解表達式的值后,b的值會發(fā)生改變第43/85頁B、對于邏輯表達式:a++&&b++,設a的值為0,則求解表達式的值后,b的值會發(fā)生改變C^else不是一條獨立的語句,它只是if語句的一部分D、關系運算符的結果有三種:0,1,-1【答案】C【解析】B選項和A選項中,對于邏輯表達式,其中b的值不會因為表達式的結果發(fā)生改變;D選項中,關系運算符的結果有真和假兩種。因此C選項正確()5、有以下程序:#include<stdio.h>main()(inti,j,m=l;for(i=l;i<3;i++){for(j=3;j>0;j—)(if(i*j>3)break;))printf("m=%d\n”,m);)程序運行后的輸出結果是oA,m=4B、m=2C、m=6D>m=5【答案】C【解析】第一次外循環(huán)i的值為1,第一次內循環(huán)j的值為3,不滿足條件執(zhí)行m*=i*j,即m的值為3;第二次i的值為2,不滿足條件執(zhí)行m*=i*j,即m的值為6;第三次j的值為1,不滿足條件執(zhí)行m*=i*j,即m的值仍為6。第二次外循環(huán)i的值為2,j的值為3,滿足條件,執(zhí)行break語句,跳出循環(huán)。()6、下列敘述中正確的是oA、C語言編譯時不檢查語法B、C語言的子程序有過程和函數兩種C、C語言的函數可以嵌套定義D、C語言的函數可以嵌套調用【答案】D()7、設有如下定義:strucksk(inta;floatb;}data;int*p;若要使P指向data中的a域,正確的賦值語句是□A、p=&a;B、p=data,a;C、p=&data.a;D、*p=data.a;【答案】c()8、下列說法正確的是oA、在c語言中,可以使用動態(tài)內存分配技術定義元素個數可變的數組B、在C語言中,數組元素的個數可以不確定,允許隨機變動C、在C語言中,數組元素的數據類型可以不一致D、在C語言中,定義一個數組后,就確定了它所容納的元素的個數【答案】D()9、下面程序段的功能是#include<stdio.h>main()(charsi;sl=putc(getc(stdin),stdout);)A、從鍵盤輸入一個字符給字符變量siB、從鍵盤輸入一個字符,然后再輸出到屏幕C、從鍵盤輸入一個字符,然后在輸出到屏幕的同時賦給變量siD、在屏幕上輸出stdout的值【答案】C()10、以下不能將s所指字符串正確復制到t所指存儲空間的是.A、while(*t=*s){t++;s++;)B、for(i=0;t[i]=s[i];i++);do{*t++=*s++:)while(*s);for(i=0,j=o;t[i++]=s[j++];);【答案】C()11、以下能對一維數組a進行初始化的語句是:()A、inta[5]=(0,1,2,3,4,)B、inta(5)={}C、inta[3]={0,1,2}D、inta{5}={10*l}【答案】C()12、若函數調用時參數為基本數據類型的變量(俗稱簡單變量),以下敘述正確的是A、實參與其對應的形參共占存儲單元B、只有當實參與對應的形參同名時才共占存儲單元C、實參與其對應的形參分別占用不同的存儲單元D、實參將數據傳遞給形參后,立即釋放原先占用的存儲單元【答案】C()13、c語言用表示邏輯”真〃值。A、trueB、t或yC、非零整型值D、整型值0【答案】C()14、若二維數組a有m歹lj,則計算任一元素在數組中位輅的公式為(假設a[0][0]位于數組的第一個位路上)Oi*m+jj*m+ii*m+j-li*m+j+l【答案】D()15、以下程序的運行結果是.voidsub(intx,inty,int*z)*z=y-x;main()(inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d”,a,b,c);)A、5,2,3-5,-12,-7-5,-12,-17D、5,-2,-7【答案】A()16、下列程序段的輸出結果為ointy=l;while(y—);printf("y=%d\n",y);A、y=-lB、y=0C、死循環(huán)D、y=9【答案】A【解析】當y一返回0時,while語句停止循環(huán),此時y=T。()17、有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b。則不能把結點b連接到結點a之后的語句是structnodechardata;structnode*next;a,b,*p=&a,*q=&b;next=q;next=&b;C、p—>next=&b;(*p).next=q;【答案】B【解析】要把結點b連接到結點a之后,必須把b的地址給a的next指針,選項A中,指針變量q保存的就是第47/85頁變量b的地址,選項B中的p是指針變量,應該是p->next=&b;在選項D中,用*運算符取出結構體變量,并且保存的就是b的地址,所以正確。()18、下列程序的運行結果是.main()(staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};inti,j,sum=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(j>i)sum+=a[i][j];printfC'sum=%d\n,',sum);)A、40B、36C、24D、30【答案】B()19、下列數組說明中,正確的是.intarray[4];intarrayL][];intarray[][][5];intarray[3][];【答案】A()20、設有以下語句typedefstructs(intg;charh;)t;則下面敘述中正確的是OA、可用S定義結構體變量B、可以用T定義結構體變量C^S是struct類型的變量D、T是structS類型的變量【答案】A二、判斷題(共10題,每題2分,共計20分)()1、C語言在函數調用時,若形參實參都是普通變量,實參和形參可以共用存儲單元?!敬鸢浮垮e誤()2,語句printf("%.2f”,1.0/3);輸出為0.33o【答案】正確()3、內存單元的地址與內存單元中的數據是兩個完全相同的概念【答案】錯誤()4、使用不帶參數的for(;;)語句可以正??刂蒲h(huán)?!敬鸢浮垮e誤()5、宏定義用宏名代替一個字符串,在替換時,只是作簡單的替換,不作語法檢查?!敬鸢浮空_()6、對于一個具體的函數來說,實參與形參不必一一對應?!敬鸢浮垮e誤()7、字符數組定義后,不能用賦值語句將一字符串常量或字符數組直接賦給一個字符數組?!敬鸢浮空_()8、函數的實參和形參都可以是變量、常量和表達式?!敬鸢浮垮e誤()9、以"a”方式打開一個文件時,文件指針指向文件首?!敬鸢浮垮e誤()10、要使用標準輸入、輸出函數,正常情況下應該在文件的開頭加上以下內容:#include<stdio.h>或#include"stdio.h"。【答案】正確三、編程題(共3題,每題分值不等,共計40分)I、輸入一行字符,將所有的小寫字母轉換成大寫字母,(本題10分)【答案】大寫字母轉換成小寫字母,其余字符不變。輸出轉變后的這行字符。#include"stdio.h"voidmain()(chara[n];inti;scanfa);printf("大寫為:”);for(i=0;i<=n;i++)(if(a<="z'&&a>='a')a=a-32;printf("%c”,a);)printf("\n小寫為:”);for(i=0;i<=3;i++)(a=a+32;printf("%c”,a);))2、試編程判斷輸入的正整數是否既是5又是7的整倍數。若是,則輸出yes;否則輸出no。(本題14分)【答案】mainO{inti;scanf("%d",&i);if(i%5==0&&i%7==0)(printf("yes");)else{printf("no");))3、給定n本書的名稱和定價,本題要求編寫程序,查找并輸出其中定價最高和最低的書的名稱和定價。輸入格式:輸入第一行給出正整數n?10),隨后給出n本書的信息。每本書在一行中給出書名,即長度不超過30的字符串,隨后一行中給出正實數價格。題目保證沒有同樣價格的書。輸出格式:在一行中按照“價格,書名”的格式先后輸出價格最高和最低的書。價格保留2位小數。輸入樣例:3ProgramminginC21.5ProgramminginVB18.5ProgramminginDelphi25.0輸出樣例:25.00,ProgramminginDelphi18.50,ProgramminginVB(本題16分)【答案】#include<stdio.h>structmessage{charnamel[30];charname2[30];charname3[30];doubleprice;);structmessaged[10];intmain()(intN;scanf("%d",&N);inti,j;for(i=0;i<N;i++)(scanf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit2 What's the elephant doing(說課稿)-2024-2025學年外研版(三起)英語四年級上冊
- 15《八角樓上》(說課稿)2024-2025學年-統(tǒng)編版二年級語文上冊001
- 7《不甘屈辱奮勇抗爭-圓明園的訴說》(說課稿)統(tǒng)編版道德與法治五年級下冊
- 2023七年級英語下冊 Unit 2 What time do you go to school Section A 第1課時(1a-2d)說課稿 (新版)人教新目標版
- 8大家的“朋友”(說課稿)-部編版道德與法治三年級下冊
- 2024-2025學年高中歷史 第一單元 中國古代的農耕經濟 第5課 農耕時代的商業(yè)與城市(1)教學說課稿 岳麓版必修2
- 2024年八年級歷史下冊 第三單元 第11課 為實現(xiàn)中國夢而努力奮斗說課稿 新人教版
- 2024年三年級品社下冊《學看平面圖》說課稿 山東版
- 2025三元區(qū)國有商品林采伐與銷售權轉讓合同書
- Unit 5 Colours Lesson 2 (說課稿)-2024-2025學年人教新起點版英語一年級上冊
- 2024年長沙衛(wèi)生職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 河北省滄州市五縣聯(lián)考2024-2025學年高一上學期期末英語試卷(含答案含含聽力原文無音頻)
- 福建省泉州市南安市2024-2025學年九年級上學期期末考試語文試題(無答案)
- 腫瘤護士培訓課件
- 新課標體育與健康水平二教案合集
- 2025屆高考語文一輪復習知識清單:古代詩歌鑒賞
- 醫(yī)療器材申請物價流程
- 我的消防文員職業(yè)規(guī)劃
- 2025年公司品質部部門工作計劃
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數字化施工組”賽項考試題庫
- 華為研發(fā)部門績效考核制度及方案
評論
0/150
提交評論