《《C语言统考试卷》word版.doc》由会员分享,可在线阅读,更多相关《《C语言统考试卷》word版.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1页 共9页扬州大学试题纸(20102011学年第2学期) 全校理工类等专业统考 学院 课程 C及C+语言程序设计 (闭)卷注意:1 请用答题纸答题,将答案填于相应的题号内。否则不给分。2 请认真填写并仔细核对答题纸上的学院、系科、班级、学号及姓名等。3 请将试卷和答题纸分开上交。一、 单选题(每小题2分,共30分)1以下叙述中,正确的是_。A. 在C程序中,注释只能位于一条语句的后面B. 可以在一个函数中定义另一个函数C. 对于标识符,C语言将不区分大小写D. 构成C语言源程序的基本单位之一是函数定义2下列表示中,不是C语言合法字符常量的是 。A. $ B. 065 C. 0xff D.
2、 x2a3下列各组表示中,均能作为C语言自定义标识符的是 。A. day, lotus_1_2_3, -x B. Abc, _above, IFC. MJohn, year , sum D. month, total, enum4设有声明语句“char ch;”,则下列选项中,不合法的赋值语句是 。A. ch=a+b; B. ch=0; C. ch=a+b; D. ch=7+9;5设有声明及初始化语句“int x=0,y=1;”,则执行语句“y=-x|+y;”后,变量y的值为_。A.0 B.1C.2 D.36C语言规定,函数返回值的类型由 。A. return语句中的表达式类型决定B. 调用该
3、函数时的主调函数类型决定C. 调用该函数时系统临时决定D. 定义该函数时所指定的函数类型决定7若有声明语句“char s10;”,则下列选项中,不能表示s1地址的是 。A. s+1 B. s+ C. &s0+1 D. &s18设有声明及初始化语句如下:static char s1 =ABCDEF; static char s2 =A,B,C,D,E,F;则下列选项中,叙述正确的是 。A. s1和s2完全相同 B. s1和s2的长度相等C. s1和s2不相同,s1是指针数组 D. s1数组长度比s2数组长9以下函数定义示意中,正确的是 。A. int fun(int a,static int b
4、) B. float fun(int a; int b) C. double fun(void) D. int fun(char a) 裁剪框学院_ 系_ 班级_ 学号_ 姓名_-装-订-线-10设有声明语句“char *s=ta08bc;”,则指针变量s指向的字符串所占内存单元的字节数是 。A. 3 B. 5 C. 6 D. 711下列判断正确的是 。A. char *a=China; 等价于char *a; *a=China;B. char str10=China; 等价于 char str10; str =China; C. char *s=China; 等价于 char *s; s=C
5、hina;D. char c4=abc,d4=abc; 等价于 char c4=d4=abc;12设有程序段:char s =China,*p; p=s;则下列叙述中,正确的是 。A. s和p完全相同B. 数组s中的内容和指针变量p中的内容相同C. s数组长度和p所指向的字符串长度相等D. *p与s0相等13下列程序段的运行结果是 。 char *p=rewind; p+=2; printf(%dn,strlen(p);A. 2B. 4 C. 6 D. 714设有结构类型定义及结构对象声明语句如下: struct pupil char name20; int age; int sex; pup
6、5, *p=pup;则以下对scanf函数的调用语句中,错误的是 。A. scanf (%s, pup0.name);B. scanf (%d, &pup0.age);C. scnaf (%d, &(p-sex);D. scanf (%d, p-age);15设有结构类型定义及结构变量声明语句如下: struct ex int x; float y; char z; example;则下列叙述中,错误的是_。A. struct是结构类型定义时的关键字B. example是结构类型名C. x, y, z都是结构成员名D. struct ex是结构类型第 2 页 共9页裁剪框第3页 共9页 二、填
7、空题(每空1分,共20分)1在C语言中,一个C源程序至少包含一个 (1) 函数。在程序执行时若未发生任何异常情况,则通常是在执行了 (2) 函数的最后一条语句或该函数中的return语句后,程序才会终止运行。2用于结构化程序设计的3种基本控制结构是顺序、 (3) 和 (4) 结构。3若有声明及初始化语句“float x=3.5;”,则表达式“(int) x+x”的类型为 (5) 。4若有声明及初始化语句“int a=30,b=7;”,则表达式“!a+a%b”的值是 (6) 。5设有声明及初始化语句“int a=3, b=5;”,则程序段“a+=b; b=a-b; a-=b;”的功能是 (7)
8、。6命题“当x的取值在1,)和(20, 31)内为真,否则为假”的C语言表达式是 (8) 。7在C语言中,如果在函数内部声明局部变量时缺省了存储类别,则编译系统默认该变量的存储类别为 (9) (用C语言关键字表达)。8若有声明及初始化语句“char s10=China;”,则表达式sizeof(s)的值为 (10) ;表达式strlen(s)的值为 (11) 。9设有宏定义如下:#define WIDTH 8#define LENGTH WIDTH+4则执行程序段“int v; v=LENGTH*2;”后,v的值为 (12) 。10continue只能用在 (13) 语句中;case和defa
9、ult只能在 (14) 语句中出现。11C语言规定,简单变量作实参时,它传递给对应形参的是变量的 (15) ;数组名作为实参时,传递给对应形参的是数组的 (16) 。12. 在C语言中,声明一个int型a数组的一般形式为:int aexp;其中exp表示所声明a数组的 (17) ,它可以是整型、字符型或枚举型的常量;引用a数组元素时,形如表达式ai中的i表示数组的 (18) ,它可以是常量、变量、表达式等,但必须有确定的值,若i不是整型值,编译系统将自动对其取整,取整后的范围应在 (19) 内。13. 设有以下声明语句:struct student int x; int *y; ;int dt
10、4=1,2,3,4;struct student a4=10, &dt3, 20, &dt2, 30, &dt1, 40, &dt0, *p=a;则表达式*(+p)-y的值为 (20) 。裁剪框第 3 页 共8页第4页 共9页 三、 阅读程序写出结果(每小题4分,共20分)1. 以下程序运行的结果是 。#include void main ( ) int a,b,c,d; a=c=0; b=1; d=20; if (a) d=d-10; else if (!b) if (!c) d=15; else d=25; printf(d=%dn, d ); 2. 以下程序的运行结果是 。void ma
11、in( ) printf(%4d, f(3); printf(%4d, f(5);int f(int a) int b=1; static c=1; b=b*a; c=c*a; return c/b;3下列程序运行的结果是_。#define EXCH(a,b) int t;t=a;a=b;b=t;void swap(int a,int b) int t; t=a; a=b; b=t; void main( ) int x=5, y=9 ; EXCH(x,y) ; swap(x,y); printf(x=%d,y=%dn,x,y);4. 运行下列程序,屏幕上的输出结果是_4 3 2_。#incl
12、udemain() enum colorred,green,blue; char *s=01233210001; int i,j,k; i=j=k=0; while(*s) switch(*s-0) case red: i+;break; case green:j+;break; case blue: k+;break; s+; printf(%d %d %dn,i,j,k);裁剪框第 4 页第 5 页 共9页5下列程序的运行结果是 。#include #include void main ( ) char a = Internet, b = Extranet; int k,n; n=strl
13、en(a)strlen(b)?strlen(a):strlen(b); for (k=0; kn; k+) if (*(a+k)=*(b+k) printf(%c, *(a+k);四、 完善程序题(每空1分,共30分)1以下程序的功能是从键盘输入10个整数,并检查整数3是否包含在这些数据中,若包含3,则显示出第一个3出现的位置,请完善程序。 void main ( ) int data10, j=0; while (j10) scanf(%d, (1) ); j+; for( j=0;j10;j+) if( (2) ) printf(3 is in the position of %dn,j)
14、; break; if( (3) )printf(not found!n); 2下列程序的功能是字符串的复制。函数void cs(char s, char t)的功能是将字符串t复制到s指向的字符数组中。请完善程序。 #include void cs(char s, char t ) int i=0; while( (4) ) i+ ; void main() char a20,b10; gets(b); cs ( (5) ); puts(a); 裁剪框3用牛顿迭代法(切线法)求方程3x3-3x2+x-1=0在x0=2附近的实根。即求f(x)= 3x3-3x2+x-1在x0=2附近与x轴的交点
15、。其中牛顿迭代公式为: 以下程序中函数float newtoon(float x)是利用上述的迭代公式求方程在x附近的根,当前后两次求出值的差的绝对值小于10-6迭代中止;函数float F(float x)的功能是求f(x);函数float F1(float x)求f(x)在x处的导数。 (6) float F(float x) return 3*x*x*x-3*x*x+x-1; float F1(float x) return 9*x*x-6*x+1; float newtoon(float x) float x0; do (7) ; x=x0- (8) ; while( fabs(x-x
16、0)=1e-6 ); return x; main() float x0=2; printf(“The result =%.2fn”, (9) ); 4下列程序中,函数int hailstones(int a,int n)的功能是:以n为“种子”,按下列条件生成一个数列并依次存入a指向的数组中。条件为:(1)该数列的第1项为n;(2)以后每一项根据前一项生成,若前一项(ni)是偶数,则下一项(ni+1)为:ni+1= ni /2;否则下一项为:ni+1=3ni+1;(3)若ni是1,则数列结束。用这种方法产生的数称为冰雹数。hailstones函数返回冰雹数(包含1)的个数。main函数中,通
17、过调用hailstones函数生成冰雹数,按每行6个输出数列中的每一个数。#define N 100int hailstones(int a,int n) int i=0; while (n!=1) a (10) =n; if (n%2) (11) ; else n=n/2; ai=1; return (12) ;main() int aN,n,count,i; scanf(%d,&n); count=hailstones(a,n); for(i=0;icount;i+) if( (13) )printf(n); printf(%5d,ai); printf(ncount=%dn,count)
18、;第 6 页 共9页裁剪框第 7 页 共9页裁剪框 5在一行文本中查找给定的单词。一行文本有字母和分隔符组成,分隔符包括若干空格、逗号、句号和换行符。一个单词有若干个连续字母组成。 main函数中word数组存放欲查找的单词。find_word函数完成在t字符串中查找单词w的功能,先从t串中找出一个单词,再与w进行比较,最后如果找到则返回单词w在t串中第一次出现的位置,否则返回-1。 #include #include #include main() char text80=“I will pass the examination in the summer holiday.”,word20;
19、 int t; puts(“enter a word to be found:”); gets(word); t=find_word( (14) ); if( t!=-1 ) printf(“The word %s in text . It locates in %d.n”,word,t); else printf(“not found!n”); int find_word(char t , char w ) char s20; int i , j , k=0; for( i=0; ti!=0; i+) if(isalpha(ti) /* isalpha函数的功能是判断ti是否是字母,若是则返
20、回值1,否则返回值0*/ for(j=0; isalpha(ti+j); j+) sj = (15) ; /* 生成一个单词串 */ sj = (16) ; if ( (17) ) return i ; i=i+j; return -1; 6下列程序的功能是:寻找并输出11至999之间的整数m,它满足m、m2、m3均为回文数。例如m=11,m2=121,m3=1331皆为回文数,故m=11是满足条件的一个数。函数int value(long m)的功能是判断m是否是回文数,如是,则函数返回值1,否则返回值0。请完善程序。 #include int value( long m ) long x=
21、0,n=m; while( m ) x=x*10+ (18) ; m= (19) ; if( (20) ) return 1; else return 0; 第 8 页 共9页 void main() long int m; for (m=11; m1000;m+) if(value(m)&value(m*m)&value(m*m*m) printf(m=%4ld,m*m=%7ld,m*m*m=%10ldn,m,m*m,m*m*m); getch();7以下程序中,函数float fun(int m)的功能是计算s=s1+s2+s3+s4的值,其中s1、s2、s3、s4用下列公式计算。请完善程
22、序以达到要求的功能。算法提示:#include float fun(int m) int i,n; float s,t; for(n=1, (21) ; n=m; n+) t=1; for(i=1;i5;i+) t= (22) ; s+=t; (23) ;main() float s; s=fun(50); printf(%f,s); getch();裁剪框8运行以下程序后输出结果为“20,y”,请完善程序使其完成此功能。#include struct n int x; char c; ;func(struct n *b) (24) =20; (25) =y; void main() stru
23、ct n a=10,x; func( (26) ); printf(%d,%c,a.x,a.c); 9.下列程序中,函数void selsort(int a,int n)的功能是用直接选择排序算法对a指向的n个待排序数进行从小到大排序;main函数中,声明并初始化了一个整型数组,现欲通过调用selsort函数实现将数组中的前5个元素(a0a4)和后5个元素(a10a14)从小到大排序。例如:测试数据:9,8,6,12,16,-3,90,-9,10,1,4,7,8,-2,5输出结果:6 8 9 12 16 -3 90 -9 10 1 -2 4 5 7 8。#include void selsor
24、t(int a,int n) int i,j,k,t; for(i=0;in-1;i+) (27) ; for(j=i+1;jaj) (28) ; if(k!=i) t=ak,ak=ai,ai=t; void main() int a15=9,8,6,12,16,-3,90,-9,10,1,4,7,8,-2,5,i; selsort( (29) , 5); selsort( (30) , 5); for(i=0;i15;i+) printf(%5d,ai); getch(); 第 9 页 共9页一、 单选题(每小题2分,共30分)题号: 1 5 6 10 11 15二、 填空题(每空1分,共2
25、0分)(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) 三、 阅读程序写出结果(每小题4分,共20分)1. 2 . 3. 4. 5. 四、 完善程序题(每空1分,共30分)(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) C及C+语言程序设计答题纸学院_班级_学号_姓名_题目一二三四总分得分合分人阅卷人复核人核分人