求C語言的筆試題和程式設計題!!~~~謝謝~~!!

  • 作者:由 匿名使用者 發表于 書法
  • 2023-01-10

求C語言的筆試題和程式設計題!!~~~謝謝~~!!網友4224d85a1 2010-04-11

一份曾經的考卷+答案~~//後面的程式設計題是以前做過的實驗~~

《程式設計基礎-C》試卷

一、單項選擇題

1。 C 語言程式中可以對程式進行註釋,註釋部分必須用符號_____括起來。

A、‘{‘ 和’}’ B、‘[‘和’]’ C、“/*”和”*/” D、“*/”和”/*”

2。 下列運算子中,優先順序最低的是_____。

A、* B、!= C、+ D、=

3。 若變數已正確定義,表示式 (j=3, j++) 的值是_____ 。

A、3 B、 4 C、5 D、0

4。 已知字元 ‘a’ 的ASCII碼為 97 ,執行下列語句的輸出是_____。

printf (“%d, %c”, ’b’, ’b’+1 ) ;

A、98, b B、語句不合法 C、98, 99 D、 98, c

5。 表示式strcmp(“box”, “boss”) 的值是一個_______。

A、 正數 B、 負數 C、 0 D、 不確定的數

6。 陣列定義為 int a[3][2]={1, 2, 3, 4, 5, 6},陣列元素_____的值為6。

A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3]

7。 要呼叫數學函式時,在#include命令列中應包含_____。

A、 ”stdio。h” B、 ”string。h” C、 ”math。h” D、 ”ctype。h”

8。 判斷i和j至少有一個值為非0的表示式是_____。

A、 i!=0 && j!=0 B、i*j!=0 C、!(i==0 || j==0) D、i&&j

9。 若a是基本整型變數,c是單精度實型變數,輸入語句______是錯誤的。

A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c);

C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c);

10。 若變數已正確定義並且指標p已經指向某個變數x,則(*p)++相當於_____。

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

11。 若p1、p2都是整型指標,p1已經指向變數x,要使p2也指向x, _____是正確的。

A、p2=p1; B、p2=**p1; C、p2=&p1; D、p2=*p1;

12。 下列程式段的輸出是_____。

int c[]={1, 3, 5};

int *k=c+1;

printf(“%d”, *++k);

A、 3 B、 5 C、 4 D、6

13。 不正確的賦值或賦初值的方式是______。

A、char str[]=“string”;

B、char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’};

C、char str[10];str=“string”;

D、char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’, ’\0’};

14。 對於以下結構定義,++p->str中的++加在_____。

struct {

int len;

char *str;

} *p;

A、指標str上 B、指標p上 C、str指的內容上 D、以上均不是

15。 對於如下說明,語法和語義都正確的賦值是_____。

int c, *s, a[]={1, 3, 5};

A、c=*s; B、 s[0]=a[0]; C、s=&a[1]; D、 c=a;

二、填空題

1。 寫出下列程式段的輸出結果。

float x1, x2;

x1=3/2;

x2=x1/2;

printf(“%d, %。1f”, (int)x1, x2) ;

2。 表示式 (7<<1>>2^2 ) 的值是_______。

3。 寫出下列程式段的輸出結果。

#define A 10

#define B (A

printf(“%d”, B*2);

4。 寫出判斷字元變數c是英文字母的表示式 。

5。 寫出下列程式段的輸出結果。

int k, x;

for (k=0, x=0; k<=9&&x!=10; k++)

x+=2;

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

6。 寫出下列程式段的輸出結果。

printf(“%d, %d”, NULL, EOF);

7。 對於以下遞迴函式f,呼叫 f (3) 的返回值是_____。

f (int n)

{ return ((n>0) ? 2*f(n-1)+f(n-2) : -1); }

8。 寫出下列程式段的輸出結果。

char str[]=“hello\tworld\n”;

printf(“%d, %c\n”, sizeof(str), *(str+10));

9。 輸入12345#後,寫出下列程式的輸出結果。

void main()

{ char c;

for(c=getchar(); getchar()!=’#’; c=getchar())

putchar(c);

}

10。 執行程式find –nx ould text。txt時,*++argv[1]的值是_______。

三、程式閱讀題

1。 若輸入 3 1 2 3 <回車> , 則以下程式的輸出結果是_______。

#include “stdio。h”

void main()

{ int i, j, n, a[10];

scanf(“%d”, &n);

for (i=0; i

scanf(“%d”,&a[i]);

for (i=0; i

for (j=0; j

printf(“%d, ”, a[(i+j)%n]);

}

2。 若輸入89 76 24 25 9 8 11 16 35 4 <回車> , 則以下程式的輸出結果是_______。

#include “stdio。h”

#define N 10

main()

{

int x[N], y1[N], y2[N];

int i, j, n1, n2, t, p;

n1=n2=0;

for(i=0;i

scanf(“%d”, &x[i]);

if(x[i] % 2==0) y1[n1++]=x[i];

else y2[n2++]=x[i];

}

for(i=1; i

for(j=0; j

if(y1[j]>y1[j+1]){

t=y1[j]; y1[j]=y1[j+1]; y1[j+1]=t;

}

for(i=0; i

p=i;

for(j=i+1; j

if(y2[p]

if(p!=i){

t=y2[i]; y2[i]=y2[p]; y2[p]=t;

}

}

for(i=0; i

for(i=0; i

}

3。 以下程式的輸出結果是_______。

#include

int z;

void p(int *x, int y)

{ ++*x;

y——;

z=*x+y+z;

printf(“%d, %d, %d#”, *x, y, z);

}

void main()

{ int x=1, y=5, z=9;

p(&x, y);

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

}

4。 若輸入 -6+15*3/5=<回車> , 則以下程式的輸出結果是_______。

#include

void main()

{

int m=0, sum=0;

char c, oldc=‘+’;

do {

c=getchar();

if(c<=‘9’&&c>=‘0’) m=10*m+c - ‘0’;

else {

if(oldc==‘+’) sum += m;

else sum -= m;

m=0;

oldc=c;

printf(“%d, ”, sum);

}

} while(c!=‘=’);

}

四、程式填空題

下列程式的功能是建立單向連結串列。

#include

#include

struct link {

char name[10];

int mark;

struct link * next;

};

void insert(char *, int);

struct link * head = NULL;

main()

{

char name[10];

int mark;

struct link * t;

while ( 1 ) {

scanf(“%s %d”, name, &mark);

if ( strcmp(name, “#”) == 0 ) break;

______(1)_______;

}

for (t=head; ______(2)_______)

printf(“<%s>: %d\n”, t->name, t->mark);

}

void insert(char * name, int mark)

{

struct link * p;

p = ______(3)_______ ;

strcpy(p->name, name);

p->mark = mark;

______(4)_______;

if ( head != NULL ) ______(5)_______;

head = p;

}

答案

2000~2001學年《程式設計基礎C》參考答案

一、單項選擇題

C D A D A B C B D B A B C A C

二、填空題

1 1, 0。5

2 1

3 -3

4 c>=’a’&&c<=’z’|| c>=’A’&&c<=’Z’

5 5, 10

6 0, -1

7 -17

8 13, d

9 13

10 ‘n’

三、程式閱讀題

1 1, 2, 3, 2, 3, 1, 3, 1, 2,

2 4, 8, 16, 24, 76, 89, 35, 25, 11, 9,

3 2, 4, 6#2, 5, 9#

4 0, -6, 9, 6, 1,

四、程式填空題

(1) insert(name, mark)

(2) t!=NULL; t=t->next

(3) (struct link *)malloc(sizeof(struct link))

(4) p->next = NULL

(5) p->next = head

程式設計

程式填空,不要改變與輸入輸出有關的語句。

輸入一個正整數repeat (0

給定平面任意兩點座標 (x1, y1) 和 (x2, y2),求這兩點之間的距離(保留2位小數)。

要求定義和呼叫函式 dist(x1, y1, x2, y2)計算兩點間的距離,函式形參x1、y1、x2和y2的型別都是double,函式型別是double。

輸入輸出示例:括號內是說明

輸入

1 (repeat=1)

10 10 (x1=10, y1=10)

200 100 (x2=200, y2=100)

輸出

Distance = 210。24

#include

#include

double dist(double x1, double y1, double x2, double y2);

int main(void)

{

int repeat, ri;

double distance, x1, y1, x2, y2;

scanf(“%d”, &repeat);

for(ri = 1; ri <= repeat; ri++){

scanf(“%lf%lf%lf%lf”, &x1, &y1, &x2, &y2);

/*————-*/

