違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測試廣告

?C語言程序設(shè)計(jì)復(fù)習(xí)資料及習(xí)題(3)

普通專升本 責(zé)任編輯:管理員 2021-12-17

摘要:本文是C語言程序設(shè)計(jì)復(fù)習(xí)資料及習(xí)題(3),有打算報(bào)考2022年專升本需要考核C語言程序設(shè)計(jì)的同學(xué)可以一起來看看。供大家參考,下面是具體詳細(xì)內(nèi)容。

單元七 函數(shù)的使用

單元總結(jié)提升

在本單元中,如何使用自定義函數(shù)是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1. 函數(shù)是構(gòu)成C程序的基本單位,函數(shù)的使用為模塊化程序設(shè)計(jì)奠定了基礎(chǔ)。從用戶使用的角度,函數(shù)分為 庫 函數(shù)、 自定義 函數(shù)兩種。

2. 庫函數(shù)的使用包括 頭文件包含 和 庫函數(shù)調(diào)用 兩個(gè)環(huán)節(jié);用戶自定義函數(shù)的使用包括 函數(shù)聲明 、 函數(shù)定義 和 函數(shù)調(diào)用 三個(gè)環(huán)節(jié)。

3. 從函數(shù)的外觀形式看,函數(shù)分為 有參 函數(shù)、 無參 函數(shù)兩種。當(dāng)主調(diào)函數(shù)調(diào)用無參 函數(shù)時(shí),不需要向這些函數(shù)傳遞參數(shù);當(dāng)主調(diào)函數(shù)調(diào)用 有參 函數(shù)時(shí),需要傳遞參數(shù)。

4. 用戶自定義函數(shù)的一般形式為:

函數(shù)返回值類型 函數(shù)名(形式參數(shù)列表) //函數(shù)首部

{ 函數(shù)體;

}

其中第一行稱為 函數(shù)首部 ,大括號(hào)“{}”括起來的部分稱為 函數(shù)體 ,對于有返回值的函數(shù),函數(shù)體中要包括 return 語句。

5.函數(shù)首部也稱為函數(shù)原型,用函數(shù)原型聲明函數(shù)時(shí),形參名可以省略不寫,而只寫形參的類型,但形參的 類型 和 數(shù)量 必須與函數(shù)首部保持一致。

6.函數(shù)要先聲明,然后才能使用,函數(shù)聲明在程序中的位置有以下幾種情況:(1)函數(shù)聲明寫在主調(diào)函數(shù)的外部,這時(shí)的函數(shù)聲明為全局聲明。(2)函數(shù)聲明寫在主調(diào)函數(shù)的說明語句中,這時(shí)的函數(shù)聲明為局部聲明。(3)函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之前,則函數(shù)聲明可以省略。

7.函數(shù)的調(diào)用形式為:函數(shù)名(實(shí)際參數(shù)列表)。若調(diào)用無參函數(shù),則實(shí)參為空;若調(diào)用有參函數(shù),則在()內(nèi)寫出與形參類型、數(shù)量一致的實(shí)參。對于有參函數(shù),函數(shù)調(diào)用過程中存在著參數(shù)傳遞的問題,參數(shù)傳遞有兩種情況,其一為 值傳遞,其二為 地址傳遞。

8.函數(shù)在函數(shù)體中出現(xiàn)了對自身調(diào)用的語句,就稱為函數(shù)遞歸調(diào)用。使用遞歸方法解決問題的關(guān)鍵是如何找出 遞歸關(guān)系 ,以及找出遞歸調(diào)用的 終止條件 。

9.帶參宏定義的一般形式為: #define 宏名(形參列表) 字符串 。通常用帶參數(shù)的宏定義代替簡單公式型函數(shù)。

10.函數(shù)的存儲(chǔ)類型有static和extern兩種。 extern 型函數(shù)稱為“外部函數(shù)”,可以被其他編譯單位中的函數(shù)調(diào)用; static 型函數(shù)稱為“內(nèi)部函數(shù)”,只能被本編譯單位的函數(shù)調(diào)用。

11.程序中變量的使用范圍稱為變量的作用域,每個(gè)變量都有自己的作用域。按照作用域的范圍可分為兩種: 局部變量 和 全局變量 。

12.變量的存儲(chǔ)方式可分為“動(dòng)態(tài)存儲(chǔ)”和“靜態(tài)存儲(chǔ)”兩種。動(dòng)態(tài)存儲(chǔ)變量包括

