程序設(shè)計基礎(chǔ)(c)作業(yè)_第1頁
程序設(shè)計基礎(chǔ)(c)作業(yè)_第2頁
程序設(shè)計基礎(chǔ)(c)作業(yè)_第3頁
程序設(shè)計基礎(chǔ)(c)作業(yè)_第4頁
程序設(shè)計基礎(chǔ)(c)作業(yè)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《程序設(shè)計基礎(chǔ)(C)》作業(yè)

第1章c語言的基本構(gòu)成

一、選擇題

1.(A)是構(gòu)成C語言程序的基本單位。

(A)函數(shù)(B)過程

(C)子程序(D)文件

2.(C)是C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字。

(A)Float(B)signed

(C)integer(D)Char

3.以下選項中不合法的用戶標(biāo)識符是(A)。

(A)abc.c(B)file

(C)Main(D)PRINTF

4.以下選項中不合法的用戶標(biāo)識符是(C)。

(A)123(B)printf

(C)A$(D)Dim

5.合法的C語言長整型常數(shù)是(A)。

(A)0L(B)5712700

(C)0.054838743(D)2.1869el0

6.C語言中,要求運算數(shù)必須是整型的運算符是(A)。

(A)%(B)/

(C)<(D)!

7.以下選項中正確的整型常量是(A)。

(A)12.(B)—20

(C)1,000(D)0458

8.以下選項中不正確的實型常量是(B)。

(A)2.607E-1(B)0.8103e2.

(C)77.77(D)456e-2

9.C語言中運算對象必需是整型的運算符是(D)。

(A)\(B)+

(C)*(D)%

二、程序調(diào)試題

1.編輯、調(diào)試以下程序

步驟1:在VisualC++環(huán)境下新建文件可用[開始]f[程序]—[MicrosoftVisualC++6.0]-

[MicrosoftVisualC++6.0]—[文件]-[新建]—[文件]-[C++SourseFile],輸入文件

名exl-l.c,程序代碼如下:

#include<stdio.h>/*文件預(yù)處理,包含標(biāo)準(zhǔn)輸入輸出庫,程序可調(diào)用輸入、輸出函

數(shù)*/

intadd(intx,inty)

intz;

z=x+y;

returnz;

}

intmain()

