計算機二級題庫_第1頁
計算機二級題庫_第2頁
計算機二級題庫_第3頁
計算機二級題庫_第4頁
計算機二級題庫_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機二級題庫1.(A)是構(gòu)成C語言程序的基本單位。

A、函數(shù)B、過程C、子程序D、子例程

2.C語言程序從C開始執(zhí)行。

A、程序中第一條可執(zhí)行語句B、程序中第一個函數(shù)

C、程序中的main函數(shù)D、包含文件中的第一個函數(shù)

3.以下說法中正確的是(C)。

A、C語言程序總是從第一個定義的函數(shù)開始執(zhí)行

B、在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

C、C語言程序總是從main()函數(shù)開始執(zhí)行

D、C語言程序中的main()函數(shù)必須放在程序的開始部分

4.下列關(guān)于C語言的說法錯誤的是(B)。

A、C程序的工作過程是編輯、編譯、連接、運行B、C語言不區(qū)分大小寫。

C、C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán)D、C程序從main函數(shù)開始執(zhí)行

5.下列正確的標識符是(C)。

A、-a1B、a[i]C、a2_iD、int15.以下對一維數(shù)組a的正確說明是:D

A、chara(10);B、inta[];C、intk=5,a[k];D、chara[3]={‘a(chǎn)’,’b’,’c’};

一維數(shù)組的定義、初始化類型符數(shù)組名[常量表達式]

類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標識符命名規(guī)則;常量表達式是指數(shù)組的長度(數(shù)組中包含元素的個數(shù)),其值只能是整數(shù),不可以是變量,而且從1開始計數(shù)。

選項A,常量表達式只能放在中括號[]中.選項B,只有在對數(shù)組初始化(即賦值)的時候才可以省略數(shù)組的長度,B中并未對a進行初始化。選項C,常量表達式不能為變量。

16.以下能對一維數(shù)組a進行初始化的語句是:(C)

A、inta[5]=(0,1,2,3,4,)B、inta(5)={}

C、inta[3]={0,1,2}D、inta{5}={10*1}

選項B,D,常量表達式只能放在中括號[]中.選項A,數(shù)組可以看做是若干個相同數(shù)據(jù)類型元素的有序集合,因此以集合的形式對其初始化,使用{}對其初始化,選項A用了().

17.在C語言中對一維整型數(shù)組的正確定義為D。

A、inta(10);B、intn=10,a[n];

C、intn;a[n];D、#defineN10inta[N];

18、已知:inta[10];則對a數(shù)組元素的正確引用是(D)。

A、a[10]B、a[3.5]C、a(5)D、a[0]

數(shù)組元素的引用數(shù)組名[下標]

引用數(shù)組元素時,[]中的下標為邏輯地址下標,只能為整數(shù),可以為變量,且從0開始計數(shù).inta[10]表示定義了一個包含10個整型數(shù)據(jù)的數(shù)組a,數(shù)組元素的邏輯地址下標范圍為0~9,即a[0]表示組中第1個元素;a[1]表示組中第2個元素;a[2]表示組中第3個元素;......;a[9]表示組中第10個元素.選項A,超過了數(shù)組a的邏輯地址下標范圍;選項B,邏輯地址下標只能為整數(shù).選項C,邏輯地址下標只能放在[]中19.若有以下數(shù)組說明,則i=10;a[a[i]]元素數(shù)值是(C)。

inta[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A、10B、9C、6D、5

20.若有說明:inta[][3]={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小為:(B)

A、2B、3C、4D、無確定值

二維數(shù)組的一維大小,即指二維數(shù)組的行數(shù),在本題中,按行對二維數(shù)組賦值,因此內(nèi)層有幾個大括號,數(shù)組就有幾行

21.對二維數(shù)組的正確定義是(C)

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

C、inta[][3]={1,2,3,4,5,6};D、inta[2,3]={1,2,3,4,5,6};二維數(shù)組的定義、初始化類型符數(shù)組名[常量表達式][常量表達式]

二維數(shù)組可以看做是矩陣.類型符是指數(shù)組中數(shù)組元素的類型;數(shù)組名要符合標識符命名規(guī)則;第一個常量表達式是指數(shù)組的行數(shù);第二個常量表達式是指數(shù)組的列數(shù);常量表達式的值只能是整數(shù),不可以是變量,而且從1開始計數(shù)。

一維數(shù)組初始化時可以省略數(shù)組長度.二維數(shù)組初始化時可以省略行數(shù),但不能省略列數(shù)

選項A,B,都省略了列數(shù).選項D,不符合二維數(shù)組定義的一般形式,行、列常量表達式應(yīng)該放在不同的[]中

22.已知inta[3][4];則對數(shù)組元素引用正確的是__C___

A、a[2][4]B、a[1,3]C、a[2][0]D、a(2)(1)

數(shù)組元素的引用數(shù)組名[下標][下標]

引用數(shù)組元素時,[]中的下標為邏輯地址下標,只能為整數(shù),可以為變量,且從0開始計數(shù).第一個[下標]表示行邏輯地址下標,第二個[下標]表示列邏輯地址下標。因此a的行邏輯地址范圍0~2;a的列邏輯地址范圍0~3;選項A,列邏輯地址下標超過范圍,選項B,D,的引用形式不正確。

23.C語言中函數(shù)返回值的類型是由A決定的.

A、函數(shù)定義時指定的類型B、return語句中的表達式類型

C、調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型D、形參的數(shù)據(jù)類型

24.在C語言中,函數(shù)的數(shù)據(jù)類型是指(A)

A、函數(shù)返回值的數(shù)據(jù)類型B、函數(shù)形參的數(shù)據(jù)類型

C、調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型D、任意指定的數(shù)據(jù)類型

25.在函數(shù)調(diào)用時,以下說法正確的是(B)

A、函數(shù)調(diào)用后必須帶回返回值B、實際參數(shù)和形式參數(shù)可以同名

C、函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量D、主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里

26.在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是:(C)

A、autoB、registerC、staticD、extern

27.未指定存儲類別的變量,其隱含的存儲類別為(A)。

A、autoB、staticC、externD、register

28.若有以下說明語句:

structstudent

{intnum;

charname[];

floatscore;

}stu;

則下面的敘述不正確的是:(D)

A、struct是結(jié)構(gòu)體類型的關(guān)鍵字B、structstudent是用戶定義的結(jié)構(gòu)體類型

C、num,score都是結(jié)構(gòu)體成員名D、stu是用戶定義的結(jié)構(gòu)體類型名29.若有以下說明語句:

structdate

{intyear;

intmonth;

intday;

}brithday;

則下面的敘述不正確的是__C___.

A、struct是聲明結(jié)構(gòu)體類型時用的關(guān)鍵字B、structdate是用戶定義的結(jié)構(gòu)體類型名

C、brithday是用戶定義的結(jié)構(gòu)體類型名D、year,day都是結(jié)構(gòu)體成員名

30.以下對結(jié)構(gòu)變量stul中成員age的非法引用是B

structstudent

{intage;

intnum;

}stu1,*p;

p=&stu1;

A、stu1.ageB、student.ageC、p->ageD、(*p).age

31.設(shè)有如下定義:

strucksk

{inta;

floatb;

}data;

int*p;

若要使P指向data中的a域,正確的賦值語句是C

A、p=&a;B、p=datA、a;C、p=&datA、a;D、*p=datA、a;

32.設(shè)有以下說明語句:

typedefstructstu

{inta;

floatb;

}stutype;

則下面敘述中錯誤的是(D)。

A、struct是結(jié)構(gòu)類型的關(guān)鍵字B、structstu是用戶定義的結(jié)構(gòu)類型

C、a和b都是結(jié)構(gòu)成員名D、stutype是用戶定義的結(jié)構(gòu)體變量名

33.語句int*p;說明了C。

A、p是指向一維數(shù)組的指針B、p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)

C、p是指向int型數(shù)據(jù)的指針//指針的定義教材P223

D、p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針

34.下列不正確的定義是(A)。

A、int*p=&i,i;B、int*p,i;C.inti,*p=&i;D、inti,*p;

選項A先定義一個整型指針變量p,然后將變量i的地址賦給p。然而此時還未定義變量i因此編譯器無法獲得變量i的地址。(A與C對比,選項C先定義變量i,則在內(nèi)存中為i分配空間,因此i在內(nèi)存空間的地址就可以確定了;然后再定義p,此時可以為p賦i的地址,C正確)

35.若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:(D)

A、p=qB、*p=*qC、n=*qD、p=n

p,q同為整型指針變量,二者里面僅能存放整型變量的地址。

選項A,q中為地址,因此可將此地址賦給p

選項B,*p表示p所指向?qū)ο髇的內(nèi)容,即一個整數(shù);*q表示q所指向?qū)ο蟮膬?nèi)容,由于在定義q時為其初始化,將p中n的地址給q,因此p中存放n的地址,*q表示q所指向?qū)ο髇的內(nèi)容.因此*p=*q相當(dāng)于n=n;

