资源描述
2009.7一、单选题(每小题2分,共20分1.由C语言源程序文件编译而成的目标文件的缺省扩展名为(D.obj)。2.设x和y均为逻辑值,则x!y为假的条件是(C.它们均为假)。3.枚举类型中的每个枚举常量的值都是一个(A.整数)。4.循环语句“for(i=0; 15)的相反表达式为(x!=011y=5)6.若 x= 5,Y= 10,则x!=y的逻辑值为1。7.假定二维数组的定义为“inta35;,则该数组所占存储空间的字节数为608.使用“typedefc harB B1050;”语句定义BB为含有10行50列的二维字符数组类型。9.字符串“a八xxk数据”的长度为1110.假定p所指对象的值为25,p+1所指对象的值为46则,*+p的值为46。11.假定一个数据对象为int,类型则指向该对象的指针类型为int* *12.假定一个结构类型的定义为“structA inta ,b ;A 。;”,则该类型的长度为1213.假定要访问一个结构对象x中的数据成员a,则表示方式为x.a。三、写出下列每个程序运行后的输出结果(每小题6分,共301.#includevoid main( )int i,s= 0for(i二1;i+十)if(s30) break;if(i%2=0) s+=i;printf(s=0 od n,s) s=422.#includevoid main()int a9=36,25,48,24,55,40,18,66,20;int i,bl,b2;bl= b2=for(i=1a0;i bl)b l=ai;if( a i b2)b 2=ai;printf( %d 0 od n ,bl,b2) 66 183.#includevo idS B(charc h)sw itch (c h) ca se A : ca s e ,a :pri ntf ( W W ” ); br eakcas e B : c as e b :pri ntf ( GG“);breakdefault:printf ( B B“);break;)void main()cha r a l “a,a2=B,a3二,fSB ( al );SB(a2);SB(a3);pri nt f( n); WW GG BB4.#include# de fin eM 6vo id m ain()inti ,x ;int a仁M=10,15fore=O;for(i=0;K M/222,37,46,58);i+)x =ai;ai=aM一1一1;a仁M-1一i=xi6;i+)print(ood ,aEi);printf(n); 58 46 37 22 15 105.#includestruct W orkerchar name15;int age; float pay;void main()structW orkerx = wanghua,52 ,2350;struct Worker y, * py二x; P=&xprintf(%d 007.2f n,y .ag e+p一age,p一pay+20)104 2370.00四、写出下列每个函数的功能(每小题6分,共12分)1. int FH()int x,y=0;scanf(oo了,&x);while(x!二一1)y+=x;s canf(%d, & x);return y;函数功能: 1. 求 出 从键盘上输人的一批整数的总和,以一1作为结束输人的标志。2.i ntF F(structI ntNode *f ) /f为指向一个单链表的表头指针int n= 0if(!f) return 0;while(f)n十+f=f一next;return n假定struct IntNode的类型定义为:struct IntNodeint data;struct IntNode * next;函数功能: 2. 求 出 并返回由f所指向的单链表中所有结点的个数。五、按题目要求编写程序或函数(每小题6分,共12分)1.编写一个程序,利用while循环,计算并打印输出1十1/2+1/3十+1/n的值,其中正整数n值由键盘输入。假定求和变量用sum表示,计数变量用i表示,sum,i和n均定义为全局变量,sum和i的初值分别被赋予0和1,1. # include int n,i=1;double sum=0;void main( )scanf(%d,&.n);while(i=n)sum+=(double)1/i+;printf(sum=%ifn,sum);2. 根据函数原型voidDD(inta ,in tn ,in tMM)”编写函数定义,利用双重循环查找并打印输出数组an中任何两个元素的值等于MM值的元素值。假定ai十aj等于MM,则输出格式为:(ai, aj)2. void DD(int a,int n, int MM)int i,j;forei=0;in;i+)for(j=i+l;jn;j+)if( ai+aj=MM)printf(%d,%dn,a i,aj);2010 年7 月一、单选题(每小题2分,共2 0分) 1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A.main)。2.每个C 语言程序文件的编译错误分为(B.2)类。3.字符串 a 十b = 1 2 n 的长度为(B.7)。4.在switch 语句的每个case 块中, 假定都是以break i吾句结束的, 则此s wi t c h 语句容易被改写为(D.if )语句。5.在下面的do - w hile 循环语句中, 其循环体语句被执行的次数(C.10)。int i=0; do i+ ;while(i10); 6.将两个字符串连接起来组成一个字符串时, 选用的字符串函数为(C.strcat()。7.若用数组名作为函数调用的实参, 传递给形参的是(A.数组的首地址)。8.假定a 为一个整数类型的数组名, 整数类型的长度为4 , 则元素a4 的地址比a 数组的首地址大(C.16)个字节。9.假定s 被定义为指针类型char 祷的变量,初始指向的字符串为Hello world!若要使变量p指向s所指向的字符串,则p应定义为( A.char 铃p=s;)。10.从一个数据文件中读人以换行符结束的一行字符串的函(B.getsO)。二、填空题(每小题2 分, 共2 6 分)与2009.7相同三、写出下列每个程序运行后的输出结果每小题6 分, 共3 0 分)1. :# includevoid mainO int i ,j ,k=O;forCi=O; i5; i+)for(j=i; j5; j 十+)k十+ 忖printf( %dn ,k);152. :# includevoid mainO int x=20;int i=2;whileCix) ifCx%i=O) printfC %d , i) ; x/=i;i+ 十;253. :# includevoid mainO int a8=70,63 ,54 ,95 ,40 ,75 ,90 ,66 川int i , s=O;forCi=O; i=70 &.&. ai=90) s 十=ai;printfCs= %dn ,s);s=2354. 拌includeint WF(int x , int y) x=x 十Y;y十= x preturn x 十y;void mainO int x=3, y=5;printf( %dn ,WF(x,y;215. :if includeint LA(int 祷a , int n) int i,s=O;for Ci=O;in;i十+ ) s 十=ai ;return s;void mainO int a5= l ,2 ,3 , 4, 5;int b=LA(a,5)+LA(a十1 ,3);printf(b= %dn ,b);b=24四、写出下列每个函数的功能每小题5 分, 共1 2 分)1. int SG(int x) int i=2;IIx 为大于等于2 的整数if(x=2 II x=3) return 1;whileC i 头i=x) if(x%i= =0) break;i 十+ ;if (i 川data;f=f一next;while( f) if(f一datax) x=f一data;f=f一next;return x;假定struct IntNode 的结点类型定义为:struct IntNode int data; struct IntNode*next;函数功能: 求出并返回由f 所指向的单链表中所有结点的最大值。五、按照题目要求编写程序或函数(每小题6 分, 共1 2 分1.编写一个主函数,计算1 十3 + 3 2 十 . . + 3 1 0 的值并输出, 假定分别用i , p , s 作为循环变量、累乘变量和累加变量的标识符1. # includevoid main()int 1;int p=1;int s=1;for(i=1;i=10;i十十) p *=3; s +=p; printf(%dn ,s);2.根据函数原型 i nt FF( int a口, int n) ,编写函数定义,计算并返回数组a n 中所有元素之和。2. int FF(int a, int n)int i,sum=O;for(i=O; iy的值为0(假)。7.假定二维数组的定义为“inta35;,则该数组所含元素的个数为15。8.执行“typedef intABC10;”语句把ABC定义为具有10个整型元素的数组类型。9.strcat()函数用于连接两个字符串。10.假定p所指对象的值为25,p+1所指对象的值为46,p+的值为2511.若要把一个整型指针P转换为字符指针,采用的强制转换表达式为( char*)p。12.NULL是一个符号常量,通常作为空指针值,它对应的值为013.假定要动态分配一个类型为structW orker的对象,并由r指针指向这个对象,使用的表达式为struct Worker* r =malloc(sizeof(struct Worker).三、写出下列每个程序运行后的输出结果(每小题6分.共30分)1.#includevoid main()int i,s=0for(i=1;i6;i+)s+i,i;printf( s= %d n, s) ;s=552.#include#define N 6void main()int i,aN=2,5,8,10,15,21;for(i=0;iN; i+)if( a i ao 5 )p rintf(Yo d ,ai);printf(n;2 8 213.#include#includevoid main()int i;unsigned int len;char,a5=( student,w orker,cadre,soldier,zzeasan123len=strlen(ao);for(i=1; ilen)l en=strlen(ai);printf( %n”,len);104.#includevoid main( )inta ,b ;for(a=2,b=3;b20;)pri ntf (% do od ,a,b);a= a + b;b= a + b;printf(%d %dn,a,b);2 3 5 8 13 215.#includevoid LE(int,a,int=b)int x=*a;*a=*b;*b=xvoid main()int x=15,y=26;printf(%d %dn,x,y);LE(&x,& y);printf( %0 %d n,x, y) 15 2626 15四、写出下列每个函数的功能【每小题6分.共12分) 同2010年7月相同五、按题目要求编写程序或函数(每小题6分,共12分!.编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。.编写一个递归函数int M int a, int n),求出数组a中所有n个元素之积并返回1.#include void main ()inti;for(i=3;i=50;i+)if( i%3= =0|i%5= =0)printf(%d,i);printf(n);2. int FF(int a,int n) if(no | y= =5) 的相反表达式为(B.xscore三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1. # includevoid main() int i ,j , k = 0 ;fore i=O 川5 ; i+ 十for(j=i川5; j 十十) k十+ 门printf( %dn ,k ) ;152. # includevoidmain() int x=20;int i=2;while(ix) if(x%i= =0) printf(%d , i) ; x/=i;i +;253.#includevoidmain() int a8=76 ,63 ,54 ,95 ,40 ,75 ,90 ,66;int i , s=O;for(i=O 川=70 & ai=90) s 十= ai;printf(s= %dn , s ) ;s=2414. # includeint WF(int x,int y) x=x+y;Y+=X;return x+y;void main() int x=3 , y=8;printf(%dn ,WF(x ,y);305.# includeint LA(int*a int n)inti,s=O;for(i=O; in;i +) s += ai;return s;void main() int a5=1 ,2,3,4 ,5;int b=LA(a5)+LA(a十2,);printf(b=%dnt”,b)b=27四、写出下列每个函数的功能(每小题6 分,共12分)1.int WC(int a,int n,int k)int i,c=O;for(i=O;i=k) c + ;return c;函数功能: 统计并返回一维整型数组an中大于等于k 的值的个数。2.void QA(struct Worker a,int n)lnt i;for(i=O;in;i+)scanf( %s %d %f ,ai.name, &ai. age ,&ai.pay);假定结构类型struct Worker 的定义如下:struct Worker char name15int age的float pay; ;函数功能:从键盘上为具有struct Worker 类型的数组an 输入n 个记录。五、按题目要求编写函数(每小题6分,共1 2分1. 根据函数原型doubleMean(double aMN ,int m,int n),编写函数定义,要求返回二维数组amn中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。double Mean(double aMN ,int m ,int n)lnt i,J ;double v=O.0;for(i=O;irn;i+)for(j=O; jn;j+)v+=aij;v/=m*n;return v;2.根据函数原型int MM(int a,int m),编写函数定义,计算并返回数组am中元素最大值和最小值之差。int MM(int a,int m)int i,x1,x2;xl= x2= a0;for(i=1;ix1)xl=ai;if(aix2)x2=ai; return xl - x2 ; (注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注!)
展开阅读全文