{

intadd(int,int);/*函數(shù)的說明,告訴系統(tǒng)在主函數(shù)中要調(diào)用add函數(shù)*/

inta,b,c;/*變量的定義*/

scanf("%d%d\n”,&a,&b);

c=add(a,b);/*函數(shù)調(diào)用*/

printf("%d+%d=%d\n”,a,b,c);

/*調(diào)用系統(tǒng)輸出函數(shù)printf,%(1為格式控制符,依次用后面的變量值填充,以整數(shù)形

式輸出*/

請思考文件exl-l.c由幾個函數(shù)構(gòu)成?調(diào)用了那幾個系統(tǒng)函數(shù)?此程序中用到了哪幾個

保留字?哪幾個用戶自定義標(biāo)識符?

保留字:int,標(biāo)識符:add,main,scanf,printf,a,b,c0

步驟3:

編譯并運行程序,程序運行時輸入兩個整數(shù),2040,觀察程序運行的結(jié)果。20+40

=60

2.編輯、調(diào)試以下程序

步驟1:在VisualC++環(huán)境下新建文件可用[開始]f[程序]一[MicrosoftVisualC++6.0]

[MicrosoftVisualC++6.0]—[文件]f[新建][文件]-[C++SourseFile],輸入文

件名exl-2.c

步驟2:在文本編輯器中輸入以下C程序

#include<stdio.h>/*文件預(yù)處理,包含標(biāo)準(zhǔn)輸入輸出庫,程序可調(diào)用輸入、輸出函

數(shù)*/

#include<ex1-2-2.c>

intmain()

(

intand(int,int);/*函數(shù)的說明,告訴系統(tǒng)在主函數(shù)中要調(diào)用and函數(shù)*/

intor(int,int);/*函數(shù)的說明,告訴系統(tǒng)在主函數(shù)中要調(diào)用and函數(shù)*/

inta,b,c;/*變量的定義*/

scanf("%d%d”,&a,&b);

c=and(a,b);/*函數(shù)調(diào)用*/

printf("%d&&%d=%d\n”,a,b,c);

/*調(diào)用系統(tǒng)輸出函數(shù)printf,%d為格式控制符,依次用后面的變量值填充,以整數(shù)形式

輸出*/

c=or(a,b);/*函數(shù)調(diào)用*/

printf("%d||%d=%d\n”,a,b,c);

步驟3:[文件]-[新建]-[文件]-[C++SourseFile],輸入文件名exl-2-2.c,源程序代

碼為:

intand(inta,intb)

{

intc;

c=a&&b;

returnc;

}

步驟4:[文件]-[新建]-[文件]-—[C++SourseFile],輸入文件名exl-2-3.c,源程序代碼為:

intor(inta,intb)

intc;

c=a||b;

returnc;

}

步驟5:點擊編譯圖標(biāo),編譯程序1_2.c

步驟4:點擊執(zhí)行圖標(biāo)!,執(zhí)行程序1-2.C,當(dāng)程序運行時,鍵盤輸入2040,按回車。

2040

20&&40=1

20||40=1

您可以輸入其它的整數(shù),觀察程序的執(zhí)行結(jié)果。

第2章輸入輸出程序設(shè)計

1.用printf輸出一個中空的五角星。

2.仿照例子2.2,定義一個字符數(shù)組,從鍵盤輸入一字符串,然后輸出的程序。

3.從鍵盤輸入十六進制整數(shù),轉(zhuǎn)化為八進制數(shù)輸出。

4.只定義兩個整型數(shù)據(jù)并賦值,實現(xiàn)兩個整型數(shù)的互換。

5.從鍵盤上輸入一個整數(shù),分別輸出8、16進制數(shù)的程序。

6.從鍵盤上輸入一個整數(shù),分別輸出它的個位數(shù),十位數(shù),百位數(shù)。

7.以下程序輸出結(jié)果是()。

#include<stdio.h>

voidmain()

(

inti=010,j=10;

printf("%d,%d\nn,++i,j一一);

)

8.運行程序,屏幕提示“您是一個學(xué)生嗎",您輸入'y'或H進行回答,屏幕輸出您的選項。

9.從鍵盤輸入一個角度x,求10*sin(x)的值。

第3章循環(huán)程序設(shè)計

1.執(zhí)行語句for(i=0;i++<5;);后,變量i的值是(b)。

(A)6(B)5

(C)4(D)0

2.若inti=0;下列語句計算1+2+…+10的是()o

(A)while(s+=i);(B)for(;i<=10;i++,s+=i)

(C)for(;i<=10;s+=i,i++)(D)for(;i<9;i++,s+=i)

3.若inti,x;貝(J語句for(i=x=0i<9;i+=++x);的循環(huán)體要執(zhí)行()次。

10.以下不是死循環(huán)的語句是()o

(A)for(;;x++);(B)while(1){x++};

(C)do{i++;}while(1)(D)for(x=-10;x++;)

4.以下for語句的循環(huán)次數(shù)是多少?

inti,j=3;

for(;i=j;i一,j一)printf("%d",i);

5.下面的語句顯示輸出6行6列的整數(shù)數(shù)組h的主對角線上的所有元素,請補充完整:

for(inti=0;i<;)

printf("%d”,)

6.寫出以下程序運行的結(jié)果,此程序?qū)崿F(xiàn)了什么功能?

#include<stdio.h>

voidmain()

{inta[10]={2,4,0,-5,10,6,-8,9,6,7};

inti,count=0;

for(i=0;i<10;i++)

if(a[i]==0)count++;

elsecontinue;

printf("%d\n",count);

)

7.寫出以下程序的功能。

#include<stdio.h>

voidmain()

(

inta[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;

for(k=0;k<10/2;k++)

{

tmp=a[k];

a[k]=a[10-k-l];

a[10-k-l]=tmp;

)

)

8.寫出以下程序運行后的輸出結(jié)果。

#include<stdio.h>

voidmain()

(

inti,j;

for(i=0;i<6;i++)

for(j=0;j<i;j++)

printf(nn);

for(j=0;j<2*(5-i)-1;j++)

printf(H*n);

printf(n\nH);

)

)

#include<stdio.h>

#include<math.h>

voidmain()

(

intizj;

for(i=4;i>-5;i--)

(

for(j=0;j<fabs(i);j++)

printf(nn);

for(j=0;j<2*(5-fabs(i))-1;j++)

printf(n*n);

printf("\n");

)

)

9.請改正下列程序的錯誤,改正后的程序?qū)懺谟疫叺目瞻滋?,并上機調(diào)試檢驗。

(1)

#include<stdio.h>

voidmain()

I

inti,s;

i=l;s=0;

while(i<=100);

s=s+i;

i++;

printf("1+2+3+….+99+100=%d\n”,s);

I

(2)

#include<stdio.h>

voidmain()

I

inti,s;

i=l;

s=0;

while(i<=100)

s=s+i;

i++;

printf("1+2+3+....+99+100=%d\n,,,s);

I

(3)

#include<stdio.h>

voidmain()

inti=l,s;

while(i<=100);

i++:

}

printf(“1+2+3+....+99+100=%d\n,5,s);

)

10.輸入一個基數(shù),例如輸入9,輸出為:求1*3*……*9的值。輸出為:1*3*5*7*9=945

11.輸入一個5?10之間的整數(shù)n,求l!+2!+3!+...+n!。例如輸入5,輸出為:1!+2!+3!+...+5!

=153

12.在屏幕上輸出以下內(nèi)容

1

12

123

1234

12345

123456

1234567

12345678

123456789

13.求2+4+6+....+98+100的和,用多種for表達式來完成。

14.輸入一行字符,統(tǒng)計它有多少個字母?

第4章分支程序設(shè)計

1.輸入若干整數(shù)給X,使用if語句輸出x的絕對值,當(dāng)輸入0時結(jié)束。

2.輸入一批數(shù),輸出比相鄰數(shù)大的數(shù),當(dāng)輸入0時結(jié)束。

3.將輸入字符的大寫字符轉(zhuǎn)換成小寫字符輸出,小寫字符原樣輸出。

4.輸入一批字符,按回車時結(jié)束,統(tǒng)計小寫字符、大寫字符、數(shù)字字符、或其它字符的個

數(shù)。

5.編寫程序,計算分段函數(shù):

x+5x<1

2x1<x<10

3x>10

6.根據(jù)輸入的百分制按五分制的成績輸出。百分制與五分制之間的關(guān)系見下表。

百分制五分制

90?1005

80?894

70?793

60?692

<601

7、用switch完成:讀入一個實數(shù)x,再輸入一整數(shù),若輸入是1,則計算sin(x),若輸入2,

則計算cos(x),若輸入3,則計算tan(x),若輸入其他值,則顯示錯誤信息。

8、用switch完成:輸入星期1到星期5,輸出它們對應(yīng)的顏色

星期1:blue

星期2:red

星期3:white

星期4:yellow

星期5:green

9、用switch完成:從鍵盤輸入A、B、C、D四個等級中的一個,轉(zhuǎn)化輸出

等級輸出

A優(yōu)秀

B良好

C中等

D及格

E不及格

第5章數(shù)組及其應(yīng)用

1.從鍵盤輸入12個數(shù),分別為:900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小數(shù)。

2.采用遍歷查找,在數(shù)組26區(qū)同={2,3,20,58,72,76,78,87,90,900}中,找出偶數(shù)。

3.采用折半查找,在數(shù)組2母17固={2,3,20,58,72,76,78,87,90,900}中,找到87,然后進行刪

除。

第6章函數(shù)及其應(yīng)用

練習(xí)與實踐

一、閱讀程序,寫出程序運行的結(jié)果。

1.寫出以下程序的執(zhí)行結(jié)果。

#include<stdio.h>

floataver(inta[])

(

intk,sum=0;

floatave;

for(k=0;k<l0;k++)

sum+=*(a+k);

ave=(float)sum/10;

return(ave);

)

intmain()

(

floatave;

staticb[]={78,89,98,76,78,45,88,81,92,85};

ave=aver(b);

nn

printf(ave=%f\nrave);

}

提示:數(shù)組b的首地址傳遞給形參a,*(a+k)就是數(shù)組元素b[k].

2.閱讀程序,寫出程序的執(zhí)行結(jié)果。

#includeb<stdio.h>

ac

voiidtbcharstr[1)

na

for(a=b=0;str[a]!=*\0*;a++)

if(str[a]!=*cz)

str[b++]=str[a];

str[b]=*\0*;

}

intmain()

{

charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);

return0;

提示:數(shù)組str的首地址傳遞給形參str,str[a]就是實參中的數(shù)組元素str[a],當(dāng)

數(shù)組元素不為,c,時進行復(fù)制。

3.寫出以下程序的執(zhí)行結(jié)果。

#include<stdio.h>

intsort(intb[],intn,intx)

(

intk;

for(k=n-l;k>=0;k一一)

if(b[k]<x)

b[k+l]=b[k];

else

break;

b[k+1]=x;

return0;

}

intmain()

{

inti,j;

staticinta[5]={8,5,4,1,6};

intb[8];

b[0]=a[0];

for(i=l;i<5;i++)

(

sort(b,i,a[i]);

for(j=0;j<=i;j++)

printf(n%dH,b[i]);

printf(n\nn);

}

return0;

}

提示:循環(huán)體中

if(b[k]<x)

b[k+l]=b[k];

else

r一ak,

如果b[k]<;成立,執(zhí)行語句b[k+l]=b[k];表示數(shù)組元素b向后移,不滿足時插入X,

即從大到小排序。

4.寫出以下程序的執(zhí)行結(jié)果。

#include<stdio.h>

intfun(intx)

{intp;

if(x==0||x==l)

return3;

else

p=x-fun(x-2);

returnp;

}

intmain()

(

printf("\n%d",fun(9));

return0;

提小:fun(9)=9-fun(7)z...,fun(1)=3

5.寫出以下程序的執(zhí)行結(jié)果,并說明其作用是什么?

#include<stdio.h>

intf(intn)

(

if(n>=10)

f(n/10);

printf("%d”,n%8);

return0;

)

intmain()

(

f(1234);

printf(n\n");

return0;

)

提示:在函數(shù)f中,程序運行借助了堆棧,依次入棧的數(shù)據(jù)分別為1234、123、12,最后

n=l,n對8取余輸出,然后數(shù)據(jù)依次出棧對8取余輸出。

二、程序設(shè)計

1.編寫一個函數(shù),計算x的n次的平方。

提示:for(y=1,i=O;i<n;i++)

y=y*x;

2.編寫一個函數(shù),計算對角線上元素之和。

提示:for(s=0,i=0;i<n;i++)

for(j=0;j<n;j++)

if(i==j)

s=s+a[i][j];

3.編寫一個函數(shù)intinvert(charstr[]),將一個字符串的內(nèi)容顛倒過來。

提示:先求字符串str的長度n,for(i=0標(biāo)n/2;i++){a[i]與a[n-l-i]交換}

4.編寫函數(shù),刪除字符串中,從指定位置m開始的n個字符。刪除成功,函數(shù)返回被刪除

字符串;否則返回空的值。

提示:for(k=m,i=0;str[i];i++)

str[m+i]=str[m+n+i];

str[m+i]='\O';

5.編寫一個程序,從鍵盤輸入的字符串,刪去非數(shù)字字符,轉(zhuǎn)換成整型數(shù)輸出。

提示:for(s=0,i=0,j=0;str[i];i++)

if(str[i]>=,0,&&str[i]<=,9,)

s=s*10+str[i]-'0';

6.用遞歸的方法編寫一個函數(shù)sum(intn),求1至n的累加和。

提示:f(n)=n+f(n-l)

第7章變量存儲類型與多文件系統(tǒng)

1.寫出以下程序的執(zhí)行結(jié)果。

#include<stdio.h>

intx;

voidfun()

(

printf("%d”,x++);

)

voidmain()

(

intx=l;

(

externintx;

printf(”%d,“,++x);

)

fun();

)

提示:在函數(shù)fun中及語句塊

(

externintx;

printf(n%d,",++x);

)

中使用的x是外部變量,在語句塊:

if(x==l)

{intx=2;

printf(”%d,”,x++);

}

中使用的是剛剛定義x=2的變量。

2.寫出以下程序的執(zhí)行結(jié)果。

#include<stdio.h>

intkk()

{intx=4;

staticinty;

y=5;

x*=2;

y*=2;

return(x+y);

)

voidmain()

{intj,s=0;

for(j=0;j<2;j++)

s=kk();

printf("s=%d\n",s);

)

提示:雖然兩次調(diào)用函數(shù)kk(),但變量定義語句staticinty;只執(zhí)行一次,而變量賦值語句

每次都要執(zhí)行。

3.寫出以下程序的執(zhí)行結(jié)果。

#include<stdio.h>

intt()

(

intx=0;

staticinty=4;

y+=++x;

returnx+y;

)

voidmain()

{

printf("%d\n",(t(),t()));

)

提示:語句printf("%d\n",(t(),t()));中(t(),t())屬于“,”號表達式,即兩次調(diào)

用函數(shù)t(),在函數(shù)七()中,y為靜態(tài)內(nèi)部變量,因而語句staticinty=4;只執(zhí)行一次。

第8章文件

1.下述程序從終端讀入文本(用$作為文本結(jié)束標(biāo)志)復(fù)制到一個名為out.dat的新文件中,

請補全程序。

#include<stdio.h>

intmain()

(

FILE*fp;

charex;

if((fp=fopen(£1)))==NULL)

return0;

while((cx=getchar())!=,$,)

fputc(ex,fp);

(2);

return1;

)

提示:第1個空格是打開文件讀,第2個空格是關(guān)閉文件。

2.下面的程序用來統(tǒng)計文件中字符的個數(shù),請補全程序。

#include<stdio.h>

intmain()

{FILE*fp;

longnum=0;

if((fp=fopen("fname.dat",nr"))==NULL)

(

printf("Can'topenfi1e!\n");

exit(0);

)

while((lj)

fgetc(fp);

num++;

}

printf(”num=%d\n”,num);

fclose(fp);

return1;

)

提示:第1個空格表示文件沒有結(jié)束,循環(huán)將持續(xù)。

3.以下程序由終端鍵盤輸入一個文件名,然后把從終端鍵盤輸入的字符,依次存放到該文件

中,用#作為結(jié)束輸入的標(biāo)志,請補全程序。

#include<stdio.h>

voidmain()

(

FILE*fp;

charch,fname[10];

printf("Inputthenameoffi1e\n");

gets(fname);

if{(fp=)==NULL)

{

printf("Cannotopen\n");

exit(0);

)

printf("Enterdata\n");

while((ch=getchar())!=*#*)

fputc(,fp);

fclose(fp);

)

提示:文件名是從鍵盤讀入的,因而文件名是用變量表示的,文件是打開寫。

4.下述程序從一個二進制文件中讀入結(jié)構(gòu)體數(shù)據(jù),并把讀出的數(shù)據(jù)顯示在屏幕上。請補全

程序。

#include<stdio.h>

structrec

{inta;

floatb;};

voidrecout(FILE*fp)

{structrecr;

do

{fread((1),sizeof(structrec),(2),fp);

if((3))

(4);

printf("%d,%fn,r.a,r.b);

}while(1);

)

voidmain()

{FILE*fp;

fp=fopen("file.dat","rb");

recout(fp);

fclose(fp);

)

提示:在fread語句中,(1)中為存放所讀出結(jié)構(gòu)數(shù)據(jù)的內(nèi)存地址,當(dāng)然此數(shù)據(jù)是賦給變量r,(2)中

是讀出結(jié)構(gòu)體變量數(shù)據(jù)的個數(shù),(3)是與循環(huán)中止有關(guān)的判斷,(4)為中止循環(huán)。

5.從鍵盤輸入一個字符串,并逐個將字符串的每個字符傳送到磁盤文件“l(fā)l.txt”中,字符串

的結(jié)束標(biāo)記為

6.有一文本文件ll.txt,請編寫一個程序?qū)⑽募械挠⑽淖帜讣皵?shù)字字符顯示在屏幕上。

提示:

7.把文本文件ll.txt中的數(shù)字字符復(fù)制到文本文件12.txt中。

8.x從。到360度的sin(x)值寫入到文件16.txt中,并將大于0的值顯示在屏幕上。

第9章指針與數(shù)組

1.下列程序輸出的結(jié)果是()。

#include<stdio.h>

voidf(int*x)

(

*x=10;

)

voidmain()

(

inta,*p=&a;

f(P);

printf(n%dn,++(*p));

)

(A)輸出的值是隨機值(B)因輸出語句錯誤而不能執(zhí)行者

(C)輸出值為10(D)輸出值為11

提示:指針x指與指針p指向同一個變量,10賦給指針x所指的地址上的內(nèi)容,++(*p)

是指指針p所指地址上內(nèi)容++。

2.下列程序片段中不正確的字符串賦值或初始化方式是()=

(A)char*str;str="string";

(B)charstr[7]={'s7t','r','i',,n','g','\0'};

(C)charstr[10];str="string";

(D)charstr[]="string";

提示:字符串賦值只能在初始化時進行。

3.如有定義:intx=2,*p=&x;以下哪些表達式的含義是不正確的。

(A)*&p(B)*&x(C)&*p(D)&*x

提示:指針可以作取地址運算,變量不能作取內(nèi)容運算。

4.如有定義inta[5];(其中:0<=i<5),不能表示數(shù)組元素的是()。

(A)*(a+i)(B)a[5](C)a[0](D)a[i]

提示:數(shù)組元素的下標(biāo)從0開始。

5.若有以下定義和語句,inta[10],i;且0<=i<10,則對數(shù)組元素地址的正確表示是()。

(A)a++(B)(a+1)(C)*(a+1)(D)&a

提示:一旦數(shù)組定義,數(shù)組的首地址是一個常量,不能作++運算,而a+i表示數(shù)組第i個元

素的地址。

6.有以下定義及語句,則對數(shù)組a元素的不正確引用的表達式是()。

inta[4][5];*p[2],j;

for(j=0;j<4;j++)

p[j]=a[j];

(A)p[0][0](B)*(a+3)[4]

(C)*(p[lJ+2)(D)*(&a[0][0]+3)

提示:p為指針數(shù)組,此題中a[i][j]>p[i][j].*(p[i]+j)>*(*(p+i)+j)也都能表示數(shù)組元素,&a[OJ[O]

等同于a[0]+0。

二、程序閱讀與填空題

1.分析下列程序,輸出結(jié)果是()=

#include<stdio.h>

voidmain()

(

int*pl,x=10;

float*p2,y=2.5;

pl=&x;

p2=&y;

printf(n%d,%f\n",++(*pl),(*p2)++);

)

提示:++都作用在內(nèi)容上,前一項是先++再輸出,后一項是先輸出再++。

2.下列程序輸出結(jié)果是()。

#include<stdio.h>

voidmain()

(

inta[]={1,2,3,4,5,6},*p=a;

printf("%d,%d\nn,*p,*(p+3));

)

提示:語句*(p+3)+=2;指p+3的地址上的內(nèi)容加2,然后輸出p及p+3的地址上內(nèi)容。

3.下列程序輸出結(jié)果是()。

#include<stdio.h>

voidmain()

{

inta[]={1,2,3,4,5,6};

intx,y,*p;

P=&a[0];

x=*(p+2);

y=*(p+4);

printf("*p=%d,x=%d,y=%d\n",*p,x,y);

)

提示:p+2是指&a[2]。

4.下列程序輸出結(jié)果是()。

#include<stdio.h>

voidmain()

(

inta[]={10,20,30,40,50,60};

int*p;

P=a;

printf("*%d,\n",*p);

printf(”*%d,\n",*(++p));

printf("*%d,\n",*++p);

printf(”*%d,\n”,*(p一));

P+=3;

printf(n*%d,%d\nn,*p,*(a+3));

)

提示:*(++p)、*++p都表示指針p向大地址方向移動,然后再取內(nèi)容,要注意的是后一語句的輸出

受前一語句的影響。

5.下列程序輸出的結(jié)果是()。

#include<stdio.h>

voiddel(char*str)

(

inta,b;

for(a=b=0;str[a]!=*\0';a++)

if(*(str+a)!=1)

*(str+b++)=*(str+a);

str[b]='\01;

)

voidmain()

(

charstr[]="abodefn;

del(str);

printf("str[]=%s",str);

)

提示:在函數(shù)del中str+a地址上的內(nèi)容不為字符,c,時不復(fù)制,實際上是指刪除指針str所指的字

符串中的字符,cJ

6.以下程序輸出的結(jié)果是()。

#include<stdio.h>

#include<string.h>

voidfun(char*w,intm)

(

chars,*pl,*p2;

pl=w;

p2=w+m-1;

while(pl<p2)

{s=*pl++;*pl=*p2一;*p2=s;}

)

voidmain()

(

chara[]="ABCDEFG";

fun(a,strlen(a));

puts(a);

)

提示:當(dāng)執(zhí)行s=*pl++;語句時,指針pl所指的地址上內(nèi)容賦給s時,指針pl后移,語句*pl=*p2--;

指針p2所指的內(nèi)容賦給pl所指的地址上后,p2前移后再執(zhí)行*p2=s語句。

7.以下程序輸出的結(jié)果是()。

#include<stdio.h>

voidmain()

(

inta[3][3]={{2,0,8},{4},{6}};

inti,*p=&a[0][0];

for(i=0;i<3;i++)

if(i==0)

a[i][i+l]=*p+l;

else

++P;

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論