1. 程式人生 > >程式設計入門——C語言 翁愷 期末考試測試

程式設計入門——C語言 翁愷 期末考試測試

期末試卷返回
本次得分為:87.00/90.00, 本次測試的提交時間為:2018-05-20。
1單選(3分)
若變數已正確定義,執行
scanf("%d%c%f", &op1, &op, &op2);
輸入什麼之後,op1的值為1,op的值為’*’,op2的值為2.0.

得分/總分

A.
1 *2.0

B.
1 *2

C.
1* 2.
3.00/3.00

D.
1 * 2
正確答案:C你選對了
2單選(3分)
以下哪個迴圈並非重複5次?
得分/總分

A.
int i; for (i=1; i<=5; i++) {}

B.
int i; for (i=1; i<6; i++) {}

C.
int i; for (i=0; i<5; i++) {}

D.
int i; for (i=0; i<=5; i++) {}
3.00/3.00
正確答案:D你選對了
3單選(3分)
對於 
int x, y;
 語句
 if (x < 0) 
     y = -1; 
 else if (!x) 
     y = 0; 
 else 
     y = 1;
等價於
得分/總分

A.
y=0; 
if (x!=0) 
    if(x>0) 
        y=1; 
    else 
        y=-1;
3.00/3.00

B.
y=0; 
if (x>=0) 
    if(x) 
        y=1; 
else
    y=-1;

C.
if (x>=0) 
    y=0; 
if(x) 
    y=1; 
else 
    y=-1;

D.
if (x != 0) 
    if (x > 0) 
        y = 1; 
    else 
        y = -1;
正確答案:A你選對了
4單選(3分)
對於以下程式碼:
  int i=6;
  do {
    printf("%d", i--);
  } while (0);
  哪句話是對的?

得分/總分

A.
打印出5 

B.
打印出6
3.00/3.00

C.
打印不出東西

D.
通不過編譯
正確答案:B你選對了
5單選(3分)
要求函式的功能是交換x和y中的值,且通過正確呼叫返回交換結果。能正確實現此功能的函式是
得分/總分

A.
void funa(int *x , int *y)
{
    int *p;
    *p=*x;*x=*y;*y=*p;
}


B.
void funa(int x , int y)
{
    int t;
    t=x;x=y;y=t;
}

0.00/3.00

C.
int funa(int *x , int *y)
{
    *x=*y;*y=*x;
}


D.
void funa(int *x , int *y)
{
    int t = *x;
    *x = *y;
    *y = t;
}
正確答案:D你錯選為B
6單選(3分)
語句
while(x%3) a++;
中的表示式
x%3
等價於_______.

得分/總分

A.
x%3==0

B.
x%3==2

C.
x%3==1

D.
x%3!=0
3.00/3.00
正確答案:D你選對了
7單選(3分)
對
for(表示式1;;表示式3)
可理解為_______.

得分/總分

A.
for(表示式1;0;表示式3)



B.
for(表示式1; 表示式1;表示式3)


C.
for(表示式1;1;表示式3)


3.00/3.00

D.
for(表示式1; 表示式3;表示式3)

正確答案:C你選對了
8單選(3分)
以下哪句不是正確的函式原型?
得分/總分

A.
int f(void);

B.
int f(int i) {};
3.00/3.00

C.
int f();

D.
int f(int i);
正確答案:B你選對了
9單選(3分)
以下哪個不是C語言的關鍵字?
得分/總分

A.
while

B.
goto

C.
main
3.00/3.00

D.
else
正確答案:C你選對了
10單選(3分)
對於以下程式碼:
int i;
for ( i=0; i<10; i++)
    printf("%d", i);
	for迴圈後,i的值是多少?

得分/總分

A.
11

B.
9

C.
10
3.00/3.00

D.
i不再存在了
正確答案:C你選對了
11單選(3分)
以下哪個for語句是不能編譯的?
得分/總分

A.
for ();
3.00/3.00

B.
for ( i=0; j<10; j++ );

C.
for (i=0; i<10, j<10; i++);

D.
for (;;);
正確答案:A你選對了
12單選(3分)
假設字元變數ch中存放有大寫英文字母,將其轉換為相應的小寫英文字母的表示式是
得分/總分

A.
ch=ch-32

B.
ch=ch-'A'+'a'
3.00/3.00

C.
ch-=32

D.
ch = ch-'a'-'A'
正確答案:B你選對了
13單選(3分)
有以下定義:
  double a,b,c;
