?C語言程序設(shè)計(jì)復(fù)習(xí)資料及習(xí)題(3)
摘要:本文是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) ;
}
延伸閱讀
專升本微信公眾號(hào)
掃碼添加
專升本備考資料免費(fèi)領(lǐng)取
去領(lǐng)取