



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
全國計算機等級考試二級C語言(2010版)同步練習(xí)作者:張旭仟目錄TOC\o"1-5"\h\z\o"CurrentDocument"練習(xí)1:C語言程序結(jié)構(gòu)特點 5二 '填空題. 5\o"CurrentDocument"三、上機試驗: 5\o"CurrentDocument"練習(xí)答案. 6\o"CurrentDocument"練習(xí)2:常量、變量、標(biāo)識符和表達式 7\o"CurrentDocument"一、 選擇題. 7\o"CurrentDocument"二、填空題. 8-、上3M?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????8\o"CurrentDocument"練習(xí)3:數(shù)據(jù)的輸入輸出 11\o"CurrentDocument"選擇題. a\o"CurrentDocument"選擇題. 12\o"CurrentDocument"上機試驗: 13\o"CurrentDocument"四、編程實戰(zhàn): 14\o"CurrentDocument"練習(xí)答案. 15\o"CurrentDocument"練習(xí)4:關(guān)系運算與選擇結(jié)構(gòu) 16\o"CurrentDocument"選擇題. 16\o"CurrentDocument"填空題. 17四> 編程實戰(zhàn): 20\o"CurrentDocument"練習(xí)答案. 20\o"CurrentDocument"練習(xí)5:循環(huán)結(jié)構(gòu) 21\o"CurrentDocument"二、'填空題. 24\o"CurrentDocument"上機試驗: 24\o"CurrentDocument"四、編程實戰(zhàn): 26\o"CurrentDocument"練習(xí)答案. 26\o"CurrentDocument"練習(xí)6:數(shù)組 27\o"CurrentDocument"、選擇題. 27\o"CurrentDocument"填空題. 28\o"CurrentDocument"四、編程實戰(zhàn): 31\o"CurrentDocument"練習(xí)答案. 31\o"CurrentDocument"練習(xí)7:函數(shù) 32\o"CurrentDocument"、 選擇題. 32\o"CurrentDocument"填空題. 32\o"CurrentDocument"三、上機試驗: 33\o"CurrentDocument"四、 編程實戰(zhàn): 34\o"CurrentDocument"練習(xí)答案. 34\o"CurrentDocument"練習(xí)8:變量的作用域和存儲類別 35\o"CurrentDocument"一、選擇題. 35\o"CurrentDocument"二、填空題. 35?、 —???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????3\o"CurrentDocument"練習(xí)答案. 37\o"CurrentDocument"練習(xí)9:指針 38\o"CurrentDocument"一、選擇題. 38\o"CurrentDocument"二、填空題. 41\o"CurrentDocument"三、上機試驗: 42\o"CurrentDocument"四、編程實戰(zhàn): 43\o"CurrentDocument"習(xí)題答案. 43\o"CurrentDocument"練習(xí)10:編譯預(yù)處理 44\o"CurrentDocument"、選擇題. 44\o"CurrentDocument"填空題. 44\o"CurrentDocument"三、上機試驗: 45\o"CurrentDocument"練習(xí)答案. 45\o"CurrentDocument"練習(xí)11:結(jié)構(gòu)體、共用體和用戶自定義類型 46\o"CurrentDocument"、 選擇題. 46\o"CurrentDocument"填空題. 47\o"CurrentDocument"三、上機試驗: 48\o"CurrentDocument"四、 編程實戰(zhàn): 49\o"CurrentDocument"練習(xí)答案. 49\o"CurrentDocument"練習(xí)12:位運算 50\o"CurrentDocument"、 選擇題. 50\o"CurrentDocument"填空題. 50\o"CurrentDocument"三、上機試驗: 50\o"CurrentDocument"練習(xí)答案. 51\o"CurrentDocument"練習(xí)13:文件 52\o"CurrentDocument"一、選擇題. 52二、填空題. 52\o"CurrentDocument"四、編程實戰(zhàn): 54\o"CurrentDocument"練習(xí)答案. 54附錄1: 55\o"CurrentDocument"C操作符的優(yōu)先級和結(jié)合性 55練習(xí)1:C語言程序結(jié)構(gòu)特點一、選擇題.能將高級語言編寫的源程序轉(zhuǎn)換成目標(biāo)程序的是OA)編輯程序 B)編譯程序C)驅(qū)動程序 D)鏈接程序.下列4條敘述中,正確的一條是?A)計算機語言中,只有機器語言屬于低級語言B)高級語言源程序可以被計算機直接執(zhí)行C)C語言屬于高級語言D)機器語言是與所用機器無關(guān)的.以下對C語言的描述中正確的是。A)C語言源程序中可以有重名的函數(shù) B)C語言源程序中要求每行只能書寫一條語句C)注釋可以出現(xiàn)在C語言源程序中的任何位置D)最小的C語言源程序中沒有任何內(nèi)容4.算法具有五個特性,以下選項中不屬于算法特性的是。A)有零個或多個輸入B)可行性 C)有窮性 D)通用性二、填空題.結(jié)構(gòu)化程序由、、3種基本結(jié)構(gòu)組成。.對問題處理方案正確而完整的描述稱為算法。三、上機試驗:.輸入并運行您的第一個C語言程序。^include"stdio.h"main().輸入并運行您的第一個C語言程序。^include"stdio.h"main(){printf("MyfirstCProgram!w;}.輸入并運行例程,調(diào)試程序中的錯誤。^include"stdio.h"main(){floata,b,area;a=l.2; /*給矩形的兩條邊賦值*/b=3.6;arae=a*b;printf("a/f,b二%f,area二%f",a,b,area);}.輸入并運行例程,學(xué)習(xí)使用tab鍵控制格式^include"stdio.h"inti,j,sum;sum=0;for(i=l;i<10;i++){for(j=l;j<10;j++){sum+=i*j;printf("%d\n",sum);).輸入并運行例程執(zhí)行的效果main(){printf(u*\n");printf("***\n*);printf("*****\n");printf(w ;printf(“*\n”);5.測試下面程序,求兩數(shù)之和。ttinclude<stdio.h>voidmain() sum=a+b;{inta,b,sum;/*聲明,定義變量為整型*/ printf(*sumis%d\n",sum);a=123; }b=456;練習(xí)答案一、選擇題1.B2.C3.C4.D一、填空題1.順序選擇循環(huán)2.算法練習(xí)2:常量、變量、標(biāo)識符和表達式一、選擇題1.請選出可以作為c語言用戶標(biāo)識符的一組標(biāo)識符號A)voiddefine WORDB)a3_b3_123IFC)for-abc caseD)2aDOsizeof2.以下選項中,哪一個是c語言中合法的常量0A)±234.34 B)1/8C)'O'D)“a"'b'3.若有以下程序段:intcl=l,c2=2,c3;c3=l.0/c2*cl;則執(zhí)行后,c3中的值是A)0 B)0.5 C)1D)24.下列程序的輸出結(jié)果是 。A)3 B)3.2 C)0D)3.07main(){doubled=3.2;intx,y; x=l.2;y=(x+3.8)/5.0;printf(*%d\n”,d*y);)5.設(shè)已定義整型變量4和g,則下面的程序輸出為 ok=017;g=lll;printf("%d\n",++k);printfUI"%x\n”,g++);A)156f B)1670 C)1571D)166f6.定義a為整型變量,且設(shè)其初值為10,則表達式a+=a-=a*=a的值為_OA)10 B)0 C)100D)-107.若a為整型變量,則以下語句 ?a=-2L;printfa);A)賦值不合法 B)輸出值為-2 C)輸出為不確定值D)輸出值為28.設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達式中與代數(shù)式1/2(a+b)h計算結(jié)果不相符的是 A)(a+b)*h/2B)(l/2)*(a+b)*hC)(a+b)*h*l/2D)h/2*(a+b)9.數(shù)字字符0的ASCII值為48,若有以下程序,程序運行后的輸出結(jié)果是main(){chara=,1',b='2';printf("%c,”printf("%d\n}A)3,2,b++);”,b-a);B)3,1 C)2,1D)2,210.設(shè)有intx=ll;則表達式(x++*l/3)的值是_oA)3B)4 C)11D)1211.設(shè)x、y、z和k都是int型變量,則執(zhí)行表達式:x=(y=4,z=16,k=32)后,x的值為.A)4B)16 C)32D)5212.設(shè)有說明語句:chara='\72';則變量a A)包含1個字符B)包含2個字符C)包含3個字符D)說明不合法二、填空題.C語言的標(biāo)識符只能有3種字符組成,它們是:⑴、[2】、[3],.若x,y,z均是整型變量,則執(zhí)行表達式產(chǎn)(尸4)+(〃2)后,x的值為【4】」的值為【5】。.假設(shè)所有的變量都為整型,則表達式(爐2,為K+,加+,K6)值為【6】。.設(shè)x為int型變量,請寫出描述“x是奇數(shù)”的表達式【7】。.已知整型數(shù)據(jù)爐3,上4,c=5,則表達式K+-Z^(++c)的值是【8】。.在C語言中(以16位PC機為例),一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4,一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【9】。.若有定義:inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是 【1010c=(a~=(b-5));c=(a%ll)+(b=3);.十進制數(shù)一5的補碼表示為【11】。三、上機試驗:1.輸入并運行例程,體會符號常量的用法b=2;c=a+b;#include<stdio.h>printf("c=%d\n",c); /*result:#definePI3.14c=3*/main()}{intr,s,1;pintf(wEnterr:99);4.輸入并運行例程,改正其中的錯誤scanf("%d",&r); /*從鍵盤為r輸#include"stdio.h"入一個值*/main()l=2*PI*r;{inta,b=2;s=PI*r*r;a=l;printf(ul=%d,s=%d\nw,1,s);floatdata;]■data=(a+b)*l.2;2.輸入并運行例程,學(xué)習(xí)字符串常量的輸出方法printf("data二%f\n”,data);1#include<stdio.h>5.輸入并運行例程,想一想為什么會出錯main()#include"stdio.h"{ printf(“%s","WelcometoMejormain()computerschool!");{floata,b,c;}c=a+b;3.輸入并運行例程,注意變量的聲明和賦值的方法printf("c=%f\n”,c);#include"stdio.h"6.輸入并運行例程,掌握交換兩個變量值的main()方法{inta,b,c;#include“stdio.h"a=l; main(){inta,b,t;a=l;b=2;printf(“交換前:a=%d,b=%d\nw,a,b);t=a;a=b;b二t;printf("交換后:a=%d,b=%d\nw,a,b);}7.輸入并運行例程,注意除數(shù)不能為0的錯誤提示#includes<stdio.h>main(){inta=l,b=0,c;c=a/b;printf(<<c=%dn,c);)8.輸入并運行例程,注意求余運算的運算量必須都是整型。#includes<stdio.h>main(){inta=3;floatb=2,c;c=a%b;printf(wa=%f>>,a);}9.輸入并運行例程,體會賦初值運算符的用法。把程序中的前兩條語句換成inta=b=c=d=O;想一想為什么會出錯#includes<stdio.h>main(){inta,b,c,d;a=b=c=d=0;a=123;b=a;c=a+b;d=c/2;printf(aa=%d b=%d c=%dd=%d\n>,,a,b,c,d);}.輸入并運行下列例程,體會數(shù)據(jù)類型轉(zhuǎn)換的規(guī)律#includes<stdio.h>main(){inta=(int)12.34;intb=10.7;floatc=(float)a;doubled=,A';d+=b;printf(wa=%d b=%d c=%dd=%d\nw,a,b,c,d);).輸入并運行下列例程,學(xué)習(xí)掌握求平均數(shù)的方法#includes<stdio.h>main(){inta=2,b=2,c=4;floatpj;pj=a+b+c;pj/=3;printf(<<pj=%fw,pj);).輸入并運行下列例程,學(xué)習(xí)掌握提取一個整數(shù)各位上的數(shù)的方法#includes<stdio.h>main(){inta,qw,bw,sw,gw;a=4567;qw=a/1000;bw=a/100%10;sw=a/10%10;gw=a%10;printf("qw=%dbw=%dsw=%dgw=%d\n”,qw,bw,sw,gw);}13.輸入并運行下列例程,體會自增運算符前置和后置的區(qū)別#includes<stdio.h>main(){intj=3,k=3;inta=3,b=5,c;printf(w++j=%dj=%d\nw,++j,j);printf(ak++=%dk=%d\nw,j++,j);printf(“c=%d\n",c=(++a)*b;)a=3;b=5; main()printf(“c=%d”,c=(a++)*b); {inta=2;} a=(a+l,3*4,a+4);14.輸入并運行下列例程,體會逗號運算符的 printf("a=%d",a);用法 }#includes<stdio.h>練習(xí)答案一、選擇題1.B2.C3.A4.C5.D6.B7.B8.B9.D10.A11.C12.A二、填空題[1]字母[2]數(shù)字[3]下劃線[4]6[5]4[6]6[7]x%2==l[8]13[9]8[10]3[nJunion練習(xí)3:數(shù)據(jù)的輸入輸出一、選擇題1.若變量a、i已正確定義,且i己正確賦值,合法的語句是—A)a==l; B)++i;.以下合法的C語言賦值語句是A)a==l; B)++i;.以下合法的C語言賦值語句是oA)a=b=58 B)k=int(a+b);.有以下程序main(){intm=0256,n=256;printf(*%o%o\n”,m,n);)程序運行后的輸出結(jié)果是OA)02560400B)0256256.下列程序的運行結(jié)果是omain(){inta=2,c=5;printf("a=%d,b=%d\n”,a,c);}A)a=%2,b=%5B)a=2,b=5.以下程序的輸出結(jié)果是omain(){intk=17;printf(*%d,%o,%x\n*>k,k,k);)A)17,021,0x11B)17,17,17a=a++=5;C)a=58,b=58a=int(i);D)—i;C)256400D)400400C)a=d,b=dD)a=%d,b=%dC)17,0x11,021D)17,21,11.以下敘述中正確的是oscanf('%f”,3.5)scanf('%f”,3.5);B)只有格式控制,沒有輸入項,能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");C)當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf(,z%4.2f\&f);D)當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf("%f”,&f);.有以下程序main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n”,m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是oA)m=123n=456p=789 B)m=123n=456p=789C)m=123,n=456,p=789 D)123456789.以下說法中正確的是?A)#define和printf都是C語句 B)#define是C語句,而printf不是C)printf是C語句,但#define不是 D)#define和printf都不是C語句.下列關(guān)于復(fù)合語句以及空語句的說法正確的是oA)復(fù)合語句中的最后一個語句的最后一個分號可以省略B)復(fù)合語句不可以嵌套 C)空語句在執(zhí)行時沒有動作,因此沒有用途D)空語句可以做“延時”使用.若變量已正確說明為float類型,要通過語句"scanf("%f%f%f*,&a,&b,&c);”給a賦值10.0,b賦值22.0,c賦值33.0,不正確的輸入形式是.10〈回車〉22〈回車〉33〈回車〉10.0,22.0,33.0〈回車〉10.0〈回車〉22.033.0〈回車〉1022〈回車〉33〈回車》.putcharO函數(shù)可以向終端輸出一個。A)整型變量表達式 B)實型變量值 C)字符串 D)字符或字符型變量值.getcharO函數(shù)可以接受一個。A)整型變量表達式 B)實型變量值 C)字符串 D)字符.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33〈回車》.則輸出結(jié)果是。^include"stdio.h"main(){chara,b;a=getchar(); scanf&b);a=a」A'+'0'; b=b*2;printf(*%c%c\n*,a,b);A)2B B)1B 03B D)4B二、選擇題.以下程序運行后的輸出結(jié)果是 [1】 。main(){inta,b,c;a=25; b=025; c=0x25;printf(*%d%d%d\n,z,a,b,c);).有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n”,a,b,c,d);}若運行時從鍵盤上輸入:6,5,65,66〈回車>。則輸出結(jié)果是[2】。.以下程序的執(zhí)行結(jié)果是 【3】。main(){floata=13.8;intb=5; b=((int)a)%3;printf(*b=%d\n*,b);).若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是 【4】。intb,c;floata;scanf("%f,%d,c=%d*,&a,&b,&c).以下程序的執(zhí)行結(jié)果是【5】。main(){inta,b,c;c=(a=3,b=a-);printf("c=%d,a=%d,b=%d\n*,c,a,b);三、上機試驗:(inta=1234;1.輸入并運行例程,學(xué)習(xí)掌握字符輸出函數(shù)putchar()的用法floatf=123.456;charch='a';#include<stdio.h>printf(a%8d,%2d\nw,a,a);main()printf( lf,%.2f,%.2e\nM,f{intc;,f,f,f,f):chara;printf("%3c\n”,ch);c=65;a-B';}putchar(c);putchar('\n);putchar(a); )4.輸入并運行例程,觀察附加說明符的作用2.輸入并運行例程,學(xué)習(xí)掌握字符輸入函數(shù)getchar()的用法#include<stdio.h>main()int"1234;#include<stdio.h>floatf=123.456;main()charc[]=aHelloworld!”;{intc;printf(a%8d,%-8d\nw,a,a);printfCenteracharacter/*);printf(a%10.2f,%-10.lf\nw,f,f);c=getchar();printf(^c >hex%x\n”,c,c);}printf(a%10.5s,%-10.3s\n,>,c,c);}3.輸入并運行例程,觀察說明符e及附加說明符m和.n的作用5.輸入并運行例程,觀察附加說明符.n在字符串輸出時的作用#include<stdio.h>#include<stdio.h>main()main()(chara[]=wHello,world!9,
printf(wprintf(w%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);}.輸入并運行例程,觀察附加說明符“+”和“0”的作用#include<stdio.h>main(){inta=1234;floatf=123.456;printf(<<%08d\n,>,a);printf(<<%010.2f\nn,f);printf(w%0+8d\nM,a);printf("0+10.2f\n",f);).輸入并運行例程,觀察附加說明“曠的作用#include<stdio.h>main(){inta=123;printf(a%o,%#o,%X,%#X\nw,a,a,a,a);).輸入并運行例程,用空格、TAB或回車鍵作為輸入數(shù)據(jù)的分隔符#include<stdio.h>main(){inta,b,c;scanf(<<%d%d%d>,,&a,&b,&c);printf(ua=%d,b=%x,c=%o>,,a,b,c);).輸入并運行例程,用指定的分隔符':'作為輸入數(shù)據(jù)的分隔符^include<stdio.h>main(){inth,m,c,s;scanf("%d:%d:%d”printf(a%d:%d:%dw,h,m,n);)如輸入12:30:45J.輸入并運行例程ttinclude<stdio.h>main(){inta,b,c,d;scanf(wa=%d,b=%d,c=%dw,&a,&b,&c);printf(aa=%d,b=%d,c=%d"a,b,c);}注意必須像"12,b=24,c=36J這樣輸入11.輸入并運行例程,輸入abcJ,觀察輸出結(jié)果,想想為什么??include<stdio.h>main(){intcl,c2,c3;scanf(a%c%c%c",&cl,&c2,&c3);printf(wcl=%d,c2=%d,c3=%d",cl,c2,c3);}12.輸入并運行例程,輸入1234al23o.26J,觀察并分析輸出結(jié)果Sinclude<stdio.h>main()(inta,b,c;scanf(rt%d%c%fw,&a,&b,&c);printf(Ma=%d,b=%d,c=%dw,a,b,c);四、編程實戰(zhàn):.編寫程序,輸入兩個整數(shù):1500和350,求出它們的商數(shù)和余數(shù)并輸出.編寫程序,從鍵盤讀入三個雙精度數(shù),輸出它們的平均值并保留2位小數(shù)(對第三位小數(shù)四舍五入)。.編寫程序,從鍵盤讀入三個整數(shù)分別給a、b、c,然后把a的值給b,b的值給c,c的值給a。.編寫程序,從鍵盤輸入大寫字母,將其對應(yīng)的小寫字母輸出。練習(xí)答案一、選擇題1.B2.D3.C4.B5.D6.D7.A8.C9.D10.B11.D12.D13.B二、選擇題[1]252137 [2]6,5,A,B [3]b=l[4]5.0,4,c=3 [5]c=3,a=2,b=3練習(xí)4:關(guān)系運算與選擇結(jié)構(gòu)一、選擇題同時為正或同時為負的邏輯表達式是同時為正或同時為負的邏輯表達式是B)(a>=O&&b>=O)&&(a<O&&b<0)D)a*b>0d=4,m=2,n=2;則執(zhí)行表達式:(m=a>b)&&(n二c>d)后.能正確表示a和bA)(a>=0IIb>=0)&&(a<0IIb<0)C)(a+b>0)&&(a+b<=0)2,設(shè)有如下定義:inta=Lb=2,c=3,n的值為oA)1 B)23.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d”,d+++elseprintf("%d”,++d+printfC%d\n*,d);TOC\o"1-5"\h\z}程序運行后的輸出結(jié)果是A)2 B)3C)3 D)01);1);C)43 D)44.語句"printf(〃%d",(a=2)&&(b=-2));”的輸出結(jié)果是。A)無輸出 B)結(jié)果不確定C)-1 D)1.有以下程序main(){inti=l,j=2,k=3;if(i++==l&&(++j==3||k++==3))printfC%d%d%d\n”,i,j,k);)程序運行后的輸出結(jié)果是oA)123 B)234 0223 D)233.在C語言的if語句中,用做判斷的表達式為oA)關(guān)系表達式 B)邏輯表達式 C)算術(shù)表達式 D)任意表達式.有以下程序Aintfl(intx,inty){ returnx>y?x:y; }intf2(intx,inty){ returnx>y?y:x; }main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(fl(a,b),fl(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n”,e,f,g);程序運行后的輸出結(jié)果是OA)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7.以下不正確的if語句形式是oA)if(x>y&&!=y); B)if(x==y)x+=y;C)if(x!=y)scanf("%d",&x)elsescanf(“肌i”,&y) D)if(x<y){x++;y++;}.如下程序main(){intx=l,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(*a=%d,b=%d\n*?a,b);)該程序的輸出結(jié)果是OA)a=2,b=l B)a=l,b=l C)a=l,b=0 D)a=2,b=2.己知intx=10,y=20,z=30;以下語句執(zhí)行后的值是。if(x>y)z=x;x=y;y=z;A)x=10,y=20,z=30B)x=20,y=30,z=30C)x=20,y=30,z=10D)x=20,y=30,z=30二、填空題TOC\o"1-5"\h\z.設(shè)a,b,c均為整型變量,請描述出“a或b中有一個小于c”的表達式 【1】 。.已知x=7.5,y=2,z=3.6,則表達式x〉y&&z>x<y&&!z>y的值是 【2】 。.已知x=l,y=4,z=3,則表達式!(x<y)II!z&&1的值是【3】 。.以下程序運行后的輸出結(jié)果是一 【4】 。main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<c&&b<c)t=b;b=a;a=tprintf("%d%d%d\n”,a,b,c);:.下面的if語句與y=(x>=10)?3*x-ll:(x<l)?x:2*x-l;的功能相同,請補充完整。if( [5] )if([6] )y=2*x-l;elsey=x;elsey=3*x-ll;.以下程序運行后的輸出結(jié)果是一 【7】。main(){inta,b,c;a=10;b=20;c=(a%b<l)|I(a/b>l);printf("%d%d%d\n”,a,b,c);三、上機試驗:1.調(diào)試?yán)?,修改程序中存在的錯誤ttinclude<stdio.h>main(){inta=0,b=l;if(a=b)printf(waequaltob");elseprintf(aa.notequaltob");}.輸入并運行例程,注意n的值,體會邏輯運算中的短路現(xiàn)象#include<stdio.h>main(){inta=l,b=2,c=3,d=4,e,m=l,n=l;e=(m=a>b)&&(n=c>d);printf(Me=%d,m=%d,n=%d\n”,e,m,n);}.輸入例程,求實數(shù)的絕對值#include<stdio.h>main(){floatx;printf(aEnterx:");scanf("%f",&x);printf(“|x|=%f",(x>=0)?x:-x);}.運行例程,利用選擇結(jié)構(gòu)輸出A的絕對值#include<stdio.h>main(){inta,b;scanf(“%d",&a);if(a>=0)b=a;elseb="a;printf("b=%d\n",b);}.輸入并運行例程#include<stdio.h>#include<math.h>main(){floata=4;if(a>0)printf("%f\n",sqrt(a));}.輸入并運行例程#include<stdio.h>main(){inta=4,b=-7;if(a>b)prinf("max=%d\n”,a);elseprintf("max=%d\n”,b);}.輸入并運行例程,判斷是否為三角形#include<stdio.h>main(){inta,b,c;printf(aEntera,b,c:n;scanf(w%d%d%dw,&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)printf("yes\n");elseprintf("no\n");}8,運行例程,求偶數(shù)的平均值#include<stdio.h>main(){inta,b,c,cnt=0;floatpj=O.0;scanf(a%d%d%d“,&a,&b,&c);if(a%2==0){pj+=a;cnt++;}if(b%2==0){pj+=b;cnt++;)if(c%2==0){pj+=c;cnt++;if(ent!=0)pj/=cnt;printf(ttpj=%d\nw,pj);)9.輸入并運行例程,體會i嵌套的if語句的用法#include<stdio.h>main(){inta,b,c;printf(aEntera,b,c:99);scanf(a%d%d%dw,&a,&b,&c);if(a==b)if(b==c)printf(ua==b==c>,);elseprintf(aa=b,b!=cw);elseprintf("a!=b");).輸入并運行例程,體會嵌套的if語句的用法#include<stdio.h>main(){intx=100,a=10,b=20;intvl=5,v2=0;if(a<b)if(b!=15)if(!vl)x=l;elseif(!v2)x=10;x=-l;printf(a%d",x);).輸入并運行例程,學(xué)習(xí)使用switch。語句#include<stdio.h>main(){chargrade;grade=getchar();if(grade>=,A'&&grade<=,V)grade+=32;switch(grade){case'a':printf(“85T00\n");break;case<b,:printf(a70-84\nw);break;case:printf(“60-69\n”);break;case'd':printf("<60\n");break;default:printf("error\n");})12.輸入并運行例程,學(xué)習(xí)使用switch。語句#include<stdio.h>main(){intnl,n2,n3,n4=0;charsign;printf(MEnternl:w);scanf(a%d",&nl);printf("Entersign:");scanf(u%c",&sign);printf(wEntern2:99);scanf("%d",,&n2);switch(sign){case:n3=nl+n2;break;case'-':n3=nl-n2;break;case'*':n3=nl*n2;break;caseT':if(n2==0)n4=l;elsen3=nl/n2;break;case:n3=nl%n2;default:n4=l;)if(n4!=l)printf(tt%d%c%d=%dM,nl,sign,n2,n3);elseprintf(Merror!\n);)四、編程實戰(zhàn):.編寫程序,求表達式的值5>2>7>8'A'>1001&&01||01.0/3.0*3.0==1.0(9%2==1)?1:0.編寫程序,在程序中運行下面的C語句printf(“%d%d\”,1>2,1<2);inta=3;printf("%d%d\nM,a=4,a==4);inta;printf(w%d\nw,a=a-2>l);1.0/3.0*3.0==1.0.編寫程序,輸入一個整數(shù),打印出它是奇數(shù)還是偶數(shù).編寫程序,輸入a、b、c三個數(shù),打印出最大者練習(xí)答案一、選擇題D2.B3.A4.D5.D6.D7.A8.C9.A10.B二、填空題[1]a<c|Ib<c[2]0 [3]0 [4]4599 [5]x<10 [6]x>=l[7]10200D)是死循環(huán)D)m=0D)是死循環(huán)D)m=0D)11練習(xí)5:循環(huán)結(jié)構(gòu)一、選擇題.C語言中while和do-while循環(huán)的主要區(qū)別是。do-while的循環(huán)體至少無條件執(zhí)行一次do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格do-while的循環(huán)體不能是復(fù)合語句.下面的程序輸出結(jié)果是omain(){intx=3;while(!(-x))printf(*%d\n*,x-=2);)A)不執(zhí)行循環(huán)體B)1 C)0.運行以下程序后,如果從鍵盤上輸入6514<回車),則輸出結(jié)果為.main(){intm,n;printf(*Enterm,n:,z);scanf("%d%d”,&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;)printf("m=%d\n”,m);}A)m=3 B)m=2 C)m=l.以下程序的輸出結(jié)果是o^include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei——;}i+=ll;a+=i;}printf("%d\n",a);}A)21 B)32 C)33.以下程序的輸出結(jié)果是o
main(){intx=2;do{printf(*%3d*,!x-2);}whi1e(-x);)A)0-1 B)0 0 C)-2-2 D)死循環(huán).以下程序運行后的輸出結(jié)果是omain(){charcl,c2;for(cl=,0*,c2=f9>;cl<c2;cl++,c2—)printf(*%c%c*,cl,c2);printf("\n〃);)A)0918245765B)0893478654C)0786584763D)09182736457.下面程序的功能是:計算1到10之間奇數(shù)之和及偶數(shù)之和,空白處應(yīng)填main()7.{inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a+=i;;}printf("偶數(shù)之和二%d\n”,a);printf("奇數(shù)之和二%d\n”,cTl);}C)b+=i D)b+=i+1B)運行程序段后輸出為C)b+=i D)b+=i+1B)運行程序段后輸出為1,2D)循環(huán)體語句執(zhí)行一次.設(shè)有以下程序段intx=0,s=0;while(!x!=0){s+=++x;++x;printf("%d,%d”,s,x)則oA)運行程序段后輸出為0C)程序段中的控制表達式是非法的.設(shè)x和y均為整型變量,則執(zhí)行下面的循環(huán)后,y的值為。A)2 B)4 C)6 D)8for(y=l,x=l;y<=50;y++){if(x>=10)break;if(x%2==l){ x+=5;continue;}x—3;}.以下程序運行后,輸出結(jié)果為oA)10000 B)10010 C)00110 D)10100main(){inty=18,i=0,j,a[8];do{ a[i]=y%2;i++;y=y/2;}while(y>=l);for(j=i-l;j>=0;j—)printf(*%d”,a[j]);printf("\n〃);}.以下程序的輸出結(jié)果是C)x=6D)x=12A)x=4 B)x=8C)x=6D)x=12main(){inti,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if(j%2)continue;x++;x++;)printf("x=%d\n”,x);}.有以下程序main(){inta=l,b;for(b=l;b<=10;b++){if(a>=8)break;if(a%2==l){a+=5;continue;}a-=3;}printf("%d\n",b);)程序運行后的輸出結(jié)果是OA)3 B)4 C)5 D)6.有以下程序main(){chark;inti;for(i=l;i<3;i++){scanf&k);switch(k){caseO':printf(z,another\nz,);caseT':printf("number'n");}}}程序運行時,從鍵盤輸入:01<回車),程序執(zhí)行后的輸出結(jié)果是oA)another B)another C)another D)numbernumber number number numberanother number
二、填空題.執(zhí)行下面程序段的結(jié)果是 [1】 。intx=234;do{printf("%3d\n”,x-);}while(!x);.以下程序是利用公式pi=4*(lT/3+l/5-1/7+…)來計算乃的值。其中,變量左表示當(dāng)前符號項,I表示當(dāng)前項,〃表示當(dāng)前項的序號,要求精度控制在0.00001內(nèi)。試分析程序,完成空標(biāo)號處應(yīng)填的內(nèi)容。#include<math.h>main(){floatpi,t,n,k;pi=0.0;n=k=t=1.0;TOC\o"1-5"\h\zwhile( [2]){ pi+=t;~k=^k;t=[3] ;n++;}pi= 【4】 ;printfCpi=%f\n",pi);).以下程序的執(zhí)行結(jié)果是一 【5】 。main(){inti,j,m=0,n=0;for(i=0;i<2;i++){for(j=0;j<2;j++)if(j>=i)nrl;n++;printf("%d\n”,n);}).下面程序的輸出結(jié)果是[6】。#include<stdio.h>main(){intx,y;for(x=l,y=l;x<100;x++){if(y>=20)break;if(y%3==l){ y=y+3;continue;}y二y-5;)printf("x=%d,y=%d”,x,y);){printf("%4d”,i);if(i%10==0)printf(“\n”);i++:){printf("%4d”,i);if(i%10==0)printf(“\n”);i++:))解法2#include<stdio.h>.輸入并運行例程,輸出1100的整數(shù)解法1#include<stdio.h>main(){inti=l;while(i<=100)main(){inti=l;do{printf("%4d”,i);if(i%10==0)printf(a\nn);i++;}while(i<=100);}解法3#include<stdio.h>main(){inti;for(i=l;i<=100;i++){printf("%4d”,i);if(i%10==0)printf(a\n");.輸入并運行例程,求1+2+3……100#include<stdio.h>main(){inti,sum=0;for(i=l;i<=100;i++){sum=sum+i;}printf("sum=%d”,sum);}.輸入并運行例程,求100-98+96-94+……2#include<stdio.h>main(){inti,sum=0,sign=1;for(i=100;i<=2;i-=2){sum=sum+k*i;sign=sign*-l;}printf("sum=%d”,sum);}.輸入并運行例程,輸入字符串,并照原樣輸出#incluede<stdio.h>main(){charc;while((c=getchar())!=,\n'){puchar(c);.輸入并運行例程,輸出9*9乘法表#include"stdio.h"#include<stdio.h>main()(inti,j;for(i=l;i<=9;i++){for(j=l;j<=i;j++)printf(<<%d*%d=%d\t>>,i,j,i*j);putchar('\n');)}.運行例程,判斷輸入的數(shù)是否是素數(shù)#include<stdio.h>main(){inti,m,flag=l;printf(uEnterm:n);scanf("%d",&m);for(i=2;i<m;i++)if(m%i==0){flag=0;break;)if(flag!=O)printf("/disprimenumber”,m);elseprintf("%dnotisprimenumberw,m);}.運行例程,輸出100-200之間的所有素數(shù)#include<stdio.h>^include"math,h”main(){inti,m;for(m=100;m<=200;m++){for(i=2;i<m;i++)if(m%i=0)break;if(i==m)/*只有測試到m-1,m%i==0printf("Enterprintf("Enter10number:M;for(i=0;i<10;i++){scanf&a);if(a<=0)continue;num++;sum+=a;)printf(^%dplusinteger'ssum:%6.0f\n”,num,sum);printf("Meanvalue:%6.2f\n”,sum/num);)仍成立,i的值才會等于m*/printf("%d\t”,m);)).輸入并運行例程,求輸入的十個整數(shù)中正數(shù)的個數(shù)及其平均值#include<stdio.h>main(){inti,num=0,a;floatsum=0;四、編程實戰(zhàn):.編寫程序,求1-3+5-7+--99+101的值.編寫程序,輸出從公元1600年到2000年所有閏年的年號。每輸出5個年號換一行。判斷公元年是否為閏年的條件:能被4整除而不能被100整除;或能被400整除練習(xí)答案一、選擇題1.A2.A3.C4.B5.C6.D7.B8.B9.C10.B11.B12.B13.B二、選擇題答案[1]234 [2]fabs(t)>0.00001 [3]s/(2*n+l) [4]4*pi[5]1 16]x=8,y=22練習(xí)6:數(shù)組一、選擇題i.以下程序的輸出結(jié)果是。main(){inti,a[10];for(i=9;i>=0;i—)a[i]=10-i;printf(w%d%d%dw,a[2],a[5],a[8]);}A)258 B)741C)852D)3692.假定int類型變量占用2個字節(jié),若有定義:intx[10]={0,2,4};,則數(shù)組X在內(nèi)存中所占字節(jié)數(shù)是 。A)3 B)6C)10D)203.以下定義語句中錯誤的是 。A)inta[]={1,2};B)chara[3];C)chars[10]=”test”;D)intn=5,a[n];4.以下程序的輸出結(jié)果是 oA)20 B)21C)22D)23main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);)5.若有定義:intaa[8]:則以下表達式中不能代表數(shù)組元aa[l]的地址的是A)&aa[0]+l B)&aa[l].當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名A)數(shù)組的長度C)數(shù)組每一個元素的地址.以下數(shù)組定義中不正確的是 A)inta[2][3]:C)intc[100][100]={0};.以下程序的輸出結(jié)果是 。A)18 B)19main(){inta[3][3]={{1,2},{3,4},for(i=l;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];C)&aa[0]++ D)aa+1,則向函數(shù)傳送的是 。B)數(shù)組的首地址D)數(shù)組每個元素中的值intb[][3]={0,1,2,3};D)intd[3][]={{1,2},{1,2,3},{1,2,3,4)}20 D)21{5,6}},i,j,s=0;printf("%d\n",s);.以下程序的輸出結(jié)果是oA)1,5,9 B)1,4,7 C)3,5,7 D)3,6,9main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9);for(i=0;i<3;i++)printf(w%d,n,x[i][2-i]);).以下程序的輸出結(jié)果是oA)ABCD B)ABCD C)EFG D)EFGHFGH EFG JK IJKLmain(){charw[][10]={“ABCD","EFGH",“IJKL",“MNOP”},k;for(k=l;k<3;k++) printf(a%s\nw,w[k]);二、填空題.若有定義語句:chars[100],d[100];intj=0,i=0;且s中己賦字符串,請?zhí)羁找詫崿F(xiàn)字符串拷貝。(注意:不能使用逗號表達式)while(s[i]){d[j]= [1];j++;}d[j]=O;.若已定義:inta[10],i;,以下fun函數(shù)的功能是:在第一個循環(huán)中給前10個數(shù)組元素依次賦1,2,3,4,5,6,7,8,9,10;在第二個循環(huán)中使a數(shù)組前10個元素中的值對稱折疊,變成1,2,3,4,5,5,4,3,2,lo請?zhí)羁?。fun(inta[]){inti;for(i=0;i<=10;i++) [2] =i;for(i=0:i<5:i++) [3] =a[i]:.若變量n中的值為24,則prnt函數(shù)共輸出.voidprnt(intn,intaa[]){inti;for(i=l;i<=n;i++){printf( ,aa[i]);.下面程序的運行結(jié)果:[6]ointf(inta[],intn){if(n>l) returna[0]+f(&a[l],n-1);elsereturna[0];).若有以下程序main()[4]行,最后一行有【5】數(shù)。if(!(i%5))printf(a\nff);}printf(“\n”);main(){intaa[3]={1,2,3},s;s=f(&aa[0],3);printf("%d\n",s);{inta[4][4]={{1,2,-3,-4),{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=0;for(i=0;i<4;i++){for(j=0;j<4;j++)執(zhí)行后輸出的結(jié)果是[7】 。.下列程序段的輸出結(jié)果是 [8】 。main(){charb[]="Hello,you”;b[5]=0;printf(u%s\n”,b);)三、上機試驗:.輸入并運行例程,循環(huán)輸入和輸出一維數(shù)組元素#include<stdio.h>main(){inta[5],j;printf(aEnter5integer:99);for(j=0;j<5;j++)scanf("%d",a[j]);for(j=0;j<5;j++)printf(w%d\tw,a[j]);}.輸入并運行例程,循環(huán)輸入和輸出二維數(shù)組的元素值main(){inta[2][3];printf("Enter6integer:9f);for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d”,&a[i]);for(i=0;i<2;i++)for(j=0;j<3;j++)(printf("%dw,a[i]);printf(M\n");.輸入并運行例程,求輸入的10個數(shù)的最大if(a[i][j]<0)continue;if(a[i][j]==0)break;s+=a[i][j];值,以及最大值的個數(shù)#include<stdio.h>main(){inti,a[10],max,cnt=0;for(i=0;i<10;i++)scanf("%d”max=a[0];for(i=0;i<10;i++)if(a[i]>max)max=a[i];for(i=0;i<10;i++)if(max==a[i])cnt++;printf(max=%d,cnt=%d\n”,max,ent);).輸入并運行例程,給輸入的10個數(shù)按照從小到大的順序排序#include<stdio.h>main(){inti,j,a[10],t;for(i=0;i<10;i++)scanf( ,&a[i]);for(i=0;i<9;i++)for(j=i+l;j<10;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;)for(i=0;i<10;i++)printf("%dn,a[i]);printf("\n");}.輸入并運行例程,將數(shù)組中的元素依次向前移動一個位置,第一個元素放在最后面。例如1,2,3,5移動后變?yōu)?,3,5,1#include<stdio.h>main(){inta[5]={l,3,5,7,9},i,t;t=a[0];for(i=0;i<4;i++)a[i]=a[i+l];a[4]=t;for(i=0;i<10;i++)printf(a%dw,a[i]);printfC\n");}.輸入并運行例程,給二維數(shù)組按行排序#include"stdlib.h"main(){inti,j,k,t,a[3][4]:for(i=0;i<3;i++)for(j=0;j<4;j++)a[i][j]=random(10);for(i=0;i<3;i++)for(j=0;j<3;j++)for(k=j+1;k<4;k++)if(a[i][j]>a[i][k]){t=a[i][j];a[i][j]=a[i][k];a[i][k]=t;)for(i=0;i<3;i++){for(j=0;j<4;j++)printf(*%d”,a[i][j]);printf("\n");.輸入并運行例程,求數(shù)組中奇數(shù)的個數(shù)并通過形參n返回#include<stdio.h>ent(int*p,int*n){inti;*n=0;for(i=0;i<n;i++)if(p[i]%2!=0)(*n)++;)main(){intn,a[10]={l,9,5,7,-8,6,4,2,3,0};ent(a,n);for(i=0;i<10;i++)printf("%d",a[i]);printf(u\n");printf(w%d”,n);).輸入并運行例程,用枇輸入輸出字符串#include<stdio.h>main(){charstr[5];inti;for(i=0;i<5;i++)scanf(“枇",&str[i]);for(i=0;i<5;i++)printf( ,str[i]);}.輸入并運行例程,用%s輸入輸出字符串#include<stdio.h>mainO{charstr[5];scanf(u%s",str);printf("%s",str);).輸入并運行例程,用gets和puts輸入輸出字符串#include<stdio.h>#include<string.h>main(){charstring[80];printf(Inputastring:");gets(string);puts(string);).輸入并運行例程,學(xué)習(xí)掌握strcpy和strcat的用法^include<string.h>#include<stdio.h>voidmain(){chardestination[25];charblank[]=* ",c□="C++”,turbo□=“Turbo”;strcpy(destination,turbo);strcat(destination,blank);strcat(destination,c);printf("%s\n",destination);).輸入并運行例程,學(xué)習(xí)掌握strcmp和strlen的用法#include<string.h>#include<stdio.h>main()四、編程實戰(zhàn):{charstrl[]="Hello!*,str2[]="Howareyou?”,str[20];intlent,len2,len3;lenl=strlen(strl);len2=strlen(str2);if(strcmp(strl,str2)>0){strcpy(str,strl);strcat(str,str2);}elseif(strcmp(strl,str2)<0){strcpy(str,str2);strcat(str,strl);}elsestrcpy(str,strl);len3=strlen(str);puts(str);printf(wLenl=%d,Len2=%d,Len3二%d\n”,len1,len2,len3);.請編寫函數(shù)mygets和myputs,其功能分別于gets和puts相同。函數(shù)中用getchar和putchar讀入和輸出字符.請編寫函數(shù),判斷一個字符串是否是回文。若是回文函數(shù)返回1,否則返回0?;匚木褪琼樧x和倒讀都一樣的字符串練習(xí)答案一、選擇題1.C2.D3.D4.B5.C6.B7.D8.A9.C2.D10.D二、填空題[1]s[i++] [2]a[i-l][3]a[9-i] [4]5 [5]4 [6]6 [7]58[8]Hello
練習(xí)7:函數(shù)一、選擇題.sizeof(fl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 掛車租出合同6篇
- 場地有償使用合同7篇
- 公寓式房屋轉(zhuǎn)租合同
- 廣告制作安裝合同書
- 臨街商鋪租賃合同
- 工程降水分包合同
- 土地利用規(guī)劃的制定與執(zhí)行指導(dǎo)書
- 員工租賃車輛協(xié)議
- 信封印刷合同6篇
- 圍墻工程包工合同
- 2024年吉安職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 2024阿里巴巴云計算云主機租賃及運維服務(wù)合同2篇
- 高技能人才培訓(xùn)基地 建設(shè)項目實施方案
- 消毒供應(yīng)中心禮儀培訓(xùn)
- 微信公眾號運營步驟
- 2024年河南省中職對口升學(xué)高考語文試題真題(解析版)
- DB37T 4614.2-2023“愛山東”政務(wù)服務(wù)平臺移動端 第2部分:運營管理規(guī)范
- 初中數(shù)學(xué)新課程標(biāo)準(zhǔn)(2024年版)
- 《馬詩》教學(xué)課件新課學(xué)習(xí)
- 吊罐法掘天井安全技術(shù)操作規(guī)程(4篇)
- 2024年高考語文復(fù)習(xí):酬和類古代詩歌閱讀 專項練習(xí)題匯編(含答案解析)
評論
0/150
提交評論