選項C,n=*q等價于n=n;

選項D,p中只能存放地址,不能將n中的整數(shù)值賦給p

36.有語句:inta[10],;則B是對指針變量p的正確定義和初始化。

A、intp=*a;B、int*p=a;C、intp=&a;D、int*p=&a;

選項A,a是數(shù)組名,不是指針變量名,因此不可用*標注數(shù)組名a選項C,a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號。而且在定義指針變量p時,應(yīng)在變量名前加*,標明p是指針變量選項D,a是數(shù)組名,數(shù)組名就是地址,無需再用地址符號。

37.若有說明語句“inta[5],*p=a;”,則對數(shù)組元素的正確引用是(C)。

A、a[p]B、p[a]C、*(p+2)D、p+2

首先定義一個整型數(shù)組a,a的長度為5,然后定義一個指針變量p,并同時對p進行初始化,將數(shù)組a的地址賦給p。因此此時p中存放的數(shù)組a的首地址,即數(shù)組中第一個元素a[0]的地址。

對于數(shù)組元素下標的引用,一般形式數(shù)組名[下標]其中下標為邏輯地址下標,從0開始計數(shù),方括號中的下標可以是變量,可以是表達式,但結(jié)果一定要是整數(shù)。

選項A,p中存放的是地址,不是整數(shù),不能做數(shù)組元素的下標

選項B,a是數(shù)組名,數(shù)組名就是地址,不是整數(shù),不能做數(shù)組元素的下標

選項C,(重點!?。≡斠妏231~234)p+2表示指向同一數(shù)組中的下兩個元素的地址,當(dāng)前p指向a[0],則p+2表示a[2]的地址,因此*(p+2)表示a[2]的內(nèi)容

38.有如下程序

inta[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

則數(shù)值為9的表達式是B

A、*P+9B、*(P+8)C、*P+=9D、P+8

首先定義一個整型數(shù)組a,a的長度為5,然后定義一個指針變量P,并同時對P進行初始化,將數(shù)組a的地址賦給P。因此此時P中存放的數(shù)組a的首地址,即數(shù)組中第一個元素a[0]的地址。

數(shù)組中9對應(yīng)的是a[8],選項B,P+8表示數(shù)組中后8個元素的地址,即a[8]的地址。*(P+8)則表示該地址內(nèi)所存放的內(nèi)容,即a[8]的值。

選項A,*P表示P所指向?qū)ο蟮膬?nèi)容,此時P指向a[0],*P即a[0]的值1.*P+9=1+9=10

選項C,*P表示P所指向?qū)ο蟮膬?nèi)容,此時P指向a[0],*P即a[0]的值。因此*P+=9即*P=*P+9,等價于a[0]=a[0]+9.

選項D,P+8表示數(shù)組中后8個元素的地址,即a[8]的地址,而非a[8]中的值。

39.在C語言中,以D作為字符串結(jié)束標志

A、’\n’B、’’C、’0’D、’\0’

40.下列數(shù)據(jù)中屬于“字符串常量”的是(A)。

A、“a”B、{ABC}C、‘a(chǎn)bc\0’D、‘a(chǎn)’

41.已知charx[]="hello",y[]={'h','e','a','b','e'};,則關(guān)于兩個數(shù)組長度的正確描述是B.

A、相同B、x大于yC、x小于yD、以上答案都不對

C語言中,字符串后面需要一個結(jié)束標志位'\0',通常系統(tǒng)會自動添加。

對一維數(shù)組初始化時可采用字符串的形式(例如本題數(shù)組x),也可采用字符集合的形式(例如本題數(shù)組y)。在以字符串形式初始化時,數(shù)組x不盡要存儲字符串中的字符,還要存儲字符串后的結(jié)束標志位,因此數(shù)組x的長度為6;在以字符集合形式初始化時,數(shù)組y,僅存儲集合中的元素,因此數(shù)組y長度為5#include

