




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第 2部 分C語言程序設(shè)計習(xí)題與解答題解 1 緒 論習(xí)題一、選擇題1一個完整的可運行的C 源程序中( B)。A.可以有一個或多個主函數(shù)C.可以沒有主函數(shù)2構(gòu)成C 語言源程序的基本單位是( D )。A.子程序B.過程B.必須有且僅有一個主函數(shù)D.必須有主函數(shù)和其他函數(shù)C.文本D.函數(shù)3某C 程序由一個主函數(shù)main( ) 和一個自定義函數(shù)max( ) 組成,則該程序(D )。A*總是從max()函數(shù)開始執(zhí)行C.寫在后面的函數(shù)先開始執(zhí)行B.寫在前面的函數(shù)先開始執(zhí)行D*總是從 main()函數(shù)開始執(zhí)行4 C 語言規(guī)定,一個C 源程序的主函數(shù)名必須為( C)。D functionA programB
2、includeC main5下列說法正確的是(C )。A.在書寫C語言源程序時,每個語句以逗號結(jié)束B.注釋時,/和*號間可以有空格C.無論注釋內(nèi)容的多少,在對程序編譯時都被忽略D C 程序每行只能寫一個語句6. C語言源程序文件的后綴是(C ),經(jīng)過 Compile 后,生成文件的后綴是(A ),經(jīng)過 Build 后,生成文件的后綴是( B )。A .objB .exeC .cD .doc7 Visual C+ IDE 的編輯窗口的主要功能是(A ),輸出窗主要功是,輸出窗口的主要功能是(D ),調(diào)試器,調(diào)試器(Debug)的主要功能是(。A.建立并修改程序C.跟蹤分析程序的執(zhí)行B.將C源程序
3、編譯成目標(biāo)程序D.顯示編譯結(jié)果信息(如語法錯誤等)8在Visual C+ 開發(fā)環(huán)境下,C 程序按工程( project )進(jìn)行組織,每個工程可包括(D)C/CPP源文件,但只能有( A ) main函數(shù)。A1 個C3 個B 2 個D 1 個以上(含 1 個)在調(diào)試時沒有提示出錯,而且成功執(zhí)行并計算出了結(jié)果,只是結(jié)果等于9調(diào)試程序時,如果某個語句后少了一個分號,調(diào)試時會提示錯誤,這種情況一般稱之為(A )。而某個“計算2 的平方”的程序5 ,這種情況一般稱之為( D )。A.語法錯誤B.正常情況C.編譯器出錯D.邏輯設(shè)計錯誤二、簡答題.如何使用注釋語句使用注釋有何好處. C程序?qū)鴮懜袷接泻我?/p>
4、規(guī)定書寫格式有何好處符號名包括模塊名、常量名、標(biāo)號名、子程序名等。這些名字應(yīng)該能反映它所代表的實際東西,具有一定的意義,使其能夠見名知義,有助于對程序功能的理解.簡述C程序上機調(diào)試的一般步驟 編輯,編譯,連接,運行.簡述C程序從.c源文彳到.exe可執(zhí)行文件的生成過程習(xí)題一、選擇題. C語言中最基本的非空數(shù)據(jù)類型包括( DA.整型、浮點型、無值型C.整型、浮點型、字符型. C語言中運算對象必須是整型的運算符是(A. %B, /.若已定義x和y為int類型,則執(zhí)行了語句A. 1B, 2.若有以下程序段:題解2基本數(shù)據(jù)類型與運算符)。B,整型、字符型、無值型D.整型、浮點型、雙精度型、字符型A )
5、。C.x=1 ; y=x+3/2 ;后 y 的值是(B )。C.D.D.int a=1,b=2,c;c=b*a;則執(zhí)行后,c中的值是(0.能正確表示邏輯關(guān)系:A. a=10 or a=10 & a=0|a=10 II a=0)。C. _ok)。C. nD. zwdD. 2D. .設(shè)先有定義:int a=10;則表達(dá)式a+=a *=a的值為( DA. 10B.100C. 1000D.200.設(shè)先有定義: int a=10;則表達(dá)式(+a)+(a -)的值為(202122D. 19.有如下程序: #include main()int y=3,x=3,z=1;printf(%d%dn”,(+x,y+
6、),z+2);運行該程序的輸出結(jié)果是(A.443311.假定 x、V、z、mi勻為int型變量,有如下程序段:x=2; y=3; z=1;m=(Vx)V: x;m=(zz)&(v=z)&x|y+z&v+z(x+V)z)&(V=z)&x|(V+z)&(y+z)=1&0&3|9&9=0|1=1.如果a=1,b=2,c=3,d=4 ,則條件表達(dá)式aba:(cdc:d 的值為A.B. 2C.D.A.15.設(shè) int m=1,n=2;則m+=n的結(jié)果是( AB. 1C.D.二、填空題.表達(dá)式10/3的結(jié)果是10%3的結(jié)果是.執(zhí)行t句:int a=12;a+=a-=a*a; 后的值是-2643.以下語句的
7、輸出結(jié)果是-1short b=65535;printf(%d,b);4.以下程序的執(zhí)行結(jié)果是X=3, a=2, b=2#include main()int a,b,x;x=(a=3,b=a-);printf(x=%d,a=%d,b=%dn,x,a,b);.以下程序的執(zhí)行結(jié)果是0#includemain()float f1,f2,f3,f4;int m1,m2;f1=f2=f3=f4=2;m1=m2=1;printf(%dn,(m1=f1=f2)&(m2=f3f4);.以下程序的執(zhí)行結(jié)果是n=1#include main() float f=;int n;n=(int)f%3;printf(n=
8、%dn,n);三、簡答題2.簡述轉(zhuǎn)義字符的用途并舉實例加以說明題解3控制結(jié)構(gòu)習(xí)題一、選擇題1.結(jié)構(gòu)化程序模塊不具有的特征是(B )。A.只有一個入口和一個出口B.要盡量多使用 goto語句C. 一般有順序、選擇和循環(huán)3種基本結(jié)構(gòu)D.程序中不能有死循環(huán). C語言中,邏輯真等價于( C )。A.整數(shù)1B.整數(shù)0.以下4條語句中,有語法錯誤的是( D )。A. if (ab) m=a;C.非0數(shù)B. if(a=0) m=a;4若i , j 均為整型變量,則以下循環(huán)* ( C )。D if (a=b;)=0) m=a;for (i=0,j=2; j=1; i+,j-)printf(%5d, %dn,
9、i, j);A.循環(huán)體只執(zhí)行一次C.是無限循環(huán)5以下程序段,執(zhí)行結(jié)果為(A )。B.循環(huán)體執(zhí)行二次D.循環(huán)條件不合法a=1;doa=a*a; while(!a);A*循環(huán)體只執(zhí)行一次C.是無限循環(huán)6* C 語言中 while 與 do-while 語句的主要區(qū)別是( AB.循環(huán)體執(zhí)行二次D.循環(huán)條件不合法)。A* do-while 的循環(huán)體至少無條件執(zhí)行一次B* do-while 允許從外部跳到循環(huán)體內(nèi)C * while 的循環(huán)體至少無條件執(zhí)行一次D * while 的循環(huán)控制條件比do-while的嚴(yán)格7*語句while (!a); 中條件等價于( D )。A* a!=0B* aC * a=
10、18*以下程序的運行結(jié)果為(D )。#include main( )int i=1,sum=0;while(i=100)sum+=i;i+;printf(1+2+3+.+99+100=%d, sum); A* 5050B* 1C* 09*以下程序的運行結(jié)果為(A )。D* a=0D.程序陷入死循環(huán)#include main( )int sum,pad;sum=pad=5;pad=sum+;pad+;+pad;printf(%dn, pad);C. 5D.A. 7B, 610.以下程序的運彳r結(jié)果為( d )。#include main()int a=2,b=10;printf(a=%d,b=%
11、dn”, a,b);A. a=%2,b=%10B, a=2,b=10a=%d,b=%dD. a=%d,b=%d.為了避免嵌套的if-else語句的二義性,C語言規(guī)定else總是( C )A.與縮排位置相同的if組成配對關(guān)系B.與在其之前未配對的if組成配對關(guān)系C.與在其之前未配對的最近的if組成配對關(guān)系d.與同一彳r上的if組成配對關(guān)系.對于for (表達(dá)式1;表達(dá)式3)可理解為( B )for (表達(dá)式 1; 0 ;表達(dá)式3)for (表達(dá)式 1; 1 ;表達(dá)式3)C. for (表達(dá)式1;表達(dá)式1;表達(dá)式3)for (表達(dá)式1;表達(dá)式3;表達(dá)式3)程序填空.下面程序的功能是計算n!#inc
12、lude main ()int i, n;long p;printf ( Please input a number:n);scanf (%d, &n);p=1;for (i=2; i=n; i+)p*=i 或 p=p*iprintf(n!=%ld, p);.下面程序的功能是:從鍵盤上輸入若干學(xué)生的成績,統(tǒng)計并輸出最高和最低成績,當(dāng)輸入負(fù)數(shù)時結(jié)束輸入。#include main () float score, max, min; printf ( Please input one score:n); scanf (%f, &score); max=min=score; while (score
13、=0) if (scoremax)max=score;if (scoremin) min=score;printf ( Please input another score:n); scanf (%f, &score); printf(nThe max score is %fnThe min score is %f, max, min); 3.下面程序的功能是:計算y二的值。要求從鍵盤上輸入x的值,精度控制在內(nèi)。#include #include main () float x , y=0, fz=-1, fm=-1, temp=1; printf ( Please input the val
14、ue of x:n); scanf (%f, &x); while ( abs(temp) fz=【6】-fz*x;語句對其運算進(jìn)行判定后執(zhí)行相應(yīng)fm=fm+2; temp=fz/fm; y+=temp; printf(ny= %f, y); 4.下面的程序完成兩個數(shù)的四則運算。用戶輸入一個實現(xiàn)兩個數(shù)的四則運算的表達(dá)式,程序采用switch的運算并給出結(jié)果。#include main() float x,y; char op;printf(Please input Expression:);scanf(%f%c%f,&x,&op,&y);【7】switch (op)printf(%g%c%g=
15、%gn,【8】);9 break;case +:caseprintf(%g%c%g=%gn,x,op,y,x-y);break;printf(%g%c%g=%gn,x,op,y,x*y);break;if (【10(y=-1e-6)&(y=1e-6)printf(Division Error!n);elseprintf(%g%c%g=%gn,x,op,y,x/y);break;default:printf(Expression Error!n);casecase /:習(xí)題一、選擇題D. 3. C語言中函數(shù)形參的缺省存儲類型是(A.靜態(tài)(static )C.寄存器(register ).函數(shù)調(diào)用
16、語句function(exp1,exp2), 18)A. 0B. 1.下面函數(shù)返回值的類型是( D )。square(float x)B )。B.自動(auto )D.外部(extern )中含有的實參個數(shù)為( C )。C. 2return x*x;B,是void型D,是int型A.與參數(shù)x的類型相同C.無法確定4. C語言規(guī)定,程序中各函數(shù)之間( D )A.不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用B,允許直接遞歸調(diào)用,但不允許間接遞歸調(diào)用C.不允許直接遞歸調(diào)用,但允許間接遞歸調(diào)用D.既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用. 一個函數(shù)返回值的類型取決于( C )。A. return語句中表達(dá)式
17、的類型B.調(diào)用函數(shù)時臨時指定C.定義函數(shù)時指定或缺省的函數(shù)類型D.調(diào)用該函數(shù)的主調(diào)函數(shù)的類型.下面敘述中,錯誤的是(C )。A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套B,為了提高可讀性,編寫程序時應(yīng)該適當(dāng)使用注釋C.變量定義時若省去了存儲類型,系統(tǒng)將默認(rèn)其為靜態(tài)型變量D.函數(shù)中定義的局部變量的作用域在函數(shù)內(nèi)部.在一個源程序文件中定義的全局變量的有效范圍為(A. 一個C程序的所有源程序文件C.從定義處開始到該源程序文件結(jié)束.某函數(shù)在定義時未指明函數(shù)返回值類型,且函數(shù)中沒有A.沒有返回值C.返回一個系統(tǒng)默認(rèn)值.函數(shù)swap(int x, int y)可實現(xiàn)對C )。B.該源程序文件的全部范圍D.函
18、數(shù)內(nèi)全部范圍return語句,現(xiàn)若調(diào)用該函數(shù),則正確的說法是(D )B.返回一個用戶所希望的值D,返回一個不確定的值a和b的值分別為( B )。x和y值的交換。在執(zhí)行如下定義及調(diào)用語句后,int a=10, b=20;swap (a,b );A. 10 和 10B, 10 和 2010.下面錯誤的敘述是( D )。A.在某源程序不同函數(shù)中可以使用相同名字的變量B.函數(shù)中的形式參數(shù)是局部變量C.在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D.在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效二、程序填空1,求 s=1! +2! +3! +10!之和。程序如下:C. 20 和 10D. 20 和 20#i
19、nclude long int factorial(int n)int k=1;long int p=1;for(k=1; k=n; k+)【1】p=p*k;return p;main()int n;float sum=0;for(n=1;n=10;n+)2 sum=sum+factorial(n);printf(%n,sum);2.以下函數(shù)用以求x的y次方。double fun (double x, int y)int i;double m=1;i+ )for ( i=1; i3】=y 或 y+1m=4】m*xreturn m;三、閱讀程序并寫出運行結(jié)果.下面程序運行的結(jié)果是 2, 4,6,
20、8#include #define MAX_COUNT 4 void fun( );main() int n;for(n=1; n=MAX_COUNT; n+) fun(); void fun( )static int k;k=k+2;printf (%d, k);4.下面程序運彳T的結(jié)果是 _8, 17#include int fun(int x, int y)static int m=0, n=2;n+=m+1;m=n+x+y;return m;main()int j=4, m=1, k;k=fun(j, m);printf (%d, k);k=fun(j,m);printf(%dn, k
21、);題解 5習(xí)題一、選擇題1 、,在下列數(shù)組定義、初始化或賦值語句中,正確的是()。2:34:56A int a8; a8=100;C int x =1,2,3,4,5,6;inti, a100;則下列語句中不正確的是(ABCDfor ( i=0; i100; i+ )for ( i=0; i100; i+ )scanf (%d, &a);for ( i=0; i100; i+ )char c =GOOD;不等價的是(A char c = G, O, O, D, 0;C char c4=GOOD;char c8=GOOD;A puts (c);C printf (%s, c);a 3=0,1,
22、2,3,4,5,6,7;A 2以下程序的運行結(jié)果是(ai=i;scanf ( %d, &ai );scanf ( %d, a+i );)。BB int x5=1,2,3,4,5,6;Dint n=8; int scoren;)。char c =GOOD;D char c5= G, O, O, D, 0;則下列語句中不正確 的是( D,則 a 數(shù)組中行的大小是()。B for ( i =0; ci!=D for ( i =0; ci!= 0; i + ))。B)。0;i + )printf (%c, ci);putchar ( c );C 4D.無確定值#include void f ( int
23、 b )int i=0;while(bi=10)bi+=2;i+;main( )int i, a = 1, 5,10, 9,13, 7;f (a+1);for(i=0; i6; i+)printf(%4d , ai);B 171211137A 271211139C. 1712111397.若執(zhí)行以下程序段,其運行結(jié)果是(D )D. 1712913char c =a, b, 0, c, 0;printf ( %sn, c );A. ab cB. abC. abcD. ab8數(shù)組名作為參數(shù)傳遞給函數(shù),作為實際參數(shù)的數(shù)組名被處理為(D )。A *該數(shù)組長度B-該數(shù)組元素個數(shù)C*該函數(shù)中各元素的值D*
24、該數(shù)組的首地址9.執(zhí)行下面的程序段后,變量 k中的值為( D )。int k=3, s2=1;s0=k;k=s1*10;A, 不定值B. 33C. 3010.在定義D. 0int a54;之后;對a的引用正確的是(C )。A.a24B. a50C. a00D. a0,011.當(dāng)接受用戶輸入的含空格的字符串時,應(yīng)使用函數(shù)(B)。A.scanf()B. gets()C. getchar()D. getc()二、程序填空1.以下程序用來檢查二維數(shù)組是否對稱(即對所有 i , j都有aij=aji)#include main ()int a44=1,2,3,4, 2,2,5,6, 3,5,3,7, 8
25、,6,7,4;int i, j, found=0;for ( j=0; j4; j+ )for (i=0; i4; i+ )if (1 1aij!=aji )found=【2】1;break;if (found)break;if (found)printf ( 不對稱 n);elseprintf(對稱 n);5個數(shù)。2.以下程序是用來輸入 5個整數(shù),并存放在數(shù)組中,找出最大數(shù)與最小數(shù)所在的下標(biāo)位置,并把兩者對調(diào),然后輸出調(diào)整后的#include main ()int a5, t, i, maxi, mini;for ( i=0; i5; i+ )scanf ( %d”, &ai);mini=m
26、axi=【3】0;for ( i=1; iai) mini=i;if ( aiamaxi)5】 maxi=iprintf (最小數(shù)的位置是 :3dn, mini );printf (最大數(shù)的位置是:3dn, maxi );t=amaxi;【6】amaxi=amini;amini=t;printf ( 調(diào)整后的數(shù)為:);for ( i=0; i5; i+ )printf ( %d , ai);printf (n);3,給定一 3 x 4的矩陣,求出其中的最大元素值,及其所在的行列號:main()int i,j,row=0,colum=0,max;static int a34=123,4,9,8,
27、7,6,10,-10,-4,4;【7】max=a00;for(i=0;i=2;i+)for(j=0;jmax)【9】max=aij; row=i;colum=j;printf(max=%d,row=%d,colum=%d,max,row,colum);4.下述函數(shù)用于確定給定字符串的長度,請完成程序。strlen ( chars)int i=0;while (【10 si!= 0return (【11i);5.以下程序的功能是從鍵盤上輸入若干個字符(以回車鍵作為結(jié)束)組成一個字符數(shù)組,然后輸出該字符數(shù)組中的字符串,請?zhí)羁?include main () char str81; int i;fo
28、r ( i=0; i80; i+ ) stri=getchar( ); if (stri= n)break; stri= 0; 【12】i=0;while ( stri!= 0 )putchar(13 stri+);三、閱讀程序并寫出運行結(jié)果.寫出下列程序的運行結(jié)果并分析。#include main() static int a45=12340,220,0,0,3,4,5,0,0,6,0,0,0,0; int j,k;for (j=0;j4;j+) for(k=0;k5;k+) if (ajk=0) break; printf( %d,ajk); printf(n);.寫出下列程序的運行結(jié)果并
29、分析。#include main ( )int a66,i,j;for (i=1 ;i6 ; i+)for ( j=1;j6;j+)aij= i*j;for (i=1 ;i6 ; i+)for ( j=1;j6;j+)printf( %-4d ,aij ) ;printf(n);3寫出下列程序的運行結(jié)果并分析。#include main ( )int a =1,2,3,4,i,j,s=0;j=1;for ( i=3;i=0;i- )s=s+ai*j;j=j*10;printf(s=%dn,s);4寫出下列程序的運行結(jié)果并分析。#include main( )int a=0,2,5,8,12,1
30、5,23,35,60,65;int x=15,i,n=10,m;i=n/2+1;m=n/2;while(m!=0)if(xai)i=i+m/2+1;m=m/2;elsebreak;printf(place=%d,i+1);5寫出下列程序的運行結(jié)果并分析。#include main( )int a=1,2,3,4,i,j,s=0;j=1;for(i=3;i=0;i-)s=s+ai*j;j=j*10;printf(s=%dn,s);6寫出下列程序的運行結(jié)果并分析。#include main( )char str=1a2b3c;int i;for(i=0;stri!=0;i+)if(stri=0&s
31、tri=9)printf(%c,stri);printf(n);四、編程題1編一程序,用簡單選擇排序方法對10 個整數(shù)排序(從大到?。?。排序思路為:首先從n 個整數(shù)中選出值最大的整數(shù),將它交換到第一個元素位置,再從剩余的n-1 個整數(shù)中選出值次大的整數(shù),將它交換到第二個元素位置,重復(fù)上述操作n 次后,排序結(jié)束。2編寫一程序,實現(xiàn)兩個字符串的連接(不用strcat( ) 函數(shù))。習(xí)題解答3:三、閱讀程序并寫出運行結(jié)果4:答案是:place=65:答案是:s=12346:答案是:123四、編程題1編一程序,用簡單選擇排序方法對10 個整數(shù)排序(從大到?。?。排序思路為:首先從n 個整數(shù)中選出值最大的
32、整數(shù),將它交換到第一個答案是:1234答案是:2345468106912158121620101520251:2:12345答案是:s=022n 次后,排序結(jié)束。元素位置,再從剩余的n-1 個整數(shù)中選出值次大的整數(shù),將它交換到第二個元素位置,重復(fù)上述操作/*/#include#define N 10void smp_selesort(int r ,int n)/*簡單選擇排序*/ int i,j,k;int temp;for(i=0;in;i+)for(j=i+1;jn;j+)if(rirj)temp =ri;ri=rj;rj= temp;main( )int i,aN;printf(請輸入d
33、個整數(shù):n,N);for(i=0;iN;i+)scanf(%d,&ai);smp_selesort(a,N);/* 調(diào)用排序函數(shù) */printf( 排序后的輸出為: n);for(i=0;iN;i+)printf(%5d,ai);2編寫一程序,實現(xiàn)兩個字符串的連接(不用strcat( ) 函數(shù))。/*/#includemain( )char str150,str250;int i=0,j=0;printf(請輸入字符串1: );scanf(%s,str1);printf(請輸入字符串2: );scanf(%s,str2);while(str1i!=0) i+;while(str1i+=str
34、2j+)!=0);printf( 連接后的字符串為: %s,str1);題解 6 指 針習(xí)題一、選擇題1若已定義int a=8, *p=&a; ,則下列說法中不正確的是(D )。A. *p = a=8B* p=&aC* *&a=*pD *&a=&*a2若已定義short a2=8,10,*p=&a0; ,假設(shè) a0 的地址為2000,則執(zhí)行p+后,指針p 的值為( C )。A 2000B 2001C 2002D 20033若已定義int a8=0,2,3,4,5,6,7,8 ;*p=a; ,則數(shù)組第2 個元素“2 ” 不可表示為(C)。A a1B p1C *p+1D *(p+1)4若已定義in
35、t a,*p=&a,*q=&p; ,則不能表示變量 a 的是(C )。A *&aB *pC *qD *q5設(shè)已定義語句int*p10, (*q)10; ,其中的p 和 q分別是( D)。10 個指向整型變量的指針 指向具有10 個整型變量的函數(shù)指針 一個指向具有10 個元素的一維數(shù)組的指針 具有 10 個指針元素的一維數(shù)組A.、B.、C、D.、)。6若已定義int a24= 80, 81, 82, 83 , 84, 85, 86, 87 , (*p)4=a;則執(zhí)行 p+; 后, *p 代表的元素是( CA 80B 81C 84D 857執(zhí)行語句char a10=abcd; *p=a ;后,(p
36、+4) 的值是(B)。A abcdB 0C dD.不能確定8設(shè)已定義int a32=10,20,30,40,50,60;和語句 (*p)2=a; ,則 *(*(p+2)+1) 的值為( A)。9以下程序的運行結(jié)果是(A 60B 30C 50D不能確定C )。#include main(int a43= 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12;int *p4, i;for(i=0; i4; i+)pi=ai;printf(%2d,%2d,%2d,%2dn, *p1, (*p)1, p32, *(p3+1);A4, 4, 9, 8B.程序出錯C 4, 2,12,11D
37、1, 1, 7, 510以下各語句或語句組中,正確的操作是()。Achar s4=abcde;Bchar *s; gets(s);Cchar *s; s=abcde;D char s5; scanf(%s, &s);)。11以下程序的運行結(jié)果是(#include main (char *s=xcbc3abcd;int a, b, c, d;a=b=c=d=0;for ( ; *s ; s+ )switch ( *s )casec:c+;caseb:b+;default :d+;casea:a+;break;printf(a=%d,b=%d,c=%d,d=%dn, a, b, c, d);ACa
38、=a的個數(shù)、 b=b,c 的個數(shù)、 c=c 的個數(shù)、a=1,b=5,c=3,d=8a=9,b=5,c=3,d=812若有以下程序:#include main ( int argc, char *argv )d=非a的個數(shù))B a=1,b=2,c=3,d=3D a=0,b=2,c=3,d=3while ( -argc )printf ( %s, argvargc);printf ( n);該程序經(jīng)編譯和連接后生成可執(zhí)行文件。現(xiàn)在如果在A. AABBCCB. AABBCCSDOSS示符下鍵入 S AA BBCC后回車,則輸出結(jié)果是( C )C. CCBBAAD. CCBBAAS13.若有定義 ch
39、ar *language =FORTRAN, BASIC, PASCAL, JAVA, C;則language2的值是:一個字符一個地址一個字符串D.不定值14.若有以下定義和語句,則對a數(shù)組元素地址的正確引用是( C )int a23, (*p)3;P=a;A.*(p+2)B.p2C.p1+1D. (p+1)+215.若有 int max( ), (*p)();,為使函數(shù)指針變量p指向函數(shù) max,正確的賦值語句是(A )。A.p=max;B. *p=max;C. p=max(a, b);D. *p=max(a, b);16.若有定義int a35, i, j;(且 0V i3, 0 :j5
40、),則 aij不正確的地址表示是( D )。A.&aijB. ai+jC. *(a+i)+jD. *(*(a+i)+j)17.設(shè)先有定義:char s10;char *p=s;則下面不正確的表達(dá)式是( B )A. p=s+5B* s=p+s18.設(shè)先有定義:char *s;則下面正確的表達(dá)式是(B )。A. s=computerC. *s=computer二、程序填空1,定義 compare ( char *s1, char *s2 )C.s2=p4D. *p=s0B. *s=computerD. *s=c函數(shù),實現(xiàn)比較兩個字符串大小的功能。以下程序運行結(jié)果為-32 ,請用正確答案填空。#in
41、clude main ()printf ( %dn, compare ( abCd, abc);compare ( char *s1, char *s2 )while ( *s1&*s2&【1】*s1=*s2)s1+; s2+; return *s1-*s2; .以下程序用來輸出字符串。#include main () char *a尸for, switch, if, while;char *p;for ( p=a; pa+4; p+ ) printf ( %sn,2】*p);.以下程序的功能是從鍵盤上輸入若干個字符(以回車鍵作為結(jié)束)組成一個字符數(shù)組,然后輸出該字符數(shù)組中的字符串,請?zhí)羁?i
42、nclude main () char str81,*p; int i;for (i=0;i80;i+) stri=getchar( ); if (stri=n ) break; stri= 0;【3】p=str;while(*p) putchar(*p【4+);.下面是一個實現(xiàn)把t指向的字符串復(fù)制到s的函數(shù),請完成程序。strcpy ( char*s, char *t )while ( (【5】*s+ = *t+ ) !=0);.下面count函數(shù)的功能是統(tǒng)計子串substr在母串str中出現(xiàn)的次數(shù)。count(char *str, char *substr) int i,j,k,num=0
43、;for (i=0;【6stri!=0; i+)for (【7】j=i, k=0 ; substrk=strj; k+, j+)if (substr【8】k+1=0)num+;break; return(num);.下面connect函數(shù)的功能是將兩個字符串s和t連接起來。connect (char *s, char *t)char *p=s;while (*s)9 s+;while (*t)*s=10*t;s+;t+;*s=0;【11】return (p);三、閱讀程序并寫出運行結(jié)果.運行如下程序并分析其結(jié)果。#include main ()void fun ( char *s );stat
44、ic char str =123;fun ( str );void fun ( char *s )if ( *s )fun ( +s );printf ( %sn,-s );2運行如下程序并分析其結(jié)果。#include void sub ( int *x, int y, int z )*x = y - z;main ( )int a, b, c;sub ( &a, 10, 5 );sub ( &b, a, 7 );sub ( &c, a, b );printf ( %d,%d,%dn, a, b, c );3下列程序的功能是保留給定字符串中小于字母n 的字母。請寫出其結(jié)果并分析。#includ
45、e void abc ( char *p )int i, j;for ( i=j=0; *(p+i)!=0; i+ )if ( *(p+i)n )*(p+j)=(p+i);j+;*(p+j)=0;main( )char str =morning;abc ( str );puts ( str );4運行如下程序并分析其結(jié)果。#include main ( )char *a4=Tokyo,Osaka ,Sapporo ,Nagoya ;char *pt;pt=a;printf(%s,*(a+2);5*設(shè)如下程序的文件名為,編譯并連接后在DOS提示下鍵入命令:myprogram one two th
46、ree ,則執(zhí)行結(jié)果是什么。#include main (int argc, char *argv )int i;for (i=1; iargc; i+)printf (%s%c, argvi, (iargc-1) : n);四、編程題1編一程序,求出從鍵盤輸入的字符串的長度。3輸入一個字符串,按相反次序輸出其中的所有字符。5編寫一個密碼檢測程序,程序執(zhí)行時,要求用戶輸入密碼(標(biāo)準(zhǔn)密碼預(yù)先設(shè)定),然后通過字符串比較函數(shù)比較輸入密碼和標(biāo)準(zhǔn)密碼是否相等。若相等,則顯示“口令正確”并轉(zhuǎn)去執(zhí)行后繼程序;若不相等,重新輸入, 3 次都不相等則終止程序的執(zhí)行。習(xí)題解答三、閱讀程序并寫出運行結(jié)果1運行結(jié)果是
47、:3231232運行結(jié)果是:5, -2,73答案是:mig4答案是:Sapporo5答案是:one two three四、編程題1編一程序,求出從鍵盤輸入的字符串的長度。/*/#include#include main( ) char str50,*p;int length=0;printf( 請輸入一個字符串 n);gets(str);p=str;while(*p!=0) p+; length+; printf( 輸入的字符串的長度為 %dn,length);3輸入一個字符串,按相反次序輸出其中的所有字符。/*/#include#include main ( ) char str81,*p;
48、int i;for ( i=0;i=0 ) putchar(*(p+i) );5編寫一個密碼檢測程序,程序執(zhí)行時,要求用戶輸入密碼(標(biāo)準(zhǔn)密碼預(yù)先設(shè)定),然后通過字符串比較函數(shù)比較輸入密碼和標(biāo)準(zhǔn)密碼是否相等。若相等,則顯示“口令正確”并轉(zhuǎn)去執(zhí)行后繼程序;若不相等,重新輸入, 3 次都不相等則終止程序的執(zhí)行。/*/#include #include #include /* 字符串比較函數(shù) */int strcompare(char *str1,char *str2)while(*str1=*str2 & *str1!=0 & *str2!=0)str1+;str2+;return *str1-*s
49、tr2;main( )char password20=c program;char input_pass20;int i=0;while(1)printf( 請輸入密碼 n);gets(input_pass);if(strcompare(input_pass,password)!=0)printf( 口令錯誤,按任意鍵繼續(xù));elseprintf( 口令正確! );break;/* 輸入正確的密碼,中止循環(huán) */getch( );i+;if(i=3) exit(0);/* 輸入正確密碼所進(jìn)入的程序段*/* 定義字符數(shù)組input_pass*/* 輸入密碼 */題解 7 結(jié)構(gòu)與共用/* 檢驗密碼 */* 輸入 3 次錯誤的密碼,退出程序 */習(xí)題一、選擇題1下面正確的敘述的是( D )。A.結(jié)構(gòu)一經(jīng)定義,系統(tǒng)就給它分配了所需的內(nèi)存單元B.結(jié)構(gòu)體變量和共用體變量所占內(nèi)存長度是各成員所占內(nèi)存長度之
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)化學(xué)課程標(biāo)準(zhǔn)試題及答案
- 航空警示球為什么用玻璃鋼材質(zhì)
- 2025年歷史文化與社會發(fā)展試卷及答案
- 2023年全國生物聯(lián)賽試題及答案
- 商品加工購銷合同協(xié)議
- 戀愛贈予協(xié)議合同書模板
- 模板代理協(xié)議合同協(xié)議
- 員工追償協(xié)議書范本
- 和律師簽合同協(xié)議
- 商業(yè)美陳設(shè)計合同協(xié)議
- 2025年護(hù)士執(zhí)業(yè)資格考試題庫基礎(chǔ)護(hù)理學(xué)專項:新生兒護(hù)理操作要點試題
- 固體化學(xué)導(dǎo)論全套課件
- 2025山西杏花村旅游開發(fā)有限公司招聘50人筆試參考題庫附帶答案詳解
- 正式展會合同協(xié)議
- 2025屆高三語文4月名校聯(lián)考作文匯編(審題+立意+范文)
- 工程甩項合同協(xié)議
- 費用開支標(biāo)準(zhǔn)管理制度
- 期中模擬卷(新疆專用)-2024-2025學(xué)年八年級英語下學(xué)期核心素養(yǎng)素質(zhì)調(diào)研模擬練習(xí)試題(考試版)A4
- 甲狀旁腺切除術(shù)后的護(hù)理措施
- GB/T 5453-2025紡織品織物透氣性的測定
- 2024慢性鼻竇炎診斷和治療指南解讀課件
評論
0/150
提交評論