《C语言程序设计》期末考试试卷

  • 格式:doc
  • 大小:23.50 KB
  • 文档页数:6

《C语言程序设计》期末考试试卷.txt机会就像秃子头上一根毛,你抓住就抓住了,抓不住就没了。我和你说了10分钟的话,但却没有和你产生任何争论。那么,我们之间一定有个人变得虚伪无比!过错是短暂的遗憾,错过是永远的遗憾。相遇是缘,相知是份,相爱是约定,相守才是真爱。《C语言程序设计》期末考试试卷(A卷)(附有答案)

一、单项选择题(每小题2分,共30分)

1、下列数据中,为字符串常量的是( )

A、‘M’ B、‘$you’ C、”hello” D、basic

2、若y为int 型变量,则执行以下语句后,y的值是( )

y=8;y+=y-=y*y;

A、64 B、-56 C、-112 D、-48

3、下面是一个初始化指针的语句: int *px=&a;其中指针变量的名字应该是( )

A、*px B、a C、&a D、px

4、共用体成员的数据类型( )

A、可相同也可不相同 B、相同 C、长度一样 D、是结构体变量

5、若定义有:

struct student

{ long num;

char name[20];

float score;

char ch;

}stu;

则 函数 sizeof(stu) 的值是( )

A、20 B、29 C、24 D、21

6、若用数组名作为函数调用的实参,传递给形参的是( )

A、数组第一个元素的值 B、数组中全部元素的值

C、数组的首地址 D、数组元素个数

7、下面定义语句中,错误的是( )

A、int a[ ]={1,2}; B、 char *a[ ];

C、char s[10]=”BASI”; D、 int n=5,a[n];

8、下面程序

main()

{

int x,y,z;

x=2;

y=x++;

z=++x;

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

}

运行后输出的数据是( )

A、4 2 4 B、4 2 2

C、2 4 4 C、4 4 4

9、下列程序

main()

{ int x;

int *p1,*p2;

x=10;

p1=&x;

p2=p1;

printf(“%d\t%d\n”,*p1,*p2);

}

运行后输出的数据是( )

A、10 10 B、10 0

C、10 20 D、0 10

10、下列程序:

#include”stdio.h”

struct entry

{int datd;

int *ip;

};

main()

{

int i;

struct entry v;

v.ip=&i;

v.data=100;

*v.ip=50;

printf(“%d %d %d\n”,v.data,*v.ip,i));

}

运行后输出的数据是( )

A、100 50 50 B、100 50 0

C、50 50 50 D、50 50 0

11、下列程序

main()

{ union { int i;int j; int f;}a;

a.i=10;a.j=50;a.f=5;

printf(“%d %d\n”,a.i,a.j+a.f);}

运行后输出的数据是( )

A、10 55 B、10 10

C、0 5 D、5 10

12、下列程序

fat(int a)

{ int b=0; static int c=5; b++; c++; retrun(a+b+c);

}

main()

{ int a=10,i;

for(i=7;i<=9;i++)

printf(“%d “,fat(a));

}

运行后输出的数据是( )

A、7 8 9 B、17 17 17

C、14 15 16 D、17 18 19

13、下列程序

#define PI 3

#define S(r) PI*r*r

main()

{ int mz;

mz=S(2+1);

prinrf(“MZ=%d\n”,mz);

}

运行后输出的数据是( )

A、27 B、9 C、7 D、29

14、下列程序

main()

{int a=3,b=5,c;

c=a & b;

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

}

运行后输出的数据是( )

A、C=8 B、C=2 C、C=1 D、C=10

15、下列程序:

void cp_str( char *fr, char *to)

{ while( *fr!=’\0’)

*to++= *fr++;

* to=’\0’;}

main()

{ char * a=”Happy new year!”;

char * b=”Good Bye!”;

cp_str(b,a);

printf(“%s,%s\n”,a,b);

}

运行后输出的数据是( )

A、Happy new year!,Good Bye! B、Good Bye!,Good Bye! C、Happy new year!,Happy new year! D、Good Bye!,Happy new year!

二、阅读下列程序,在横线上填上适当的字符或语句,使程序完整。(共22分)

1、下列程序的作用是从键盘输入一些字符,逐个把它们写入磁盘文件file3.txt中,直到输入一个“#”为止。

#include”stdio.h”

main()

{ FILE *fp; char ch;

if(( )= =NULL )

{printf(“Can not open this file.”); exit(0);}

ch= getchar();

while(ch!=’#’)

{

ch=getchar();

}

}

2、下列程序的作用是将若干个字符串按字母从小到大顺序输出(起泡排序法)。

main()

{ void sort(char *name[], int n);

int k;

char *name[ ]={“Basic”,”Design”,”FoxPro”,”Follow”};

int n=4;

for(k=0;k

printf(“%s\n”,name[k]);

}

void sort( char *name[], int n )

{ char *t;

int i,j;

for( )

for( )

if( )

{t=name[j];name[j]=name[j+1];name[j+1]=t;}

}

3、下面程序作用是函数count()是统计一字符串的字母、数字、空格和其它字符的个数,在主函数main() 中输入字符串和输出统计结果。

Int le,di,sp,ot;

main()

{ int count (char str[]);

char text[80]; printf(“\nEnter string:”);

le=0;di=0;sp=0;ot=0;

printf(“letter=%d,digit=%d,space=%d,other=%d”,le,di,sp,ot);

}

int count( char str[])

{ int i;

for(I=0;str[I]!=’\0’;I++)

if(( >=’a’ && str[I]<=’z’) || (str[I]>=’A’ && str[I]<=’Z’))

le++;

else if(str[I]>=’0’ && str[I]<=’9’)

di++;

else if(str[I]==’ ‘)

sp++;

else

三、按要求编写程序(每小题8分,共48分)

1、键盘输入X 的值,计算分段函数Y=????的值,并显示出来。

2、满足a^2 +b^2=c^2 的一组正整数a、b、c,称为勾股数组。试用输出100以内的所有勾股数组。

3、从键盘给3×4的二维数组输入12个整数,求该数组各元素之和与最小的元素值。

4、编写判断一个正整数是否为素数的函数price(),在main()中调用该函数输出100至1000之间的所有素数。

5、输入3个整数,按小到大的顺序输出。(要求用指针方法处理,不按要求做的不给分)

6、有一个结构体变量stu,内含有学生学号、姓名、性别和2门课的成绩。在main()函数中赋以值{200301,“Huang_fa“,’W’,89.5,67.5},在另一个函数prt_stu()中将数据输出。(要求用指向结构体变量的指针作为函数参数,不按要求做的不给分)

答案或提示

一、选择题:

1C、2C、3D、4A、5B、6C、7B、8A、9A、10A、11D、12D、13B、14C、15B、

二、填空题:

1、

fp=fopen(“flie3.txt”,w)

fputc(ch,fp);