欢迎光临
我们一直在努力

南开《C语言程序设计》19秋期末考核【标准答案】

可做奥鹏国开全部院校作业论文!答案请添加qq:599792888 或 微信:1095258436

《C语言程序设计》19秋期末考核-0001

 

一、单选题 (共 25 道试题,共 50 分)

1.putchar函数可以向终端输出一个:

A.整型变量表达式值

B.实型变量值

C.字符或字符型变量值

D.字符串

 

2.以下对C语言中共用体类型数据的叙述正确的是( )

A.可以对共用体变量名直接赋值

B.共用体类型定义中不能出现结构体类型的成员

C.一个共用体变量中可以同时存放其所有成员

D.一个共用体变量中不能同时存放其所有成员

 

3.在C语言中,char型数据在内存中的存储形式是( )

A.补码

B.反码

C.原码

D.ASCII码

 

4.从用户使用的角度看,函数有两种,它们是( )

A.用户自定义函数和主函数

B.库函数和用户自定义函数

C.库函数和主函数

D.主函数和子函数

 

5.若调用fputc函数输出字符成功,则其返回值是( )

A.输出的字符

B.EOF

C.1

D.0

 

6.变量的指针,其含义是指该变量的( )

A.标识

B.地址

C.名字

D.值

 

7.main() {int x=2,y=-1,z=2; if(x<y) if(y<0) z=0; else z+=1; printf(“%d\n”,z); } 以上程序的输出结果为( )。

A.3

B.2

C.1

D.0

 

8.#include<stdio.h> main() {union { long a; int b; char c;}m; printf(“%d\n”,sizeof(m));} 以上程序的运行结果是( )。

A.8

B.6

C.4

D.2

 

9.设有以下说明语句 struct stu {int a;float b;}stutype; 则以下叙述不正确的是( )

A.stutype 是用户定义的结构体类型名

B.struct 是结构体类型的关键字

C.struct stu 是用户定义的结构体类型

D.a 和 b 都是结构体成员名

 

10.若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则下列哪个是对该数组元素的正确引用( )

A.a[a[9]]

B.a[a[4]+4]

C.a[a[3]-5]

D.a[10]

 

11.以下正确的叙述是( )

A.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数

B.在C语言中,每行只能写一条语句

C.在C程序中,%是只能用于整数运算的运算符

D.在C程序中,无论整数还是实数,都能被准确无误的表示

 

12.关于return语句,下列说法正确的是( )。

A.必须在每个函数中出现

B.可以在同一个函数中出现多次

C.只能在除主函数之外的函数中再出现一次

D.不能在主函数中出现

 

13.判断字符串a是否大于b,应当使用( )

A.if (strcmp(b,a)>0)

B.if (strcmp(a,b)>0)

C.if (strcmp(a,b))

D.if (a>b)

 

14.下面程序段 int k=2; while (k==0) {printf(“%d”,k);k–;} 则下面描述中正确的是()。

A.循环是无限循环

B.循环体语句执行一次

C.循环体语句一次也不执行

D.while 循环执行 10 次

 

15.已有定义 int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是:

A.整型变量的输出格式符只有%d一种

B.%x 是格式符的一种,它可以适用于任何一种类型的数据

C.%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的

D.%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度

 

16.#include “stdio.h” void main() { int sum=0,a=1; while(a<=10) {sum=sum+a; a++; } printf(“sum=%d\n”,sum); } 以上程序段的运行结果是( )

A.sum=55

B.sum=11

C.sum=10

D.sum=0

 

17.若执行fopen函数时发生错误,则函数的返回值是( )

A.地址值

B.null

C.EOF

D.1

 

18.C语言结构体类型变量在程序执行期间( )。

A.部分成员驻留在内存中

B.没有成员驻留在内存中

C.所有成员一直驻留在内存中

D.只有一个成员驻留在内存中

 

19.以下对一维整型数组 a 的正确说明是( )

A.int n=10,a[n];

B.int n;

C.int a(10) ;

D.define SIZE 10 int a[SIZE];

 

20.struct person {char name[9]; int age;}; struct person class[10]={“John”,17,”Paul”,19,”Mary”18,”adam”,16}; 根据上面的定义,能打印出字母M的语句是( )。

