《C语言程序设计期末考试试题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末考试试题及答案.docx(6页珍藏版)》请在第一文库网上搜索。
1、C语言程序设计1.四五八七八九十总分(2008 /2009学年第二学期)一.选择题(满分30分,每题2分)得分1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是DA. a=b二c+8;C. c+;2.已知int j, i=l;执行语句j=i+; ”后,B. a+=y+3;D. a+b+c变量i的值是B、一,8.若int i=10;执行下列程序后,变量i的正确结果是2switch ( i )case 0: i+=l;case 10:case 11: default:A. 101+=1;i+=l;i+=l;B. 11 C. 12 D. 139.下列语句中不正确的字符串赋值或初始
2、化的是_L。A. char str 10 = /,strings/; B. char str 8 = ,s, t, r,C. char str10; str= strings”;10.有如下程序:#include void main()D.char str= strings”;A. 1 B. 23.执行下面程序:-include stdio. hvoid main()C. - 1 D. -2int a=l, b=2, c=3;c=(a+=a+2), (a=b, b+3);printf ( u%d, %d, %dw , a, b, c);则输出结果是:AA. 2,2,4B. 4,2,3C.5,5
3、,3D. 4,2,54.若要求在if后一对圆括号中表示a不等于。的关系,则能正确表示这一关系的表达式为D oA.a0 B.!aC. a=0 D. a5.forA.(j=0;j+);循环结束后,j的值是 B12B. 116.C语言中函数返回值的类型由C. 10 D. 9D 决定的。A. return语句中的表达式类型B.调用该函数的主调函数的类型7.C.调用函数时临时决定下列说法中正确的是BD.定义函数时所指定的函数类型ABCD在调用用户自定义函数时,必须对其进行声明。函数可以返回一个值,也可以什么值也不返回。说明函数时,必须明确参数的类型和返回值。在程序设计中空函数没有什么作用。int a=l
4、, b=0, c=0;if (ab)if (b0) c=0;else c+;printf ( dn” , c);该程序的运行结果是 DA. 3B. 2C. 111.在函数调川,对参数传递的说法正确的是D. 0A oABCD实参和形参各占一个独立的存储单元。实参和形参始终共用一个相同的存储单元。可以由用户指定实参和形参是否共用一个存储单元。可以由系统指定实参和形参是否共用一个存储单元12.以下正确的程序段是CA.B.C.D.charcharcharcharstrl = 12345, str2 = abcdef; strcpy(strl, str2);str10, *st=abcde; strca
5、t (str, st);str10= , *st=abed。; strcat(str, st);*stl=”12345”, *st2二abcde; strcat(stl, st2);13.若有定义:int *p4;则标识符pB 。A.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.说明不合法9.下面程序的运行结果为 22222。include void main()(int i=2, j=5, s;s=i;for (1j;)s=s*10+i;printf ( %d,s);)10.写出程序的执行结果:i=10,main () int i=0,
6、j=0;while (i10)i+;while (j+10);printf( ui=%d, j=%dn,i, j);得分三、读程序写结果(满分16分,每题4分)1.判断下面程序的运行结果。#includevoid main()(int a=0,b=l;int fun(int a,int b);printf(,%dn,fun(a,b);printf(H%dnu,fun(a,b);)int fun(int m, int n)(static s=l;s+;retum(s*(m+n);)2程序运行的结果为:314.以下程序的运行结果是C .typedef union(long al;int b2;ch
7、ar c8; TEST;TEST m;main()(printf( %dn, ,sizeof(m);)A. 32 B. 16 C. 8 D. 2415.设有以下结构体类型:struct st(charname8;int num;floats4;student50;并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件file, txt中,以下不正确的形式是 C .A. fwrite (student, sizeof (struct st), 50, fp);B. fwrite (student, 50*sizeof (struct st), 1, fp);C. fwrite
8、(student, 25*sizeof (struct st), 25, fp);D. for (i=0; i50; i+)fwrite (student+i, sizeof (struct st), 1, fp);得分二、填空题(满分20分,每空2分)1 .每个C语言编写的程序必须有一个,并且只能有一个 主 函数。2 .设x和y均为int型变量,且x=l, y=2,则表达式3+x/y的值为 3。3 .若有定义:int a = 2,4,6,8, 10,12,*p;a;则* (p+1)的值是 4。4 .设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则一 OxOF 。5 .测试char
9、型变量m的最高位数据是否为1的表达式是 a&0x80。6 .若x=2,尸一3贝lj x&y的结果是1。7 .和二进制数101等值的十进制数为5。8 .定义int i=l;执行语句while(i+x, (ml. p)-y);3.卜.面程序的运行结果是7654321。ttinclude #include void fun(char *w, int n)char t,*sl,*s2;sl=w;s2=w+n-l;while(sis2)(t=*sl;*sl二*s2;*s2=t;sl+;s2一;void main()char p 口二 1234567;fun (p, strlen (p);puts(p);
10、4.下面程序的输出结果为 4, 2ttinclude stdio.hstruct ks(int a;int *b;s4,*p;void main()(int n=l, i;printf(n);for(i=0;ia, (p+)-a);)得分四、程序设计(满分34分)1 .编写一个程序,判断某一年是否为闰年。(6分)# include void main ()(int year;printf( input year=);scanf( , &year);if (year%4=0&year%100!0)|year%400=0)printf( %4d is a leap year n , year);e
11、lseprintf ( is not a leap year n , year);2.用公式求乃的近似值,直到最后一项的绝对值小于IO为止,请编程实现。(8分)4.将一个整数字符串转换为一个整数,如-1234转换为-1234。(10分)#include math, h”void mainO(int s; float n, t, pi;t=1; pi=0; n=l.0; s=l;while(fabs(t)lE-6)(pi=pi+t;n=n+2;s =一s;t=s/n;)pi=pi*4;printfCpi=%10. 6fn, pi);3.编写程序,利用子函数实现计算字符串的长度。(10分)线 #i
12、nclude intlength (char *s);voidmain()(chara100;inti;printf (/zPlease input the string:nz/);gets(a);i=length(a);printf (,znThe length of string is %d,i);)int length(char *s)(char *p=s;while(*p)p+;return (p-s);#include ttinclude intchnum(char *p);voidmain()(char s6;int n;gets(s);ifn=-chnum(s+l);elsen=chnum(s);printf (刎n,n);)chnum(char *p)(int num