auto 和 regiest 兩種類型;靜態(tài)存儲(chǔ)變量包括 static 和 extern 兩種類型。靜態(tài)存儲(chǔ)變量若沒有初始化,則默認(rèn)初始值為 0 。static類型變量的值具有繼承性,即本次調(diào)用的初值是上次調(diào)用結(jié)束時(shí)變量的值。

單元練習(xí)

一.選擇題

1.關(guān)于使用函數(shù)的目的,以下不正確的說法是( )。

A.提高程序的執(zhí)行效率 B.提高程序的開發(fā)效率

C.減少程序文件所占內(nèi)存 D.提高程序可讀性

2.以下正確的函數(shù)首部是( )。

A.void fun(int x,int y) B.void fun(int x;int y)

C.void fun(int x,y) D.void fun(x,y)

3.設(shè)函數(shù)fun的定義形式為:

void fun(char ch, float x) { ......}

則以下對函數(shù)fun的調(diào)用正確的是( )。

A.fun("abc",3.0); B.t=fun('D',12.3);

C.fun('65',3.7); D.fun(65,65);

4.關(guān)于函數(shù)的實(shí)參和形參,以下正確的說法是( )。

A.實(shí)參和對應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元

B.實(shí)參和對應(yīng)的形參共同占用同一存儲(chǔ)單元

C.只有當(dāng)實(shí)參與形參重名時(shí)才共同占用存儲(chǔ)單元

D.形參是虛擬的,不占用存儲(chǔ)單元

5.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳遞的是( )。

A.數(shù)組的長度 B.數(shù)組的首地址

C.數(shù)組的每一個(gè)元素的地址 D.數(shù)組的每一個(gè)元素的值

6.將一個(gè)函數(shù)指定為static存儲(chǔ)類別后,該函數(shù)將( )。

A.既可以被同一源文件中的函數(shù)調(diào)用,也可以被其他源文件中的函數(shù)調(diào)用

B.只能被同一源文件中的函數(shù)調(diào)用,不能被其他源文件中的函數(shù)調(diào)用

C.只能被其他源文件中的函數(shù)調(diào)用,不能被同一源文件中的函數(shù)調(diào)用

D.既不能被同一源文件中的函數(shù)調(diào)用,也不能被其他源文件中的函數(shù)調(diào)用

7.以下敘述正確的是( )。

A.全局變量的作用域一定比局部變量的作用域作用范圍大

B.靜態(tài)static類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值

二.填空題

1.假設(shè)已有#define M(r) r*r,則語句printf(“%d”,M(2+3));的執(zhí)行結(jié)果為 。

2.以下程序輸出結(jié)果為 。

#include

void fun(int x,int y)

{ x=x+y;y=x-y;x=x-y;

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

}

void main()

{ int x=2,y=3;

fun(x,y);

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

}

3.以下程序輸出結(jié)果為 。

#include

int a,b;

void fun()

{ a=10;b=20;

}

void main()

{ int a=3,b=9;

fun();

printf("%d,%d\n",a,b);

}

4.以下程序輸出結(jié)果為 。

#include

int f( ) //定義f函數(shù),a為形參

{int b=0; //定義b為自動(dòng)變量

static int c=3; //定義c為靜態(tài)局部變量

b=b+1;

c=c+1;

return b+c;

}

void main( )

{int a1,a2;

a1=f();

a2=f();

printf("%d,%d",a1,a2);

}

5.以下程序輸出結(jié)果為 。

#include

int fun(int n)

{ if(n==1) return 1;

else return fun(n-1)+1;

}

void main()

{ int i,j=0;

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

j+=fun(i);

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

}

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

#include

void fun(int a[ ], int n)

{ for(int i=0;i<n;i++)< p="">

if(a[i]>0) a[i]*=2;

}

void main()

{ int b[5]={1,2,3,4,5};

fun(b,5);

for(int i=0;i<5;i++)

printf("%d\t",b[i]);

}

習(xí)題答案:

一.選擇題

1.A 2.A 3.D 4.A 5.B 6.B 7.B

二.填空題

1.11

2.3,2

2,3

3.3,9

4.5,6

5.3

6.2 4 6 8 10

單元八 指針的使用

單元總結(jié)提升