main()

{inta=1,b=3,c=5;

if(c==a+b)

printf("yes\n");

else

printf("no\n");

}

運行結(jié)果為:no

2.#include

main()

{inta=12,b=-34,c=56,min=0;

min=a;

if(min>b)

min=b;

if(min>c)

min=c;

printf("min=%d",min);

}

運行結(jié)果為:min=-34

定義變量,并賦值此時a=12,b=-34,c=56,min=0

將a中值拷貝,賦給min,覆蓋了min中的0,此時min中的值被更新為12。

若min>b成立,則執(zhí)行min=b;若min>c成立,則執(zhí)行min=c;輸出min中的值

12大于-34,第一個if語句的表達式成立,因此執(zhí)行min=b;執(zhí)行后min中的值被更新為-34.

-34小于56,第二個if語句的表達式不成立,因此不執(zhí)行min=c;

最后輸出min中的值,為-34.

3.#include

main()

{intx=2,y=-1,z=5;

if(x

if(y<0)

z=0;

else

z=z+1;

printf(“%d\n”,z);

}

運行結(jié)果為:5

遇到選擇結(jié)構(gòu),首先要明確條件表達式成立時執(zhí)行哪些操作。本題中,第一個if語句,其后的復(fù)合語句沒有大括號{},說明復(fù)合語句中只包含一條語句,進而省略了{}。內(nèi)層的if...else...是選擇結(jié)構(gòu)的第二種基本形式,在結(jié)構(gòu)上視為一條語句。因此內(nèi)層的if...else...作為第一個if語句的復(fù)合語句。

4.#include

main()

{floata,b,c,t;

a=3;

b=7;

c=1;

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",a,b,c);

}

運行結(jié)果為:1.00,2.00,7.00

本題包含了3個if語句,每個if語句后的{}都不可省略,因為每個{}中都包含了多條語句

若表達式a>b成立,則執(zhí)行{t=a;a=b;b=t;}

若表達式a>c成立,則執(zhí)行{t=a;a=c;c=t;}

若表達式b>c成立,則執(zhí)行{t=b;b=c;c=t;}

輸出a,b,c中的值,要求輸出的每個數(shù)據(jù)寬度為5個空格,小數(shù)部分保留2位,數(shù)據(jù)右對齊

5.#include<stdio.h>

main()

{floatc=3.0,d=4.0;

if(c>d)c=5.0;

else

if(c==d)c=6.0;

elsec=7.0;

printf(“%.1f\n”,c);

}

運行結(jié)果為:7.0

此題為if...else...語句的嵌套,第二if...else...作為第一個if...else...語句else部分的復(fù)合語句。

若表達式c>d成立,則執(zhí)行c=5.0;否則(表達式c>d不成立)

若表達式c==d成立,則執(zhí)行c=6.0;否則,執(zhí)行c=7.0;輸出c中的值

6.#include"stdio.h"

main()

{charc;

c=getchar();

while(c!='?'){putchar(c);c=getchar();}

}

如果從鍵盤輸入abcde?fgh(回車)

運行結(jié)果為:abcde

7.#include

main()

{charc;

while((c=getchar())!=’$’)

{if(‘A’<=c&&c<=‘Z’)putchar(c);

elseif(‘a(chǎn)’<=c&&c<=‘z’)putchar(c-32);}

}

當(dāng)輸入為ab*AB%cd#CD$時,運行結(jié)果為:ABABCDCD

8.#include

main()

{intx,y=0;

for(x=1;x<=10;x++)

{if(y>=10)

break;

y=y+x;

}

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

}

運行結(jié)果為:105

for(表達式1;表達式2;表達式3)

{

}

(1)先求解表達式1.(2)求解表達式2,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行(3).若為假,則結(jié)束循環(huán),轉(zhuǎn)到(5).(3)求解表達式3.(4)轉(zhuǎn)回上面(2)繼續(xù)執(zhí)行.(5)循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句break,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(第i次循環(huán)),繼續(xù)執(zhí)行下一次循環(huán)(第i+1次循環(huán))

9.#include

main()

{charch;

ch=getchar();

switch(ch)

{case‘A’:printf(“%c”,’A’);

case‘B’:printf(“%c”,’B’);break;

default:printf(“%s\n”,”other”);

}}

當(dāng)從鍵盤輸入字母A時,運行結(jié)果為:AB

10.#include

main()

{inta=1,b=0;

scanf(“%d”,&a);

switch(a)

{case1:b=1;break;

case2:b=2;break;

default:b=10;}

printf("%d",b);

}

若鍵盤輸入5,運行結(jié)果為:10首先用scanf函數(shù)為變量a賦值為5。

執(zhí)行switch語句。switch后面的條件表達式為a,因此表達式的值即為5.用5依次與下面case中的常量匹配。沒有找到匹配的常量,因此兩個case后的語句都不執(zhí)行。執(zhí)行default后面的語句b=10;將10賦給變量b。輸出變量b,結(jié)果為10#include

main()_

{chargrade=’C’;

switch(grade)

{

case‘A’:printf(“90-100\n”);

case‘B’:printf(“80-90\n”);

case‘C’:printf(“70-80\n”);

case‘D’:printf(“60-70\n”);break;

case‘E’:printf(“<60\n”);

default:printf(“error!\n”);

}

}

運行結(jié)果為:

70-80

60-70

12.#include

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf(%d”,--y);

}

}

運行結(jié)果為:

852

13.#include

main()

{inti,sum=0;i=1;

do{sum=sum+i;i++;}while(i<=10);

printf(“%d”,sum);

}

運行結(jié)果為:55

14.#include

#defineN4

main()

{inti;

intx1=1,x2=2;

printf("\n");

for(i=1;i<=N;i++)

{printf("%4d%4d",x1,x2);

if(i%2==0)

printf("\n");

x1=x1+x2;

x2=x2+x1;

}

}

運行結(jié)果為:

1235

8132134

表達式1為i=1,表達式2(循環(huán)條件)為i<=N即i<=4,表達式3為i++

循環(huán)變量初值i為1,循環(huán)條件(即表達式2)i<=4成立,進入第1次循環(huán)

第1次循環(huán)執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出12

執(zhí)行if語句。1%2不為0,if語句的條件表達式不成立,不執(zhí)行printf("\n");

執(zhí)行x1=x1+x2=1+2=3;此時x1中的值已變?yōu)?執(zhí)行x2=x2+x1=2+3=5。

