C語(yǔ)言專升本教案_第1頁(yè)
C語(yǔ)言專升本教案_第2頁(yè)
C語(yǔ)言專升本教案_第3頁(yè)
C語(yǔ)言專升本教案_第4頁(yè)
C語(yǔ)言專升本教案_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章C語(yǔ)言概述必不可少C程序的組成和形式必不可少C程序是由函數(shù)構(gòu)成的主函數(shù)其他函數(shù)一個(gè)函數(shù)由兩部分組成參數(shù)說明可以省圓括號(hào)不能省參數(shù)說明可以省圓括號(hào)不能?。持衜ax函數(shù)的首部為:intmax(intx,inty)函數(shù)類型函數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名函數(shù)參數(shù)類型函數(shù)參數(shù)名函數(shù)體聲明部分變量聲明函數(shù)聲明執(zhí)行部分一個(gè)C程序總是從main函數(shù)開始執(zhí)行。C程序書寫格式自由,一行可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以寫在多行上。每個(gè)語(yǔ)句和數(shù)據(jù)聲明的最后必須有一個(gè)分號(hào)。C語(yǔ)言的輸入輸出功能是通過函數(shù)完成的。開開始編輯編譯連執(zhí)行有錯(cuò)?結(jié)果正確?結(jié)束有源程序file.c目標(biāo)程序file.obj庫(kù)函數(shù)和其他目標(biāo)程序可執(zhí)行目標(biāo)程序file.exe無正確不正確接運(yùn)行C程序的步驟:第三章數(shù)據(jù)類型、運(yùn)算符、與表達(dá)式短整型shortC短整型shortC數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void字符類型char枚舉類型enum整型實(shí)型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union長(zhǎng)整型long整型intC語(yǔ)言的數(shù)據(jù)類型:數(shù)據(jù)類型決定:數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作§3.2常量與變量常量與符號(hào)常量常量:在程序運(yùn)行過程中,其值不能被改變的量符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量的符號(hào)使用符號(hào)常量的好處:含義清楚能做到“一改全改”變量變量:代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,它用來存放數(shù)據(jù),也就是變量的值,在程序運(yùn)行期間,這些值是可以改變的。標(biāo)識(shí)符:在C語(yǔ)言中用來對(duì)變量、符號(hào)常量、函數(shù)、數(shù)組、類型等對(duì)象命名的有效字符序列標(biāo)識(shí)符的命名規(guī)則:只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線。大寫和小寫字母是不同的字符,也就是不同的標(biāo)識(shí)符。標(biāo)識(shí)符的最大長(zhǎng)度TuoboC規(guī)定為32個(gè)字符,一般不超過8?jìng)€(gè)字符。標(biāo)識(shí)符應(yīng)做到“見名知義”標(biāo)識(shí)符不能是關(guān)鍵字,如果是已經(jīng)定義標(biāo)識(shí)符,比如函數(shù)名,則相當(dāng)于重新定義。變量必須“先定義,后使用”例例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123§3.3整型數(shù)據(jù)整型常量十進(jìn)制整數(shù):正負(fù)整數(shù)八進(jìn)制整數(shù):以0開頭,08是錯(cuò)誤的用法十六進(jìn)制整數(shù):以0x開頭,例:0x2a是合法的整型常量的類型一個(gè)整型常數(shù)根據(jù)數(shù)據(jù)所在的范圍可自動(dòng)確定它的數(shù)據(jù)類型一個(gè)整常量后面加一個(gè)字母u或U,認(rèn)為是unsignedint型一個(gè)整常量后面加一個(gè)字母l或L,認(rèn)為是longint整型變量整型數(shù)據(jù)在內(nèi)存中的存放形式:補(bǔ)碼正整數(shù):該數(shù)的原碼負(fù)整數(shù):該數(shù)的絕對(duì)值按位取反再加1例:10的補(bǔ)碼為0000000000001010-10的補(bǔ)碼為1111111111110110最高位是符號(hào)位,該位為0表示正,該位為1表示負(fù)。整型變量的分類:六種·有符號(hào)基本整型:[signed]int2-32768~32767(-215~215-1)·無符號(hào)基本整型:unsignedint20~65535(0~216-1)·有符號(hào)短整型:[signed]short[int]2-32768~32767·無符號(hào)短整型:unsignedshort[int]20~65535·有符號(hào)長(zhǎng)整型:[signed]long[int]4-2147483648(-231~231-1)·無符號(hào)長(zhǎng)整型:unsignedlong[int]40~4294967295(0~232-1)整型數(shù)據(jù)的溢出例3.3整型數(shù)據(jù)的溢出#include<stdio.h>voidmain(){inta,b;a=32767;b=a+1;a和b在內(nèi)存中的形式:011111111111111132767a和b在內(nèi)存中的形式:0111111111111111327671000000000000000-32768}運(yùn)行結(jié)果為:32767,-32768§3.4浮點(diǎn)型數(shù)據(jù)錯(cuò)誤用法浮點(diǎn)型常量的表示方法錯(cuò)誤用法十進(jìn)制小數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,1.2E-3.5規(guī)范化的指數(shù)形式:在字母e(或E)之前的小數(shù)部分中,小數(shù)點(diǎn)左邊應(yīng)有一位(且只能有一位非零的數(shù)字。浮點(diǎn)型變量浮點(diǎn)型數(shù)據(jù)在內(nèi)存中的存放形式:分成小數(shù)部分和指數(shù)部分兩部分存放例:3.14159在內(nèi)存中的形式如下(實(shí)際存儲(chǔ)的是它的二進(jìn)制數(shù)形式):+3141591+3141591符號(hào)小數(shù)部分指數(shù)部分浮點(diǎn)型變量的分類類型比特?cái)?shù)有效數(shù)字?jǐn)?shù)值范圍float326~7-3.4*10-38~3.4*1038double6415~16-1.7*10-308~1.7*10308lingdouble12818~19-1.2*10-4932~1.2*104932浮點(diǎn)型變量也應(yīng)先定義后使用§3.5字符型數(shù)據(jù)字符常量:用單撇號(hào)括起來的一個(gè)字符轉(zhuǎn)義字符:以一個(gè)“\”開頭的字符序列:含義轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義轉(zhuǎn)義字符含義轉(zhuǎn)義字符水平制表8\t\n換行水平制表8\t\n換行回車\r退格\b回車\r退格\b反斜線\\換頁(yè)\f反斜線\\換頁(yè)\f1~2位16進(jìn)制數(shù)代表的字符\xhh1~3位81~2位16進(jìn)制數(shù)代表的字符\xhh1~3位8進(jìn)制數(shù)代表的字符\ddd雙引號(hào)\“單引號(hào)\‘例:3.5轉(zhuǎn)義字符的使用#include<stdio.h>voidmain()main(){printf("abc\tde\rf\tg\n");printf("h\ti\b\bjk\n");}實(shí)際運(yùn)行結(jié)果為:fgde實(shí)際運(yùn)行結(jié)果為:fgdehjk*輸出的制表符覆蓋了原有字符fabcgdehjik字符變量字符變量的定義及使用形式:charc1,c2;c1=’a’;c2=’b’;字符變量在內(nèi)存中占一字節(jié)。字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式以字符的ASCII碼形式存放可以和整型數(shù)據(jù)通用,可以互相賦值,可以以%d或c式輸出,字符型數(shù)據(jù)可以參加算術(shù)運(yùn)算,但只能存放0~255(unsignedchar)或-128~127(signedchar)之間的整數(shù)。例3.6向字符變量賦予整數(shù)#include<stdio.h>voidmain(){charc1;intc2;c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);}運(yùn)行結(jié)果:ab9798例3.7大小寫字母的轉(zhuǎn)換#include<stdio.h>voidmain(){charc1,c2;c1='a';c2='b';c1=c1-32;c2=c2-32;printf("%c%c",c1,c2);}字符串常量:一對(duì)雙撇號(hào)括起來的字符序列:“abc”‘a(chǎn)’是字符常量,“a”是字符串常量不能將一個(gè)字符串常量賦值給字符變量系統(tǒng)自動(dòng)在字符串常量的末尾加上‘\0’例字符串“hello”在內(nèi)存中例字符串“hello”在內(nèi)存中:hello\0\0例\0例空串“”在內(nèi)存中§3.6變量賦初值變量賦初值:在定義變量的同時(shí)使變量初始化正確用法例:inta=3;正確用法floatf=3.56;charc=’a’;錯(cuò)誤用法inti,j,k=5;錯(cuò)誤用法inta,b,c=5;inta=b=c=5;§3.7各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算整型、浮點(diǎn)型、字符型數(shù)據(jù)間可以混合運(yùn)算不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,再進(jìn)行運(yùn)算轉(zhuǎn)換規(guī)則:doubledoublefloatlongunsignedintchar,short低高必定轉(zhuǎn)換運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換方向inti;floatf;inti;floatf;doubled;longe;1010+‘a(chǎn)’+I*f-d/eintintintdoubledoubledoubledoubledoubledouble§3.8算術(shù)運(yùn)算符和算術(shù)表達(dá)式C運(yùn)算符簡(jiǎn)介算術(shù)運(yùn)算符:(+-*/%++--算術(shù)運(yùn)算符:(+-*/%++--)關(guān)系運(yùn)算符:(<<===>>=!=)邏輯運(yùn)算符:((!&&||)位運(yùn)算符:(<<>>~|^&)賦值運(yùn)算符:(=及其擴(kuò)展)條件運(yùn)算符:(?:)逗號(hào)運(yùn)算符:(,)指針運(yùn)算符:(*&)求字節(jié)數(shù):(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:(.->)下標(biāo)運(yùn)算符:([])其它:(()-)CC運(yùn)算符算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本算術(shù)運(yùn)算符:+,-,*,/,%(取余)結(jié)合方向:從左向右優(yōu)先級(jí):-*/%+-(2)(3)(4) 說明:“-”可為單目運(yùn)算符時(shí),右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù),遵守“向零取整”的原則例:例:5%2=1-5%2=-11%10=15%1=05.5%2()例:5/2=2-5/2=-2-5/2.0=-2.5算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(操作數(shù))連接起來,符合C語(yǔ)法規(guī)則的式子。強(qiáng)制類型轉(zhuǎn)換運(yùn)算符一般形式:(類型名)(表達(dá)式)優(yōu)先級(jí):2級(jí)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變例例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3精度損失問題精度損失問題較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生自增、自減運(yùn)算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)說明:++--只能用于變量,不能用于常量和表達(dá)式,如5++(),(a+b)++()++--結(jié)合方向:自右向左優(yōu)先級(jí):-,++,--*,/,%+,-(2)(3)(4)j=i++;printf(“%d,%d”,j,i);例:printf(j=i++;printf(“%d,%d”,j,i);運(yùn)行結(jié)果:4,3例j+++k;(j++)+k;例j+++k;(j++)+k;例-i++-(i++)(同一優(yōu)先級(jí)右結(jié)合性)i=3;printf(“%d”,-i++);//-3§3.9賦值運(yùn)算符和賦值表達(dá)式簡(jiǎn)單賦值運(yùn)算符符號(hào):=格式:變量標(biāo)識(shí)符=表達(dá)式作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量賦值時(shí)若變量和表達(dá)式的類型不一致將自動(dòng)進(jìn)行類型轉(zhuǎn)換例1:inti;i=3.56;/*實(shí)際i值為3*/例2:floatf;f=23;printf(“%f\n”,f);結(jié)果為:23.000000例3:doule賦值給float時(shí),截取其前面7位有效數(shù)字,取值范圍超出時(shí)產(chǎn)生溢出錯(cuò)誤。floatf;doubled=123.456789e100;f=d;/*出錯(cuò)*/例4:字符賦給整型時(shí):main(){unsignedcharc,d;inta,b;無符號(hào)字符時(shí),將原值存入整型數(shù)的低八位,高八位補(bǔ)零。c=’\376’無符號(hào)字符時(shí),將原值存入整型數(shù)的低八位,高八位補(bǔ)零。a=c;b=d;printf(“%d,%d”,a,b);}運(yùn)行結(jié)果為:254,131main(){charc;有符號(hào)字符時(shí),將原值存入整型數(shù)的低八位,高八位符號(hào)擴(kuò)展。原值最高位為零則補(bǔ)零,為1則補(bǔ)1inta;有符號(hào)字符時(shí),將原值存入整型數(shù)的低八位,高八位符號(hào)擴(kuò)展。原值最高位為零則補(bǔ)零,為1則補(bǔ)1c=’\376’a=c;printf(“%d”,a);}運(yùn)行結(jié)果為:-2例5:main()int,short,long賦值給字符型變量時(shí),只將其低八位截取賦值{inti=289;int,short,long賦值給字符型變量時(shí),只將其低八位截取賦值charc;c=i;printf(“%d,%c”,c,c);}運(yùn)行結(jié)果為:33,!例6:將int賦值給longint處理方法同例4將賦值給int時(shí)截取低16位main(){longb=65536;inta;a=b;printf(“%d”,a);}運(yùn)行結(jié)果為:0例7:將unsigned賦給一個(gè)同字節(jié)數(shù)的signed型時(shí),將原值保持不變,超范圍會(huì)產(chǎn)生溢出錯(cuò)誤。例:main(){unsignedinta=65535;intb;b=a;printf(“%d”,b);}運(yùn)行結(jié)果為:-1例8:將signed賦給一個(gè)同字節(jié)數(shù)的unsigned型時(shí),將原值保持不變main(){unsignedinta;intb=-1;a=b;printf(“%d”,a);}運(yùn)行結(jié)果為:65535復(fù)合賦值運(yùn)算符種類:+=-=*=/=%=<<=>>=&=^=|=含義:變量op=表達(dá)式變量=變量op(表達(dá)式)a+=3a+=3a=a+3x*=y+8x*=y+8x=x*(y+8)x%=3x%=3x=x%3賦值表達(dá)式一般形式:變量=表達(dá)式賦值表達(dá)式的值與變量值相等,且可嵌套,但賦值號(hào)左邊必須為變量正確用法:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)錯(cuò)誤用法:3=x-2*y;a+b=3;a=3*5=4*3例:a=12;a+=a-=a*a/*a=-264等價(jià)于a=a+(a=a-(a*a))*/例:b=3;printf(“%d”,a=b);§3.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式形式:表達(dá)式1,表達(dá)式2,……表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí)低于賦值表達(dá)式逗號(hào)表達(dá)式的值:等于表達(dá)式n的值例a=3*5,a*4/*a=15,表達(dá)式值60*/a=3*5,a*4,a+5/*a=15,表達(dá)式值20*/例x=(a=3,6*3)/*賦值表達(dá)式,表達(dá)式值18,x=18*/x=a=3,6*a/*逗號(hào)表達(dá)式,表達(dá)式值18,x=3*/例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);/*1,2,3*/printf(“%d,%d,%d”,(a,b,c),b,c);/*3,2,3*/課堂練習(xí):分析下面程序的運(yùn)行結(jié)果:main(){floatf1;inta;charc=’a’;f1=32.78;c=c-(int)f1;a=c%15;printf(“%d,%f,%c\n”,a,f1,c);}第一章與第三章練習(xí)題1.一個(gè)C程序的執(zhí)行是從_____。A)本程序的main函數(shù)開始,到main函數(shù)結(jié)束B)本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C)本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D)本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束2.以下敘述正確的是:A)在C程序中,main函數(shù)必須位于程序的最前面B)C程序的每行中只能寫一條語(yǔ)句C)C語(yǔ)言本身沒有輸入輸出語(yǔ)句D)在對(duì)一個(gè)C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤3.以下敘述不正確的是。A)一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成B)一個(gè)C源程序必須包含一個(gè)main函數(shù)C)C程序的基本組成單位是函數(shù)D)在C程序中,注釋說明只能位于一條語(yǔ)句的后面4.C語(yǔ)言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置。A)必須在最開始B)必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面C)可以任意D)必須在最后5.一個(gè)C語(yǔ)言程序是由A)一個(gè)主程序和若干子程序組成B)函數(shù)組成C)若干過程組成D)若干子程序組成6.若x,i,j和k都是int型變量,則執(zhí)行下面表達(dá)式后x的值為x=(i=4,j=16,k=32)A)4B)16C)327.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是:A)7B)8C8.C語(yǔ)言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符A)必須為字母B)必須為下劃線C)必須為字母或下劃線D)可以是字母,數(shù)字和下劃線中任一種字符9.若有代數(shù)式3ae/bc,則不正確的C語(yǔ)言表達(dá)式是:A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*310.以下不正確的敘述是A)在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B)在C程序中,APH和aph是兩個(gè)不同的變量C)若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變。D)當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值。11.以下正確的敘述是:A)在C程序中,每行中只能寫一條語(yǔ)句B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型數(shù)C)在C程序中,無論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無誤地表示D)在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符12.以下符合C語(yǔ)言語(yǔ)法的賦值表達(dá)式是A)d=9+e+f=d+9B)d=9+e,f=d+9C)d=9+e=e++,d+9D)d=9+e++=d+713.已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語(yǔ)句c2='A'十'6'一'3';后,c2中的值為A)DB)68C)不確定的值D)C14.在C語(yǔ)言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是。A)/B)++c)!=D)%15.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sUM=num++,sUM++,++num后sum的值為A)7B)8C16.在C語(yǔ)言中,int、char和short種類型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)A)由用戶自己定義B)均為2個(gè)字節(jié)C)是任意的D)由所用機(jī)器的機(jī)器字長(zhǎng)決定17.若有說明語(yǔ)句:charc='\72'則變量cA)包含1個(gè)字符B)包含2個(gè)字符C)包含3個(gè)字符D)說明不合法,c的值不確定18.若有定義:inta=7;floatx=2.5,y=4.7;則表達(dá)式x+a%3*(int)(x+y)%2/4的值是A)2.500000B)2.7500OOc)3.500000D)0.000000。19.sizeof(float)是:A)一個(gè)雙精度型表達(dá)式B)一個(gè)整型表達(dá)式C)一種函數(shù)調(diào)用D)一個(gè)不合法的表達(dá)式20.設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為A)intB)floatC)doubleD)不確定21.在C語(yǔ)言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是:A)補(bǔ)碼B)反碼C)原碼D)ASCII碼22.表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為:A)intB)floatC)doubleD)不確定23.設(shè)C語(yǔ)言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),則unsignedint型數(shù)據(jù)的取值范圍為:A)0~255B)0~32767C)0~6553524.設(shè)有說明:charw;intx;f1oaty;doublez;則表達(dá)式w*x+z一y值的數(shù)據(jù)類型為:A)floatB)charC)intD)double25.若有以下定義,則能使值為3的表達(dá)式是:intk=7,x=12;A)x%=(k%=5)B)x%=(k一k%5)C)x%=k-k%5D)(x%=k)一(k%=5)26.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+l,x=y,x+1)第四章順序程序設(shè)計(jì)§4.1C語(yǔ)句C語(yǔ)句分類程序控制語(yǔ)句(9種):分支if()~else~switch分支if()~else~switchfor()~while()~do~while()continuebreakgotoreturn循環(huán)循環(huán)輔助控制輔助控制表達(dá)式語(yǔ)句:表達(dá)式加分號(hào)構(gòu)成。函數(shù)調(diào)用語(yǔ)句:函數(shù)名(實(shí)際參數(shù)表);賦值語(yǔ)句:賦值表達(dá)式加一個(gè)分號(hào)a=3;i++;其他表達(dá)式構(gòu)成語(yǔ)句:表達(dá)式加一個(gè)分號(hào)x+y;/*合法但無意義*/空語(yǔ)句:;復(fù)合語(yǔ)句:用{…}括起來的一組語(yǔ)句一般形式:{[數(shù)據(jù)說明部分;]執(zhí)行語(yǔ)句部分;}說明:“}”后不加分號(hào)語(yǔ)法上和單一語(yǔ)句相同復(fù)合語(yǔ)句可嵌套§4.2字符數(shù)據(jù)的輸入輸出字符輸出函數(shù):格式:putchar(c)參數(shù):c為字符常量、變量或表達(dá)式功能:把字符c輸出到顯示器上#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}字符輸入函數(shù)格式:getchar()/*無參函數(shù)*/功能:從輸入設(shè)備得到一個(gè)字符作為函數(shù)值賦值給一個(gè)字符變量例:charc;c=getchar();putchar(getchar());printf(“%c”,getchar());§4.3格式輸出printf函數(shù)printf函數(shù)一般格式:printf(“格式控制串”,輸出表)功能:按指定格式向顯示器輸出數(shù)據(jù)輸出表:要輸出的數(shù)據(jù)(可以沒有,多個(gè)時(shí)以“,”分隔)格式控制串:包含兩種信息格式說明:%[修飾符]格式字符,用于指定輸出格式格式字符:十六進(jìn)制無符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)格式字符:十六進(jìn)制無符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)小數(shù)單一字符字符串八進(jìn)制無符號(hào)整數(shù)小數(shù)形式浮點(diǎn)小數(shù)e和f中較短一種百分號(hào)本身d,i5677ffd,i5677fff101567AABC5.677890e+02567.789000567.789%inta=567;printf(“%d”,a);x,Xinta=255;printf(“%x”,a);x,Xinta=255;printf(“%x”,a);ointa=65;printf(“%o”,a);ointa=65;printf(“%o”,a);uinta=567;printf(“%u”,a);uinta=567;printf(“%u”,a);cchara=65;printf(“%c”,a);cchara=65;printf(“%c”,a);sprintf(“%s”,sprintf(“%s”,“ABC”);e,Efloata=567.789;printf(“%e”,a);e,Efloata=567.789;printf(“%e”,a);ffloata=567.789;printf(“%f”,a);ffloata=567.789;printf(“%f”,a);g,Gg,Gfloata=567.789;printf(“%g”,a);printf(“%%”);%%printf(“%%”);%%說明 格式字符要用小寫(X,E,G除外)格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng)#include<stdio.h>voidmain(){inta;a=12;printf("%d,%d",a,13);}運(yùn)行結(jié)果:12,13修改:printf("%d,%d",a);運(yùn)行結(jié)果:12,0修改:printf("%d",a,13);運(yùn)行結(jié)果:12輸出轉(zhuǎn)換:格式字符與輸出項(xiàng)類型不一致,自動(dòng)按指定格式輸出(某種情況下可,某種情況不能轉(zhuǎn)換)附加格式說明符(修飾符)功能能功能能修飾符輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長(zhǎng)度輸出數(shù)據(jù)域?qū)?數(shù)據(jù)長(zhǎng)度<m,左補(bǔ)空格;否則按實(shí)際輸出(用于整型、浮點(diǎn)、字符串)m對(duì)實(shí)數(shù),對(duì)實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)(四舍五入)對(duì)字符串,指定實(shí)際從左端截取的字符的個(gè)數(shù).n.n-輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省右對(duì)齊)-輸出數(shù)據(jù)在域內(nèi)左對(duì)齊(缺省右對(duì)齊)在d,o,x,u前,指定輸出精度為在d,o,x,u前,指定輸出精度為long型在e,f,g前,指定輸出精度為double型(double型也可以直接用%f輸出)ll課堂練習(xí):分析下列程序的運(yùn)行結(jié)果:例inta=1234;floatf=123.456;charch=‘a(chǎn)’;printf(“%8d,%2d\n”,a,a);printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);printf(“%3c\n”,ch);運(yùn)行結(jié)果:1234,1234123.456000,123.456000,123.5,123.46,1.23e+02a例:無符號(hào)數(shù)據(jù)的輸出#include<stdio.h>voidmain(){unsignedinta=65535; intb=-2;printf("a=%d,%o,%x,%u\n",a,a,a,a);printf("b=%d,%o,%x,%u\n",b,b,b,b);}運(yùn)行結(jié)果為:a=-1,177777,ffff,65535b=-2,177776,fffe,65534例:字符串的輸出#include<stdio.h>voidmain(){printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");}運(yùn)行結(jié)果:CHINA(#號(hào)代表空格)例:輸出實(shí)數(shù)時(shí)的有效位數(shù)(一般7位有效數(shù)字)#include<stdio.h>voidmain(){floatx,y;x=111111.111;y=222222.222;printf("%f",x+y);}運(yùn)行結(jié)果為:333333.328125例:輸出雙精度數(shù)時(shí)的有效位數(shù)(一般16位有效數(shù)字)#include<stdio.h>voidmain(){doublex,y;x=1111111111111.111111111;y=2222222222222.222222222;printf("%f",x+y);}運(yùn)行結(jié)果為:3333333333333.333000§4.4格式輸入函數(shù)scanf()scanf函數(shù)一般格式:scanf(“格式控制串”,地址表列)功能:按指定格式從鍵盤輸入數(shù)據(jù)地址表列:由若干個(gè)地址組成的表列,可以是變量的地址,或字符串的首地址格式字符:d,i;o;x,X;u;c;s;f,e,E,g.,G附加格式說明符(修飾符)ll修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x,u前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,應(yīng)為正整數(shù)抑制符,指定輸入項(xiàng)讀入后不賦給變量輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:遇空格、TAB、或回車遇寬度結(jié)束遇非法輸入#include<stdio.h>voidmain(){inta,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d,%d,%d\n",a,b,c);輸入時(shí)可以空格,回車鍵,Tab鍵分隔}輸入時(shí)可以空格,回車鍵,Tab鍵分隔輸入數(shù)據(jù):345運(yùn)行結(jié)果:3,4,5以下輸入方法均正確:①345②345③3(按Tab鍵)45例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);輸入123123123?輸出a=123,b=83,c=291例scanf(“%4d%2d%2d”,&yy,&mm,&dd);輸入19991015?則1999Tyy,10Tmm,15T例scanf(“%2d%*3d%2d”,&a,&b);輸入1234567?則12Ta,67T例scanf(“%3d%*4d%f”,&k,&f);輸入12345678765.43?則123Tk,8765.43T例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);輸入a=12,b=24,c=36?例scanf(“%d%c%f”,&a,&b,&c);若輸入1234a123o.26?則1234Ta,‘a(chǎn)’Tb,123Tc例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123?輸出:x=123,ch=10charch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123?輸出:x=123,ch=10例main(){doublef;scanf(“%lf”,f);//l不能省略printf(“%f”,f);}§4.6順序結(jié)構(gòu)程序設(shè)計(jì)舉例例4.10輸入三角形的三個(gè)邊長(zhǎng),求三角形的面積分析:若假設(shè)輸入的三個(gè)數(shù)可以構(gòu)成一個(gè)三角形,則由三條邊求三角形面積公式為:))()()()(21csbsassareacbas程序如下:#include<math.h>#include<stdio.h>main(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);輸入:3,4,6輸入:3,4,6輸出:a=3.00,b=4.00,c=6.00s=6.50area=5.33004022acbcbxax方程的根,設(shè)例求分析:一元二次方程的根為:aaacbbx242#include<stdio.h>#include<math.h>main(){floata,b,c,disc,x1,x2,p,q;scanf("a=%f,b=%f,c=%f",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);}輸入:a=1,b=3,c=2?輸出:x1=-1.00x2=-2.00第五章選擇結(jié)構(gòu)程序設(shè)計(jì)§5.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符種類:<<===>=>!=結(jié)合方向:自左向右優(yōu)先級(jí)別:低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符(算術(shù)-關(guān)系-賦值-逗號(hào))<<=<<=>>===!==優(yōu)先級(jí)6(高)優(yōu)先級(jí)7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)關(guān)系表達(dá)式的值:是邏輯值“真”或“假”,用1和0表示//表達(dá)式值1//表達(dá)式值1//表達(dá)式值1//表達(dá)式值0//d=1//f=0,合法,但不要理解錯(cuò)含義a>b(a>b)==cb+c<ad=a>bf=a>b>c例inti=1,j=7,a;a=i+(j%4!=0);結(jié)果:a=2例‘a(chǎn)’>0結(jié)果為1‘A’>100結(jié)果為0例5>2>7>8在C中是允許的,值為0例注意區(qū)分“=”與“==”inta=0,b=1;if(a=b)//改為if(a==b)printf(“aequaltob”);elseprintf(“anotequaltob”);例應(yīng)避免對(duì)實(shí)數(shù)作相等或不等的判斷(有些系統(tǒng)可以)如1.0/3.0*3.0==1.0有的系統(tǒng)結(jié)果為0,有的系統(tǒng)結(jié)果為1可改寫為:fabs(1.0/3.0*3.0-1.0)<1e-6§5.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和表達(dá)式邏輯運(yùn)算符種類:&&(與)||(或)!(非)邏輯運(yùn)算規(guī)則:&&:兩個(gè)操作數(shù)同時(shí)為真,其值為真,否則為假|(zhì)|:兩個(gè)操作數(shù)有一者為真則其值為真,全為假則為假!:若操作數(shù)為真,則其值為假,若操作數(shù)為假,則其值為真。優(yōu)先級(jí):!算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&和||賦值逗號(hào)高低結(jié)合性:!:從右向左&&:從左向右||:從左向右說明:當(dāng)邏輯運(yùn)算的操作數(shù)為數(shù)值型值時(shí),若該值為0則為假,非0則為真例a<=x&&x<=b//(a<=x)&&(x<=b)a>b&&x>y//(a>b)&&(x>y)a==b||x==y//(a==b)||(x==y)!a||a>b//(!a)||(a>b)例a=4;b=5;!a值為0a&&b值為1a||b值為1!a||b值為14&&0||2值為15>3&&2||8<4-!0//(5>3)&&2||(8<(4-(!0)))值為1‘c’&&‘d’值為1短路特性:邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符例a&&b&&c//只在a為真時(shí),才判別b的值;只在a、b都為真時(shí),才判別c的值例a||b||c//只在a為假時(shí),才判別b的值;只在a、b都為假時(shí),才判別c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)//結(jié)果m=0,n=1§5.3if語(yǔ)句if語(yǔ)句的三種形式形式一:格式:if(expression)statement執(zhí)行過程:條件表達(dá)式條件表達(dá)式語(yǔ)句非0=0例:if(x>y)printf(“%d”,x);形式二:格式:if(expression)statement1elsestatement2執(zhí)行過程:表達(dá)式表達(dá)式語(yǔ)句1語(yǔ)句2非0=0例:if(x>y)max=x;elsemax=y;形式三:格式:if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3…...[else語(yǔ)句n]表達(dá)式表達(dá)式1語(yǔ)句1非0=0表達(dá)式2表達(dá)式3語(yǔ)句4語(yǔ)句3語(yǔ)句2非0非0=0=0例:if(number>500)cost=0.15;elseif(number>300)cost=0.1;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;說明:if后面的表達(dá)式類型任意,按表達(dá)式值為0還是非0區(qū)分真假,一般為邏輯或關(guān)系表達(dá)式語(yǔ)句可以是復(fù)合語(yǔ)句if(x)?if(x!=0)例:if(3)為真;if(‘a(chǎn)’)為真if(!x)?if(x==0)例:5.1輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)程序如下:#include<stdio.h>voidmain(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;} printf("%5.2f,%5.2f\n",a,b);}例:5.2輸入3個(gè)數(shù)a,b,c,要求按由小到大的順序輸出程序如下:#include<stdio.h>voidmain(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f\n",a,b,c);}if語(yǔ)句嵌套:一般形式:(else總是與離它最近的if配對(duì))if(expr1)if(expr2)statement1內(nèi)嵌ifelsestatement2if(expr1)if(expr1){if(expr2)statement1}elsestatement2內(nèi)嵌ifif(expr1)statement1elseif(expr3)statement3內(nèi)嵌ifelsestatement4if(expr1)if(expr2)statement1內(nèi)嵌ifelsestatement2elseif(expr3)statement3內(nèi)嵌ifelsestatement4例:5.3有一函數(shù)-1(x<0)編一程序,輸入一個(gè)x值,輸出y值y=0(x=0)1(x>0)程序如下:#include<stdio.h>voidmain(){intx,y;scanf("%d",&x);if(x<0)y=-1; elseif(x==0)y=0; elsey=1; printf("x=%d,y=%d\n",x,y);}§5.3.3條件運(yùn)算符條件運(yùn)算符一般形式:表達(dá)式1?表達(dá)式2:表達(dá)式3表達(dá)式1表達(dá)表表達(dá)式1表達(dá)表達(dá)值為表達(dá)式2值為表達(dá)式3非0=0功能:相當(dāng)于條件語(yǔ)句,但不能取代一般if語(yǔ)句優(yōu)先級(jí):13(低于邏輯運(yùn)算符,高于賦值運(yùn)算符)結(jié)合方向:自右向左如a>b?a:c>d?c:d?a>b?a:(c>d?c:d)表達(dá)式類型的說明表達(dá)式1與表達(dá)式2和表達(dá)式3類型可不同表達(dá)式2和表達(dá)式3還可以是賦值表達(dá)式或函數(shù)調(diào)用表達(dá)式如:a<b?(a=100):(b=100)a>b?printf(“%d”,a):printf(“%d”,b)當(dāng)表達(dá)式2與表達(dá)式3類型不同時(shí),值取較高的類型例x?‘a(chǎn)’:‘b’//x=0,表達(dá)式值為‘b’;x≠0,表達(dá)式值為‘a(chǎn)’x>y?1:1.5//x>y,值為1.0;x<y,值為1.5例5.4輸入一個(gè)字符,判斷它是否大定字母,如果是,將它轉(zhuǎn)換成小寫字母,如果不是,不轉(zhuǎn)換,然后輸出最后得到的字母。程序如下:#include<stdio.h>voidmain(){charch; scanf("%c",&ch); ch=(ch>='A'&&ch<='Z')?(ch+32):ch; printf("%c\n",ch); }§5.4switch語(yǔ)句一般形式:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句組1;[break;]case常量表達(dá)式2:語(yǔ)句組2;[break;]…….case常量表達(dá)式n:語(yǔ)句組n;[break;][default:語(yǔ)句組n+1;]}switchswitch表達(dá)式語(yǔ)句組1語(yǔ)句組2語(yǔ)句組n語(yǔ)句組n+1…...常量表達(dá)式1常量表達(dá)式2常量表達(dá)式ndefaultcase(等于)說明:常量表達(dá)式的值必須互不相同case后可包含多個(gè)可執(zhí)行語(yǔ)句,且不必加{}執(zhí)行完一個(gè)case后的語(yǔ)句組后,續(xù)繼執(zhí)行下一個(gè)case后的語(yǔ)句組直到結(jié)束。若只想執(zhí)行一個(gè)必須用break跳出,多個(gè)case可共用一個(gè)語(yǔ)句組。如:switch(grade){case’A’:printf(“85-100\n”);break;case’B’:printf(“70-84\n”);break;case’C’:printf(“60-69\n”);break;case’D’:printf(“<60\n”);break;default:printf(“error\n”);}如:……case‘A’:case‘B’:case‘C’:printf(“score>60\n”);break;……..各個(gè)case和default的順序不影響執(zhí)行結(jié)果(有break的情況下)§5.5程序舉例例:5.5寫程序,判斷某一年是否為閏年Year被4整除真假Year被100整除真假Year被400整除真假Leap=1leap=0leap=1leap=0leap真假輸出“閏年”輸出“非閏年”程序如下:#include<stdio.h>voidmain(){intyear,leap;scanf("%d",&year);if(year%4==0) {if(year%100==0) {if(year%400==0) leap=1; elseleap=0;} else leap=1;}else leap=0;if(leap) printf("%dis",year);else printf("%disnot",year);printf("aleapyear.\n");}程序2:#include<stdio.h>voidmain(){intyear,leap;scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%400==0))leap=1;elseleap=0;if(leap) printf("%dis",year);else printf("%disnot",year);printf("aleapyear.\n");}例5.7運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)費(fèi),路程(skm)越遠(yuǎn),每噸·千米運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下:S<250沒有折扣250<=s<5002%折扣500<=s<10005%折扣1000<=s<20008%折扣2000<=s<300010%折扣3000<=s15%折扣設(shè)每噸每千米貨物的基本運(yùn)費(fèi)為p,貨物重為w,距離為s,折扣為d,則總運(yùn)費(fèi)f的計(jì)算公式為:f=p*w*s*(1-d)程序如下:#include<stdio.h>voidmain(){ intc,s; floatp,w,d,f; scanf("%f,%f,%d",&p,&w,&s); if(s>=3000)c=12; elsec=s/250; switch(c) { case0:d=0;break; case1:d=2;break; case2: case3:d=5;break; case4: case5: case6: case7:d=8;break; case8: case9: case10: case11:d=10;break; case12:d=15;break;} f=p*w*s*(1-d/100.0); printf("freight=%15.4f\n",f); }第四、五章復(fù)習(xí)題27.putchar函數(shù)可以向終端輸出一個(gè):A)整型變量表達(dá)式值B)實(shí)型變量值C)字符串D)字符或字符型變量值28.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長(zhǎng)度大于5,則輸出按:A)從左起輸出該字串,右補(bǔ)空格B)按原字符長(zhǎng)從左向右全部輸出C)右對(duì)齊輸出該字串,左補(bǔ)空格D)輸出錯(cuò)誤信息29.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長(zhǎng)度小于5,則輸出按方式。A)從左起輸出該字串,右補(bǔ)空格B)按原字符長(zhǎng)從左向右全部輸出C)右對(duì)齊輸出該字串,左補(bǔ)空格

