开放大学在线学习搜题
当前位置:首页 > 真题试卷

问题

通化师范学院C语言程序设计A卷答案

发布时间:2025-03-01   作者:国家开放大学   浏览:0

通化师范学院成人高等学历教育考试试卷

点击下方查看答案 

专业:计算机科学与技术专科   层次:高升本    考试科目:C语言程序设计    试题:A

年级:                            姓名:

题号

合计

合分人

得分

 

 

 

 

 

 

 

 

 

 

 

一.填空(每个小题2分)

得分

 

阅卷人

 

 

 

 

 

 

〖第1题〗

若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 【1】 .

 

 c=(a-=(b-5));

 

 c=(a%11)+(b=3);

 

〖第2题〗

已知a=13,b=6,  a&&b的十进制数值为【1】.

 

答案:

 

 

〖第3题〗『填    空』(2分)(题号:1097)

 

下面程序的运行结果是【1】.

 

#include

#define MAX(x,y)  (x)>(y)?(x):(y)

void  main()

{

   int  a=1, b=2, c=3, d=2,t ;

   t=MAX(a+b,c+d)*100 ;

   printf(" %d\n",t) ;

}

 

 

答案:

 

 

 

〖第4题〗

下列程序的运行结果是【1】:

 int as(int x,int y,int *p,int *q)

 {*p=x+y;

 *q=x-y;

 }

 main()

 {int a,b,c,d;

  a=4;b=3;

  as(a,b,&c,&d);

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

 }

 

答案:

〖第5题〗

 

以下程序的输出结果是【1】.

double sub(double x,double y,double z)

{

   y-=1.0;

   z=z+x;

   return z;

}

main()

{

   double a=2.5,b=9.0;

   printf("%f\n",sub(b-a,a,a));

}

 

答案

 

〖第6题〗

已知a=12,写出表达式 (0的值是【1.

 

答案

〖第7题〗

int x=2,y=3,z=4; 则表达式!(x+y)>z的值为【1.

 

答案:

 

〖第8题〗

C语言中调用【1】函数来关闭文件.

 

答案

 

〖第9题〗『填    空』(2分)(题号:1027)

 

int x=2,y=2,z=0; 则表达式x==y>z的值为【1】.

 

答案:

 

〖第10题〗『填    空』(2分)(题号:1107)

 

.有以下程序

# include

main()

{  int f,f1,f2,i;

   f1=0; f2=1;

   printf("%d%4d",f1,f2);

   for(i=3;i<=5;i++)

   {  f=f1+f2; printf("%4d",f);

      f1=f2; f2=f;  

   }

   printf("\n");

}

程序运行后,输出结果是【1】.

答案:

二.判断(每题2分)

〖第1题〗

 

若有说明int c;则while(c=getchar());是正确的C语句.

   

〖第2题〗

 

在程序中定义了一个结构体类型后,可以多次用它来定义具有

该类型的变量.

 

 

〖第3题〗『判    断』(2分)(题号:581)

 

int i,*p=&i;是正确的C说明.

 

 

〖第4题〗『判    断』(2分)(题号:559)

 

通过return语句,函数可以带回一个或一个以上的返回值.

 

 

〖第5题〗『判    断』(2分)(题号:586)

 

如果有一个字符串,其中第十个字符为'\n',则此字符串的

有效字符为9个.

 

 

〖第6题〗『判    断』(2分)(题号:555)

 

Turbo C中,此定义和语句是合法的:

enum aa{ a=5,b,c}bb;bb=(enum aa)5;

 

 

〖第7题〗『判    断』(2分)(题号:561)

 

char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl".

 

 

〖第8题〗『判    断』(2分)(题号:557)

 

int i=20;switch(i/10){case 2:printf("A");

case 1:printf("B");}的输出结果为A.

 

 

〖第9题〗『判    断』(2分)(题号:567)

 

C语言本身不提供输入输出语句,输入和输出操作是由函数来

实现的.

 

 

〖第10题〗『判    断』(2分)(题号:577)

 

进行宏定义时,宏名必须使用大写字母表示.

 

三.单选(每题2分)

〖第1题〗

 

while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是().

A:t>=1e-5&&t<=-1e-5&&s>-10&&s<10

B:fabs(t)<1e-5&&!s/10

C:fabs(t)<1e-5

D:s/10==0

 

 

 

〖第2题〗

 

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

A:在C程序中所用的变量必须先定义后使用

B:程序中,APH和aph是两个不同的变量

C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变

D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值

 

 

 

〖第3题〗

 

k为int型变量,则以下程序段的执行结果是().

k=-8567;  printf("|%06D|\n",k);

A:格式描述符不合法,输出无定值

B:输出为|%06D|

C:输出为|0-8567|

D:输出为|-8567|

 

 

 

〖第4题〗

 

下列字符序列中,不可用作C语言标识符的是().

A:b70

B:#ab

C:symbol

D:a_1

 

 

 

〖第5题〗 

 

下列叙述中不正确的是().

 

A:在函数中,通过return语句传回函数值

B:在函数中,可以有多条return语句

C:在C语言中,主函数名main后的一对圆括号中也可以带有形参

D:在C语言中,调用函数必须在一条独立的语句中完成

 

 

 

〖第6题〗

 

以下符合C语言语法的赋值表达式是().

A:d=9+e+f=d+9

B:d=9+e,f=d+9

C:d=9+e,e++,d+9

D:d=9+e++=d+7

 

 

 

〖第7题〗

 

不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的

形式存在磁盘上().

A:内存

B:缓冲区

C:文件

D:寄存器

 

 

 

〖第8题〗

 

以下叙述中不正确的是().

A:C语言中的文本文件以ASCⅡ码形式存储数据

B:C语言中对二进制文件的访问速度比文本文件快

C:C语言中,随机读写方式不适用于文本文件

D:C语言中,顺序读写方式不适用于二进制文件

 

 

 

〖第9题〗

 

下列程序运行后的输出结果是(    ).

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

  printf("%d\n",a[3]);

A:0

B:5

C:3

D:不确定值

 

 

 

〖第10题〗

 

数组名作为实参数传递给函数时,数组名被处理为().

A:该数组的长度

B:该数组的元素个数

C:该数组的首地址

D:该数组中各元素的值

 

 

 

四.程序填空

〖第1题〗『程序填空』(10分)

 

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

 

题目:用函数调用方式,实现字符串的复制。

-------------------------------------------------------*/

void string_copy(char *str_from, char *str_to)

  { int i=0;

/***********SPACE***********/

    for(; (*(?)=*(str_from+i))!='\0'; i++) ;

  }

main()

  { static char array_str1[20]="I am a teacher.";

    char array_str2[20];

/***********SPACE***********/

    ?(array_str1, array_str2);

/***********SPACE***********/

    ?("array_str2=%s\n",array_str2);

  }

 

答案

  1).    

  2).    

  3).    