在本單元中,對指針的理解,以及利用指針訪問不同形式的數(shù)據(jù)是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1. 內(nèi)存地址就稱為指針。C語言允許用一個(gè)變量來存放指針,這種變量稱為指針變量,而指針變量的值就是某個(gè)內(nèi)存單元的地址。

2. 定義指針變量的一般格式為: 類型標(biāo)識(shí)符 *指針變量名 ,其中:

(1)“指針變量名”前面的“*”,表示該變量是指針變量,不能省略。

(2)“類型標(biāo)識(shí)符”表示該指針變量所指向的變量的數(shù)據(jù)類型。

(3)當(dāng)一個(gè)指針變量已確定指向某類型的變量時(shí),不能再指向另一種類型的變量。

3.指針變量被賦值后即可引用,引用指針變量的一般方法為: *指針變量名 。

4.指針和數(shù)組有著密切的關(guān)系,任何通過控制數(shù)組下標(biāo)實(shí)現(xiàn)的對數(shù)組的操作,都可用指針來實(shí)現(xiàn)。要通過指針操作數(shù)組,首先要建立指針變量與數(shù)組之間的關(guān)系,然后才能通過指針變量訪問數(shù)組元素。若有語句段: int a[10]; int *p; p=a;,則對于數(shù)組元素的訪問方式有 a[i]、 *(p+i) 、 p[i] ,對數(shù)組元素地址的表示方式有 a+i 、 p+i 、 &a[i] 。

5.數(shù)組名代表數(shù)組的首地址,利用函數(shù)處理一維數(shù)組數(shù)據(jù)時(shí),函數(shù)之間的參數(shù)傳遞為 數(shù)組首地址 。將數(shù)組的首地址作為實(shí)參傳遞給函數(shù)的形參以后,實(shí)參數(shù)組和形參數(shù)組其實(shí)是同一段內(nèi)存中的數(shù)據(jù)。

6.字符串是存放在某存儲(chǔ)區(qū)域的一串字符序列,可通過字符數(shù)組和字符指針兩種方式操作字符串。

7.函數(shù)返回值可以是地址(指針類型),返回值為地址的函數(shù)定義形式為:

通過本單元的學(xué)習(xí),應(yīng)明確地址和指針的關(guān)系,掌握使用指針訪問內(nèi)存數(shù)據(jù)的基本方法。

單元練習(xí)

一.選擇題

1.假設(shè)整型變量a的值是12,a的地址是2200,若想使整型指針變量p指向a,以下賦值正確的是( )。

A.&a=2200; B.*p=12; C.*p=2200; D.p=&a;

2.若有定義int *p,m=5,n;,以下正確的程序段是( )。

A.p=&n; scanf"%d",&p); B.p=&n; scanf("%d",*p);

C.scanf("%d",&n); *p=n; D.p=&n; *p=m;

3.以下合法的定義是( )。

A.str[]={"China"}; B.char *p="China";

C.char *p; strcpy(p, "China"); D.char str[13]; str[]="China";

4.若有定義int a[ ]={1,3,5,7,9,11}, *p=a;,則能夠正確引用該數(shù)組元素的是( )。

A.a B.a[6] C.*(p--) D.*(--p)

5.以下程序運(yùn)行結(jié)果為( )。

#include

void main( )

{

char a[]="Language",b[]="programe";

char *p,*q;

int k;

p=a;q=b;

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

if(*(p+k)==*(q+k))

printf("%c",*(p+k));

}

A.gae B.ga C.Language D.programe

二.填空題

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

#include

void main( )

{

int *p1,*p2,*p;

int a=10,b=12;

p1=&a;p2=&b;

if(a<b)< p="">

{p=p1;p1=p2;p2=p;}

printf("%d,%d,",*p1,*p2);

printf("%d,%d",a,b);

}

2.以下程序的功能是把數(shù)組元素的最大值放入a[0]中,則條件表達(dá)式應(yīng)為 。

#include

void main( )

{

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

int *p=a,i;

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

if( ) *a=*p;

printf("%d",*a);

}

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

#include

void main( )

{

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

int m,*ptr;

ptr=&a[0][0];

m=(*ptr)*(*(ptr+2))*(*(ptr+4));

printf("%d",m);

}

4.下列函數(shù)功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

int mystrlen(char *str)

{

char *p;

for(p=str; !='\0';p++);

return( );

}

5.以下程序中,函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址。試問當(dāng)程序運(yùn)行時(shí)依次輸入:abcd、abba和abc三個(gè)字符串,則輸出結(jié)果為 。

