四川大學(xué)C語(yǔ)言上機(jī)考試題_第1頁(yè)
四川大學(xué)C語(yǔ)言上機(jī)考試題_第2頁(yè)
四川大學(xué)C語(yǔ)言上機(jī)考試題_第3頁(yè)
四川大學(xué)C語(yǔ)言上機(jī)考試題_第4頁(yè)
四川大學(xué)C語(yǔ)言上機(jī)考試題_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

1.有以下程序#include<stdio.h>voidmain(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出的結(jié)果D—。A.2 B.編譯時(shí)有錯(cuò),無(wú)結(jié)果C.4 D.32.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為:intx=10;x*=x/=-x;printf("%d\n",--x); --D---A.10 B.1 C.-10D.03.下面程序的輸出是—Cmain(){intx,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d",x);}}3981 B.4284C.2870D.2668在C語(yǔ)言中,合法的字符常量是—B A."a" B.'\t' C.97D.a已知intx=12,y=3;執(zhí)行下述程序后,變量x的值是_D.do{x/=y--;}while(x>y);printf("%d\n",x);}A.2B.1 C.3 D.程序運(yùn)行有錯(cuò)誤有以下程序#include<stdio.h>voidmain(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是—C。A.3 B.5 C.-2 D.-17.若a、b、cl、c2、x、y均是整型變量,正確的switch語(yǔ)句是①switch(a+b);{case1:y=a+b;break;case0:y=a-b;break;}②switch(a*a+b*b){case3:case1:y=a+b;break;case3:y=b-a;break;}③switcha{casec1:y=a-b;break;casec2:x=a*b;break;default:x=a+b;}④switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;} A A.④ B.③ C.①D.②8.有以下程序#include<stdio.h>voidmain(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是—A—y=-1B.while構(gòu)成無(wú)限循環(huán)C.y=0 D.y=1有以下程序#include<stdio.h>voidmain(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf("%d\n",x);}執(zhí)行后輸出結(jié)果是_-4有如下程序#include<stdio.h>voidmain(){intx=23;do{printf("%d”,x--);}while(!x);則輸出結(jié)果為(23 )以下程序運(yùn)行后的輸出結(jié)果是123。#include<stdio.h>voidmain(){inti,m=0,n=0,k=0;for(i=9;i<=11;i++)switch(i/10){case0:m++;n++;break;case10:n++;break;default:k++;n++;}printf("%d%d%d\n",m,n,k);}以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)?zhí)羁铡?include<stdio.h>voidmain(){inti,j;for(i=0;i<10;i++){j=i*10+6;if(_j%3!=0)continue;printf("%d",j);}把C語(yǔ)言的源程序變?yōu)槟繕?biāo)程序要經(jīng)過(guò)(C)編輯連接編譯運(yùn)行C語(yǔ)言中用于結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是—C—。for、while、do-whileif、switch、break順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、if、for、continue以下敘述中正確的是__B?;ɡㄌ?hào)、'{〃和''}〃只能作為函數(shù)體的定界符C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名分號(hào)是C語(yǔ)句之間的分隔符,不是語(yǔ)句的一部分選項(xiàng)A,C程序中/*......*/表示注釋部分,注釋只是給人看的,對(duì)編譯和運(yùn)行不起作用,可以加在程序中任何位置,所以選項(xiàng)A是對(duì)的;選項(xiàng)B,函數(shù)體是函數(shù)的主體,從左花括號(hào)開始,到與之匹配的右花括號(hào)結(jié)束?;ɡㄌ?hào)還可以作為復(fù)合語(yǔ)句的定界符。選項(xiàng)C,一個(gè)C程序中必須有且只能有一個(gè)由“main"命名的主函數(shù),其他函數(shù)由用戶自行命名。選項(xiàng)D,C語(yǔ)句是組成C程序的基本單位,具有獨(dú)立的程序功能。所有的C語(yǔ)句都以分號(hào)結(jié)尾。故本題答案為A。4.有以下程序段intk=0;while(k=1)k++;while循環(huán)執(zhí)行的次數(shù)是__D。執(zhí)行1次有語(yǔ)法錯(cuò),不能執(zhí)行一次也不執(zhí)行無(wú)限次乍一看,還以為程序要表達(dá)的意思是當(dāng)k等于1的時(shí)候做k++,但是C語(yǔ)言里關(guān)系表達(dá)式的等于應(yīng)該是"==”。一個(gè)等于號(hào)表示賦值,即這里面重復(fù)的把1賦給虬自然表達(dá)式k=1的值總為1,while后面的表達(dá)式恒為真,當(dāng)然會(huì)進(jìn)入死循環(huán)。本題答案為A。設(shè)有說(shuō)明語(yǔ)句:chara='\72';則變量a—C—。說(shuō)明不合法包含3個(gè)字符包含1個(gè)字符包含2個(gè)字符本題考查點(diǎn)是轉(zhuǎn)義字符的應(yīng)用。轉(zhuǎn)義字符常量'\xx'可以把'\'后面的數(shù)字轉(zhuǎn)換為對(duì)應(yīng)的ASCII字符八72'表示的是ASCII碼等于72的那個(gè)字符,即為"H”,所以在字符變量中存儲(chǔ)的只是"H"這一個(gè)字符。故本題答案為A。下面程序#include<stdio.h>voidmain(){intx=10,y=3;printf("%d\n",y=x/y);}的輸出是—C。不確定的值130x/y的結(jié)果約為3.33333,但x和Y定義為int,由于打印要求為整型,所以自動(dòng)轉(zhuǎn)換為整型(相當(dāng)于截取整數(shù)位),打印結(jié)果為3。故本題答案為C。設(shè)a和b均為double型常量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是B。5.5000006.00000066.500000本題的考查點(diǎn)是各類數(shù)值型數(shù)據(jù)的混合運(yùn)算。各類數(shù)值型數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則為:字符數(shù)據(jù)必定先轉(zhuǎn)換為整數(shù),short型轉(zhuǎn)為int型,float型數(shù)據(jù)在運(yùn)算時(shí)一律先轉(zhuǎn)換成雙精度型,以提高運(yùn)算精度。故本題答案為D。有如下程序#include<stdio.h>voidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n”,a,b);}該程序的輸出結(jié)果是__D。a=2,b=2a=1,b=1a=1,b=0a=2,b=1在這個(gè)switch語(yǔ)句中,因?yàn)閤的值為1,所以執(zhí)行case1:后面的a++,這樣a=1。但又由于其下沒(méi)有break語(yǔ)句,所以其后面的語(yǔ)句(a++;b++)也將被執(zhí)行,這樣一來(lái),a=2,b=1。本題答案為A。設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%f”,&a,&b);語(yǔ)句時(shí),若從鍵盤輸入876543.0<回車〉,a和b的值分別是----D----876和543.00000076和543.00000087和543.00000087和6.000000有以下程序#include<stdio.h>voidmain(){ints=0,a=1,n;scanf("%d”,&n);do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);}若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是__B。TOC\o"1-5"\h\z-5-3-10本題的考查點(diǎn)是do-while語(yǔ)句此語(yǔ)句的一般形式為:do語(yǔ)句while (表達(dá)式)其特點(diǎn)為:先執(zhí)行語(yǔ)句,后判斷表達(dá)式。它是這樣執(zhí)行的:先執(zhí)行一次指定的內(nèi)嵌的語(yǔ)句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非零('、真〃)時(shí),返回重新執(zhí)行該語(yǔ)句,如此反復(fù),直到表達(dá)式的值等于0為止,此時(shí)循環(huán)結(jié)束。當(dāng)n=-1時(shí),s+=1,s=1;a=a-2=-1;a!=n不成立,結(jié)束循環(huán),此時(shí)s值為1,不符合題意;當(dāng)n=-3時(shí),s+=1,s=1;a=a-2=-1;a!=n成立,繼續(xù)循環(huán),s=s+1=2,a=a-2=-3;a!=n不成立,此時(shí)s值為2,符合題意;故本題答案為B。以下選項(xiàng)中非法的表達(dá)式是__D。i=j==00<=x<100(char)(65+3)x+1=x+1計(jì)算或運(yùn)算主要是通過(guò)表達(dá)式實(shí)現(xiàn)的。不同的表達(dá)式進(jìn)行不同的運(yùn)算,達(dá)到不同的目的。選項(xiàng)A中,0<=x<100在C語(yǔ)言中是一個(gè)合法的關(guān)系表達(dá)式,但它并不代表數(shù)學(xué)式0<=x<100。在計(jì)算0<=x<100時(shí),根據(jù)從左到右的結(jié)合性,先計(jì)算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。選項(xiàng)B中,根據(jù)運(yùn)算符的優(yōu)先級(jí),先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項(xiàng)C中,(char)(65+3)為類型強(qiáng)制轉(zhuǎn)換,將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型。選項(xiàng)D中,賦值運(yùn)算符的作用是將一個(gè)數(shù)據(jù)賦給一個(gè)變量,此項(xiàng)中等號(hào)左半部分不合要求。故本題答案為D。以下不能定義為用戶標(biāo)識(shí)符的是—A。intVoid_3com_scanf本題的考查點(diǎn)是用戶標(biāo)識(shí)符的辨別。標(biāo)識(shí)符是C語(yǔ)言中用來(lái)表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語(yǔ)句標(biāo)號(hào)等用途的字符序列。標(biāo)識(shí)符由1?32個(gè)字符組成,第一個(gè)字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識(shí)符不能與C關(guān)鍵字相同,并區(qū)分大小寫。由上可知選項(xiàng)D是不對(duì)的,因?yàn)閕nt是C語(yǔ)言中的關(guān)鍵字。故本題答案為D判斷char型變量ch是否為'0'~'9'數(shù)字字符的正確表達(dá)式是(B )。(ch>=0)AND(ch<=9)(ch>='0')&&(ch<='9')('9'>=ch>='0')(ch>=0)&&(ch<=9)下面程序#include<stdio.h>voidmain(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是A。TOC\o"1-5"\h\z-10不確定的值1本題的考查點(diǎn)是判斷語(yǔ)句的循環(huán)嵌套。第一個(gè)判斷值為真,過(guò)渡到下一個(gè)判斷,第二個(gè)判斷為真,過(guò)渡到第三個(gè)判斷......如此循環(huán),在打印輸出語(yǔ)句的前一行,程序給變量x賦了值,為-1,所以,無(wú)論前期如何變化,最后的x值依然為-1。故本題答案為A15.有以下程序#include<stdio.h>voidmain(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d”,i);case2:printf("%d",i);default:printf("%d",i);}執(zhí)行后輸出的結(jié)果是__B。120011122012012020本題的考查點(diǎn)是switch語(yǔ)句。switch語(yǔ)句在執(zhí)行時(shí)先計(jì)算表達(dá)式i的值,當(dāng)表達(dá)式i的值與某一個(gè)case中的常量表達(dá)式的值相等時(shí),就執(zhí)行該case后面的語(yǔ)句系列,接著再執(zhí)行后面各個(gè)case中的語(yǔ)句序列,一直到執(zhí)行完default后面的語(yǔ)句序列,然后結(jié)束switcho如果所有case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式i的值相匹配,就只執(zhí)行default后面的語(yǔ)句序列。break語(yǔ)句與switch語(yǔ)句配合使用,可以強(qiáng)行控制程序流程退出switcho由于本題沒(méi)有與break語(yǔ)句配合使用,因此在執(zhí)行完"case1”以后,還要繼續(xù)執(zhí)行"case2"和"defult”。當(dāng)i=0時(shí),執(zhí)行defult語(yǔ)句,輸出0;當(dāng)i=1時(shí),執(zhí)行case1語(yǔ)句,輸出1,因?yàn)闆](méi)有break控制程序流程退出,所以繼續(xù)執(zhí)行下面的語(yǔ)句,輸出11,以此類推。故本題答案為Ao16.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是—C。①②③④_mainIftxtintenclude-maxREALk_2sinturbo3COM_001A.②TOC\o"1-5"\h\z④①③C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。中的-max不符合要求,'-'既不是字母、數(shù)字,也不是下劃線;中的3COM第一個(gè)字符為數(shù)字,不合法;中的int和C語(yǔ)言的關(guān)鍵字重名,不合法。故本題答案為A已知inti=1;執(zhí)行語(yǔ)句while(i++<4);后,變量i的值為__A__。TOC\o"1-5"\h\z5336引用后還要自增一次已知字符'A'的ASCII代碼值是65,字符變量C1的值是'A',c2的值是'D'。執(zhí)行語(yǔ)句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是——A——65,66A,68A,B65,68在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是----A----(E==0)(E>0||E<0)(!E==0)(E!=0)有以下程序#include<stdio.h>voidmain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是--C---2,2,12,3,2D.2,3,3賦值運(yùn)算比逗號(hào)優(yōu)先級(jí)別高在C語(yǔ)言中,合法的基本數(shù)據(jù)類型關(guān)鍵字是—CDoubleintegerlongChar有如下程序#include<stdio.h>voidmain(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是__A0.5000000.000000D.0.250000本題考查的是if???els語(yǔ)句的使用。x=2.0,符合第二個(gè)if語(yǔ)句的條件x<10.0,所以執(zhí)行y=1.0/x語(yǔ)句,即y=1.0/2.0=0.500000。本題答案為C。在C語(yǔ)言中,以下程序段中內(nèi)循環(huán)體總的執(zhí)行次數(shù)是for(i=5;i;i--)for(j=0;j<4;j++){...內(nèi)循環(huán)體...}—D—TOC\o"1-5"\h\z30242520與條件表達(dá)式"(n)?(c++):(c--)"中的表達(dá)式(n)等價(jià)的表達(dá)式是_。。(n==1)(n!=1)(n==0)(n!=0)C中的條件運(yùn)算,非零為真。25.有以下程序#include<stdio.h>voidmain(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是—A。TOC\o"1-5"\h\z3,32,21,14,4本題的考查點(diǎn)是循環(huán)和continue語(yǔ)句。continue語(yǔ)句是結(jié)束本次循環(huán)。n從0開始循環(huán),判斷n%3!=0是否成立,為真,跳出循環(huán),繼續(xù)判斷,為假,執(zhí)行k--,并結(jié)束循環(huán),輸出k、n的值。n等于0、1、2時(shí),都跳出循環(huán)繼續(xù)判斷,當(dāng)n=3時(shí),n%3!=0為假,執(zhí)行k--,k的值變?yōu)?。故本題答案為C。26.以下程序的輸出結(jié)果是—D―。#include<stdio.h>voidmain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}TOC\o"1-5"\h\z13102031switch結(jié)構(gòu)的執(zhí)行過(guò)程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行計(jì)算,然后從上至下去找與條件表達(dá)式的值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語(yǔ)句。第一次for循環(huán)中,switch結(jié)構(gòu)的條件表達(dá)式i的值是1,則從case1開始執(zhí)行后面的語(yǔ)句,先執(zhí)行a+=3,a的值變成3,接著執(zhí)行a+=5,a的值變成了8。然后進(jìn)入第二次循環(huán),switch結(jié)構(gòu)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論