轉(zhuǎn)向表達式3,執(zhí)行i++,i為2。循環(huán)條件i<=4成立,進入第2次循環(huán)

第2次循環(huán)執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出35

執(zhí)行if語句。2%2==0,if語句的條件表達式成立,執(zhí)行printf("\n");換行

執(zhí)行x1=x1+x2=3+5=8;此時x1中的值已變?yōu)?執(zhí)行x2=x2+x1=5+8=13。

轉(zhuǎn)向表達式3,執(zhí)行i++,i為3。循環(huán)條件i<=4成立,進入第3次循環(huán)

第3次循環(huán)執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出813

執(zhí)行if語句。3%2不為0,if語句的條件表達式不成立,不執(zhí)行printf("\n");

執(zhí)行x1=x1+x2=8+13=21;此時x1中的值已變?yōu)?1

執(zhí)行x2=x2+x1=21+13=34。

轉(zhuǎn)向表達式3,執(zhí)行i++,i為4。循環(huán)條件i<=4成立,進入第4次循環(huán)

第2次循環(huán)

執(zhí)行printf("%4d%4d",x1,x2);因此屏幕上輸出2134

執(zhí)行if語句。4%2==0,if語句的條件表達式成立,執(zhí)行printf("\n");換行

執(zhí)行x1=x1+x2=21+34=55;此時x1中的值已變?yōu)?5

執(zhí)行x2=x2+x1=34+55=89。

轉(zhuǎn)向表達式3,執(zhí)行i++,i為5。循環(huán)條件i<=4不成立,結(jié)束循環(huán)

15.#include

main()

{intx,y;

for(x=30,y=0;x>=10,y<10;x--,y++)

x/=2,y+=2;

printf(“x=%d,y=%d\n”,x,y);

}

運行結(jié)果為:

x=0,y=12第1題m個人的成績存放在score數(shù)組中,請編寫函數(shù)fun,它的功能是:將低于平均分的人作為函數(shù)值返回,將低于平均分的分數(shù)放在below所指定的函數(shù)中。

intfun(intscore[],intm,intbelow[])

{

inti,k=0,aver=0;

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

aver+=score[i];

aver/=m;

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

if(score[i]<aver)

{

below[k]=score[i];

k++;

}

returnk;

}第2題請編寫函數(shù)fun,它的功能是:求出1到100之內(nèi)能北7或者11整除,但不能同時北7和11整除的所有證書,并將他們放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)。voidfun(int*a,int*n)

{

inti,j=0;

for(i=2;i<1000;i++)

if((i%7==0||i==0)&&iw!=0)

a[j++]=i;

*n=j;

}第3題請編寫函數(shù)voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。voidfun(intx,intpp[],int*n)

{

inti=1,j=0;k=0,*t=pp;

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

if(i%2!=0)

{

t[j]=I;

j++;

}

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

if(x%t[i]==0)

{

pp[k]=t[i];

k++;

}

*n=k;

}第4題請編寫一個函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計在tt字符中"a"到"z"26各字母各自出現(xiàn)的次數(shù),并依次放在pp所指的數(shù)組中。voidfun(char*tt,intpp[])

{

inti;

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

pp[i]=0;

while(*tt)

{

switch(*tt)

{

case‘a(chǎn)’:pp[0]++;break;

case‘b’:pp[1]++;break;

case‘c’:pp[2]++;break;

case‘d’:pp[3]++;break;

case‘e’:pp[4]++;break;

case‘f’:pp[5]++;break;

case‘g’:pp[6]++;break;

case‘h’:pp[7]++;break;

case‘i’:pp[8]++;break;

case‘j’:pp[9]++;break;

case‘k’:pp[10]++;break;

case‘l’:pp[11]++;break;

case‘m’:pp[12]++;break;

case‘n’:pp[12]++;break;

case‘o’:pp[14]++;break;

case‘p’:pp[15]++;break;

case‘q’:pp[16]++;break;

case‘r’:pp[17]++;break;

case‘s’:pp[18]++;break;

case‘t’:pp[19]++;break;

case‘u’:pp[20]++;break;

case‘v’:pp[21]++;break;

case‘w’:pp[22]++;break;

case‘x’:pp[23]++;break;

case‘y’:pp[24]++;break;

case‘z’:pp[25]++;break;

}

tt++;

}

}第5題請編寫一個函數(shù)voidfun(intm,intk,intxx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k各素數(shù)存入xx所指的數(shù)組中。voidfun(intm,intk,intxx[])

{

intg=0,I,j,flag=1;

for(i=m+1;i<m*m;i++)

{

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

{

if(i%j!=0)

flag=1;

else

{

flag=0;

break;

}

}

if(flag==1&&j>=i)

{

if(k>=0)

{

xx[g++]=i;

k--;

}

else

break;

}

}

}第6題請編寫一個函數(shù)voidfun(chara[],char[],intn),其功能是:刪除以各字符串中指定下標的字符。其中,a指向原字符串,刪除后的字符串存放在b所指的數(shù)組中,n中存放指定的下標。voidfun(chara[],charb[],intn)

{

intI,j=0;

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

if(i!=n)

{

b[j]=a[i];

j++;

}

b[j]=‘\0’;

}第7題請編寫一個函數(shù)intfun(int*s,intt,int*k),用來求除數(shù)組的最大元素在數(shù)組中的下標并存放在k所指的儲存單元中。voidfun(int*s,intt,int*k)

{

intI,max;

max=s[0];

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

if(s[i]>max)

{

max=s[i];

*k=I;

}

}第8題編寫函數(shù)fun,功能是:根據(jù)以下攻勢計算s,計算結(jié)果作為函數(shù)值返回;n通過形參傳入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)floatfun(intn)

{

inti;

floats=1.0,t=1.0;

for(i=2;i<=n;i++)

{

t=t+i;

s=s+1/t;

}

returns;

}第9題編寫一個函數(shù)fun,它的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值帶回。M與n為兩個正整數(shù),且要求m>n。p=m!/n!(m-n)!

答案:floatfun(intm,intn)

{

floatp,t=1.0;

intI;

for(i=1;i<=m;i++)

t=t*I;

p=t;

for(t=1.0,i=1;i<=n;i++)

t=t*I;

p=p/t;

for(t=1.0,i=1;i<=m-n;i++)

t=t*I;

p=p/t;

returnp;

}第10題編寫函數(shù)fun,它的功能是:利用以下的簡單迭代方法求方程cos(x)-x=0的一個實根。迭代步驟如下:(1)取x1初值為0.0;(2)x0=x1,把x1的值賦各x0;