則以下哪個表示式與a/b/c不等價?

得分/總分

A.
a/c/b

B.
a/(b/c)
3.00/3.00

C.
a/(b*c)

D.
(a/b)/c
正確答案:B你選對了
14單選(3分)
以下哪個迴圈能編譯?
得分/總分

A.
for ( i=10 ; i++; ) {}
3.00/3.00

B.
for ( i=10 ,i<100, i++ ) {}

C.
 for ( i=10 ; i<100 ) {}

D.
for ( i=10 ; i++ ) {}
正確答案:A你選對了
15單選(3分)
有函式原型為
void f(int, int *);
,主函式中有變數定義:
int a=2, *p=&a;
 則下列函式呼叫正確的是
得分/總分

A.
f(*p, p);
3.00/3.00

B.
f(*p, a);

C.
f(a, &p);

D.
f(p,a);
正確答案:A你選對了
16單選(3分)
以下哪個是無效的C語言變數名?
得分/總分

A.
4ever
3.00/3.00

B.
_a

C.
printf

D.
main
正確答案:A你選對了
17單選(3分)
以下哪個函式是不能編譯的?
得分/總分

A.
int f(void)
{
    return 0;
}


B.
void f()
{
}


C.
void f(int i) 
{ 
    return i;
}

3.00/3.00

D.
int f() 
{
    return 0;
}

正確答案:C你選對了
18單選(3分)
給定函式原型如下:
    int* f(int *p);
而另有變數定義如下:
	    int i;
哪個對函式的呼叫是錯誤的?

得分/總分

A.
f(&i);

B.
f(&(i+6));
3.00/3.00

C.
*f(&i) = 6;

D.
int* p = f(&i);
正確答案:B你選對了
19單選(3分)
對於以下程式碼:
  char ch = -1;
  printf("%d\n", ch);
輸出結果是?

得分/總分

A.
編譯錯誤

B.
255

C.
執行時刻異常

D.
-1
3.00/3.00
正確答案:D你選對了
20單選(3分)
對於以下程式碼:
    int i=6;
    if ( i<= 6 ) 
      printf("hello\n");;
    else
      printf("bye-bye\n");;
哪句話是對的?

得分/總分

A.
打印出"hello bye-bye"

B.
通不過編譯  
3.00/3.00

C.
打印出"bye-bye"  

D.
打印出"hello" 
正確答案:B你選對了
21填空(3分)
語句
if (4/5 > 3/4) 
    a=1; 
else 
    a=0;
執行後,a的值是

得分/總分

0
 3.00/3.00
正確答案:0
22填空(3分)
表示式 
!!"2010-01-27"
的值為(以1表示真,0表示假)
得分/總分

1
 3.00/3.00
正確答案:1
23填空(3分)
表示式
(double)(10/4*4)
的結果是:
(如果認為結果是浮點數,請以小數點後一位小數來表示)
得分/總分

8.0
 3.00/3.00
正確答案:8.0
24填空(3分)
若變數已正確定義並賦值,則表示式(-10<x<0)的值為
得分/總分

0
 3.00/3.00
正確答案:0
25填空(3分)
   表示式
(double)(10/4)
的值為
(如果認為結果是浮點數,請以小數點後一位小數來表示)
得分/總分

2.0
 3.00/3.00
正確答案:2.0
26填空(3分)
假設sizeof(int)的值為4,對陣列定義:
int a[3][6];
則sizeof( a[0] )的值為______。


得分/總分

24
 3.00/3.00
正確答案:24
27填空(3分)
若
int a = 6, b = 0, c = 3;
,則表示式 
a && b || b - c
的結果是(以1表示真,0表示假)
得分/總分

1
 3.00/3.00
正確答案:1
28填空(3分)
以下程式碼段的輸出是:
int number, right_digit;
number = 15292;
if ( number ==0 ) {
    printf("0");
} else
    while  ( number != 0 ) {
        right_digit = number % 10;
        printf("%i", right_digit);
        number /= 10;
    }
得分/總分

29251
 3.00/3.00
正確答案:29251
29填空(3分)
   表示式
'B'+'8'-'3'
表示的字元是(請僅輸入單個字元,不要加前後的引號等其他符號)
得分/總分

G
 3.00/3.00
正確答案:G 或 'G'
30填空(3分)
現有 
int x=0,y=4;
 表示式
-10<x & y<0
的結果是
得分/總分

0
 3.00/3.00
正確答案:0