A.printf(“%c\n”,class[3].name[1]);

B.printf(“%c\n”,class[3].name);

C.printf(“%c\n”,class[2].name[1]);

D.printf(“%c\n”,class[2].name[0])

 

21.x=-2; y=-1; if(x!=0) if(x>0) y=1; else y=0; 该程序段的输出结果为( )。

A.不确定

B.1

C.0

D.-1

 

22.若以”a+”方式打开一个已存在的文件,则以下叙述正确的是( )。

A.文件打开时,原有文件内容被删除,只可作写操作。

B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。

C.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。

D.以上各种说法皆不下确。

 

23.判断字符串a是否大于b,应当使用( )

A.if (strcmp(b,a)>0)

B.if (strcmp(a,b)>0)

C.if (strcmp(a,b))

D.if (a>b)

 

24.main() { int x,y,z; scanf (“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } 输入数据的形式是25,13,10<回车>,则程序的输出结果是( )

A.不确定值

B.x+z=35

C.x+y+z=48

D.x+y+z=35

 

25.for (i=2; i==0; ) printf(“%d” , i–) ; 以上程序段的循环次数是( )

A.无限次

B.2次

C.1 次

D.0次

 

二、判断题 (共 10 道试题,共 20 分)

26.被main函数调用的函数只能是库函数。( )

 

27.字符常数和字符串常数的存储是相同的,都是以字符的ASCII码值进行存放。( )

 

28.按现代风格设计的C程序中,main中对函数声明的信息与定义此函数时第一行的信息完全相同。( )

 

29.在Visual C中,整型数据在内存中占2个字节。( )

 

30.C语言采用解释方式将源程序转换为二进制的目标代码。( )

 

31.C语言中没有依存于硬件的I/O语句。( )

 

32.C语言中的任何类型数据都可进行四则运算。( )

 

33.C语言中的标识符以字母或下划线开头,可跟任何字符。( )

 

34.在Turbo C++中,字符型数据在内存中占1个字节。( )

 

35.PI可作为标识符使用。( )

 

三、主观填空题 (共 2 道试题,共 10 分)

36.下面函数的功能是将字符变量的值插入已经按ASCII码值从小到大排好序的字符串中。请完善该程序。

 

void fun(char *w,char x,int *n)

{

int i,p=0;

while(x>w[p])

##;

for(i=*n;i>=p;i–)

##;

w[p]=x;

##;

}

 

37.以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。请完善该程序。

#include <stdio.h>

age( int n )

{

int c;

if(##) c=10;

else c=##;

return(c);

}

main()

{

int n=5;

printf(“age:%d\n”,##);

}

 

四、问答题 (共 4 道试题,共 20 分)

请写出下面程序的输出结果。

#include <stdio.h>

fun(int n, int *s)

{

int f1, f2;

if(n==1||n==2)

*s=1;

else

{

fun(n-1, &f1);

fun(n-2, &f2);

*s=f1+f2;

}

}

main()

{

int x;

fun(6, &x);

printf(“%d\n”, x);

}

 

请写出下面程序的输出结果。

main()

{

int i,j,x=0;

for(i=0;i<2;i++)

{

x++;

for(j=0;j<-3;j++)

{

if(j%2)

continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

 

请写出下面程序的输出结果。

#include <stdio.h>

main ( )

{

int a[]={1, 2, 3, 4, 5} ;

int x, y, *p;

p=&a[0];

x=*(p+2);

y=*(p+4);

printf(“%d,%d,%d\n”, *p, x, y);

}

 

41.请写出下面程序的输出结果。

#include <stdio.h>

char *pp[2][3]={ “abc”, “defgh”, “ijkl”, “mnopqr”, “stuvw”, “xyz”};

main ( )

{

printf(“%c\n”,***(pp+1));

printf(“%c\n”,**pp[0]);

printf(“%c\n”,(*(*(pp+1)+1))[4]);

printf(“%c\n”,*(pp[1][2]+2));

printf(“%s\n”,**(pp+1));

}

赞(0)
未经允许不得转载:奥鹏作业网 » 南开《C语言程序设计》19秋期末考核【标准答案】

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址