printf(“Distance = %。2f\n”, distance);

}

}

/*————-*/

程式填空。

求1~100中能被6整除的所有整數的和

#include

int main(void)

{

int i, sum = 0;

/*————-*/

printf(“%d”, sum);

}

程式填空,不要改變與輸入輸出有關的語句。

輸入一個正整數repeat (0

讀入1 個實數x和正整數 n(n<=50),計算並輸出 x 的 n 次冪(保留2位小數),不允許呼叫pow函式求冪。

輸入輸出示例:括號內是說明

輸入

2 (repeat=2)

1。5 2 (x=1。5,n=2)

2 7 (x=2,n=7)

輸出

2。25

128。00

#include

int main(void)

{

int i, n;

int repeat, ri;

double mypow, x;

scanf(“%d”, &repeat);

for(ri = 1; ri <= repeat; ri++){

scanf(“%lf%d”, &x, &n);

/*————-*/

printf(“%。2f\n”, mypow);

}

}

……程式設計題還有好多~~需要的話可以發給你~

求C語言的筆試題和程式設計題!!~~~謝謝~~!!京弘百里初陽 2020-07-13

一份曾經的考卷+答案~~//後面的程式設計題是以前做過的實驗~~

《程式設計基礎-C》試卷

一、單項選擇題

1。

C

語言程式中可以對程式進行註釋,註釋部分必須用符號_____括起來。

A、‘{‘

和’}’

B、‘[‘和’]’

C、“/*”和”*/”

D、“*/”和”/*”

2。

下列運算子中,優先順序最低的是_____。

A、*

B、!=

C、+

D、=

3。

若變數已正確定義,表示式

(j=3,

j++)

的值是_____

A、3

B、

4

C、5

D、0

4。

已知字元

‘a’

的ASCII碼為

97

,執行下列語句的輸出是_____。

printf

(“%d,

%c”,

’b’,

’b’+1

A、98,

b

B、語句不合法

C、98,

99

D、

98,

c

5。

表示式strcmp(“box”,

“boss”)

的值是一個_______。

A、

正數

B、

負數

C、

0

D、

不確定的數

6。

陣列定義為

int

a[3][2]={1,

2,

3,

4,

5,

6},陣列元素_____的值為6。

A、a[3][2]

B、a[2][1]

C、a[1][2]

D、a[2][3]

7。

要呼叫數學函式時,在#include命令列中應包含_____。

A、

”stdio。h”

B、

”string。h”

C、

”math。h”

D、

”ctype。h”

8。

判斷i和j至少有一個值為非0的表示式是_____。

A、

i!=0

&&

j!=0

B、i*j!=0

C、!(i==0

||

j==0)

D、i&&j

9。

若a是基本整型變數,c是單精度實型變數,輸入語句______是錯誤的。

A、scanf(”%d,%f”,

&a,

&c);

B、scanf(”d=%d,

c=%f”,

&a,

&c);

C、scanf(”%d%f”,

&a,

&c);

D、scanf(”%d%f”,

a,

c);

10。

若變數已正確定義並且指標p已經指向某個變數x,則(*p)++相當於_____。

A、p++

B、x++

C、*(p++)

D、&x++

11。

若p1、p2都是整型指標,p1已經指向變數x,要使p2也指向x,

_____是正確的。

A、p2=p1;

B、p2=**p1;

C、p2=&p1;

D、p2=*p1;

12。

下列程式段的輸出是_____。

int

c[]={1,

3,

5};

int

*k=c+1;

printf(“%d”,

*++k);

A、

3

B、

5

C、

4

D、6

13。

不正確的賦值或賦初值的方式是______。

A、char

str[]=“string”;

B、char

str[7]={‘s’,

‘t’,

‘r’,

‘i’,

‘n’,

‘g’};

C、char

str[10];str=“string”;

D、char

str[7]={‘s’,

‘t’,

‘r’,

‘i’,

‘n’,

‘g’,

’\0’};

14。

對於以下結構定義,++p->str中的++加在_____。

struct

{

int

len;

char

*str;

}

*p;

A、指標str上

B、指標p上

C、str指的內容上

D、以上均不是

15。

對於如下說明,語法和語義都正確的賦值是_____。

int

c,

*s,

a[]={1,

3,

5};

A、c=*s;

B、

s[0]=a[0];

C、s=&a[1];

D、

c=a;

二、填空題

1。

寫出下列程式段的輸出結果。

float

x1,

x2;

x1=3/2;

x2=x1/2;

printf(“%d,

%。1f”,

(int)x1,

x2)

2。

表示式

(7<<1>>2^2

的值是_______。

3。

寫出下列程式段的輸出結果。

#define

A

10

#define

B

(A

printf(“%d”,

B*2);

4。

寫出判斷字元變數c是英文字母的表示式

5。

寫出下列程式段的輸出結果。

int

k,

x;

for

(k=0,

x=0;

k<=9&&x!=10;

k++)

x+=2;

printf

(“%d,

%d”,

k,

x)

6。

寫出下列程式段的輸出結果。

printf(“%d,

%d”,

NULL,

EOF);

7。

對於以下遞迴函式f,呼叫

f

(3)

的返回值是_____。

f

(int

n)

{

return

((n>0)

2*f(n-1)+f(n-2)

-1);

}

8。

寫出下列程式段的輸出結果。

char

str[]=“hello\tworld\n”;

printf(“%d,

%c\n”,

sizeof(str),

*(str+10));

9。

輸入12345#後,寫出下列程式的輸出結果。

void

main()

{

char

c;

for(c=getchar();

getchar()!=’#’;

c=getchar())

putchar(c);

}

10。

執行程式find

–nx

ould

text。txt時,*++argv[1]的值是_______。

三、程式閱讀題

1。

若輸入

3

1

2

3

<回車>

則以下程式的輸出結果是_______。

#include

“stdio。h”

void

main()

{

int

i,

j,

n,

a[10];

scanf(“%d”,

&n);

for

(i=0;

i

i++)

scanf(“%d”,&a[i]);

for

(i=0;

i

i++)

for

(j=0;

j

j++)

printf(“%d,

”,

a[(i+j)%n]);

}

2。

若輸入89

76

24

25

9

8

11

16

35

4

<回車>

則以下程式的輸出結果是_______。

#include

“stdio。h”

#define

N

10

main()

{

int

x[N],

y1[N],

y2[N];

int

i,

j,

n1,

n2,

t,

p;

n1=n2=0;

for(i=0;i

scanf(“%d”,

&x[i]);

if(x[i]

%

2==0)

y1[n1++]=x[i];

else

y2[n2++]=x[i];

}

for(i=1;

i

i++)

for(j=0;

j

j++)

if(y1[j]>y1[j+1]){

t=y1[j];

y1[j]=y1[j+1];

y1[j+1]=t;

}

for(i=0;

i

i++){

p=i;

for(j=i+1;

j

j++)

if(y2[p]

p=j;

if(p!=i){

t=y2[i];

y2[i]=y2[p];

y2[p]=t;

}

}

for(i=0;

i

i++)

printf(“%d,

”,

y1[i]);

for(i=0;

i

i++)

printf(“%d,

”,

y2[i]);

}

3。

以下程式的輸出結果是_______。

#include

int

z;

void

p(int

*x,

int

y)

{

++*x;

y——;

z=*x+y+z;

printf(“%d,

%d,

%d#”,

*x,

y,

z);

}

void

main()

{

int

x=1,

y=5,

z=9;

p(&x,

y);

printf(“%d,

%d,

%d#”,

x,

y,

z);

}

4。

若輸入

-6+15*3/5=<回車>

則以下程式的輸出結果是_______。

#include

void

main()

{

int

m=0,

sum=0;

char

c,

oldc=‘+’;

do

{

c=getchar();

if(c<=‘9’&&c>=‘0’)

m=10*m+c

-

‘0’;

else

{

if(oldc==‘+’)

sum

+=

m;

else

sum

-=

m;

m=0;

oldc=c;

printf(“%d,

”,

sum);

}

}

while(c!=‘=’);

}

四、程式填空題

下列程式的功能是建立單向連結串列。

#include

#include

struct

link

{

char

name[10];

int

mark;

struct

link

*

next;

};

void

insert(char

*,

int);

struct

link

*

head

=

NULL;

main()

{

char

name[10];

int

mark;

struct

link

*

t;

while

1

{

scanf(“%s

%d”,

name,

&mark);

if

strcmp(name,

“#”)

==

0

break;

______(1)_______;

}

for

(t=head;

______(2)_______)

printf(“<%s>:

%d\n”,

t->name,

t->mark);

}

void

insert(char

*

name,

int

mark)

{

struct

link

*

p;

p

=

______(3)_______

strcpy(p->name,

name);

p->mark

=

mark;

______(4)_______;

if

head

!=

NULL

______(5)_______;

head

=

p;

}

答案

2000~2001學年《程式設計基礎C》參考答案

一、單項選擇題

C

D

A

D

A

B

C

B

D

B

A

B

C

A

C

二、填空題

1

1,

0。5

2

1

3

-3

4

c>=’a’&&c<=’z’||

c>=’A’&&c<=’Z’

5

5,

10

6

0,

-1

7

-17

8

13,

d

9

13

10

‘n’

三、程式閱讀題

1

1,

2,

3,

2,

3,

1,

3,

1,

2,

2

4,

8,

16,

24,

76,

89,

35,

25,

11,

9,

3

2,

4,

6#2,

5,

9#

4

0,

-6,

9,

6,

1,

四、程式填空題

(1)

insert(name,

mark)

(2)

t!=NULL;

t=t->next

(3)

(struct

link

*)malloc(sizeof(struct

link))

(4)

p->next

=

NULL

(5)

p->next

=

head

程式設計

程式填空,不要改變與輸入輸出有關的語句。

輸入一個正整數repeat

(0

給定平面任意兩點座標

(x1,

y1)

(x2,

y2),求這兩點之間的距離(保留2位小數)。

要求定義和呼叫函式

dist(x1,

y1,

x2,

y2)計算兩點間的距離,函式形參x1、y1、x2和y2的型別都是double,函式型別是double。

輸入輸出示例:括號內是說明

輸入

1

(repeat=1)

10

10

(x1=10,

y1=10)

200

100

(x2=200,

y2=100)

輸出

Distance

=

210。24

#include

#include

double

dist(double

x1,

double

y1,

double

x2,

double

y2);

int

main(void)

{

int

repeat,

ri;

double

distance,

x1,

y1,

x2,

y2;

scanf(“%d”,

&repeat);

for(ri

=

1;

ri

<=

repeat;

ri++){

scanf(“%lf%lf%lf%lf”,

&x1,

&y1,

&x2,

&y2);

/*————-*/

printf(“Distance

=

%。2f\n”,

distance);

}

}

