天天看點

電大C語言程式設計形考任務3,國開學習網電大C語言程式設計形考任務3答案

【上面答案為下列試題答案,請核對試題後再購買】www.botiku.com零号電大

一、選擇題(共30分,每小題2分)

題目1

在下面的函數聲明語句中,存在着文法錯誤的是( )。

選擇一項:

a. AA(int a, int b)

b. AA(int, int)

c. AA(int a; int b)

d. AA(int a, int)

題目2

在下面的保留字中,不能作為函數的傳回值類型的是( )。

選擇一項:

a. void

b. int

c. enum

d. long

題目3

假定p是一個指向float型資料的指針,則p+1所指資料的位址比p所指資料的位址增加的位元組數為( )。

選擇一項:

a. 1

b. 2

c. 4

d. 8

題目4

假定a為一個數組名,在下面的表達式中,存在文法錯誤的是( )。

選擇一項:

a. a

b. *a++

c. *a

d. *(a+1)

題目5

用calloc函數建立具有10個整型元素的一維數組的正确語句是( )。

選擇一項:

a. int *p=calloc(10,2);

b. int *p=calloc(10);

c. int *p=calloc(10,4);

d. int *p=malloc(10)

題目6

假定變量m定義為“int m=7;”,則下面正确的語句為( )。

選擇一項:

a. int p=&m;

b. int *p=&m;

c. int &p=*m;

d. int *p=m;

題目7

假定k是一個double類型的變量,則定義變量p的正确語句為( )。

選擇一項:

a. double p=&k;

b. int *p=&k;

c. double &p=*k;

d. char *p="Thank you!";

題目8

若有語句為“int a[10], x, *pa=a;”,要把數組a中下标為3的元素值賦給x,則不正确的語句為( )。

選擇一項:

a. x=pa[3];

b. x=*(a+3);

c. x=a[3];

d. x=*pa+3;

題目9

假定有語句為“int b[10]; int *pb;”,則下面不正确的指派語句為( )。

選擇一項:

a. pb=b;

b. pb=&b[0];

c. pb=b+2;

d. pb=b[5];

題目10

已知“int *p=malloc(100);”,要釋放p所指向的動态記憶體,正确的語句為( )。

選擇一項:

a. free(p);

b. free p;

c. free(*p);

d. free[p];

題目11

在程式的一個檔案中定義的函數,若要在另一個檔案中調用,則必須在這另一個檔案中給出該函數的( )。

選擇一項:

a. 原型語句

b. 參數表

c. 函數名

d. 傳回類型

題目12

假定一個函數定義為“static int f1(int x,int y){return x+y;}”,該函數名稱為( )。

選擇一項:

a. static

b. int

c. f1

d. return

題目13

假定一個函數的原型語句為“int ff(int* x);”,一個整型數組為a[10],則下面函數調用表達式不正确的是( )。

選擇一項:

a. ff(a)

b. ff(a[0])

c. ff(a+3)

d. ff(&a[0])

題目14

假定一個函數的數組參數說明為char a[],與之等價的指針參數說明為( )。1B

選擇一項:

a. char a

b. char* a

c. char& a

d. char**a

題目15

假定一個函數的二維數組參數說明為char w[][N],與之等價的指針參數說明為( )。

選擇一項:

a. char (*w)[N]

b. char *w[N]

c. char (*w)N

d. char**a

資訊文本

二、判斷題(共30分,每小題2分。叙述正确則回答“是”,否則回答“否”)

題目16

在C語言中,一個函數由函數頭和函數體組成。

選擇一項:

題目17

在函數子產品之外定義的變量稱為全局變量,若沒有被初始化則系統隐含對它賦初值0。

選擇一項:

題目18

如果一個函數隻允許同一程式檔案中的函數調用,則不應在該函數定義的開始前加上保留字static。

選擇一項:

題目19

如果在一個函數體中又出現對自身函數的調用,此種函數調用被稱為遞歸調用。

選擇一項:

題目20

調用系統函數時,要先使用#include指令包含該系統函數的原型語句所在的系統頭檔案。

選擇一項:

題目21

函數形參變量不屬于局部變量。

選擇一項:

題目22

假定p所指對象的值為25,p+1所指對象的值為46,則*p++的值為46。

選擇一項:

題目23

假定p所指對象的值為25,p+1所指對象的值為46,則*++p的值為25。

選擇一項:

題目24

假定p所指對象的值為25,p+1所指對象的值為46,則執行*(p++)運算後,p所指對象的值為46。

選擇一項:

題目25

假定a是一個指針數組,則a+i所指對象的位址比a位址大4*i位元組。

選擇一項:

題目26

若要把一個整型指針p轉換為字元指針,則采用的強制轉換表達式為(char*)p。

選擇一項:

題目27

假定一個資料對象為int*類型,則指向該對象的指針類型仍為int*類型。

選擇一項:

題目28

假定x為一個簡單變量,則&x表示x的位址。

選擇一項:

題目29

若p指向x,則*p與x的值不同。

選擇一項:

題目30

NULL是一個符号常量,通常作為空指針值,它代表的值為0。

選擇一項:

資訊文本

三、寫出下列每個程式運作後的輸出結果(共20分,每小題4分)

題目31

#include

int WF(int x, int y) {

x=x+y;

y=x+y;

return x+y;

}

void main() {

int x=5, y=7;

int z=WF(x,y);

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

}

題目32

#include

#include

void fun(char ss[]);

void main( ) {

char s[15]="0123456789";

fun(s);

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

}

void fun(char ss[]) {

int i, n=strlen(ss) ;

for(i=0; i

char c=ss;

ss=ss[n-1-i];

ss[n-1-i]=c;

}

}

題目33

#include

int Count(int a[], int n, int x)

{

int i,c=0;

for(i=0;ix) c++;

return c;

}

void main() {

int a[8]={20,15,32,47,24,36,28,70};

int b=Count(a,8,30);

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

}

#include

void main() {

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

int s=0,*p;

for(p=a;p

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

}

題目35

#include

int LA(int *a, int n, int x) {

int i,s=0;

for(i=0;i

if(a

return s;

}

void main() {

int a[8]={5,10,15,8,12,3,9,20};

int b=LA(a,5,10);

int c=LA(a+2,6,10);

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

}

四、寫出下列每個函數的功能(共20分,每小題4分)

題目36

double SF(double x, int n) { //n為正整數

double p=1,s=1;

int i;

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

p*=x;

s+=p;

}

return s;

}

題目37

int SG(int x) { //x為大于等于2的整數

int i=2;

while(i*i<=x) {

if(x%i==0) break;

i++;

}

if(i*i<=x) return 0; else return 1;

}

題目38

int WB(int a[], int n, int x) {

for(int i=0;i

if(a==x) return 1;

return 0;

}

題目39

int fun(int m, int n) {

int c=0;

static int b=2;

if(m

else if(m%b==0 && n%b==0) {c=b; return c*fun(m/b,n/b);}

else {b++; return fun(m,n);}

}

題目40

int LK(double a[], int n) {

double s=0;

int i,m=0;

for(i=0;i

s/=n;

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

return m;

}