〖第2题〗『程序填空』(10)

 

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

 

题目1982年我国第三次人口普查结果全国人口为10.3亿

      如人口增长率为5%。编写一个程序求在公元多少年总人口

      翻了一番。

-------------------------------------------------------*/

#include

void main()

{double p1=10.3,p2,r=0.05;

 int n=1;

/***********SPACE***********/

 p2=p1*?;  

/***********SPACE***********/

  while(p2<=?)

   {n++;

/***********SPACE***********/

    p2=p2*?;  

   }

/***********SPACE***********/

   n=?;  

   printf("%d年人口总数翻了一番即为%g亿人\n",n,p2);

}

 

 

 

 

答案

  1).   

  2).     

  3).     

  4).    

五.程序改错

〖第1题〗『程序改错』(10分)

 

/*------------------------------------------------------    

【程序改错】

--------------------------------------------------------

 

题目:给定程序中函数fun的功能是:求

      出在字符串中最后一次出现的子字符串的

      地址,通过函数值返回,在主函数中输出

      从此地址开始的字符串;若未找到,则函

      数值为NULL。

      例如,当字符串中的内容为:"abcdabfabcdx",

      t中的内容为:"ab"时,输出结果应是:abcdx。

      当字符串中的内容为:"abcdabfabcdx",t中的

      内容为:"abd"时,则程序输出未找到信息:

      not found!。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的

      结构。

------------------------------------------------------*/

#include

#include

#include

char * fun (char *s, char *t )

{

char *p , *r, *a;

/**********FOUND**********/

a == NULL;

while ( *s )

{ p = s; r = t;

while ( *r )

/**********FOUND**********/

if ( r == p ) { r++; p++; }

else break;

/**********FOUND**********/

if ( *r ='\0' ) a = s;

s++;

}

return a ;

}

 

main()

{

char s[100], t[100], *p;

clrscr();

printf("\nPlease enter string S :"); scanf("%s", s );

printf("\nPlease enter substring t :"); scanf("%s", t );

p = fun( s, t );

if ( p ) printf("\nThe result is : %s\n", p);

else printf("\nNot found !\n" );

}

 

 

答案

  1).      

  2).      

  3).    

 

 

 

〖第2题〗『程序改错』(10分)(题号:2)

 

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

 

题目:为一维数组输入10个整数;将其中最小的数与第一个数

      对换,将最大的数与最后一个数对换;输出数组元素。

      程序中共有4条错误语句,请改正错误。

 

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------*/

 

 

main()

{

 int a[10];

 void input();

 void output();

 void max_min();

 input(a,10);

 max_min(a,10);

 output(a,10);

}

void input(int *arr,int n)

{ int *p,i;

  p=arr;

  printf("please enter 10 integers:\n");

  for(i=0;i

/**********FOUND**********/

  scanf("%d",p);

}

void max_min(int *arr,int n)

{

  int *min,*max,*p,t;

  min=max=arr;

  for(p=arr+1;p

/**********FOUND**********/

    if(*p<*max)

       max=p;

    else if(*p<*min) min=p;

    t=*arr;*arr=*min;*min=t;

/**********FOUND**********/

  if(max=arr)

  max=min;

  t=*(arr+n-1);*(arr+n-1)=*max;*max=t;

}

void output(int *arr,int n)

{

  int *p,i;

您可能感兴趣的试题