#include

#include

char *scmp(char *s1,char *s2)

{ if(strcmp(s1,s2)<0)

return(s1);

else

return(s2);

}

void main( )

{ int i;

char string[20],str[3][20];

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

gets(str[i]);

strcpy(string,scmp(str[0],str[1]));

strcpy(string,scmp(string,str[2]));

printf("%s\n",string);

}

習(xí)題答案:

一.選擇題

1.D 2.D 3.C 4.C 5.A

二.填空題

1.12,10,10,12

2.*p>*a

3.15

4.*p p-str

5.abba

單元九 結(jié)構(gòu)類型的使用

單元總結(jié)提升

在本單元中,結(jié)構(gòu)類型數(shù)據(jù)的含義、結(jié)構(gòu)類型的描述方法、結(jié)構(gòu)類型數(shù)據(jù)的基本操作是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1.結(jié)構(gòu)類型數(shù)據(jù)使用的基本步驟為 結(jié)構(gòu)類型說明、 結(jié)構(gòu)類型變量定義 和 結(jié)構(gòu)變量使用 。

2.結(jié)構(gòu)類型說明的關(guān)鍵字為 struct 。結(jié)構(gòu)類型變量所占用內(nèi)存字節(jié)數(shù)為結(jié)構(gòu)變量所包含的各個(gè)成員變量所占字節(jié)數(shù)之和 。

3.若定義了一個(gè)結(jié)構(gòu)變量和一個(gè)指向結(jié)構(gòu)變量的指針,則可以用以下三種形式訪問結(jié)構(gòu)成員:

(1)利用結(jié)構(gòu)變量與成員運(yùn)算符相結(jié)合,基本格式為: 結(jié)構(gòu)變量.成員名 。

(2)利用結(jié)構(gòu)指針與成員運(yùn)算符相結(jié)合,基本格式為: (*結(jié)構(gòu)指針).成員名 。

(3)利用結(jié)構(gòu)指針與指向運(yùn)算符相結(jié)合,基本格式為: 結(jié)構(gòu)指針->成員名 。

4. 結(jié)構(gòu)變量不能作為一個(gè)整體進(jìn)行輸入和輸出,但結(jié)構(gòu)變量作為一個(gè)整體可以被復(fù)制、賦值、傳遞參數(shù),以及作為函數(shù)返回值。當(dāng)用結(jié)構(gòu)變量作函數(shù)參數(shù)進(jìn)行整體傳送時(shí),要將全部成員逐個(gè)傳送,特別是成員為數(shù)組時(shí),將會(huì)使傳送的時(shí)間和空間開銷很大,所以一般不將結(jié)構(gòu)變量作為函數(shù)參數(shù),而用結(jié)構(gòu)指針變量作函數(shù)參數(shù)。這時(shí)由實(shí)參向形參傳遞的只是地址,從而減少了時(shí)間和空間的開銷。

通過本單元的學(xué)習(xí),應(yīng)明確結(jié)構(gòu)類型的數(shù)據(jù)特點(diǎn),掌握結(jié)構(gòu)類型數(shù)據(jù)描述和操作的基本步驟和方法。

單元練習(xí)

一.選擇題

1.以下描述正確的是( )。

A.結(jié)構(gòu)類型中的成員可以是結(jié)構(gòu)類型

B.結(jié)構(gòu)類型的成員不能是指針類型

C.結(jié)構(gòu)類型中各成員共享同一個(gè)內(nèi)存單元

D.在結(jié)構(gòu)類型說明后就立即分配內(nèi)存空間

2.已知如下定義的結(jié)構(gòu)類型變量,若有p=&data,則對data中的成員a的正確引用是( )。

struct sk

{ int a;

float b;

}data,*p;

A.(*p).data.a B.(*p).a C.p->data D.p.data.a

3.若有如下定義,則下列輸入語句正確的是( )。

struct stu

{ int a;

int b;

}student;

A.scanf(“%d”,&a); B.scanf(“%d”,&student);

C.scanf(“%d”,&stu.a); D.scanf(“%d”,&student.a);

4.有如下結(jié)構(gòu)類型說明和變量定義,則操作語句正確的是( )。

struct worker

{ int num;

char name[10];

char sex;

int age;

} s1,s2,t;

A.if(s1.age>s2.age) {t=s1; s1=s2; s2=t; }