/*————-*/

程式填空。

求1~100中能被6整除的所有整數的和

#include

int

main(void)

{

int

i,

sum

=

0;

/*————-*/

printf(“%d”,

sum);

}

程式填空,不要改變與輸入輸出有關的語句。

輸入一個正整數repeat

(0

讀入1

個實數x和正整數

n(n<=50),計算並輸出

x

n

次冪(保留2位小數),不允許呼叫pow函式求冪。

輸入輸出示例:括號內是說明

輸入

2

(repeat=2)

1。5

2

(x=1。5,n=2)

2

7

(x=2,n=7)

輸出

2。25

128。00

#include

int

main(void)

{

int

i,

n;

int

repeat,

ri;

double

mypow,

x;

scanf(“%d”,

&repeat);

for(ri

=

1;

ri

<=

repeat;

ri++){

scanf(“%lf%d”,

&x,

&n);

/*————-*/

printf(“%。2f\n”,

mypow);

}

}

……程式設計題還有好多~~需要的話可以發給你~

求C語言的筆試題和程式設計題!!~~~謝謝~~!!救贖削腎客 2010-04-02

要簡單的還是複雜的?

簡單的:

輸出一個 △

用*如下圖

*

**

***

難一點的

編寫一個五子棋遊戲。

以後我上的比較多。我這裡問題多這呢。

你也可以到專業的程式設計網站去看看

求C語言的筆試題和程式設計題!!~~~謝謝~~!!劉小禎 2010-04-05

我這也有,要要的話發給你哈。。。。

求C語言的筆試題和程式設計題!!~~~謝謝~~!!xuke537 2010-04-02

99乘法表

輸入十個從大到小數排序

輸入日期YYYYMMDD判斷是不是閏年,這個月有多少天,這個日期的前一天和後一天。

Top