(3)x1=cos(x0),求出一個新的x1;

(4)若x0-x1的絕對值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行步驟(2);

(5)所求x1就是方程cos(x)-x=0的一個實根,作為函數(shù)值返回。

程序?qū)⑤敵鰎oot=0.739085。floatfun()

{

floatx1=0.0,x0;

do

{

x0=x1;

x1=cos(x0);

}

while(fabs(x0-x1)>1e-6);

returnx1;

}1:下列程序定義了n×n的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][n]),該函數(shù)的功能是:使數(shù)組左下半三角元素中的值全部置成0。intfun(inta[][N])

{

intI,j;

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

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

a[i][j]=0;

}2:下列程序定義了n×n的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun,函數(shù)的功能使求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。

答案:doublefun(intw[][N])

{

intI,j,k=0;

doubles=0.0;

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

{

s+=w[0][j];

k++;

}

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

{

s+=w[N-1][j];

k++;

}

for(i=1;i<=N-2;i++)

{

s+=w[i][0];

k++;

}

for(i=1;i<=N-2;i++)

{

s+=w[i][N-1];

k++;

}

returns/=k;

}3:請編寫一個函數(shù)voidfun(inttt[m][n],intpp[n]),tt指向一個m行n列的二維函數(shù)組,求出二維函數(shù)組每列中最小元素,并依次放入pp所指定一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中賦予。voidfun(inttt[M][N],intpp[N])

{

intI,j,min;

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

{

min=tt[0][j];

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

{

if(tt[i][j]<min)

min=tt[i][j];

}

pp[j]=min;

}

}4:請別寫函數(shù)fun,函數(shù)的功能使求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。intfun(inta[M][N])

{

intI,j,s=0;

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

{

s+=a[0][j];

s+=a[M-1][j];

}

for(i=1;i<=M-2;i++)

{

s+=a[i][0];

s+=a[i][N-1];

}

returns;

}5:請編寫一個函數(shù)unsignedfun(unsignedw),w使一個大于10的無符號整數(shù),若w使n(n≥2)位的整數(shù),則函數(shù)求出w后n-1位的數(shù)作為函數(shù)值返回。unsignedfun(unsignedw)

{

unsignedt,s=0,s1=1,p=0;

t=w;

while(t>10)

{

if(t/10)

p=t;

s=s+p*s1;

s1=s1*10;

t=t/10;

}

returns;

}6:請編寫一個函數(shù)floatfun(doubleh),函數(shù)的功能使對變量h中的值保留2位小樹,并對第三位進行四舍五入(規(guī)定h中的值位正數(shù))。floatfun(floath)

{

longt;

floats;

h=h*1000;

t=(h+5)/10;

s=(float)t/100.0;

returns;

}7:請編寫一個函數(shù)fun(char*s),該函數(shù)的功能使把字符串中的內(nèi)容擬置。voidfun(char*s)