B.s1={1101,”zhangsan”,’f’,28};

C.gets(&s1.name);

D.printf(“%d,%s,%c,%d”,s1.num,s1.name,s1->sex,s1->age);

5.以下敘述正確的是( )。

A.結(jié)構(gòu)類型說明與結(jié)構(gòu)變量的含義一樣,都可以用來存放數(shù)據(jù)。

B.對于不同類型的數(shù)據(jù),若想形成一個(gè)有機(jī)的整體,可以使用結(jié)構(gòu)類型。

C.可以使用“==”或“!=”對同一個(gè)結(jié)構(gòu)類型的兩個(gè)變量進(jìn)行整體比較。

D.同一結(jié)構(gòu)類型中的成員變量名稱可以相同。

二.填空題

1.若有如下定義:

struct student

{ int num;

char name[12];

double score;

}stu;

則結(jié)構(gòu)類型的關(guān)鍵字是 ,用戶定義的結(jié)構(gòu)類型名是 ,用戶定義的結(jié)構(gòu)變量是 。

2.若有如下定義:

struct worker

{ int num;

char name[12];

char sex;

int age;

}s,*p;

則sizeof(struct worker)的值是 ,變量s所占內(nèi)存字節(jié)數(shù)是 ,變量p所占內(nèi)存字節(jié)數(shù)是 。

3.若有如下定義:

struct num

{ int a;

int b;

float f;

}n={1,3,5.0};

struct num *pn=&n;

則表達(dá)式pn->b/n.a*pn->b的值是 ,表達(dá)式(*pn).a+pn->f的值是 。

4.結(jié)構(gòu)數(shù)組中存有三個(gè)人的姓名和年齡,要輸出年齡最大的人的姓名和年齡。將程序補(bǔ)充完整。

#include

struct man

{

char name[20];

int age;

}person[ ]={"Zhanghua",20,"Liuyang",25,"Sunpeng",19};

void main( )

{

struct man *p,*q;

int old=0;

for(p=person;p ;p++)

if(oldage) {q=p; ; }

printf("%s %d",q->name,q->age);

}

5. 下面程序的功能是從鍵盤上輸入5個(gè)人的年齡、姓名和性別,然后輸出。將程序補(bǔ)充完整。

#include

struct man

{

char name[20];

int age;

char sex[4];

};

void data_in(struct man *p,int n)

{

struct man *q= ;

for( ;p<q;p++)< p="">

{

printf("name;age;sex\n");

scanf("%s%d%s", , , );

}

}

void data_out(struct man *p,int n)

{

struct man *q= ;

for( ;p<q;p++)< p="">

printf("%s;%d;%s\n",p->name,p->age,p->sex);

}

void main( )

{

struct man person[5];

data_in(person,5);

data_out(person,5);

}

習(xí)題答案:

一.選擇題

1.A 2.B 3.D 4.A 5.B

二.填空題

1.struct student stu

2.21 21 1 (上機(jī)測試)

3.9 6.000000

4.page;

5.p+n p->name,&(p->age),p->sex p+n

單元十 文件操作

單元總結(jié)提升

在本單元中,如何打開文件、如何讀寫文件以及如何關(guān)閉文件是核心內(nèi)容。通過本單元的學(xué)習(xí),我們應(yīng)該知道:

1.C語言對文件的操作是通過文件指針實(shí)現(xiàn)的,文件指針是系統(tǒng)定義好的結(jié)構(gòu)類型,名稱為 FILE ,該類型已在頭文件stdio.h中定義,對文件進(jìn)行操作時(shí),用該類型直接定義文件指針變量即可。定義形式為: FILE *文件指針變量名; 。

2.對文件的操作過程及相應(yīng)的文件操作函數(shù)為:

第一步: 打開文件 ,相應(yīng)的函數(shù)為 fopen() 。

第二步: 讀寫文件 ,相應(yīng)的函數(shù)為 fputc()/fgetc()等 。

第三步: 關(guān)閉文件 ,相應(yīng)的函數(shù)為 fclose() 。

通過本單元的學(xué)習(xí),應(yīng)理解文件指針FILE的含義,重點(diǎn)掌握利用文件指針操作文件的方法,以及文件操作函數(shù)的使用方法。

單元練習(xí)

一.選擇題

1.設(shè)fp為FILE類型的指針,要以只寫的方式打開文件d:\data\file.txt,正確的語句是( )。

