程序设计入门——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


猜你喜欢

转载自blog.csdn.net/sinoshen/article/details/80549464