1、《C语言程序设计》期末考试试卷.txt机会就像秃子头上一根毛,你抓住就抓住了,抓不住就没了。我和你说了10分钟的话,但却没有和你产生任何争论。那么,我们之间一定有个人变得虚伪无比!过错是短暂的遗憾,错过是永远的遗憾。相遇是缘,相知是份,相爱是约定,相守才是真爱。《C语言程序设计》期末考试试卷(A卷)(附有答案) 一、单项选择题(每小题2分,共30分) 1、下列数据中,为字符串常量的是( ) A、‘M’ B、‘$you’ C、”hello” D、basic 2、若y为int 型变量,则执行以下语句后,y的值是( )
2、 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
3、 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”;
4、 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%
5、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
6、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
7、 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
8、 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;
9、 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); prin
10、tf(“%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
11、 main() { FILE *fp; char ch; if(( )= =NULL ) {printf(“Can not open this file.”); exit(0);} ch= getchar(); while(ch!=’#’) { ch=getchar(); }
12、
}
2、下列程序的作用是将若干个字符串按字母从小到大顺序输出(起泡排序法)。
main()
{ void sort(char *name[], int n);
int k;
char *name[ ]={“Basic”,”Design”,”FoxPro”,”Follow”};
int n=4;
for(k=0;k 13、ort( char *name[], int n )
{ char *t;
int i,j;
for( )
for( )
if( )
{t=name[j];name[j]=name[j+1];name[j+1]=t; 14、}
}
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= 15、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
三、按要求编写程序(每 16、小题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门课 17、的成绩。在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;i






