文档库 最新最全的文档下载
当前位置:文档库 › 《C语言程序设计》期末考试试卷

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

《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;kprintf(“%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);
fclose(fp);

2、
Sort(name,n);
I=1;iJ=0;ja[j]>a[j+1];

3、
Scanf(“%s”,text);
Count(text);
Str[i]
Ot++;


三、编程题(略)
参见谭浩强《C程序设计》(清华大学出版社)一书


相关文档
相关文档 最新文档