A.fp=fopen(“d:\data\file.txt”,”w”);

B.fp=fopen(“d:\\data\\file.txt”,”w”);

C.fp=fopen(“d:\data\file.txt”,”r”);

D.fp=fopen(“d:\\data\\file.txt”,”r”);

2.執(zhí)行fopen函數(shù)時(shí)發(fā)生錯(cuò)誤,則函數(shù)的返回值是( )。

A.地址值 B.NULL(0) C.1 D.EOF(-1)

3.當(dāng)正確執(zhí)行了文件關(guān)閉操作時(shí),fclose函數(shù)的返回值是( )。

A.-1 B.true C.0 D.1

4.rewind函數(shù)的作用是( )。

A.使位置指針重新返回文件的開頭

B.使位置指針指向文件所要求的特定位置

C.使位置指針從新返回文件的末尾

D.使位置指針自動(dòng)移到下一個(gè)字符位置

5.以下程序想要把鍵盤輸入的字符寫到文件data.txt中,直到輸入“*”為止,但程序有錯(cuò)誤,出錯(cuò)的原因是( )。

#include

void main()

{

FILE *fp;

char ch;

fp=fopen("data.txt","w");

ch=getchar();

while(ch!='*')

{ fputc(fp,ch);

ch=getchar();

}

fclose(fp);

}

A.函數(shù)fopen調(diào)用形式錯(cuò)誤

B.函數(shù)fclose調(diào)用形式錯(cuò)誤

C.函數(shù)fputc調(diào)用形式錯(cuò)誤

D.函數(shù)getchar()調(diào)用形式錯(cuò)誤

二.填空題

1.以下程序功能是:用變量count統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請將程序補(bǔ)充完整。

#include

#include

void main()

{ FILE *fp;

long count=0;

if((fp=fopen("letter.dat", ))==NULL)

{ printf("不能打開文件.");

exit(0);

}

while(fgetc(fp)!=EOF) ;

printf("文件中的字符個(gè)數(shù)為%ld.\n",count);

fclose(fp);

}

2.以下程序的功能是:找出文件file.txt中所有的整數(shù)。文本文件file.txt中存有一系列整數(shù),各整數(shù)之間以空格、Tab符、回車符分隔。程序中用數(shù)組b[]存儲(chǔ)不同的整數(shù),變量k為已存入數(shù)組b中的不同整數(shù)的個(gè)數(shù),并假定文件的不同整數(shù)個(gè)數(shù)不超過1000個(gè)。請將程序補(bǔ)充完整。

#include

#include

#define N 1000

void main()

{ FILE ;

int b[N],d,i,k;

if((fp= )==NULL)

{ printf("不能打開文件.");

exit(0);

}

k=0;

while(fscanf( )==1)

{ b[k]=d;

for(i=0;b[i]!=d;i++);

if(i==k) k++;

}

;

}

習(xí)題答案:

一.選擇題

1.B 2.B 3.C 4.A 5.C

二.填空題

1."r" count++

2.#include

#include

#define N 1000

void main()

{ FILE *fp ;

int b[N],d,i,k;

if((fp= fopen("file.txt","r") )==NULL)

{ printf("不能打開文件.");

exit(0);

}

k=0;

while(fscanf(fp,"%d",&d )==1)

{ b[k]=d;

for(i=0;b[i]!=d;i++);

if(i==k) k++;

}

fclose(fp) ;

}

更多資料

廣東省專升本《大學(xué)語文》真題

云南專升本《高等數(shù)學(xué)》真題(2019年)

統(tǒng)招專升本《高等數(shù)學(xué)》真題回憶版(2021年)

更多課程

《市場營銷學(xué)》公開課—業(yè)務(wù)成長戰(zhàn)略

1節(jié)課

《基礎(chǔ)會(huì)計(jì)》公開課—會(huì)計(jì)要素-反映財(cái)務(wù)狀況的會(huì)計(jì)要素

1節(jié)課

《管理學(xué)》公開課——馬斯洛需要層次理論

1節(jié)課

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

專升本備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 統(tǒng)招專升本《大學(xué)語文》真題資料

    下載
  • 統(tǒng)招專升本《大學(xué)語文》真題回憶版(2021年)

    下載
  • 統(tǒng)招專升本《大學(xué)語文》備考資料一

    下載
  • 全國版專接本《大學(xué)語文》真題匯編

    下載