D)輸出錯(cuò)誤信息30.若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語(yǔ)句是:A)scanf("%d%lx,%le",&x,&y,&z);B)scanf("%2d*%d%lf"&x,&y,&z);C)scanf("%x%*d%o",&x,&y);D)scanf("%x%o%6.2f",&x,&y,&z);31.已有如下定義和輸入語(yǔ)句,若要求a1,a2,c1,c2值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A)10A20B<CR>B)10A20B<CR>C)10A20<CR>D)10A20B<cR>。32.已有定義intx;f1oaty;且執(zhí)行scanf("%3d%f",&x,&y);語(yǔ)句,若從第一列開始輸入數(shù)據(jù)12345678(回車),則x的值為A)12345B)123C33.已有定義intx;f1oaty;且執(zhí)行scanf("%3d%f",&x,&y);語(yǔ)句,若從第一列開始輸入數(shù)據(jù)12345678(回車),則y的值為:A)無定值B)45.0000C34.已有如下定義和輸入語(yǔ)句,若要求a1,a2,c1,c2的值分別為10,20,A,B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是:inta1,a2;charc1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);A)1020AB<CR>B)1020<CR>AB<CR>C)1020AB<CR>D)1020AB<CR>35.已有程序段和輸入數(shù)據(jù)的形式如下,程序中輸入語(yǔ)句的正確形式應(yīng)當(dāng)為main(){inta;floatf;printf("\nInputnumber:");輸入語(yǔ)句printf("\nf=%f,a=%d\n,f,a);}Inputnumber:4.52<CR>A)scanf("%d,%f",&a,&f);B)scanf("%f,%d",&f,&a)C)scanf("%d%f",&a,&f);D)scanf("%f%d",&f,&a);36.根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語(yǔ)句的正確形式為:已有定義:floatfl,f2;數(shù)據(jù)的輸入方式:4.523.5A)scanf("%f,%f",&f1,&f2);B)scanf("%f%f",&f1,&f2);C)scanf("%3.2f%2.1f",&f1,&f);D)scanf("%3.2f%2.1f",&f1,&f2);37.閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為25,13,10<CR>正確的輸出結(jié)果為:main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n”,x+y+z);。}A)x+y+z=48B)x+y+z=35C)x+z=35D)不確定值38.閱讀以下程序,若運(yùn)行結(jié)果為如下形式,輸入輸出語(yǔ)句的正確內(nèi)容是:main(){intx;floaty;printf("enterx,y:")輸入語(yǔ)句;輸出語(yǔ)句;}輸入形式enterx,y:23.4輸出形式x+y=5.40A)scanf("%d,%f",&x,&y);printf("\nx+y=%4.2f",x+y);B)scanf("%d%f",&x,&y);printf("\nx+y=%4.2f",x+y);C)scanf("%d%f",&x,&y);printf("\nx+y=%6.lf",x+y);D)scanf("%d%3.1f",&x,&y);printf("\nx十y=%4.2f",x+y);39以下說法正確的是:A)輸入項(xiàng)可以為一實(shí)型常量,如scanf("%f",3.5);B)只有格式控制,沒有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf("a=%d,b=%d");C)當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf("%4.2f",&f);D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf("%f",&f);40.根據(jù)下面的程序及數(shù)據(jù)的輸入方式和輸出形式,程序中輸入語(yǔ)句的正確形式應(yīng)該為:main(){charch1,ch2,ch3;輸入語(yǔ)句printf("%c%c%c",ch1,ch2,ch3);}輸入形式:ABC輸出形式:ABA)scanf("%c%c%c",&ch1,&ch2,&ch3);

B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);C)scanf("%c%c%c",&ch1,&ch2,&ch3);D)scanf("%c%c",&ch1,&ch2,&ch3);41.有輸入語(yǔ)句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);為使變量a的值為1,b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是A)132(回車)B)1,3,2(回車)C)a=1b=3c=2(回車)D)a=1,b=3,c=2(回車)42.以下能正確地定義整型變量a,b和c并為其賦初值5的語(yǔ)句是A)inta=5,b=5,c=5;B)inta,b,c=5;C)a=5,b=5,c=5;D)a=b=c=5;43.已知ch是字符型變量,下面不正確的賦值語(yǔ)句是A)ch='a+b';B)ch='\0';C)ch='7'+'9';D)ch=5+9;44.若有以下定義,則正確的賦值語(yǔ)句是:

inta,b;floatx;A)a=1,b=2,B)b++;C)a=b=5D)b=int(x);45.設(shè)x、y均為f1oat型變量,則以下不合法的賦值語(yǔ)句是A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;46.x,y,z均為int型變量,則執(zhí)行語(yǔ)句x=(y=(z=10)+5)-5;后,x、y和z的值是:A)x=10B)x=10C)x=10D)x=10y=15y=10y=10y=5z=10z=10z=15z=1047.邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型。A)只能是0或1B)只能是0或非0正數(shù)C)只能是整型或字符型數(shù)據(jù)D)可以是任何類型的數(shù)據(jù)48.以下關(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)算符49.下列運(yùn)算符中優(yōu)先級(jí)最高的是:A)<B)十C50.能正確表示"當(dāng)x的取值在[1,10]和[200,210]范圍內(nèi)為真,否則為假"的表達(dá)式是一一一。A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B)(x>=1)||(x<=10)||(x>=200)||(x<=210)c)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)51.判斷char型變量ch是否為大寫字母的正確表達(dá)式是一一一。A)'A'<=ch<='z'B)(ch>='A')&(ch<='z')C)(ch>='A')&&(ch<='Z')D)('A'<=ch)AND('z'>=ch)52.設(shè)x,y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0的是A)'y'&&'y'B)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)53.已知x=43,ch='A',y=0則表達(dá)式(x>=y&&ch<'B'&&!Y)的值是A)0B)語(yǔ)法錯(cuò)C)1D)"假"54.若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為"真",A的值為偶數(shù)表達(dá)式的值為"假"。則以下不能滿足要求的表達(dá)式是:A)A%2==1B)!(A%2==0)C)!(A%2)D)A%255.設(shè)有inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值為:A)1B)2C56.判斷char型變量c1是否為小寫字母正確表達(dá)式為:A)'a'<=cl<='z'B)(cl>=a)&&(cl<=z)C)('a'>=cl)||('z'<=cl)D)(c1>='a')&&(cl<='z')57.以下程序的運(yùn)行結(jié)果是:#include"stdio.h"main(){inta,b,d=241;a=d/100%9b=(-1)&&(-1);printf("%d,%d",a,b);}A)6,1B)2,1C58.執(zhí)行以下語(yǔ)句后a的值為:inta,b,c;a=b=c=1;++a||++b&&++cA)錯(cuò)誤B)0C)259.執(zhí)行以下語(yǔ)句后b的值為:inta=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A)6B)0C)1D)460.以下不正確的if語(yǔ)句形式是:A)if(x>y&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D)if(X<Y){X++;Y++;}61.下列運(yùn)算符中優(yōu)先級(jí)最低的是:A)?:B)&&c)+D)!=62.以下if語(yǔ)句語(yǔ)法正確的是:A)if(x>0)printf("%f",x)elseprintf("%f",--x);B)if(x>0){x=x+y;printf("%f",x);}elseprintf("%f",-x);C)if(x>0){x=x+y;prinrf("%f",x);};elseprintf("%f",-x);D)if(x>0){x=x+y;printf("%f",x)}elseprintf("%f",-x);63.請(qǐng)閱讀以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf("***\n");elseprintf("$$$\n");以上程序:A)有語(yǔ)法錯(cuò)不能通過編譯B)可以通過編譯但不能通過連接C)輸出***D)輸出$$$64.以下程序的運(yùn)行結(jié)果是:main(){intm=5;if(m++>5)printf("%d\n",m);e1seprintf("%d\n",m--);}A)4B)5C)665.當(dāng)a=1,b=3,c=5,d=4,執(zhí)行完下面一段程序后x的值是:if(a<b)if(c<d)x=1;else

if(a<c) if(b<d)x=2; elsex=3; elsex=6;elsex=7;A)18B)2C66.以下程序的輸出結(jié)果是:main(){inta=100,x=10,y=20,okl=5,ok2=0;if(x<y)if(y!=10)if(!okl)a=1;else

if(ok2)a=10;a=-1:printf("%d\n",a)}A)1B)0C)-167.以下程序的輸出結(jié)果是:main(){intx=2,y=-1,z=2;if(x<y)

if(y<0)z=0;elsez+=1;prin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論