重慶大學(xué)年《C語言程序設(shè)計(jì)》選擇結(jié)構(gòu)期末試題及答案_第1頁
重慶大學(xué)年《C語言程序設(shè)計(jì)》選擇結(jié)構(gòu)期末試題及答案_第2頁
重慶大學(xué)年《C語言程序設(shè)計(jì)》選擇結(jié)構(gòu)期末試題及答案_第3頁
重慶大學(xué)年《C語言程序設(shè)計(jì)》選擇結(jié)構(gòu)期末試題及答案_第4頁
重慶大學(xué)年《C語言程序設(shè)計(jì)》選擇結(jié)構(gòu)期末試題及答案_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1選擇題1.已有定義:intx=3,y=4,z=5;則表達(dá)式!(x+y)+z-1&&y+z/2的值是()。A.6B.0C.2D.12.設(shè)a=5,b=6,c=7,d=8,m=2,n=2,則執(zhí)行(m=a>b)&&(n=c>d)后n的值為()。A.1B.2C.3D.43.設(shè)x、y和z都是int類型變量,且x=3,y=4,z=5,則下面的表達(dá)式中,值為0的表達(dá)式為()。A.’x’&&’y’B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)4.為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是與()組成配對(duì)關(guān)系。A.縮排位置相同的ifB.在其之前未配對(duì)的ifC.在其之前未配對(duì)的最近的ifD.同一行上的if5.邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型()。A.只能是0或1B.只能是0或非0正數(shù)C.只能是整型或字符型數(shù)據(jù)D.可以是任何類型的數(shù)據(jù)6.以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是()。A.關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符B.邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符C.賦值運(yùn)算符<邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符D.算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符7.下列運(yùn)算符中優(yōu)先級(jí)最高的是()。A.<B.&&C.+D.!=8.選擇出合法的if語句(設(shè)intx,a,b,c;)()。A.if(a=b)c++;B.if(a=<b)c++;C.if(a<>b)c++;D.if(a=>b)c++;9.能正確表示“當(dāng)x的取值在[-58,-40]和[40,58]范圍內(nèi)為真,否則為假”的表達(dá)式是()。A.(x>=-58)&&(x<=-40)&&(x>=40)&&(x<=58)B.(x>=-58)||(x<=-40)||(x>=40)||(x<=58)C.(x>=-58)&&(x<=-40)||(x>=40)&&(x<=58)D.(x>=-58)||(x<=-40)&&(x>=40)||(x<=58)10.判斷char型變量s是否為小寫字母的正確表達(dá)式是()。A.’a’<=s<=’z’B.(s>=’a’)&(s<=’z’)C.(s>=’a’)&&(s<=’z’)D.(’a’<=s)and(’z’>=s)11.若希望當(dāng)x的值為奇數(shù)時(shí),表達(dá)式的值為“真”,x的值為偶數(shù)時(shí),表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是()。A.x%2==1B.!(x%2==0)C.!(x%2)D.x%212.已知x=45,y=’a’,z=0;則表達(dá)式(x>=z&&y<’z’||!y)的值是()。A.0B.語法錯(cuò)C.1D.“假”13.指出下列程序段所表示的邏輯關(guān)系是()。if(a<b){if(c==d)x=10;}elsex=-10;A.B.C.D.14.有一函數(shù):,以下程序段中不能根據(jù)x值正確計(jì)算出y值的是()。A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;B.y=0;if(x>0)y=1;elseif(x<0)y=-1;C.y=0;if(x>=0)if(x>0)y=1;elsey=-1;D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;15.執(zhí)行以下語句后,y的值為()。intx,y,z;x=y=z=0;++x||++y&&++z;A.0B.1C.2D.不確定值16.已知inta=1,b=2,c=3;以下語句執(zhí)行后a,b,c的值是()。if(a>b)c=a;a=b;b=c;A.a(chǎn)=1,b=2,c=3B.a(chǎn)=2,b=3,c=3C.a(chǎn)=2,b=3,c=1D.a(chǎn)=2,b=3,c=217.請(qǐng)閱讀以下程序:該程序()。#include”stdio.h”main(){intx=-10,y=5,z=0;if(x=y+z)printf(”***\n”);elseprintf(”$$$\n”);}A.有語法錯(cuò)不能通過編譯B.可以通過編譯但不能通過連接C.輸出***D.輸出$$$18.以下程序的運(yùn)行結(jié)果是()。#include”stdio.h”main(){inta=1;if(a++>1)printf(”%d\n”,a);elseprintf(”%d\n”,a--);}A.0B.1C.2D.319.當(dāng)a=1,b=2,c=4,d=3時(shí),執(zhí)行完下面一段程序后x的值是()。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=4;elsex=5;A.1B.2C.3D.420.執(zhí)行以下程序段后,變量x,y,z的值分別為()。inta=1,b=0,x,y,z;x=(--a==b++)?--a:++b;y=a++;z=b;A.x=0,y=0,z=0B.x=-1,y=-1,z=1C.x=0,y=1,z=0D.x=-1,y=2,z=121.若a、b、c、d、w均為int類型變量,則執(zhí)行下面語句后的w值是()。a=1;b=2;c=3;d=4;w=(a<b)?a:b;w=(w<c)?w:c;w=(w<d)?w:d;A.1B.2C.3D.422.以下程序的輸出結(jié)果是()。#include”stdio.h”main(){inta=5,b=4,c=6,d;printf(”%d\n”,d=a>b?a>c?a:c:b);}A.5B.4C.6D.不確定23.若a、b、c1、c2、x、y均為整型變量,正確的switch語句是()。A.switch(a+b);B.switcha{case1:y=a+b;break;{casec1:y=a-b;break;case0:y=a-b;casec2:x=a*d;break;break;default:x=a+b;}}C.switch(a*a+b*b)D.switch(a-b){case3:{default:y=a*b;break;case1:y=a+b;break;case3:x=a+b;break;case3:y=b-a;break;case10:case11:y=a-b;break;}}24.執(zhí)行下列程序,輸入為3的數(shù)出結(jié)果是()。#include”stdio.h”main(){intk;scanf(”%d”,&k);switch(k){case1:printf(”%d\n”,k++);case2:printf(”%d\n”,k++);case3:printf(”%d\n”,k++);case4:printf(”%d\n”,k++);break;default:printf(”Full!\n”);}}A.3B.4C.3D.45425.假定等級(jí)和分?jǐn)?shù)有以下對(duì)應(yīng)關(guān)系:等級(jí):A分?jǐn)?shù):85——100等級(jí):B分?jǐn)?shù):60——84等級(jí):C分?jǐn)?shù):60以下對(duì)于等級(jí)grade輸出相應(yīng)的分?jǐn)?shù)區(qū)間,能夠完成該功能的程序段是()。A.switch(grade){case’A’:printf(”85——100\n”);case’B’:printf(”60——84\n”);case’C’:printf(”<60\n”);default:printf(”gradeiserror!\n”);}B.switch(grade){case’A’:printf(”85——100\n”);break;case’B’:printf(”60——84\n”);case’C’:printf(”<60\n”);default:printf(”gradeiserror!\n”);}C.switch(grade){case’A’:printf(”85——100\n”);break;case’B’:printf(”60——84\n”);break;case’C’:printf(”<60\n”);default:printf(”gradeiserror!\n”);}D.switch(grade){case’C’:printf(”<60\n”);break;case’B’:printf(”60——84\n”);break;default:printf(”gradeiserror!\n”);break;case’A’:printf(”85——100\n”);}26.有如下程序,寫出該執(zhí)行結(jié)果()。#include”stdio.h”main(){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);}A.0.000000B.0.250000C.0.500000D.1.00000027.以下程序的運(yùn)行結(jié)果是()。#include”stdio.h”main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf(”%d\n”,c);}A.0B.1C.2D.328.運(yùn)行以下程序后,如從鍵盤上輸入china#,則輸出為()。#include”stdio.h”main(){intv1=0,v2=0;charch;while((ch=getchar())!=’#’)switch(ch){case’a’:case’h’:default:v1++;case’o’:v2++;}printf(”%d,%d\n”,v1,v2);}A.2,0B.5,0C.5,5D.2,529.有以下程序,若輸入為字符s,則程序運(yùn)行結(jié)果為()。#include”stdio.h”main(){charch;ch=getchar();switch(ch){case’a’:printf(”a=%c\n”,ch);default:printf(”end!\n”);case’b’:printf(”b=%c\n”,ch);case’c’:printf(”c=%c\n”,ch);}}A.end!B.end!C.有語法錯(cuò)誤D.a(chǎn)=sb=send!c=s30.有以下程序,程序運(yùn)行后的輸出結(jié)果是()。#include”stdio.h”main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(”%d\n”,m);}A.1B.2C.3D.42填空題1.若從鍵盤輸入58,則輸出結(jié)果是________。#include”stdio.h”main(){inta;scanf(”%d”,&a);if(a>50)printf(”%d”,a);if(a>40)printf(”%d”,a);if(a>30)printf(”%d”,a);}2.設(shè)intx=9,y=8;表達(dá)式x==y+1的結(jié)果是________。3.定義intx,y;執(zhí)行y=(x=1,++x,x+2);后,y的值是________。4.定義intx=10,y,z;執(zhí)行y=z=x;x=y==z;后,x的結(jié)果是________。5.設(shè)inta=1,b=2,c,d,e;執(zhí)行c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(a/(--a));請(qǐng)問a,b,c,d,e的結(jié)果是:________。6.設(shè)inta=2,b=3,c,d,e,f;執(zhí)行c=(a++>=--b);d=(a==++b);e=(a--!=b);f=(++a>b--);請(qǐng)問a,b,c,d,e,f的結(jié)果是:________。7.以下程序的運(yùn)行結(jié)果是________。#include”stdio.h”main(){inta,b,c,s,w,t;s=w=t=0;a=-1;b=3;c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}elseif(c>0)w=a-b;elset=c;printf(”%d%d%d”,s,w,t);}8.以下程序的運(yùn)行結(jié)果是________。#include”stdio.h”main(){inta,b,c,d,e;a=c=1;b=20;d=100;if(!a)d=d++;elseif(!b)if(d)d=--d;elsed=d--;printf(”%d\n\n”,d);}9.以下程序的運(yùn)行結(jié)果是________。#include”stdio.h”main(){inta,b=250,c;if((c=b)<0)a=4;elseif(b=0)a=5;elsea=6;printf(”\t%d\t%d\n”,a,c);if(c=(b==0))a=5;printf(”\t%d\t%d\n”,a,c);if(a=c=b)a=4;printf(”\t%d\t%d\n”,a,c);}10.下面程序根據(jù)以下函數(shù)關(guān)系,對(duì)輸入的每個(gè)x值,計(jì)算出y值。請(qǐng)?jiān)凇尽績(jī)?nèi)填空。xy2<x<=10x(x+2)-1<x<=21/xx<=-1x-1#include”stdio.h”main(){intx,y;scanf(”%d”,&x);if(【1】)y=x*(x+2);elseif(【2】)y=1/x;elseif(x<=-1)y=x-1;else【3】;if(y!=-1)printf(”%d”,y);elseprintf(”error”);}11.以下程序的功能是計(jì)算一元二次方程ax2+bx+c=0的根。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”#include”math.h”main(){floata,b,c,t,disc,w,term1,term2;printf(”entera,b,c:”);scanf(%f%f%f”,&a,&b,&c);if(【1】)if(【2】)printf(”noanswerduetoinputerror\n”);elseprintf(”thesinglerootis%f\n”,-c/b);else{disc=b*b-4*a*c;w=2*a;term1=-b/w;t=abs(disc);term2=sqrt(t)/w;if(【3】)printf(”complexroot\nrealpart=%fimagpart=%f\n”,term1,term2);elseprintf(”realroots\nroot1=%froot2=%f\n”,term1+term2,term1-term2);}}12.以下程序根據(jù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”math.h”#include”stdio.h”main(){floata,b,c,s,area;printf(”pleaseinputthreeedgesofatriangle:”);scanf(”%f%f%f”,&a,&b,&c);if(【1】){s=(a+b+c)/2;area=sqrt(s*(s-A*(s-B*(s-c));printf(”\ntheareaofthetriangleis:%f”,area);if((a==b)&&(b==c))printf(”等邊三角形”);elseif(【2】)printf(”等腰三角形”):elseif(【3】)printf(”直角三角形”):elseprintf(”一般三角形”):}elseprintf(”不能組成三角形”);}13.以下程序的功能是判斷輸入的年份是否是閏年。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”main(){intyear,flag;printf(”pleaseinputtheyeartojudewhetheritisaleapyear:”);scanf(”%d”,&year);if(year%400==0)flag=1;elseif(【1】)flag=1;else【2】;if(flag)printf(”%disaleapyear\n”,year);elseprintf(”%disnotaleapyear!\n”,year);}14.以下程序是對(duì)用戶輸入的字母進(jìn)行大小寫轉(zhuǎn)換。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”main(){charch;printf(”pleaseinputaletter:”);scanf(”%c”,&ch);if(【1】)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)【2】;printf(”theconvertedletteris:%c\n”,ch);}15.以下程序是對(duì)從鍵盤輸入的任何三個(gè)整數(shù),求出其中的最小值。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”main(){inta,b,c,min;printf(”pleaseinputthreenumbers:”);scanf(”%d%d%d”,&a,&b,&c);if(【1】)min=b;elsemin=a;if(min>c)【2】;printf(”min=%d\n”,min);}16.以下程序?qū)崿F(xiàn)這樣的功能:商店賣西瓜,10斤以上的每斤0.15元,8斤以上的每斤0.3元,6斤以上的每斤0.4元,4斤以上的每斤0.6元,4斤以下的每斤0.8元,從鍵盤輸入西瓜的重量和顧客所付錢數(shù),則輸出應(yīng)付款和應(yīng)找錢數(shù)。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”main(){floatweight,money,rate;printf(”thepaidmoneyoftheclientis:”);scanf(”%f”,&money);printf(”theweightofthewatermelonis:”);scanf(”%f”,&weight);if(【1】)rate=0.15;elseif(weight>8)rate=0.3;elseif(weight>6)【2】;elseif(weight>4)rate=0.6;【3】rate=0.8;printf(”theaccountpayableofthewatermelonis%f\n”,weight*rate);printf(”thechangeforclientis%f\n”,money-weight*rate);}17.以下程序段的運(yùn)行結(jié)果是________。#include”stdio.h”main(){charch1=’a’,ch2=’A’;switch(ch1){case’a’:switch(ch2){case’A’:printf(”good!\n”);break;case’B’:printf(”bad!\n”);break;}case’b’:printf(”joke\n”);}}18.根據(jù)以下函數(shù)關(guān)系,對(duì)輸入的每個(gè)x值,計(jì)算出相應(yīng)的y值。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。xyx<000<=x<10x10<=x<201020<=x<40-0.5x+20#include”stdio.h”main(){intx,rate;floaty;printf(”pleaseinputthevalueofx:”);scanf(”%d”,&x);if(【1】)rate=-1;elserate=【2】;switch(rate){case–1:y=0;break;case0:y=x;break;case1:y=10;break;case2:case3:y=-0.5*x+20;break;default:y=-2;}if(【3】)printf(”y=%f\n”,y);elseprintf(”thevalueofxisinvalid!\n”);}19.以下程序?qū)崿F(xiàn)的功能是:從鍵盤輸入某年某月,輸出該年份該月的天數(shù)。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”main(){intyear,month,days,leap;printf(”pleaseinputbothyearandmonth:”);scanf(”%4d/%2d”,&year,&month);switch(【1】){case1:case3:case5;case7:case8:case10:case12:days=31;【2】case4:case6:case9:case11:days=30;break;case2:if(year%400==0)leap=1;elseif(year%4==0&&year%100!=0)leap=1;else【3】;if(leap)days=29;elsedays=28;}printf(”%d年%d月的天數(shù)為%d\n”,year,month,days);}20.以下程序完成兩個(gè)數(shù)的四則運(yùn)算。請(qǐng)?jiān)凇尽績(jī)?nèi)填入正確內(nèi)容。#include”stdio.h”main(){floatx,y;charoperator;printf(”pleaseinputtheexpression:”);scanf(”%f%c%f”,&x,&operator,&y);switch(【1】){case’+’:printf(”%g%c%g=%g\n”,x,operator,y,x+y);【2】;case’-’:printf(”%g%c%g=%g\n”,x,operator,y,x-y);break;case’*’:printf(”%g%c%g=%g\n”,x,operator,y,x*y);break;case’/’:if(y==0.0)printf(”除零錯(cuò)誤!\n”);elseprintf(”%g%c%g=%g\n”,x,operator,y,x/y);break;【3】:printf(”表達(dá)式存在錯(cuò)誤!\n”);}}21.以下程序運(yùn)行后的輸出結(jié)果是_____________。#include”stdio.h”main(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(”%d,%d\n”,x,y);}22.執(zhí)行以下語句后,x、y和z的值分別為_____________。intx,y,z;x=y=z=0;++x||++y&&++z;3答案及部分解析選擇題答案1.D2.B3.D4.C5.D6.C7.C8.A9.C10.C11.C12.C13.B14.C15.A16.B17.C18.C19.B20.B21.A22.C23.D24.C25.D26.C27.C28.C29.A30.A2.解析:當(dāng)條件1:m=a>b的值為假時(shí),便已經(jīng)確定整個(gè)表達(dá)式的值為假,所以不必再繼續(xù)判斷第二個(gè)表達(dá)式的邏輯值。由于沒有執(zhí)行第二個(gè)表達(dá)式n=c>d,所以n的值仍為2。17.解析:if的條件表達(dá)式x=y+z為賦值語句,x=5為非零值,即為if(1)printf(”***\n”);23.解析:A.的錯(cuò)誤在于switch(a+b);其后有一個(gè)“;”,B的錯(cuò)誤在于switcha的條件表達(dá)式a沒有括號(hào),應(yīng)該為switch(a),C的錯(cuò)誤在于有兩個(gè)case具有相同的入口值。28.解析:當(dāng)輸入c時(shí),switch語句執(zhí)行情況為:switch(ch)switch(ch){case’a’:case’h’:default:v1++;case’0’:v2++;}從此處向下執(zhí)行因?yàn)闆]有break語句當(dāng)繼續(xù)輸入h時(shí),switch語句的執(zhí)行情況為:switch(ch)switch(ch){case’a’:case’h’:default:v1++;case’0’:v2++;}從此處向下執(zhí)行因?yàn)闆]有break語句重復(fù)上述過程,輸入5個(gè)有效字符,則v1和v2執(zhí)行5次自加操作,所以:v1=5,v2=5填空題答案1.答案:585858解析:雖然三個(gè)if語句按照嵌套方式書寫,但是程序仍然是依順序運(yùn)行的,會(huì)分別對(duì)每一個(gè)if的條件表達(dá)式進(jìn)行判斷,若其條件表達(dá)式為真,就執(zhí)行其后的語句,否則,不執(zhí)行。2.答案:1解析:注意該表達(dá)式是關(guān)系表達(dá)式的雙等號(hào),所以其結(jié)果只能為1或0。3.答案:44.答案:15.答案:在TurboC編譯系統(tǒng)下,結(jié)果為a=2,b=3,c=2,d=3,e=-1;若在VisualC++下,結(jié)果為a=2,b=3,c=2,d=3,e=-0。解析:①在TurboC編譯系統(tǒng)下,解題過程如下:第一個(gè)賦值語句“c=(-a++)+(++b);”可分解為如下的幾個(gè)語句:此時(shí)a=2,b=3,c=2。第二個(gè)賦值語句“d=(b--)+(++a)-a;”可分解為如下的幾個(gè)語句:此時(shí)a=3,b=2,c=2,d=3。第三個(gè)賦值語句“e=(a/(++b))-(a/(--a));”中由于自加、自減運(yùn)算符的優(yōu)先級(jí)高于其它運(yùn)算符,故先運(yùn)算++和--,令a=2,b=3,然后

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論