{

charch;

intI,m,n;

i=0;

m=n=strlen(s)-1;

while(i<(n+1)/2)

{

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++;

m--;

}8:編寫程序,實現(xiàn)矩陣(3行3列)的轉(zhuǎn)置(即行列互換)。voidfun(intarray[3][3])

{

intI,j,temp;

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

for(j=0;j<I,j++)

{

temp=array[i][j];

array[i][j]=array[j][i];

array[j][i]=temp;

}

}9:編寫函數(shù)fun,該函數(shù)的功能是:從字符中刪除指定的字符,同一字母的大、小寫按不同字符處理。voidfun(chars[],intc)

{

inti=0;

char*p;

p=s;

while(*p)

{

if(*p!=c)

{

s[i]=*p;

i++;

}

p++;

}

s[i]=‘\0’;

}10:編寫函數(shù)intfun(intlim,intaa[max]),該函數(shù)的功能是求出小于或等于lim的所有素數(shù)并放在aa數(shù)組中,該函數(shù)返回所求的素數(shù)的個數(shù)。intfun(intlim,intaa[MAX])

{

intk=0,I,j;

for(i=lim;i>1;i--)

{

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

if(i%j==0)

break;

else

continue;

if(j>=i)

{

aa[k]=i;

k++;

}

}

returnk++;

}1:請編寫函數(shù)fun,對長度位7個字符的字符串,除首尾字符外,將其余5個字符按ascii碼降序排列。voidfun(char*s,intnum)

{

chart;

intI,j;

for(i=1;i<num-2;i++)

for(j=i+1;j<num-1;j++)

if(s[i]<s[j])

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}2:n名學(xué)生的成績已在主函數(shù)中放入一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。doublefun(STREC*h)

{

doublemax;

STREC*q=h;

max=h->s;

do

{

if(q->s>max)

max=q->s;

q=q->next;

}

while(q!=0);

returnmax;

}3:請編寫函數(shù)fun,該函數(shù)的功能是:判斷字符串是否為回文?若是則函數(shù)返回1,主函數(shù)中輸出yes,否則返回0,主函數(shù)中輸出no?;匚氖侵疙樧x和倒讀都是一樣的字符串。intfun(char*str)

{

intI,n=0;fg=1;

char*p=str;

while(*p)

{

n++;

p++;

}

for(i=0;i<n/2;i++)

if(str[i]==str[n-1-i]);

else

{

fg=0;

break;

}

returnfg;

}4:請編寫一個函數(shù)fun,它的功能是:將一個字符串轉(zhuǎn)換為一個整數(shù)(不得調(diào)用c語言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。longfun(char*p)

{

longs=0,t;

inti=0,j,n=strlen(p),k,s1;

if(p[0]==‘-’)

i++;

for(j=I;j<=n-1;j++)

{

t=p[j]-‘0’;

s1=10;

for(k=j;k<n-1;k++)

t*=s1;

s+=t;

}

if(p[0]==‘-’)

return–s;

else

returns;

}5請編寫一個函數(shù)fun,它的功能是:比較兩個字符串的長度,(不得調(diào)用c語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符串長度相同,則返回第一個字符串。char*fun(char*s,char*t)

{

char*p,*t1=t,*s1=s;

intn=0;m=0;

while(*s1)

{

n++;

s1++;

}

while(*t1)

{

m++;

t1++;

}

if(n>=m)

p=s;

else

p=t;

returnp;

}6:請編寫一個函數(shù)fun,它的功能是:根據(jù)以下公式求x的值(要求滿足精度0.0005,即某項小于0.0005時停止迭代):

x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1)

程序運行后,如果輸入精度0.0005,則程序輸出為3.14…。doublefun(doubleeps)

{

doubles;

floatn,t,pi;

t=1;pi=0;n=1.0;s=1.0;

while((fabs(s))>=eps)

{

pi+=s;

t=n/(2*n+1);

s*=t;

n++;

}

pi=pi*2;

returnpi;

}7:請編寫一個函數(shù)fun,它的功能是:求除1到m之內(nèi)(含m)能北7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。voidfun(intm,int*a,int*n)

{

intI,j=0;*n=0;

for(i=1;i<=m;i++)

if(i%7==0||i==0)

{

a[j]=I;

j++;

}

*n=j;

}8:請編寫一個函數(shù)fun,它的功能是:找出一維整型數(shù)組元素中最大的值和它所在的下標,最大的值和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。voidfun(inta[],intn,int*max,int*d)

{

intI;

*max=a[0];

*d=0;

for(i=0;I<n;i++)

if(a[i]>*max)

{

*max=a[i];

*d=I;

}

}9:請編寫一個函數(shù)fun,它的功能是:將ss所指字符串中所有下標為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。voidfun(char*ss)

{

intI,n;

n=strlen(ss);

for(i=1;i<n;i+=2)

if(ss[i]>=‘a(chǎn)’&&ss[i]<=‘z’)

ss[i]=ss[i]-32;

}10:請編寫一個函數(shù)fun,它的功能是:求除一個2×m整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。intfun(inta[][M])

{

intI,j,max;

max=a[0][0];

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

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

if(a[i][j]>max)

max=a[i][j];

returnmax;

}1:請編寫函數(shù)fun,其功能是:將s所指字符串中除了下標為偶數(shù)、同時ascii值也為偶數(shù)的字符外,其余的全都刪除;串中剩余字符所形成的一個新串放在t所指的一個數(shù)組中。voidfun(char*s,chart[])

{

intI,j=0,n;

n=strlen(s);

for(i=0;I,n;i++)

if(i%2==0&&s[i]%2==0)

{

t[j]=s[i];

j++;

}

t[j]=‘\0’;

}2:請編寫函數(shù)fun,其功能是:將s所指字符串中除了下標為奇數(shù)、同時ascii值也為奇數(shù)的字符之外,其余的所有字符都刪除,串中剩余字符所形成的一個新串放在t所指的一個數(shù)組中。voidfun(char*s,chart[])

{

intI,j=0,n;

n=strlen(s);

for(i=0;I,n;i++)

if(i%2!=0&&s[i]%2!=0)

{

t[j]=s[i];

j++;

}

t[j]=‘\0’;

}3:假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:使字符串中尾部的*號不得多于n個;若多于n個,則刪除多于的*號;若少于或等于n個,則什么也不做,字符串中間和前面的*號不刪除。voidfun(char*a,intn)

{

inti=0;k=0;

char*p,*t;

p=t=a;

while(*t)

t++;

t--;

while(*t==‘*’)

{

k++;

t--;

}

t++;

if(k>n)

{

while(*p&&p<t+n)

{

a[i]=*p;

i++;

p++;

}

a[i]=‘\0’;

}

}4:學(xué)生的記錄由學(xué)號和成績組成,n名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,它的功能使:把分數(shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分數(shù)最高的學(xué)生可能不止一個,函數(shù)返回分數(shù)最高的學(xué)生的人數(shù)。intfun(STREC*a,STREC*b)

{

intI,j=0,n=0,max;

max=a[0].s;

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

if(a[i].s>max)

max=a[i].s;

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

if(a[i].s==max)

{

*(b+j)=a[i];

j++;

n++;

}

returnn;

}5:請編寫一個函數(shù),用來刪除字符串中的所有空格。voidfun(char*str)

{

inti=0;

char*p=str;

while(*p)

{

if(*p!=‘’)

{

str[i]=*p;

i++;

}

p++;

}

str[i]=‘\0’;

}6:假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:將字符串中的前導(dǎo)*號全部移到字符串的尾部。voidfun(char*a)

{

inti=0,n=0;

char*p;

p=a;

while(*p==‘*’)

{

n++;

p++;

}

while(*p)

{

a[i]=*p;

i++;

p++;

}

while(n!=0)

{

a[i]=‘*’;

i++;

n--;

}

a[i]=‘\0’;

}7:某學(xué)生的記錄由學(xué)號、8門課程成績和平均分組成,學(xué)號和8門課程的成績已在主函數(shù)中給出。請編寫函數(shù)fun,它的功能是:求出該學(xué)生的平均分放在記錄的ave成員中。請自己定義正確的形參。voidfun(STREC*p)

{

doubleav=0.0;

inti:

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

av+=p->s[i];

av/=N;

p->ave=av;

}8:請編寫函數(shù)fun,它的功能是:求出ss所指字符串中指定字符的個數(shù),并返回此值。intfun(char*ss,charc)

{

intn=0;

while(*ss)

{

if(*ss==c)

n++;

ss++;

}

returnn;

}9:請編寫函數(shù)fun,該函數(shù)的功能是:移動一維數(shù)組中的內(nèi)容,若數(shù)組中由n個整數(shù),要求把下標從0到p(p小于等于n-1)的數(shù)組元素平移到數(shù)組的最后。voidfun(int*w,intp,intn)

{

intb[N],i,j=0;

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

{

b[i]=w[i];

j++;

}

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

{

w[j]=b[i];

j++;

}

}10:請編寫函數(shù)fun,該函數(shù)的功能是移動字符串中內(nèi)容,移動的規(guī)則如下:把第1到第m個字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。voidfun(char*w,intm)

{

charb[N];

intI,j=0;

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

{

b[j]=w[i];

j++;

}

for(i=0;i<strlen(w)-m;i++)

w[i]=w[i+m];

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

{

w[i]=b[j];

i++;

}

w[i]=‘\0’;

}1:第1題請編寫函數(shù)fun,該函數(shù)的功能是:將m行n列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個字符串中。voidfun(char(*s)[n],char*b)

{inti,j,k=0;

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

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

{b[k]=*(*(s+i)+j)

k++;}

b[k]=‘\0’;}2:第2題下列程序定義了n×n的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(inta[][n],intn),該函數(shù)的功能是:將數(shù)組右上半三角元素中的值乘以m。voidfun(inta[][n],intm)

{inti,j;

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

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

a[j]=a[j]*m;}3:第3題編寫一個函數(shù),從傳入的num個字符串中找出一個最長的一個字符串,并通過形參指針max傳回該串地址(用****作為結(jié)束輸入的標志)。char*fun(char(*a)[81],intnum)

{inti;

char*max;

max=a[0];

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

if(strlen(max)<strlen(a))

max=a;

returnmax;}4:第4題編寫一個函數(shù),該函數(shù)可以統(tǒng)計一個長度為2的字符串在另一個字符串中出現(xiàn)的次數(shù)。intfun(char*str,char*substr)

{intn;

char*p,*r;

n=0;

while(*str)

{p=str;

r=substr;

while(*r)

if(*r==*p)

{r++;

p++;}

else

break;

if(*r==‘\0’)

n++;

str++;}

returnn;}5:第5題假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*號都不刪除。形參n給出了字符串的長度,形參h給出了字符串中前導(dǎo)*號的個數(shù),形參e給出了字符串中最后的*個數(shù)。在編寫時不得使用c語言給提供得字符串函數(shù)。voidfun(char*a,intn,inth,inte)

{inti=0;

char*p;

for(p=a+h;p<a+n-e;p++)

{*(a+i)=*p;

i++;}

*(a+i)=‘\0’;}6:第6題學(xué)生得記錄由學(xué)號和成績組稱個,n名大學(xué)生得數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,它的功能時:按分數(shù)的高低排列學(xué)生的記錄,高分在前。voidfun(streca[])

{inti,j;

strect;

for(i=0;i<n-1;i++)

for(j=i;s<n;j++)

if(a.s<a[j].s)

{t=a;

a=a[j];

a[j]=t;}}7:第7題請編寫一個函數(shù)voidfun(char*ss),其功能時:將字符串ss中所有下標為奇數(shù)位置上的字母轉(zhuǎn)換為大寫(若位置上不是字母,則不轉(zhuǎn)換)。voidfun(char*ss)

{inti,n=0;

char*p=ss;

while(*p)

{n++;

p++;}

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

if((ss=‘a(chǎn)’&ss<=‘z’)&i%2!=0)

ss=ss-32;

ss=‘\0’;}8:第8題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a,b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。voidfun(inta,intb,long*c)

{*c=(a/10)*1000+(b/10)*100+(a)*10+b;}9:第9題請編寫函數(shù)fun,其功能是:將s所指字符串中下標位偶數(shù)同時ascii值為奇數(shù)的字符刪除,s中剩余的字符形成的新串放在t所指的數(shù)組中。voidfun(char*s,chart[])

{inti,j=0,n=strlen(s);

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

if(i%2==0&s%2!=0)

else

{f[j]=s;

j++;}

t[j]=‘\0’;}10:第10題已知學(xué)生的記錄是由學(xué)號和學(xué)習(xí)成績構(gòu)成,n名學(xué)生的數(shù)據(jù)已存入a機構(gòu)體數(shù)組中。請編寫函數(shù)fun,該函數(shù)的功能是:找出成績最高的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最高分)。voidfun(stua[],stu*s)

{inti,max;

max=a[0].s;

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

if(a.s>max)

{max=a.s;

*s=a;}}1:第1題請編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指的數(shù)組中,非素數(shù)的個數(shù)通過k傳回。voidfun(intm,int*k,intxx[])

{inti,j;

intt=0;

for(i=2;i<m;i++)

{j=2;

while(j<i)

{if(i%j==0)

{xx[t]=i;

t++;

break;}

j++;}

*k=t;}}2:第2題編寫一個函數(shù)fun,它的功能是:實現(xiàn)兩個字符串的連接(不使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串后。voidfun(charp1[],charp2[])

{inti=0,n=0;

char*p=p1,*q=p2;

while(*p)

{p++;

n++;}

i=n;

while(*p)

{p1=*q;

q++;

i++;}

p1=‘\0’;}3:第3題請編寫函數(shù)fun,該函數(shù)的功能是:實現(xiàn)b=a+a,即把矩陣a加上a的轉(zhuǎn)置,存放在矩陣b中。計算結(jié)果在main函數(shù)中輸出。voidfun(inta[3][3],intb[3][3])

{inti,j,at[3][3];

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

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

at[j]=a[j];

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

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

b[j]=a[j]+at[j];}4:第4題學(xué)生的記錄由學(xué)號和成績組稱個,n名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,它的功能是:把低于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,低于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。doublefun(strec*a,strec*b,int*n)

{doubleaver=0.0;

inti,j=0;

*n=0;

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

aver+=a.s;

aver/=n;

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

if(a.s<aver)

{b[j]=a;

(*n)++;

j++;}

returnaver;}5:第5題請編寫函數(shù)fun,該函數(shù)的功能是:將m行n列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的儲存單元中。voidfun(int(*s)[10],int*b,int*n,intmm,intnn)

{inti,j;

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

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

{b[*n]=*(*(s+i)+j);

*n=*n+1;}}第6題假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了尾部的*號之外,將字母串中其他*號全部刪除。形參p已指向字符串中最后的一個字母。不使用c的字符串函數(shù)。voidfun(char*a,char*p)

{inti=0;

char*p=a;

while(q<=p)

{if(*q!=‘*’)

{a=*q;

i++;}

q++;}

while(*q)

{a=*q;

i++;

q++;}

a=‘\0’;}第7題學(xué)生的記錄是由學(xué)號和成績組成,n名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,它的功能是:把指定分數(shù)范圍內(nèi)的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分數(shù)范圍內(nèi)的學(xué)生人數(shù)由函數(shù)值返回。intfun(strec*a,strec*b,intl,inth)

{inti,j=0;

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

if(a.s>=l&a.s<=h)

{b[j]=a;

j++;}

returnj;}第8題編寫函數(shù)藏服那,它的功能是:求n以內(nèi)(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。doublefun(intn)

{doubles=0.0;

inti;

for(i=1;i<n;i++)

if(i%3==0&i%7==0)

s=s+i;

s=sqrt(s);

returns;}第9題請別寫函數(shù)fun,該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的m個字符串(每串的長度不超過n),按順序合并組成一個新的字符串。voidfun(chara[m][n],char*b)

{inti,j,k=0;

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

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

if(*(*(a+i)+j))

{b[k]=*(*(a+i)+j)

k++;}

else

break;

b[k]=‘\0’;}}第10題請編寫函數(shù)fun,該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。intfun(inta[],intn)

{inti,t,j=0,*p=a;

t=p[0];

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

if(t==p)

;

else

{a[j]=t;

t=p;

j++;}

if(i>=n)

a[j]=t;

returnj;}第1題第請編寫函數(shù)fun,該函數(shù)的功能使:統(tǒng)計各年齡段的人數(shù)。N個年齡通過調(diào)用隨機函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲的人數(shù)放在d[2]中,其余以此類推,把100歲(含100以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。voidfun(int*a,int*b)

{inti,j;

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

b[j]=0;

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

if(a>=0&a<=9)

b[0]+=1;

elseif(a>=10&a<=19)

b[1]+=1;

elseif(a>=20&a<=29)

b[2]+=1;

elseif(a>=30&a<=39)

b[3]+=1;

elseif(a>=40&a<=49)

b[4]+=1;

elseif(a>=50&a<=59)

b[5]+=1;

elseif(a>=60&a<=69)

b[6]+=1;

elseif(a>=70&a<=79)

b[7]+=1;

elseif(a>=80&a<=89)

b[8]+=1;

elseif(a>=90&a<=99)

b[9]+=1;

else

b[10]+=1;}第2題請編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)一一含字符串中單詞的個數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格格開,一行的開始沒有空格。intfun(char*s)

{inti,n=0;

for(i=0;i<strlen(s);i++)

{if(s=‘a(chǎn)’&s<=‘z’&s[i+1]==‘’

‖s[i+1]==‘\0’)

n++;}

returnn;}第3題請編寫一個函數(shù)fun,它的功能是:計算并輸出給定整數(shù)n的所有因子(不包括1與自身)之和。規(guī)定n的值不大于1000。intfun(intn)

{ints=0,i;

for(i=2;i<=n-1;i++)

if(n%i==0)

s+=i;

returns;}第4題請編寫函數(shù)fun,其功能是:將s所指字符串中ascii值為奇數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。voidfun(char*s,chart[])

{inti,j=0,n;

n=strlen(s);

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

if(s%2==0)

{t[j]=s;

j++;}

t[j]=‘\0’;}5:第5題請編寫函數(shù)fun,其功能是:將兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。voidfun(inta,intb,long*c)

{*c=(b)*1000+(a/10)*100+(b/10)*10+a;}1:請編寫函數(shù)fun,其功能時:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中,合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上,b的十位和個位整數(shù)依次放在c數(shù)的百位和個位上。voidfun(inta,intb,long*c)

{*c=(a)*1000+(b/10)*100+(a/10)*10+b;}2:請編寫函數(shù)fun,其功能是:將s所指字符串中下標為偶數(shù)的字符刪除,串中剩余字符形成新串放在t所指數(shù)組中。voidfun(char*s,chart[])

{inti,j=0,n=strlen(s);

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

if(i%2!=0)

{t[j]=s;

j++;}

t[j]=‘\0’;}3:假定輸入的字符串中只包含字母和*號,請編寫函數(shù)fun,它的功能是:除了字符串前導(dǎo)和尾部的*號之外,將串中其他*號全部刪除。形參h已指向字符串第一個字符,形參p已指向字符串中最后一個字母。在編寫程序時,不得使用c語言提供的字符串函數(shù)。voidfun(char*a,char*h,char*p)

{inti=0;

char*q=a;

while(q<h)

{a=*q;

q++;

i++;}

while(q<p)

{if(*q!=‘’*)

{a=*q;

i++;}

q++;}

while(*q)

{a=*q;

i++;

q++;}

a=‘\0’;}4:學(xué)生的記錄由學(xué)號和成績組成n名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請編寫函數(shù)fun,它的功能時:把分數(shù)最低的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分數(shù)最低的學(xué)生可能不止一個,函數(shù)返回分數(shù)最低的學(xué)生的人數(shù)。intfun(strec*a,strec*b)

{inti,j=0,n=0,min;

min=a[0].s;

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

if(a.s<min)

min=a.s;

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

if(a.s==min)

{*(b+j)=a;

j++;

n++;}

returnn;}5:請編寫函數(shù)fun,該函數(shù)的功能:將m行n列的二維數(shù)組中的數(shù)據(jù),按列的順學(xué)依次放到一維數(shù)組中。voidfun(int(*s)[]10,int*b,int*n,intmm,intnn)

{inti,j;

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

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

{b[*n]=*(*(s+i)+j);

*n=*n+1;}}6:請編寫函數(shù)fun,其功能時:計算并輸出當(dāng)x<0.97時下列多項式的值,直到|sn-s(n-1)|<0.000001為止。

Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n)doublefun(doublex)

{doubles1=1.0,p=1.0,sum=0.0,s0,t=1.0;

intn=1;

do

{s0=s1;

sum+=s0;

t*=n;

p*=(0.5-n+1)*x;

s1=p/t;

n++;}while(fabs(s1-s0)>1e-6);

returnsum;}7:請編寫一個函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)ab合并形成一個整數(shù)放在c中。合并方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。voidfun(inta,intb,long*c)

{*c=(b)*1000+(a)*100+(b/10)*10+a/10;}8:請編寫函數(shù)fun,其功能是:將s所指字符串中ascii值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。voidfun(char*s,chart[])

{inti,j=0,n=strlen(s);

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

if(s%2!=0)

{t[j]=s;

j++;}

t[j]=‘\0’;}9:已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,n名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun,該函數(shù)的功能是:找出成績最低的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最低分)。voidfun(stua[],stu*s)

{inti,min;

min=a[0].s;

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

if(a.s<min)

{min=a.s;

*s=a;}}10:程序定義了n×n的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun,該函數(shù)的功能是:使數(shù)組左下半三角元素中的值乘以n。fun(inta[][n],intn)

{inti,j;

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

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

a[j]=a[j]*n;}1:第1題請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)ab合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c的十位和千位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上。voidfun(inta,intb,long*c)

{

*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10;

}2:第2題請編寫函數(shù)fun,它的功能是計算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作為函數(shù)值返回。doublefun(intm)

{

intI;

doubles=0.0,log(doublex);

for(i=1;i<=m;i++)

s=s+log(i);

s=sqrt(s);

returns;

}3:第3題請編寫函數(shù)fun,它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。

S=1+x+x(2)/2!+

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論