




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大學C語言考試題庫第 1 章 C 語言概述習題1. 單項選擇題(1) C 語言是在B 語言的基礎(chǔ)上產(chǎn)生的。A. A B. B C. D D. E(2) 在 C 語言中,每個語句必須以D 結(jié)束。A.回車符B.冒號C.逗號D.分號(3) 標識符和關(guān)鍵字間,要用C隔開。A.回車符B.冒號C.空格D.分號(4) 用 C 語言編寫的源文件經(jīng)過編譯,若沒有產(chǎn)生編譯錯誤,則系統(tǒng)將( B )。A. 生成可執(zhí)行目標文件B. 生成目標文件C. 輸出運行結(jié)果D. 自動保存源文件(5) 下列說法中正確的是( B )。A. 由于C源程序是高級語言程序,因此一定要在 TC軟件中輸入B. 由 C 源程序是字符流組成,因此可
2、以作為文本文件在任何文本編輯的軟件中輸入C. 由于C程序是高級語言程序,因此輸入后即可執(zhí)行D. 由于C程序是高級語言程序,因此它由命令組成(6) 下列說法中正確的是( A )。A. C 語言程序由主函數(shù)和0 個或多個函數(shù)組成B. C 語言程序由主程序和子程序組成C. C 語言程序由子程序組成D. C 語言程序由過程組成(7) 下列說法中錯誤的是( D )。A. 主函數(shù)可以分為兩個部分:主函數(shù)說明部分和主函數(shù)體B. 主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù)C. 任何非主函數(shù)可以調(diào)用其他任何非主函數(shù)D. 程序可以從任何非主函數(shù)開始執(zhí)行2. 填空題(1) C 語言只有32 個關(guān)鍵字和9 種控制語句。(2
3、) C 語言是一種“中級語言”,既具有高級語言的特點又具有低級語言的特點;既適合于開發(fā)系 統(tǒng)軟件又適合于編寫應(yīng)用程序。(3) 每個源程序有且只有一個主 函數(shù),系統(tǒng)總是從該函數(shù)開始執(zhí)行C語言程序。(4) 在 C 語言程序中允許出現(xiàn)的字符集是ASCII 碼字符集。(5) C 語言的程序中有特殊含義的英語單詞稱為保留字。(6) C 語言標識符的長度是前8 位有效。(7) C 語言中,標識符的定義規(guī)則是以字母或下劃線為開頭。(8) C 語言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以/* 符號作為開始標記,以*/ 符號作為結(jié)束標記。第 2 章 數(shù)據(jù)類型運算符和表達式習題1. 單項選擇題(1) 以下選
4、項中,正確的C 語言整型常量是D 。A. 32L B. 510000 C. -1.00 D. 567(2) 以下選項中,D 是不正確的C 語言字符型常量。A. 'a' B. 'x41' C. '101' D. "a"(3) 在 C 語言中,字符型數(shù)據(jù)在計算機內(nèi)存中,以字符的C 形式存儲。A. 原碼 B. 反碼 C. ASCII 碼 D. BCD 碼(4) 字符串的結(jié)束標志是C 。A. 0 B. '0' C. '0' D. "0"(5) 算術(shù)運算符、賦值運算符和關(guān)系運算符的運算
5、優(yōu)先級按從高到低依次為B 。A. 算術(shù)運算、賦值運算、關(guān)系運算B.算術(shù)運算、關(guān)系運算、賦值運算C. 關(guān)系運算、賦值運算、算術(shù)運算D.關(guān)系運算、算術(shù)運算、賦值運算(6) 邏輯運算符中,運算優(yōu)先級按從高到低依次為D 。A. && , ! , | B. |, &&, ! C. &&, | , ! D. !, &&, |(7) 表達式 !x|a=b 等效于 D 。A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b) D. (!x)|(a=b)(8) 設(shè)整型變量m,n,a,b,c,d 均為1,執(zhí)行(m=a>b)&
6、amp;&(n=c>d) 后 , m,n 的值是 A 。A. 0 , 0 B. 0, 1 C. 1, 0 D. 1, 1(9) int b=0, x=1 ;執(zhí)行語句if(x+) b=x+1; 后, x, b 的值依次為A 。A. 2 , 3 B. 20 C. 3, 0 D. 3, 2(10) 設(shè)有語句int a=3 ; ,則執(zhí)行了語句a+=a-=a*=a; 后,變量a 的值是 B 。A. 3 B. 0 C. 9 D. -12(11) 在以下一組運算符中,優(yōu)先級最低的運算符是D 。A. * B. != C. + D. =(12) 設(shè)整型變量i 值為2,表達式(+i)+(+i)+(+
7、i) 的結(jié)果是B 。A. 6 B. 12 C. 15 D.表達式出錯(13) 若已定義x 和 y 為 double 類型,則表達式x=1 , y=x+3/2 的值是 C 。A. 1 B. 2 C. 2.0 D. 2.5(14) sizeof (double) 的結(jié)果值是A 。A. 8B. 4 C. 2D.出錯(15) 設(shè)a=1, b=2, c=3, d=4,則表達式:a<b? a : c<d? a : d 的結(jié)果為D 。A. 4B. 3 C. 2D. 1(16) 設(shè) a 為整型變量,不能正確表達數(shù)學關(guān)系:10<a<15 的 C 語言表達式是AA. 10<a<
8、15B. a= =11| a= =12 | a= =13 | a= =14C. a>10 && a<15 D. !(a<=10) && !(a>=15)(17) 設(shè) f 是實型變量,下列表達式中不是逗號表達式的是D 。A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=(3.2, 1.0)(18) 設(shè) ch 是 char 型變量,其值為'A' ,則下面表達式的值是B 。ch=(ch>='A'&& ch<='Z
9、39;)? (ch+32):chA. A B. a C. Z D. Z(19) 以下運算符中,結(jié)合性與其他運算符不同的是A 。A. + B. % C. / D. +(20) 以下用戶標識符中,合法的是B 。A. int B. nit C. 123 D. a+b(21) C 語言中,要求運算對象只能為整數(shù)的運算符是%。A. % B. / C. > D. *(22) PC 機中, 'n' 在內(nèi)存占用的字節(jié)數(shù)是A 。A. 1 B. 2 C. 3 D. 4(23) 字符串 "ABC"在內(nèi)存占用的字節(jié)數(shù)是B 。A. 3 B. 4 C. 6 D. 8(24) 要為
10、字符型變量a 賦初值,下列語句中哪一個是正確的B 。A. char a="3" B. char a= 3 ; C. char a=%; D. char a=*;(25) 下列不正確的轉(zhuǎn)義字符是C 。A. B. ' C. 074 D. 02. 填空題(1) C 語言中的邏輯值“真”是用 非 0 表示的,邏輯值“假”是用 0 表示的。(2) 符號常量的定義方法是#define N 10。(3) 無符號基本整型的數(shù)據(jù)類型符為unsigned int ,雙精度實型數(shù)據(jù)類型符為double ,字符型數(shù)據(jù)類型符為char 。(4) 設(shè) c='w',a=1,b=2
11、,d=-5, 則 表 達 式 'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b=a=2 的 值 分 別為 1、0、1、 表達式錯誤。(5) 設(shè) float x=2.5,y=4.7; int a=7; ,表達式x+a%3*(int)(x+y)%2/4 的值為 2.5。(6) 判斷變量a 、 b 的值均不為0 的邏輯表達式為(a!=0)&&(b!=0)。(7) 求解賦值表達式a=(b=10)%(c=6) ,表達式值、a、 b、 c 的值依次為4,4,10,6。(8) 求解逗號表達式x=a=3,6*a 后,表達式值、x、 a 的
12、值依次為18,3,3。(9) 數(shù)學式 a/(b*c) 的 C 語言表達式a/(b*c)。第 3 章 順序結(jié)構(gòu)程序設(shè)計習題(1) 選擇題(2) printf("f=%3.2f%",3.478); 的輸出結(jié)果是A 。A. f=3.48% B. f=3.5% C. f=3.48% % D. f=347.8%(3) printf("%c,%d",'a', 'a');的輸出結(jié)果是A 。A. a,97 B. a 97 C. 97,a D. 97 a(4) scanf("%c",&a) ;若要給變量輸入大寫字
13、母A,則以下正確的輸入是B 。A. 'A' <CR> B. A <CR> C. "A" <CR> D.以上都不對(5) 若一個 int 類型的數(shù)據(jù)占2 字節(jié), 則程序段:int x=-1;printf("%u,%d",x,x); 的輸出結(jié)果是AA. 65535, -1 B. -1,65535C. 32767, 32768 D. 32768,32767(6) 在 TC 中, getchar 、 putchar 、 printf 、 scanf 四個函數(shù),均包含在頭文件B中。A. math.h B. std
14、io.h C. stbio.h D. stdlib.h(7) 復(fù)合語句是用C 括起來的語句組。A. ( ) B. C. D. < >(8) 下列格式符中,哪一個可以用于以八進制形式輸出整數(shù)C 。A. %d B. %8d C. %o D. %ld(9) 下列格式符中,哪一個可以用于以十六進制形式輸出整數(shù)B 。A. %16d B. %8x C. %d16 D. %d(10) a 是 int 類型變量,c 是字符變量,下列輸入語句中哪一個是錯誤的B 。A. scanf("%d,%c",&a,&c);B. scanf("%d%c",a
15、,c);C. scanf("%d%c",&a,&c);D. scanf("d=%d,c=%c",&a,&c);(11) 要使 double x; long a; 的數(shù)據(jù)能正確的輸出,輸出語句應(yīng)是D 。A. printf("%d, %f",a, x);B. printf("%d, %1f",a, x);C. scanf("%1d, %1f",&a, &x);D. printf("%1d, %lf",a, x);2. 程序改錯題(
16、以下各個程序段均有5 個錯誤,請先找出錯誤的位置,然后再改正)(1) 以下程序的功能是,從鍵盤輸入一個字符并鳴笛輸出。#include "stdio.h"mian() /main() char c /char c;getchar(c);/c = getchar();putchar('007') ; /*鳴笛 */c=putchar(); /putchar(c);/(2) 以下程序的功能是,輸入長方形的兩邊長( 邊長可以取整數(shù)和實數(shù)) ,輸出它的面積和周長。main /main()int a,b,s,l; /double a,b,s,l;scanf("
17、;%d,%d",&a,&b); /scanf("%lf,%lf",&a,&b);s=a*b;l=a+b; /l=(a+b)*2;printf("l=%f,s=%fn",l); /printf("l=%lf,s=%lfn",l,s);3. 寫出程序運行結(jié)果(1)main()int a,b;scanf("%2d%*2s%2d",&a,&b);printf("%dn",a+b);運行時輸入:12345678 / 輸出 :68(2)main()i
18、nt a=3,b=5,x,y;x=a+1, b+6;y=(a+1, b+6);printf("x=%dny=%dn",x,y);輸出: x=4y=11第 4 章 選擇結(jié)構(gòu)程序設(shè)計習題1. 單項選擇題(1) 選擇結(jié)構(gòu)程序設(shè)計的特點是_B。A. 自上向下逐個執(zhí)行B. 根據(jù)判斷條件,選擇其中一個分支執(zhí)行C. 反復(fù)執(zhí)行某些程序代碼D. 以上都是(2) 假定所有變量均已正確定義,下列程序段運行后x 的值是_B_。a=b=c=0, x=35;if(!a) x-; else if(b); if(c) x=3; else x=4;A. 34 B. 4 C. 35 D. 3(3) 下面的程序
19、片段所表示的數(shù)學函數(shù)關(guān)系是_ A if(x<0) y= -1;else if(x>0) y=1;else y=0;(4) 下列各語句序列中,能夠且僅輸出整型變量a、 b 中最大值的是( C )A. if(a>b) printf("%dn",a); printf("%dn",b);B. printf("%dn",b); if(a>b) printf("%dn",a);C. if(a>b) printf("%dn",a); else printf("%dn&q
20、uot;,b);D. if(a<b) printf("%dn",a); printf("%dn",b);(5) 以下程序段的輸出結(jié)果是A int x=5;if(x>0) y=1;else if(x=0) y=0;else y= 1;printf("%d",y);A. 1 B. 5 C. 0 D. 2(6) 程序段 int x=5,y=8,max; max=(x>y)?x:y; printf("%d",max);的輸出結(jié)果是BA. 5 B. 8 C. 3 D. 13(7) 程序段 int x=3,a
21、=1;switch(x) case 4: a+;case 3: a+;case 2: a+;case 1: a+; printf("%d",a); 的輸出結(jié)果是D 。A. 1 B. 2 C. 3 D. 4(8) 下列語句應(yīng)將小寫字母轉(zhuǎn)換為大寫字母,其中正確的是( B )。A.if(ch>='a'&ch<='z') ch=ch-32;B.if(ch>='a'&&ch<='z')ch=ch-32;。11C.ch=(ch>='a'&&
22、;ch<='z')?ch-32:D.ch=(ch>'a'&&ch<'z')?ch-32:ch;2. 閱讀程序,寫出運行結(jié)果(1)void main ()int a=10, b=4, c=3;if(a<b) a=b ;if(a<c) a=c ;printf("%d, %d, %dn", a, b, c) ;輸出:10, 4, 3(2)(3)int k,a=1,b=2;k=(a+=b) ? 2:3;printf("%d",k);輸出: 3(4)void main()
23、int s=1,k=0;switch (s)case 1: k+=1;case 2: k+=2;default: k+=3;void main ( )int x=100, a=10, b=20, ok1=5, ok2=0;if(a<b) if(b!=15) if(!ok1) x=1;else if(ok2) x=10;else x=-1;printf("%dn", x);輸出: -1 ; 輸出: 6(5)void main()int s=1,k=0;switch (s)case 1: k+=1;break;case 2: k+=2;break;default: k+=
24、3;printf( “ %d” ,k);輸出: 1printf( “ %d” ,k);第 5 章 循環(huán)結(jié)構(gòu)程序設(shè)計習題1. 單項選擇題(1)for(i=1;i<9;i+=1); 該循環(huán)共執(zhí)行了B 次。A. 7 B. 8 C. 9 D. 10(2)int a=2;while(a=0) a-;該循環(huán)共執(zhí)行了A 次。A. 0 B. 1 C. 2 D. 3(3) 執(zhí)行完循環(huán)for(i=1;i<100;i+); 后, i 的值為 B 。A. 99 B. 100 C. 101 D. 102(4) 以下 for 語句中,書寫錯誤的是D 。A. for(i=1;i<5;i+); B. i=1
25、;for(;i<5;i+);C. for(i=1;i<5;) i+;D. for(i=1,i<5,i+);以上都不是根據(jù)判斷條件,執(zhí)行其中一個分支以上都對(5) C 語句,在循環(huán)條件初次判斷為假,還會執(zhí)行一次循環(huán)體。A. for B. while C. do-while D.(6) 循環(huán)結(jié)構(gòu)的特點是C 。A. 從上至下,逐個執(zhí)行B.j 已定義為int 類型,則以下程序段中內(nèi)循環(huán)體的執(zhí)行次數(shù)是AC. 滿足條件時反復(fù)執(zhí)行循環(huán)體D.(7) i for(i=5;i;i-)for(j=0;j<4;j+) A. 20 B. 24 C. 25 D. 30(8) C 語言 while
26、語句中,用于條件的表達式是D 。A. 關(guān)系表達式B. 邏輯表達式C. 算術(shù)表達式D. 任意表達式(9) int a=1, x=1; 循環(huán)語句while(a<10) x+; a+; 的循環(huán)執(zhí)行D 。A. 無限次B. 不確定次C. 10 次 D. 9 次(10) 下列程序段執(zhí)行后s 的值為 A 。int i=1, s=0; while(i+) if(!(i%3) break ; else s+=i ;A. 2 B. 3 C. 6 D.以上均不是2. 填空題(1) 三種循環(huán)語句是等價 價的。(2) 當循環(huán)體中的switch 語句內(nèi)有break 語句,則只跳出swicth 語句。同樣,當swit
27、ch 語句中有循環(huán)語句,內(nèi)有break 語句,則只跳出循環(huán)語句。(3) 循環(huán)體執(zhí)行遇到continue 語句時跳過本次循環(huán)進入下次循環(huán)。(4) 下列程序的功能是輸入一個正整數(shù),判斷是否是素數(shù),若為素數(shù)輸出1 ,否則輸出0 ,請為程序填空。void main( )int i, x, y=1;scanf("%d", &x);for(i=2; i<=x/2; i+)if ( x%i=0 ) y=0; break; printf("%dn",y);(5) 輸入 N 個實數(shù),輸出其中的最大值、最小值。#include <stdio.h>v
28、oid main( )int n,i;float no1,nmax,nmin;scanf("%d",&n); scanf("%f",&no1);nmax=no1;nmin=no1 ;for(i=2;i<=n;i+)scanf("%f", &no1 );if(no1>nmax) nmax=no1;if(no1<nmin) nmin=no1;printf("MAX=%f MIN=%fn",nmax,nmin);(6) 輸入若干個字符,分別統(tǒng)計數(shù)字字符的個數(shù)、英文字母的個數(shù),當輸
29、入換行符時輸出統(tǒng)計結(jié)果,運行結(jié)束。#include <stdio.h>void main( )char ch;int s1=0,s2=0 ;while( ch=getchar() )!='n')if(ch>='0'&&ch<='9') s1+;if(ch>='a'&&ch<='z' | ch>=3. 閱讀下列程序,寫出程序運行的輸出結(jié)果(1)void main( ) int y=9;for( ;y>0; y-)if(y%3=0) pri
30、ntf("%d",-y);continue;輸出: 852(2)main()|ch<= Z ) s2+;while(k+<=n)m*=2;printf("%dn",m);輸出: 1024(3)void main ( ) int i=5;doswitch (i%2)case 4: i-; break;n=10;m=1;k=1;case 6: i-; continue;int k,n,m;1。6case 'E': k=k*10; break;i- ; i- ;printf("i=%d ", i); while(
31、i>0);輸出: i=3 i=1 i=-1(4)#include <stdio.h>void main( )int k=0; char c='A'doswitch(c+)case 'A': k+; break;case 'B': k-;case 'C': k+=2; break;case 'D': k=k%2; break;default: k=k/3;k+;while(c<'G');printf("k=%dn", k);輸出: 8(5) 輸入數(shù)據(jù):2,4
32、#include <stdio.h>void main( )int s=1,t=1,a,n;int i ;scanf("%d , %d",&a,&n);for(i=1;i<n;i+) t=t*10+1; s=s+t;s*=a; printf("SUM=%dn",s);輸出: 24684. 程序改錯(1) 以下程序是顯示200 , 300 所有能被7 整除的數(shù),每行顯示5 個數(shù),此程序有5 處錯。main()int i,n=0; /*n 用來記錄每行已打印數(shù)的個數(shù)*/while(i<300) /while(i <
33、;= 300)&&(i >= 200) /i+;if(i%7=0) /if(i%7!=0)break; /continue;printf("%5d",i);n=n+1;if(n=5)/* 滿 5 個換行 */ /if(n = 5)printf("n");n=0;(2) 以下程序是求1!+2!+3!+4!+5!+6!+7 !的值,其中有3 處錯誤。main()int i,s,t=0; /long s = 0,t = 1;/int i;for(i=1;i<=7;i+)s=0; / 去掉該語句 t=t*i;s=s+t; printf
34、("sum=dn",s); /printf(“ sum=%ld” ,s);第 6 章 函數(shù)習題1. 單項選擇題(1)C 語言總是從A 函數(shù)開始執(zhí)行。A. main B.處于最前的C.處于最后的D. 隨機選一個(2) 函數(shù)在定義時,省略函數(shù)類型說明符,則該函數(shù)值的類型為A 。A. int B. float C. long D. double(2) 以下 B 函數(shù),真正地沒有返回值。A. int a()int a=2;return (a);C. int a()int a=2;return a;B. void b()printf("c");D. 以上都是(3)
35、 在 C 語言中,有關(guān)函數(shù)的說法,以下正確的是C1。11A.函數(shù)可嵌套定義,也可嵌套調(diào)用B.函數(shù)可嵌套定義,但不可嵌套調(diào)用C.函數(shù)不可嵌套定義,但可嵌套調(diào)用D.函數(shù)不可嵌套定義,也不可嵌套調(diào)用(4) 以下函數(shù)調(diào)用語句中,含有實參的個數(shù)為B fun(2,3),(4,5+6,7);A. 1 B. 2 C. 5 D. 6(5) 函數(shù)調(diào)用可以在D 。C. 函數(shù)參數(shù)中D. 以上都是A. 函數(shù)表達式中B. 函數(shù)語句中(6) 被調(diào)函數(shù)返回給主調(diào)函數(shù)的值稱為C 。A.形參 B.實參 C. 返回值D. 參數(shù)(7) D ,可以不進行函數(shù)類型說明。A. 被調(diào)函數(shù)的返回值是整型或字符型時B. 被調(diào)函數(shù)的定義在主調(diào)函數(shù)
36、定義之前時C. 在所有函數(shù)定義前,已在函數(shù)外預(yù)先說明了被調(diào)函數(shù)類型D. 以上都是(8) 被調(diào)函數(shù)通過D 語句,將值返回給主調(diào)函數(shù)。A. if B. for C. while D. return(9) 被調(diào)函數(shù)調(diào)用結(jié)束后,返回到B 。A. 主調(diào)函數(shù)中該被調(diào)函數(shù)調(diào)用語句處B. 主函數(shù)中該被調(diào)函數(shù)調(diào)用語句處C. 主調(diào)函數(shù)中該被調(diào)函數(shù)調(diào)用語句的前一語句D. 主調(diào)函數(shù)中該被調(diào)函數(shù)調(diào)用語句的后一語句(10) 以下對 C 語言函數(shù)的有關(guān)描述中,正確的是A 。A. 在 C 中,調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參B. C 函數(shù)既可以嵌套定義又可遞歸調(diào)用C. 函數(shù)必須有返回值,否則不能使
37、用函數(shù)D. C 程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個源程序文件中(11)C 語言中函數(shù)的隱含存儲類型是A 。A. auto B. static C. extern D.無存儲類型(12) 能把函數(shù)處理結(jié)果的兩個數(shù)據(jù)返回給主調(diào)函數(shù),在下面的方法中不正確的是A. return 這兩個數(shù)B. 形參用兩個元素的數(shù)組C. 形參用兩個這種數(shù)據(jù)類型的指針D. 用兩個全局變量2. 填空題(1) 變量的作用域主要取決于變量定義的位子,變量的生存期既取決于變量存儲類型,又取決于變量存儲方式。(2) 說明變量時,若省略存儲類型符,系統(tǒng)默認其為整形 存儲類別,該存儲類別的類型符為:int 。(3) 靜態(tài)型局部變量
38、的作用域是靜態(tài)局部變量定義的復(fù)合語句或函數(shù)體內(nèi), 生存期是整個程序運行期內(nèi)。(4) 函數(shù)中的形參和調(diào)用時的實參都是數(shù)組名時,傳遞方式為地址傳遞,都是變量時,傳遞方式為值傳遞。(5) 函數(shù)的形式參數(shù)的作用域為整個函數(shù)體內(nèi),全局的外部變量和函數(shù)體內(nèi)定義的局部變量重名時,函數(shù)體內(nèi)定義的局部變量優(yōu)先。(6) 若自定義函數(shù)要求返回一個值,則應(yīng)在該函數(shù)體中有一條return 語句,若自定義函數(shù)要求不返回一個值,則應(yīng)在該函數(shù)說明時加一個類型說明符void 。(7) 若函數(shù)的形式參數(shù)是指針類型,則實參可以是數(shù)組名、 地址 或 指針變量。(8) 函數(shù)的參數(shù)為char * 類型時,形參與實參結(jié)合的傳遞方式為地址傳
39、遞。(9) 函數(shù)的實參為常量時,形參與實參結(jié)合的傳遞方式為值傳遞。(10) 對數(shù)組按值從大到小的順序排序后輸出,請?zhí)羁铡?include <stdio.h>void main()float a7=2,6,3,8,3,12,9;int i ;void sort(float*,int);sort ( a,7 );for(i=0;i<7;i+) printf("%f ",ai);printf("n"); void sort( float *p, int n )int i,j,k; float t;for(i=0;i<n-1;i+)k=i
40、;for(j=i+1;j<n;j+)if( pk<pj ) k=j;if(k != i) t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; (11) 下列函數(shù)在n 個元素的一維數(shù)組中,找出最大值、最小值并傳送到調(diào)用函數(shù),請?zhí)羁铡?include <stdio.h>void find(float *p, float *max, float *min, int n)int k;float t;*max=*p; *min = *p;for(k=1;k<n;k+)t=*(p+k);if( t>*max ) *max=t;if(t<*min)
41、 *min=t;3. 寫出下列程序運行結(jié)果:(1) printf("%dn",p);main()intfun(inta,intb)int i=1,p;int f;p=fun(i,i+1);if(a>b)f=-1;f=1;return f;else if(a=b)f=0;else輸出: -1(2) 鍵盤輸入abcdef<CR>#include <stdio.h>void fun( )char c ;if(c=getchar( )!='n')fun( ) ;putchar(c);void main( ) fun( ); 輸出: fe
42、dcba(3)#include <stdio.h>#define C 5int x=1,y=C;void main( )int x;x=y+; printf("%d %dn", x,y);if(x>4) int x ; x=+y; printf("%d %dn",x,y) ; x+=y-;(4)#include <stdio.h>int c , a=4 ;func(int a , int b) c=a*b ; a=b-1 ; b+ ; return (a+b+1) ; void main( )int b=2 , p=0 ;
43、c=1 ;p=func(b , a) ;printf("%d,%d,%d,%dn", a,b,c,p) ;輸出: 4,2,8,9(5)unsigned fun6(unsigned num)unsigned k=1;do k*=num%10; num/=10; while(num);return k;void main( )unsigned n=26;printf("%d %dn",x,y);printf("%dn", fun6(n);。輸出: 12輸出: 5 67 712 6第 7 章 數(shù)組習題1. 單項選擇題(1) int a4=5
44、,3,8,9; 其中 a3 的值為 ( D )。A. 5 B. 3 C. 8 D. 9(2) 以下 4 個字符串函數(shù)中,( A ) 所在的頭文件與其他3 個不同。A. gets B. strcpy C. strlen D. strcmp(3) 以下 4 個數(shù)組定義中,( D ) 是錯誤的。A. int a7; B. #define N 5 long bN; C. char c5; D. int n,dn;(4) 對字符數(shù)組進行初始化,( B ) 形式是錯誤。A. char c1 ='1', '2', '3' B. char c2 =123;C.
45、char c3 = '1', '2', '3', '0' D. char c4 ="123"(5) 在數(shù)組中,數(shù)組名表示( A )。A. 數(shù)組第 1 個元素的首地址B. 數(shù)組第 2 個元素的首地址C. 數(shù)組所有元素的首地址D. 數(shù)組最后1 個元素的首地址(6) 若有以下數(shù)組說明,則數(shù)值最小的和最大的元素下標分別是( B ) int a12 = 1,2,3,4,5,6,7,8,9,10,11,12;A. 1,12 B. 0,11 C. 1,11 D. 0,12(7) 若有以下說明,則數(shù)值為4 的表達式是( D )
46、。int a12 =1,2,3,4,5,6,7,8,9,10,11,12; char c= a , d, g ;A. ag-c B. a4 C. a'd'-'c' D. a'd'-c(8) 設(shè)有定義:char s12 = "string" ;則 printf( "%dn",strlen(s);的輸出是( A )A. 6B. 7C. 11D. 12(9) 設(shè)有定義:char s12 = "string"則 printf("%dn ", sizeof(s);的輸出是( B
47、 )A. 6B. 7C. 11D. 12(10) 合法的數(shù)組定義是( A )A. char a = "string"B. int a5 =0,1,2,3,4,5;1。8。C. char a="string " D. char a =0,1,2,3,4,5;(11) 合法的數(shù)組定義是( B )。A. int a3 =0,1,2,3,4,5; B. int a 3 =0,1,2,3,4;C. int a23=0,1,2,3,4,5,6; D. int a23=0,1,2,3,4,5,;(12) 下列語句中,正確的是( D )。A. char a3 ='
48、;abc', '1' B. char a 3 ='abc', '1'C. char a3 ='a', "1" D. char a 3 = "a", "1"(13) 下列定義的字符數(shù)組中,輸出printf("%sn", str2) ;的輸出是( C )。static str320 = "basic", "foxpro", "windows"A. basic B. foxpro C. wi
49、ndows D.輸出語句出錯(14) 下列各語句定義了數(shù)組,其中哪一個是不正確的( C )。A. char a310="China","American","Asia"B. int x22=1,2,3,4;C. float x2 =1,2,4,6,8,10;D. int m3=1,2,3,4,5,6;(15) 數(shù)組定義為int a32=1,2,3,4,5,6,值為 6的數(shù)組元素是( B )。A. a32 B. a21C. a12 D. a232. 填空題(1) C 語言中,數(shù)組的各元素必須具有相同的類型 , 元素的下標下限為0 , 下
50、標必須是正整數(shù)、0、或者 常量 。但在程序執(zhí)行過程中,不檢查元素下標是否越界 。(2) C 語言中,數(shù)組在內(nèi)存中占一片連續(xù) 的存儲區(qū),由數(shù)組名代表它的首地址。數(shù)組名是一個常量,不能對它進行賦值運算。(3) 執(zhí)行 static int b5, a 3 =1,2,3,4,5,6;后, b4 = 0, a12 = 6。(4) 設(shè)有定義語句static int a34=1,2,3; 則 a10 值為 2, a11 值為 0,a21 的值為 0。(5) 如定義語句為char a = "windows",b = "2000",語句 printf("%s&q
51、uot;,strcat(a,b);的輸出結(jié)果為 windows2000。(6) 輸入 20 個數(shù),輸出它們的平均值,輸出與平均值之差的絕對值為最小的數(shù)組元素。請?zhí)羁铡?include <stdio.h>for(i=0; i < 20; i+) scanf( “ %f” ,&ai);#include <math.h>for(i=0;i<20;i+) pjz+=ai;void main( )pjz/=20;s=fabs(a0-pjz); float a20,pjz=0,s,t; int i,k;for(i=1;i<20;i+)if(fabs(ai-
52、pjz)<s)printf( “ %f,%f ” ,pjz,t);s=fabs(ai-pjz); t=ai;(7) 以下程序以每行10 個數(shù)據(jù)的形式輸出a 數(shù)組,請?zhí)羁?。void main( )int a50,i;printf(" 輸入 50個整數(shù) :");for(i=0; i<50; i+) scanf( "%d", &ai );for(i=1; i<=50; i+) if( i%10=0 )printf( "%3dn" , ai-1 ) ;else printf( "%3d",ai-1
53、);(8) 下面程序的功能是輸出數(shù)組s 中最大元素的下標,請?zhí)羁?。void main( )int k, p;int s = 1, -9, 7, 2, -10, 3;for(p=0,k=p; p<6; p+) if(sp > sk) k = p ;printf("%dn" ,k);3. 閱讀程序,分析程序的功能。char s80;int i ;for(i=0; i<80; i+) si=getchar( );(1)#include <stdio.h>#include <string.h>void main( )if(si='n
54、') break;2。11char str1080, c80;si='0' i=0;while(si) putchar(si+);putchar( n );分析:輸入一個字符串,以回車結(jié)束,并將其原樣輸出。(2)#include <stdio.h>#include <string.h>void main( )int i;for(i=0; i<10; i+) gets(stri);strcpy(c, str0);for(i=1; i<10; i+)if(strlen(c)<strlen(stri)strcpy(c,stri); p
55、rintf( "%sn", c);printf( "%dn", strlen (c);分析:輸入10 個字符串,輸出10 個字符串中最長的字符串和它的長度。(3)#include <stdio.h>#include <string.h>void main( )char a1080, c80;int i, j, k;for(i=0; i<10; i+)gets(ai);for(i=0; i<9; i+)k=i;for(j=i+1; j<10; j+)if(strcmp(aj,ak)<0)k=j;if(k!=i
56、)strcpy(c,ai) ;strcpy(ai, ak);strcpy(ak,c); / 字符串交換for(i=0; i<10; i+)puts(ai);分析:輸入10 個字符串,用選擇排序算法將102。4printf("%sn",a);分析: 將字符串的最后的3 個元素移到字符串首位。輸出: efgabcd個字符串按從小到大順序排列并輸出。(4) 閱讀程序,寫出運行結(jié)果。#include <stdio.h>void main( )int a6=12,4,17,25,27,16;int b6=27,13,4,25,23,16,i,j;for(i=0;i&
57、lt;6;i+) for(j=0;j<6;j+)if(ai=bj)break;if(j<6)printf("%d ",ai);printf("n");分析:按數(shù)組a 中元素順序輸出與數(shù)組b 中元素相同的數(shù)。輸出: 4,25,27,16(5) 閱讀程序,寫出運行結(jié)果。#include <stdio.h>void main( )char a8,temp; int j,k;for(j=0;j<7;j+) aj='a'+j; a7='0'for(j=0;j<3;j+)temp=a6;for(k=6;k>0;k-) ak=ak-1;a0=temp;(6) 閱讀下列程序,寫出程序運行的輸出結(jié)果。#include <stdio.h> #include <string.h> void main( )char str1 ="*"for(int i=0;
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建設(shè)工程施工合同范本(10篇)
- 2025年度醫(yī)院財務(wù)個人工作計劃
- 關(guān)于武當山的導(dǎo)游詞(33篇)
- 鋼床合同范本
- 爺爺去世了孫子的悼詞(16篇)
- 滅火器工程合同
- 2025年零售百貨項目投資可行性研究分析報告
- DB29-200-2010 天津市綠色建筑施工管理技術(shù)規(guī)程
- 2025-2030年中國電火花濾芯行業(yè)深度研究分析報告
- 基礎(chǔ)生物化學知到智慧樹章節(jié)測試課后答案2024年秋北方民族大學
- 【高中語文】《中國人民站起來了》課件40張+統(tǒng)編版高中語文選擇性必修上冊
- 手機歸屬地表格
- 項目團隊管理課件
- 《職業(yè)教育》專業(yè)知識考試復(fù)習題庫及答案
- 江西2023公務(wù)員考試真題及答案
- 《國家中藥飲片炮制規(guī)范》全文
- 財務(wù)管理實務(wù)(第二版)高職PPT完整版全套教學課件
- 中國古代快遞的產(chǎn)生與發(fā)展
- 高二物理上期期末復(fù)習備考黃金30題 專題04 大題好拿分(提升20題)
- 節(jié)事活動策劃與組織管理 節(jié)事活動概論
- 電梯安裝質(zhì)量手冊、程序文件、作業(yè)指導(dǎo)書及記錄表符合特種設(shè)備許可規(guī)范TSG07-2019
評論
0/150
提交評論